diff options
author | Pradeep Goudagunta <pgoudagunta@nvidia.com> | 2011-09-30 15:51:49 +0530 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2011-11-10 10:29:56 -0800 |
commit | 4222ea9464bda3553add672984f366e58a0eca95 (patch) | |
tree | 8500d638735b7c8fb48410afb4b3aca1787e3503 | |
parent | 3f9a4e71def24184803fa709c9a1749f3687e35c (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.c | 8 |
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); |