diff options
author | Mela Custodio <sessyargc@gmail.com> | 2012-11-03 17:40:16 +0000 |
---|---|---|
committer | Andy Fleming <afleming@freescale.com> | 2012-11-27 17:26:48 -0600 |
commit | 688c2d140bcd457210a279dc489825e75ab1743a (patch) | |
tree | 2f5c80c90f46eab3d6956f8ef8a3d9827a388f27 | |
parent | b7e3129e550957f046c29a917c63f4b503fbfcb9 (diff) | |
download | u-boot-imx-688c2d140bcd457210a279dc489825e75ab1743a.zip u-boot-imx-688c2d140bcd457210a279dc489825e75ab1743a.tar.gz u-boot-imx-688c2d140bcd457210a279dc489825e75ab1743a.tar.bz2 |
mmc: add no simultaenous power and vdd
Bring in the code from Linux kernel.
Added to Linux kernel by:
commit e08c1694d9e2138204f2b79b73f0f159074ce2f5
Author: Andres Salomon <dilinger@queued.net>
Date: Fri Jul 4 10:00:03 2008 -0700
Some HW balks when writing both voltage setting and power up at the same
time to SDHCI_POWER_CONTROL register.
Signed-off-by: Rommel G Custodio <sessyargc@gmail.com>
CC: Andy Fleming <afleming@freescale.com>
v2: fix attribution and SOB
Signed-off-by: Andy Fleming <afleming@freescale.com>
-rw-r--r-- | drivers/mmc/sdhci.c | 3 | ||||
-rw-r--r-- | include/sdhci.h | 1 |
2 files changed, 4 insertions, 0 deletions
diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c index 7845f87..b9cbe34 100644 --- a/drivers/mmc/sdhci.c +++ b/drivers/mmc/sdhci.c @@ -340,6 +340,9 @@ static void sdhci_set_power(struct sdhci_host *host, unsigned short power) return; } + if (host->quirks & SDHCI_QUIRK_NO_SIMULT_VDD_AND_POWER) + sdhci_writeb(host, pwr, SDHCI_POWER_CONTROL); + pwr |= SDHCI_POWER_ON; sdhci_writeb(host, pwr, SDHCI_POWER_CONTROL); diff --git a/include/sdhci.h b/include/sdhci.h index c44793d..cffbe53 100644 --- a/include/sdhci.h +++ b/include/sdhci.h @@ -225,6 +225,7 @@ #define SDHCI_QUIRK_BROKEN_VOLTAGE (1 << 4) #define SDHCI_QUIRK_NO_CD (1 << 5) #define SDHCI_QUIRK_WAIT_SEND_CMD (1 << 6) +#define SDHCI_QUIRK_NO_SIMULT_VDD_AND_POWER (1 << 7) /* to make gcc happy */ struct sdhci_host; |