diff options
author | Heiko Stübner <heiko@sntech.de> | 2014-08-14 17:00:26 -0400 |
---|---|---|
committer | Mike Turquette <mturquette@linaro.org> | 2014-09-02 18:03:18 -0400 |
commit | fe94f974e9c8b820640a5873d81589ab67380516 (patch) | |
tree | ff4719b1c22c714be7734b914e5b264df4c7b768 /drivers/clk/rockchip/clk.c | |
parent | 1a4b1819950a278e44dd2e28c5cdb7d8b804dd73 (diff) |
clk: rockchip: protect critical clocks from getting disabled
The clock-tree contains clocks that should never get disabled automatically.
One example are the base ACLKs, the base supplies for all peripherals.
Therefore add a structure similar to the sunxi clock-tree to protect these
special clocks from being disabled.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Tested-by: Doug Anderson <dianders@chromium.org>
Tested-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Mike Turquette <mturquette@linaro.org>
Diffstat (limited to 'drivers/clk/rockchip/clk.c')
-rw-r--r-- | drivers/clk/rockchip/clk.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/clk/rockchip/clk.c b/drivers/clk/rockchip/clk.c index 5c9abd7bdc6a..d9c6db2151ba 100644 --- a/drivers/clk/rockchip/clk.c +++ b/drivers/clk/rockchip/clk.c | |||
@@ -296,3 +296,16 @@ void __init rockchip_clk_register_branches( | |||
296 | rockchip_clk_add_lookup(clk, list->id); | 296 | rockchip_clk_add_lookup(clk, list->id); |
297 | } | 297 | } |
298 | } | 298 | } |
299 | |||
300 | void __init rockchip_clk_protect_critical(const char *clocks[], int nclocks) | ||
301 | { | ||
302 | int i; | ||
303 | |||
304 | /* Protect the clocks that needs to stay on */ | ||
305 | for (i = 0; i < nclocks; i++) { | ||
306 | struct clk *clk = __clk_lookup(clocks[i]); | ||
307 | |||
308 | if (clk) | ||
309 | clk_prepare_enable(clk); | ||
310 | } | ||
311 | } | ||