diff options
Diffstat (limited to 'arch/arm/mach-s5pc100/mach-smdkc100.c')
-rw-r--r-- | arch/arm/mach-s5pc100/mach-smdkc100.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/arch/arm/mach-s5pc100/mach-smdkc100.c b/arch/arm/mach-s5pc100/mach-smdkc100.c index af22f8202a07..83a5d648a980 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,6 +43,10 @@ | |||
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 S5PC100_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \ |
@@ -149,16 +154,51 @@ 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 | }; | ||
197 | |||
198 | static struct s3c2410_ts_mach_info s3c_ts_platform __initdata = { | ||
199 | .delay = 10000, | ||
200 | .presc = 49, | ||
201 | .oversampling_shift = 2, | ||
162 | }; | 202 | }; |
163 | 203 | ||
164 | static void __init smdkc100_map_io(void) | 204 | static void __init smdkc100_map_io(void) |
@@ -170,6 +210,8 @@ static void __init smdkc100_map_io(void) | |||
170 | 210 | ||
171 | static void __init smdkc100_machine_init(void) | 211 | static void __init smdkc100_machine_init(void) |
172 | { | 212 | { |
213 | s3c24xx_ts_set_platdata(&s3c_ts_platform); | ||
214 | |||
173 | /* I2C */ | 215 | /* I2C */ |
174 | s3c_i2c0_set_platdata(NULL); | 216 | s3c_i2c0_set_platdata(NULL); |
175 | s3c_i2c1_set_platdata(NULL); | 217 | s3c_i2c1_set_platdata(NULL); |
@@ -177,6 +219,9 @@ static void __init smdkc100_machine_init(void) | |||
177 | i2c_register_board_info(1, i2c_devs1, ARRAY_SIZE(i2c_devs1)); | 219 | i2c_register_board_info(1, i2c_devs1, ARRAY_SIZE(i2c_devs1)); |
178 | 220 | ||
179 | s3c_fb_set_platdata(&smdkc100_lcd_pdata); | 221 | s3c_fb_set_platdata(&smdkc100_lcd_pdata); |
222 | s3c_ide_set_platdata(&smdkc100_ide_pdata); | ||
223 | |||
224 | samsung_keypad_set_platdata(&smdkc100_keypad_data); | ||
180 | 225 | ||
181 | /* LCD init */ | 226 | /* LCD init */ |
182 | gpio_request(S5PC100_GPD(0), "GPD"); | 227 | gpio_request(S5PC100_GPD(0), "GPD"); |