aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlf Hansson <ulf.hansson@linaro.org>2012-10-10 07:42:27 -0400
committerMike Turquette <mturquette@ti.com>2012-11-09 19:47:06 -0500
commita816d250e866b01bd18b0dd2bcbe5f1951310094 (patch)
treecbb6ebfcdea25ed695a6f78064e80136858c8e6b
parentb2302c873bb7959958ffad4625a0876fc9294640 (diff)
clk: ux500: Support for prcmu_scalable_rate clock
The prcmu_scalable_rate clock can change rate but is not gateable. 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.c17
-rw-r--r--drivers/clk/ux500/clk.h6
2 files changed, 23 insertions, 0 deletions
diff --git a/drivers/clk/ux500/clk-prcmu.c b/drivers/clk/ux500/clk-prcmu.c
index 04577ca6a308..74faa7e3cf59 100644
--- a/drivers/clk/ux500/clk-prcmu.c
+++ b/drivers/clk/ux500/clk-prcmu.c
@@ -187,6 +187,13 @@ static struct clk_ops clk_prcmu_gate_ops = {
187 .recalc_rate = clk_prcmu_recalc_rate, 187 .recalc_rate = clk_prcmu_recalc_rate,
188}; 188};
189 189
190static struct clk_ops clk_prcmu_scalable_rate_ops = {
191 .is_enabled = clk_prcmu_is_enabled,
192 .recalc_rate = clk_prcmu_recalc_rate,
193 .round_rate = clk_prcmu_round_rate,
194 .set_rate = clk_prcmu_set_rate,
195};
196
190static struct clk_ops clk_prcmu_rate_ops = { 197static struct clk_ops clk_prcmu_rate_ops = {
191 .is_enabled = clk_prcmu_is_enabled, 198 .is_enabled = clk_prcmu_is_enabled,
192 .recalc_rate = clk_prcmu_recalc_rate, 199 .recalc_rate = clk_prcmu_recalc_rate,
@@ -278,6 +285,16 @@ struct clk *clk_reg_prcmu_gate(const char *name,
278 &clk_prcmu_gate_ops); 285 &clk_prcmu_gate_ops);
279} 286}
280 287
288struct clk *clk_reg_prcmu_scalable_rate(const char *name,
289 const char *parent_name,
290 u8 cg_sel,
291 unsigned long rate,
292 unsigned long flags)
293{
294 return clk_reg_prcmu(name, parent_name, cg_sel, rate, flags,
295 &clk_prcmu_scalable_rate_ops);
296}
297
281struct clk *clk_reg_prcmu_rate(const char *name, 298struct clk *clk_reg_prcmu_rate(const char *name,
282 const char *parent_name, 299 const char *parent_name,
283 u8 cg_sel, 300 u8 cg_sel,
diff --git a/drivers/clk/ux500/clk.h b/drivers/clk/ux500/clk.h
index f36eeedca493..c3e449169a83 100644
--- a/drivers/clk/ux500/clk.h
+++ b/drivers/clk/ux500/clk.h
@@ -35,6 +35,12 @@ 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
38struct clk *clk_reg_prcmu_scalable_rate(const char *name,
39 const char *parent_name,
40 u8 cg_sel,
41 unsigned long rate,
42 unsigned long flags);
43
38struct clk *clk_reg_prcmu_rate(const char *name, 44struct clk *clk_reg_prcmu_rate(const char *name,
39 const char *parent_name, 45 const char *parent_name,
40 u8 cg_sel, 46 u8 cg_sel,