mmc: sdhci-msm: Read and use DDR Config property from dt file
Certain platforms require different settings in the
SDCC_HC_REG_DDR_CONFIG register. This setting can change from platform
to platform. So the driver should check whether a particular platform
require a different setting by reading the DT file and use it.
Change-Id: I357ecb8c87b573ea94bac2adc5b997d13def57ef
Signed-off-by: Vijay Viswanath <vviswana@codeaurora.org>
diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c
index 55d9cf5..668e2bf 100644
--- a/drivers/mmc/host/sdhci-msm.c
+++ b/drivers/mmc/host/sdhci-msm.c
@@ -968,7 +968,10 @@
* Reprogramming the value in case it might have been modified by
* bootloaders.
*/
- if (msm_host->rclk_delay_fix) {
+ if (msm_host->pdata->rclk_wa) {
+ writel_relaxed(msm_host->pdata->ddr_config, host->ioaddr +
+ msm_host_offset->CORE_DDR_CONFIG_2);
+ } else if (msm_host->rclk_delay_fix) {
writel_relaxed(DDR_CONFIG_2_POR_VAL, host->ioaddr +
msm_host_offset->CORE_DDR_CONFIG_2);
} else {
@@ -1986,6 +1989,9 @@
msm_host->regs_restore.is_supported =
of_property_read_bool(np, "qcom,restore-after-cx-collapse");
+ if (!of_property_read_u32(np, "qcom,ddr-config", &pdata->ddr_config))
+ pdata->rclk_wa = true;
+
return pdata;
out:
return NULL;