All of lore.kernel.org
 help / color / mirror / Atom feed
From: Judith Mendez <jm@ti.com>
To: Ulf Hansson <ulf.hansson@linaro.org>,
	Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Conor Dooley <conor+dt@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>,
	<linux-mmc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	Nishanth Menon <nm@ti.com>, Vignesh Raghavendra <vigneshr@ti.com>,
	Andrew Davis <afd@ti.com>, Udit Kumar <u-kumar1@ti.com>,
	Roger Quadros <rogerq@kernel.org>, <devicetree@vger.kernel.org>,
	Randolph Sapp <rs@ti.com>
Subject: [RFC PATCH 02/13] drivers: mmc: host: sdhci_am654: Write ITAPDLY for DDR52 timing
Date: Tue, 30 Jan 2024 18:37:03 -0600	[thread overview]
Message-ID: <20240131003714.2779593-3-jm@ti.com> (raw)
In-Reply-To: <20240131003714.2779593-1-jm@ti.com>

For DDR52 timing, DLL is enabled but tuning is not carried
out, therefore the ITAPDLY value in PHY CTRL 4 register is
not correct. Fix this by writing ITAPDLY after enabling DLL.

Signed-off-by: Judith Mendez <jm@ti.com>
---
 drivers/mmc/host/sdhci_am654.c | 27 +++++++++++++++------------
 1 file changed, 15 insertions(+), 12 deletions(-)

diff --git a/drivers/mmc/host/sdhci_am654.c b/drivers/mmc/host/sdhci_am654.c
index 59d205511312..0a1ed2ae2eef 100644
--- a/drivers/mmc/host/sdhci_am654.c
+++ b/drivers/mmc/host/sdhci_am654.c
@@ -170,7 +170,19 @@ struct sdhci_am654_driver_data {
 #define DLL_CALIB	(1 << 4)
 };
 
-static void sdhci_am654_setup_dll(struct sdhci_host *host, unsigned int clock)
+static void sdhci_am654_write_itapdly(struct sdhci_am654_data *sdhci_am654,
+				      u32 itapdly)
+{
+	/* Set ITAPCHGWIN before writing to ITAPDLY */
+	regmap_update_bits(sdhci_am654->base, PHY_CTRL4, ITAPCHGWIN_MASK,
+			   0x1 << ITAPCHGWIN_SHIFT);
+	regmap_update_bits(sdhci_am654->base, PHY_CTRL4, ITAPDLYSEL_MASK,
+			   itapdly << ITAPDLYSEL_SHIFT);
+	regmap_update_bits(sdhci_am654->base, PHY_CTRL4, ITAPCHGWIN_MASK, 0);
+}
+
+static void sdhci_am654_setup_dll(struct sdhci_host *host, unsigned int clock,
+				  unsigned char timing)
 {
 	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
 	struct sdhci_am654_data *sdhci_am654 = sdhci_pltfm_priv(pltfm_host);
@@ -236,17 +248,8 @@ static void sdhci_am654_setup_dll(struct sdhci_host *host, unsigned int clock)
 		dev_err(mmc_dev(host->mmc), "DLL failed to relock\n");
 		return;
 	}
-}
 
-static void sdhci_am654_write_itapdly(struct sdhci_am654_data *sdhci_am654,
-				      u32 itapdly)
-{
-	/* Set ITAPCHGWIN before writing to ITAPDLY */
-	regmap_update_bits(sdhci_am654->base, PHY_CTRL4, ITAPCHGWIN_MASK,
-			   1 << ITAPCHGWIN_SHIFT);
-	regmap_update_bits(sdhci_am654->base, PHY_CTRL4, ITAPDLYSEL_MASK,
-			   itapdly << ITAPDLYSEL_SHIFT);
-	regmap_update_bits(sdhci_am654->base, PHY_CTRL4, ITAPCHGWIN_MASK, 0);
+	sdhci_am654_write_itapdly(sdhci_am654, sdhci_am654->itap_del_sel[timing]);
 }
 
 static void sdhci_am654_setup_delay_chain(struct sdhci_am654_data *sdhci_am654,
@@ -298,7 +301,7 @@ static void sdhci_am654_set_clock(struct sdhci_host *host, unsigned int clock)
 	regmap_update_bits(sdhci_am654->base, PHY_CTRL4, mask, val);
 
 	if (timing > MMC_TIMING_UHS_SDR25 && clock >= CLOCK_TOO_SLOW_HZ) {
-		sdhci_am654_setup_dll(host, clock);
+		sdhci_am654_setup_dll(host, clock, timing);
 		sdhci_am654->dll_enable = true;
 	} else {
 		sdhci_am654_setup_delay_chain(sdhci_am654, timing);
-- 
2.34.1


  parent reply	other threads:[~2024-01-31  0:37 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-31  0:37 [RFC PATCH 00/13] Add tuning algorithm for delay chain Judith Mendez
2024-01-31  0:37 ` [RFC PATCH 01/13] drivers: mmc: host: sdhci_am654: " Judith Mendez
2024-01-31 11:04   ` Vignesh Raghavendra
2024-01-31 20:27     ` Judith Mendez
2024-02-02 10:00   ` Roger Quadros
2024-01-31  0:37 ` Judith Mendez [this message]
2024-01-31  0:37 ` [RFC PATCH 03/13] drivers: mmc: host: sdhci_am654: Add missing OTAP/ITAP enable Judith Mendez
2024-01-31  0:37 ` [RFC PATCH 04/13] drivers: mmc: host: sdhci_am654: Add ITAPDLYSEL in sdhci_j721e_4bit_set_clock Judith Mendez
2024-01-31  0:37 ` [RFC PATCH 05/13] drivers: mmc: host: sdhci_am654: Fix ITAPDLY for HS400 timing Judith Mendez
2024-01-31  0:37 ` [RFC PATCH 06/13] arm64: dts: ti: k3-am62a-main: Add sdhci0 instance Judith Mendez
2024-01-31 19:17   ` Nishanth Menon
2024-01-31 20:28     ` Judith Mendez
2024-01-31  0:37 ` [RFC PATCH 07/13] arm64: dts: ti: k3-am62a7-sk: Enable eMMC support Judith Mendez
2024-01-31  0:37 ` [RFC PATCH 08/13] arm64: dts: ti: k3-am62a-main: Add sdhci2 instance Judith Mendez
2024-01-31  0:37 ` [RFC PATCH 09/13] arm64: dts: ti: k3-am64-main: Update ITAP/OTAP values for MMC Judith Mendez
2024-01-31  0:37 ` [RFC PATCH 10/13] arm64: dts: ti: k3-am62-main: " Judith Mendez
2024-01-31  0:37 ` [RFC PATCH 11/13] arm64: dts: ti: k3-am62p: Add missing properties " Judith Mendez
2024-02-02  9:50   ` Roger Quadros
2024-02-12 23:38     ` Judith Mendez
2024-01-31  0:37 ` [RFC PATCH 12/13] arm64: dts: ti: k3-am6*: Remove DLL properties for soft phys Judith Mendez
2024-01-31  0:37 ` [RFC PATCH 13/13] arm64: dts: ti: k3-am6*: Reorganize MMC properties Judith Mendez
2024-02-02  9:54   ` Roger Quadros
2024-02-12 23:41     ` Judith Mendez
2024-01-31 13:35 ` [RFC PATCH 00/13] Add tuning algorithm for delay chain Raghavendra, Vignesh
2024-01-31 13:41   ` Krzysztof Kozlowski
2024-01-31 13:53     ` Raghavendra, Vignesh
2024-02-01  7:28       ` Krzysztof Kozlowski
2024-01-31 20:41   ` Judith Mendez

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240131003714.2779593-3-jm@ti.com \
    --to=jm@ti.com \
    --cc=adrian.hunter@intel.com \
    --cc=afd@ti.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=nm@ti.com \
    --cc=robh+dt@kernel.org \
    --cc=rogerq@kernel.org \
    --cc=rs@ti.com \
    --cc=u-kumar1@ti.com \
    --cc=ulf.hansson@linaro.org \
    --cc=vigneshr@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.