aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/clk/rockchip/clk.c
diff options
context:
space:
mode:
authorHeiko Stübner <heiko@sntech.de>2014-08-14 17:00:26 -0400
committerMike Turquette <mturquette@linaro.org>2014-09-02 18:03:18 -0400
commitfe94f974e9c8b820640a5873d81589ab67380516 (patch)
treeff4719b1c22c714be7734b914e5b264df4c7b768 /drivers/clk/rockchip/clk.c
parent1a4b1819950a278e44dd2e28c5cdb7d8b804dd73 (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.c13
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
300void __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}