diff options
Diffstat (limited to 'include/asm-sh/clock.h')
-rw-r--r-- | include/asm-sh/clock.h | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/include/asm-sh/clock.h b/include/asm-sh/clock.h index 1df92807f8c5..386d797d86b7 100644 --- a/include/asm-sh/clock.h +++ b/include/asm-sh/clock.h | |||
@@ -13,7 +13,7 @@ struct clk_ops { | |||
13 | void (*enable)(struct clk *clk); | 13 | void (*enable)(struct clk *clk); |
14 | void (*disable)(struct clk *clk); | 14 | void (*disable)(struct clk *clk); |
15 | void (*recalc)(struct clk *clk); | 15 | void (*recalc)(struct clk *clk); |
16 | int (*set_rate)(struct clk *clk, unsigned long rate); | 16 | int (*set_rate)(struct clk *clk, unsigned long rate, int algo_id); |
17 | }; | 17 | }; |
18 | 18 | ||
19 | struct clk { | 19 | struct clk { |
@@ -48,6 +48,34 @@ void clk_recalc_rate(struct clk *); | |||
48 | int clk_register(struct clk *); | 48 | int clk_register(struct clk *); |
49 | void clk_unregister(struct clk *); | 49 | void clk_unregister(struct clk *); |
50 | 50 | ||
51 | int show_clocks(struct seq_file *m); | 51 | /* the exported API, in addition to clk_set_rate */ |
52 | /** | ||
53 | * clk_set_rate_ex - set the clock rate for a clock source, with additional parameter | ||
54 | * @clk: clock source | ||
55 | * @rate: desired clock rate in Hz | ||
56 | * @algo_id: algorithm id to be passed down to ops->set_rate | ||
57 | * | ||
58 | * Returns success (0) or negative errno. | ||
59 | */ | ||
60 | int clk_set_rate_ex(struct clk *clk, unsigned long rate, int algo_id); | ||
52 | 61 | ||
62 | enum clk_sh_algo_id { | ||
63 | NO_CHANGE = 0, | ||
64 | |||
65 | IUS_N1_N1, | ||
66 | IUS_322, | ||
67 | IUS_522, | ||
68 | IUS_N11, | ||
69 | |||
70 | SB_N1, | ||
71 | |||
72 | SB3_N1, | ||
73 | SB3_32, | ||
74 | SB3_43, | ||
75 | SB3_54, | ||
76 | |||
77 | BP_N1, | ||
78 | |||
79 | IP_N1, | ||
80 | }; | ||
53 | #endif /* __ASM_SH_CLOCK_H */ | 81 | #endif /* __ASM_SH_CLOCK_H */ |