blob: 9776a1c83642ae5f00374873759ddd32bcb71d16 [file] [log] [blame]
Sylwester Nawrockid6782c22013-08-23 17:03:43 +02001/*
2 * linux/drivers/clk/clk.h
3 *
4 * Copyright (C) 2013 Samsung Electronics Co., Ltd.
5 * Sylwester Nawrocki <s.nawrocki@samsung.com>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 */
11
Tomeu Vizoso035a61c2015-01-23 12:03:30 +010012struct clk_hw;
Taniya Dasa5aadd72017-01-23 12:24:10 +053013struct clk_core;
Tomeu Vizoso035a61c2015-01-23 12:03:30 +010014
Shefali Jain0dc6e782017-11-27 13:06:27 +053015#if defined(CONFIG_OF)
Stephen Boyd73e0e492015-02-06 11:42:43 -080016struct clk *__of_clk_get_from_provider(struct of_phandle_args *clkspec,
17 const char *dev_id, const char *con_id);
Sylwester Nawrockid6782c22013-08-23 17:03:43 +020018#endif
Tomeu Vizoso035a61c2015-01-23 12:03:30 +010019
Stephen Boyd73e0e492015-02-06 11:42:43 -080020#ifdef CONFIG_COMMON_CLK
Tomeu Vizoso035a61c2015-01-23 12:03:30 +010021struct clk *__clk_create_clk(struct clk_hw *hw, const char *dev_id,
22 const char *con_id);
Stephen Boyd73e0e492015-02-06 11:42:43 -080023void __clk_free_clk(struct clk *clk);
Taniya Das6c15e542016-11-07 10:08:30 +053024
25/* Debugfs API to print the enabled clocks */
Shefali Jain5c15a992017-09-20 16:01:01 +053026void clock_debug_print_enabled(bool print_parent);
Taniya Das8436bd72016-11-21 17:50:13 +053027void clk_debug_print_hw(struct clk_core *clk, struct seq_file *f);
Taniya Das6c15e542016-11-07 10:08:30 +053028
Stephen Boyd73e0e492015-02-06 11:42:43 -080029#else
30/* All these casts to avoid ifdefs in clkdev... */
31static inline struct clk *
32__clk_create_clk(struct clk_hw *hw, const char *dev_id, const char *con_id)
33{
34 return (struct clk *)hw;
35}
36static inline void __clk_free_clk(struct clk *clk) { }
37static struct clk_hw *__clk_get_hw(struct clk *clk)
38{
39 return (struct clk_hw *)clk;
40}
41
42#endif