32
32
#define CLK_60MHZ 60000000u
33
33
#define CLK_80MHZ 80000000u
34
34
#define CLK_120MHZ 120000000u
35
+ #define CLK_240MHZ 240000000u
35
36
#endif
36
37
37
38
/* MID register flash size */
70
71
71
72
/* Check System Clock value. */
72
73
#if CONFIG_SOC_RISCV_TELINK_TL321X
73
- #if ((DT_PROP (DT_PATH (cpus , cpu_0 ), clock_frequency ) != CLK_24MHZ ) && \
74
- (DT_PROP (DT_PATH (cpus , cpu_0 ), clock_frequency ) != CLK_48MHZ ) && \
75
- (DT_PROP (DT_PATH (cpus , cpu_0 ), clock_frequency ) != CLK_96MHZ ))
74
+ #if ((DT_PROP (DT_PATH (cpus , cpu_0 ), clock_frequency ) != CLK_24MHZ ) && \
75
+ (DT_PROP (DT_PATH (cpus , cpu_0 ), clock_frequency ) != CLK_48MHZ ) && \
76
+ (DT_PROP (DT_PATH (cpus , cpu_0 ), clock_frequency ) != CLK_96MHZ ))
76
77
#error "Invalid clock-frequency. Supported values: 24, 48, 96 MHz"
77
78
#endif
78
79
#elif CONFIG_SOC_RISCV_TELINK_TL721X
79
- #if ((DT_PROP (DT_PATH (cpus , cpu_0 ), clock_frequency ) != CLK_40MHZ ) && \
80
- (DT_PROP (DT_PATH (cpus , cpu_0 ), clock_frequency ) != CLK_48MHZ ) && \
81
- (DT_PROP (DT_PATH (cpus , cpu_0 ), clock_frequency ) != CLK_60MHZ ) && \
82
- (DT_PROP (DT_PATH (cpus , cpu_0 ), clock_frequency ) != CLK_80MHZ ) && \
83
- (DT_PROP (DT_PATH (cpus , cpu_0 ), clock_frequency ) != CLK_120MHZ ))
84
- #error "Invalid clock-frequency. Supported values: 24, 40, 48, 60, 80 and 120 MHz"
80
+ #if ((DT_PROP (DT_PATH (cpus , cpu_0 ), clock_frequency ) != CLK_40MHZ ) && \
81
+ (DT_PROP (DT_PATH (cpus , cpu_0 ), clock_frequency ) != CLK_48MHZ ) && \
82
+ (DT_PROP (DT_PATH (cpus , cpu_0 ), clock_frequency ) != CLK_60MHZ ) && \
83
+ (DT_PROP (DT_PATH (cpus , cpu_0 ), clock_frequency ) != CLK_80MHZ ) && \
84
+ (DT_PROP (DT_PATH (cpus , cpu_0 ), clock_frequency ) != CLK_120MHZ ) && \
85
+ (DT_PROP (DT_PATH (cpus , cpu_0 ), clock_frequency ) != CLK_240MHZ ))
86
+ #error "Invalid clock-frequency. Supported values: 24, 40, 48, 60, 80, 120, 240 MHz"
85
87
#endif
86
88
#endif
87
89
@@ -136,6 +138,13 @@ void soc_early_init_hook(void)
136
138
/* system init */
137
139
sys_init (POWER_MODE , VBAT_TYPE , INTERNAL_CAP_XTAL24M );
138
140
141
+ #if CONFIG_SOC_RISCV_TELINK_TL721X
142
+ if (cclk == CLK_240MHZ ) {
143
+ pm_set_dvdd (CORE_0P9V_SRAM_0P9V_BB_0P9V , DMA1 , 1000 );
144
+ }
145
+ pm_set_ret_ldo_voltage (RET_LDO_TRIM_0P65V );
146
+ #endif
147
+
139
148
#if CONFIG_PM
140
149
gpio_shutdown (GPIO_ALL );
141
150
#endif /* CONFIG_PM */
@@ -162,12 +171,24 @@ void soc_early_init_hook(void)
162
171
case CLK_60MHZ :
163
172
PLL_240M_CCLK_60M_HCLK_60M_PCLK_15M_MSPI_48M ;
164
173
break ;
174
+ case CLK_80MHZ :
175
+ PLL_240M_CCLK_80M_HCLK_40M_PCLK_40M_MSPI_48M ;
176
+ break ;
165
177
#endif /* CONFIG_SOC_RISCV_TELINK_TL721X */
178
+
166
179
#if CONFIG_SOC_RISCV_TELINK_TL321X
167
180
case CLK_96MHZ :
168
181
PLL_192M_CCLK_96M_HCLK_48M_PCLK_48M_MSPI_48M ;
169
182
break ;
170
183
#endif /* CONFIG_SOC_RISCV_TELINK_TL321X */
184
+ #if CONFIG_SOC_RISCV_TELINK_TL721X
185
+ case CLK_120MHZ :
186
+ PLL_240M_CCLK_120M_HCLK_60M_PCLK_60M_MSPI_48M ;
187
+ break ;
188
+ case CLK_240MHZ :
189
+ PLL_240M_CCLK_240M_HCLK_120M_PCLK_120M_MSPI_48M ;
190
+ break ;
191
+ #endif
171
192
}
172
193
173
194
/* Init Machine Timer source clock: 32 KHz RC */
@@ -224,12 +245,23 @@ void soc_tlx_restore(void)
224
245
case CLK_60MHZ :
225
246
PLL_240M_CCLK_60M_HCLK_60M_PCLK_15M_MSPI_48M ;
226
247
break ;
248
+ case CLK_80MHZ :
249
+ PLL_240M_CCLK_80M_HCLK_40M_PCLK_40M_MSPI_48M ;
250
+ break ;
227
251
#endif /* CONFIG_SOC_RISCV_TELINK_TL721X */
228
252
#if CONFIG_SOC_RISCV_TELINK_TL321X
229
253
case CLK_96MHZ :
230
254
PLL_192M_CCLK_96M_HCLK_48M_PCLK_48M_MSPI_48M ;
231
255
break ;
232
256
#endif /* CONFIG_SOC_RISCV_TELINK_TL321X */
257
+ #if CONFIG_SOC_RISCV_TELINK_TL721X
258
+ case CLK_120MHZ :
259
+ PLL_240M_CCLK_120M_HCLK_60M_PCLK_60M_MSPI_48M ;
260
+ break ;
261
+ case CLK_240MHZ :
262
+ PLL_240M_CCLK_240M_HCLK_120M_PCLK_120M_MSPI_48M ;
263
+ break ;
264
+ #endif
233
265
}
234
266
}
235
267
0 commit comments