summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPradeep Goudagunta <pgoudagunta@nvidia.com>2011-09-30 15:51:49 +0530
committerVarun Colbert <vcolbert@nvidia.com>2011-11-10 10:29:56 -0800
commit4222ea9464bda3553add672984f366e58a0eca95 (patch)
tree8500d638735b7c8fb48410afb4b3aca1787e3503
parent3f9a4e71def24184803fa709c9a1749f3687e35c (diff)
sdhci: tegra: Updated contorller clk rate setting
Setting controller clock rate to 100MHz if requested rate is between 12-100MHz and 208MHz if requested rate is greater than 100MHz. Bug 877336 Reviewed-on: http://git-master/r/55434 (cherry picked from commit a8eef6207abb643dedaeab9dd3a230eb6c169512) Change-Id: I6bae2a81f44fe448cc6286dbe00093283b42b3a8 Reviewed-on: http://git-master/r/62418 Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com>
-rw-r--r--drivers/mmc/host/sdhci-tegra.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c
index 99646c3c8ebd..5f15f34dbd8d 100644
--- a/drivers/mmc/host/sdhci-tegra.c
+++ b/drivers/mmc/host/sdhci-tegra.c
@@ -37,6 +37,8 @@
#define DRIVER_NAME "sdhci-tegra"
#define SDHCI_TEGRA_MIN_CONTROLLER_CLOCK 12000000
+#define SDHCI_TEGRA_STANDARD_CONTROLLER_CLOCK 104000000
+#define SDHCI_TEGRA_MAX_CONTROLLER_CLOCK 208000000
#define SDHCI_VENDOR_CLOCK_CNTRL 0x100
#ifndef CONFIG_ARCH_TEGRA_2x_SOC
@@ -213,6 +215,12 @@ static void tegra_sdhci_enable_clock(struct tegra_sdhci_host *host, int clock)
static void tegra_sdhci_set_clock(struct sdhci_host *sdhci, unsigned int clock)
{
struct tegra_sdhci_host *host = sdhci_priv(sdhci);
+
+ if (clock > SDHCI_TEGRA_MIN_CONTROLLER_CLOCK &&
+ clock <= SDHCI_TEGRA_STANDARD_CONTROLLER_CLOCK)
+ clock = SDHCI_TEGRA_STANDARD_CONTROLLER_CLOCK;
+ else if (clock > SDHCI_TEGRA_STANDARD_CONTROLLER_CLOCK)
+ clock = SDHCI_TEGRA_MAX_CONTROLLER_CLOCK;
pr_debug("tegra sdhci clock %s %u enabled=%d\n",
mmc_hostname(sdhci->mmc), clock, host->clk_enabled);