mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-18 15:09:53 +00:00
omap_hsmmc: Add 8-bit bus width mode support
Signed-off-by: Jarkko Lavinen <jarkko.lavinen@nokia.com> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
This commit is contained in:
parent
0ccd76d4c2
commit
731530104a
@ -77,6 +77,7 @@
|
||||
#define MSBS (1 << 5)
|
||||
#define BCE (1 << 1)
|
||||
#define FOUR_BIT (1 << 1)
|
||||
#define DW8 (1 << 5)
|
||||
#define CC 0x1
|
||||
#define TC 0x02
|
||||
#define OD 0x1
|
||||
@ -817,6 +818,7 @@ static void omap_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
|
||||
u16 dsor = 0;
|
||||
unsigned long regval;
|
||||
unsigned long timeout;
|
||||
u32 con;
|
||||
|
||||
switch (ios->power_mode) {
|
||||
case MMC_POWER_OFF:
|
||||
@ -827,12 +829,18 @@ static void omap_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
|
||||
break;
|
||||
}
|
||||
|
||||
con = OMAP_HSMMC_READ(host->base, CON);
|
||||
switch (mmc->ios.bus_width) {
|
||||
case MMC_BUS_WIDTH_8:
|
||||
OMAP_HSMMC_WRITE(host->base, CON, con | DW8);
|
||||
break;
|
||||
case MMC_BUS_WIDTH_4:
|
||||
OMAP_HSMMC_WRITE(host->base, CON, con & ~DW8);
|
||||
OMAP_HSMMC_WRITE(host->base, HCTL,
|
||||
OMAP_HSMMC_READ(host->base, HCTL) | FOUR_BIT);
|
||||
break;
|
||||
case MMC_BUS_WIDTH_1:
|
||||
OMAP_HSMMC_WRITE(host->base, CON, con & ~DW8);
|
||||
OMAP_HSMMC_WRITE(host->base, HCTL,
|
||||
OMAP_HSMMC_READ(host->base, HCTL) & ~FOUR_BIT);
|
||||
break;
|
||||
@ -1057,7 +1065,9 @@ static int __init omap_mmc_probe(struct platform_device *pdev)
|
||||
mmc->ocr_avail = mmc_slot(host).ocr_mask;
|
||||
mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED;
|
||||
|
||||
if (pdata->slots[host->slot_id].wires >= 4)
|
||||
if (pdata->slots[host->slot_id].wires >= 8)
|
||||
mmc->caps |= MMC_CAP_8_BIT_DATA;
|
||||
else if (pdata->slots[host->slot_id].wires >= 4)
|
||||
mmc->caps |= MMC_CAP_4_BIT_DATA;
|
||||
|
||||
omap_hsmmc_init(host);
|
||||
|
Loading…
Reference in New Issue
Block a user