diff options
author | Rajendra Nayak <rnayak@ti.com> | 2012-06-01 14:02:49 +0530 |
---|---|---|
committer | Paul Walmsley <paul@pwsan.com> | 2012-11-12 19:10:19 -0700 |
commit | 8577413c0a26e9bc0b412289640243f3b20f4517 (patch) | |
tree | 03b2024a1c5474cd4e23ed07232460149d3dd13f /arch | |
parent | 23fb8ba3a8f55f28a7a89b64b3711fcf72239d7f (diff) | |
download | linux-3.10-8577413c0a26e9bc0b412289640243f3b20f4517.tar.gz linux-3.10-8577413c0a26e9bc0b412289640243f3b20f4517.tar.bz2 linux-3.10-8577413c0a26e9bc0b412289640243f3b20f4517.zip |
ARM: OMAP: clock: Define a function to enable clocks at init
Platform code can use omap2_clk_enable_init_clocks() to enable a
list of clocks that are needed to be enabled at init.
Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Signed-off-by: Mike Turquette <mturquette@ti.com>
[paul@pwsan.com: added kerneldoc to non-trivial new function]
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-omap2/clock.c | 21 | ||||
-rw-r--r-- | arch/arm/mach-omap2/clock.h | 1 |
2 files changed, 22 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/clock.c b/arch/arm/mach-omap2/clock.c index c64203e55d1..744e6eb17b2 100644 --- a/arch/arm/mach-omap2/clock.c +++ b/arch/arm/mach-omap2/clock.c @@ -580,6 +580,27 @@ int omap2_clk_disable_autoidle_all(void) return 0; } +/** + * omap2_clk_enable_init_clocks - prepare & enable a list of clocks + * @clk_names: ptr to an array of strings of clock names to enable + * @num_clocks: number of clock names in @clk_names + * + * Prepare and enable a list of clocks, named by @clk_names. No + * return value. XXX Deprecated; only needed until these clocks are + * properly claimed and enabled by the drivers or core code that uses + * them. XXX What code disables & calls clk_put on these clocks? + */ +void omap2_clk_enable_init_clocks(const char **clk_names, u8 num_clocks) +{ + struct clk *init_clk; + int i; + + for (i = 0; i < num_clocks; i++) { + init_clk = clk_get(NULL, clk_names[i]); + clk_prepare_enable(init_clk); + } +} + const struct clk_hw_omap_ops clkhwops_wait = { .find_idlest = omap2_clk_dflt_find_idlest, .find_companion = omap2_clk_dflt_find_companion, diff --git a/arch/arm/mach-omap2/clock.h b/arch/arm/mach-omap2/clock.h index 20a3be77cb8..e669fc83985 100644 --- a/arch/arm/mach-omap2/clock.h +++ b/arch/arm/mach-omap2/clock.h @@ -538,6 +538,7 @@ void omap2_clk_dflt_find_idlest(struct clk_hw_omap *clk, void omap2_init_clk_hw_omap_clocks(struct clk *clk); int omap2_clk_enable_autoidle_all(void); int omap2_clk_disable_autoidle_all(void); +void omap2_clk_enable_init_clocks(const char **clk_names, u8 num_clocks); #else int omap2_dflt_clk_enable(struct clk *clk); void omap2_dflt_clk_disable(struct clk *clk); |