diff options
author | Pinkava J <Jiri.Pinkava@vscht.cz> | 2010-05-06 09:22:28 -0400 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2010-05-06 20:41:32 -0400 |
commit | 50cdba782c3de35bf6d454096213c986146f46a5 (patch) | |
tree | 7d455284570d6e46f9283f03b4b0ae4ccec989f2 /arch/arm/mach-s3c2410/mach-n30.c | |
parent | aeb1b7e49f97e96e8b63c76c22f6fe6186a46ff3 (diff) |
ARM: n30: Add support for MMC card reader on Acer n30 / Acer n35
Signed-off-by: Jiri Pinkava <jiri.pinkava@vscht.cz>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Diffstat (limited to 'arch/arm/mach-s3c2410/mach-n30.c')
-rw-r--r-- | arch/arm/mach-s3c2410/mach-n30.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/mach-s3c2410/mach-n30.c b/arch/arm/mach-s3c2410/mach-n30.c index d63b48f8dcee..81973aa8194b 100644 --- a/arch/arm/mach-s3c2410/mach-n30.c +++ b/arch/arm/mach-s3c2410/mach-n30.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <linux/serial_core.h> | 26 | #include <linux/serial_core.h> |
27 | #include <linux/timer.h> | 27 | #include <linux/timer.h> |
28 | #include <linux/io.h> | 28 | #include <linux/io.h> |
29 | #include <linux/mmc/host.h> | ||
29 | 30 | ||
30 | #include <mach/hardware.h> | 31 | #include <mach/hardware.h> |
31 | #include <asm/irq.h> | 32 | #include <asm/irq.h> |
@@ -46,6 +47,7 @@ | |||
46 | #include <plat/clock.h> | 47 | #include <plat/clock.h> |
47 | #include <plat/cpu.h> | 48 | #include <plat/cpu.h> |
48 | #include <plat/devs.h> | 49 | #include <plat/devs.h> |
50 | #include <plat/mci.h> | ||
49 | #include <plat/s3c2410.h> | 51 | #include <plat/s3c2410.h> |
50 | #include <plat/udc.h> | 52 | #include <plat/udc.h> |
51 | 53 | ||
@@ -350,6 +352,12 @@ static struct s3c2410fb_mach_info n30_fb_info __initdata = { | |||
350 | .lpcsel = 0x06, | 352 | .lpcsel = 0x06, |
351 | }; | 353 | }; |
352 | 354 | ||
355 | static struct s3c24xx_mci_pdata n30_mci_cfg __initdata = { | ||
356 | .gpio_detect = S3C2410_GPF(1), | ||
357 | .gpio_wprotect = S3C2410_GPG(10), | ||
358 | .ocr_avail = MMC_VDD_32_33, | ||
359 | }; | ||
360 | |||
353 | static struct platform_device *n30_devices[] __initdata = { | 361 | static struct platform_device *n30_devices[] __initdata = { |
354 | &s3c_device_lcd, | 362 | &s3c_device_lcd, |
355 | &s3c_device_wdt, | 363 | &s3c_device_wdt, |
@@ -358,6 +366,7 @@ static struct platform_device *n30_devices[] __initdata = { | |||
358 | &s3c_device_ohci, | 366 | &s3c_device_ohci, |
359 | &s3c_device_rtc, | 367 | &s3c_device_rtc, |
360 | &s3c_device_usbgadget, | 368 | &s3c_device_usbgadget, |
369 | &s3c_device_sdi, | ||
361 | &n30_button_device, | 370 | &n30_button_device, |
362 | &n30_blue_led, | 371 | &n30_blue_led, |
363 | &n30_warning_led, | 372 | &n30_warning_led, |
@@ -370,6 +379,7 @@ static struct platform_device *n35_devices[] __initdata = { | |||
370 | &s3c_device_iis, | 379 | &s3c_device_iis, |
371 | &s3c_device_rtc, | 380 | &s3c_device_rtc, |
372 | &s3c_device_usbgadget, | 381 | &s3c_device_usbgadget, |
382 | &s3c_device_sdi, | ||
373 | &n35_button_device, | 383 | &n35_button_device, |
374 | &n35_blue_led, | 384 | &n35_blue_led, |
375 | &n35_warning_led, | 385 | &n35_warning_led, |
@@ -538,6 +548,7 @@ static void __init n30_init(void) | |||
538 | { | 548 | { |
539 | s3c24xx_fb_set_platdata(&n30_fb_info); | 549 | s3c24xx_fb_set_platdata(&n30_fb_info); |
540 | s3c24xx_udc_set_platdata(&n30_udc_cfg); | 550 | s3c24xx_udc_set_platdata(&n30_udc_cfg); |
551 | s3c24xx_mci_set_platdata(&n30_mci_cfg); | ||
541 | s3c_i2c0_set_platdata(&n30_i2ccfg); | 552 | s3c_i2c0_set_platdata(&n30_i2ccfg); |
542 | 553 | ||
543 | /* Turn off suspend on both USB ports, and switch the | 554 | /* Turn off suspend on both USB ports, and switch the |