summaryrefslogtreecommitdiff
path: root/drivers/mmc
diff options
context:
space:
mode:
authorKrishna Konda <kkonda@codeaurora.org>2014-06-23 14:50:38 -0700
committerSubhash Jadavani <subhashj@codeaurora.org>2016-05-27 10:29:08 -0700
commita2fbfacff042b6a282ae06ae4a1ca5b5a42714bb (patch)
treee6dcac9cae5e8ad2b9cb6a3411de365602490235 /drivers/mmc
parent7302266f4cc943dd37f0cfd7db16e83ecf28f7cb (diff)
sdhci: sdhci-msm: fix issue with hs400 mode
In HS400 mode, command line is still operated in SDR mode and not DDR mode like data lines. So in order to correctly process command responses, the hardware needs to be set appropriately or else there will command crc or similar errors due to incorrect sampling of the response. Change-Id: I426ff4fc4798afae254d11a608c800dc0b7bf765 Signed-off-by: Krishna Konda <kkonda@codeaurora.org>
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/host/sdhci-msm.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c
index 469b79ebe77b..6d00eff97a29 100644
--- a/drivers/mmc/host/sdhci-msm.c
+++ b/drivers/mmc/host/sdhci-msm.c
@@ -883,6 +883,11 @@ static int sdhci_msm_hs400_dll_calibration(struct sdhci_host *host)
if (ret)
goto out;
+ /* Write 1 to CMD_DAT_TRACK_SEL field in DLL_CONFIG */
+ writel_relaxed((readl_relaxed(host->ioaddr + CORE_DLL_CONFIG)
+ | CORE_CMD_DAT_TRACK_SEL),
+ host->ioaddr + CORE_DLL_CONFIG);
+
if (msm_host->use_cdclp533)
/* Calibrate CDCLP533 DLL HW */
ret = sdhci_msm_cdclp533_calibration(host);