diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2012-02-08 15:49:14 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-02-09 12:40:11 +0100 |
commit | 0f9892cce8792b2d44b07ba8431c2876290e1ac1 (patch) | |
tree | d4efdfdf3a4a10849e0abcbdedbe78b5c421f4af /drivers/mci/omap_hsmmc.c | |
parent | 74b83f91198c8dd81ba3afac2b83f10723bd39b5 (diff) | |
download | barebox-0f9892cce8792b2d44b07ba8431c2876290e1ac1.tar.gz barebox-0f9892cce8792b2d44b07ba8431c2876290e1ac1.tar.xz |
mci core: replace discrete ios values with struct ios
As we'll need more arguments to set_ios over time put them
in a struct mci_ios like the kernel does.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/mci/omap_hsmmc.c')
-rw-r--r-- | drivers/mci/omap_hsmmc.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/drivers/mci/omap_hsmmc.c b/drivers/mci/omap_hsmmc.c index e671bbea73..e629fba324 100644 --- a/drivers/mci/omap_hsmmc.c +++ b/drivers/mci/omap_hsmmc.c @@ -511,7 +511,7 @@ static int mmc_send_cmd(struct mci_host *mci, struct mci_cmd *cmd, } static void mmc_set_ios(struct mci_host *mci, struct device_d *dev, - unsigned bus_width, unsigned clock) + struct mci_ios *ios) { struct omap_hsmmc *hsmmc = to_hsmmc(mci); struct hsmmc *mmc_base = hsmmc->base; @@ -519,33 +519,34 @@ static void mmc_set_ios(struct mci_host *mci, struct device_d *dev, uint64_t start; /* configue bus width */ - switch (bus_width) { - case 8: + switch (ios->bus_width) { + case MMC_BUS_WIDTH_8: writel(readl(&mmc_base->con) | DTW_8_BITMODE, &mmc_base->con); break; - case 4: + case MMC_BUS_WIDTH_4: writel(readl(&mmc_base->con) & ~DTW_8_BITMODE, &mmc_base->con); writel(readl(&mmc_base->hctl) | DTW_4_BITMODE, &mmc_base->hctl); break; - case 1: - default: + case MMC_BUS_WIDTH_1: writel(readl(&mmc_base->con) & ~DTW_8_BITMODE, &mmc_base->con); writel(readl(&mmc_base->hctl) & ~DTW_4_BITMODE, &mmc_base->hctl); break; + default: + return; } /* configure clock with 96Mhz system clock. */ - if (clock != 0) { - dsor = (MMC_CLOCK_REFERENCE * 1000000 / clock); - if ((MMC_CLOCK_REFERENCE * 1000000) / dsor > clock) + if (ios->clock != 0) { + dsor = (MMC_CLOCK_REFERENCE * 1000000 / ios->clock); + if ((MMC_CLOCK_REFERENCE * 1000000) / dsor > ios->clock) dsor++; } |