diff options
Diffstat (limited to 'include/linux/clk.h')
-rw-r--r-- | include/linux/clk.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/include/linux/clk.h b/include/linux/clk.h index c7f258a81761..8381bbfbc308 100644 --- a/include/linux/clk.h +++ b/include/linux/clk.h | |||
@@ -302,6 +302,46 @@ long clk_round_rate(struct clk *clk, unsigned long rate); | |||
302 | int clk_set_rate(struct clk *clk, unsigned long rate); | 302 | int clk_set_rate(struct clk *clk, unsigned long rate); |
303 | 303 | ||
304 | /** | 304 | /** |
305 | * clk_has_parent - check if a clock is a possible parent for another | ||
306 | * @clk: clock source | ||
307 | * @parent: parent clock source | ||
308 | * | ||
309 | * This function can be used in drivers that need to check that a clock can be | ||
310 | * the parent of another without actually changing the parent. | ||
311 | * | ||
312 | * Returns true if @parent is a possible parent for @clk, false otherwise. | ||
313 | */ | ||
314 | bool clk_has_parent(struct clk *clk, struct clk *parent); | ||
315 | |||
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 | /** | ||
305 | * clk_set_parent - set the parent clock source for this clock | 345 | * clk_set_parent - set the parent clock source for this clock |
306 | * @clk: clock source | 346 | * @clk: clock source |
307 | * @parent: parent clock source | 347 | * @parent: parent clock source |
@@ -374,6 +414,11 @@ static inline long clk_round_rate(struct clk *clk, unsigned long rate) | |||
374 | return 0; | 414 | return 0; |
375 | } | 415 | } |
376 | 416 | ||
417 | static inline bool clk_has_parent(struct clk *clk, struct clk *parent) | ||
418 | { | ||
419 | return true; | ||
420 | } | ||
421 | |||
377 | static inline int clk_set_parent(struct clk *clk, struct clk *parent) | 422 | static inline int clk_set_parent(struct clk *clk, struct clk *parent) |
378 | { | 423 | { |
379 | return 0; | 424 | return 0; |