aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorDmitry Shmidt <dimitrysh@google.com>2011-06-08 15:02:00 -0700
committerColin Cross <ccross@android.com>2011-06-14 11:48:50 -0700
commitc497beb8743719a6e4f03a13aa99c5efd8faf270 (patch)
tree9297aac7ea3c76997223cd965e634774ddbf313b /arch/arm
parent2a4ab4f125d7ee722ff0ba46393e31636ee477ba (diff)
downloadkernel_samsung_tuna-c497beb8743719a6e4f03a13aa99c5efd8faf270.zip
kernel_samsung_tuna-c497beb8743719a6e4f03a13aa99c5efd8faf270.tar.gz
kernel_samsung_tuna-c497beb8743719a6e4f03a13aa99c5efd8faf270.tar.bz2
ARM: omap2: Add mmc_platform_data to hsmmc
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-omap2/hsmmc.c4
-rw-r--r--arch/arm/mach-omap2/hsmmc.h3
-rw-r--r--arch/arm/plat-omap/include/plat/mmc.h4
3 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/hsmmc.c b/arch/arm/mach-omap2/hsmmc.c
index af991ff..37842b6 100644
--- a/arch/arm/mach-omap2/hsmmc.c
+++ b/arch/arm/mach-omap2/hsmmc.c
@@ -351,6 +351,10 @@ static int __init omap_hsmmc_pdata_init(struct omap2_hsmmc_info *c,
mmc->slots[0].features |= HSMMC_HAS_48MHZ_MASTER_CLK;
}
+ if (c->mmc_data)
+ memcpy(&mmc->slots[0].mmc_data, c->mmc_data,
+ sizeof(struct mmc_platform_data));
+
/*
* NOTE: MMC slots should have a Vcc regulator set up.
* This may be from a TWL4030-family chip, another
diff --git a/arch/arm/mach-omap2/hsmmc.h b/arch/arm/mach-omap2/hsmmc.h
index f757e78..4bb6fbd 100644
--- a/arch/arm/mach-omap2/hsmmc.h
+++ b/arch/arm/mach-omap2/hsmmc.h
@@ -6,6 +6,8 @@
* published by the Free Software Foundation.
*/
+#include <asm/mach/mmc.h>
+
struct mmc_card;
struct omap2_hsmmc_info {
@@ -25,6 +27,7 @@ struct omap2_hsmmc_info {
char *name; /* or NULL for default */
struct device *dev; /* returned: pointer to mmc adapter */
int ocr_mask; /* temporary HACK */
+ struct mmc_platform_data *mmc_data;
/* Remux (pad configuration) when powering on/off */
void (*remux)(struct device *dev, int slot, int power_on);
/* init some special card */
diff --git a/arch/arm/plat-omap/include/plat/mmc.h b/arch/arm/plat-omap/include/plat/mmc.h
index f24ed41..d9edb6b 100644
--- a/arch/arm/plat-omap/include/plat/mmc.h
+++ b/arch/arm/plat-omap/include/plat/mmc.h
@@ -15,6 +15,7 @@
#include <linux/device.h>
#include <linux/mmc/host.h>
+#include <asm/mach/mmc.h>
#include <plat/board.h>
#define OMAP15XX_NR_MMC 1
@@ -147,6 +148,9 @@ struct omap_mmc_platform_data {
int card_detect_irq;
int (*card_detect)(struct device *dev, int slot);
+ /* Additional mmc configuration */
+ struct mmc_platform_data mmc_data;
+
unsigned int ban_openended:1;
} slots[OMAP_MMC_MAX_SLOTS];