aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-s5p64x0
diff options
context:
space:
mode:
authorRajeshwari Shinde <rajeshwari.s@samsung.com>2011-12-26 02:33:00 -0500
committerKukjin Kim <kgene.kim@samsung.com>2011-12-26 02:33:00 -0500
commit6640790ce294b2783d02751e2b64a98575b8f542 (patch)
tree9c073cd729297482cb5a2a0e175be40a871ee9af /arch/arm/mach-s5p64x0
parent0818c52756f46ab8f3e7d14a3a9e6e0a7d87b98f (diff)
ARM: S5P64X0: Enable SDHCI support
Enables SDHCI supports for SMDK6440 and SMDK6450. Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'arch/arm/mach-s5p64x0')
-rw-r--r--arch/arm/mach-s5p64x0/mach-smdk6440.c25
-rw-r--r--arch/arm/mach-s5p64x0/mach-smdk6450.c26
2 files changed, 50 insertions, 1 deletions
diff --git a/arch/arm/mach-s5p64x0/mach-smdk6440.c b/arch/arm/mach-s5p64x0/mach-smdk6440.c
index 4a1250cd1356..fe168a087531 100644
--- a/arch/arm/mach-s5p64x0/mach-smdk6440.c
+++ b/arch/arm/mach-s5p64x0/mach-smdk6440.c
@@ -24,6 +24,7 @@
24#include <linux/gpio.h> 24#include <linux/gpio.h>
25#include <linux/pwm_backlight.h> 25#include <linux/pwm_backlight.h>
26#include <linux/fb.h> 26#include <linux/fb.h>
27#include <linux/mmc/host.h>
27 28
28#include <video/platform_lcd.h> 29#include <video/platform_lcd.h>
29 30
@@ -52,6 +53,7 @@
52#include <plat/backlight.h> 53#include <plat/backlight.h>
53#include <plat/fb.h> 54#include <plat/fb.h>
54#include <plat/regs-fb.h> 55#include <plat/regs-fb.h>
56#include <plat/sdhci.h>
55 57
56#define SMDK6440_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \ 58#define SMDK6440_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \
57 S3C2410_UCON_RXILEVEL | \ 59 S3C2410_UCON_RXILEVEL | \
@@ -161,6 +163,25 @@ static struct platform_device *smdk6440_devices[] __initdata = {
161 &s5p6440_device_iis, 163 &s5p6440_device_iis,
162 &s3c_device_fb, 164 &s3c_device_fb,
163 &smdk6440_lcd_lte480wv, 165 &smdk6440_lcd_lte480wv,
166 &s3c_device_hsmmc0,
167 &s3c_device_hsmmc1,
168 &s3c_device_hsmmc2,
169};
170
171static struct s3c_sdhci_platdata smdk6440_hsmmc0_pdata __initdata = {
172 .cd_type = S3C_SDHCI_CD_NONE,
173};
174
175static struct s3c_sdhci_platdata smdk6440_hsmmc1_pdata __initdata = {
176 .cd_type = S3C_SDHCI_CD_INTERNAL,
177#if defined(CONFIG_S5P64X0_SD_CH1_8BIT)
178 .max_width = 8,
179 .host_caps = MMC_CAP_8_BIT_DATA,
180#endif
181};
182
183static struct s3c_sdhci_platdata smdk6440_hsmmc2_pdata __initdata = {
184 .cd_type = S3C_SDHCI_CD_NONE,
164}; 185};
165 186
166static struct s3c2410_platform_i2c s5p6440_i2c0_data __initdata = { 187static struct s3c2410_platform_i2c s5p6440_i2c0_data __initdata = {
@@ -234,6 +255,10 @@ static void __init smdk6440_machine_init(void)
234 s5p6440_set_lcd_interface(); 255 s5p6440_set_lcd_interface();
235 s3c_fb_set_platdata(&smdk6440_lcd_pdata); 256 s3c_fb_set_platdata(&smdk6440_lcd_pdata);
236 257
258 s3c_sdhci0_set_platdata(&smdk6440_hsmmc0_pdata);
259 s3c_sdhci1_set_platdata(&smdk6440_hsmmc1_pdata);
260 s3c_sdhci2_set_platdata(&smdk6440_hsmmc2_pdata);
261
237 platform_add_devices(smdk6440_devices, ARRAY_SIZE(smdk6440_devices)); 262 platform_add_devices(smdk6440_devices, ARRAY_SIZE(smdk6440_devices));
238} 263}
239 264
diff --git a/arch/arm/mach-s5p64x0/mach-smdk6450.c b/arch/arm/mach-s5p64x0/mach-smdk6450.c
index 0ab129ecf009..242a415dcf6b 100644
--- a/arch/arm/mach-s5p64x0/mach-smdk6450.c
+++ b/arch/arm/mach-s5p64x0/mach-smdk6450.c
@@ -24,6 +24,7 @@
24#include <linux/gpio.h> 24#include <linux/gpio.h>
25#include <linux/pwm_backlight.h> 25#include <linux/pwm_backlight.h>
26#include <linux/fb.h> 26#include <linux/fb.h>
27#include <linux/mmc/host.h>
27 28
28#include <video/platform_lcd.h> 29#include <video/platform_lcd.h>
29 30
@@ -52,6 +53,7 @@
52#include <plat/backlight.h> 53#include <plat/backlight.h>
53#include <plat/fb.h> 54#include <plat/fb.h>
54#include <plat/regs-fb.h> 55#include <plat/regs-fb.h>
56#include <plat/sdhci.h>
55 57
56#define SMDK6450_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \ 58#define SMDK6450_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \
57 S3C2410_UCON_RXILEVEL | \ 59 S3C2410_UCON_RXILEVEL | \
@@ -179,10 +181,28 @@ static struct platform_device *smdk6450_devices[] __initdata = {
179 &s5p6450_device_iis0, 181 &s5p6450_device_iis0,
180 &s3c_device_fb, 182 &s3c_device_fb,
181 &smdk6450_lcd_lte480wv, 183 &smdk6450_lcd_lte480wv,
182 184 &s3c_device_hsmmc0,
185 &s3c_device_hsmmc1,
186 &s3c_device_hsmmc2,
183 /* s5p6450_device_spi0 will be added */ 187 /* s5p6450_device_spi0 will be added */
184}; 188};
185 189
190static struct s3c_sdhci_platdata smdk6450_hsmmc0_pdata __initdata = {
191 .cd_type = S3C_SDHCI_CD_NONE,
192};
193
194static struct s3c_sdhci_platdata smdk6450_hsmmc1_pdata __initdata = {
195 .cd_type = S3C_SDHCI_CD_NONE,
196#if defined(CONFIG_S5P64X0_SD_CH1_8BIT)
197 .max_width = 8,
198 .host_caps = MMC_CAP_8_BIT_DATA,
199#endif
200};
201
202static struct s3c_sdhci_platdata smdk6450_hsmmc2_pdata __initdata = {
203 .cd_type = S3C_SDHCI_CD_NONE,
204};
205
186static struct s3c2410_platform_i2c s5p6450_i2c0_data __initdata = { 206static struct s3c2410_platform_i2c s5p6450_i2c0_data __initdata = {
187 .flags = 0, 207 .flags = 0,
188 .slave_addr = 0x10, 208 .slave_addr = 0x10,
@@ -254,6 +274,10 @@ static void __init smdk6450_machine_init(void)
254 s5p6450_set_lcd_interface(); 274 s5p6450_set_lcd_interface();
255 s3c_fb_set_platdata(&smdk6450_lcd_pdata); 275 s3c_fb_set_platdata(&smdk6450_lcd_pdata);
256 276
277 s3c_sdhci0_set_platdata(&smdk6450_hsmmc0_pdata);
278 s3c_sdhci1_set_platdata(&smdk6450_hsmmc1_pdata);
279 s3c_sdhci2_set_platdata(&smdk6450_hsmmc2_pdata);
280
257 platform_add_devices(smdk6450_devices, ARRAY_SIZE(smdk6450_devices)); 281 platform_add_devices(smdk6450_devices, ARRAY_SIZE(smdk6450_devices));
258} 282}
259 283