aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-s3c2440
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-s3c2440')
-rw-r--r--arch/arm/mach-s3c2440/Kconfig2
-rw-r--r--arch/arm/mach-s3c2440/mach-anubis.c5
-rw-r--r--arch/arm/mach-s3c2440/mach-at2440evb.c45
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
375static struct sm501_platdata_gpio_i2c anubis_sm501_gpio_i2c[] = { 377static 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
386static struct sm501_platdata anubis_sm501_platdata = { 390static 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
50static struct map_desc at2440evb_iodesc[] __initdata = { 52static 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
168static struct s3c24xx_mci_pdata at2440evb_mci_pdata = {
169 .gpio_detect = S3C2410_GPG10,
170};
171
172/* 7" LCD panel */
173
174static 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
199static struct s3c2410fb_mach_info at2440evb_fb_info __initdata = {
200 .displays = &at2440evb_lcd_cfg,
201 .num_displays = 1,
202 .default_display = 0,
203};
204
166static struct platform_device *at2440evb_devices[] __initdata = { 205static 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
176static void __init at2440evb_map_io(void) 217static 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
185static void __init at2440evb_init(void) 228static 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