forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-02-20 ea08eeccae9297f7aabd2ef7f0c2517ac4549acc
kernel/drivers/clk/sprd/pll.h
....@@ -1,4 +1,4 @@
1
-// SPDX-License-Identifier: GPL-2.0
1
+/* SPDX-License-Identifier: GPL-2.0 */
22 //
33 // Spreadtrum pll clock driver
44 //
....@@ -61,27 +61,33 @@
6161 struct sprd_clk_common common;
6262 };
6363
64
+#define SPRD_PLL_HW_INIT_FN(_struct, _name, _parent, _reg, \
65
+ _regs_num, _itable, _factors, \
66
+ _udelay, _k1, _k2, _fflag, \
67
+ _fvco, _fn) \
68
+ struct sprd_pll _struct = { \
69
+ .regs_num = _regs_num, \
70
+ .itable = _itable, \
71
+ .factors = _factors, \
72
+ .udelay = _udelay, \
73
+ .k1 = _k1, \
74
+ .k2 = _k2, \
75
+ .fflag = _fflag, \
76
+ .fvco = _fvco, \
77
+ .common = { \
78
+ .regmap = NULL, \
79
+ .reg = _reg, \
80
+ .hw.init = _fn(_name, _parent, \
81
+ &sprd_pll_ops, 0),\
82
+ }, \
83
+ }
84
+
6485 #define SPRD_PLL_WITH_ITABLE_K_FVCO(_struct, _name, _parent, _reg, \
6586 _regs_num, _itable, _factors, \
6687 _udelay, _k1, _k2, _fflag, _fvco) \
67
- struct sprd_pll _struct = { \
68
- .regs_num = _regs_num, \
69
- .itable = _itable, \
70
- .factors = _factors, \
71
- .udelay = _udelay, \
72
- .k1 = _k1, \
73
- .k2 = _k2, \
74
- .fflag = _fflag, \
75
- .fvco = _fvco, \
76
- .common = { \
77
- .regmap = NULL, \
78
- .reg = _reg, \
79
- .hw.init = CLK_HW_INIT(_name, \
80
- _parent, \
81
- &sprd_pll_ops, \
82
- 0), \
83
- }, \
84
- }
88
+ SPRD_PLL_HW_INIT_FN(_struct, _name, _parent, _reg, _regs_num, \
89
+ _itable, _factors, _udelay, _k1, _k2, \
90
+ _fflag, _fvco, CLK_HW_INIT)
8591
8692 #define SPRD_PLL_WITH_ITABLE_K(_struct, _name, _parent, _reg, \
8793 _regs_num, _itable, _factors, \
....@@ -96,6 +102,19 @@
96102 _regs_num, _itable, _factors, \
97103 _udelay, 1000, 1000, 0, 0)
98104
105
+#define SPRD_PLL_FW_NAME(_struct, _name, _parent, _reg, _regs_num, \
106
+ _itable, _factors, _udelay, _k1, _k2, \
107
+ _fflag, _fvco) \
108
+ SPRD_PLL_HW_INIT_FN(_struct, _name, _parent, _reg, _regs_num, \
109
+ _itable, _factors, _udelay, _k1, _k2, \
110
+ _fflag, _fvco, CLK_HW_INIT_FW_NAME)
111
+
112
+#define SPRD_PLL_HW(_struct, _name, _parent, _reg, _regs_num, _itable, \
113
+ _factors, _udelay, _k1, _k2, _fflag, _fvco) \
114
+ SPRD_PLL_HW_INIT_FN(_struct, _name, _parent, _reg, _regs_num, \
115
+ _itable, _factors, _udelay, _k1, _k2, \
116
+ _fflag, _fvco, CLK_HW_INIT_HW)
117
+
99118 static inline struct sprd_pll *hw_to_sprd_pll(struct clk_hw *hw)
100119 {
101120 struct sprd_clk_common *common = hw_to_sprd_clk_common(hw);