diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2013-09-05 10:40:04 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-09-05 10:40:04 +0200 |
commit | 7f6b6d25d899fea83412255d1d819e3b6450f144 (patch) | |
tree | 4da546d3b4045c842af7ccad3004c6476cb4d523 /drivers/mci | |
parent | 1729b1798e1bfd4614a9cf7cf651cee8b6923283 (diff) | |
parent | f1cf4433bfc2d2e7bfdab8eacc401a0ccf2fe08d (diff) | |
download | barebox-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.c | 26 |
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); |