diff options
| author | Tero Kristo <t-kristo@ti.com> | 2013-09-09 08:46:45 -0400 |
|---|---|---|
| committer | Mike Turquette <mturquette@linaro.org> | 2014-01-17 15:35:01 -0500 |
| commit | 975e15487d5abfd5f33fea9c1ba0b987604f0d0f (patch) | |
| tree | 6578c984956a1ed41077669c9eb88696be2f616c /include/linux/clk | |
| parent | b1a07b478b63f0a8f971b3a82ce34a67a9324547 (diff) | |
clk: ti: add composite clock support
This is a multipurpose clock node, which contains support for multiple
sub-clocks. Uses basic composite clock type to implement the actual
functionality, and TI specific gate, mux and divider clocks.
Signed-off-by: Tero Kristo <t-kristo@ti.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Mike Turquette <mturquette@linaro.org>
Diffstat (limited to 'include/linux/clk')
| -rw-r--r-- | include/linux/clk/ti.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/clk/ti.h b/include/linux/clk/ti.h index ca38ee3620b1..c8c591dd3261 100644 --- a/include/linux/clk/ti.h +++ b/include/linux/clk/ti.h | |||
| @@ -164,6 +164,14 @@ struct clk_hw_omap { | |||
| 164 | /* DPLL Type and DCO Selection Flags */ | 164 | /* DPLL Type and DCO Selection Flags */ |
| 165 | #define DPLL_J_TYPE 0x1 | 165 | #define DPLL_J_TYPE 0x1 |
| 166 | 166 | ||
| 167 | /* Composite clock component types */ | ||
| 168 | enum { | ||
| 169 | CLK_COMPONENT_TYPE_GATE = 0, | ||
| 170 | CLK_COMPONENT_TYPE_DIVIDER, | ||
| 171 | CLK_COMPONENT_TYPE_MUX, | ||
| 172 | CLK_COMPONENT_TYPE_MAX, | ||
| 173 | }; | ||
| 174 | |||
| 167 | /** | 175 | /** |
| 168 | * struct ti_dt_clk - OMAP DT clock alias declarations | 176 | * struct ti_dt_clk - OMAP DT clock alias declarations |
| 169 | * @lk: clock lookup definition | 177 | * @lk: clock lookup definition |
| @@ -236,6 +244,9 @@ unsigned long omap3_clkoutx2_recalc(struct clk_hw *hw, | |||
| 236 | unsigned long parent_rate); | 244 | unsigned long parent_rate); |
| 237 | int omap3_dpll4_set_rate(struct clk_hw *clk, unsigned long rate, | 245 | int omap3_dpll4_set_rate(struct clk_hw *clk, unsigned long rate, |
| 238 | unsigned long parent_rate); | 246 | unsigned long parent_rate); |
| 247 | int omap2_dflt_clk_enable(struct clk_hw *hw); | ||
| 248 | void omap2_dflt_clk_disable(struct clk_hw *hw); | ||
| 249 | int omap2_dflt_clk_is_enabled(struct clk_hw *hw); | ||
| 239 | 250 | ||
| 240 | void __iomem *ti_clk_get_reg_addr(struct device_node *node, int index); | 251 | void __iomem *ti_clk_get_reg_addr(struct device_node *node, int index); |
| 241 | void ti_dt_clocks_register(struct ti_dt_clk *oclks); | 252 | void ti_dt_clocks_register(struct ti_dt_clk *oclks); |
| @@ -243,6 +254,7 @@ void ti_dt_clk_init_provider(struct device_node *np, int index); | |||
| 243 | int ti_clk_retry_init(struct device_node *node, struct clk_hw *hw, | 254 | int ti_clk_retry_init(struct device_node *node, struct clk_hw *hw, |
| 244 | ti_of_clk_init_cb_t func); | 255 | ti_of_clk_init_cb_t func); |
| 245 | int of_ti_clk_autoidle_setup(struct device_node *node); | 256 | int of_ti_clk_autoidle_setup(struct device_node *node); |
| 257 | int ti_clk_add_component(struct device_node *node, struct clk_hw *hw, int type); | ||
| 246 | 258 | ||
| 247 | #ifdef CONFIG_OF | 259 | #ifdef CONFIG_OF |
| 248 | void of_ti_clk_allow_autoidle_all(void); | 260 | void of_ti_clk_allow_autoidle_all(void); |
