mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-16 08:44:21 +08:00
mmc: tegra: Implement HS400 enhanced strobe
Implement eMMC HS400 enhanced strobe. Enhanced strobe is an alternative mechanism to the HS400 tuning procedure. Signed-off-by: Aapo Vienamo <avienamo@nvidia.com> Acked-by: Adrian Hunter <adrian.hunter@intel.com> Acked-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
parent
f5313aaa92
commit
dfc9700cef
@ -43,6 +43,9 @@
|
||||
#define SDHCI_CLOCK_CTRL_PADPIPE_CLKEN_OVERRIDE BIT(3)
|
||||
#define SDHCI_CLOCK_CTRL_SPI_MODE_CLKEN_OVERRIDE BIT(2)
|
||||
|
||||
#define SDHCI_TEGRA_VENDOR_SYS_SW_CTRL 0x104
|
||||
#define SDHCI_TEGRA_SYS_SW_CTRL_ENHANCED_STROBE BIT(31)
|
||||
|
||||
#define SDHCI_TEGRA_VENDOR_CAP_OVERRIDES 0x10c
|
||||
#define SDHCI_TEGRA_CAP_OVERRIDES_DQS_TRIM_MASK 0x00003f00
|
||||
#define SDHCI_TEGRA_CAP_OVERRIDES_DQS_TRIM_SHIFT 8
|
||||
@ -294,6 +297,23 @@ static void tegra_sdhci_set_tap(struct sdhci_host *host, unsigned int tap)
|
||||
}
|
||||
}
|
||||
|
||||
static void tegra_sdhci_hs400_enhanced_strobe(struct mmc_host *mmc,
|
||||
struct mmc_ios *ios)
|
||||
{
|
||||
struct sdhci_host *host = mmc_priv(mmc);
|
||||
u32 val;
|
||||
|
||||
val = sdhci_readl(host, SDHCI_TEGRA_VENDOR_SYS_SW_CTRL);
|
||||
|
||||
if (ios->enhanced_strobe)
|
||||
val |= SDHCI_TEGRA_SYS_SW_CTRL_ENHANCED_STROBE;
|
||||
else
|
||||
val &= ~SDHCI_TEGRA_SYS_SW_CTRL_ENHANCED_STROBE;
|
||||
|
||||
sdhci_writel(host, val, SDHCI_TEGRA_VENDOR_SYS_SW_CTRL);
|
||||
|
||||
}
|
||||
|
||||
static void tegra_sdhci_reset(struct sdhci_host *host, u8 mask)
|
||||
{
|
||||
struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
|
||||
@ -996,6 +1016,9 @@ static int sdhci_tegra_probe(struct platform_device *pdev)
|
||||
sdhci_tegra_start_signal_voltage_switch;
|
||||
}
|
||||
|
||||
host->mmc_host_ops.hs400_enhanced_strobe =
|
||||
tegra_sdhci_hs400_enhanced_strobe;
|
||||
|
||||
rc = mmc_of_parse(host->mmc);
|
||||
if (rc)
|
||||
goto err_parse_dt;
|
||||
|
Loading…
Reference in New Issue
Block a user