1 /*
2  * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 // The LL layer for ESP32-C6 MODEM SYSCON register operations
8 
9 #pragma once
10 
11 #include <stdlib.h>
12 #include "soc/soc.h"
13 #include "hal/assert.h"
14 #include "modem/modem_syscon_struct.h"
15 #include "hal/modem_clock_types.h"
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 __attribute__((always_inline))
modem_syscon_ll_enable_test_clk(modem_syscon_dev_t * hw,bool en)22 static inline void modem_syscon_ll_enable_test_clk(modem_syscon_dev_t *hw, bool en)
23 {
24     hw->test_conf.clk_en = en;
25 }
26 
27 __attribute__((always_inline))
modem_syscon_ll_enable_data_dump_mux_clock(modem_syscon_dev_t * hw,bool en)28 static inline void modem_syscon_ll_enable_data_dump_mux_clock(modem_syscon_dev_t *hw, bool en)
29 {
30     hw->clk_conf.clk_data_dump_mux = en;
31 }
32 
33 __attribute__((always_inline))
modem_syscon_ll_enable_etm_clock(modem_syscon_dev_t * hw,bool en)34 static inline void modem_syscon_ll_enable_etm_clock(modem_syscon_dev_t *hw, bool en)
35 {
36     hw->clk_conf.clk_etm_en = en;
37 }
38 
39 __attribute__((always_inline))
modem_syscon_ll_enable_ieee802154_apb_clock(modem_syscon_dev_t * hw,bool en)40 static inline void modem_syscon_ll_enable_ieee802154_apb_clock(modem_syscon_dev_t *hw, bool en)
41 {
42     hw->clk_conf.clk_zb_apb_en = en;
43 }
44 
45 __attribute__((always_inline))
modem_syscon_ll_enable_ieee802154_mac_clock(modem_syscon_dev_t * hw,bool en)46 static inline void modem_syscon_ll_enable_ieee802154_mac_clock(modem_syscon_dev_t *hw, bool en)
47 {
48     hw->clk_conf.clk_zb_mac_en = en;
49 }
50 
51 __attribute__((always_inline))
modem_syscon_ll_enable_modem_sec_clock(modem_syscon_dev_t * hw,bool en)52 static inline void modem_syscon_ll_enable_modem_sec_clock(modem_syscon_dev_t *hw, bool en)
53 {
54     hw->clk_conf.clk_modem_sec_en = en;
55     hw->clk_conf.clk_modem_sec_ecb_en = en;
56     hw->clk_conf.clk_modem_sec_ccm_en = en;
57     hw->clk_conf.clk_modem_sec_bah_en = en;
58     hw->clk_conf.clk_modem_sec_apb_en = en;
59 }
60 
61 __attribute__((always_inline))
modem_syscon_ll_enable_ble_timer_clock(modem_syscon_dev_t * hw,bool en)62 static inline void modem_syscon_ll_enable_ble_timer_clock(modem_syscon_dev_t *hw, bool en)
63 {
64     hw->clk_conf.clk_ble_timer_en = en;
65 }
66 
67 __attribute__((always_inline))
modem_syscon_ll_enable_data_dump_clock(modem_syscon_dev_t * hw,bool en)68 static inline void modem_syscon_ll_enable_data_dump_clock(modem_syscon_dev_t *hw, bool en)
69 {
70     hw->clk_conf.clk_data_dump_en = en;
71 }
72 
73 __attribute__((always_inline))
modem_syscon_ll_enable_etm_force_clock(modem_syscon_dev_t * hw)74 static inline void modem_syscon_ll_enable_etm_force_clock(modem_syscon_dev_t *hw)
75 {
76     hw->clk_conf_force_on.clk_etm_fo = 1;
77 }
78 
79 __attribute__((always_inline))
modem_syscon_ll_enable_ieee802154_apb_clock_force(modem_syscon_dev_t * hw)80 static inline void modem_syscon_ll_enable_ieee802154_apb_clock_force(modem_syscon_dev_t *hw)
81 {
82     hw->clk_conf_force_on.clk_zb_apb_fo = 1;
83 }
84 
85 __attribute__((always_inline))
modem_syscon_ll_enable_ieee802154_mac_clock_force(modem_syscon_dev_t * hw)86 static inline void modem_syscon_ll_enable_ieee802154_mac_clock_force(modem_syscon_dev_t *hw)
87 {
88     hw->clk_conf_force_on.clk_zb_mac_fo = 1;
89 }
90 
91 __attribute__((always_inline))
modem_syscon_ll_enable_modem_sec_force_clock(modem_syscon_dev_t * hw)92 static inline void modem_syscon_ll_enable_modem_sec_force_clock(modem_syscon_dev_t *hw)
93 {
94     hw->clk_conf_force_on.clk_modem_sec_fo = 1;
95 }
96 
97 __attribute__((always_inline))
modem_syscon_ll_enable_ble_timer_force_clock(modem_syscon_dev_t * hw)98 static inline void modem_syscon_ll_enable_ble_timer_force_clock(modem_syscon_dev_t *hw)
99 {
100     hw->clk_conf_force_on.clk_ble_timer_fo = 1;
101 }
102 
103 __attribute__((always_inline))
modem_syscon_ll_enable_data_dump_force_clock(modem_syscon_dev_t * hw)104 static inline void modem_syscon_ll_enable_data_dump_force_clock(modem_syscon_dev_t *hw)
105 {
106     hw->clk_conf_force_on.clk_data_dump_fo = 1;
107 }
108 
109 __attribute__((always_inline))
modem_syscon_ll_get_ieee802154_icg_bitmap(modem_syscon_dev_t * hw)110 static inline uint32_t modem_syscon_ll_get_ieee802154_icg_bitmap(modem_syscon_dev_t *hw)
111 {
112     return hw->clk_conf_power_st.clk_zb_st_map;
113 }
114 
115 __attribute__((always_inline))
modem_syscon_ll_set_ieee802154_icg_bitmap(modem_syscon_dev_t * hw,uint32_t bitmap)116 static inline void modem_syscon_ll_set_ieee802154_icg_bitmap(modem_syscon_dev_t *hw, uint32_t bitmap)
117 {
118     hw->clk_conf_power_st.clk_zb_st_map = bitmap;
119 }
120 
121 __attribute__((always_inline))
modem_syscon_ll_get_fe_icg_bitmap(modem_syscon_dev_t * hw)122 static inline uint32_t modem_syscon_ll_get_fe_icg_bitmap(modem_syscon_dev_t *hw)
123 {
124     return hw->clk_conf_power_st.clk_fe_st_map;
125 }
126 
127 __attribute__((always_inline))
modem_syscon_ll_set_fe_icg_bitmap(modem_syscon_dev_t * hw,uint32_t bitmap)128 static inline void modem_syscon_ll_set_fe_icg_bitmap(modem_syscon_dev_t *hw, uint32_t bitmap)
129 {
130     hw->clk_conf_power_st.clk_fe_st_map = bitmap;
131 }
132 
133 __attribute__((always_inline))
modem_syscon_ll_get_bt_icg_bitmap(modem_syscon_dev_t * hw)134 static inline uint32_t modem_syscon_ll_get_bt_icg_bitmap(modem_syscon_dev_t *hw)
135 {
136     return hw->clk_conf_power_st.clk_bt_st_map;
137 }
138 
139 __attribute__((always_inline))
modem_syscon_ll_set_bt_icg_bitmap(modem_syscon_dev_t * hw,uint32_t bitmap)140 static inline void modem_syscon_ll_set_bt_icg_bitmap(modem_syscon_dev_t *hw, uint32_t bitmap)
141 {
142     hw->clk_conf_power_st.clk_bt_st_map = bitmap;
143 }
144 
145 __attribute__((always_inline))
modem_syscon_ll_get_wifi_icg_bitmap(modem_syscon_dev_t * hw)146 static inline uint32_t modem_syscon_ll_get_wifi_icg_bitmap(modem_syscon_dev_t *hw)
147 {
148     return hw->clk_conf_power_st.clk_wifi_st_map;
149 }
150 
151 __attribute__((always_inline))
modem_syscon_ll_set_wifi_icg_bitmap(modem_syscon_dev_t * hw,uint32_t bitmap)152 static inline void modem_syscon_ll_set_wifi_icg_bitmap(modem_syscon_dev_t *hw, uint32_t bitmap)
153 {
154     hw->clk_conf_power_st.clk_wifi_st_map = bitmap;
155 }
156 
157 __attribute__((always_inline))
modem_syscon_ll_get_modem_periph_icg_bitmap(modem_syscon_dev_t * hw)158 static inline uint32_t modem_syscon_ll_get_modem_periph_icg_bitmap(modem_syscon_dev_t *hw)
159 {
160     return hw->clk_conf_power_st.clk_modem_peri_st_map;
161 }
162 
163 __attribute__((always_inline))
modem_syscon_ll_set_modem_periph_icg_bitmap(modem_syscon_dev_t * hw,uint32_t bitmap)164 static inline void modem_syscon_ll_set_modem_periph_icg_bitmap(modem_syscon_dev_t *hw, uint32_t bitmap)
165 {
166     hw->clk_conf_power_st.clk_modem_peri_st_map = bitmap;
167 }
168 
169 __attribute__((always_inline))
modem_syscon_ll_get_modem_apb_icg_bitmap(modem_syscon_dev_t * hw)170 static inline uint32_t modem_syscon_ll_get_modem_apb_icg_bitmap(modem_syscon_dev_t *hw)
171 {
172     return hw->clk_conf_power_st.clk_modem_apb_st_map;
173 }
174 
175 __attribute__((always_inline))
modem_syscon_ll_set_modem_apb_icg_bitmap(modem_syscon_dev_t * hw,uint32_t bitmap)176 static inline void modem_syscon_ll_set_modem_apb_icg_bitmap(modem_syscon_dev_t *hw, uint32_t bitmap)
177 {
178     hw->clk_conf_power_st.clk_modem_apb_st_map = bitmap;
179 }
180 
181 __attribute__((always_inline))
modem_syscon_ll_reset_wifibb(modem_syscon_dev_t * hw)182 static inline void modem_syscon_ll_reset_wifibb(modem_syscon_dev_t *hw)
183 {
184     hw->modem_rst_conf.rst_wifibb = 1;
185     hw->modem_rst_conf.rst_wifibb = 0;
186 }
187 
188 __attribute__((always_inline))
modem_syscon_ll_reset_wifimac(modem_syscon_dev_t * hw)189 static inline void modem_syscon_ll_reset_wifimac(modem_syscon_dev_t *hw)
190 {
191     hw->modem_rst_conf.rst_wifimac = 1;
192     hw->modem_rst_conf.rst_wifimac = 0;
193 }
194 
195 __attribute__((always_inline))
modem_syscon_ll_reset_fe(modem_syscon_dev_t * hw)196 static inline void modem_syscon_ll_reset_fe(modem_syscon_dev_t *hw)
197 {
198     hw->modem_rst_conf.rst_fe = 1;
199     hw->modem_rst_conf.rst_fe = 0;
200 }
201 
202 __attribute__((always_inline))
modem_syscon_ll_reset_btmac_apb(modem_syscon_dev_t * hw)203 static inline void modem_syscon_ll_reset_btmac_apb(modem_syscon_dev_t *hw)
204 {
205     hw->modem_rst_conf.rst_btmac_apb = 1;
206     hw->modem_rst_conf.rst_btmac_apb = 0;
207 }
208 
209 __attribute__((always_inline))
modem_syscon_ll_reset_btmac(modem_syscon_dev_t * hw)210 static inline void modem_syscon_ll_reset_btmac(modem_syscon_dev_t *hw)
211 {
212     hw->modem_rst_conf.rst_btmac = 1;
213     hw->modem_rst_conf.rst_btmac = 0;
214 }
215 
216 __attribute__((always_inline))
modem_syscon_ll_reset_btbb_apb(modem_syscon_dev_t * hw)217 static inline void modem_syscon_ll_reset_btbb_apb(modem_syscon_dev_t *hw)
218 {
219     hw->modem_rst_conf.rst_btbb_apb = 1;
220     hw->modem_rst_conf.rst_btbb_apb = 0;
221 }
222 
223 __attribute__((always_inline))
modem_syscon_ll_reset_btbb(modem_syscon_dev_t * hw)224 static inline void modem_syscon_ll_reset_btbb(modem_syscon_dev_t *hw)
225 {
226     hw->modem_rst_conf.rst_btbb = 1;
227     hw->modem_rst_conf.rst_btbb = 0;
228 }
229 
230 __attribute__((always_inline))
modem_syscon_ll_reset_etm(modem_syscon_dev_t * hw)231 static inline void modem_syscon_ll_reset_etm(modem_syscon_dev_t *hw)
232 {
233     hw->modem_rst_conf.rst_etm = 1;
234     hw->modem_rst_conf.rst_etm = 0;
235 }
236 
237 __attribute__((always_inline))
modem_syscon_ll_reset_zbmac(modem_syscon_dev_t * hw)238 static inline void modem_syscon_ll_reset_zbmac(modem_syscon_dev_t *hw)
239 {
240     hw->modem_rst_conf.rst_zbmac = 1;
241     hw->modem_rst_conf.rst_zbmac = 0;
242 }
243 
244 __attribute__((always_inline))
modem_syscon_ll_reset_modem_sec(modem_syscon_dev_t * hw)245 static inline void modem_syscon_ll_reset_modem_sec(modem_syscon_dev_t *hw)
246 {
247     hw->modem_rst_conf.rst_modem_ecb = 1;
248     hw->modem_rst_conf.rst_modem_ccm = 1;
249     hw->modem_rst_conf.rst_modem_bah = 1;
250     hw->modem_rst_conf.rst_modem_sec = 1;
251     hw->modem_rst_conf.rst_modem_ecb = 0;
252     hw->modem_rst_conf.rst_modem_ccm = 0;
253     hw->modem_rst_conf.rst_modem_bah = 0;
254     hw->modem_rst_conf.rst_modem_sec = 0;
255 }
256 
257 __attribute__((always_inline))
modem_syscon_ll_reset_ble_timer(modem_syscon_dev_t * hw)258 static inline void modem_syscon_ll_reset_ble_timer(modem_syscon_dev_t *hw)
259 {
260     hw->modem_rst_conf.rst_ble_timer = 1;
261     hw->modem_rst_conf.rst_ble_timer = 0;
262 }
263 
264 __attribute__((always_inline))
modem_syscon_ll_reset_data_dump(modem_syscon_dev_t * hw)265 static inline void modem_syscon_ll_reset_data_dump(modem_syscon_dev_t *hw)
266 {
267     hw->modem_rst_conf.rst_data_dump = 1;
268     hw->modem_rst_conf.rst_data_dump = 0;
269 }
270 
271 __attribute__((always_inline))
modem_syscon_ll_reset_all(modem_syscon_dev_t * hw)272 static inline void modem_syscon_ll_reset_all(modem_syscon_dev_t *hw)
273 {
274     hw->modem_rst_conf.val = 0xffffffff;
275     hw->modem_rst_conf.val = 0;
276 }
277 
278 
279 __attribute__((always_inline))
modem_syscon_ll_clk_conf1_configure(modem_syscon_dev_t * hw,bool en,uint32_t mask)280 static inline void modem_syscon_ll_clk_conf1_configure(modem_syscon_dev_t *hw, bool en, uint32_t mask)
281 {
282     if(en){
283         hw->clk_conf1.val = hw->clk_conf1.val | mask;
284     } else {
285         hw->clk_conf1.val = hw->clk_conf1.val & ~mask;
286     }
287 }
288 
289 __attribute__((always_inline))
modem_syscon_ll_clk_wifibb_configure(modem_syscon_dev_t * hw,bool en)290 static inline void modem_syscon_ll_clk_wifibb_configure(modem_syscon_dev_t *hw, bool en)
291 {
292     /* Configure
293         clk_wifibb_22m / clk_wifibb_40m / clk_wifibb_44m / clk_wifibb_80m
294         clk_wifibb_40x / clk_wifibb_80x / clk_wifibb_40x1 / clk_wifibb_80x1
295         clk_wifibb_160x1
296     */
297     modem_syscon_ll_clk_conf1_configure(hw, en, 0x1ff);
298 }
299 
300 __attribute__((always_inline))
modem_syscon_ll_enable_wifibb_22m_clock(modem_syscon_dev_t * hw,bool en)301 static inline void modem_syscon_ll_enable_wifibb_22m_clock(modem_syscon_dev_t *hw, bool en)
302 {
303     hw->clk_conf1.clk_wifibb_22m_en = en;
304 }
305 
306 __attribute__((always_inline))
modem_syscon_ll_enable_wifibb_40m_clock(modem_syscon_dev_t * hw,bool en)307 static inline void modem_syscon_ll_enable_wifibb_40m_clock(modem_syscon_dev_t *hw, bool en)
308 {
309     hw->clk_conf1.clk_wifibb_40m_en = en;
310 }
311 
312 __attribute__((always_inline))
modem_syscon_ll_enable_wifibb_44m_clock(modem_syscon_dev_t * hw,bool en)313 static inline void modem_syscon_ll_enable_wifibb_44m_clock(modem_syscon_dev_t *hw, bool en)
314 {
315     hw->clk_conf1.clk_wifibb_44m_en = en;
316 }
317 
318 __attribute__((always_inline))
modem_syscon_ll_enable_wifibb_80m_clock(modem_syscon_dev_t * hw,bool en)319 static inline void modem_syscon_ll_enable_wifibb_80m_clock(modem_syscon_dev_t *hw, bool en)
320 {
321     hw->clk_conf1.clk_wifibb_80m_en = en;
322 }
323 
324 __attribute__((always_inline))
modem_syscon_ll_enable_wifibb_40x_clock(modem_syscon_dev_t * hw,bool en)325 static inline void modem_syscon_ll_enable_wifibb_40x_clock(modem_syscon_dev_t *hw, bool en)
326 {
327     hw->clk_conf1.clk_wifibb_40x_en = en;
328 }
329 
330 __attribute__((always_inline))
modem_syscon_ll_enable_wifibb_80x_clock(modem_syscon_dev_t * hw,bool en)331 static inline void modem_syscon_ll_enable_wifibb_80x_clock(modem_syscon_dev_t *hw, bool en)
332 {
333     hw->clk_conf1.clk_wifibb_80x_en = en;
334 }
335 
336 __attribute__((always_inline))
modem_syscon_ll_enable_wifibb_40x1_clock(modem_syscon_dev_t * hw,bool en)337 static inline void modem_syscon_ll_enable_wifibb_40x1_clock(modem_syscon_dev_t *hw, bool en)
338 {
339     hw->clk_conf1.clk_wifibb_40x1_en = en;
340 }
341 
342 __attribute__((always_inline))
modem_syscon_ll_enable_wifibb_80x1_clock(modem_syscon_dev_t * hw,bool en)343 static inline void modem_syscon_ll_enable_wifibb_80x1_clock(modem_syscon_dev_t *hw, bool en)
344 {
345     hw->clk_conf1.clk_wifibb_80x1_en = en;
346 }
347 
348 __attribute__((always_inline))
modem_syscon_ll_enable_wifibb_160x1_clock(modem_syscon_dev_t * hw,bool en)349 static inline void modem_syscon_ll_enable_wifibb_160x1_clock(modem_syscon_dev_t *hw, bool en)
350 {
351     hw->clk_conf1.clk_wifibb_160x1_en = en;
352 }
353 
354 __attribute__((always_inline))
modem_syscon_ll_enable_wifibb_480m_clock(modem_syscon_dev_t * hw,bool en)355 static inline void modem_syscon_ll_enable_wifibb_480m_clock(modem_syscon_dev_t *hw, bool en)
356 {
357     hw->clk_conf1.clk_wifibb_480m_en = en;
358 }
359 
360 __attribute__((always_inline))
modem_syscon_ll_enable_wifi_mac_clock(modem_syscon_dev_t * hw,bool en)361 static inline void modem_syscon_ll_enable_wifi_mac_clock(modem_syscon_dev_t *hw, bool en)
362 {
363     hw->clk_conf1.clk_wifimac_en = en;
364 }
365 
366 __attribute__((always_inline))
modem_syscon_ll_enable_wifi_apb_clock(modem_syscon_dev_t * hw,bool en)367 static inline void modem_syscon_ll_enable_wifi_apb_clock(modem_syscon_dev_t *hw, bool en)
368 {
369     hw->clk_conf1.clk_wifi_apb_en = en;
370 }
371 
372 __attribute__((always_inline))
modem_syscon_ll_enable_fe_20m_clock(modem_syscon_dev_t * hw,bool en)373 static inline void modem_syscon_ll_enable_fe_20m_clock(modem_syscon_dev_t *hw, bool en)
374 {
375     hw->clk_conf1.clk_fe_20m_en = en;
376 }
377 
378 __attribute__((always_inline))
modem_syscon_ll_enable_fe_40m_clock(modem_syscon_dev_t * hw,bool en)379 static inline void modem_syscon_ll_enable_fe_40m_clock(modem_syscon_dev_t *hw, bool en)
380 {
381     hw->clk_conf1.clk_fe_40m_en = en;
382 }
383 
384 __attribute__((always_inline))
modem_syscon_ll_enable_fe_80m_clock(modem_syscon_dev_t * hw,bool en)385 static inline void modem_syscon_ll_enable_fe_80m_clock(modem_syscon_dev_t *hw, bool en)
386 {
387     hw->clk_conf1.clk_fe_80m_en = en;
388 }
389 
390 __attribute__((always_inline))
modem_syscon_ll_enable_fe_160m_clock(modem_syscon_dev_t * hw,bool en)391 static inline void modem_syscon_ll_enable_fe_160m_clock(modem_syscon_dev_t *hw, bool en)
392 {
393     hw->clk_conf1.clk_fe_160m_en = en;
394 }
395 
396 __attribute__((always_inline))
modem_syscon_ll_enable_fe_cal_160m_clock(modem_syscon_dev_t * hw,bool en)397 static inline void modem_syscon_ll_enable_fe_cal_160m_clock(modem_syscon_dev_t *hw, bool en)
398 {
399     hw->clk_conf1.clk_fe_cal_160m_en = en;
400 }
401 
402 __attribute__((always_inline))
modem_syscon_ll_enable_fe_apb_clock(modem_syscon_dev_t * hw,bool en)403 static inline void modem_syscon_ll_enable_fe_apb_clock(modem_syscon_dev_t *hw, bool en)
404 {
405     hw->clk_conf1.clk_fe_apb_en = en;
406 }
407 
408 __attribute__((always_inline))
modem_syscon_ll_enable_bt_apb_clock(modem_syscon_dev_t * hw,bool en)409 static inline void modem_syscon_ll_enable_bt_apb_clock(modem_syscon_dev_t *hw, bool en)
410 {
411     hw->clk_conf1.clk_bt_apb_en = en;
412 }
413 
414 __attribute__((always_inline))
modem_syscon_ll_enable_bt_clock(modem_syscon_dev_t * hw,bool en)415 static inline void modem_syscon_ll_enable_bt_clock(modem_syscon_dev_t *hw, bool en)
416 {
417     hw->clk_conf1.clk_bt_en = en;
418 }
419 
420 __attribute__((always_inline))
modem_syscon_ll_enable_fe_480m_clock(modem_syscon_dev_t * hw,bool en)421 static inline void modem_syscon_ll_enable_fe_480m_clock(modem_syscon_dev_t *hw, bool en)
422 {
423     hw->clk_conf1.clk_fe_480m_en = en;
424 }
425 
426 __attribute__((always_inline))
modem_syscon_ll_enable_fe_anamode_40m_clock(modem_syscon_dev_t * hw,bool en)427 static inline void modem_syscon_ll_enable_fe_anamode_40m_clock(modem_syscon_dev_t *hw, bool en)
428 {
429     hw->clk_conf1.clk_fe_anamode_40m_en = en;
430 }
431 
432 __attribute__((always_inline))
modem_syscon_ll_enable_fe_anamode_80m_clock(modem_syscon_dev_t * hw,bool en)433 static inline void modem_syscon_ll_enable_fe_anamode_80m_clock(modem_syscon_dev_t *hw, bool en)
434 {
435     hw->clk_conf1.clk_fe_anamode_80m_en = en;
436 }
437 
438 __attribute__((always_inline))
modem_syscon_ll_enable_fe_anamode_160m_clock(modem_syscon_dev_t * hw,bool en)439 static inline void modem_syscon_ll_enable_fe_anamode_160m_clock(modem_syscon_dev_t *hw, bool en)
440 {
441     hw->clk_conf1.clk_fe_anamode_160m_en = en;
442 }
443 
444 __attribute__((always_inline))
modem_syscon_ll_enable_wifibb_22m_force_clock(modem_syscon_dev_t * hw,bool en)445 static inline void modem_syscon_ll_enable_wifibb_22m_force_clock(modem_syscon_dev_t *hw, bool en)
446 {
447     hw->clk_conf1_force_on.clk_wifibb_22m_fo = en;
448 }
449 
450 __attribute__((always_inline))
modem_syscon_ll_enable_wifibb_40m_force_clock(modem_syscon_dev_t * hw,bool en)451 static inline void modem_syscon_ll_enable_wifibb_40m_force_clock(modem_syscon_dev_t *hw, bool en)
452 {
453     hw->clk_conf1_force_on.clk_wifibb_40m_fo = en;
454 }
455 
456 __attribute__((always_inline))
modem_syscon_ll_enable_wifibb_44m_force_clock(modem_syscon_dev_t * hw,bool en)457 static inline void modem_syscon_ll_enable_wifibb_44m_force_clock(modem_syscon_dev_t *hw, bool en)
458 {
459     hw->clk_conf1_force_on.clk_wifibb_44m_fo = en;
460 }
461 
462 __attribute__((always_inline))
modem_syscon_ll_enable_wifibb_80m_force_clock(modem_syscon_dev_t * hw,bool en)463 static inline void modem_syscon_ll_enable_wifibb_80m_force_clock(modem_syscon_dev_t *hw, bool en)
464 {
465     hw->clk_conf1_force_on.clk_wifibb_80m_fo = en;
466 }
467 
468 __attribute__((always_inline))
modem_syscon_ll_enable_wifibb_40x_force_clock(modem_syscon_dev_t * hw,bool en)469 static inline void modem_syscon_ll_enable_wifibb_40x_force_clock(modem_syscon_dev_t *hw, bool en)
470 {
471     hw->clk_conf1_force_on.clk_wifibb_40x_fo = en;
472 }
473 
474 __attribute__((always_inline))
modem_syscon_ll_enable_wifibb_80x_force_clock(modem_syscon_dev_t * hw,bool en)475 static inline void modem_syscon_ll_enable_wifibb_80x_force_clock(modem_syscon_dev_t *hw, bool en)
476 {
477     hw->clk_conf1_force_on.clk_wifibb_80x_fo = en;
478 }
479 
480 __attribute__((always_inline))
modem_syscon_ll_enable_wifibb_40x1_force_clock(modem_syscon_dev_t * hw,bool en)481 static inline void modem_syscon_ll_enable_wifibb_40x1_force_clock(modem_syscon_dev_t *hw, bool en)
482 {
483     hw->clk_conf1_force_on.clk_wifibb_40x1_fo = en;
484 }
485 
486 __attribute__((always_inline))
modem_syscon_ll_enable_wifibb_80x1_force_clock(modem_syscon_dev_t * hw,bool en)487 static inline void modem_syscon_ll_enable_wifibb_80x1_force_clock(modem_syscon_dev_t *hw, bool en)
488 {
489     hw->clk_conf1_force_on.clk_wifibb_80x1_fo = en;
490 }
491 
492 __attribute__((always_inline))
modem_syscon_ll_enable_wifibb_160x1_force_clock(modem_syscon_dev_t * hw,bool en)493 static inline void modem_syscon_ll_enable_wifibb_160x1_force_clock(modem_syscon_dev_t *hw, bool en)
494 {
495     hw->clk_conf1_force_on.clk_wifibb_160x1_fo = en;
496 }
497 
498 __attribute__((always_inline))
modem_syscon_ll_enable_wifibb_480m_force_clock(modem_syscon_dev_t * hw,bool en)499 static inline void modem_syscon_ll_enable_wifibb_480m_force_clock(modem_syscon_dev_t *hw, bool en)
500 {
501     hw->clk_conf1_force_on.clk_wifibb_480m_fo = en;
502 }
503 
504 __attribute__((always_inline))
modem_syscon_ll_enable_wifi_mac_force_clock(modem_syscon_dev_t * hw,bool en)505 static inline void modem_syscon_ll_enable_wifi_mac_force_clock(modem_syscon_dev_t *hw, bool en)
506 {
507     hw->clk_conf1_force_on.clk_wifimac_fo = en;
508 }
509 
510 __attribute__((always_inline))
modem_syscon_ll_enable_wifi_apb_force_clock(modem_syscon_dev_t * hw,bool en)511 static inline void modem_syscon_ll_enable_wifi_apb_force_clock(modem_syscon_dev_t *hw, bool en)
512 {
513     hw->clk_conf1_force_on.clk_wifi_apb_fo = en;
514 }
515 
516 __attribute__((always_inline))
modem_syscon_ll_enable_fe_20m_force_clock(modem_syscon_dev_t * hw,bool en)517 static inline void modem_syscon_ll_enable_fe_20m_force_clock(modem_syscon_dev_t *hw, bool en)
518 {
519     hw->clk_conf1_force_on.clk_fe_20m_fo = en;
520 }
521 
522 __attribute__((always_inline))
modem_syscon_ll_enable_fe_40m_force_clock(modem_syscon_dev_t * hw,bool en)523 static inline void modem_syscon_ll_enable_fe_40m_force_clock(modem_syscon_dev_t *hw, bool en)
524 {
525     hw->clk_conf1_force_on.clk_fe_40m_fo = en;
526 }
527 
528 __attribute__((always_inline))
modem_syscon_ll_enable_fe_80m_force_clock(modem_syscon_dev_t * hw,bool en)529 static inline void modem_syscon_ll_enable_fe_80m_force_clock(modem_syscon_dev_t *hw, bool en)
530 {
531     hw->clk_conf1_force_on.clk_fe_80m_fo = en;
532 }
533 
534 __attribute__((always_inline))
modem_syscon_ll_enable_fe_160m_force_clock(modem_syscon_dev_t * hw,bool en)535 static inline void modem_syscon_ll_enable_fe_160m_force_clock(modem_syscon_dev_t *hw, bool en)
536 {
537     hw->clk_conf1_force_on.clk_fe_160m_fo = en;
538 }
539 
540 __attribute__((always_inline))
modem_syscon_ll_enable_fe_cal_160m_force_clock(modem_syscon_dev_t * hw,bool en)541 static inline void modem_syscon_ll_enable_fe_cal_160m_force_clock(modem_syscon_dev_t *hw, bool en)
542 {
543     hw->clk_conf1_force_on.clk_fe_cal_160m_fo = en;
544 }
545 
546 __attribute__((always_inline))
modem_syscon_ll_enable_fe_apb_force_clock(modem_syscon_dev_t * hw,bool en)547 static inline void modem_syscon_ll_enable_fe_apb_force_clock(modem_syscon_dev_t *hw, bool en)
548 {
549     hw->clk_conf1_force_on.clk_fe_apb_fo = en;
550 }
551 
552 __attribute__((always_inline))
modem_syscon_ll_enable_bt_apb_force_clock(modem_syscon_dev_t * hw,bool en)553 static inline void modem_syscon_ll_enable_bt_apb_force_clock(modem_syscon_dev_t *hw, bool en)
554 {
555     hw->clk_conf1_force_on.clk_bt_apb_fo = en;
556 }
557 
558 __attribute__((always_inline))
modem_syscon_ll_enable_bt_force_clock(modem_syscon_dev_t * hw,bool en)559 static inline void modem_syscon_ll_enable_bt_force_clock(modem_syscon_dev_t *hw, bool en)
560 {
561     hw->clk_conf1_force_on.clk_bt_fo = en;
562 }
563 
564 __attribute__((always_inline))
modem_syscon_ll_enable_fe_480m_force_clock(modem_syscon_dev_t * hw,bool en)565 static inline void modem_syscon_ll_enable_fe_480m_force_clock(modem_syscon_dev_t *hw, bool en)
566 {
567     hw->clk_conf1_force_on.clk_fe_480m_fo = en;
568 }
569 
570 __attribute__((always_inline))
modem_syscon_ll_enable_fe_anamode_40m_force_clock(modem_syscon_dev_t * hw,bool en)571 static inline void modem_syscon_ll_enable_fe_anamode_40m_force_clock(modem_syscon_dev_t *hw, bool en)
572 {
573     hw->clk_conf1_force_on.clk_fe_anamode_40m_fo = en;
574 }
575 
576 __attribute__((always_inline))
modem_syscon_ll_enable_fe_anamode_80m_force_clock(modem_syscon_dev_t * hw,bool en)577 static inline void modem_syscon_ll_enable_fe_anamode_80m_force_clock(modem_syscon_dev_t *hw, bool en)
578 {
579     hw->clk_conf1_force_on.clk_fe_anamode_80m_fo = en;
580 }
581 
582 __attribute__((always_inline))
modem_syscon_ll_enable_fe_anamode_160m_force_clock(modem_syscon_dev_t * hw,bool en)583 static inline void modem_syscon_ll_enable_fe_anamode_160m_force_clock(modem_syscon_dev_t *hw, bool en)
584 {
585     hw->clk_conf1_force_on.clk_fe_anamode_160m_fo = en;
586 }
587 
588 __attribute__((always_inline))
modem_syscon_ll_get_date(modem_syscon_dev_t * hw)589 static inline uint32_t modem_syscon_ll_get_date(modem_syscon_dev_t *hw)
590 {
591     return hw->date.val;
592 }
593 
594 #ifdef __cplusplus
595 }
596 #endif
597