summaryrefslogtreecommitdiffstats
path: root/drivers/mci
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2013-09-05 10:40:04 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2013-09-05 10:40:04 +0200
commit7f6b6d25d899fea83412255d1d819e3b6450f144 (patch)
tree4da546d3b4045c842af7ccad3004c6476cb4d523 /drivers/mci
parent1729b1798e1bfd4614a9cf7cf651cee8b6923283 (diff)
parentf1cf4433bfc2d2e7bfdab8eacc401a0ccf2fe08d (diff)
downloadbarebox-7f6b6d25d899fea83412255d1d819e3b6450f144.tar.gz
barebox-7f6b6d25d899fea83412255d1d819e3b6450f144.tar.xz
Merge branch 'for-next/omap'
Conflicts: arch/arm/boards/pcm051/env/config
Diffstat (limited to 'drivers/mci')
-rw-r--r--drivers/mci/omap_hsmmc.c26
1 files changed, 21 insertions, 5 deletions
diff --git a/drivers/mci/omap_hsmmc.c b/drivers/mci/omap_hsmmc.c
index 62c79e1159..a2cd3fec59 100644
--- a/drivers/mci/omap_hsmmc.c
+++ b/drivers/mci/omap_hsmmc.c
@@ -574,6 +574,13 @@ static void mmc_set_ios(struct mci_host *mci, struct mci_ios *ios)
writel(readl(&mmc_base->sysctl) | CEN_ENABLE, &mmc_base->sysctl);
}
+static int omap_mmc_detect(struct device_d *dev)
+{
+ struct omap_hsmmc *hsmmc = dev->priv;
+
+ return mci_detect_card(&hsmmc->mci);
+}
+
static int omap_mmc_probe(struct device_d *dev)
{
struct omap_hsmmc *hsmmc;
@@ -593,7 +600,7 @@ static int omap_mmc_probe(struct device_d *dev)
hsmmc->mci.set_ios = mmc_set_ios;
hsmmc->mci.init = mmc_init_setup;
hsmmc->mci.host_caps = MMC_CAP_4_BIT_DATA | MMC_CAP_SD_HIGHSPEED |
- MMC_CAP_MMC_HIGHSPEED;
+ MMC_CAP_MMC_HIGHSPEED | MMC_CAP_8_BIT_DATA;
hsmmc->mci.hw_dev = dev;
hsmmc->iobase = dev_request_mem_region(dev, 0);
@@ -604,10 +611,19 @@ static int omap_mmc_probe(struct device_d *dev)
hsmmc->mci.f_min = 400000;
pdata = (struct omap_hsmmc_platform_data *)dev->platform_data;
- if (pdata && pdata->f_max)
- hsmmc->mci.f_max = pdata->f_max;
- else
- hsmmc->mci.f_max = 52000000;
+ if (pdata) {
+ if (pdata->f_max)
+ hsmmc->mci.f_max = pdata->f_max;
+ else
+ hsmmc->mci.f_max = 52000000;
+
+ if (pdata->devname)
+ hsmmc->mci.devname = pdata->devname;
+ }
+
+
+ dev->priv = hsmmc;
+ dev->detect = omap_mmc_detect,
mci_register(&hsmmc->mci);