1 /**************************************************************************//**
2  * @file
3  * @brief Device Manager API Definition
4  ******************************************************************************
5  * # License
6  * <b>Copyright 2024 Silicon Laboratories, Inc. www.silabs.com</b>
7  ******************************************************************************
8  *
9  * SPDX-License-Identifier: Zlib
10  *
11  * The licensor of this software is Silicon Laboratories Inc.
12  *
13  * This software is provided 'as-is', without any express or implied
14  * warranty. In no event will the authors be held liable for any damages
15  * arising from the use of this software.
16  *
17  * Permission is granted to anyone to use this software for any purpose,
18  * including commercial applications, and to alter it and redistribute it
19  * freely, subject to the following restrictions:
20  *
21  * 1. The origin of this software must not be misrepresented; you must not
22  *    claim that you wrote the original software. If you use this software
23  *    in a product, an acknowledgment in the product documentation would be
24  *    appreciated but is not required.
25  * 2. Altered source versions must be plainly marked as such, and must not be
26  *    misrepresented as being the original software.
27  * 3. This notice may not be removed or altered from any source distribution.
28  *
29  *****************************************************************************/
30 #ifndef SL_DEVICE_PERIPHERAL_H
31 #define SL_DEVICE_PERIPHERAL_H
32 
33 #include "sl_device_peripheral_types.h"
34 #include "sl_code_classification.h"
35 
36 #if defined(DEVICE_PERIPHERAL_INTERNAL_PRESENT)
37 #include "sli_device_peripheral_internal.h"
38 #endif
39 
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43 
44 /***************************************************************************//**
45  * @addtogroup device_peripheral Device Abstraction Peripheral
46  * @details
47  * ## Overview
48  *
49  * The Device Abstraction Peripheral module defines the different peripherals
50  * that exist across all Silicon Labs devices and their utility functions.
51  *
52  * @{
53  ******************************************************************************/
54 
55 // ----------------------------------------------------------------------------
56 // DEFINES
57 
58 /***************************************************************************//**
59  * @name Peripheral Defines
60  * Those defines can be used as constant of type sl_peripheral_t.
61  * The values of those defines are device specific.
62  * @{
63  ******************************************************************************/
64 
65 /// Define pointer to ACMP0 peripheral structure.
66 #define SL_PERIPHERAL_ACMP0 (&sl_peripheral_val_acmp0)
67 
68 /// Define pointer to ACMP1 peripheral structure.
69 #define SL_PERIPHERAL_ACMP1 (&sl_peripheral_val_acmp1)
70 
71 /// Define pointer to ADC0 peripheral structure.
72 #define SL_PERIPHERAL_ADC0 (&sl_peripheral_val_adc0)
73 
74 /// Define pointer to AES peripheral structure.
75 #define SL_PERIPHERAL_AES (&sl_peripheral_val_aes)
76 
77 /// Define pointer to AMUXCP0 peripheral structure.
78 #define SL_PERIPHERAL_AMUXCP0 (&sl_peripheral_val_amuxcp0)
79 
80 /// Define pointer to BUFC peripheral structure.
81 #define SL_PERIPHERAL_BUFC (&sl_peripheral_val_bufc)
82 
83 /// Define pointer to BURAM peripheral structure.
84 #define SL_PERIPHERAL_BURAM (&sl_peripheral_val_buram)
85 
86 /// Define pointer to BURTC peripheral structure.
87 #define SL_PERIPHERAL_BURTC (&sl_peripheral_val_burtc)
88 
89 /// Define pointer to CMU peripheral structure.
90 #define SL_PERIPHERAL_CMU (&sl_peripheral_val_cmu)
91 
92 /// Define pointer to CRYPTOACC peripheral structure.
93 #define SL_PERIPHERAL_CRYPTOACC (&sl_peripheral_val_cryptoacc)
94 
95 /// Define pointer to DCDC peripheral structure.
96 #define SL_PERIPHERAL_DCDC (&sl_peripheral_val_dcdc)
97 
98 /// Define pointer to DEVINFO peripheral structure.
99 #define SL_PERIPHERAL_DEVINFO (&sl_peripheral_val_devinfo)
100 
101 /// Define pointer to DMEM peripheral structure.
102 #define SL_PERIPHERAL_DMEM (&sl_peripheral_val_dmem)
103 
104 /// Define pointer to DMEM0 peripheral structure.
105 #define SL_PERIPHERAL_DMEM0 (&sl_peripheral_val_dmem0)
106 
107 /// Define pointer to DMEM1 peripheral structure.
108 #define SL_PERIPHERAL_DMEM1 (&sl_peripheral_val_dmem1)
109 
110 /// Define pointer to DPLL0 peripheral structure.
111 #define SL_PERIPHERAL_DPLL0 (&sl_peripheral_val_dpll0)
112 
113 /// Define pointer to EMU peripheral structure.
114 #define SL_PERIPHERAL_EMU (&sl_peripheral_val_emu)
115 
116 /// Define pointer to ETAMPDET peripheral structure.
117 #define SL_PERIPHERAL_ETAMPDET (&sl_peripheral_val_etampdet)
118 
119 /// Define pointer to EUART0 peripheral structure.
120 #define SL_PERIPHERAL_EUART0 (&sl_peripheral_val_euart0)
121 
122 /// Define pointer to EUSART0 peripheral structure.
123 #define SL_PERIPHERAL_EUSART0 (&sl_peripheral_val_eusart0)
124 
125 /// Define pointer to EUSART1 peripheral structure.
126 #define SL_PERIPHERAL_EUSART1 (&sl_peripheral_val_eusart1)
127 
128 /// Define pointer to EUSART2 peripheral structure.
129 #define SL_PERIPHERAL_EUSART2 (&sl_peripheral_val_eusart2)
130 
131 /// Define pointer to EUSART3 peripheral structure.
132 #define SL_PERIPHERAL_EUSART3 (&sl_peripheral_val_eusart3)
133 
134 /// Define pointer to EUSART4 peripheral structure.
135 #define SL_PERIPHERAL_EUSART4 (&sl_peripheral_val_eusart4)
136 
137 /// Define pointer to FSRCO peripheral structure.
138 #define SL_PERIPHERAL_FSRCO (&sl_peripheral_val_fsrco)
139 
140 /// Define pointer to GPCRC0 peripheral structure.
141 #define SL_PERIPHERAL_GPCRC0 (&sl_peripheral_val_gpcrc0)
142 
143 /// Define pointer to GPIO peripheral structure.
144 #define SL_PERIPHERAL_GPIO (&sl_peripheral_val_gpio)
145 
146 /// Define pointer to HFRCO0 peripheral structure.
147 #define SL_PERIPHERAL_HFRCO0 (&sl_peripheral_val_hfrco0)
148 
149 /// Define pointer to HFRCOEM23 peripheral structure.
150 #define SL_PERIPHERAL_HFRCOEM23 (&sl_peripheral_val_hfrcoem23)
151 
152 /// Define pointer to HFXO0 peripheral structure.
153 #define SL_PERIPHERAL_HFXO0 (&sl_peripheral_val_hfxo0)
154 
155 /// Define pointer to HOSTMAILBOX peripheral structure.
156 #define SL_PERIPHERAL_HOSTMAILBOX (&sl_peripheral_val_hostmailbox)
157 
158 /// Define pointer to HOSTPORTAL peripheral structure.
159 #define SL_PERIPHERAL_HOSTPORTAL (&sl_peripheral_val_hostportal)
160 
161 /// Define pointer to I2C0 peripheral structure.
162 #define SL_PERIPHERAL_I2C0 (&sl_peripheral_val_i2c0)
163 
164 /// Define pointer to I2C1 peripheral structure.
165 #define SL_PERIPHERAL_I2C1 (&sl_peripheral_val_i2c1)
166 
167 /// Define pointer to I2C2 peripheral structure.
168 #define SL_PERIPHERAL_I2C2 (&sl_peripheral_val_i2c2)
169 
170 /// Define pointer to I2C3 peripheral structure.
171 #define SL_PERIPHERAL_I2C3 (&sl_peripheral_val_i2c3)
172 
173 /// Define pointer to IADC0 peripheral structure.
174 #define SL_PERIPHERAL_IADC0 (&sl_peripheral_val_iadc0)
175 
176 /// Define pointer to ICACHE0 peripheral structure.
177 #define SL_PERIPHERAL_ICACHE0 (&sl_peripheral_val_icache0)
178 
179 /// Define pointer to KEYSCAN peripheral structure.
180 #define SL_PERIPHERAL_KEYSCAN (&sl_peripheral_val_keyscan)
181 
182 /// Define pointer to L1ICACHE0 peripheral structure.
183 #define SL_PERIPHERAL_L1ICACHE0 (&sl_peripheral_val_l1icache0)
184 
185 /// Define pointer to L2ICACHE0 peripheral structure.
186 #define SL_PERIPHERAL_L2ICACHE0 (&sl_peripheral_val_l2icache0)
187 
188 /// Define pointer to LCD peripheral structure.
189 #define SL_PERIPHERAL_LCD (&sl_peripheral_val_lcd)
190 
191 /// Define pointer to LCDRF peripheral structure.
192 #define SL_PERIPHERAL_LCDRF (&sl_peripheral_val_lcdrf)
193 
194 /// Define pointer to LDMA0 peripheral structure.
195 #define SL_PERIPHERAL_LDMA0 (&sl_peripheral_val_ldma0)
196 
197 /// Define pointer to LDMAXBAR0 peripheral structure.
198 #define SL_PERIPHERAL_LDMAXBAR0 (&sl_peripheral_val_ldmaxbar0)
199 
200 /// Define pointer to LEDDRV0 peripheral structure.
201 #define SL_PERIPHERAL_LEDDRV0 (&sl_peripheral_val_leddrv0)
202 
203 /// Define pointer to LESENSE peripheral structure.
204 #define SL_PERIPHERAL_LESENSE (&sl_peripheral_val_lesense)
205 
206 /// Define pointer to LETIMER0 peripheral structure.
207 #define SL_PERIPHERAL_LETIMER0 (&sl_peripheral_val_letimer0)
208 
209 /// Define pointer to LFRCO peripheral structure.
210 #define SL_PERIPHERAL_LFRCO (&sl_peripheral_val_lfrco)
211 
212 /// Define pointer to LFXO peripheral structure.
213 #define SL_PERIPHERAL_LFXO (&sl_peripheral_val_lfxo)
214 
215 /// Define pointer to LPWAES peripheral structure.
216 #define SL_PERIPHERAL_LPWAES (&sl_peripheral_val_lpwaes)
217 
218 /// Define pointer to LPW0PORTAL peripheral structure.
219 #define SL_PERIPHERAL_LPW0PORTAL (&sl_peripheral_val_lpw0portal)
220 
221 /// Define pointer to LVGD peripheral structure.
222 #define SL_PERIPHERAL_LVGD (&sl_peripheral_val_lvgd)
223 
224 /// Define pointer to MPAHBRAM peripheral structure.
225 #define SL_PERIPHERAL_MPAHBRAM (&sl_peripheral_val_mpahbram)
226 
227 /// Define pointer to MSC peripheral structure.
228 #define SL_PERIPHERAL_MSC (&sl_peripheral_val_msc)
229 
230 /// Define pointer to MVP peripheral structure.
231 #define SL_PERIPHERAL_MVP (&sl_peripheral_val_mvp)
232 
233 /// Define pointer to PCNT0 peripheral structure.
234 #define SL_PERIPHERAL_PCNT0 (&sl_peripheral_val_pcnt0)
235 
236 /// Define pointer to PDM peripheral structure.
237 #define SL_PERIPHERAL_PDM (&sl_peripheral_val_pdm)
238 
239 /// Define pointer to PFMXPPRF peripheral structure.
240 #define SL_PERIPHERAL_PFMXPPRF (&sl_peripheral_val_pfmxpprf)
241 
242 /// Define pointer to PIXELRZ0 peripheral structure.
243 #define SL_PERIPHERAL_PIXELRZ0 (&sl_peripheral_val_pixelrz0)
244 
245 /// Define pointer to PIXELRZ1 peripheral structure.
246 #define SL_PERIPHERAL_PIXELRZ1 (&sl_peripheral_val_pixelrz1)
247 
248 /// Define pointer to PRORTC peripheral structure.
249 #define SL_PERIPHERAL_PRORTC (&sl_peripheral_val_prortc)
250 
251 /// Define pointer to PRS peripheral structure.
252 #define SL_PERIPHERAL_PRS (&sl_peripheral_val_prs)
253 
254 /// Define pointer to RADIOAES peripheral structure.
255 #define SL_PERIPHERAL_RADIOAES (&sl_peripheral_val_radioaes)
256 
257 /// Define pointer to RFFPLL0 peripheral structure.
258 #define SL_PERIPHERAL_RFFPLL0 (&sl_peripheral_val_rffpll0)
259 
260 /// Define pointer to RPA peripheral structure.
261 #define SL_PERIPHERAL_RPA (&sl_peripheral_val_rpa)
262 
263 /// Define pointer to RTCC peripheral structure.
264 #define SL_PERIPHERAL_RTCC (&sl_peripheral_val_rtcc)
265 
266 /// Define pointer to SCRATCHPAD peripheral structure.
267 #define SL_PERIPHERAL_SCRATCHPAD (&sl_peripheral_val_scratchpad)
268 
269 /// Define pointer to SEMAILBOX peripheral structure.
270 #define SL_PERIPHERAL_SEMAILBOX (&sl_peripheral_val_semailbox)
271 
272 /// Define pointer to SEMAPHORE0 peripheral structure.
273 #define SL_PERIPHERAL_SEMAPHORE0 (&sl_peripheral_val_semaphore0)
274 
275 /// Define pointer to SEMAPHORE1 peripheral structure.
276 #define SL_PERIPHERAL_SEMAPHORE1 (&sl_peripheral_val_semaphore1)
277 
278 /// Define pointer to SEPORTAL peripheral structure.
279 #define SL_PERIPHERAL_SEPORTAL (&sl_peripheral_val_seportal)
280 
281 /// Define pointer to SEPUF peripheral structure.
282 #define SL_PERIPHERAL_SEPUF (&sl_peripheral_val_sepuf)
283 
284 /// Define pointer to SMU peripheral structure.
285 #define SL_PERIPHERAL_SMU (&sl_peripheral_val_smu)
286 
287 /// Define pointer to SOCPLL0 peripheral structure.
288 #define SL_PERIPHERAL_SOCPLL0 (&sl_peripheral_val_socpll0)
289 
290 /// Define pointer to SYMCRYPTO peripheral structure.
291 #define SL_PERIPHERAL_SYMCRYPTO (&sl_peripheral_val_symcrypto)
292 
293 /// Define pointer to SYSCFG peripheral structure.
294 #define SL_PERIPHERAL_SYSCFG (&sl_peripheral_val_syscfg)
295 
296 /// Define pointer to SYSRTC0 peripheral structure.
297 #define SL_PERIPHERAL_SYSRTC0 (&sl_peripheral_val_sysrtc0)
298 
299 /// Define pointer to TIMER0 peripheral structure.
300 #define SL_PERIPHERAL_TIMER0 (&sl_peripheral_val_timer0)
301 
302 /// Define pointer to TIMER1 peripheral structure.
303 #define SL_PERIPHERAL_TIMER1 (&sl_peripheral_val_timer1)
304 
305 /// Define pointer to TIMER2 peripheral structure.
306 #define SL_PERIPHERAL_TIMER2 (&sl_peripheral_val_timer2)
307 
308 /// Define pointer to TIMER3 peripheral structure.
309 #define SL_PERIPHERAL_TIMER3 (&sl_peripheral_val_timer3)
310 
311 /// Define pointer to TIMER4 peripheral structure.
312 #define SL_PERIPHERAL_TIMER4 (&sl_peripheral_val_timer4)
313 
314 /// Define pointer to TIMER5 peripheral structure.
315 #define SL_PERIPHERAL_TIMER5 (&sl_peripheral_val_timer5)
316 
317 /// Define pointer to TIMER6 peripheral structure.
318 #define SL_PERIPHERAL_TIMER6 (&sl_peripheral_val_timer6)
319 
320 /// Define pointer to TIMER7 peripheral structure.
321 #define SL_PERIPHERAL_TIMER7 (&sl_peripheral_val_timer7)
322 
323 /// Define pointer to TIMER8 peripheral structure.
324 #define SL_PERIPHERAL_TIMER8 (&sl_peripheral_val_timer8)
325 
326 /// Define pointer to TIMER9 peripheral structure.
327 #define SL_PERIPHERAL_TIMER9 (&sl_peripheral_val_timer9)
328 
329 /// Define pointer to ULFRCO peripheral structure.
330 #define SL_PERIPHERAL_ULFRCO (&sl_peripheral_val_ulfrco)
331 
332 /// Define pointer to USART0 peripheral structure.
333 #define SL_PERIPHERAL_USART0 (&sl_peripheral_val_usart0)
334 
335 /// Define pointer to USART1 peripheral structure.
336 #define SL_PERIPHERAL_USART1 (&sl_peripheral_val_usart1)
337 
338 /// Define pointer to USART2 peripheral structure.
339 #define SL_PERIPHERAL_USART2 (&sl_peripheral_val_usart2)
340 
341 /// Define pointer to USB peripheral structure.
342 #define SL_PERIPHERAL_USB (&sl_peripheral_val_usb)
343 
344 /// Define pointer to USBAHB peripheral structure.
345 #define SL_PERIPHERAL_USBAHB (&sl_peripheral_val_usbahb)
346 
347 /// Define pointer to USBPLL0 peripheral structure.
348 #define SL_PERIPHERAL_USBPLL0 (&sl_peripheral_val_usbpll0)
349 
350 /// Define pointer to VDAC0 peripheral structure.
351 #define SL_PERIPHERAL_VDAC0 (&sl_peripheral_val_vdac0)
352 
353 /// Define pointer to VDAC1 peripheral structure.
354 #define SL_PERIPHERAL_VDAC1 (&sl_peripheral_val_vdac1)
355 
356 /// Define pointer to WDOG0 peripheral structure.
357 #define SL_PERIPHERAL_WDOG0 (&sl_peripheral_val_wdog0)
358 
359 /// Define pointer to WDOG1 peripheral structure.
360 #define SL_PERIPHERAL_WDOG1 (&sl_peripheral_val_wdog1)
361 
362 /// @} (end peripheral_defines)
363 
364 // ----------------------------------------------------------------------------
365 // TYPEDEFS
366 
367 /// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
368 
369 #if defined(__ICCARM__)
370 // Disable IAR multiple typedefs declaration warning.
371 #pragma diag_suppress=Pe301
372 #endif
373 
374 // Declare peripheral structure for ACMP.
375 typedef struct acmp_typedef ACMP_TypeDef;
376 
377 // Declare peripheral structure for ADC.
378 typedef struct adc_typedef ADC_TypeDef;
379 
380 // Declare peripheral structure for AES.
381 typedef struct aes_typedef AES_TypeDef;
382 
383 // Declare peripheral structure for AMUXCP.
384 typedef struct amuxcp_typedef AMUXCP_TypeDef;
385 
386 // Declare peripheral structure for BUFC.
387 typedef struct bufc_typedef BUFC_TypeDef;
388 
389 // Declare peripheral structure for BURAM.
390 typedef struct buram_typedef BURAM_TypeDef;
391 
392 // Declare peripheral structure for BURTC.
393 typedef struct burtc_typedef BURTC_TypeDef;
394 
395 // Declare peripheral structure for CMU.
396 typedef struct cmu_typedef CMU_TypeDef;
397 
398 // Declare peripheral structure for CRYPTOACC.
399 typedef struct cryptoacc_typedef CRYPTOACC_TypeDef;
400 
401 // Declare peripheral structure for CRYPTOACC_PKCTRL.
402 typedef struct cryptoacc_pkctrl_typedef CRYPTOACC_PKCTRL_TypeDef;
403 
404 // Declare peripheral structure for CRYPTOACC_RNGCTRL.
405 typedef struct cryptoacc_rngctrl_typedef CRYPTOACC_RNGCTRL_TypeDef;
406 
407 // Declare peripheral structure for DCDC.
408 typedef struct dcdc_typedef DCDC_TypeDef;
409 
410 // Declare peripheral structure for DEVINFO.
411 typedef struct devinfo_typedef DEVINFO_TypeDef;
412 
413 // Declare peripheral structure for DPLL.
414 typedef struct dpll_typedef DPLL_TypeDef;
415 
416 // Declare peripheral structure for EMU.
417 typedef struct emu_typedef EMU_TypeDef;
418 
419 // Declare peripheral structure for EMU_CFGNS.
420 typedef struct emu_cfgns_typedef EMU_CFGNS_TypeDef;
421 
422 // Declare peripheral structure for ETAMPDET.
423 typedef struct etampdet_typedef ETAMPDET_TypeDef;
424 
425 // Declare peripheral structure for EUSART.
426 typedef struct eusart_typedef EUSART_TypeDef;
427 
428 // Declare peripheral structure for FSRCO.
429 typedef struct fsrco_typedef FSRCO_TypeDef;
430 
431 // Declare peripheral structure for GPCRC.
432 typedef struct gpcrc_typedef GPCRC_TypeDef;
433 
434 // Declare peripheral structure for GPIO.
435 typedef struct gpio_typedef GPIO_TypeDef;
436 
437 // Declare peripheral structure for HFRCO.
438 typedef struct hfrco_typedef HFRCO_TypeDef;
439 
440 // Declare peripheral structure for HFXO.
441 typedef struct hfxo_typedef HFXO_TypeDef;
442 
443 // Declare peripheral structure for HOSTPORTAL.
444 typedef struct hostportal_typedef HOSTPORTAL_TypeDef;
445 
446 // Declare peripheral structure for HYDRARAM.
447 typedef struct hydraram_typedef HYDRARAM_TypeDef;
448 
449 // Declare peripheral structure for I2C.
450 typedef struct i2c_typedef I2C_TypeDef;
451 
452 // Declare peripheral structure for IADC.
453 typedef struct iadc_typedef IADC_TypeDef;
454 
455 // Declare peripheral structure for ICACHE.
456 typedef struct icache_typedef ICACHE_TypeDef;
457 
458 // Declare peripheral structure for KEYSCAN.
459 typedef struct keyscan_typedef KEYSCAN_TypeDef;
460 
461 // Declare peripheral structure for L2CACHE.
462 typedef struct l2cache_typedef L2CACHE_TypeDef;
463 
464 // Declare peripheral structure for LCD.
465 typedef struct lcd_typedef LCD_TypeDef;
466 
467 // Declare peripheral structure for LCDRF.
468 typedef struct lcdrf_typedef LCDRF_TypeDef;
469 
470 // Declare peripheral structure for LDMA.
471 typedef struct ldma_typedef LDMA_TypeDef;
472 
473 // Declare peripheral structure for LDMAXBAR.
474 typedef struct ldmaxbar_typedef LDMAXBAR_TypeDef;
475 
476 // Declare peripheral structure for LEDDRV.
477 typedef struct leddrv_typedef LEDDRV_TypeDef;
478 
479 // Declare peripheral structure for LESENSE.
480 typedef struct lesense_typedef LESENSE_TypeDef;
481 
482 // Declare peripheral structure for LETIMER.
483 typedef struct letimer_typedef LETIMER_TypeDef;
484 
485 // Declare peripheral structure for LFRCO.
486 typedef struct lfrco_typedef LFRCO_TypeDef;
487 
488 // Declare peripheral structure for LFXO.
489 typedef struct lfxo_typedef LFXO_TypeDef;
490 
491 // Declare peripheral structure for LPWAES.
492 typedef struct lpwaes_typedef LPWAES_TypeDef;
493 
494 // Declare peripheral structure for LPW0PORTAL.
495 typedef struct lpw0portal_typedef LPW0PORTAL_TypeDef;
496 
497 // Declare peripheral structure for LVGD.
498 typedef struct lvgd_typedef LVGD_TypeDef;
499 
500 // Declare peripheral structure for MAILBOX.
501 typedef struct mailbox_typedef MAILBOX_TypeDef;
502 
503 // Declare peripheral structure for MPAHBRAM.
504 typedef struct mpahbram_typedef MPAHBRAM_TypeDef;
505 
506 // Declare peripheral structure for MSC.
507 typedef struct msc_typedef MSC_TypeDef;
508 
509 // Declare peripheral structure for MVP.
510 typedef struct mvp_typedef MVP_TypeDef;
511 
512 // Declare peripheral structure for PCNT.
513 typedef struct pcnt_typedef PCNT_TypeDef;
514 
515 // Declare peripheral structure for PDM.
516 typedef struct pdm_typedef PDM_TypeDef;
517 
518 // Declare peripheral structure for PFMXPPRF.
519 typedef struct pfmxpprf_typedef PFMXPPRF_TypeDef;
520 
521 // Declare peripheral structure for PIXELRZ.
522 typedef struct pixelrz_typedef PIXELRZ_TypeDef;
523 
524 // Declare peripheral structure for PRS.
525 typedef struct prs_typedef PRS_TypeDef;
526 
527 // Declare peripheral structure for RFFPLL.
528 typedef struct rffpll_typedef RFFPLL_TypeDef;
529 
530 // Declare peripheral structure for RPA.
531 typedef struct rpa_typedef RPA_TypeDef;
532 
533 // Declare peripheral structure for RTCC.
534 typedef struct rtcc_typedef RTCC_TypeDef;
535 
536 // Declare peripheral structure for SCRATCHPAD.
537 typedef struct scratchpad_typedef SCRATCHPAD_TypeDef;
538 
539 // Declare peripheral structure for SEMAILBOX_AHBHOST.
540 typedef struct semailbox_ahbhost_typedef SEMAILBOX_AHBHOST_TypeDef;
541 
542 // Declare peripheral structure for SEMAILBOX_HOST.
543 typedef struct semailbox_host_typedef SEMAILBOX_HOST_TypeDef;
544 
545 // Declare peripheral structure for SEMAPHORE.
546 typedef struct semaphore_typedef SEMAPHORE_TypeDef;
547 
548 // Declare peripheral structure for SEPORTAL.
549 typedef struct seportal_typedef SEPORTAL_TypeDef;
550 
551 // Declare peripheral structure for SEPUF_APBCFG.
552 typedef struct sepuf_apbcfg_typedef SEPUF_APBCFG_TypeDef;
553 
554 // Declare peripheral structure for SMU.
555 typedef struct smu_typedef SMU_TypeDef;
556 
557 // Declare peripheral structure for SOCPLL.
558 typedef struct socpll_typedef SOCPLL_TypeDef;
559 
560 // Declare peripheral structure for SYMCRYPTO.
561 typedef struct symcrypto_typedef SYMCRYPTO_TypeDef;
562 
563 // Declare peripheral structure for SYSCFG.
564 typedef struct syscfg_typedef SYSCFG_TypeDef;
565 
566 // Declare peripheral structure for SYSCFG_CFGNS.
567 typedef struct syscfg_cfgns_typedef SYSCFG_CFGNS_TypeDef;
568 
569 // Declare peripheral structure for SYSRTC.
570 typedef struct sysrtc_typedef SYSRTC_TypeDef;
571 
572 // Declare peripheral structure for TIMER.
573 typedef struct timer_typedef TIMER_TypeDef;
574 
575 // Declare peripheral structure for ULFRCO.
576 typedef struct ulfrco_typedef ULFRCO_TypeDef;
577 
578 // Declare peripheral structure for USART.
579 typedef struct usart_typedef USART_TypeDef;
580 
581 // Declare peripheral structure for USBAHB_AHBS.
582 typedef struct usbahb_ahbs_typedef USBAHB_AHBS_TypeDef;
583 
584 // Declare peripheral structure for USBPLL.
585 typedef struct usbpll_typedef USBPLL_TypeDef;
586 
587 // Declare peripheral structure for USB_APBS.
588 typedef struct usb_apbs_typedef USB_APBS_TypeDef;
589 
590 // Declare peripheral structure for VDAC.
591 typedef struct vdac_typedef VDAC_TypeDef;
592 
593 // Declare peripheral structure for WDOG.
594 typedef struct wdog_typedef WDOG_TypeDef;
595 
596 #if defined(__ICCARM__)
597 // Disable IAR multiple typedefs declaration warning.
598 #pragma diag_default=Pe301
599 #endif
600 
601 /// @endcond
602 
603 // ----------------------------------------------------------------------------
604 // EXTERNS
605 
606 /// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
607 
608 // External declaration for ACMP0 peripheral structure.
609 extern const sl_peripheral_val_t sl_peripheral_val_acmp0;
610 
611 // External declaration for ACMP1 peripheral structure.
612 extern const sl_peripheral_val_t sl_peripheral_val_acmp1;
613 
614 // External declaration for ADC0 peripheral structure.
615 extern const sl_peripheral_val_t sl_peripheral_val_adc0;
616 
617 // External declaration for AES peripheral structure.
618 extern const sl_peripheral_val_t sl_peripheral_val_aes;
619 
620 // External declaration for AMUXCP0 peripheral structure.
621 extern const sl_peripheral_val_t sl_peripheral_val_amuxcp0;
622 
623 // External declaration for BUFC peripheral structure.
624 extern const sl_peripheral_val_t sl_peripheral_val_bufc;
625 
626 // External declaration for BURAM peripheral structure.
627 extern const sl_peripheral_val_t sl_peripheral_val_buram;
628 
629 // External declaration for BURTC peripheral structure.
630 extern const sl_peripheral_val_t sl_peripheral_val_burtc;
631 
632 // External declaration for CMU peripheral structure.
633 extern const sl_peripheral_val_t sl_peripheral_val_cmu;
634 
635 // External declaration for CRYPTOACC peripheral structure.
636 extern const sl_peripheral_val_t sl_peripheral_val_cryptoacc;
637 
638 // External declaration for DCDC peripheral structure.
639 extern const sl_peripheral_val_t sl_peripheral_val_dcdc;
640 
641 // External declaration for DEVINFO peripheral structure.
642 extern const sl_peripheral_val_t sl_peripheral_val_devinfo;
643 
644 // External declaration for DMEM peripheral structure.
645 extern const sl_peripheral_val_t sl_peripheral_val_dmem;
646 
647 // External declaration for DMEM0 peripheral structure.
648 extern const sl_peripheral_val_t sl_peripheral_val_dmem0;
649 
650 // External declaration for DMEM1 peripheral structure.
651 extern const sl_peripheral_val_t sl_peripheral_val_dmem1;
652 
653 // External declaration for DPLL0 peripheral structure.
654 extern const sl_peripheral_val_t sl_peripheral_val_dpll0;
655 
656 // External declaration for EMU peripheral structure.
657 extern const sl_peripheral_val_t sl_peripheral_val_emu;
658 
659 // External declaration for ETAMPDET peripheral structure.
660 extern const sl_peripheral_val_t sl_peripheral_val_etampdet;
661 
662 // External declaration for EUART0 peripheral structure.
663 extern const sl_peripheral_val_t sl_peripheral_val_euart0;
664 
665 // External declaration for EUSART0 peripheral structure.
666 extern const sl_peripheral_val_t sl_peripheral_val_eusart0;
667 
668 // External declaration for EUSART1 peripheral structure.
669 extern const sl_peripheral_val_t sl_peripheral_val_eusart1;
670 
671 // External declaration for EUSART2 peripheral structure.
672 extern const sl_peripheral_val_t sl_peripheral_val_eusart2;
673 
674 // External declaration for EUSART3 peripheral structure.
675 extern const sl_peripheral_val_t sl_peripheral_val_eusart3;
676 
677 // External declaration for EUSART4 peripheral structure.
678 extern const sl_peripheral_val_t sl_peripheral_val_eusart4;
679 
680 // External declaration for FSRCO peripheral structure.
681 extern const sl_peripheral_val_t sl_peripheral_val_fsrco;
682 
683 // External declaration for GPCRC0 peripheral structure.
684 extern const sl_peripheral_val_t sl_peripheral_val_gpcrc0;
685 
686 // External declaration for GPIO peripheral structure.
687 extern const sl_peripheral_val_t sl_peripheral_val_gpio;
688 
689 // External declaration for HFRCO0 peripheral structure.
690 extern const sl_peripheral_val_t sl_peripheral_val_hfrco0;
691 
692 // External declaration for HFRCOEM23 peripheral structure.
693 extern const sl_peripheral_val_t sl_peripheral_val_hfrcoem23;
694 
695 // External declaration for HFXO0 peripheral structure.
696 extern const sl_peripheral_val_t sl_peripheral_val_hfxo0;
697 
698 // External declaration for HOSTMAILBOX peripheral structure.
699 extern const sl_peripheral_val_t sl_peripheral_val_hostmailbox;
700 
701 // External declaration for HOSTPORTAL peripheral structure.
702 extern const sl_peripheral_val_t sl_peripheral_val_hostportal;
703 
704 // External declaration for I2C0 peripheral structure.
705 extern const sl_peripheral_val_t sl_peripheral_val_i2c0;
706 
707 // External declaration for I2C1 peripheral structure.
708 extern const sl_peripheral_val_t sl_peripheral_val_i2c1;
709 
710 // External declaration for I2C2 peripheral structure.
711 extern const sl_peripheral_val_t sl_peripheral_val_i2c2;
712 
713 // External declaration for I2C3 peripheral structure.
714 extern const sl_peripheral_val_t sl_peripheral_val_i2c3;
715 
716 // External declaration for IADC0 peripheral structure.
717 extern const sl_peripheral_val_t sl_peripheral_val_iadc0;
718 
719 // External declaration for ICACHE0 peripheral structure.
720 extern const sl_peripheral_val_t sl_peripheral_val_icache0;
721 
722 // External declaration for KEYSCAN peripheral structure.
723 extern const sl_peripheral_val_t sl_peripheral_val_keyscan;
724 
725 // External declaration for L1ICACHE0 peripheral structure.
726 extern const sl_peripheral_val_t sl_peripheral_val_l1icache0;
727 
728 // External declaration for L2ICACHE0 peripheral structure.
729 extern const sl_peripheral_val_t sl_peripheral_val_l2icache0;
730 
731 // External declaration for LCD peripheral structure.
732 extern const sl_peripheral_val_t sl_peripheral_val_lcd;
733 
734 // External declaration for LCDRF peripheral structure.
735 extern const sl_peripheral_val_t sl_peripheral_val_lcdrf;
736 
737 // External declaration for LDMA0 peripheral structure.
738 extern const sl_peripheral_val_t sl_peripheral_val_ldma0;
739 
740 // External declaration for LDMAXBAR0 peripheral structure.
741 extern const sl_peripheral_val_t sl_peripheral_val_ldmaxbar0;
742 
743 // External declaration for LEDDRV0 peripheral structure.
744 extern const sl_peripheral_val_t sl_peripheral_val_leddrv0;
745 
746 // External declaration for LESENSE peripheral structure.
747 extern const sl_peripheral_val_t sl_peripheral_val_lesense;
748 
749 // External declaration for LETIMER0 peripheral structure.
750 extern const sl_peripheral_val_t sl_peripheral_val_letimer0;
751 
752 // External declaration for LFRCO peripheral structure.
753 extern const sl_peripheral_val_t sl_peripheral_val_lfrco;
754 
755 // External declaration for LFXO peripheral structure.
756 extern const sl_peripheral_val_t sl_peripheral_val_lfxo;
757 
758 // External declaration for LPWAES peripheral structure.
759 extern const sl_peripheral_val_t sl_peripheral_val_lpwaes;
760 
761 // External declaration for LPW0PORTAL peripheral structure.
762 extern const sl_peripheral_val_t sl_peripheral_val_lpw0portal;
763 
764 // External declaration for LVGD peripheral structure.
765 extern const sl_peripheral_val_t sl_peripheral_val_lvgd;
766 
767 // External declaration for MPAHBRAM peripheral structure.
768 extern const sl_peripheral_val_t sl_peripheral_val_mpahbram;
769 
770 // External declaration for MSC peripheral structure.
771 extern const sl_peripheral_val_t sl_peripheral_val_msc;
772 
773 // External declaration for MVP peripheral structure.
774 extern const sl_peripheral_val_t sl_peripheral_val_mvp;
775 
776 // External declaration for PCNT0 peripheral structure.
777 extern const sl_peripheral_val_t sl_peripheral_val_pcnt0;
778 
779 // External declaration for PDM peripheral structure.
780 extern const sl_peripheral_val_t sl_peripheral_val_pdm;
781 
782 // External declaration for PFMXPPRF peripheral structure.
783 extern const sl_peripheral_val_t sl_peripheral_val_pfmxpprf;
784 
785 // External declaration for PIXELRZ0 peripheral structure.
786 extern const sl_peripheral_val_t sl_peripheral_val_pixelrz0;
787 
788 // External declaration for PIXELRZ1 peripheral structure.
789 extern const sl_peripheral_val_t sl_peripheral_val_pixelrz1;
790 
791 // External declaration for PRORTC peripheral structure.
792 extern const sl_peripheral_val_t sl_peripheral_val_prortc;
793 
794 // External declaration for PRS peripheral structure.
795 extern const sl_peripheral_val_t sl_peripheral_val_prs;
796 
797 // External declaration for RADIOAES peripheral structure.
798 extern const sl_peripheral_val_t sl_peripheral_val_radioaes;
799 
800 // External declaration for RFFPLL0 peripheral structure.
801 extern const sl_peripheral_val_t sl_peripheral_val_rffpll0;
802 
803 // External declaration for RPA peripheral structure.
804 extern const sl_peripheral_val_t sl_peripheral_val_rpa;
805 
806 // External declaration for RTCC peripheral structure.
807 extern const sl_peripheral_val_t sl_peripheral_val_rtcc;
808 
809 // External declaration for SCRATCHPAD peripheral structure.
810 extern const sl_peripheral_val_t sl_peripheral_val_scratchpad;
811 
812 // External declaration for SEMAILBOX peripheral structure.
813 extern const sl_peripheral_val_t sl_peripheral_val_semailbox;
814 
815 // External declaration for SEMAPHORE0 peripheral structure.
816 extern const sl_peripheral_val_t sl_peripheral_val_semaphore0;
817 
818 // External declaration for SEMAPHORE1 peripheral structure.
819 extern const sl_peripheral_val_t sl_peripheral_val_semaphore1;
820 
821 // External declaration for SEPORTAL peripheral structure.
822 extern const sl_peripheral_val_t sl_peripheral_val_seportal;
823 
824 // External declaration for SEPUF peripheral structure.
825 extern const sl_peripheral_val_t sl_peripheral_val_sepuf;
826 
827 // External declaration for SMU peripheral structure.
828 extern const sl_peripheral_val_t sl_peripheral_val_smu;
829 
830 // External declaration for SOCPLL0 peripheral structure.
831 extern const sl_peripheral_val_t sl_peripheral_val_socpll0;
832 
833 // External declaration for SYMCRYPTO peripheral structure.
834 extern const sl_peripheral_val_t sl_peripheral_val_symcrypto;
835 
836 // External declaration for SYSCFG peripheral structure.
837 extern const sl_peripheral_val_t sl_peripheral_val_syscfg;
838 
839 // External declaration for SYSRTC0 peripheral structure.
840 extern const sl_peripheral_val_t sl_peripheral_val_sysrtc0;
841 
842 // External declaration for TIMER0 peripheral structure.
843 extern const sl_peripheral_val_t sl_peripheral_val_timer0;
844 
845 // External declaration for TIMER1 peripheral structure.
846 extern const sl_peripheral_val_t sl_peripheral_val_timer1;
847 
848 // External declaration for TIMER2 peripheral structure.
849 extern const sl_peripheral_val_t sl_peripheral_val_timer2;
850 
851 // External declaration for TIMER3 peripheral structure.
852 extern const sl_peripheral_val_t sl_peripheral_val_timer3;
853 
854 // External declaration for TIMER4 peripheral structure.
855 extern const sl_peripheral_val_t sl_peripheral_val_timer4;
856 
857 // External declaration for TIMER5 peripheral structure.
858 extern const sl_peripheral_val_t sl_peripheral_val_timer5;
859 
860 // External declaration for TIMER6 peripheral structure.
861 extern const sl_peripheral_val_t sl_peripheral_val_timer6;
862 
863 // External declaration for TIMER7 peripheral structure.
864 extern const sl_peripheral_val_t sl_peripheral_val_timer7;
865 
866 // External declaration for TIMER8 peripheral structure.
867 extern const sl_peripheral_val_t sl_peripheral_val_timer8;
868 
869 // External declaration for TIMER9 peripheral structure.
870 extern const sl_peripheral_val_t sl_peripheral_val_timer9;
871 
872 // External declaration for ULFRCO peripheral structure.
873 extern const sl_peripheral_val_t sl_peripheral_val_ulfrco;
874 
875 // External declaration for USART0 peripheral structure.
876 extern const sl_peripheral_val_t sl_peripheral_val_usart0;
877 
878 // External declaration for USART1 peripheral structure.
879 extern const sl_peripheral_val_t sl_peripheral_val_usart1;
880 
881 // External declaration for USART2 peripheral structure.
882 extern const sl_peripheral_val_t sl_peripheral_val_usart2;
883 
884 // External declaration for USB peripheral structure.
885 extern const sl_peripheral_val_t sl_peripheral_val_usb;
886 
887 // External declaration for USBAHB peripheral structure.
888 extern const sl_peripheral_val_t sl_peripheral_val_usbahb;
889 
890 // External declaration for USBPLL0 peripheral structure.
891 extern const sl_peripheral_val_t sl_peripheral_val_usbpll0;
892 
893 // External declaration for VDAC0 peripheral structure.
894 extern const sl_peripheral_val_t sl_peripheral_val_vdac0;
895 
896 // External declaration for VDAC1 peripheral structure.
897 extern const sl_peripheral_val_t sl_peripheral_val_vdac1;
898 
899 // External declaration for WDOG0 peripheral structure.
900 extern const sl_peripheral_val_t sl_peripheral_val_wdog0;
901 
902 // External declaration for WDOG1 peripheral structure.
903 extern const sl_peripheral_val_t sl_peripheral_val_wdog1;
904 
905 /// @endcond
906 
907 // ----------------------------------------------------------------------------
908 // FUNCTIONS
909 
910 /***************************************************************************//**
911  * The base address getter for ACMP.
912  *
913  * @param peripheral  A pointer to peripheral.
914  *
915  * @return  The base address of the peripheral.
916  ******************************************************************************/
sl_device_peripheral_acmp_get_base_addr(const sl_peripheral_t peripheral)917 inline ACMP_TypeDef *sl_device_peripheral_acmp_get_base_addr(const sl_peripheral_t peripheral)
918 {
919   return (ACMP_TypeDef *)peripheral->base;
920 }
921 
922 /***************************************************************************//**
923  * The base address getter for ADC.
924  *
925  * @param peripheral  A pointer to peripheral.
926  *
927  * @return  The base address of the peripheral.
928  ******************************************************************************/
sl_device_peripheral_adc_get_base_addr(const sl_peripheral_t peripheral)929 inline ADC_TypeDef *sl_device_peripheral_adc_get_base_addr(const sl_peripheral_t peripheral)
930 {
931   return (ADC_TypeDef *)peripheral->base;
932 }
933 
934 /***************************************************************************//**
935  * The base address getter for AES.
936  *
937  * @param peripheral  A pointer to peripheral.
938  *
939  * @return  The base address of the peripheral.
940  ******************************************************************************/
sl_device_peripheral_aes_get_base_addr(const sl_peripheral_t peripheral)941 inline AES_TypeDef *sl_device_peripheral_aes_get_base_addr(const sl_peripheral_t peripheral)
942 {
943   return (AES_TypeDef *)peripheral->base;
944 }
945 
946 /***************************************************************************//**
947  * The base address getter for AMUXCP.
948  *
949  * @param peripheral  A pointer to peripheral.
950  *
951  * @return  The base address of the peripheral.
952  ******************************************************************************/
sl_device_peripheral_amuxcp_get_base_addr(const sl_peripheral_t peripheral)953 inline AMUXCP_TypeDef *sl_device_peripheral_amuxcp_get_base_addr(const sl_peripheral_t peripheral)
954 {
955   return (AMUXCP_TypeDef *)peripheral->base;
956 }
957 
958 /***************************************************************************//**
959  * The base address getter for BUFC.
960  *
961  * @param peripheral  A pointer to peripheral.
962  *
963  * @return  The base address of the peripheral.
964  ******************************************************************************/
sl_device_peripheral_bufc_get_base_addr(const sl_peripheral_t peripheral)965 inline BUFC_TypeDef *sl_device_peripheral_bufc_get_base_addr(const sl_peripheral_t peripheral)
966 {
967   return (BUFC_TypeDef *)peripheral->base;
968 }
969 
970 /***************************************************************************//**
971  * The base address getter for BURAM.
972  *
973  * @param peripheral  A pointer to peripheral.
974  *
975  * @return  The base address of the peripheral.
976  ******************************************************************************/
sl_device_peripheral_buram_get_base_addr(const sl_peripheral_t peripheral)977 inline BURAM_TypeDef *sl_device_peripheral_buram_get_base_addr(const sl_peripheral_t peripheral)
978 {
979   return (BURAM_TypeDef *)peripheral->base;
980 }
981 
982 /***************************************************************************//**
983  * The base address getter for BURTC.
984  *
985  * @param peripheral  A pointer to peripheral.
986  *
987  * @return  The base address of the peripheral.
988  ******************************************************************************/
sl_device_peripheral_burtc_get_base_addr(const sl_peripheral_t peripheral)989 inline BURTC_TypeDef *sl_device_peripheral_burtc_get_base_addr(const sl_peripheral_t peripheral)
990 {
991   return (BURTC_TypeDef *)peripheral->base;
992 }
993 
994 /***************************************************************************//**
995  * The base address getter for CMU.
996  *
997  * @param peripheral  A pointer to peripheral.
998  *
999  * @return  The base address of the peripheral.
1000  ******************************************************************************/
sl_device_peripheral_cmu_get_base_addr(const sl_peripheral_t peripheral)1001 inline CMU_TypeDef *sl_device_peripheral_cmu_get_base_addr(const sl_peripheral_t peripheral)
1002 {
1003   return (CMU_TypeDef *)peripheral->base;
1004 }
1005 
1006 /***************************************************************************//**
1007  * The base address getter for CRYPTOACC.
1008  *
1009  * @param peripheral  A pointer to peripheral.
1010  *
1011  * @return  The base address of the peripheral.
1012  ******************************************************************************/
sl_device_peripheral_cryptoacc_get_base_addr(const sl_peripheral_t peripheral)1013 inline CRYPTOACC_TypeDef *sl_device_peripheral_cryptoacc_get_base_addr(const sl_peripheral_t peripheral)
1014 {
1015   return (CRYPTOACC_TypeDef *)peripheral->base;
1016 }
1017 
1018 /***************************************************************************//**
1019  * The base address getter for CRYPTOACC_PKCTRL.
1020  *
1021  * @param peripheral  A pointer to peripheral.
1022  *
1023  * @return  The base address of the peripheral.
1024  ******************************************************************************/
sl_device_peripheral_cryptoacc_pkctrl_get_base_addr(const sl_peripheral_t peripheral)1025 inline CRYPTOACC_PKCTRL_TypeDef *sl_device_peripheral_cryptoacc_pkctrl_get_base_addr(const sl_peripheral_t peripheral)
1026 {
1027   return (CRYPTOACC_PKCTRL_TypeDef *)peripheral->base;
1028 }
1029 
1030 /***************************************************************************//**
1031  * The base address getter for CRYPTOACC_RNGCTRL.
1032  *
1033  * @param peripheral  A pointer to peripheral.
1034  *
1035  * @return  The base address of the peripheral.
1036  ******************************************************************************/
sl_device_peripheral_cryptoacc_rngctrl_get_base_addr(const sl_peripheral_t peripheral)1037 inline CRYPTOACC_RNGCTRL_TypeDef *sl_device_peripheral_cryptoacc_rngctrl_get_base_addr(const sl_peripheral_t peripheral)
1038 {
1039   return (CRYPTOACC_RNGCTRL_TypeDef *)peripheral->base;
1040 }
1041 
1042 /***************************************************************************//**
1043  * The base address getter for DCDC.
1044  *
1045  * @param peripheral  A pointer to peripheral.
1046  *
1047  * @return  The base address of the peripheral.
1048  ******************************************************************************/
sl_device_peripheral_dcdc_get_base_addr(const sl_peripheral_t peripheral)1049 inline DCDC_TypeDef *sl_device_peripheral_dcdc_get_base_addr(const sl_peripheral_t peripheral)
1050 {
1051   return (DCDC_TypeDef *)peripheral->base;
1052 }
1053 
1054 /***************************************************************************//**
1055  * The base address getter for DEVINFO.
1056  *
1057  * @param peripheral  A pointer to peripheral.
1058  *
1059  * @return  The base address of the peripheral.
1060  ******************************************************************************/
sl_device_peripheral_devinfo_get_base_addr(const sl_peripheral_t peripheral)1061 inline DEVINFO_TypeDef *sl_device_peripheral_devinfo_get_base_addr(const sl_peripheral_t peripheral)
1062 {
1063   return (DEVINFO_TypeDef *)peripheral->base;
1064 }
1065 
1066 /***************************************************************************//**
1067  * The base address getter for DPLL.
1068  *
1069  * @param peripheral  A pointer to peripheral.
1070  *
1071  * @return  The base address of the peripheral.
1072  ******************************************************************************/
sl_device_peripheral_dpll_get_base_addr(const sl_peripheral_t peripheral)1073 inline DPLL_TypeDef *sl_device_peripheral_dpll_get_base_addr(const sl_peripheral_t peripheral)
1074 {
1075   return (DPLL_TypeDef *)peripheral->base;
1076 }
1077 
1078 /***************************************************************************//**
1079  * The base address getter for EMU.
1080  *
1081  * @param peripheral  A pointer to peripheral.
1082  *
1083  * @return  The base address of the peripheral.
1084  ******************************************************************************/
sl_device_peripheral_emu_get_base_addr(const sl_peripheral_t peripheral)1085 inline EMU_TypeDef *sl_device_peripheral_emu_get_base_addr(const sl_peripheral_t peripheral)
1086 {
1087   return (EMU_TypeDef *)peripheral->base;
1088 }
1089 
1090 /***************************************************************************//**
1091  * The base address getter for EMU_CFGNS.
1092  *
1093  * @param peripheral  A pointer to peripheral.
1094  *
1095  * @return  The base address of the peripheral.
1096  ******************************************************************************/
sl_device_peripheral_emu_cfgns_get_base_addr(const sl_peripheral_t peripheral)1097 inline EMU_CFGNS_TypeDef *sl_device_peripheral_emu_cfgns_get_base_addr(const sl_peripheral_t peripheral)
1098 {
1099   return (EMU_CFGNS_TypeDef *)peripheral->base;
1100 }
1101 
1102 /***************************************************************************//**
1103  * The base address getter for ETAMPDET.
1104  *
1105  * @param peripheral  A pointer to peripheral.
1106  *
1107  * @return  The base address of the peripheral.
1108  ******************************************************************************/
sl_device_peripheral_etampdet_get_base_addr(const sl_peripheral_t peripheral)1109 inline ETAMPDET_TypeDef *sl_device_peripheral_etampdet_get_base_addr(const sl_peripheral_t peripheral)
1110 {
1111   return (ETAMPDET_TypeDef *)peripheral->base;
1112 }
1113 
1114 /***************************************************************************//**
1115  * The base address getter for EUSART.
1116  *
1117  * @param peripheral  A pointer to peripheral.
1118  *
1119  * @return  The base address of the peripheral.
1120  ******************************************************************************/
sl_device_peripheral_eusart_get_base_addr(const sl_peripheral_t peripheral)1121 inline EUSART_TypeDef *sl_device_peripheral_eusart_get_base_addr(const sl_peripheral_t peripheral)
1122 {
1123   return (EUSART_TypeDef *)peripheral->base;
1124 }
1125 
1126 /***************************************************************************//**
1127  * The base address getter for FSRCO.
1128  *
1129  * @param peripheral  A pointer to peripheral.
1130  *
1131  * @return  The base address of the peripheral.
1132  ******************************************************************************/
sl_device_peripheral_fsrco_get_base_addr(const sl_peripheral_t peripheral)1133 inline FSRCO_TypeDef *sl_device_peripheral_fsrco_get_base_addr(const sl_peripheral_t peripheral)
1134 {
1135   return (FSRCO_TypeDef *)peripheral->base;
1136 }
1137 
1138 /***************************************************************************//**
1139  * The base address getter for GPCRC.
1140  *
1141  * @param peripheral  A pointer to peripheral.
1142  *
1143  * @return  The base address of the peripheral.
1144  ******************************************************************************/
sl_device_peripheral_gpcrc_get_base_addr(const sl_peripheral_t peripheral)1145 inline GPCRC_TypeDef *sl_device_peripheral_gpcrc_get_base_addr(const sl_peripheral_t peripheral)
1146 {
1147   return (GPCRC_TypeDef *)peripheral->base;
1148 }
1149 
1150 /***************************************************************************//**
1151  * The base address getter for GPIO.
1152  *
1153  * @param peripheral  A pointer to peripheral.
1154  *
1155  * @return  The base address of the peripheral.
1156  ******************************************************************************/
sl_device_peripheral_gpio_get_base_addr(const sl_peripheral_t peripheral)1157 inline GPIO_TypeDef *sl_device_peripheral_gpio_get_base_addr(const sl_peripheral_t peripheral)
1158 {
1159   return (GPIO_TypeDef *)peripheral->base;
1160 }
1161 
1162 /***************************************************************************//**
1163  * The base address getter for HFRCO.
1164  *
1165  * @param peripheral  A pointer to peripheral.
1166  *
1167  * @return  The base address of the peripheral.
1168  ******************************************************************************/
sl_device_peripheral_hfrco_get_base_addr(const sl_peripheral_t peripheral)1169 inline HFRCO_TypeDef *sl_device_peripheral_hfrco_get_base_addr(const sl_peripheral_t peripheral)
1170 {
1171   return (HFRCO_TypeDef *)peripheral->base;
1172 }
1173 
1174 /***************************************************************************//**
1175  * The base address getter for HFXO.
1176  *
1177  * @param peripheral  A pointer to peripheral.
1178  *
1179  * @return  The base address of the peripheral.
1180  ******************************************************************************/
sl_device_peripheral_hfxo_get_base_addr(const sl_peripheral_t peripheral)1181 inline HFXO_TypeDef *sl_device_peripheral_hfxo_get_base_addr(const sl_peripheral_t peripheral)
1182 {
1183   return (HFXO_TypeDef *)peripheral->base;
1184 }
1185 
1186 /***************************************************************************//**
1187  * The base address getter for HOSTPORTAL.
1188  *
1189  * @param peripheral  A pointer to peripheral.
1190  *
1191  * @return  The base address of the peripheral.
1192  ******************************************************************************/
sl_device_peripheral_hostportal_get_base_addr(const sl_peripheral_t peripheral)1193 inline HOSTPORTAL_TypeDef *sl_device_peripheral_hostportal_get_base_addr(const sl_peripheral_t peripheral)
1194 {
1195   return (HOSTPORTAL_TypeDef *)peripheral->base;
1196 }
1197 
1198 /***************************************************************************//**
1199  * The base address getter for HYDRARAM.
1200  *
1201  * @param peripheral  A pointer to peripheral.
1202  *
1203  * @return  The base address of the peripheral.
1204  ******************************************************************************/
sl_device_peripheral_hydraram_get_base_addr(const sl_peripheral_t peripheral)1205 inline HYDRARAM_TypeDef *sl_device_peripheral_hydraram_get_base_addr(const sl_peripheral_t peripheral)
1206 {
1207   return (HYDRARAM_TypeDef *)peripheral->base;
1208 }
1209 
1210 /***************************************************************************//**
1211  * The base address getter for I2C.
1212  *
1213  * @param peripheral  A pointer to peripheral.
1214  *
1215  * @return  The base address of the peripheral.
1216  ******************************************************************************/
sl_device_peripheral_i2c_get_base_addr(const sl_peripheral_t peripheral)1217 inline I2C_TypeDef *sl_device_peripheral_i2c_get_base_addr(const sl_peripheral_t peripheral)
1218 {
1219   return (I2C_TypeDef *)peripheral->base;
1220 }
1221 
1222 /***************************************************************************//**
1223  * The base address getter for IADC.
1224  *
1225  * @param peripheral  A pointer to peripheral.
1226  *
1227  * @return  The base address of the peripheral.
1228  ******************************************************************************/
sl_device_peripheral_iadc_get_base_addr(const sl_peripheral_t peripheral)1229 inline IADC_TypeDef *sl_device_peripheral_iadc_get_base_addr(const sl_peripheral_t peripheral)
1230 {
1231   return (IADC_TypeDef *)peripheral->base;
1232 }
1233 
1234 /***************************************************************************//**
1235  * The base address getter for ICACHE.
1236  *
1237  * @param peripheral  A pointer to peripheral.
1238  *
1239  * @return  The base address of the peripheral.
1240  ******************************************************************************/
sl_device_peripheral_icache_get_base_addr(const sl_peripheral_t peripheral)1241 inline ICACHE_TypeDef *sl_device_peripheral_icache_get_base_addr(const sl_peripheral_t peripheral)
1242 {
1243   return (ICACHE_TypeDef *)peripheral->base;
1244 }
1245 
1246 /***************************************************************************//**
1247  * The base address getter for KEYSCAN.
1248  *
1249  * @param peripheral  A pointer to peripheral.
1250  *
1251  * @return  The base address of the peripheral.
1252  ******************************************************************************/
sl_device_peripheral_keyscan_get_base_addr(const sl_peripheral_t peripheral)1253 inline KEYSCAN_TypeDef *sl_device_peripheral_keyscan_get_base_addr(const sl_peripheral_t peripheral)
1254 {
1255   return (KEYSCAN_TypeDef *)peripheral->base;
1256 }
1257 
1258 /***************************************************************************//**
1259  * The base address getter for L2CACHE.
1260  *
1261  * @param peripheral  A pointer to peripheral.
1262  *
1263  * @return  The base address of the peripheral.
1264  ******************************************************************************/
sl_device_peripheral_l2cache_get_base_addr(const sl_peripheral_t peripheral)1265 inline L2CACHE_TypeDef *sl_device_peripheral_l2cache_get_base_addr(const sl_peripheral_t peripheral)
1266 {
1267   return (L2CACHE_TypeDef *)peripheral->base;
1268 }
1269 
1270 /***************************************************************************//**
1271  * The base address getter for LCD.
1272  *
1273  * @param peripheral  A pointer to peripheral.
1274  *
1275  * @return  The base address of the peripheral.
1276  ******************************************************************************/
sl_device_peripheral_lcd_get_base_addr(const sl_peripheral_t peripheral)1277 inline LCD_TypeDef *sl_device_peripheral_lcd_get_base_addr(const sl_peripheral_t peripheral)
1278 {
1279   return (LCD_TypeDef *)peripheral->base;
1280 }
1281 
1282 /***************************************************************************//**
1283  * The base address getter for LCDRF.
1284  *
1285  * @param peripheral  A pointer to peripheral.
1286  *
1287  * @return  The base address of the peripheral.
1288  ******************************************************************************/
sl_device_peripheral_lcdrf_get_base_addr(const sl_peripheral_t peripheral)1289 inline LCDRF_TypeDef *sl_device_peripheral_lcdrf_get_base_addr(const sl_peripheral_t peripheral)
1290 {
1291   return (LCDRF_TypeDef *)peripheral->base;
1292 }
1293 
1294 /***************************************************************************//**
1295  * The base address getter for LDMA.
1296  *
1297  * @param peripheral  A pointer to peripheral.
1298  *
1299  * @return  The base address of the peripheral.
1300  ******************************************************************************/
sl_device_peripheral_ldma_get_base_addr(const sl_peripheral_t peripheral)1301 inline LDMA_TypeDef *sl_device_peripheral_ldma_get_base_addr(const sl_peripheral_t peripheral)
1302 {
1303   return (LDMA_TypeDef *)peripheral->base;
1304 }
1305 
1306 /***************************************************************************//**
1307  * The base address getter for LDMAXBAR.
1308  *
1309  * @param peripheral  A pointer to peripheral.
1310  *
1311  * @return  The base address of the peripheral.
1312  ******************************************************************************/
sl_device_peripheral_ldmaxbar_get_base_addr(const sl_peripheral_t peripheral)1313 inline LDMAXBAR_TypeDef *sl_device_peripheral_ldmaxbar_get_base_addr(const sl_peripheral_t peripheral)
1314 {
1315   return (LDMAXBAR_TypeDef *)peripheral->base;
1316 }
1317 
1318 /***************************************************************************//**
1319  * The base address getter for LEDDRV.
1320  *
1321  * @param peripheral  A pointer to peripheral.
1322  *
1323  * @return  The base address of the peripheral.
1324  ******************************************************************************/
sl_device_peripheral_leddrv_get_base_addr(const sl_peripheral_t peripheral)1325 inline LEDDRV_TypeDef *sl_device_peripheral_leddrv_get_base_addr(const sl_peripheral_t peripheral)
1326 {
1327   return (LEDDRV_TypeDef *)peripheral->base;
1328 }
1329 
1330 /***************************************************************************//**
1331  * The base address getter for LESENSE.
1332  *
1333  * @param peripheral  A pointer to peripheral.
1334  *
1335  * @return  The base address of the peripheral.
1336  ******************************************************************************/
sl_device_peripheral_lesense_get_base_addr(const sl_peripheral_t peripheral)1337 inline LESENSE_TypeDef *sl_device_peripheral_lesense_get_base_addr(const sl_peripheral_t peripheral)
1338 {
1339   return (LESENSE_TypeDef *)peripheral->base;
1340 }
1341 
1342 /***************************************************************************//**
1343  * The base address getter for LETIMER.
1344  *
1345  * @param peripheral  A pointer to peripheral.
1346  *
1347  * @return  The base address of the peripheral.
1348  ******************************************************************************/
sl_device_peripheral_letimer_get_base_addr(const sl_peripheral_t peripheral)1349 inline LETIMER_TypeDef *sl_device_peripheral_letimer_get_base_addr(const sl_peripheral_t peripheral)
1350 {
1351   return (LETIMER_TypeDef *)peripheral->base;
1352 }
1353 
1354 /***************************************************************************//**
1355  * The base address getter for LFRCO.
1356  *
1357  * @param peripheral  A pointer to peripheral.
1358  *
1359  * @return  The base address of the peripheral.
1360  ******************************************************************************/
sl_device_peripheral_lfrco_get_base_addr(const sl_peripheral_t peripheral)1361 inline LFRCO_TypeDef *sl_device_peripheral_lfrco_get_base_addr(const sl_peripheral_t peripheral)
1362 {
1363   return (LFRCO_TypeDef *)peripheral->base;
1364 }
1365 
1366 /***************************************************************************//**
1367  * The base address getter for LFXO.
1368  *
1369  * @param peripheral  A pointer to peripheral.
1370  *
1371  * @return  The base address of the peripheral.
1372  ******************************************************************************/
sl_device_peripheral_lfxo_get_base_addr(const sl_peripheral_t peripheral)1373 inline LFXO_TypeDef *sl_device_peripheral_lfxo_get_base_addr(const sl_peripheral_t peripheral)
1374 {
1375   return (LFXO_TypeDef *)peripheral->base;
1376 }
1377 
1378 /***************************************************************************//**
1379  * The base address getter for LPWAES.
1380  *
1381  * @param peripheral  A pointer to peripheral.
1382  *
1383  * @return  The base address of the peripheral.
1384  ******************************************************************************/
sl_device_peripheral_lpwaes_get_base_addr(const sl_peripheral_t peripheral)1385 inline LPWAES_TypeDef *sl_device_peripheral_lpwaes_get_base_addr(const sl_peripheral_t peripheral)
1386 {
1387   return (LPWAES_TypeDef *)peripheral->base;
1388 }
1389 
1390 /***************************************************************************//**
1391  * The base address getter for LPW0PORTAL.
1392  *
1393  * @param peripheral  A pointer to peripheral.
1394  *
1395  * @return  The base address of the peripheral.
1396  ******************************************************************************/
sl_device_peripheral_lpw0portal_get_base_addr(const sl_peripheral_t peripheral)1397 inline LPW0PORTAL_TypeDef *sl_device_peripheral_lpw0portal_get_base_addr(const sl_peripheral_t peripheral)
1398 {
1399   return (LPW0PORTAL_TypeDef *)peripheral->base;
1400 }
1401 
1402 /***************************************************************************//**
1403  * The base address getter for LVGD.
1404  *
1405  * @param peripheral  A pointer to peripheral.
1406  *
1407  * @return  The base address of the peripheral.
1408  ******************************************************************************/
sl_device_peripheral_lvgd_get_base_addr(const sl_peripheral_t peripheral)1409 inline LVGD_TypeDef *sl_device_peripheral_lvgd_get_base_addr(const sl_peripheral_t peripheral)
1410 {
1411   return (LVGD_TypeDef *)peripheral->base;
1412 }
1413 
1414 /***************************************************************************//**
1415  * The base address getter for MAILBOX.
1416  *
1417  * @param peripheral  A pointer to peripheral.
1418  *
1419  * @return  The base address of the peripheral.
1420  ******************************************************************************/
sl_device_peripheral_mailbox_get_base_addr(const sl_peripheral_t peripheral)1421 inline MAILBOX_TypeDef *sl_device_peripheral_mailbox_get_base_addr(const sl_peripheral_t peripheral)
1422 {
1423   return (MAILBOX_TypeDef *)peripheral->base;
1424 }
1425 
1426 /***************************************************************************//**
1427  * The base address getter for MPAHBRAM.
1428  *
1429  * @param peripheral  A pointer to peripheral.
1430  *
1431  * @return  The base address of the peripheral.
1432  ******************************************************************************/
sl_device_peripheral_mpahbram_get_base_addr(const sl_peripheral_t peripheral)1433 inline MPAHBRAM_TypeDef *sl_device_peripheral_mpahbram_get_base_addr(const sl_peripheral_t peripheral)
1434 {
1435   return (MPAHBRAM_TypeDef *)peripheral->base;
1436 }
1437 
1438 /***************************************************************************//**
1439  * The base address getter for MSC.
1440  *
1441  * @param peripheral  A pointer to peripheral.
1442  *
1443  * @return  The base address of the peripheral.
1444  ******************************************************************************/
sl_device_peripheral_msc_get_base_addr(const sl_peripheral_t peripheral)1445 inline MSC_TypeDef *sl_device_peripheral_msc_get_base_addr(const sl_peripheral_t peripheral)
1446 {
1447   return (MSC_TypeDef *)peripheral->base;
1448 }
1449 
1450 /***************************************************************************//**
1451  * The base address getter for MVP.
1452  *
1453  * @param peripheral  A pointer to peripheral.
1454  *
1455  * @return  The base address of the peripheral.
1456  ******************************************************************************/
sl_device_peripheral_mvp_get_base_addr(const sl_peripheral_t peripheral)1457 inline MVP_TypeDef *sl_device_peripheral_mvp_get_base_addr(const sl_peripheral_t peripheral)
1458 {
1459   return (MVP_TypeDef *)peripheral->base;
1460 }
1461 
1462 /***************************************************************************//**
1463  * The base address getter for PCNT.
1464  *
1465  * @param peripheral  A pointer to peripheral.
1466  *
1467  * @return  The base address of the peripheral.
1468  ******************************************************************************/
sl_device_peripheral_pcnt_get_base_addr(const sl_peripheral_t peripheral)1469 inline PCNT_TypeDef *sl_device_peripheral_pcnt_get_base_addr(const sl_peripheral_t peripheral)
1470 {
1471   return (PCNT_TypeDef *)peripheral->base;
1472 }
1473 
1474 /***************************************************************************//**
1475  * The base address getter for PDM.
1476  *
1477  * @param peripheral  A pointer to peripheral.
1478  *
1479  * @return  The base address of the peripheral.
1480  ******************************************************************************/
sl_device_peripheral_pdm_get_base_addr(const sl_peripheral_t peripheral)1481 inline PDM_TypeDef *sl_device_peripheral_pdm_get_base_addr(const sl_peripheral_t peripheral)
1482 {
1483   return (PDM_TypeDef *)peripheral->base;
1484 }
1485 
1486 /***************************************************************************//**
1487  * The base address getter for PFMXPPRF.
1488  *
1489  * @param peripheral  A pointer to peripheral.
1490  *
1491  * @return  The base address of the peripheral.
1492  ******************************************************************************/
sl_device_peripheral_pfmxpprf_get_base_addr(const sl_peripheral_t peripheral)1493 inline PFMXPPRF_TypeDef *sl_device_peripheral_pfmxpprf_get_base_addr(const sl_peripheral_t peripheral)
1494 {
1495   return (PFMXPPRF_TypeDef *)peripheral->base;
1496 }
1497 
1498 /***************************************************************************//**
1499  * The base address getter for PIXELRZ.
1500  *
1501  * @param peripheral  A pointer to peripheral.
1502  *
1503  * @return  The base address of the peripheral.
1504  ******************************************************************************/
sl_device_peripheral_pixelrz_get_base_addr(const sl_peripheral_t peripheral)1505 inline PIXELRZ_TypeDef *sl_device_peripheral_pixelrz_get_base_addr(const sl_peripheral_t peripheral)
1506 {
1507   return (PIXELRZ_TypeDef *)peripheral->base;
1508 }
1509 
1510 /***************************************************************************//**
1511  * The base address getter for PRS.
1512  *
1513  * @param peripheral  A pointer to peripheral.
1514  *
1515  * @return  The base address of the peripheral.
1516  ******************************************************************************/
sl_device_peripheral_prs_get_base_addr(const sl_peripheral_t peripheral)1517 inline PRS_TypeDef *sl_device_peripheral_prs_get_base_addr(const sl_peripheral_t peripheral)
1518 {
1519   return (PRS_TypeDef *)peripheral->base;
1520 }
1521 
1522 /***************************************************************************//**
1523  * The base address getter for RFFPLL.
1524  *
1525  * @param peripheral  A pointer to peripheral.
1526  *
1527  * @return  The base address of the peripheral.
1528  ******************************************************************************/
sl_device_peripheral_rffpll_get_base_addr(const sl_peripheral_t peripheral)1529 inline RFFPLL_TypeDef *sl_device_peripheral_rffpll_get_base_addr(const sl_peripheral_t peripheral)
1530 {
1531   return (RFFPLL_TypeDef *)peripheral->base;
1532 }
1533 
1534 /***************************************************************************//**
1535  * The base address getter for RPA.
1536  *
1537  * @param peripheral  A pointer to peripheral.
1538  *
1539  * @return  The base address of the peripheral.
1540  ******************************************************************************/
sl_device_peripheral_rpa_get_base_addr(const sl_peripheral_t peripheral)1541 inline RPA_TypeDef *sl_device_peripheral_rpa_get_base_addr(const sl_peripheral_t peripheral)
1542 {
1543   return (RPA_TypeDef *)peripheral->base;
1544 }
1545 
1546 /***************************************************************************//**
1547  * The base address getter for RTCC.
1548  *
1549  * @param peripheral  A pointer to peripheral.
1550  *
1551  * @return  The base address of the peripheral.
1552  ******************************************************************************/
sl_device_peripheral_rtcc_get_base_addr(const sl_peripheral_t peripheral)1553 inline RTCC_TypeDef *sl_device_peripheral_rtcc_get_base_addr(const sl_peripheral_t peripheral)
1554 {
1555   return (RTCC_TypeDef *)peripheral->base;
1556 }
1557 
1558 /***************************************************************************//**
1559  * The base address getter for SCRATCHPAD.
1560  *
1561  * @param peripheral  A pointer to peripheral.
1562  *
1563  * @return  The base address of the peripheral.
1564  ******************************************************************************/
sl_device_peripheral_scratchpad_get_base_addr(const sl_peripheral_t peripheral)1565 inline SCRATCHPAD_TypeDef *sl_device_peripheral_scratchpad_get_base_addr(const sl_peripheral_t peripheral)
1566 {
1567   return (SCRATCHPAD_TypeDef *)peripheral->base;
1568 }
1569 
1570 /***************************************************************************//**
1571  * The base address getter for SEMAILBOX_AHBHOST.
1572  *
1573  * @param peripheral  A pointer to peripheral.
1574  *
1575  * @return  The base address of the peripheral.
1576  ******************************************************************************/
sl_device_peripheral_semailbox_ahbhost_get_base_addr(const sl_peripheral_t peripheral)1577 inline SEMAILBOX_AHBHOST_TypeDef *sl_device_peripheral_semailbox_ahbhost_get_base_addr(const sl_peripheral_t peripheral)
1578 {
1579   return (SEMAILBOX_AHBHOST_TypeDef *)peripheral->base;
1580 }
1581 
1582 /***************************************************************************//**
1583  * The base address getter for SEMAILBOX_HOST.
1584  *
1585  * @param peripheral  A pointer to peripheral.
1586  *
1587  * @return  The base address of the peripheral.
1588  ******************************************************************************/
sl_device_peripheral_semailbox_host_get_base_addr(const sl_peripheral_t peripheral)1589 inline SEMAILBOX_HOST_TypeDef *sl_device_peripheral_semailbox_host_get_base_addr(const sl_peripheral_t peripheral)
1590 {
1591   return (SEMAILBOX_HOST_TypeDef *)peripheral->base;
1592 }
1593 
1594 /***************************************************************************//**
1595  * The base address getter for SEMAPHORE.
1596  *
1597  * @param peripheral  A pointer to peripheral.
1598  *
1599  * @return  The base address of the peripheral.
1600  ******************************************************************************/
sl_device_peripheral_semaphore_get_base_addr(const sl_peripheral_t peripheral)1601 inline SEMAPHORE_TypeDef *sl_device_peripheral_semaphore_get_base_addr(const sl_peripheral_t peripheral)
1602 {
1603   return (SEMAPHORE_TypeDef *)peripheral->base;
1604 }
1605 
1606 /***************************************************************************//**
1607  * The base address getter for SEPORTAL.
1608  *
1609  * @param peripheral  A pointer to peripheral.
1610  *
1611  * @return  The base address of the peripheral.
1612  ******************************************************************************/
sl_device_peripheral_seportal_get_base_addr(const sl_peripheral_t peripheral)1613 inline SEPORTAL_TypeDef *sl_device_peripheral_seportal_get_base_addr(const sl_peripheral_t peripheral)
1614 {
1615   return (SEPORTAL_TypeDef *)peripheral->base;
1616 }
1617 
1618 /***************************************************************************//**
1619  * The base address getter for SEPUF_APBCFG.
1620  *
1621  * @param peripheral  A pointer to peripheral.
1622  *
1623  * @return  The base address of the peripheral.
1624  ******************************************************************************/
sl_device_peripheral_sepuf_apbcfg_get_base_addr(const sl_peripheral_t peripheral)1625 inline SEPUF_APBCFG_TypeDef *sl_device_peripheral_sepuf_apbcfg_get_base_addr(const sl_peripheral_t peripheral)
1626 {
1627   return (SEPUF_APBCFG_TypeDef *)peripheral->base;
1628 }
1629 
1630 /***************************************************************************//**
1631  * The base address getter for SMU.
1632  *
1633  * @param peripheral  A pointer to peripheral.
1634  *
1635  * @return  The base address of the peripheral.
1636  ******************************************************************************/
sl_device_peripheral_smu_get_base_addr(const sl_peripheral_t peripheral)1637 inline SMU_TypeDef *sl_device_peripheral_smu_get_base_addr(const sl_peripheral_t peripheral)
1638 {
1639   return (SMU_TypeDef *)peripheral->base;
1640 }
1641 
1642 /***************************************************************************//**
1643  * The base address getter for SOCPLL.
1644  *
1645  * @param peripheral  A pointer to peripheral.
1646  *
1647  * @return  The base address of the peripheral.
1648  ******************************************************************************/
sl_device_peripheral_socpll_get_base_addr(const sl_peripheral_t peripheral)1649 inline SOCPLL_TypeDef *sl_device_peripheral_socpll_get_base_addr(const sl_peripheral_t peripheral)
1650 {
1651   return (SOCPLL_TypeDef *)peripheral->base;
1652 }
1653 
1654 /***************************************************************************//**
1655  * The base address getter for SYMCRYPTO.
1656  *
1657  * @param peripheral  A pointer to peripheral.
1658  *
1659  * @return  The base address of the peripheral.
1660  ******************************************************************************/
sl_device_peripheral_symcrypto_get_base_addr(const sl_peripheral_t peripheral)1661 inline SYMCRYPTO_TypeDef *sl_device_peripheral_symcrypto_get_base_addr(const sl_peripheral_t peripheral)
1662 {
1663   return (SYMCRYPTO_TypeDef *)peripheral->base;
1664 }
1665 
1666 /***************************************************************************//**
1667  * The base address getter for SYSCFG.
1668  *
1669  * @param peripheral  A pointer to peripheral.
1670  *
1671  * @return  The base address of the peripheral.
1672  ******************************************************************************/
sl_device_peripheral_syscfg_get_base_addr(const sl_peripheral_t peripheral)1673 inline SYSCFG_TypeDef *sl_device_peripheral_syscfg_get_base_addr(const sl_peripheral_t peripheral)
1674 {
1675   return (SYSCFG_TypeDef *)peripheral->base;
1676 }
1677 
1678 /***************************************************************************//**
1679  * The base address getter for SYSCFG_CFGNS.
1680  *
1681  * @param peripheral  A pointer to peripheral.
1682  *
1683  * @return  The base address of the peripheral.
1684  ******************************************************************************/
sl_device_peripheral_syscfg_cfgns_get_base_addr(const sl_peripheral_t peripheral)1685 inline SYSCFG_CFGNS_TypeDef *sl_device_peripheral_syscfg_cfgns_get_base_addr(const sl_peripheral_t peripheral)
1686 {
1687   return (SYSCFG_CFGNS_TypeDef *)peripheral->base;
1688 }
1689 
1690 /***************************************************************************//**
1691  * The base address getter for SYSRTC.
1692  *
1693  * @param peripheral  A pointer to peripheral.
1694  *
1695  * @return  The base address of the peripheral.
1696  ******************************************************************************/
sl_device_peripheral_sysrtc_get_base_addr(const sl_peripheral_t peripheral)1697 inline SYSRTC_TypeDef *sl_device_peripheral_sysrtc_get_base_addr(const sl_peripheral_t peripheral)
1698 {
1699   return (SYSRTC_TypeDef *)peripheral->base;
1700 }
1701 
1702 /***************************************************************************//**
1703  * The base address getter for TIMER.
1704  *
1705  * @param peripheral  A pointer to peripheral.
1706  *
1707  * @return  The base address of the peripheral.
1708  ******************************************************************************/
sl_device_peripheral_timer_get_base_addr(const sl_peripheral_t peripheral)1709 inline TIMER_TypeDef *sl_device_peripheral_timer_get_base_addr(const sl_peripheral_t peripheral)
1710 {
1711   return (TIMER_TypeDef *)peripheral->base;
1712 }
1713 
1714 /***************************************************************************//**
1715  * The base address getter for ULFRCO.
1716  *
1717  * @param peripheral  A pointer to peripheral.
1718  *
1719  * @return  The base address of the peripheral.
1720  ******************************************************************************/
sl_device_peripheral_ulfrco_get_base_addr(const sl_peripheral_t peripheral)1721 inline ULFRCO_TypeDef *sl_device_peripheral_ulfrco_get_base_addr(const sl_peripheral_t peripheral)
1722 {
1723   return (ULFRCO_TypeDef *)peripheral->base;
1724 }
1725 
1726 /***************************************************************************//**
1727  * The base address getter for USART.
1728  *
1729  * @param peripheral  A pointer to peripheral.
1730  *
1731  * @return  The base address of the peripheral.
1732  ******************************************************************************/
sl_device_peripheral_usart_get_base_addr(const sl_peripheral_t peripheral)1733 inline USART_TypeDef *sl_device_peripheral_usart_get_base_addr(const sl_peripheral_t peripheral)
1734 {
1735   return (USART_TypeDef *)peripheral->base;
1736 }
1737 
1738 /***************************************************************************//**
1739  * The base address getter for USBAHB_AHBS.
1740  *
1741  * @param peripheral  A pointer to peripheral.
1742  *
1743  * @return  The base address of the peripheral.
1744  ******************************************************************************/
sl_device_peripheral_usbahb_ahbs_get_base_addr(const sl_peripheral_t peripheral)1745 inline USBAHB_AHBS_TypeDef *sl_device_peripheral_usbahb_ahbs_get_base_addr(const sl_peripheral_t peripheral)
1746 {
1747   return (USBAHB_AHBS_TypeDef *)peripheral->base;
1748 }
1749 
1750 /***************************************************************************//**
1751  * The base address getter for USBPLL.
1752  *
1753  * @param peripheral  A pointer to peripheral.
1754  *
1755  * @return  The base address of the peripheral.
1756  ******************************************************************************/
sl_device_peripheral_usbpll_get_base_addr(const sl_peripheral_t peripheral)1757 inline USBPLL_TypeDef *sl_device_peripheral_usbpll_get_base_addr(const sl_peripheral_t peripheral)
1758 {
1759   return (USBPLL_TypeDef *)peripheral->base;
1760 }
1761 
1762 /***************************************************************************//**
1763  * The base address getter for USB_APBS.
1764  *
1765  * @param peripheral  A pointer to peripheral.
1766  *
1767  * @return  The base address of the peripheral.
1768  ******************************************************************************/
sl_device_peripheral_usb_apbs_get_base_addr(const sl_peripheral_t peripheral)1769 inline USB_APBS_TypeDef *sl_device_peripheral_usb_apbs_get_base_addr(const sl_peripheral_t peripheral)
1770 {
1771   return (USB_APBS_TypeDef *)peripheral->base;
1772 }
1773 
1774 /***************************************************************************//**
1775  * The base address getter for VDAC.
1776  *
1777  * @param peripheral  A pointer to peripheral.
1778  *
1779  * @return  The base address of the peripheral.
1780  ******************************************************************************/
sl_device_peripheral_vdac_get_base_addr(const sl_peripheral_t peripheral)1781 inline VDAC_TypeDef *sl_device_peripheral_vdac_get_base_addr(const sl_peripheral_t peripheral)
1782 {
1783   return (VDAC_TypeDef *)peripheral->base;
1784 }
1785 
1786 /***************************************************************************//**
1787  * The base address getter for WDOG.
1788  *
1789  * @param peripheral  A pointer to peripheral.
1790  *
1791  * @return  The base address of the peripheral.
1792  ******************************************************************************/
sl_device_peripheral_wdog_get_base_addr(const sl_peripheral_t peripheral)1793 inline WDOG_TypeDef *sl_device_peripheral_wdog_get_base_addr(const sl_peripheral_t peripheral)
1794 {
1795   return (WDOG_TypeDef *)peripheral->base;
1796 }
1797 
1798 /***************************************************************************//**
1799  * The clock branch getter.
1800  *
1801  * @param peripheral  A pointer to peripheral.
1802  *
1803  * @return  The clock branch of the peripheral.
1804  ******************************************************************************/
SL_CODE_CLASSIFY(SL_CODE_COMPONENT_DEVICE_PERIPHERAL,SL_CODE_CLASS_TIME_CRITICAL)1805 SL_CODE_CLASSIFY(SL_CODE_COMPONENT_DEVICE_PERIPHERAL, SL_CODE_CLASS_TIME_CRITICAL)
1806 inline sl_clock_branch_t sl_device_peripheral_get_clock_branch(const sl_peripheral_t peripheral)
1807 {
1808   return peripheral->clk_branch;
1809 }
1810 
1811 /***************************************************************************//**
1812  * The bus clock getter.
1813  *
1814  * @param peripheral  A pointer to peripheral.
1815  *
1816  * @return  The bus clock of the peripheral.
1817  ******************************************************************************/
sl_device_peripheral_get_bus_clock(const sl_peripheral_t peripheral)1818 inline sl_bus_clock_t sl_device_peripheral_get_bus_clock(const sl_peripheral_t peripheral)
1819 {
1820   return peripheral->bus_clock;
1821 }
1822 
1823 /** @} (end addtogroup device_peripheral) */
1824 
1825 #ifdef __cplusplus
1826 }
1827 #endif
1828 
1829 #endif // SL_DEVICE_PERIPHERAL_H
1830