@@ -55,6 +55,29 @@ static struct clk_alpha_pll ipq_pll_huayra = {
55
55
},
56
56
};
57
57
58
+ static struct clk_alpha_pll ipq_pll_stromer = {
59
+ .offset = 0x0 ,
60
+ /*
61
+ * Reuse CLK_ALPHA_PLL_TYPE_STROMER_PLUS register offsets.
62
+ * Although this is a bit confusing, but the offset values
63
+ * are correct nevertheless.
64
+ */
65
+ .regs = ipq_pll_offsets [CLK_ALPHA_PLL_TYPE_STROMER_PLUS ],
66
+ .flags = SUPPORTS_DYNAMIC_UPDATE ,
67
+ .clkr = {
68
+ .enable_reg = 0x0 ,
69
+ .enable_mask = BIT (0 ),
70
+ .hw .init = & (const struct clk_init_data ) {
71
+ .name = "a53pll" ,
72
+ .parent_data = & (const struct clk_parent_data ) {
73
+ .fw_name = "xo" ,
74
+ },
75
+ .num_parents = 1 ,
76
+ .ops = & clk_alpha_pll_stromer_ops ,
77
+ },
78
+ },
79
+ };
80
+
58
81
static struct clk_alpha_pll ipq_pll_stromer_plus = {
59
82
.offset = 0x0 ,
60
83
.regs = ipq_pll_offsets [CLK_ALPHA_PLL_TYPE_STROMER_PLUS ],
@@ -144,8 +167,8 @@ struct apss_pll_data {
144
167
};
145
168
146
169
static const struct apss_pll_data ipq5018_pll_data = {
147
- .pll_type = CLK_ALPHA_PLL_TYPE_STROMER_PLUS ,
148
- .pll = & ipq_pll_stromer_plus ,
170
+ .pll_type = CLK_ALPHA_PLL_TYPE_STROMER ,
171
+ .pll = & ipq_pll_stromer ,
149
172
.pll_config = & ipq5018_pll_config ,
150
173
};
151
174
@@ -203,7 +226,8 @@ static int apss_ipq_pll_probe(struct platform_device *pdev)
203
226
204
227
if (data -> pll_type == CLK_ALPHA_PLL_TYPE_HUAYRA )
205
228
clk_alpha_pll_configure (data -> pll , regmap , data -> pll_config );
206
- else if (data -> pll_type == CLK_ALPHA_PLL_TYPE_STROMER_PLUS )
229
+ else if (data -> pll_type == CLK_ALPHA_PLL_TYPE_STROMER ||
230
+ data -> pll_type == CLK_ALPHA_PLL_TYPE_STROMER_PLUS )
207
231
clk_stromer_pll_configure (data -> pll , regmap , data -> pll_config );
208
232
209
233
ret = devm_clk_register_regmap (dev , & data -> pll -> clkr );
0 commit comments