diff options
author | Lars-Peter Clausen <lars@metafoo.de> | 2013-01-28 13:27:12 -0500 |
---|---|---|
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 @@ | |||
51 | #define BCM2835_SDHCI_WRITE_DELAY (((2 * 1000000) / MIN_FREQ) + 1) | 51 | #define BCM2835_SDHCI_WRITE_DELAY (((2 * 1000000) / MIN_FREQ) + 1) |
52 | 52 | ||
53 | struct bcm2835_sdhci { | 53 | struct bcm2835_sdhci { |
54 | struct clk *clk; | ||
55 | u32 shadow; | 54 | u32 shadow; |
56 | }; | 55 | }; |
57 | 56 | ||
@@ -120,27 +119,11 @@ static u8 bcm2835_sdhci_readb(struct sdhci_host *host, int reg) | |||
120 | return byte; | 119 | return byte; |
121 | } | 120 | } |
122 | 121 | ||
123 | static unsigned int bcm2835_sdhci_get_max_clock(struct sdhci_host *host) | ||
124 | { | ||
125 | struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); | ||
126 | struct bcm2835_sdhci *bcm2835_host = pltfm_host->priv; | ||
127 | |||
128 | return clk_get_rate(bcm2835_host->clk); | ||
129 | } | ||
130 | |||
131 | unsigned int bcm2835_sdhci_get_min_clock(struct sdhci_host *host) | 122 | unsigned int bcm2835_sdhci_get_min_clock(struct sdhci_host *host) |
132 | { | 123 | { |
133 | return MIN_FREQ; | 124 | return MIN_FREQ; |
134 | } | 125 | } |
135 | 126 | ||
136 | unsigned int bcm2835_sdhci_get_timeout_clock(struct sdhci_host *host) | ||
137 | { | ||
138 | struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); | ||
139 | struct bcm2835_sdhci *bcm2835_host = pltfm_host->priv; | ||
140 | |||
141 | return clk_get_rate(bcm2835_host->clk); | ||
142 | } | ||
143 | |||
144 | static struct sdhci_ops bcm2835_sdhci_ops = { | 127 | static struct sdhci_ops bcm2835_sdhci_ops = { |
145 | .write_l = bcm2835_sdhci_writel, | 128 | .write_l = bcm2835_sdhci_writel, |
146 | .write_w = bcm2835_sdhci_writew, | 129 | .write_w = bcm2835_sdhci_writew, |
@@ -148,9 +131,9 @@ static struct sdhci_ops bcm2835_sdhci_ops = { | |||
148 | .read_l = bcm2835_sdhci_readl, | 131 | .read_l = bcm2835_sdhci_readl, |
149 | .read_w = bcm2835_sdhci_readw, | 132 | .read_w = bcm2835_sdhci_readw, |
150 | .read_b = bcm2835_sdhci_readb, | 133 | .read_b = bcm2835_sdhci_readb, |
151 | .get_max_clock = bcm2835_sdhci_get_max_clock, | 134 | .get_max_clock = sdhci_pltfm_clk_get_max_clock, |
152 | .get_min_clock = bcm2835_sdhci_get_min_clock, | 135 | .get_min_clock = bcm2835_sdhci_get_min_clock, |
153 | .get_timeout_clock = bcm2835_sdhci_get_timeout_clock, | 136 | .get_timeout_clock = sdhci_pltfm_clk_get_max_clock, |
154 | }; | 137 | }; |
155 | 138 | ||
156 | static struct sdhci_pltfm_data bcm2835_sdhci_pdata = { | 139 | static struct sdhci_pltfm_data bcm2835_sdhci_pdata = { |
@@ -180,9 +163,9 @@ static int bcm2835_sdhci_probe(struct platform_device *pdev) | |||
180 | pltfm_host = sdhci_priv(host); | 163 | pltfm_host = sdhci_priv(host); |
181 | pltfm_host->priv = bcm2835_host; | 164 | pltfm_host->priv = bcm2835_host; |
182 | 165 | ||
183 | bcm2835_host->clk = devm_clk_get(&pdev->dev, NULL); | 166 | pltfm_host->clk = devm_clk_get(&pdev->dev, NULL); |
184 | if (IS_ERR(bcm2835_host->clk)) { | 167 | if (IS_ERR(pltfm_host->clk)) { |
185 | ret = PTR_ERR(bcm2835_host->clk); | 168 | ret = PTR_ERR(pltfm_host->clk); |
186 | goto err; | 169 | goto err; |
187 | } | 170 | } |
188 | 171 | ||