summaryrefslogtreecommitdiff
path: root/drivers/mmc
diff options
context:
space:
mode:
authorPavan Kunapuli <pkunapuli@nvidia.com>2013-02-01 22:32:38 +0530
committerMandar Padmawar <mpadmawar@nvidia.com>2013-02-22 05:49:18 -0800
commit42800cab851a693013f29b54f2a0f75d7a9683a8 (patch)
treecc78d04c59fcf5ffd3e9abd1ab7e9852df63111e /drivers/mmc
parent2c6b09135f87293170a09270f77f413e07e7cf67 (diff)
mmc: tegra: Enable HS200 mode support
Set MMC_CAP2_HS200 to enable HS200 mode support. Increase sdmmc4 base clock frequency of T114 chip to 208MHz. Bug 1225343 Change-Id: Ica171c8fe093f0c0ab35b4c46c2dcebaecf25134 Signed-off-by: Pavan Kunapuli <pkunapuli@nvidia.com> Reviewed-on: http://git-master/r/196484 Reviewed-by: Mandar Padmawar <mpadmawar@nvidia.com> Tested-by: Mandar Padmawar <mpadmawar@nvidia.com>
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/host/sdhci-tegra.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c
index 511fa1b38a6d..0f89f333ec0e 100644
--- a/drivers/mmc/host/sdhci-tegra.c
+++ b/drivers/mmc/host/sdhci-tegra.c
@@ -106,12 +106,14 @@ static void tegra3_sdhci_post_reset_init(struct sdhci_host *sdhci);
#if !defined(CONFIG_ARCH_TEGRA_2x_SOC) && !defined(CONFIG_ARCH_TEGRA_3x_SOC)
static void tegra11x_sdhci_post_reset_init(struct sdhci_host *sdhci);
+static unsigned int tegra11_sdhost_max_clk[4] = {
+ 208000000, 104000000, 208000000, 208000000 };
#endif
static unsigned int tegra_sdhost_min_freq;
static unsigned int tegra_sdhost_std_freq;
-#ifndef CONFIG_ARCH_TEGRA_2x_SOC
+#ifdef CONFIG_ARCH_TEGRA_3x_SOC
static unsigned int tegra3_sdhost_max_clk[4] = {
208000000, 104000000, 208000000, 104000000 };
#endif
@@ -418,8 +420,8 @@ static void tegra11x_sdhci_post_reset_init(struct sdhci_host *sdhci)
/* Set the base clock frequency */
vendor_ctrl = sdhci_readl(sdhci, SDHCI_VENDOR_CLOCK_CNTRL);
vendor_ctrl &= ~(0xFF << SDHCI_VENDOR_CLOCK_CNTRL_BASE_CLK_FREQ_SHIFT);
- vendor_ctrl |= (tegra3_sdhost_max_clk[tegra_host->instance] / 1000000) <<
- SDHCI_VENDOR_CLOCK_CNTRL_BASE_CLK_FREQ_SHIFT;
+ vendor_ctrl |= (tegra11_sdhost_max_clk[tegra_host->instance] / 1000000)
+ << SDHCI_VENDOR_CLOCK_CNTRL_BASE_CLK_FREQ_SHIFT;
vendor_ctrl |= SDHCI_VENDOR_CLOCK_CNTRL_PADPIPE_CLKEN_OVERRIDE;
vendor_ctrl &= ~SDHCI_VENDOR_CLOCK_CNTRL_SPI_MODE_CLKEN_OVERRIDE;
@@ -2062,7 +2064,6 @@ static int __devinit sdhci_tegra_probe(struct platform_device *pdev)
#ifdef CONFIG_MMC_BKOPS
host->mmc->caps2 |= MMC_CAP2_BKOPS;
#endif
-
tegra_sdhost_min_freq = TEGRA_SDHOST_MIN_FREQ;
#if defined(CONFIG_ARCH_TEGRA_2x_SOC)
tegra_host->hw_ops = &tegra_2x_sdhci_ops;
@@ -2073,6 +2074,7 @@ static int __devinit sdhci_tegra_probe(struct platform_device *pdev)
#else
tegra_host->hw_ops = &tegra_11x_sdhci_ops;
tegra_sdhost_std_freq = TEGRA3_SDHOST_STD_FREQ;
+ host->mmc->caps2 |= MMC_CAP2_HS200;
#endif
if (plat->nominal_vcore_uV)