[U-Boot] [PATCH] s5p-mmc: Fix ambiguous setting of data transfer width
Chander Kashyap
chander.kashyap at linaro.org
Tue Aug 30 12:55:31 CEST 2011
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 at 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]
--
1.7.4.1
More information about the U-Boot
mailing list