|
19 | 19 | #include <dt-bindings/clock/qcom,rpmcc.h>
|
20 | 20 |
|
21 | 21 | #define __DEFINE_CLK_SMD_RPM_PREFIX(_prefix, _name, _active, \
|
22 |
| - type, r_id, key) \ |
| 22 | + type, r_id, key, ao_rate, ao_flags) \ |
23 | 23 | static struct clk_smd_rpm clk_smd_rpm_##_prefix##_active; \
|
24 | 24 | static struct clk_smd_rpm clk_smd_rpm_##_prefix##_name = { \
|
25 | 25 | .rpm_res_type = (type), \
|
|
43 | 43 | .active_only = true, \
|
44 | 44 | .rpm_key = (key), \
|
45 | 45 | .peer = &clk_smd_rpm_##_prefix##_name, \
|
46 |
| - .rate = INT_MAX, \ |
| 46 | + .rate = (ao_rate), \ |
47 | 47 | .hw.init = &(struct clk_init_data){ \
|
48 | 48 | .ops = &clk_smd_rpm_ops, \
|
49 | 49 | .name = #_active, \
|
|
52 | 52 | .name = "xo_board", \
|
53 | 53 | }, \
|
54 | 54 | .num_parents = 1, \
|
| 55 | + .flags = (ao_flags), \ |
55 | 56 | }, \
|
56 | 57 | }
|
57 | 58 |
|
58 |
| -#define __DEFINE_CLK_SMD_RPM(_name, _active, type, r_id, key) \ |
| 59 | +#define __DEFINE_CLK_SMD_RPM(_name, _active, type, r_id, key,\ |
| 60 | + ao_rate, ao_flags) \ |
59 | 61 | __DEFINE_CLK_SMD_RPM_PREFIX(/* empty */, _name, _active, \
|
60 |
| - type, r_id, key) |
| 62 | + type, r_id, key, ao_rate, ao_flags) |
61 | 63 |
|
62 | 64 | #define __DEFINE_CLK_SMD_RPM_BRANCH_PREFIX(_prefix, _name, _active,\
|
63 | 65 | type, r_id, r, key, ao_flags) \
|
|
105 | 107 |
|
106 | 108 | #define DEFINE_CLK_SMD_RPM(_name, type, r_id) \
|
107 | 109 | __DEFINE_CLK_SMD_RPM(_name##_clk, _name##_a_clk, \
|
108 |
| - type, r_id, QCOM_RPM_SMD_KEY_RATE) |
| 110 | + type, r_id, QCOM_RPM_SMD_KEY_RATE, INT_MAX, 0) |
109 | 111 |
|
110 | 112 | #define DEFINE_CLK_SMD_RPM_BUS(_name, r_id) \
|
111 | 113 | __DEFINE_CLK_SMD_RPM_PREFIX(bus_##r_id##_, \
|
112 | 114 | _name##_clk, _name##_a_clk, QCOM_SMD_RPM_BUS_CLK, r_id, \
|
113 |
| - QCOM_RPM_SMD_KEY_RATE) |
| 115 | + QCOM_RPM_SMD_KEY_RATE, INT_MAX, 0) |
| 116 | + |
| 117 | +#define DEFINE_CLK_SMD_RPM_BUS_A(_name, r_id, ao_rate, ao_flags) \ |
| 118 | + __DEFINE_CLK_SMD_RPM_PREFIX(bus_##r_id##_, \ |
| 119 | + _name##_clk, _name##_a_clk, QCOM_SMD_RPM_BUS_CLK, r_id, \ |
| 120 | + QCOM_RPM_SMD_KEY_RATE, ao_rate, ao_flags) |
114 | 121 |
|
115 | 122 | #define DEFINE_CLK_SMD_RPM_CLK_SRC(_name, type, r_id) \
|
116 | 123 | __DEFINE_CLK_SMD_RPM( \
|
117 | 124 | _name##_clk_src, _name##_a_clk_src, \
|
118 |
| - type, r_id, QCOM_RPM_SMD_KEY_RATE) |
| 125 | + type, r_id, QCOM_RPM_SMD_KEY_RATE, INT_MAX, 0) |
119 | 126 |
|
120 | 127 | #define DEFINE_CLK_SMD_RPM_BRANCH(_name, type, r_id, r) \
|
121 | 128 | __DEFINE_CLK_SMD_RPM_BRANCH_PREFIX(branch_, \
|
|
129 | 136 |
|
130 | 137 | #define DEFINE_CLK_SMD_RPM_QDSS(_name, type, r_id) \
|
131 | 138 | __DEFINE_CLK_SMD_RPM(_name##_clk, _name##_a_clk, \
|
132 |
| - type, r_id, QCOM_RPM_SMD_KEY_STATE) |
| 139 | + type, r_id, QCOM_RPM_SMD_KEY_STATE, INT_MAX, 0) |
133 | 140 |
|
134 | 141 | #define DEFINE_CLK_SMD_RPM_XO_BUFFER(_name, r_id, r) \
|
135 | 142 | __DEFINE_CLK_SMD_RPM_BRANCH(_name, _name##_a, \
|
|
0 commit comments