diff options
author | Tomasz Figa <tomasz.figa@gmail.com> | 2013-12-18 12:45:47 -0500 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2013-12-18 12:45:47 -0500 |
commit | be4f668f444ae261d7a4c07713df0c946e7210f9 (patch) | |
tree | 32b92fb708396d954ff703173b5f1a5a079dfd9e /arch/arm/mach-s3c64xx | |
parent | 236940d2c951a84735fdd7b958b5159eaf501784 (diff) |
ARM: S3C64XX: Correct card detect type for HSMMC1 for MINI6410
According to board schematics, for HSMMC1 a GPIO line is used to detect
card presence, while currently it is being configured for internal card
detect line, which is multiplexed with card detect line of HSMMC0 and
thus breaking it.
This patch adds proper sdhci platform data setting card detect type to
external GPIO and fixing operation of HSMMC0.
Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'arch/arm/mach-s3c64xx')
-rw-r--r-- | arch/arm/mach-s3c64xx/mach-mini6410.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/mach-s3c64xx/mach-mini6410.c b/arch/arm/mach-s3c64xx/mach-mini6410.c index 58d46a3d7b78..97ae4703cb78 100644 --- a/arch/arm/mach-s3c64xx/mach-mini6410.c +++ b/arch/arm/mach-s3c64xx/mach-mini6410.c | |||
@@ -36,7 +36,9 @@ | |||
36 | #include <plat/devs.h> | 36 | #include <plat/devs.h> |
37 | #include <plat/fb.h> | 37 | #include <plat/fb.h> |
38 | #include <linux/platform_data/mtd-nand-s3c2410.h> | 38 | #include <linux/platform_data/mtd-nand-s3c2410.h> |
39 | #include <linux/platform_data/mmc-sdhci-s3c.h> | ||
39 | #include <plat/regs-serial.h> | 40 | #include <plat/regs-serial.h> |
41 | #include <plat/sdhci.h> | ||
40 | #include <linux/platform_data/touchscreen-s3c2410.h> | 42 | #include <linux/platform_data/touchscreen-s3c2410.h> |
41 | 43 | ||
42 | #include <video/platform_lcd.h> | 44 | #include <video/platform_lcd.h> |
@@ -214,6 +216,13 @@ static struct platform_device mini6410_lcd_powerdev = { | |||
214 | .dev.platform_data = &mini6410_lcd_power_data, | 216 | .dev.platform_data = &mini6410_lcd_power_data, |
215 | }; | 217 | }; |
216 | 218 | ||
219 | static struct s3c_sdhci_platdata mini6410_hsmmc1_pdata = { | ||
220 | .max_width = 4, | ||
221 | .cd_type = S3C_SDHCI_CD_GPIO, | ||
222 | .ext_cd_gpio = S3C64XX_GPN(10), | ||
223 | .ext_cd_gpio_invert = true, | ||
224 | }; | ||
225 | |||
217 | static struct platform_device *mini6410_devices[] __initdata = { | 226 | static struct platform_device *mini6410_devices[] __initdata = { |
218 | &mini6410_device_eth, | 227 | &mini6410_device_eth, |
219 | &s3c_device_hsmmc0, | 228 | &s3c_device_hsmmc0, |
@@ -321,6 +330,7 @@ static void __init mini6410_machine_init(void) | |||
321 | 330 | ||
322 | s3c_nand_set_platdata(&mini6410_nand_info); | 331 | s3c_nand_set_platdata(&mini6410_nand_info); |
323 | s3c_fb_set_platdata(&mini6410_lcd_pdata[features.lcd_index]); | 332 | s3c_fb_set_platdata(&mini6410_lcd_pdata[features.lcd_index]); |
333 | s3c_sdhci1_set_platdata(&mini6410_hsmmc1_pdata); | ||
324 | s3c24xx_ts_set_platdata(NULL); | 334 | s3c24xx_ts_set_platdata(NULL); |
325 | 335 | ||
326 | /* configure nCS1 width to 16 bits */ | 336 | /* configure nCS1 width to 16 bits */ |