mmc data transfer width is set as following: WIDE8[5]: 0 = Depend on WIDE4 1 = 8-bit mode WIDE4[1]: 1 = 4-bit mode 0 = 1-bit mode
In case of 4-bit mode reset 8-bit mode and in case of 1-bit mode reset 8-bit mode and 4-bit mode
Signed-off-by: Chander Kashyap chander.kashyap@linaro.org --- drivers/mmc/s5p_mmc.c | 10 +++++++--- 1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/mmc/s5p_mmc.c b/drivers/mmc/s5p_mmc.c index 7786ecf..6e6ad08 100644 --- a/drivers/mmc/s5p_mmc.c +++ b/drivers/mmc/s5p_mmc.c @@ -368,12 +368,16 @@ static void mmc_set_ios(struct mmc *mmc) * 1 = 4-bit mode * 0 = 1-bit mode */ - if (mmc->bus_width == 8) + if (mmc->bus_width == 8) { ctrl |= (1 << 5); - else if (mmc->bus_width == 4) + ctrl &= ~(1 << 1); + } else if (mmc->bus_width == 4) { ctrl |= (1 << 1); - else + ctrl &= ~(1 << 5); + } else { ctrl &= ~(1 << 1); + ctrl &= ~(1 << 5); + }
/* * OUTEDGEINV[2]