aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorViresh Kumar2012-09-28 15:58:23 +0530
committerChris Ball2012-10-07 17:41:45 -0400
commitda764f97df0e5e05e5453279f934531c0cf52e11 (patch)
treeb404910f0587cbaf3a61ec8dcc2c4f960ed59f56
parent067bf748bde70154a1fe1734b01f82b827c65b23 (diff)
mmc: sdhci-spear: Add clk_{un}prepare() support
clk_{un}prepare is mandatory for platforms using common clock framework. Since this driver is used by SPEAr platform, which supports common clock framework, add clk_{un}prepare() support for it. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Chris Ball <cjb@laptop.org>
-rw-r--r--Documentation/devicetree/bindings/mmc/sdhci-spear.txt5
-rw-r--r--drivers/mmc/host/sdhci-spear.c10
2 files changed, 6 insertions, 9 deletions
diff --git a/Documentation/devicetree/bindings/mmc/sdhci-spear.txt b/Documentation/devicetree/bindings/mmc/sdhci-spear.txt
index 84d6e297908f..fd3643e7e467 100644
--- a/Documentation/devicetree/bindings/mmc/sdhci-spear.txt
+++ b/Documentation/devicetree/bindings/mmc/sdhci-spear.txt
@@ -9,13 +9,10 @@ Required properties:
Optional properties:
- cd-gpios: card detect gpio, with zero flags.
-If your board don't support these gpios then don't pass the entry.
-
Example:
sdhci@fc000000 {
compatible = "st,spear300-sdhci";
reg = <0xfc000000 0x1000>;
-
- cd-gpios = <&gpio0 6 0>
+ cd-gpios = <&gpio0 6 0>;
};
diff --git a/drivers/mmc/host/sdhci-spear.c b/drivers/mmc/host/sdhci-spear.c
index ecad282741d6..6be89c032deb 100644
--- a/drivers/mmc/host/sdhci-spear.c
+++ b/drivers/mmc/host/sdhci-spear.c
@@ -140,7 +140,7 @@ static int __devinit sdhci_probe(struct platform_device *pdev)
goto err;
}
- ret = clk_enable(sdhci->clk);
+ ret = clk_prepare_enable(sdhci->clk);
if (ret) {
dev_dbg(&pdev->dev, "Error enabling clock\n");
goto put_clk;
@@ -260,7 +260,7 @@ set_drvdata:
free_host:
sdhci_free_host(host);
disable_clk:
- clk_disable(sdhci->clk);
+ clk_disable_unprepare(sdhci->clk);
put_clk:
clk_put(sdhci->clk);
err:
@@ -282,7 +282,7 @@ static int __devexit sdhci_remove(struct platform_device *pdev)
sdhci_remove_host(host, dead);
sdhci_free_host(host);
- clk_disable(sdhci->clk);
+ clk_disable_unprepare(sdhci->clk);
clk_put(sdhci->clk);
return 0;
@@ -297,7 +297,7 @@ static int sdhci_suspend(struct device *dev)
ret = sdhci_suspend_host(host);
if (!ret)
- clk_disable(sdhci->clk);
+ clk_disable_unprepare(sdhci->clk);
return ret;
}
@@ -308,7 +308,7 @@ static int sdhci_resume(struct device *dev)
struct spear_sdhci *sdhci = dev_get_platdata(dev);
int ret;
- ret = clk_enable(sdhci->clk);
+ ret = clk_prepare_enable(sdhci->clk);
if (ret) {
dev_dbg(dev, "Resume: Error enabling clock\n");
return ret;