summaryrefslogtreecommitdiff
path: root/drivers/mmc/host
diff options
context:
space:
mode:
authorHaibo Chen <haibo.chen@nxp.com>2017-04-10 16:16:20 +0800
committerAnson Huang <Anson.Huang@nxp.com>2017-06-09 22:18:29 +0800
commitaa365df34d83541cd2c4a85e0b32a94de7a710c7 (patch)
tree08a578c834a30cee6ca5a8cee0152ed2c0f0255b /drivers/mmc/host
parent5619467aedd00e44279a7d6a6dc3dd2c3d8de981 (diff)
MLK-14539 mmc: sdhci: make no-1-8-v also work for DDR52 mode
MMC SDHCI maintainer Adrian Hunter Introduce SDHCI flags for signal voltage support and set them based on the supported transfer modes, except in the case where 3V DDR52 is supported but 1.8V is not. This patch add the support to make eMMC DDR52 only work at 3.3v when property 'no-1-8-v' defined. Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Diffstat (limited to 'drivers/mmc/host')
-rw-r--r--drivers/mmc/host/sdhci.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index e81246e03493..51697ba6526d 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -3333,6 +3333,7 @@ int sdhci_setup_host(struct sdhci_host *host)
if (host->quirks2 & SDHCI_QUIRK2_NO_1_8_V) {
host->caps1 &= ~(SDHCI_SUPPORT_SDR104 | SDHCI_SUPPORT_SDR50 |
SDHCI_SUPPORT_DDR50);
+ mmc->caps2 |= MMC_CAP2_DDR52_3_3V;
}
/* Any UHS-I mode in caps implies SDR12 and SDR25 support. */
@@ -3472,10 +3473,11 @@ int sdhci_setup_host(struct sdhci_host *host)
goto unreg;
}
- if ((mmc->caps & (MMC_CAP_UHS_SDR12 | MMC_CAP_UHS_SDR25 |
+ if (((mmc->caps & (MMC_CAP_UHS_SDR12 | MMC_CAP_UHS_SDR25 |
MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_SDR104 |
MMC_CAP_UHS_DDR50 | MMC_CAP_1_8V_DDR)) ||
- (mmc->caps2 & (MMC_CAP2_HS200_1_8V_SDR | MMC_CAP2_HS400_1_8V)))
+ (mmc->caps2 & (MMC_CAP2_HS200_1_8V_SDR | MMC_CAP2_HS400_1_8V))) &&
+ !(mmc->caps2 & MMC_CAP2_DDR52_3_3V))
host->flags |= SDHCI_SIGNALING_180;
if (mmc->caps2 & MMC_CAP2_HSX00_1_2V)