diff options
author | Ben Dooks <ben-linux@fluff.org> | 2008-10-31 16:14:38 +0000 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2008-10-31 16:17:39 +0000 |
commit | 8fead5614a4651bb75b3c4c77459bf997db9d773 (patch) | |
tree | b20aeb6fbe1c67ebe1c3e4c1788f9a00fb3ee4cd /arch/arm/plat-s3c/dev-hsmmc.c | |
parent | 7cb9515352df927993eaad03db50680df1150e3c (diff) |
[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 5a5ef74ebde..4c05b39810e 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; +} |