Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
arm
mach-s3c64xx
mach-smdk6400.c
Go to the documentation of this file.
1
/* linux/arch/arm/mach-s3c64xx/mach-smdk6400.c
2
*
3
* Copyright 2008 Simtec Electronics
4
* Ben Dooks <ben@simtec.co.uk>
5
* http://armlinux.simtec.co.uk/
6
*
7
* This program is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License version 2 as
9
* published by the Free Software Foundation.
10
*/
11
12
#include <linux/kernel.h>
13
#include <linux/types.h>
14
#include <
linux/interrupt.h
>
15
#include <linux/list.h>
16
#include <
linux/timer.h
>
17
#include <
linux/init.h
>
18
#include <linux/serial_core.h>
19
#include <
linux/platform_device.h
>
20
#include <linux/i2c.h>
21
#include <
linux/io.h
>
22
23
#include <
asm/mach-types.h
>
24
25
#include <
asm/hardware/vic.h
>
26
#include <
asm/mach/arch.h
>
27
#include <
asm/mach/map.h
>
28
#include <
asm/mach/irq.h
>
29
30
#include <mach/hardware.h>
31
#include <mach/map.h>
32
33
#include <
plat/regs-serial.h
>
34
35
#include <plat/clock.h>
36
#include <
plat/devs.h
>
37
#include <plat/cpu.h>
38
#include <
linux/platform_data/i2c-s3c2410.h
>
39
40
#include "
common.h
"
41
42
#define UCON S3C2410_UCON_DEFAULT | S3C2410_UCON_UCLK
43
#define ULCON S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB
44
#define UFCON S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODE
45
46
static
struct
s3c2410_uartcfg
smdk6400_uartcfgs[]
__initdata
= {
47
[0] = {
48
.hwport = 0,
49
.flags = 0,
50
.ucon = 0x3c5,
51
.ulcon = 0x03,
52
.ufcon = 0x51,
53
},
54
[1] = {
55
.hwport = 1,
56
.flags = 0,
57
.ucon = 0x3c5,
58
.ulcon = 0x03,
59
.ufcon = 0x51,
60
},
61
};
62
63
static
struct
map_desc
smdk6400_iodesc[] = {};
64
65
static
void
__init
smdk6400_map_io(
void
)
66
{
67
s3c64xx_init_io
(smdk6400_iodesc,
ARRAY_SIZE
(smdk6400_iodesc));
68
s3c24xx_init_clocks
(12000000);
69
s3c24xx_init_uarts
(smdk6400_uartcfgs,
ARRAY_SIZE
(smdk6400_uartcfgs));
70
}
71
72
static
struct
platform_device
*smdk6400_devices[] __initdata = {
73
&
s3c_device_hsmmc1
,
74
&
s3c_device_i2c0
,
75
};
76
77
static
struct
i2c_board_info
i2c_devs
[] __initdata = {
78
{
I2C_BOARD_INFO
(
"wm8753"
, 0x1A), },
79
{
I2C_BOARD_INFO
(
"24c08"
, 0x50), },
80
};
81
82
static
void
__init
smdk6400_machine_init(
void
)
83
{
84
i2c_register_board_info
(0,
i2c_devs
,
ARRAY_SIZE
(
i2c_devs
));
85
platform_add_devices
(smdk6400_devices,
ARRAY_SIZE
(smdk6400_devices));
86
}
87
88
MACHINE_START
(SMDK6400,
"SMDK6400"
)
89
/* Maintainer: Ben Dooks <ben-linux@fluff.org> */
90
.atag_offset = 0x100,
91
92
.init_irq =
s3c6400_init_irq
,
93
.handle_irq =
vic_handle_irq
,
94
.map_io = smdk6400_map_io,
95
.init_machine = smdk6400_machine_init,
96
.init_late =
s3c64xx_init_late
,
97
.timer = &
s3c24xx_timer
,
98
.restart =
s3c64xx_restart
,
99
MACHINE_END
Generated on Thu Jan 10 2013 13:01:39 for Linux Kernel by
1.8.2