Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1554998
| From | Ritesh Harjani <riteshh@codeaurora.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [RESEND PATCHv1 7/8] mmc: sdhci-msm: Make HS400 tuning follow as per recommeneded HW sequence |
| Date | 2017-01-10 08:10 +0100 |
| Message-ID | <sXYJb-6JW-11@gated-at.bofh.it> (permalink) |
| References | <sXYJb-6JW-5@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
During tuning execution for HS400 mode, HW sequence recommends
to select MCLK_SEL/2(0x3) in VENDOR_SPEC & sdhc msm clock at GCC
to be 400MHZ (nearest supported clk). Add this change in tuning
sequence during HS400 tuning.
Signed-off-by: Ritesh Harjani <riteshh@codeaurora.org>
---
drivers/mmc/host/sdhci-msm.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c
index 84d29dd..fa9bce3 100644
--- a/drivers/mmc/host/sdhci-msm.c
+++ b/drivers/mmc/host/sdhci-msm.c
@@ -151,7 +151,8 @@ static unsigned int msm_get_clock_rate_for_bus_mode(struct sdhci_host *host,
*/
if (ios.timing == MMC_TIMING_UHS_DDR50 ||
ios.timing == MMC_TIMING_MMC_DDR52 ||
- ios.timing == MMC_TIMING_MMC_HS400)
+ ios.timing == MMC_TIMING_MMC_HS400 ||
+ host->flags & SDHCI_HS400_TUNING)
clock *= 2;
return clock;
}
@@ -611,7 +612,8 @@ void sdhci_msm_hc_select_mode(struct sdhci_host *host)
{
struct mmc_ios ios = host->mmc->ios;
- if (ios.timing == MMC_TIMING_MMC_HS400)
+ if (ios.timing == MMC_TIMING_MMC_HS400 ||
+ host->flags & SDHCI_HS400_TUNING)
msm_hc_select_hs400(host);
else
msm_hc_select_default(host);
@@ -831,6 +833,16 @@ static int sdhci_msm_execute_tuning(struct sdhci_host *host, u32 opcode)
ios.timing == MMC_TIMING_UHS_SDR104))
return 0;
+ /*
+ * For HS400 tuning in HS200 timing requires:
+ * - select MCLK/2 in VENDOR_SPEC
+ * - program MCLK to 400MHz (or nearest supported) in GCC
+ */
+ if (host->flags & SDHCI_HS400_TUNING) {
+ sdhci_msm_hc_select_mode(host);
+ msm_set_clock_rate_for_bus_mode(host, ios.clock);
+ }
+
retry:
/* First of all reset the tuning block */
rc = msm_init_cm_dll(host);
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project.
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[RESEND PATCHv1 0/8] mmc: sdhci-msm: Provide support for enhanced strobe Ritesh Harjani <riteshh@codeaurora.org> - 2017-01-10 08:10 +0100 [RESEND PATCHv1 8/8] mmc: sdhci-msm: Provide enhanced_strobe mode feature support Ritesh Harjani <riteshh@codeaurora.org> - 2017-01-10 08:10 +0100 [RESEND PATCHv1 4/8] mmc: sdhci-msm: Reset vendor specific func register on probe Ritesh Harjani <riteshh@codeaurora.org> - 2017-01-10 08:10 +0100 [RESEND PATCHv1 7/8] mmc: sdhci-msm: Make HS400 tuning follow as per recommeneded HW sequence Ritesh Harjani <riteshh@codeaurora.org> - 2017-01-10 08:10 +0100 [RESEND PATCHv1 2/8] mmc: sdhci-msm: Factor out function to set/get msm clock rate Ritesh Harjani <riteshh@codeaurora.org> - 2017-01-10 08:10 +0100 [RESEND PATCHv1 6/8] mmc: sdhci: Clear SDHCI_HS400_TUNING flag after platform_execute_tuning Ritesh Harjani <riteshh@codeaurora.org> - 2017-01-10 08:10 +0100 [RESEND PATCHv1 3/8] mmc: sdhci-msm: Factor out sdhci_msm_hs400 Ritesh Harjani <riteshh@codeaurora.org> - 2017-01-10 08:10 +0100 [RESEND PATCHv1 1/8] mmc: sdhci-msm: Factor out sdhci_msm_hc_select_mode Ritesh Harjani <riteshh@codeaurora.org> - 2017-01-10 08:10 +0100
csiph-web