diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/clk-provider.h | 17 | ||||
| -rw-r--r-- | include/linux/clk.h | 28 | ||||
| -rw-r--r-- | include/linux/clk/ti.h | 4 |
3 files changed, 46 insertions, 3 deletions
diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h index 12f13b0673af..17dd6e9439d1 100644 --- a/include/linux/clk-provider.h +++ b/include/linux/clk-provider.h | |||
| @@ -175,9 +175,12 @@ struct clk_ops { | |||
| 175 | unsigned long parent_rate); | 175 | unsigned long parent_rate); |
| 176 | long (*round_rate)(struct clk_hw *hw, unsigned long rate, | 176 | long (*round_rate)(struct clk_hw *hw, unsigned long rate, |
| 177 | unsigned long *parent_rate); | 177 | unsigned long *parent_rate); |
| 178 | long (*determine_rate)(struct clk_hw *hw, unsigned long rate, | 178 | long (*determine_rate)(struct clk_hw *hw, |
| 179 | unsigned long *best_parent_rate, | 179 | unsigned long rate, |
| 180 | struct clk_hw **best_parent_hw); | 180 | unsigned long min_rate, |
| 181 | unsigned long max_rate, | ||
| 182 | unsigned long *best_parent_rate, | ||
| 183 | struct clk_hw **best_parent_hw); | ||
| 181 | int (*set_parent)(struct clk_hw *hw, u8 index); | 184 | int (*set_parent)(struct clk_hw *hw, u8 index); |
| 182 | u8 (*get_parent)(struct clk_hw *hw); | 185 | u8 (*get_parent)(struct clk_hw *hw); |
| 183 | int (*set_rate)(struct clk_hw *hw, unsigned long rate, | 186 | int (*set_rate)(struct clk_hw *hw, unsigned long rate, |
| @@ -573,9 +576,17 @@ bool __clk_is_prepared(struct clk *clk); | |||
| 573 | bool __clk_is_enabled(struct clk *clk); | 576 | bool __clk_is_enabled(struct clk *clk); |
| 574 | struct clk *__clk_lookup(const char *name); | 577 | struct clk *__clk_lookup(const char *name); |
| 575 | long __clk_mux_determine_rate(struct clk_hw *hw, unsigned long rate, | 578 | long __clk_mux_determine_rate(struct clk_hw *hw, unsigned long rate, |
| 579 | unsigned long min_rate, | ||
| 580 | unsigned long max_rate, | ||
| 576 | unsigned long *best_parent_rate, | 581 | unsigned long *best_parent_rate, |
| 577 | struct clk_hw **best_parent_p); | 582 | struct clk_hw **best_parent_p); |
| 583 | unsigned long __clk_determine_rate(struct clk_hw *core, | ||
| 584 | unsigned long rate, | ||
| 585 | unsigned long min_rate, | ||
| 586 | unsigned long max_rate); | ||
| 578 | long __clk_mux_determine_rate_closest(struct clk_hw *hw, unsigned long rate, | 587 | long __clk_mux_determine_rate_closest(struct clk_hw *hw, unsigned long rate, |
| 588 | unsigned long min_rate, | ||
| 589 | unsigned long max_rate, | ||
| 579 | unsigned long *best_parent_rate, | 590 | unsigned long *best_parent_rate, |
| 580 | struct clk_hw **best_parent_p); | 591 | struct clk_hw **best_parent_p); |
| 581 | 592 | ||
diff --git a/include/linux/clk.h b/include/linux/clk.h index ba7e9eda4347..8381bbfbc308 100644 --- a/include/linux/clk.h +++ b/include/linux/clk.h | |||
| @@ -314,6 +314,34 @@ int clk_set_rate(struct clk *clk, unsigned long rate); | |||
| 314 | bool clk_has_parent(struct clk *clk, struct clk *parent); | 314 | bool clk_has_parent(struct clk *clk, struct clk *parent); |
| 315 | 315 | ||
| 316 | /** | 316 | /** |
| 317 | * clk_set_rate_range - set a rate range for a clock source | ||
| 318 | * @clk: clock source | ||
| 319 | * @min: desired minimum clock rate in Hz, inclusive | ||
| 320 | * @max: desired maximum clock rate in Hz, inclusive | ||
| 321 | * | ||
| 322 | * Returns success (0) or negative errno. | ||
| 323 | */ | ||
| 324 | int clk_set_rate_range(struct clk *clk, unsigned long min, unsigned long max); | ||
| 325 | |||
| 326 | /** | ||
| 327 | * clk_set_min_rate - set a minimum clock rate for a clock source | ||
| 328 | * @clk: clock source | ||
| 329 | * @rate: desired minimum clock rate in Hz, inclusive | ||
| 330 | * | ||
| 331 | * Returns success (0) or negative errno. | ||
| 332 | */ | ||
| 333 | int clk_set_min_rate(struct clk *clk, unsigned long rate); | ||
| 334 | |||
| 335 | /** | ||
| 336 | * clk_set_max_rate - set a maximum clock rate for a clock source | ||
| 337 | * @clk: clock source | ||
| 338 | * @rate: desired maximum clock rate in Hz, inclusive | ||
| 339 | * | ||
| 340 | * Returns success (0) or negative errno. | ||
| 341 | */ | ||
| 342 | int clk_set_max_rate(struct clk *clk, unsigned long rate); | ||
| 343 | |||
| 344 | /** | ||
| 317 | * clk_set_parent - set the parent clock source for this clock | 345 | * clk_set_parent - set the parent clock source for this clock |
| 318 | * @clk: clock source | 346 | * @clk: clock source |
| 319 | * @parent: parent clock source | 347 | * @parent: parent clock source |
diff --git a/include/linux/clk/ti.h b/include/linux/clk/ti.h index 310122dcd9b5..0eac65054283 100644 --- a/include/linux/clk/ti.h +++ b/include/linux/clk/ti.h | |||
| @@ -271,6 +271,8 @@ int omap3_noncore_dpll_set_rate_and_parent(struct clk_hw *hw, | |||
| 271 | u8 index); | 271 | u8 index); |
| 272 | long omap3_noncore_dpll_determine_rate(struct clk_hw *hw, | 272 | long omap3_noncore_dpll_determine_rate(struct clk_hw *hw, |
| 273 | unsigned long rate, | 273 | unsigned long rate, |
| 274 | unsigned long min_rate, | ||
| 275 | unsigned long max_rate, | ||
| 274 | unsigned long *best_parent_rate, | 276 | unsigned long *best_parent_rate, |
| 275 | struct clk_hw **best_parent_clk); | 277 | struct clk_hw **best_parent_clk); |
| 276 | unsigned long omap4_dpll_regm4xen_recalc(struct clk_hw *hw, | 278 | unsigned long omap4_dpll_regm4xen_recalc(struct clk_hw *hw, |
| @@ -280,6 +282,8 @@ long omap4_dpll_regm4xen_round_rate(struct clk_hw *hw, | |||
| 280 | unsigned long *parent_rate); | 282 | unsigned long *parent_rate); |
| 281 | long omap4_dpll_regm4xen_determine_rate(struct clk_hw *hw, | 283 | long omap4_dpll_regm4xen_determine_rate(struct clk_hw *hw, |
| 282 | unsigned long rate, | 284 | unsigned long rate, |
| 285 | unsigned long min_rate, | ||
| 286 | unsigned long max_rate, | ||
| 283 | unsigned long *best_parent_rate, | 287 | unsigned long *best_parent_rate, |
| 284 | struct clk_hw **best_parent_clk); | 288 | struct clk_hw **best_parent_clk); |
| 285 | u8 omap2_init_dpll_parent(struct clk_hw *hw); | 289 | u8 omap2_init_dpll_parent(struct clk_hw *hw); |
