Skip to content

Commit d06d60d

Browse files
mnaranistorulf
authored andcommitted
mmc: sdhci-of-arasan: Issue DLL reset explicitly
In the current implementation DLL reset will be issued for each ITAP and OTAP setting inside ATF, this is creating issues in some scenarios and this sequence is not inline with the TRM. To fix the issue, DLL reset should be removed from the ATF and host driver will request it explicitly. This patch update host driver to explicitly request for DLL reset before ITAP (assert DLL) and after OTAP (release DLL) settings. Fixes: a5c8b2a ("mmc: sdhci-of-arasan: Add support for ZynqMP Platform Tap Delays Setup") Signed-off-by: Sai Krishna Potthuri <lakshmi.sai.krishna.potthuri@xilinx.com> Signed-off-by: Manish Narani <manish.narani@xilinx.com> Acked-by: Michal Simek <michal.simek@xilinx.com> Cc: stable@vger.kernel.org Link: https://lore.kernel.org/r/1605515565-117562-4-git-send-email-manish.narani@xilinx.com Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
1 parent d338c6d commit d06d60d

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

drivers/mmc/host/sdhci-of-arasan.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -635,6 +635,9 @@ static int sdhci_zynqmp_sdcardclk_set_phase(struct clk_hw *hw, int degrees)
635635
if (ret)
636636
pr_err("Error setting Output Tap Delay\n");
637637

638+
/* Release DLL Reset */
639+
zynqmp_pm_sd_dll_reset(node_id, PM_DLL_RESET_RELEASE);
640+
638641
return ret;
639642
}
640643

@@ -669,6 +672,9 @@ static int sdhci_zynqmp_sampleclk_set_phase(struct clk_hw *hw, int degrees)
669672
if (host->version < SDHCI_SPEC_300)
670673
return 0;
671674

675+
/* Assert DLL Reset */
676+
zynqmp_pm_sd_dll_reset(node_id, PM_DLL_RESET_ASSERT);
677+
672678
switch (host->timing) {
673679
case MMC_TIMING_MMC_HS:
674680
case MMC_TIMING_SD_HS:

0 commit comments

Comments
 (0)