diff options
Diffstat (limited to 'arch/arm/mach-s3c2440')
-rw-r--r-- | arch/arm/mach-s3c2440/Kconfig | 2 | ||||
-rw-r--r-- | arch/arm/mach-s3c2440/mach-anubis.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-s3c2440/mach-at2440evb.c | 45 |
3 files changed, 52 insertions, 0 deletions
diff --git a/arch/arm/mach-s3c2440/Kconfig b/arch/arm/mach-s3c2440/Kconfig index 57b9c57ff2b4..cde5ae9a4340 100644 --- a/arch/arm/mach-s3c2440/Kconfig +++ b/arch/arm/mach-s3c2440/Kconfig | |||
@@ -32,6 +32,7 @@ config MACH_ANUBIS | |||
32 | select S3C24XX_DCLK | 32 | select S3C24XX_DCLK |
33 | select PM_SIMTEC if PM | 33 | select PM_SIMTEC if PM |
34 | select HAVE_PATA_PLATFORM | 34 | select HAVE_PATA_PLATFORM |
35 | select S3C24XX_GPIO_EXTRA64 | ||
35 | help | 36 | help |
36 | Say Y here if you are using the Simtec Electronics ANUBIS | 37 | Say Y here if you are using the Simtec Electronics ANUBIS |
37 | development system | 38 | development system |
@@ -41,6 +42,7 @@ config MACH_OSIRIS | |||
41 | select CPU_S3C2440 | 42 | select CPU_S3C2440 |
42 | select S3C24XX_DCLK | 43 | select S3C24XX_DCLK |
43 | select PM_SIMTEC if PM | 44 | select PM_SIMTEC if PM |
45 | select S3C24XX_GPIO_EXTRA128 | ||
44 | help | 46 | help |
45 | Say Y here if you are using the Simtec IM2440D20 module, also | 47 | Say Y here if you are using the Simtec IM2440D20 module, also |
46 | known as the Osiris. | 48 | known as the Osiris. |
diff --git a/arch/arm/mach-s3c2440/mach-anubis.c b/arch/arm/mach-s3c2440/mach-anubis.c index a9bbc41c4568..b05d56e230a1 100644 --- a/arch/arm/mach-s3c2440/mach-anubis.c +++ b/arch/arm/mach-s3c2440/mach-anubis.c | |||
@@ -367,6 +367,8 @@ static struct sm501_initdata anubis_sm501_initdata = { | |||
367 | .mask = 0, | 367 | .mask = 0, |
368 | }, | 368 | }, |
369 | 369 | ||
370 | .devices = SM501_USE_GPIO, | ||
371 | |||
370 | /* set the SDRAM and bus clocks */ | 372 | /* set the SDRAM and bus clocks */ |
371 | .mclk = 72 * MHZ, | 373 | .mclk = 72 * MHZ, |
372 | .m1xclk = 144 * MHZ, | 374 | .m1xclk = 144 * MHZ, |
@@ -374,10 +376,12 @@ static struct sm501_initdata anubis_sm501_initdata = { | |||
374 | 376 | ||
375 | static struct sm501_platdata_gpio_i2c anubis_sm501_gpio_i2c[] = { | 377 | static struct sm501_platdata_gpio_i2c anubis_sm501_gpio_i2c[] = { |
376 | [0] = { | 378 | [0] = { |
379 | .bus_num = 1, | ||
377 | .pin_scl = 44, | 380 | .pin_scl = 44, |
378 | .pin_sda = 45, | 381 | .pin_sda = 45, |
379 | }, | 382 | }, |
380 | [1] = { | 383 | [1] = { |
384 | .bus_num = 2, | ||
381 | .pin_scl = 40, | 385 | .pin_scl = 40, |
382 | .pin_sda = 41, | 386 | .pin_sda = 41, |
383 | }, | 387 | }, |
@@ -385,6 +389,7 @@ static struct sm501_platdata_gpio_i2c anubis_sm501_gpio_i2c[] = { | |||
385 | 389 | ||
386 | static struct sm501_platdata anubis_sm501_platdata = { | 390 | static struct sm501_platdata anubis_sm501_platdata = { |
387 | .init = &anubis_sm501_initdata, | 391 | .init = &anubis_sm501_initdata, |
392 | .gpio_base = -1, | ||
388 | .gpio_i2c = anubis_sm501_gpio_i2c, | 393 | .gpio_i2c = anubis_sm501_gpio_i2c, |
389 | .gpio_i2c_nr = ARRAY_SIZE(anubis_sm501_gpio_i2c), | 394 | .gpio_i2c_nr = ARRAY_SIZE(anubis_sm501_gpio_i2c), |
390 | }; | 395 | }; |
diff --git a/arch/arm/mach-s3c2440/mach-at2440evb.c b/arch/arm/mach-s3c2440/mach-at2440evb.c index 55e07ae5ab8c..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 | ||
@@ -46,6 +47,7 @@ | |||
46 | #include <plat/clock.h> | 47 | #include <plat/clock.h> |
47 | #include <plat/devs.h> | 48 | #include <plat/devs.h> |
48 | #include <plat/cpu.h> | 49 | #include <plat/cpu.h> |
50 | #include <asm/plat-s3c24xx/mci.h> | ||
49 | 51 | ||
50 | static struct map_desc at2440evb_iodesc[] __initdata = { | 52 | static struct map_desc at2440evb_iodesc[] __initdata = { |
51 | /* Nothing here */ | 53 | /* Nothing here */ |
@@ -163,6 +165,43 @@ static struct platform_device at2440evb_device_eth = { | |||
163 | }, | 165 | }, |
164 | }; | 166 | }; |
165 | 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 | |||
166 | static struct platform_device *at2440evb_devices[] __initdata = { | 205 | static struct platform_device *at2440evb_devices[] __initdata = { |
167 | &s3c_device_usb, | 206 | &s3c_device_usb, |
168 | &s3c_device_wdt, | 207 | &s3c_device_wdt, |
@@ -170,12 +209,16 @@ static struct platform_device *at2440evb_devices[] __initdata = { | |||
170 | &s3c_device_i2c0, | 209 | &s3c_device_i2c0, |
171 | &s3c_device_rtc, | 210 | &s3c_device_rtc, |
172 | &s3c_device_nand, | 211 | &s3c_device_nand, |
212 | &s3c_device_sdi, | ||
213 | &s3c_device_lcd, | ||
173 | &at2440evb_device_eth, | 214 | &at2440evb_device_eth, |
174 | }; | 215 | }; |
175 | 216 | ||
176 | static void __init at2440evb_map_io(void) | 217 | static void __init at2440evb_map_io(void) |
177 | { | 218 | { |
178 | 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; | ||
179 | 222 | ||
180 | s3c24xx_init_io(at2440evb_iodesc, ARRAY_SIZE(at2440evb_iodesc)); | 223 | s3c24xx_init_io(at2440evb_iodesc, ARRAY_SIZE(at2440evb_iodesc)); |
181 | s3c24xx_init_clocks(16934400); | 224 | s3c24xx_init_clocks(16934400); |
@@ -184,7 +227,9 @@ static void __init at2440evb_map_io(void) | |||
184 | 227 | ||
185 | static void __init at2440evb_init(void) | 228 | static void __init at2440evb_init(void) |
186 | { | 229 | { |
230 | s3c24xx_fb_set_platdata(&at2440evb_fb_info); | ||
187 | s3c_i2c0_set_platdata(NULL); | 231 | s3c_i2c0_set_platdata(NULL); |
232 | |||
188 | platform_add_devices(at2440evb_devices, ARRAY_SIZE(at2440evb_devices)); | 233 | platform_add_devices(at2440evb_devices, ARRAY_SIZE(at2440evb_devices)); |
189 | } | 234 | } |
190 | 235 | ||