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, |
