diff options
Diffstat (limited to 'arch/arm/mach-s5pc100/mach-smdkc100.c')
-rw-r--r-- | arch/arm/mach-s5pc100/mach-smdkc100.c | 78 |
1 files changed, 63 insertions, 15 deletions
diff --git a/arch/arm/mach-s5pc100/mach-smdkc100.c b/arch/arm/mach-s5pc100/mach-smdkc100.c index af22f8202a07..2dc519c172ec 100644 --- a/arch/arm/mach-s5pc100/mach-smdkc100.c +++ b/arch/arm/mach-s5pc100/mach-smdkc100.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/i2c.h> | 22 | #include <linux/i2c.h> |
23 | #include <linux/fb.h> | 23 | #include <linux/fb.h> |
24 | #include <linux/delay.h> | 24 | #include <linux/delay.h> |
25 | #include <linux/input.h> | ||
25 | 26 | ||
26 | #include <asm/mach/arch.h> | 27 | #include <asm/mach/arch.h> |
27 | #include <asm/mach/map.h> | 28 | #include <asm/mach/map.h> |
@@ -42,18 +43,22 @@ | |||
42 | #include <plat/s5pc100.h> | 43 | #include <plat/s5pc100.h> |
43 | #include <plat/fb.h> | 44 | #include <plat/fb.h> |
44 | #include <plat/iic.h> | 45 | #include <plat/iic.h> |
46 | #include <plat/ata.h> | ||
47 | #include <plat/adc.h> | ||
48 | #include <plat/keypad.h> | ||
49 | #include <plat/ts.h> | ||
45 | 50 | ||
46 | /* Following are default values for UCON, ULCON and UFCON UART registers */ | 51 | /* Following are default values for UCON, ULCON and UFCON UART registers */ |
47 | #define S5PC100_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \ | 52 | #define SMDKC100_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \ |
48 | S3C2410_UCON_RXILEVEL | \ | 53 | S3C2410_UCON_RXILEVEL | \ |
49 | S3C2410_UCON_TXIRQMODE | \ | 54 | S3C2410_UCON_TXIRQMODE | \ |
50 | S3C2410_UCON_RXIRQMODE | \ | 55 | S3C2410_UCON_RXIRQMODE | \ |
51 | S3C2410_UCON_RXFIFO_TOI | \ | 56 | S3C2410_UCON_RXFIFO_TOI | \ |
52 | S3C2443_UCON_RXERR_IRQEN) | 57 | S3C2443_UCON_RXERR_IRQEN) |
53 | 58 | ||
54 | #define S5PC100_ULCON_DEFAULT S3C2410_LCON_CS8 | 59 | #define SMDKC100_ULCON_DEFAULT S3C2410_LCON_CS8 |
55 | 60 | ||
56 | #define S5PC100_UFCON_DEFAULT (S3C2410_UFCON_FIFOMODE | \ | 61 | #define SMDKC100_UFCON_DEFAULT (S3C2410_UFCON_FIFOMODE | \ |
57 | S3C2440_UFCON_RXTRIG8 | \ | 62 | S3C2440_UFCON_RXTRIG8 | \ |
58 | S3C2440_UFCON_TXTRIG16) | 63 | S3C2440_UFCON_TXTRIG16) |
59 | 64 | ||
@@ -61,30 +66,30 @@ static struct s3c2410_uartcfg smdkc100_uartcfgs[] __initdata = { | |||
61 | [0] = { | 66 | [0] = { |
62 | .hwport = 0, | 67 | .hwport = 0, |
63 | .flags = 0, | 68 | .flags = 0, |
64 | .ucon = S5PC100_UCON_DEFAULT, | 69 | .ucon = SMDKC100_UCON_DEFAULT, |
65 | .ulcon = S5PC100_ULCON_DEFAULT, | 70 | .ulcon = SMDKC100_ULCON_DEFAULT, |
66 | .ufcon = S5PC100_UFCON_DEFAULT, | 71 | .ufcon = SMDKC100_UFCON_DEFAULT, |
67 | }, | 72 | }, |
68 | [1] = { | 73 | [1] = { |
69 | .hwport = 1, | 74 | .hwport = 1, |
70 | .flags = 0, | 75 | .flags = 0, |
71 | .ucon = S5PC100_UCON_DEFAULT, | 76 | .ucon = SMDKC100_UCON_DEFAULT, |
72 | .ulcon = S5PC100_ULCON_DEFAULT, | 77 | .ulcon = SMDKC100_ULCON_DEFAULT, |
73 | .ufcon = S5PC100_UFCON_DEFAULT, | 78 | .ufcon = SMDKC100_UFCON_DEFAULT, |
74 | }, | 79 | }, |
75 | [2] = { | 80 | [2] = { |
76 | .hwport = 2, | 81 | .hwport = 2, |
77 | .flags = 0, | 82 | .flags = 0, |
78 | .ucon = S5PC100_UCON_DEFAULT, | 83 | .ucon = SMDKC100_UCON_DEFAULT, |
79 | .ulcon = S5PC100_ULCON_DEFAULT, | 84 | .ulcon = SMDKC100_ULCON_DEFAULT, |
80 | .ufcon = S5PC100_UFCON_DEFAULT, | 85 | .ufcon = SMDKC100_UFCON_DEFAULT, |
81 | }, | 86 | }, |
82 | [3] = { | 87 | [3] = { |
83 | .hwport = 3, | 88 | .hwport = 3, |
84 | .flags = 0, | 89 | .flags = 0, |
85 | .ucon = S5PC100_UCON_DEFAULT, | 90 | .ucon = SMDKC100_UCON_DEFAULT, |
86 | .ulcon = S5PC100_ULCON_DEFAULT, | 91 | .ulcon = SMDKC100_ULCON_DEFAULT, |
87 | .ufcon = S5PC100_UFCON_DEFAULT, | 92 | .ufcon = SMDKC100_UFCON_DEFAULT, |
88 | }, | 93 | }, |
89 | }; | 94 | }; |
90 | 95 | ||
@@ -149,16 +154,54 @@ static struct s3c_fb_platdata smdkc100_lcd_pdata __initdata = { | |||
149 | .setup_gpio = s5pc100_fb_gpio_setup_24bpp, | 154 | .setup_gpio = s5pc100_fb_gpio_setup_24bpp, |
150 | }; | 155 | }; |
151 | 156 | ||
157 | static struct s3c_ide_platdata smdkc100_ide_pdata __initdata = { | ||
158 | .setup_gpio = s5pc100_ide_setup_gpio, | ||
159 | }; | ||
160 | |||
161 | static uint32_t smdkc100_keymap[] __initdata = { | ||
162 | /* KEY(row, col, keycode) */ | ||
163 | KEY(0, 3, KEY_1), KEY(0, 4, KEY_2), KEY(0, 5, KEY_3), | ||
164 | KEY(0, 6, KEY_4), KEY(0, 7, KEY_5), | ||
165 | KEY(1, 3, KEY_A), KEY(1, 4, KEY_B), KEY(1, 5, KEY_C), | ||
166 | KEY(1, 6, KEY_D), KEY(1, 7, KEY_E) | ||
167 | }; | ||
168 | |||
169 | static struct matrix_keymap_data smdkc100_keymap_data __initdata = { | ||
170 | .keymap = smdkc100_keymap, | ||
171 | .keymap_size = ARRAY_SIZE(smdkc100_keymap), | ||
172 | }; | ||
173 | |||
174 | static struct samsung_keypad_platdata smdkc100_keypad_data __initdata = { | ||
175 | .keymap_data = &smdkc100_keymap_data, | ||
176 | .rows = 2, | ||
177 | .cols = 8, | ||
178 | }; | ||
179 | |||
152 | static struct platform_device *smdkc100_devices[] __initdata = { | 180 | static struct platform_device *smdkc100_devices[] __initdata = { |
181 | &s3c_device_adc, | ||
182 | &s3c_device_cfcon, | ||
153 | &s3c_device_i2c0, | 183 | &s3c_device_i2c0, |
154 | &s3c_device_i2c1, | 184 | &s3c_device_i2c1, |
155 | &s3c_device_fb, | 185 | &s3c_device_fb, |
156 | &s3c_device_hsmmc0, | 186 | &s3c_device_hsmmc0, |
157 | &s3c_device_hsmmc1, | 187 | &s3c_device_hsmmc1, |
158 | &s3c_device_hsmmc2, | 188 | &s3c_device_hsmmc2, |
189 | &s3c_device_ts, | ||
190 | &s3c_device_wdt, | ||
159 | &smdkc100_lcd_powerdev, | 191 | &smdkc100_lcd_powerdev, |
160 | &s5pc100_device_iis0, | 192 | &s5pc100_device_iis0, |
193 | &samsung_device_keypad, | ||
161 | &s5pc100_device_ac97, | 194 | &s5pc100_device_ac97, |
195 | &s3c_device_rtc, | ||
196 | &s5p_device_fimc0, | ||
197 | &s5p_device_fimc1, | ||
198 | &s5p_device_fimc2, | ||
199 | }; | ||
200 | |||
201 | static struct s3c2410_ts_mach_info s3c_ts_platform __initdata = { | ||
202 | .delay = 10000, | ||
203 | .presc = 49, | ||
204 | .oversampling_shift = 2, | ||
162 | }; | 205 | }; |
163 | 206 | ||
164 | static void __init smdkc100_map_io(void) | 207 | static void __init smdkc100_map_io(void) |
@@ -170,6 +213,8 @@ static void __init smdkc100_map_io(void) | |||
170 | 213 | ||
171 | static void __init smdkc100_machine_init(void) | 214 | static void __init smdkc100_machine_init(void) |
172 | { | 215 | { |
216 | s3c24xx_ts_set_platdata(&s3c_ts_platform); | ||
217 | |||
173 | /* I2C */ | 218 | /* I2C */ |
174 | s3c_i2c0_set_platdata(NULL); | 219 | s3c_i2c0_set_platdata(NULL); |
175 | s3c_i2c1_set_platdata(NULL); | 220 | s3c_i2c1_set_platdata(NULL); |
@@ -177,6 +222,9 @@ static void __init smdkc100_machine_init(void) | |||
177 | i2c_register_board_info(1, i2c_devs1, ARRAY_SIZE(i2c_devs1)); | 222 | i2c_register_board_info(1, i2c_devs1, ARRAY_SIZE(i2c_devs1)); |
178 | 223 | ||
179 | s3c_fb_set_platdata(&smdkc100_lcd_pdata); | 224 | s3c_fb_set_platdata(&smdkc100_lcd_pdata); |
225 | s3c_ide_set_platdata(&smdkc100_ide_pdata); | ||
226 | |||
227 | samsung_keypad_set_platdata(&smdkc100_keypad_data); | ||
180 | 228 | ||
181 | /* LCD init */ | 229 | /* LCD init */ |
182 | gpio_request(S5PC100_GPD(0), "GPD"); | 230 | gpio_request(S5PC100_GPD(0), "GPD"); |