mmc: pwrseq_simple: Support assigned-clocks
PATCH 1/1 mmc: pwrseq_simple: Support assigned-clocks
The clock subsystem now allows clock rates and parents to be configured in the device tree.
This requires calling of_clk_set_defaults() which is done automatically for platform, i2c, spi devices. Since pwrseq_simple does not fit into those catagories we must do it ourself.
With this patch the standard assigned-clocks, assigned-clock-rates, assigned-clock-parents DT properties to be used in pwrseq_simple nodes.
--- drivers/mmc/core/pwrseq_simple.c | 5 +++++ 1 file changed, 5 insertions(+)
drivers/mmc/core/pwrseq_simple.c +5 -0
@@ -8,6 +8,7 @@* Simple MMC power sequence management */ #include <linux/clk.h> +#include <linux/clk/clk-conf.h> #include <linux/kernel.h> #include <linux/slab.h> #include <linux/device.h>
@@ -108,6 +109,10 @@ struct mmc_pwrseq *mmc_pwrseq_simple_alloc(struct mmc_host *host,if (!pwrseq)return ERR_PTR (-ENOMEM ); + ret =of_clk_set_defaults (dev->of_node, false); +if (ret) + goto free; + pwrseq->ext_clk =clk_get (dev,"ext_clock" );if (IS_ERR (pwrseq->ext_clk) &&PTR_ERR (pwrseq->ext_clk) != -ENOENT ) {
PATCH 1/1 mmc: pwrseq_simple: Support assigned-clocks
+ Srini
Quoted 9 lines · Martin Fuzzey
The clock subsystem now allows clock rates and parents to be configured in the device tree.
This requires calling
of_clk_set_defaults()which is done automatically for platform, i2c, spi devices. Sincepwrseq_simpledoes not fit into those catagories we must do it ourself.With this patch the standard assigned-clocks, assigned-clock-rates, assigned-clock-parents DT properties to be used in
pwrseq_simplenodes.
I believe this should be solved when we have converted the each pwrseq method to become a platform driver. This is being worked on by Srinivas Kandagatla.
http://www.spinics.net/lists/arm-kernel/msg475605.html
Kind regards
Ulf Hansson
Quoted 30 lines
Signed-off-by Martin Fuzzey <[email protected]>--- drivers/mmc/core/pwrseq_simple.c | 5 +++++ 1 file changed, 5 insertions(+)drivers/mmc/core/pwrseq_simple.c +5
-0@@ -8,6 +8,7 @@* Simple MMC power sequence management */ #include <linux/clk.h> +#include <linux/clk/clk-conf.h> #include <linux/kernel.h> #include <linux/slab.h> #include <linux/device.h> @@ -108,6 +109,10 @@ struct mmc_pwrseq *mmc_pwrseq_simple_alloc(struct mmc_host *host,if (!pwrseq)return ERR_PTR (-ENOMEM ); + ret =of_clk_set_defaults (dev->of_node, false); +if (ret) + goto free; + pwrseq->ext_clk =clk_get (dev,"ext_clock" );if (IS_ERR (pwrseq->ext_clk) &&PTR_ERR (pwrseq->ext_clk) != -ENOENT ) {