aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-s5pv210
diff options
context:
space:
mode:
authorHyuk Lee <hyuk1.lee@samsung.com>2010-06-13 21:18:56 -0400
committerKukjin Kim <kgene.kim@samsung.com>2010-08-05 05:31:01 -0400
commit976a62f21940a3a5e3978cb4b6394a21484d4264 (patch)
tree3563efbc2b20f749b8fb696253096f1f0f58faf1 /arch/arm/mach-s5pv210
parent88a1cc438aa008584d5657db4372ba468f8c31e6 (diff)
ARM: S5PV210: Add support HSMMC on SMDKV210
This patch adds support HSMMC on SMDKV210, and gpio configuration for S5PV210 hsmmc3. Signed-off-by: Hyuk Lee <hyuk1.lee@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'arch/arm/mach-s5pv210')
-rw-r--r--arch/arm/mach-s5pv210/Kconfig5
-rw-r--r--arch/arm/mach-s5pv210/cpu.c1
-rw-r--r--arch/arm/mach-s5pv210/include/mach/map.h1
-rw-r--r--arch/arm/mach-s5pv210/mach-smdkv210.c4
-rw-r--r--arch/arm/mach-s5pv210/setup-sdhci-gpio.c20
5 files changed, 31 insertions, 0 deletions
diff --git a/arch/arm/mach-s5pv210/Kconfig b/arch/arm/mach-s5pv210/Kconfig
index 411bc9a529b2..12a2c6b6d8bd 100644
--- a/arch/arm/mach-s5pv210/Kconfig
+++ b/arch/arm/mach-s5pv210/Kconfig
@@ -102,6 +102,10 @@ config MACH_SMDKV210
102 select CPU_S5PV210 102 select CPU_S5PV210
103 select ARCH_SPARSEMEM_ENABLE 103 select ARCH_SPARSEMEM_ENABLE
104 select SAMSUNG_DEV_ADC 104 select SAMSUNG_DEV_ADC
105 select S3C_DEV_HSMMC
106 select S3C_DEV_HSMMC1
107 select S3C_DEV_HSMMC2
108 select S3C_DEV_HSMMC3
105 select SAMSUNG_DEV_IDE 109 select SAMSUNG_DEV_IDE
106 select SAMSUNG_DEV_KEYPAD 110 select SAMSUNG_DEV_KEYPAD
107 select SAMSUNG_DEV_TS 111 select SAMSUNG_DEV_TS
@@ -109,6 +113,7 @@ config MACH_SMDKV210
109 select S5PV210_SETUP_KEYPAD 113 select S5PV210_SETUP_KEYPAD
110 select HAVE_S3C2410_WATCHDOG 114 select HAVE_S3C2410_WATCHDOG
111 select S5PV210_SETUP_IDE 115 select S5PV210_SETUP_IDE
116 select S5PV210_SETUP_SDHCI
112 help 117 help
113 Machine support for Samsung SMDKV210 118 Machine support for Samsung SMDKV210
114 119
diff --git a/arch/arm/mach-s5pv210/cpu.c b/arch/arm/mach-s5pv210/cpu.c
index 15e983a3f09f..a0b1687247c9 100644
--- a/arch/arm/mach-s5pv210/cpu.c
+++ b/arch/arm/mach-s5pv210/cpu.c
@@ -87,6 +87,7 @@ void __init s5pv210_map_io(void)
87 s5pv210_default_sdhci0(); 87 s5pv210_default_sdhci0();
88 s5pv210_default_sdhci1(); 88 s5pv210_default_sdhci1();
89 s5pv210_default_sdhci2(); 89 s5pv210_default_sdhci2();
90 s5pv210_default_sdhci3();
90 91
91 s3c_cfcon_setname("s5pv210-pata"); 92 s3c_cfcon_setname("s5pv210-pata");
92 93
diff --git a/arch/arm/mach-s5pv210/include/mach/map.h b/arch/arm/mach-s5pv210/include/mach/map.h
index d0af0c1a526e..9f6c2ed2812f 100644
--- a/arch/arm/mach-s5pv210/include/mach/map.h
+++ b/arch/arm/mach-s5pv210/include/mach/map.h
@@ -101,6 +101,7 @@
101#define S3C_PA_HSMMC0 S5PV210_PA_HSMMC(0) 101#define S3C_PA_HSMMC0 S5PV210_PA_HSMMC(0)
102#define S3C_PA_HSMMC1 S5PV210_PA_HSMMC(1) 102#define S3C_PA_HSMMC1 S5PV210_PA_HSMMC(1)
103#define S3C_PA_HSMMC2 S5PV210_PA_HSMMC(2) 103#define S3C_PA_HSMMC2 S5PV210_PA_HSMMC(2)
104#define S3C_PA_HSMMC3 S5PV210_PA_HSMMC(3)
104#define S3C_PA_IIC S5PV210_PA_IIC0 105#define S3C_PA_IIC S5PV210_PA_IIC0
105#define S3C_PA_IIC1 S5PV210_PA_IIC1 106#define S3C_PA_IIC1 S5PV210_PA_IIC1
106#define S3C_PA_IIC2 S5PV210_PA_IIC2 107#define S3C_PA_IIC2 S5PV210_PA_IIC2
diff --git a/arch/arm/mach-s5pv210/mach-smdkv210.c b/arch/arm/mach-s5pv210/mach-smdkv210.c
index 485ea339dbc4..d20adf7407bc 100644
--- a/arch/arm/mach-s5pv210/mach-smdkv210.c
+++ b/arch/arm/mach-s5pv210/mach-smdkv210.c
@@ -103,6 +103,10 @@ static struct platform_device *smdkv210_devices[] __initdata = {
103 &s5pv210_device_ac97, 103 &s5pv210_device_ac97,
104 &s3c_device_adc, 104 &s3c_device_adc,
105 &s3c_device_cfcon, 105 &s3c_device_cfcon,
106 &s3c_device_hsmmc0,
107 &s3c_device_hsmmc1,
108 &s3c_device_hsmmc2,
109 &s3c_device_hsmmc3,
106 &samsung_device_keypad, 110 &samsung_device_keypad,
107 &s3c_device_ts, 111 &s3c_device_ts,
108 &s3c_device_wdt, 112 &s3c_device_wdt,
diff --git a/arch/arm/mach-s5pv210/setup-sdhci-gpio.c b/arch/arm/mach-s5pv210/setup-sdhci-gpio.c
index fe7d86dad14c..143bfec1e05f 100644
--- a/arch/arm/mach-s5pv210/setup-sdhci-gpio.c
+++ b/arch/arm/mach-s5pv210/setup-sdhci-gpio.c
@@ -102,3 +102,23 @@ void s5pv210_setup_sdhci2_cfg_gpio(struct platform_device *dev, int width)
102 s3c_gpio_setpull(S5PV210_GPG2(2), S3C_GPIO_PULL_UP); 102 s3c_gpio_setpull(S5PV210_GPG2(2), S3C_GPIO_PULL_UP);
103 s3c_gpio_cfgpin(S5PV210_GPG2(2), S3C_GPIO_SFN(2)); 103 s3c_gpio_cfgpin(S5PV210_GPG2(2), S3C_GPIO_SFN(2));
104} 104}
105
106void s5pv210_setup_sdhci3_cfg_gpio(struct platform_device *dev, int width)
107{
108 unsigned int gpio;
109
110 /* Set all the necessary GPG3[0:2] pins to special-function 2 */
111 for (gpio = S5PV210_GPG3(0); gpio < S5PV210_GPG3(2); gpio++) {
112 s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
113 s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
114 }
115
116 /* Data pin GPG3[3:6] to special-function 2 */
117 for (gpio = S5PV210_GPG3(3); gpio <= S5PV210_GPG3(6); gpio++) {
118 s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
119 s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
120 }
121
122 s3c_gpio_setpull(S5PV210_GPG3(2), S3C_GPIO_PULL_UP);
123 s3c_gpio_cfgpin(S5PV210_GPG3(2), S3C_GPIO_SFN(2));
124}