summaryrefslogtreecommitdiff
path: root/drivers/mmc/host/sdhci-tegra.c
diff options
context:
space:
mode:
authorPrashant Gaikwad <pgaikwad@nvidia.com>2011-08-16 18:15:01 +0530
committerVarun Colbert <vcolbert@nvidia.com>2011-08-16 17:54:21 -0700
commit8a87fcba2fc76a2220e93616c6119dd933a7aaab (patch)
treef1cf8c7f7d24b34e9f4d7f30110a78caeb21775f /drivers/mmc/host/sdhci-tegra.c
parent458732fb452d5dc981f1608dd35fa5349f98b339 (diff)
sdhci: tegra: correct clock setting at set_clk
Limit max sdio clock when enabling. Bug 834281 Bug 845180 Change-Id: I408bcae0a47c367073c38e897383337306f691db Reviewed-on: http://git-master/r/47322 Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com> Tested-by: Prashant Gaikwad <pgaikwad@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'drivers/mmc/host/sdhci-tegra.c')
-rw-r--r--drivers/mmc/host/sdhci-tegra.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c
index 3bffca0d5f77..ce68286e09c3 100644
--- a/drivers/mmc/host/sdhci-tegra.c
+++ b/drivers/mmc/host/sdhci-tegra.c
@@ -73,6 +73,7 @@ struct tegra_sdhci_host {
int wp_gpio_polarity;
unsigned int tap_delay;
unsigned int max_clk;
+ unsigned int clk_limit;
struct regulator *vsd;
unsigned int card_present;
struct regulator *reg_vdd_slot;
@@ -169,6 +170,8 @@ static void tegra_sdhci_enable_clock(struct tegra_sdhci_host *host, int clock)
sdhci_writeb(host->sdhci, val, SDHCI_VENDOR_CLOCK_CNTRL);
host->clk_enabled = 1;
}
+ if (host->clk_limit && (clock > host->clk_limit))
+ clock = host->clk_limit;
if (clock < SDHCI_TEGRA_MIN_CONTROLLER_CLOCK)
clk_set_rate(host->clk, SDHCI_TEGRA_MIN_CONTROLLER_CLOCK);
else
@@ -300,6 +303,7 @@ static int __devinit tegra_sdhci_probe(struct platform_device *pdev)
host->sdhci = sdhci;
host->card_always_on = (plat->power_gpio == -1) ? 1 : 0;
host->max_clk = plat->max_clk;
+ host->clk_limit = plat->clk_limit;
host->tap_delay = plat->tap_delay;
host->cd_gpio = plat->cd_gpio;
host->cd_gpio_polarity = plat->cd_gpio_polarity;