diff options
author | arnaud.patard@rtp-net.org <arnaud.patard@rtp-net.org> | 2009-11-17 08:54:56 -0500 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2009-11-30 20:35:04 -0500 |
commit | 3909b9f7a3d7271539db491d3a83d47363a1f855 (patch) | |
tree | b925b1e7c9dc0c43ca9a6a17d30c0918a7e8a10c /arch | |
parent | 7bcb7eda99f1091055d547aee1a1d8e65b59c592 (diff) |
ARM: H1940: add mmc device
Add mmc host support to h1940
Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
[ben-linux@fluff.org: tidy description]
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-s3c2410/mach-h1940.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/arch/arm/mach-s3c2410/mach-h1940.c b/arch/arm/mach-s3c2410/mach-h1940.c index 20f3400c54ca..329f6ffb8c65 100644 --- a/arch/arm/mach-s3c2410/mach-h1940.c +++ b/arch/arm/mach-s3c2410/mach-h1940.c | |||
@@ -21,6 +21,9 @@ | |||
21 | #include <linux/serial_core.h> | 21 | #include <linux/serial_core.h> |
22 | #include <linux/platform_device.h> | 22 | #include <linux/platform_device.h> |
23 | #include <linux/io.h> | 23 | #include <linux/io.h> |
24 | #include <linux/gpio.h> | ||
25 | |||
26 | #include <linux/mmc/host.h> | ||
24 | 27 | ||
25 | #include <asm/mach/arch.h> | 28 | #include <asm/mach/arch.h> |
26 | #include <asm/mach/map.h> | 29 | #include <asm/mach/map.h> |
@@ -32,9 +35,12 @@ | |||
32 | 35 | ||
33 | #include <plat/regs-serial.h> | 36 | #include <plat/regs-serial.h> |
34 | #include <mach/regs-lcd.h> | 37 | #include <mach/regs-lcd.h> |
35 | #include <mach/regs-gpio.h> | ||
36 | #include <mach/regs-clock.h> | 38 | #include <mach/regs-clock.h> |
37 | 39 | ||
40 | #include <mach/regs-gpio.h> | ||
41 | #include <mach/gpio-fns.h> | ||
42 | #include <mach/gpio-nrs.h> | ||
43 | |||
38 | #include <mach/h1940.h> | 44 | #include <mach/h1940.h> |
39 | #include <mach/h1940-latch.h> | 45 | #include <mach/h1940-latch.h> |
40 | #include <mach/fb.h> | 46 | #include <mach/fb.h> |
@@ -46,6 +52,7 @@ | |||
46 | #include <plat/cpu.h> | 52 | #include <plat/cpu.h> |
47 | #include <plat/pll.h> | 53 | #include <plat/pll.h> |
48 | #include <plat/pm.h> | 54 | #include <plat/pm.h> |
55 | #include <plat/mci.h> | ||
49 | 56 | ||
50 | static struct map_desc h1940_iodesc[] __initdata = { | 57 | static struct map_desc h1940_iodesc[] __initdata = { |
51 | [0] = { | 58 | [0] = { |
@@ -181,6 +188,13 @@ static struct platform_device h1940_device_bluetooth = { | |||
181 | .id = -1, | 188 | .id = -1, |
182 | }; | 189 | }; |
183 | 190 | ||
191 | static struct s3c24xx_mci_pdata h1940_mmc_cfg = { | ||
192 | .gpio_detect = S3C2410_GPF(5), | ||
193 | .gpio_wprotect = S3C2410_GPH(8), | ||
194 | .set_power = NULL, | ||
195 | .ocr_avail = MMC_VDD_32_33, | ||
196 | }; | ||
197 | |||
184 | static struct platform_device *h1940_devices[] __initdata = { | 198 | static struct platform_device *h1940_devices[] __initdata = { |
185 | &s3c_device_usb, | 199 | &s3c_device_usb, |
186 | &s3c_device_lcd, | 200 | &s3c_device_lcd, |
@@ -190,6 +204,7 @@ static struct platform_device *h1940_devices[] __initdata = { | |||
190 | &s3c_device_usbgadget, | 204 | &s3c_device_usbgadget, |
191 | &h1940_device_leds, | 205 | &h1940_device_leds, |
192 | &h1940_device_bluetooth, | 206 | &h1940_device_bluetooth, |
207 | &s3c_device_sdi, | ||
193 | }; | 208 | }; |
194 | 209 | ||
195 | static void __init h1940_map_io(void) | 210 | static void __init h1940_map_io(void) |
@@ -219,6 +234,8 @@ static void __init h1940_init(void) | |||
219 | s3c24xx_udc_set_platdata(&h1940_udc_cfg); | 234 | s3c24xx_udc_set_platdata(&h1940_udc_cfg); |
220 | s3c_i2c0_set_platdata(NULL); | 235 | s3c_i2c0_set_platdata(NULL); |
221 | 236 | ||
237 | s3c_device_sdi.dev.platform_data = &h1940_mmc_cfg; | ||
238 | |||
222 | /* Turn off suspend on both USB ports, and switch the | 239 | /* Turn off suspend on both USB ports, and switch the |
223 | * selectable USB port to USB device mode. */ | 240 | * selectable USB port to USB device mode. */ |
224 | 241 | ||