mirror of
https://github.com/torvalds/linux.git
synced 2024-11-13 15:41:39 +00:00
mmc: tmio: Extract bus_width modifications to a separate function
Move code for bus_width modification, out of the ->set_ios() callback and into a separate function, to simplify code. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Acked-by: Geert Uytterhoeven <geert+renesas@glider.be>
This commit is contained in:
parent
0369483efc
commit
9ae4ed7d30
@ -831,6 +831,19 @@ static void tmio_mmc_power_off(struct tmio_mmc_host *host)
|
||||
host->set_pwr(host->pdev, 0);
|
||||
}
|
||||
|
||||
static void tmio_mmc_set_bus_width(struct tmio_mmc_host *host,
|
||||
unsigned char bus_width)
|
||||
{
|
||||
switch (bus_width) {
|
||||
case MMC_BUS_WIDTH_1:
|
||||
sd_ctrl_write16(host, CTL_SD_MEM_CARD_OPT, 0x80e0);
|
||||
break;
|
||||
case MMC_BUS_WIDTH_4:
|
||||
sd_ctrl_write16(host, CTL_SD_MEM_CARD_OPT, 0x00e0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Set MMC clock / power.
|
||||
* Note: This controller uses a simple divider scheme therefore it cannot
|
||||
* run a MMC card at full speed (20MHz). The max clock is 24MHz on SD, but as
|
||||
@ -914,16 +927,8 @@ static void tmio_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
|
||||
}
|
||||
}
|
||||
|
||||
if (host->power != TMIO_MMC_OFF_STOP) {
|
||||
switch (ios->bus_width) {
|
||||
case MMC_BUS_WIDTH_1:
|
||||
sd_ctrl_write16(host, CTL_SD_MEM_CARD_OPT, 0x80e0);
|
||||
break;
|
||||
case MMC_BUS_WIDTH_4:
|
||||
sd_ctrl_write16(host, CTL_SD_MEM_CARD_OPT, 0x00e0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (host->power != TMIO_MMC_OFF_STOP)
|
||||
tmio_mmc_set_bus_width(host, ios->bus_width);
|
||||
|
||||
/* Let things settle. delay taken from winCE driver */
|
||||
udelay(140);
|
||||
|
Loading…
Reference in New Issue
Block a user