forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-10 61598093bbdd283a7edc367d900f223070ead8d2
kernel/drivers/clk/qcom/clk-rcg.h
....@@ -71,7 +71,6 @@
7171 * @freq_tbl: frequency table
7272 * @clkr: regmap clock handle
7373 * @lock: register lock
74
- *
7574 */
7675 struct clk_rcg {
7776 u32 ns_reg;
....@@ -107,7 +106,6 @@
107106 * @freq_tbl: frequency table
108107 * @clkr: regmap clock handle
109108 * @lock: register lock
110
- *
111109 */
112110 struct clk_dyn_rcg {
113111 u32 ns_reg[2];
....@@ -140,7 +138,7 @@
140138 * @parent_map: map from software's parent index to hardware's src_sel field
141139 * @freq_tbl: frequency table
142140 * @clkr: regmap clock handle
143
- *
141
+ * @cfg_off: defines the cfg register offset from the CMD_RCGR + CFG_REG
144142 */
145143 struct clk_rcg2 {
146144 u32 cmd_rcgr;
....@@ -150,6 +148,7 @@
150148 const struct parent_map *parent_map;
151149 const struct freq_tbl *freq_tbl;
152150 struct clk_regmap clkr;
151
+ u8 cfg_off;
153152 };
154153
155154 #define to_clk_rcg2(_hw) container_of(to_clk_regmap(_hw), struct clk_rcg2, clkr)
....@@ -162,5 +161,17 @@
162161 extern const struct clk_ops clk_pixel_ops;
163162 extern const struct clk_ops clk_gfx3d_ops;
164163 extern const struct clk_ops clk_rcg2_shared_ops;
164
+extern const struct clk_ops clk_dp_ops;
165165
166
+struct clk_rcg_dfs_data {
167
+ struct clk_rcg2 *rcg;
168
+ struct clk_init_data *init;
169
+};
170
+
171
+#define DEFINE_RCG_DFS(r) \
172
+ { .rcg = &r, .init = &r##_init }
173
+
174
+extern int qcom_cc_register_rcg_dfs(struct regmap *regmap,
175
+ const struct clk_rcg_dfs_data *rcgs,
176
+ size_t len);
166177 #endif