From: Aapo Vienamo <avienamo@nvidia.com>
To: Rob Herring <robh+dt@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Thierry Reding <thierry.reding@gmail.com>,
Jonathan Hunter <jonathanh@nvidia.com>,
Ulf Hansson <ulf.hansson@linaro.org>,
Adrian Hunter <adrian.hunter@intel.com>,
Mikko Perttunen <mperttunen@nvidia.com>,
"Stefan Agner" <stefan@agner.ch>
Cc: <devicetree@vger.kernel.org>, <linux-tegra@vger.kernel.org>,
<linux-kernel@vger.kernel.org>, <linux-mmc@vger.kernel.org>,
Aapo Vienamo <avienamo@nvidia.com>
Subject: [PATCH v3 22/38] mmc: tegra: Configure default trim value on reset
Date: Thu, 30 Aug 2018 18:06:23 +0300 [thread overview]
Message-ID: <20180830150639.21048-23-avienamo@nvidia.com> (raw)
In-Reply-To: <20180830150639.21048-1-avienamo@nvidia.com>
Program the outbound sampling trim value in tegra_sdhci_reset(). Unlike
the outbound tap value this does not depend on the signaling mode and
needs to be only programmed once.
Signed-off-by: Aapo Vienamo <avienamo@nvidia.com>
Acked-by: Thierry Reding <treding@nvidia.com>
---
drivers/mmc/host/sdhci-tegra.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c
index 3fd54af05671..704c82cf7adf 100644
--- a/drivers/mmc/host/sdhci-tegra.c
+++ b/drivers/mmc/host/sdhci-tegra.c
@@ -37,6 +37,8 @@
#define SDHCI_TEGRA_VENDOR_CLOCK_CTRL 0x100
#define SDHCI_CLOCK_CTRL_TAP_MASK 0x00ff0000
#define SDHCI_CLOCK_CTRL_TAP_SHIFT 16
+#define SDHCI_CLOCK_CTRL_TRIM_MASK 0x1f000000
+#define SDHCI_CLOCK_CTRL_TRIM_SHIFT 24
#define SDHCI_CLOCK_CTRL_SDR50_TUNING_OVERRIDE BIT(5)
#define SDHCI_CLOCK_CTRL_PADPIPE_CLKEN_OVERRIDE BIT(3)
#define SDHCI_CLOCK_CTRL_SPI_MODE_CLKEN_OVERRIDE BIT(2)
@@ -287,7 +289,8 @@ static void tegra_sdhci_reset(struct sdhci_host *host, u8 mask)
SDHCI_MISC_CTRL_ENABLE_DDR50 |
SDHCI_MISC_CTRL_ENABLE_SDR104);
- clk_ctrl &= ~SDHCI_CLOCK_CTRL_SPI_MODE_CLKEN_OVERRIDE;
+ clk_ctrl &= ~(SDHCI_CLOCK_CTRL_TRIM_MASK |
+ SDHCI_CLOCK_CTRL_SPI_MODE_CLKEN_OVERRIDE);
if (tegra_sdhci_is_pad_and_regulator_valid(host)) {
/* Erratum: Enable SDHCI spec v3.00 support */
@@ -304,6 +307,8 @@ static void tegra_sdhci_reset(struct sdhci_host *host, u8 mask)
clk_ctrl |= SDHCI_CLOCK_CTRL_SDR50_TUNING_OVERRIDE;
}
+ clk_ctrl |= tegra_host->default_trim << SDHCI_CLOCK_CTRL_TRIM_SHIFT;
+
sdhci_writel(host, misc_ctrl, SDHCI_TEGRA_VENDOR_MISC_CTRL);
sdhci_writel(host, clk_ctrl, SDHCI_TEGRA_VENDOR_CLOCK_CTRL);
--
2.18.0
next prev parent reply other threads:[~2018-08-30 15:07 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-30 15:06 [PATCH v3 00/38] Tegra SDHCI add support for HS200 and UHS signaling Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 01/38] dt-bindings: Add Tegra PMC pad configuration bindings Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 02/38] dt-bindings: mmc: tegra: Add pad voltage control properties Aapo Vienamo
2018-08-31 13:15 ` Ulf Hansson
2018-08-30 15:06 ` [PATCH v3 03/38] dt-bindings: Add Tegra SDHCI pad pdpu offset bindings Aapo Vienamo
2018-08-31 13:15 ` Ulf Hansson
2018-08-30 15:06 ` [PATCH v3 04/38] dt-bindings: mmc: Add Tegra SDHCI sampling trimmer values Aapo Vienamo
2018-08-31 13:15 ` Ulf Hansson
2018-08-30 15:06 ` [PATCH v3 05/38] soc/tegra: pmc: Fix pad voltage configuration for Tegra186 Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 06/38] soc/tegra: pmc: Factor out DPD register bit calculation Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 07/38] soc/tegra: pmc: Implement tegra_io_pad_is_powered() Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 08/38] soc/tegra: pmc: Use X macro to generate IO pad tables Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 09/38] soc/tegra: pmc: Remove public pad voltage APIs Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 10/38] soc/tegra: pmc: Implement pad configuration via pinctrl Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 11/38] mmc: tegra: Reconfigure pad voltages during voltage switching Aapo Vienamo
2018-08-31 13:16 ` Ulf Hansson
2018-08-31 13:59 ` Thierry Reding
2018-08-30 15:06 ` [PATCH v3 12/38] mmc: tegra: Poll for calibration completion Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 13/38] mmc: tegra: Set calibration pad voltage reference Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 14/38] mmc: tegra: Power on the calibration pad Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 15/38] mmc: tegra: Disable card clock during pad calibration Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 16/38] mmc: tegra: Program pad autocal offsets from dt Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 17/38] mmc: tegra: Perform pad calibration after voltage switch Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 18/38] mmc: tegra: Enable pad calibration on Tegra210 and Tegra186 Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 19/38] mmc: tegra: Add a workaround for tap value change glitch Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 20/38] mmc: tegra: Parse default trim and tap from dt Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 21/38] mmc: tegra: Configure default tap values Aapo Vienamo
2018-08-30 15:06 ` Aapo Vienamo [this message]
2018-08-30 15:06 ` [PATCH v3 23/38] mmc: tegra: Use standard SDHCI tuning on Tegra210 and Tegra186 Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 24/38] mmc: tegra: Remove tegra_sdhci_writew() from tegra210_sdhci_ops Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 25/38] mmc: tegra: Disable card clock during tuning cmd on Tegra210 Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 26/38] mmc: tegra: Enable UHS and HS200 modes for Tegra210 Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 27/38] mmc: tegra: Enable UHS and HS200 modes for Tegra186 Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 28/38] arm64: dts: Add Tegra210 sdmmc pinctrl voltage states Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 29/38] arm64: dts: Add Tegra186 " Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 30/38] arm64: dts: tegra210-p2180: Allow ldo2 to go down to 1.8 V Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 31/38] arm64: dts: tegra210-p2180: Correct sdmmc4 vqmmc-supply Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 32/38] arm64: dts: tegra210-p2597: Remove no-1-8-v from sdmmc1 Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 33/38] arm64: dts: tegra186: Add sdmmc pad auto calibration offsets Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 34/38] arm64: dts: tegra210: " Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 35/38] arm64: dts: tegra210: Add SDHCI tap and trim values Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 36/38] arm64: dts: tegra186: " Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 37/38] arm64: dts: tegra186: Assign clocks for sdmmc1 and sdmmc4 Aapo Vienamo
2018-08-30 15:06 ` [PATCH v3 38/38] arm64: dts: tegra210: " Aapo Vienamo
2018-08-31 7:20 ` [PATCH v3 00/38] Tegra SDHCI add support for HS200 and UHS signaling Adrian Hunter
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=20180830150639.21048-23-avienamo@nvidia.com \
--to=avienamo@nvidia.com \
--cc=adrian.hunter@intel.com \
--cc=devicetree@vger.kernel.org \
--cc=jonathanh@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mperttunen@nvidia.com \
--cc=robh+dt@kernel.org \
--cc=stefan@agner.ch \
--cc=thierry.reding@gmail.com \
--cc=ulf.hansson@linaro.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).