diff options
Diffstat (limited to 'arch/arm/mach-s3c2440/mach-at2440evb.c')
-rw-r--r-- | arch/arm/mach-s3c2440/mach-at2440evb.c | 51 |
1 files changed, 49 insertions, 2 deletions
diff --git a/arch/arm/mach-s3c2440/mach-at2440evb.c b/arch/arm/mach-s3c2440/mach-at2440evb.c index 66876c6f2f1c..0a6d0a5d961b 100644 --- a/arch/arm/mach-s3c2440/mach-at2440evb.c +++ b/arch/arm/mach-s3c2440/mach-at2440evb.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <asm/mach/irq.h> | 28 | #include <asm/mach/irq.h> |
29 | 29 | ||
30 | #include <mach/hardware.h> | 30 | #include <mach/hardware.h> |
31 | #include <mach/fb.h> | ||
31 | #include <asm/irq.h> | 32 | #include <asm/irq.h> |
32 | #include <asm/mach-types.h> | 33 | #include <asm/mach-types.h> |
33 | 34 | ||
@@ -35,7 +36,8 @@ | |||
35 | #include <mach/regs-gpio.h> | 36 | #include <mach/regs-gpio.h> |
36 | #include <mach/regs-mem.h> | 37 | #include <mach/regs-mem.h> |
37 | #include <mach/regs-lcd.h> | 38 | #include <mach/regs-lcd.h> |
38 | #include <asm/plat-s3c/nand.h> | 39 | #include <plat/nand.h> |
40 | #include <plat/iic.h> | ||
39 | 41 | ||
40 | #include <linux/mtd/mtd.h> | 42 | #include <linux/mtd/mtd.h> |
41 | #include <linux/mtd/nand.h> | 43 | #include <linux/mtd/nand.h> |
@@ -45,6 +47,7 @@ | |||
45 | #include <plat/clock.h> | 47 | #include <plat/clock.h> |
46 | #include <plat/devs.h> | 48 | #include <plat/devs.h> |
47 | #include <plat/cpu.h> | 49 | #include <plat/cpu.h> |
50 | #include <asm/plat-s3c24xx/mci.h> | ||
48 | 51 | ||
49 | static struct map_desc at2440evb_iodesc[] __initdata = { | 52 | static struct map_desc at2440evb_iodesc[] __initdata = { |
50 | /* Nothing here */ | 53 | /* Nothing here */ |
@@ -162,19 +165,60 @@ static struct platform_device at2440evb_device_eth = { | |||
162 | }, | 165 | }, |
163 | }; | 166 | }; |
164 | 167 | ||
168 | static struct s3c24xx_mci_pdata at2440evb_mci_pdata = { | ||
169 | .gpio_detect = S3C2410_GPG10, | ||
170 | }; | ||
171 | |||
172 | /* 7" LCD panel */ | ||
173 | |||
174 | static struct s3c2410fb_display at2440evb_lcd_cfg __initdata = { | ||
175 | |||
176 | .lcdcon5 = S3C2410_LCDCON5_FRM565 | | ||
177 | S3C2410_LCDCON5_INVVLINE | | ||
178 | S3C2410_LCDCON5_INVVFRAME | | ||
179 | S3C2410_LCDCON5_PWREN | | ||
180 | S3C2410_LCDCON5_HWSWP, | ||
181 | |||
182 | .type = S3C2410_LCDCON1_TFT, | ||
183 | |||
184 | .width = 800, | ||
185 | .height = 480, | ||
186 | |||
187 | .pixclock = 33333, /* HCLK 60 MHz, divisor 2 */ | ||
188 | .xres = 800, | ||
189 | .yres = 480, | ||
190 | .bpp = 16, | ||
191 | .left_margin = 88, | ||
192 | .right_margin = 40, | ||
193 | .hsync_len = 128, | ||
194 | .upper_margin = 32, | ||
195 | .lower_margin = 11, | ||
196 | .vsync_len = 2, | ||
197 | }; | ||
198 | |||
199 | static struct s3c2410fb_mach_info at2440evb_fb_info __initdata = { | ||
200 | .displays = &at2440evb_lcd_cfg, | ||
201 | .num_displays = 1, | ||
202 | .default_display = 0, | ||
203 | }; | ||
204 | |||
165 | static struct platform_device *at2440evb_devices[] __initdata = { | 205 | static struct platform_device *at2440evb_devices[] __initdata = { |
166 | &s3c_device_usb, | 206 | &s3c_device_usb, |
167 | &s3c_device_wdt, | 207 | &s3c_device_wdt, |
168 | &s3c_device_adc, | 208 | &s3c_device_adc, |
169 | &s3c_device_i2c, | 209 | &s3c_device_i2c0, |
170 | &s3c_device_rtc, | 210 | &s3c_device_rtc, |
171 | &s3c_device_nand, | 211 | &s3c_device_nand, |
212 | &s3c_device_sdi, | ||
213 | &s3c_device_lcd, | ||
172 | &at2440evb_device_eth, | 214 | &at2440evb_device_eth, |
173 | }; | 215 | }; |
174 | 216 | ||
175 | static void __init at2440evb_map_io(void) | 217 | static void __init at2440evb_map_io(void) |
176 | { | 218 | { |
177 | s3c_device_nand.dev.platform_data = &at2440evb_nand_info; | 219 | s3c_device_nand.dev.platform_data = &at2440evb_nand_info; |
220 | s3c_device_sdi.name = "s3c2440-sdi"; | ||
221 | s3c_device_sdi.dev.platform_data = &at2440evb_mci_pdata; | ||
178 | 222 | ||
179 | s3c24xx_init_io(at2440evb_iodesc, ARRAY_SIZE(at2440evb_iodesc)); | 223 | s3c24xx_init_io(at2440evb_iodesc, ARRAY_SIZE(at2440evb_iodesc)); |
180 | s3c24xx_init_clocks(16934400); | 224 | s3c24xx_init_clocks(16934400); |
@@ -183,6 +227,9 @@ static void __init at2440evb_map_io(void) | |||
183 | 227 | ||
184 | static void __init at2440evb_init(void) | 228 | static void __init at2440evb_init(void) |
185 | { | 229 | { |
230 | s3c24xx_fb_set_platdata(&at2440evb_fb_info); | ||
231 | s3c_i2c0_set_platdata(NULL); | ||
232 | |||
186 | platform_add_devices(at2440evb_devices, ARRAY_SIZE(at2440evb_devices)); | 233 | platform_add_devices(at2440evb_devices, ARRAY_SIZE(at2440evb_devices)); |
187 | } | 234 | } |
188 | 235 | ||