diff options
author | Lars-Peter Clausen <lars@metafoo.de> | 2013-01-28 19:27:12 +0100 |
---|---|---|
committer | Chris Ball <cjb@laptop.org> | 2013-02-24 14:37:09 -0500 |
commit | d005d94359a8df84ea6e5ac137393707f9e87e81 (patch) | |
tree | 1cf5e1c0c6fc304e387705d00d72a82c50f82b10 /drivers/mmc/host/sdhci-bcm2835.c | |
parent | 20b92a30b5610a5222060417961bc4ccb42ea5a5 (diff) |
mmc: sdhci-pltfm: Add a common clk API implementation of get_timeout_clock
Quite a few drivers have a implementation of the get_timeout_clock
callback which simply returns the result of clk_get_rate on the device's
clock. This patch adds a common implementation of this to the sdhci-pltfm
module and replaces all custom implementations with the common one.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Tested-by: Stephen Warren <swarren@wwwdotorg.org>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Tested-by: Kevin Liu <kliu5@marvell.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'drivers/mmc/host/sdhci-bcm2835.c')
-rw-r--r-- | drivers/mmc/host/sdhci-bcm2835.c | 27 |
1 files changed, 5 insertions, 22 deletions
diff --git a/drivers/mmc/host/sdhci-bcm2835.c b/drivers/mmc/host/sdhci-bcm2835.c index 453825fcc5cf..1e97b89dac66 100644 --- a/drivers/mmc/host/sdhci-bcm2835.c +++ b/drivers/mmc/host/sdhci-bcm2835.c @@ -51,7 +51,6 @@ #define BCM2835_SDHCI_WRITE_DELAY (((2 * 1000000) / MIN_FREQ) + 1) struct bcm2835_sdhci { - struct clk *clk; u32 shadow; }; @@ -120,27 +119,11 @@ static u8 bcm2835_sdhci_readb(struct sdhci_host *host, int reg) return byte; } -static unsigned int bcm2835_sdhci_get_max_clock(struct sdhci_host *host) -{ - struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); - struct bcm2835_sdhci *bcm2835_host = pltfm_host->priv; - - return clk_get_rate(bcm2835_host->clk); -} - unsigned int bcm2835_sdhci_get_min_clock(struct sdhci_host *host) { return MIN_FREQ; } -unsigned int bcm2835_sdhci_get_timeout_clock(struct sdhci_host *host) -{ - struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); - struct bcm2835_sdhci *bcm2835_host = pltfm_host->priv; - - return clk_get_rate(bcm2835_host->clk); -} - static struct sdhci_ops bcm2835_sdhci_ops = { .write_l = bcm2835_sdhci_writel, .write_w = bcm2835_sdhci_writew, @@ -148,9 +131,9 @@ static struct sdhci_ops bcm2835_sdhci_ops = { .read_l = bcm2835_sdhci_readl, .read_w = bcm2835_sdhci_readw, .read_b = bcm2835_sdhci_readb, - .get_max_clock = bcm2835_sdhci_get_max_clock, + .get_max_clock = sdhci_pltfm_clk_get_max_clock, .get_min_clock = bcm2835_sdhci_get_min_clock, - .get_timeout_clock = bcm2835_sdhci_get_timeout_clock, + .get_timeout_clock = sdhci_pltfm_clk_get_max_clock, }; static struct sdhci_pltfm_data bcm2835_sdhci_pdata = { @@ -180,9 +163,9 @@ static int bcm2835_sdhci_probe(struct platform_device *pdev) pltfm_host = sdhci_priv(host); pltfm_host->priv = bcm2835_host; - bcm2835_host->clk = devm_clk_get(&pdev->dev, NULL); - if (IS_ERR(bcm2835_host->clk)) { - ret = PTR_ERR(bcm2835_host->clk); + pltfm_host->clk = devm_clk_get(&pdev->dev, NULL); + if (IS_ERR(pltfm_host->clk)) { + ret = PTR_ERR(pltfm_host->clk); goto err; } |