diff options
author | Ulf Hansson <ulf.hansson@linaro.org> | 2012-08-31 08:21:29 -0400 |
---|---|---|
committer | Mike Turquette <mturquette@linaro.org> | 2012-09-06 20:57:08 -0400 |
commit | 70b1fce2ec3a89e68a35d99e5e9c6c90338b3dd1 (patch) | |
tree | ce44f8077ac53a8f0e03faf50ed4296202ae7983 | |
parent | a093bde2b45a0a745f12c018e2d13c027d58641f (diff) |
clk: ux500: Support for prmcu_rate clock
The prmcu_rate clock is not gateable and has a rate which
only can be fetched.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Mike Turquette <mturquette@linaro.org>
-rw-r--r-- | drivers/clk/ux500/clk-prcmu.c | 14 | ||||
-rw-r--r-- | drivers/clk/ux500/clk.h | 5 |
2 files changed, 19 insertions, 0 deletions
diff --git a/drivers/clk/ux500/clk-prcmu.c b/drivers/clk/ux500/clk-prcmu.c index 1d779ad12169..930cdfeb47ab 100644 --- a/drivers/clk/ux500/clk-prcmu.c +++ b/drivers/clk/ux500/clk-prcmu.c | |||
@@ -153,6 +153,11 @@ static struct clk_ops clk_prcmu_gate_ops = { | |||
153 | .recalc_rate = clk_prcmu_recalc_rate, | 153 | .recalc_rate = clk_prcmu_recalc_rate, |
154 | }; | 154 | }; |
155 | 155 | ||
156 | static struct clk_ops clk_prcmu_rate_ops = { | ||
157 | .is_enabled = clk_prcmu_is_enabled, | ||
158 | .recalc_rate = clk_prcmu_recalc_rate, | ||
159 | }; | ||
160 | |||
156 | static struct clk_ops clk_prcmu_opp_gate_ops = { | 161 | static struct clk_ops clk_prcmu_opp_gate_ops = { |
157 | .prepare = clk_prcmu_opp_prepare, | 162 | .prepare = clk_prcmu_opp_prepare, |
158 | .unprepare = clk_prcmu_opp_unprepare, | 163 | .unprepare = clk_prcmu_opp_unprepare, |
@@ -228,6 +233,15 @@ struct clk *clk_reg_prcmu_gate(const char *name, | |||
228 | &clk_prcmu_gate_ops); | 233 | &clk_prcmu_gate_ops); |
229 | } | 234 | } |
230 | 235 | ||
236 | struct clk *clk_reg_prcmu_rate(const char *name, | ||
237 | const char *parent_name, | ||
238 | u8 cg_sel, | ||
239 | unsigned long flags) | ||
240 | { | ||
241 | return clk_reg_prcmu(name, parent_name, cg_sel, 0, flags, | ||
242 | &clk_prcmu_rate_ops); | ||
243 | } | ||
244 | |||
231 | struct clk *clk_reg_prcmu_opp_gate(const char *name, | 245 | struct clk *clk_reg_prcmu_opp_gate(const char *name, |
232 | const char *parent_name, | 246 | const char *parent_name, |
233 | u8 cg_sel, | 247 | u8 cg_sel, |
diff --git a/drivers/clk/ux500/clk.h b/drivers/clk/ux500/clk.h index 32085aa98865..836d7d16751e 100644 --- a/drivers/clk/ux500/clk.h +++ b/drivers/clk/ux500/clk.h | |||
@@ -35,6 +35,11 @@ struct clk *clk_reg_prcmu_gate(const char *name, | |||
35 | u8 cg_sel, | 35 | u8 cg_sel, |
36 | unsigned long flags); | 36 | unsigned long flags); |
37 | 37 | ||
38 | struct clk *clk_reg_prcmu_rate(const char *name, | ||
39 | const char *parent_name, | ||
40 | u8 cg_sel, | ||
41 | unsigned long flags); | ||
42 | |||
38 | struct clk *clk_reg_prcmu_opp_gate(const char *name, | 43 | struct clk *clk_reg_prcmu_opp_gate(const char *name, |
39 | const char *parent_name, | 44 | const char *parent_name, |
40 | u8 cg_sel, | 45 | u8 cg_sel, |