Merge tag 'trace-printf-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/trace...
[drm/drm-misc.git] / drivers / clk / ux500 / clk.h
blob91003cf8003cdad4088d84c5b9b80c69d532b2db
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3 * Clocks for ux500 platforms
5 * Copyright (C) 2012 ST-Ericsson SA
6 * Author: Ulf Hansson <ulf.hansson@linaro.org>
7 */
9 #ifndef __UX500_CLK_H
10 #define __UX500_CLK_H
12 #include <linux/device.h>
13 #include <linux/types.h>
15 struct clk;
16 struct clk_hw;
18 struct clk *clk_reg_prcc_pclk(const char *name,
19 const char *parent_name,
20 resource_size_t phy_base,
21 u32 cg_sel,
22 unsigned long flags);
24 struct clk *clk_reg_prcc_kclk(const char *name,
25 const char *parent_name,
26 resource_size_t phy_base,
27 u32 cg_sel,
28 unsigned long flags);
30 struct clk_hw *clk_reg_prcmu_scalable(const char *name,
31 const char *parent_name,
32 u8 cg_sel,
33 unsigned long rate,
34 unsigned long flags);
36 struct clk_hw *clk_reg_prcmu_gate(const char *name,
37 const char *parent_name,
38 u8 cg_sel,
39 unsigned long flags);
41 struct clk_hw *clk_reg_prcmu_scalable_rate(const char *name,
42 const char *parent_name,
43 u8 cg_sel,
44 unsigned long rate,
45 unsigned long flags);
47 struct clk_hw *clk_reg_prcmu_rate(const char *name,
48 const char *parent_name,
49 u8 cg_sel,
50 unsigned long flags);
52 struct clk_hw *clk_reg_prcmu_opp_gate(const char *name,
53 const char *parent_name,
54 u8 cg_sel,
55 unsigned long flags);
57 struct clk_hw *clk_reg_prcmu_opp_volt_scalable(const char *name,
58 const char *parent_name,
59 u8 cg_sel,
60 unsigned long rate,
61 unsigned long flags);
63 struct clk_hw *clk_reg_prcmu_clkout(const char *name,
64 const char * const *parent_names,
65 int num_parents,
66 u8 source, u8 divider);
68 struct clk *clk_reg_sysctrl_gate(struct device *dev,
69 const char *name,
70 const char *parent_name,
71 u16 reg_sel,
72 u8 reg_mask,
73 u8 reg_bits,
74 unsigned long enable_delay_us,
75 unsigned long flags);
77 struct clk *clk_reg_sysctrl_gate_fixed_rate(struct device *dev,
78 const char *name,
79 const char *parent_name,
80 u16 reg_sel,
81 u8 reg_mask,
82 u8 reg_bits,
83 unsigned long rate,
84 unsigned long enable_delay_us,
85 unsigned long flags);
87 struct clk *clk_reg_sysctrl_set_parent(struct device *dev,
88 const char *name,
89 const char **parent_names,
90 u8 num_parents,
91 u16 *reg_sel,
92 u8 *reg_mask,
93 u8 *reg_bits,
94 unsigned long flags);
96 #endif /* __UX500_CLK_H */