diff options
author | Ben Dooks <ben-linux@fluff.org> | 2008-10-31 19:14:38 +0300 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2008-12-16 02:39:34 +0300 |
commit | 5cc7fd88fc96072c333184ff359c818665ce2506 (patch) | |
tree | 5a91059f40729d6581bc477c0ef4421b681f42b7 /arch/arm/plat-s3c/dev-hsmmc.c | |
parent | ea522c7a54a1422b3ce8a1b9888f2108541ba047 (diff) | |
download | linux-5cc7fd88fc96072c333184ff359c818665ce2506.tar.xz |
[ARM] S3C6410: Add helper for setting SDHCI device information
Add the necessary helper functions for setting up the SDHCI
device information.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Diffstat (limited to 'arch/arm/plat-s3c/dev-hsmmc.c')
-rw-r--r-- | arch/arm/plat-s3c/dev-hsmmc.c | 37 |
1 files changed, 29 insertions, 8 deletions
diff --git a/arch/arm/plat-s3c/dev-hsmmc.c b/arch/arm/plat-s3c/dev-hsmmc.c index 5a5ef74ebde3..4c05b39810e2 100644 --- a/arch/arm/plat-s3c/dev-hsmmc.c +++ b/arch/arm/plat-s3c/dev-hsmmc.c @@ -13,8 +13,10 @@ #include <linux/kernel.h> #include <linux/platform_device.h> +#include <linux/mmc/host.h> #include <mach/map.h> +#include <plat/sdhci.h> #include <plat/devs.h> #include <plat/cpu.h> @@ -35,13 +37,32 @@ static struct resource s3c_hsmmc_resource[] = { static u64 s3c_device_hsmmc_dmamask = 0xffffffffUL; +struct s3c_sdhci_platdata s3c_hsmmc0_def_platdata = { + .max_width = 4, + .host_caps = (MMC_CAP_4_BIT_DATA | + MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED), +}; + struct platform_device s3c_device_hsmmc0 = { - .name = "s3c-sdhci", - .id = 0, - .num_resources = ARRAY_SIZE(s3c_hsmmc_resource), - .resource = s3c_hsmmc_resource, - .dev = { - .dma_mask = &s3c_device_hsmmc_dmamask, - .coherent_dma_mask = 0xffffffffUL - } + .name = "s3c-sdhci", + .id = 0, + .num_resources = ARRAY_SIZE(s3c_hsmmc_resource), + .resource = s3c_hsmmc_resource, + .dev = { + .dma_mask = &s3c_device_hsmmc_dmamask, + .coherent_dma_mask = 0xffffffffUL, + .platform_data = &s3c_hsmmc0_def_platdata, + }, }; + +void s3c_sdhci0_set_platdata(struct s3c_sdhci_platdata *pd) +{ + struct s3c_sdhci_platdata *set = &s3c_hsmmc0_def_platdata; + + set->max_width = pd->max_width; + + if (pd->cfg_gpio) + set->cfg_gpio = pd->cfg_gpio; + if (pd->cfg_card) + set->cfg_card = pd->cfg_card; +} |