1 /**************************************************************************//**
2  * @file
3  * @brief CMSIS Cortex-M Peripheral Access Layer Header File
4  *        for EFR32FG23B020F512IM48
5  ******************************************************************************
6  * # License
7  * <b>Copyright 2024 Silicon Laboratories, Inc. www.silabs.com</b>
8  ******************************************************************************
9  *
10  * SPDX-License-Identifier: Zlib
11  *
12  * The licensor of this software is Silicon Laboratories Inc.
13  *
14  * This software is provided 'as-is', without any express or implied
15  * warranty. In no event will the authors be held liable for any damages
16  * arising from the use of this software.
17  *
18  * Permission is granted to anyone to use this software for any purpose,
19  * including commercial applications, and to alter it and redistribute it
20  * freely, subject to the following restrictions:
21  *
22  * 1. The origin of this software must not be misrepresented; you must not
23  *    claim that you wrote the original software. If you use this software
24  *    in a product, an acknowledgment in the product documentation would be
25  *    appreciated but is not required.
26  * 2. Altered source versions must be plainly marked as such, and must not be
27  *    misrepresented as being the original software.
28  * 3. This notice may not be removed or altered from any source distribution.
29  *
30  *****************************************************************************/
31 #ifndef EFR32FG23B020F512IM48_H
32 #define EFR32FG23B020F512IM48_H
33 
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37 
38 /**************************************************************************//**
39  * @addtogroup Parts
40  * @{
41  *****************************************************************************/
42 
43 /**************************************************************************//**
44  * @defgroup EFR32FG23B020F512IM48 EFR32FG23B020F512IM48
45  * @{
46  *****************************************************************************/
47 
48 /** Interrupt Number Definition */
49 typedef enum IRQn{
50   /******  Cortex-M Processor Exceptions Numbers ******************************************/
51   NonMaskableInt_IRQn    = -14,             /*!< -14 Cortex-M Non Maskable Interrupt      */
52   HardFault_IRQn         = -13,             /*!< -13 Cortex-M Hard Fault Interrupt        */
53   MemoryManagement_IRQn  = -12,             /*!< -12 Cortex-M Memory Management Interrupt */
54   BusFault_IRQn          = -11,             /*!< -11 Cortex-M Bus Fault Interrupt         */
55   UsageFault_IRQn        = -10,             /*!< -10 Cortex-M Usage Fault Interrupt       */
56 #if defined(CONFIG_ARM_SECURE_FIRMWARE)
57   SecureFault_IRQn       = -9,
58 #endif
59   SVCall_IRQn            = -5,              /*!< -5  Cortex-M SV Call Interrupt           */
60   DebugMonitor_IRQn      = -4,              /*!< -4  Cortex-M Debug Monitor Interrupt     */
61   PendSV_IRQn            = -2,              /*!< -2  Cortex-M Pend SV Interrupt           */
62   SysTick_IRQn           = -1,              /*!< -1  Cortex-M System Tick Interrupt       */
63 
64   /******  EFR32FG23 Peripheral Interrupt Numbers ******************************************/
65 
66   SMU_SECURE_IRQn        = 0,  /*!<  0 EFR32 SMU_SECURE Interrupt */
67   SMU_S_PRIVILEGED_IRQn  = 1,  /*!<  1 EFR32 SMU_S_PRIVILEGED Interrupt */
68   SMU_NS_PRIVILEGED_IRQn = 2,  /*!<  2 EFR32 SMU_NS_PRIVILEGED Interrupt */
69   EMU_IRQn               = 3,  /*!<  3 EFR32 EMU Interrupt */
70   TIMER0_IRQn            = 4,  /*!<  4 EFR32 TIMER0 Interrupt */
71   TIMER1_IRQn            = 5,  /*!<  5 EFR32 TIMER1 Interrupt */
72   TIMER2_IRQn            = 6,  /*!<  6 EFR32 TIMER2 Interrupt */
73   TIMER3_IRQn            = 7,  /*!<  7 EFR32 TIMER3 Interrupt */
74   TIMER4_IRQn            = 8,  /*!<  8 EFR32 TIMER4 Interrupt */
75   USART0_RX_IRQn         = 9,  /*!<  9 EFR32 USART0_RX Interrupt */
76   USART0_TX_IRQn         = 10, /*!< 10 EFR32 USART0_TX Interrupt */
77   EUSART0_RX_IRQn        = 11, /*!< 11 EFR32 EUSART0_RX Interrupt */
78   EUSART0_TX_IRQn        = 12, /*!< 12 EFR32 EUSART0_TX Interrupt */
79   EUSART1_RX_IRQn        = 13, /*!< 13 EFR32 EUSART1_RX Interrupt */
80   EUSART1_TX_IRQn        = 14, /*!< 14 EFR32 EUSART1_TX Interrupt */
81   EUSART2_RX_IRQn        = 15, /*!< 15 EFR32 EUSART2_RX Interrupt */
82   EUSART2_TX_IRQn        = 16, /*!< 16 EFR32 EUSART2_TX Interrupt */
83   ICACHE0_IRQn           = 17, /*!< 17 EFR32 ICACHE0 Interrupt */
84   BURTC_IRQn             = 18, /*!< 18 EFR32 BURTC Interrupt */
85   LETIMER0_IRQn          = 19, /*!< 19 EFR32 LETIMER0 Interrupt */
86   SYSCFG_IRQn            = 20, /*!< 20 EFR32 SYSCFG Interrupt */
87   MPAHBRAM_IRQn          = 21, /*!< 21 EFR32 MPAHBRAM Interrupt */
88   LDMA_IRQn              = 22, /*!< 22 EFR32 LDMA Interrupt */
89   LFXO_IRQn              = 23, /*!< 23 EFR32 LFXO Interrupt */
90   LFRCO_IRQn             = 24, /*!< 24 EFR32 LFRCO Interrupt */
91   ULFRCO_IRQn            = 25, /*!< 25 EFR32 ULFRCO Interrupt */
92   GPIO_ODD_IRQn          = 26, /*!< 26 EFR32 GPIO_ODD Interrupt */
93   GPIO_EVEN_IRQn         = 27, /*!< 27 EFR32 GPIO_EVEN Interrupt */
94   I2C0_IRQn              = 28, /*!< 28 EFR32 I2C0 Interrupt */
95   I2C1_IRQn              = 29, /*!< 29 EFR32 I2C1 Interrupt */
96   EMUDG_IRQn             = 30, /*!< 30 EFR32 EMUDG Interrupt */
97   AGC_IRQn               = 31, /*!< 31 EFR32 AGC Interrupt */
98   BUFC_IRQn              = 32, /*!< 32 EFR32 BUFC Interrupt */
99   FRC_PRI_IRQn           = 33, /*!< 33 EFR32 FRC_PRI Interrupt */
100   FRC_IRQn               = 34, /*!< 34 EFR32 FRC Interrupt */
101   MODEM_IRQn             = 35, /*!< 35 EFR32 MODEM Interrupt */
102   PROTIMER_IRQn          = 36, /*!< 36 EFR32 PROTIMER Interrupt */
103   RAC_RSM_IRQn           = 37, /*!< 37 EFR32 RAC_RSM Interrupt */
104   RAC_SEQ_IRQn           = 38, /*!< 38 EFR32 RAC_SEQ Interrupt */
105   HOSTMAILBOX_IRQn       = 39, /*!< 39 EFR32 HOSTMAILBOX Interrupt */
106   SYNTH_IRQn             = 40, /*!< 40 EFR32 SYNTH Interrupt */
107   ACMP0_IRQn             = 41, /*!< 41 EFR32 ACMP0 Interrupt */
108   ACMP1_IRQn             = 42, /*!< 42 EFR32 ACMP1 Interrupt */
109   WDOG0_IRQn             = 43, /*!< 43 EFR32 WDOG0 Interrupt */
110   WDOG1_IRQn             = 44, /*!< 44 EFR32 WDOG1 Interrupt */
111   HFXO0_IRQn             = 45, /*!< 45 EFR32 HFXO0 Interrupt */
112   HFRCO0_IRQn            = 46, /*!< 46 EFR32 HFRCO0 Interrupt */
113   HFRCOEM23_IRQn         = 47, /*!< 47 EFR32 HFRCOEM23 Interrupt */
114   CMU_IRQn               = 48, /*!< 48 EFR32 CMU Interrupt */
115   AES_IRQn               = 49, /*!< 49 EFR32 AES Interrupt */
116   IADC_IRQn              = 50, /*!< 50 EFR32 IADC Interrupt */
117   MSC_IRQn               = 51, /*!< 51 EFR32 MSC Interrupt */
118   DPLL0_IRQn             = 52, /*!< 52 EFR32 DPLL0 Interrupt */
119   EMUEFP_IRQn            = 53, /*!< 53 EFR32 EMUEFP Interrupt */
120   DCDC_IRQn              = 54, /*!< 54 EFR32 DCDC Interrupt */
121   VDAC_IRQn              = 55, /*!< 55 EFR32 VDAC Interrupt */
122   PCNT0_IRQn             = 56, /*!< 56 EFR32 PCNT0 Interrupt */
123   SW0_IRQn               = 57, /*!< 57 EFR32 SW0 Interrupt */
124   SW1_IRQn               = 58, /*!< 58 EFR32 SW1 Interrupt */
125   SW2_IRQn               = 59, /*!< 59 EFR32 SW2 Interrupt */
126   SW3_IRQn               = 60, /*!< 60 EFR32 SW3 Interrupt */
127   KERNEL0_IRQn           = 61, /*!< 61 EFR32 KERNEL0 Interrupt */
128   KERNEL1_IRQn           = 62, /*!< 62 EFR32 KERNEL1 Interrupt */
129   M33CTI0_IRQn           = 63, /*!< 63 EFR32 M33CTI0 Interrupt */
130   M33CTI1_IRQn           = 64, /*!< 64 EFR32 M33CTI1 Interrupt */
131   FPUEXH_IRQn            = 65, /*!< 65 EFR32 FPUEXH Interrupt */
132   SETAMPERHOST_IRQn      = 66, /*!< 66 EFR32 SETAMPERHOST Interrupt */
133   SEMBRX_IRQn            = 67, /*!< 67 EFR32 SEMBRX Interrupt */
134   SEMBTX_IRQn            = 68, /*!< 68 EFR32 SEMBTX Interrupt */
135   LESENSE_IRQn           = 69, /*!< 69 EFR32 LESENSE Interrupt */
136   SYSRTC_APP_IRQn        = 70, /*!< 70 EFR32 SYSRTC_APP Interrupt */
137   SYSRTC_SEQ_IRQn        = 71, /*!< 71 EFR32 SYSRTC_SEQ Interrupt */
138   LCD_IRQn               = 72, /*!< 72 EFR32 LCD Interrupt */
139   KEYSCAN_IRQn           = 73, /*!< 73 EFR32 KEYSCAN Interrupt */
140   RFECA0_IRQn            = 74, /*!< 74 EFR32 RFECA0 Interrupt */
141   RFECA1_IRQn            = 75, /*!< 75 EFR32 RFECA1 Interrupt */
142 } IRQn_Type;
143 
144 /**************************************************************************//**
145  * @defgroup EFR32FG23B020F512IM48_Core EFR32FG23B020F512IM48 Core
146  * @{
147  * @brief Processor and Core Peripheral Section
148  *****************************************************************************/
149 
150 #define __CORTEXM                 1U      /**< Core architecture */
151 #define __CM33_REV                0x0004U /**< Cortex-M33 Core revision */
152 #define __DSP_PRESENT             1U      /**< Presence of DSP  */
153 #define __FPU_PRESENT             1U      /**< Presence of FPU  */
154 #define __MPU_PRESENT             1U      /**< Presence of MPU  */
155 #define __SAUREGION_PRESENT       1U      /**< Presence of FPU  */
156 #define __TZ_PRESENT              1U      /**< Presence of TrustZone */
157 #define __VTOR_PRESENT            1U      /**< Presence of VTOR register in SCB  */
158 #define __NVIC_PRIO_BITS          4U      /**< NVIC interrupt priority bits */
159 #define __Vendor_SysTickConfig    0U      /**< Is 1 if different SysTick counter is used */
160 
161 /** @} End of group EFR32FG23B020F512IM48_Core */
162 
163 /**************************************************************************//**
164 * @defgroup EFR32FG23B020F512IM48_Part EFR32FG23B020F512IM48 Part
165 * @{
166 ******************************************************************************/
167 
168 /** Part number */
169 
170 /* If part number is not defined as compiler option, define it */
171 #if !defined(EFR32FG23B020F512IM48)
172 #define EFR32FG23B020F512IM48    1 /**< FULL Part */
173 #endif
174 
175 /** Configure part number */
176 #define PART_NUMBER                                        "EFR32FG23B020F512IM48" /**< Part Number */
177 
178 /** Family / Line / Series / Config */
179 #define _EFR32_FLEX_FAMILY                                 1                                    /** Device Family Name Identifier */
180 #define _EFR32_FG_FAMILY                                   1                                    /** Device Family Identifier */
181 #define _EFR_DEVICE                                        1                                    /** Product Line Identifier */
182 #define _SILICON_LABS_32B_SERIES_2                                                              /** Product Series Identifier */
183 #define _SILICON_LABS_32B_SERIES                           2                                    /** Product Series Identifier */
184 #define _SILICON_LABS_32B_SERIES_2_CONFIG_3                                                     /** Product Config Identifier */
185 #define _SILICON_LABS_32B_SERIES_2_CONFIG                  3                                    /** Product Config Identifier */
186 #define _SILICON_LABS_GECKO_INTERNAL_SDID                  210                                  /** Silicon Labs internal use only */
187 #define _SILICON_LABS_GECKO_INTERNAL_SDID_210                                                   /** Silicon Labs internal use only */
188 #define _SILICON_LABS_SECURITY_FEATURE_SE                  0                                    /** Mid */
189 #define _SILICON_LABS_SECURITY_FEATURE_VAULT               1                                    /** High */
190 #define _SILICON_LABS_SECURITY_FEATURE_ROT                 2                                    /** Root of Trust */
191 #define _SILICON_LABS_SECURITY_FEATURE_BASE                3                                    /** Base */
192 #define _SILICON_LABS_SECURITY_FEATURE                     _SILICON_LABS_SECURITY_FEATURE_VAULT /** Security feature set */
193 #define _SILICON_LABS_DCDC_FEATURE_NOTUSED                 0                                    /** Not Used */
194 #define _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK               1                                    /** Includes Buck DCDC */
195 #define _SILICON_LABS_DCDC_FEATURE_DCDC_BOOST              2                                    /** Includes Boost DCDC */
196 #define _SILICON_LABS_DCDC_FEATURE_DCDC_BOB                3                                    /** Includes Buck or Boost DCDC */
197 #define _SILICON_LABS_DCDC_FEATURE                         _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK /** DCDC feature set */
198 #define _SILICON_LABS_EFR32_RADIO_NONE                     0                                    /** No radio present */
199 #define _SILICON_LABS_EFR32_RADIO_SUBGHZ                   1                                    /** Radio supports Sub-GHz */
200 #define _SILICON_LABS_EFR32_RADIO_2G4HZ                    2                                    /** Radio supports 2.4 GHz */
201 #define _SILICON_LABS_EFR32_RADIO_DUALBAND                 3                                    /** Radio supports dual band */
202 #define _SILICON_LABS_EFR32_RADIO_TYPE                     _SILICON_LABS_EFR32_RADIO_SUBGHZ     /** Radio type */
203 #define _SILICON_LABS_EFR32_SUBGHZ_HP_PA_MAX_OUTPUT_DBM    20                                   /** Radio SUBGHZ HP PA output power */
204 #define _SILICON_LABS_EFR32_SUBGHZ_HP_PA_PRESENT                                                /** Radio SUBGHZ HP PA is present */
205 
206 /** Memory Base addresses and limits */
207 #define FLASH_MEM_BASE                                     (0x08000000UL) /** FLASH_MEM base address */
208 #define FLASH_MEM_SIZE                                     (0x00080000UL) /** FLASH_MEM available address space */
209 #define FLASH_MEM_END                                      (0x0807FFFFUL) /** FLASH_MEM end address */
210 #define FLASH_MEM_BITS                                     (0x14UL)       /** FLASH_MEM used bits */
211 #define MSC_FLASH_MEM_BASE                                 (0x08000000UL) /** MSC_FLASH_MEM base address */
212 #define MSC_FLASH_MEM_SIZE                                 (0x00080000UL) /** MSC_FLASH_MEM available address space */
213 #define MSC_FLASH_MEM_END                                  (0x0807FFFFUL) /** MSC_FLASH_MEM end address */
214 #define MSC_FLASH_MEM_BITS                                 (0x14UL)       /** MSC_FLASH_MEM used bits */
215 #define MSC_FLASH_USERDATA_MEM_BASE                        (0x0FE00000UL) /** MSC_FLASH_USERDATA_MEM base address */
216 #define MSC_FLASH_USERDATA_MEM_SIZE                        (0x00000400UL) /** MSC_FLASH_USERDATA_MEM available address space */
217 #define MSC_FLASH_USERDATA_MEM_END                         (0x0FE003FFUL) /** MSC_FLASH_USERDATA_MEM end address */
218 #define MSC_FLASH_USERDATA_MEM_BITS                        (0xBUL)        /** MSC_FLASH_USERDATA_MEM used bits */
219 #define USERDATA_BASE                                      (0x0FE00000UL) /** USERDATA base address */
220 #define USERDATA_SIZE                                      (0x00000400UL) /** USERDATA available address space */
221 #define USERDATA_END                                       (0x0FE003FFUL) /** USERDATA end address */
222 #define USERDATA_BITS                                      (0xBUL)        /** USERDATA used bits */
223 #define MSC_FLASH_DEVINFO_MEM_BASE                         (0x0FE08000UL) /** MSC_FLASH_DEVINFO_MEM base address */
224 #define MSC_FLASH_DEVINFO_MEM_SIZE                         (0x00000400UL) /** MSC_FLASH_DEVINFO_MEM available address space */
225 #define MSC_FLASH_DEVINFO_MEM_END                          (0x0FE083FFUL) /** MSC_FLASH_DEVINFO_MEM end address */
226 #define MSC_FLASH_DEVINFO_MEM_BITS                         (0xBUL)        /** MSC_FLASH_DEVINFO_MEM used bits */
227 #define MSC_FLASH_CHIPCONFIG_MEM_BASE                      (0x0FE08400UL) /** MSC_FLASH_CHIPCONFIG_MEM base address */
228 #define MSC_FLASH_CHIPCONFIG_MEM_SIZE                      (0x00000600UL) /** MSC_FLASH_CHIPCONFIG_MEM available address space */
229 #define MSC_FLASH_CHIPCONFIG_MEM_END                       (0x0FE089FFUL) /** MSC_FLASH_CHIPCONFIG_MEM end address */
230 #define MSC_FLASH_CHIPCONFIG_MEM_BITS                      (0xBUL)        /** MSC_FLASH_CHIPCONFIG_MEM used bits */
231 #define DMEM_RAM0_RAM_MEM_BASE                             (0x20000000UL) /** DMEM_RAM0_RAM_MEM base address */
232 #define DMEM_RAM0_RAM_MEM_SIZE                             (0x00010000UL) /** DMEM_RAM0_RAM_MEM available address space */
233 #define DMEM_RAM0_RAM_MEM_END                              (0x2000FFFFUL) /** DMEM_RAM0_RAM_MEM end address */
234 #define DMEM_RAM0_RAM_MEM_BITS                             (0x11UL)       /** DMEM_RAM0_RAM_MEM used bits */
235 #define RAM_MEM_BASE                                       (0x20000000UL) /** RAM_MEM base address */
236 #define RAM_MEM_SIZE                                       (0x00010000UL) /** RAM_MEM available address space */
237 #define RAM_MEM_END                                        (0x2000FFFFUL) /** RAM_MEM end address */
238 #define RAM_MEM_BITS                                       (0x11UL)       /** RAM_MEM used bits */
239 #define RDMEM_SEQRAM_S_MEM_BASE                            (0xA0000000UL) /** RDMEM_SEQRAM_S_MEM base address */
240 #define RDMEM_SEQRAM_S_MEM_SIZE                            (0x00004000UL) /** RDMEM_SEQRAM_S_MEM available address space */
241 #define RDMEM_SEQRAM_S_MEM_END                             (0xA0003FFFUL) /** RDMEM_SEQRAM_S_MEM end address */
242 #define RDMEM_SEQRAM_S_MEM_BITS                            (0xFUL)        /** RDMEM_SEQRAM_S_MEM used bits */
243 #define RDMEM_FRCRAM_S_MEM_BASE                            (0xA0004000UL) /** RDMEM_FRCRAM_S_MEM base address */
244 #define RDMEM_FRCRAM_S_MEM_SIZE                            (0x00001000UL) /** RDMEM_FRCRAM_S_MEM available address space */
245 #define RDMEM_FRCRAM_S_MEM_END                             (0xA0004FFFUL) /** RDMEM_FRCRAM_S_MEM end address */
246 #define RDMEM_FRCRAM_S_MEM_BITS                            (0xDUL)        /** RDMEM_FRCRAM_S_MEM used bits */
247 #define RDMEM_SEQRAM_NS_MEM_BASE                           (0xB0000000UL) /** RDMEM_SEQRAM_NS_MEM base address */
248 #define RDMEM_SEQRAM_NS_MEM_SIZE                           (0x00004000UL) /** RDMEM_SEQRAM_NS_MEM available address space */
249 #define RDMEM_SEQRAM_NS_MEM_END                            (0xB0003FFFUL) /** RDMEM_SEQRAM_NS_MEM end address */
250 #define RDMEM_SEQRAM_NS_MEM_BITS                           (0xFUL)        /** RDMEM_SEQRAM_NS_MEM used bits */
251 #define RDMEM_SEQRAM_SEQRAM_MEM_BASE                       (0xB0000000UL) /** RDMEM_SEQRAM_SEQRAM_MEM base address */
252 #define RDMEM_SEQRAM_SEQRAM_MEM_SIZE                       (0x00004000UL) /** RDMEM_SEQRAM_SEQRAM_MEM available address space */
253 #define RDMEM_SEQRAM_SEQRAM_MEM_END                        (0xB0003FFFUL) /** RDMEM_SEQRAM_SEQRAM_MEM end address */
254 #define RDMEM_SEQRAM_SEQRAM_MEM_BITS                       (0xFUL)        /** RDMEM_SEQRAM_SEQRAM_MEM used bits */
255 #define RDMEM_FRCRAM_FRCRAM_MEM_BASE                       (0xB0004000UL) /** RDMEM_FRCRAM_FRCRAM_MEM base address */
256 #define RDMEM_FRCRAM_FRCRAM_MEM_SIZE                       (0x00001000UL) /** RDMEM_FRCRAM_FRCRAM_MEM available address space */
257 #define RDMEM_FRCRAM_FRCRAM_MEM_END                        (0xB0004FFFUL) /** RDMEM_FRCRAM_FRCRAM_MEM end address */
258 #define RDMEM_FRCRAM_FRCRAM_MEM_BITS                       (0xDUL)        /** RDMEM_FRCRAM_FRCRAM_MEM used bits */
259 #define RDMEM_FRCRAM_NS_MEM_BASE                           (0xB0004000UL) /** RDMEM_FRCRAM_NS_MEM base address */
260 #define RDMEM_FRCRAM_NS_MEM_SIZE                           (0x00001000UL) /** RDMEM_FRCRAM_NS_MEM available address space */
261 #define RDMEM_FRCRAM_NS_MEM_END                            (0xB0004FFFUL) /** RDMEM_FRCRAM_NS_MEM end address */
262 #define RDMEM_FRCRAM_NS_MEM_BITS                           (0xDUL)        /** RDMEM_FRCRAM_NS_MEM used bits */
263 
264 /** Flash and SRAM limits for EFR32FG23B020F512IM48 */
265 #define FLASH_BASE                                         (0x08000000UL) /**< Flash Base Address */
266 #define FLASH_SIZE                                         (0x00080000UL) /**< Available Flash Memory */
267 #define FLASH_PAGE_SIZE                                    (0x00002000UL) /**< Flash Memory page size */
268 #define SRAM_BASE                                          (0x20000000UL) /**< SRAM Base Address */
269 #define SRAM_SIZE                                          (0x00010000UL) /**< Available SRAM Memory */
270 #define DMA_CHAN_COUNT                                     LDMA_CH_NUM    /**< Number of DMA channels */
271 #define EXT_IRQ_COUNT                                      76             /**< Number of External (NVIC) interrupts */
272 
273 /* GPIO Avalibility Info */
274 #define GPIO_PA_INDEX                                      0U         /**< Index of port PA */
275 #define GPIO_PA_COUNT                                      11U        /**< Number of pins on port PA */
276 #define GPIO_PA_MASK                                       (0x07FFUL) /**< Port PA pin mask */
277 #define GPIO_PA_PIN0                                       1U         /**< GPIO pin PA0 is present. */
278 #define GPIO_PA_PIN1                                       1U         /**< GPIO pin PA1 is present. */
279 #define GPIO_PA_PIN2                                       1U         /**< GPIO pin PA2 is present. */
280 #define GPIO_PA_PIN3                                       1U         /**< GPIO pin PA3 is present. */
281 #define GPIO_PA_PIN4                                       1U         /**< GPIO pin PA4 is present. */
282 #define GPIO_PA_PIN5                                       1U         /**< GPIO pin PA5 is present. */
283 #define GPIO_PA_PIN6                                       1U         /**< GPIO pin PA6 is present. */
284 #define GPIO_PA_PIN7                                       1U         /**< GPIO pin PA7 is present. */
285 #define GPIO_PA_PIN8                                       1U         /**< GPIO pin PA8 is present. */
286 #define GPIO_PA_PIN9                                       1U         /**< GPIO pin PA9 is present. */
287 #define GPIO_PA_PIN10                                      1U         /**< GPIO pin PA10 is present. */
288 #define GPIO_PB_INDEX                                      1U         /**< Index of port PB */
289 #define GPIO_PB_COUNT                                      4U         /**< Number of pins on port PB */
290 #define GPIO_PB_MASK                                       (0x000FUL) /**< Port PB pin mask */
291 #define GPIO_PB_PIN0                                       1U         /**< GPIO pin PB0 is present. */
292 #define GPIO_PB_PIN1                                       1U         /**< GPIO pin PB1 is present. */
293 #define GPIO_PB_PIN2                                       1U         /**< GPIO pin PB2 is present. */
294 #define GPIO_PB_PIN3                                       1U         /**< GPIO pin PB3 is present. */
295 #define GPIO_PC_INDEX                                      2U         /**< Index of port PC */
296 #define GPIO_PC_COUNT                                      10U        /**< Number of pins on port PC */
297 #define GPIO_PC_MASK                                       (0x03FFUL) /**< Port PC pin mask */
298 #define GPIO_PC_PIN0                                       1U         /**< GPIO pin PC0 is present. */
299 #define GPIO_PC_PIN1                                       1U         /**< GPIO pin PC1 is present. */
300 #define GPIO_PC_PIN2                                       1U         /**< GPIO pin PC2 is present. */
301 #define GPIO_PC_PIN3                                       1U         /**< GPIO pin PC3 is present. */
302 #define GPIO_PC_PIN4                                       1U         /**< GPIO pin PC4 is present. */
303 #define GPIO_PC_PIN5                                       1U         /**< GPIO pin PC5 is present. */
304 #define GPIO_PC_PIN6                                       1U         /**< GPIO pin PC6 is present. */
305 #define GPIO_PC_PIN7                                       1U         /**< GPIO pin PC7 is present. */
306 #define GPIO_PC_PIN8                                       1U         /**< GPIO pin PC8 is present. */
307 #define GPIO_PC_PIN9                                       1U         /**< GPIO pin PC9 is present. */
308 #define GPIO_PD_INDEX                                      3U         /**< Index of port PD */
309 #define GPIO_PD_COUNT                                      6U         /**< Number of pins on port PD */
310 #define GPIO_PD_MASK                                       (0x003FUL) /**< Port PD pin mask */
311 #define GPIO_PD_PIN0                                       1U         /**< GPIO pin PD0 is present. */
312 #define GPIO_PD_PIN1                                       1U         /**< GPIO pin PD1 is present. */
313 #define GPIO_PD_PIN2                                       1U         /**< GPIO pin PD2 is present. */
314 #define GPIO_PD_PIN3                                       1U         /**< GPIO pin PD3 is present. */
315 #define GPIO_PD_PIN4                                       1U         /**< GPIO pin PD4 is present. */
316 #define GPIO_PD_PIN5                                       1U         /**< GPIO pin PD5 is present. */
317 
318 /* Fixed Resource Locations */
319 #define GPIO_SWCLK_PORT                                    GPIO_PA_INDEX /**< Port of SWCLK.*/
320 #define GPIO_SWCLK_PIN                                     1U            /**< Pin of SWCLK.*/
321 #define GPIO_SWDIO_PORT                                    GPIO_PA_INDEX /**< Port of SWDIO.*/
322 #define GPIO_SWDIO_PIN                                     2U            /**< Pin of SWDIO.*/
323 #define GPIO_SWV_PORT                                      GPIO_PA_INDEX /**< Port of SWV.*/
324 #define GPIO_SWV_PIN                                       3U            /**< Pin of SWV.*/
325 #define GPIO_TDI_PORT                                      GPIO_PA_INDEX /**< Port of TDI.*/
326 #define GPIO_TDI_PIN                                       4U            /**< Pin of TDI.*/
327 #define GPIO_TDO_PORT                                      GPIO_PA_INDEX /**< Port of TDO.*/
328 #define GPIO_TDO_PIN                                       3U            /**< Pin of TDO.*/
329 #define GPIO_TRACECLK_PORT                                 GPIO_PA_INDEX /**< Port of TRACECLK.*/
330 #define GPIO_TRACECLK_PIN                                  4U            /**< Pin of TRACECLK.*/
331 #define GPIO_TRACEDATA0_PORT                               GPIO_PA_INDEX /**< Port of TRACEDATA0.*/
332 #define GPIO_TRACEDATA0_PIN                                3U            /**< Pin of TRACEDATA0.*/
333 #define GPIO_TRACEDATA1_PORT                               GPIO_PA_INDEX /**< Port of TRACEDATA1.*/
334 #define GPIO_TRACEDATA1_PIN                                5U            /**< Pin of TRACEDATA1.*/
335 #define GPIO_TRACEDATA2_PORT                               GPIO_PA_INDEX /**< Port of TRACEDATA2.*/
336 #define GPIO_TRACEDATA2_PIN                                6U            /**< Pin of TRACEDATA2.*/
337 #define GPIO_TRACEDATA3_PORT                               GPIO_PA_INDEX /**< Port of TRACEDATA3.*/
338 #define GPIO_TRACEDATA3_PIN                                7U            /**< Pin of TRACEDATA3.*/
339 #define GPIO_EM4WU0_PORT                                   GPIO_PA_INDEX /**< Port of EM4WU0.*/
340 #define GPIO_EM4WU0_PIN                                    5U            /**< Pin of EM4WU0.*/
341 #define GPIO_EM4WU10_PORT                                  GPIO_PD_INDEX /**< Port of EM4WU10.*/
342 #define GPIO_EM4WU10_PIN                                   5U            /**< Pin of EM4WU10.*/
343 #define GPIO_EM4WU3_PORT                                   GPIO_PB_INDEX /**< Port of EM4WU3.*/
344 #define GPIO_EM4WU3_PIN                                    1U            /**< Pin of EM4WU3.*/
345 #define GPIO_EM4WU4_PORT                                   GPIO_PB_INDEX /**< Port of EM4WU4.*/
346 #define GPIO_EM4WU4_PIN                                    3U            /**< Pin of EM4WU4.*/
347 #define GPIO_EM4WU6_PORT                                   GPIO_PC_INDEX /**< Port of EM4WU6.*/
348 #define GPIO_EM4WU6_PIN                                    0U            /**< Pin of EM4WU6.*/
349 #define GPIO_EM4WU7_PORT                                   GPIO_PC_INDEX /**< Port of EM4WU7.*/
350 #define GPIO_EM4WU7_PIN                                    5U            /**< Pin of EM4WU7.*/
351 #define GPIO_EM4WU8_PORT                                   GPIO_PC_INDEX /**< Port of EM4WU8.*/
352 #define GPIO_EM4WU8_PIN                                    7U            /**< Pin of EM4WU8.*/
353 #define GPIO_EM4WU9_PORT                                   GPIO_PD_INDEX /**< Port of EM4WU9.*/
354 #define GPIO_EM4WU9_PIN                                    2U            /**< Pin of EM4WU9.*/
355 #define GPIO_THMSW_EN_PORT                                 GPIO_PC_INDEX /**< Port of THMSW_EN.*/
356 #define GPIO_THMSW_EN_PIN                                  9U            /**< Pin of THMSW_EN.*/
357 #define IADC0_VREFP_PORT                                   GPIO_PA_INDEX /**< Port of VREFP.*/
358 #define IADC0_VREFP_PIN                                    0U            /**< Pin of VREFP.*/
359 #define LCD_COM0_PORT                                      GPIO_PD_INDEX /**< Port of COM0.*/
360 #define LCD_COM0_PIN                                       2U            /**< Pin of COM0.*/
361 #define LCD_COM1_PORT                                      GPIO_PD_INDEX /**< Port of COM1.*/
362 #define LCD_COM1_PIN                                       3U            /**< Pin of COM1.*/
363 #define LCD_COM2_PORT                                      GPIO_PD_INDEX /**< Port of COM2.*/
364 #define LCD_COM2_PIN                                       4U            /**< Pin of COM2.*/
365 #define LCD_COM3_PORT                                      GPIO_PD_INDEX /**< Port of COM3.*/
366 #define LCD_COM3_PIN                                       5U            /**< Pin of COM3.*/
367 #define LCD_LCD_CP_PORT                                    GPIO_PA_INDEX /**< Port of LCD_CP.*/
368 #define LCD_LCD_CP_PIN                                     6U            /**< Pin of LCD_CP.*/
369 #define LCD_SEG0_PORT                                      GPIO_PC_INDEX /**< Port of SEG0.*/
370 #define LCD_SEG0_PIN                                       0U            /**< Pin of SEG0.*/
371 #define LCD_SEG1_PORT                                      GPIO_PC_INDEX /**< Port of SEG1.*/
372 #define LCD_SEG1_PIN                                       1U            /**< Pin of SEG1.*/
373 #define LCD_SEG10_PORT                                     GPIO_PA_INDEX /**< Port of SEG10.*/
374 #define LCD_SEG10_PIN                                      4U            /**< Pin of SEG10.*/
375 #define LCD_SEG11_PORT                                     GPIO_PA_INDEX /**< Port of SEG11.*/
376 #define LCD_SEG11_PIN                                      5U            /**< Pin of SEG11.*/
377 #define LCD_SEG12_PORT                                     GPIO_PA_INDEX /**< Port of SEG12.*/
378 #define LCD_SEG12_PIN                                      7U            /**< Pin of SEG12.*/
379 #define LCD_SEG13_PORT                                     GPIO_PA_INDEX /**< Port of SEG13.*/
380 #define LCD_SEG13_PIN                                      8U            /**< Pin of SEG13.*/
381 #define LCD_SEG14_PORT                                     GPIO_PB_INDEX /**< Port of SEG14.*/
382 #define LCD_SEG14_PIN                                      0U            /**< Pin of SEG14.*/
383 #define LCD_SEG15_PORT                                     GPIO_PB_INDEX /**< Port of SEG15.*/
384 #define LCD_SEG15_PIN                                      1U            /**< Pin of SEG15.*/
385 #define LCD_SEG16_PORT                                     GPIO_PB_INDEX /**< Port of SEG16.*/
386 #define LCD_SEG16_PIN                                      2U            /**< Pin of SEG16.*/
387 #define LCD_SEG17_PORT                                     GPIO_PB_INDEX /**< Port of SEG17.*/
388 #define LCD_SEG17_PIN                                      3U            /**< Pin of SEG17.*/
389 #define LCD_SEG18_PORT                                     GPIO_PC_INDEX /**< Port of SEG18.*/
390 #define LCD_SEG18_PIN                                      8U            /**< Pin of SEG18.*/
391 #define LCD_SEG19_PORT                                     GPIO_PC_INDEX /**< Port of SEG19.*/
392 #define LCD_SEG19_PIN                                      9U            /**< Pin of SEG19.*/
393 #define LCD_SEG2_PORT                                      GPIO_PC_INDEX /**< Port of SEG2.*/
394 #define LCD_SEG2_PIN                                       2U            /**< Pin of SEG2.*/
395 #define LCD_SEG3_PORT                                      GPIO_PC_INDEX /**< Port of SEG3.*/
396 #define LCD_SEG3_PIN                                       3U            /**< Pin of SEG3.*/
397 #define LCD_SEG4_PORT                                      GPIO_PC_INDEX /**< Port of SEG4.*/
398 #define LCD_SEG4_PIN                                       4U            /**< Pin of SEG4.*/
399 #define LCD_SEG5_PORT                                      GPIO_PC_INDEX /**< Port of SEG5.*/
400 #define LCD_SEG5_PIN                                       5U            /**< Pin of SEG5.*/
401 #define LCD_SEG6_PORT                                      GPIO_PC_INDEX /**< Port of SEG6.*/
402 #define LCD_SEG6_PIN                                       6U            /**< Pin of SEG6.*/
403 #define LCD_SEG7_PORT                                      GPIO_PC_INDEX /**< Port of SEG7.*/
404 #define LCD_SEG7_PIN                                       7U            /**< Pin of SEG7.*/
405 #define LCD_SEG8_PORT                                      GPIO_PA_INDEX /**< Port of SEG8.*/
406 #define LCD_SEG8_PIN                                       0U            /**< Pin of SEG8.*/
407 #define LCD_SEG9_PORT                                      GPIO_PA_INDEX /**< Port of SEG9.*/
408 #define LCD_SEG9_PIN                                       1U            /**< Pin of SEG9.*/
409 #define LESENSE_EN_0_PORT                                  GPIO_PA_INDEX /**< Port of EN_0.*/
410 #define LESENSE_EN_0_PIN                                   3U            /**< Pin of EN_0.*/
411 #define LESENSE_EN_1_PORT                                  GPIO_PA_INDEX /**< Port of EN_1.*/
412 #define LESENSE_EN_1_PIN                                   4U            /**< Pin of EN_1.*/
413 #define LESENSE_EN_2_PORT                                  GPIO_PA_INDEX /**< Port of EN_2.*/
414 #define LESENSE_EN_2_PIN                                   5U            /**< Pin of EN_2.*/
415 #define LFXO_LFXTAL_I_PORT                                 GPIO_PD_INDEX /**< Port of LFXTAL_I.*/
416 #define LFXO_LFXTAL_I_PIN                                  1U            /**< Pin of LFXTAL_I.*/
417 #define LFXO_LFXTAL_O_PORT                                 GPIO_PD_INDEX /**< Port of LFXTAL_O.*/
418 #define LFXO_LFXTAL_O_PIN                                  0U            /**< Pin of LFXTAL_O.*/
419 #define LFXO_LF_EXTCLK_PORT                                GPIO_PD_INDEX /**< Port of LF_EXTCLK.*/
420 #define LFXO_LF_EXTCLK_PIN                                 1U            /**< Pin of LF_EXTCLK.*/
421 #define VDAC0_CH0_MAIN_OUT_PORT                            GPIO_PB_INDEX /**< Port of CH0_MAIN_OUT.*/
422 #define VDAC0_CH0_MAIN_OUT_PIN                             0U            /**< Pin of CH0_MAIN_OUT.*/
423 #define VDAC0_CH1_MAIN_OUT_PORT                            GPIO_PB_INDEX /**< Port of CH1_MAIN_OUT.*/
424 #define VDAC0_CH1_MAIN_OUT_PIN                             1U            /**< Pin of CH1_MAIN_OUT.*/
425 
426 /* Part number capabilities */
427 #define ACMP_PRESENT                                         /** ACMP is available in this part */
428 #define ACMP_COUNT                                         2 /** 2 ACMPs available  */
429 #define BURAM_PRESENT                                        /** BURAM is available in this part */
430 #define BURAM_COUNT                                        1 /** 1 BURAMs available  */
431 #define BURTC_PRESENT                                        /** BURTC is available in this part */
432 #define BURTC_COUNT                                        1 /** 1 BURTCs available  */
433 #define CMU_PRESENT                                          /** CMU is available in this part */
434 #define CMU_COUNT                                          1 /** 1 CMUs available  */
435 #define DCDC_PRESENT                                         /** DCDC is available in this part */
436 #define DCDC_COUNT                                         1 /** 1 DCDCs available  */
437 #define DMEM_PRESENT                                         /** DMEM is available in this part */
438 #define DMEM_COUNT                                         1 /** 1 DMEMs available  */
439 #define DPLL_PRESENT                                         /** DPLL is available in this part */
440 #define DPLL_COUNT                                         1 /** 1 DPLLs available  */
441 #define EMU_PRESENT                                          /** EMU is available in this part */
442 #define EMU_COUNT                                          1 /** 1 EMUs available  */
443 #define EUSART_PRESENT                                       /** EUSART is available in this part */
444 #define EUSART_COUNT                                       3 /** 3 EUSARTs available  */
445 #define FSRCO_PRESENT                                        /** FSRCO is available in this part */
446 #define FSRCO_COUNT                                        1 /** 1 FSRCOs available  */
447 #define GPCRC_PRESENT                                        /** GPCRC is available in this part */
448 #define GPCRC_COUNT                                        1 /** 1 GPCRCs available  */
449 #define GPIO_PRESENT                                         /** GPIO is available in this part */
450 #define GPIO_COUNT                                         1 /** 1 GPIOs available  */
451 #define HFRCO_PRESENT                                        /** HFRCO is available in this part */
452 #define HFRCO_COUNT                                        1 /** 1 HFRCOs available  */
453 #define HFRCOEM23_PRESENT                                    /** HFRCOEM23 is available in this part */
454 #define HFRCOEM23_COUNT                                    1 /** 1 HFRCOEM23s available  */
455 #define HFXO_PRESENT                                         /** HFXO is available in this part */
456 #define HFXO_COUNT                                         1 /** 1 HFXOs available  */
457 #define HOSTMAILBOX_PRESENT                                  /** HOSTMAILBOX is available in this part */
458 #define HOSTMAILBOX_COUNT                                  1 /** 1 HOSTMAILBOXs available  */
459 #define I2C_PRESENT                                          /** I2C is available in this part */
460 #define I2C_COUNT                                          2 /** 2 I2Cs available  */
461 #define IADC_PRESENT                                         /** IADC is available in this part */
462 #define IADC_COUNT                                         1 /** 1 IADCs available  */
463 #define ICACHE_PRESENT                                       /** ICACHE is available in this part */
464 #define ICACHE_COUNT                                       1 /** 1 ICACHEs available  */
465 #define KEYSCAN_PRESENT                                      /** KEYSCAN is available in this part */
466 #define KEYSCAN_COUNT                                      1 /** 1 KEYSCANs available  */
467 #define LCD_PRESENT                                          /** LCD is available in this part */
468 #define LCD_COUNT                                          1 /** 1 LCDs available  */
469 #define LCDRF_PRESENT                                        /** LCDRF is available in this part */
470 #define LCDRF_COUNT                                        1 /** 1 LCDRFs available  */
471 #define LDMA_PRESENT                                         /** LDMA is available in this part */
472 #define LDMA_COUNT                                         1 /** 1 LDMAs available  */
473 #define LDMAXBAR_PRESENT                                     /** LDMAXBAR is available in this part */
474 #define LDMAXBAR_COUNT                                     1 /** 1 LDMAXBARs available  */
475 #define LESENSE_PRESENT                                      /** LESENSE is available in this part */
476 #define LESENSE_COUNT                                      1 /** 1 LESENSEs available  */
477 #define LETIMER_PRESENT                                      /** LETIMER is available in this part */
478 #define LETIMER_COUNT                                      1 /** 1 LETIMERs available  */
479 #define LFRCO_PRESENT                                        /** LFRCO is available in this part */
480 #define LFRCO_COUNT                                        1 /** 1 LFRCOs available  */
481 #define LFXO_PRESENT                                         /** LFXO is available in this part */
482 #define LFXO_COUNT                                         1 /** 1 LFXOs available  */
483 #define MSC_PRESENT                                          /** MSC is available in this part */
484 #define MSC_COUNT                                          1 /** 1 MSCs available  */
485 #define PCNT_PRESENT                                         /** PCNT is available in this part */
486 #define PCNT_COUNT                                         1 /** 1 PCNTs available  */
487 #define PFMXPPRF_PRESENT                                     /** PFMXPPRF is available in this part */
488 #define PFMXPPRF_COUNT                                     1 /** 1 PFMXPPRFs available  */
489 #define PRS_PRESENT                                          /** PRS is available in this part */
490 #define PRS_COUNT                                          1 /** 1 PRSs available  */
491 #define RADIOAES_PRESENT                                     /** RADIOAES is available in this part */
492 #define RADIOAES_COUNT                                     1 /** 1 RADIOAESs available  */
493 #define SCRATCHPAD_PRESENT                                   /** SCRATCHPAD is available in this part */
494 #define SCRATCHPAD_COUNT                                   1 /** 1 SCRATCHPADs available  */
495 #define SEMAILBOX_PRESENT                                    /** SEMAILBOX is available in this part */
496 #define SEMAILBOX_COUNT                                    1 /** 1 SEMAILBOXs available  */
497 #define SMU_PRESENT                                          /** SMU is available in this part */
498 #define SMU_COUNT                                          1 /** 1 SMUs available  */
499 #define SYSCFG_PRESENT                                       /** SYSCFG is available in this part */
500 #define SYSCFG_COUNT                                       1 /** 1 SYSCFGs available  */
501 #define SYSRTC_PRESENT                                       /** SYSRTC is available in this part */
502 #define SYSRTC_COUNT                                       1 /** 1 SYSRTCs available  */
503 #define TIMER_PRESENT                                        /** TIMER is available in this part */
504 #define TIMER_COUNT                                        5 /** 5 TIMERs available  */
505 #define ULFRCO_PRESENT                                       /** ULFRCO is available in this part */
506 #define ULFRCO_COUNT                                       1 /** 1 ULFRCOs available  */
507 #define USART_PRESENT                                        /** USART is available in this part */
508 #define USART_COUNT                                        1 /** 1 USARTs available  */
509 #define VDAC_PRESENT                                         /** VDAC is available in this part */
510 #define VDAC_COUNT                                         1 /** 1 VDACs available  */
511 #define WDOG_PRESENT                                         /** WDOG is available in this part */
512 #define WDOG_COUNT                                         2 /** 2 WDOGs available  */
513 #define DEVINFO_PRESENT                                      /** DEVINFO is available in this part */
514 #define DEVINFO_COUNT                                      1 /** 1 DEVINFOs available  */
515 
516 /* Include standard ARM headers for the core */
517 #include "core_cm33.h"        /* Core Header File */
518 #include "system_efr32fg23.h" /* System Header File */
519 
520 /** @} End of group EFR32FG23B020F512IM48_Part */
521 
522 /**************************************************************************//**
523  * @defgroup EFR32FG23B020F512IM48_Peripheral_TypeDefs EFR32FG23B020F512IM48 Peripheral TypeDefs
524  * @{
525  * @brief Device Specific Peripheral Register Structures
526  *****************************************************************************/
527 #include "efr32fg23_scratchpad.h"
528 #include "efr32fg23_emu.h"
529 #include "efr32fg23_cmu.h"
530 #include "efr32fg23_hfrco.h"
531 #include "efr32fg23_fsrco.h"
532 #include "efr32fg23_dpll.h"
533 #include "efr32fg23_lfxo.h"
534 #include "efr32fg23_lfrco.h"
535 #include "efr32fg23_ulfrco.h"
536 #include "efr32fg23_msc.h"
537 #include "efr32fg23_icache.h"
538 #include "efr32fg23_prs.h"
539 #include "efr32fg23_gpio.h"
540 #include "efr32fg23_ldma.h"
541 #include "efr32fg23_ldmaxbar.h"
542 #include "efr32fg23_timer.h"
543 #include "efr32fg23_usart.h"
544 #include "efr32fg23_burtc.h"
545 #include "efr32fg23_i2c.h"
546 #include "efr32fg23_syscfg.h"
547 #include "efr32fg23_buram.h"
548 #include "efr32fg23_gpcrc.h"
549 #include "efr32fg23_dcdc.h"
550 #include "efr32fg23_mailbox.h"
551 #include "efr32fg23_eusart.h"
552 #include "efr32fg23_sysrtc.h"
553 #include "efr32fg23_lcd.h"
554 #include "efr32fg23_keyscan.h"
555 #include "efr32fg23_mpahbram.h"
556 #include "efr32fg23_lcdrf.h"
557 #include "efr32fg23_pfmxpprf.h"
558 #include "efr32fg23_aes.h"
559 #include "efr32fg23_smu.h"
560 #include "efr32fg23_letimer.h"
561 #include "efr32fg23_iadc.h"
562 #include "efr32fg23_acmp.h"
563 #include "efr32fg23_vdac.h"
564 #include "efr32fg23_pcnt.h"
565 #include "efr32fg23_lesense.h"
566 #include "efr32fg23_hfxo.h"
567 #include "efr32fg23_wdog.h"
568 #include "efr32fg23_semailbox.h"
569 #include "efr32fg23_devinfo.h"
570 
571 /* Custom headers for LDMAXBAR and PRS mappings */
572 #include "efr32fg23_prs_signals.h"
573 #include "efr32fg23_dma_descriptor.h"
574 #include "efr32fg23_ldmaxbar_defines.h"
575 
576 /** @} End of group EFR32FG23B020F512IM48_Peripheral_TypeDefs  */
577 
578 /**************************************************************************//**
579  * @defgroup EFR32FG23B020F512IM48_Peripheral_Base EFR32FG23B020F512IM48 Peripheral Memory Map
580  * @{
581  *****************************************************************************/
582 
583 #define SCRATCHPAD_S_BASE         (0x40000000UL) /* SCRATCHPAD_S base address */
584 #define EMU_S_BASE                (0x40004000UL) /* EMU_S base address */
585 #define CMU_S_BASE                (0x40008000UL) /* CMU_S base address */
586 #define HFRCO0_S_BASE             (0x40010000UL) /* HFRCO0_S base address */
587 #define FSRCO_S_BASE              (0x40018000UL) /* FSRCO_S base address */
588 #define DPLL0_S_BASE              (0x4001C000UL) /* DPLL0_S base address */
589 #define LFXO_S_BASE               (0x40020000UL) /* LFXO_S base address */
590 #define LFRCO_S_BASE              (0x40024000UL) /* LFRCO_S base address */
591 #define ULFRCO_S_BASE             (0x40028000UL) /* ULFRCO_S base address */
592 #define MSC_S_BASE                (0x40030000UL) /* MSC_S base address */
593 #define ICACHE0_S_BASE            (0x40034000UL) /* ICACHE0_S base address */
594 #define PRS_S_BASE                (0x40038000UL) /* PRS_S base address */
595 #define GPIO_S_BASE               (0x4003C000UL) /* GPIO_S base address */
596 #define LDMA_S_BASE               (0x40040000UL) /* LDMA_S base address */
597 #define LDMAXBAR_S_BASE           (0x40044000UL) /* LDMAXBAR_S base address */
598 #define TIMER0_S_BASE             (0x40048000UL) /* TIMER0_S base address */
599 #define TIMER1_S_BASE             (0x4004C000UL) /* TIMER1_S base address */
600 #define TIMER2_S_BASE             (0x40050000UL) /* TIMER2_S base address */
601 #define TIMER3_S_BASE             (0x40054000UL) /* TIMER3_S base address */
602 #define TIMER4_S_BASE             (0x40058000UL) /* TIMER4_S base address */
603 #define USART0_S_BASE             (0x4005C000UL) /* USART0_S base address */
604 #define BURTC_S_BASE              (0x40064000UL) /* BURTC_S base address */
605 #define I2C1_S_BASE               (0x40068000UL) /* I2C1_S base address */
606 #define SYSCFG_S_CFGNS_BASE       (0x40078000UL) /* SYSCFG_S_CFGNS base address */
607 #define SYSCFG_S_BASE             (0x4007C000UL) /* SYSCFG_S base address */
608 #define BURAM_S_BASE              (0x40080000UL) /* BURAM_S base address */
609 #define GPCRC_S_BASE              (0x40088000UL) /* GPCRC_S base address */
610 #define DCDC_S_BASE               (0x40094000UL) /* DCDC_S base address */
611 #define HOSTMAILBOX_S_BASE        (0x40098000UL) /* HOSTMAILBOX_S base address */
612 #define EUSART1_S_BASE            (0x400A0000UL) /* EUSART1_S base address */
613 #define EUSART2_S_BASE            (0x400A4000UL) /* EUSART2_S base address */
614 #define SYSRTC0_S_BASE            (0x400A8000UL) /* SYSRTC0_S base address */
615 #define LCD_S_BASE                (0x400AC000UL) /* LCD_S base address */
616 #define KEYSCAN_S_BASE            (0x400B0000UL) /* KEYSCAN_S base address */
617 #define DMEM_S_BASE               (0x400B4000UL) /* DMEM_S base address */
618 #define LCDRF_S_BASE              (0x400C0000UL) /* LCDRF_S base address */
619 #define PFMXPPRF_S_BASE           (0x400C4000UL) /* PFMXPPRF_S base address */
620 #define RADIOAES_S_BASE           (0x44000000UL) /* RADIOAES_S base address */
621 #define SMU_S_BASE                (0x44008000UL) /* SMU_S base address */
622 #define SMU_S_CFGNS_BASE          (0x4400C000UL) /* SMU_S_CFGNS base address */
623 #define LETIMER0_S_BASE           (0x49000000UL) /* LETIMER0_S base address */
624 #define IADC0_S_BASE              (0x49004000UL) /* IADC0_S base address */
625 #define ACMP0_S_BASE              (0x49008000UL) /* ACMP0_S base address */
626 #define ACMP1_S_BASE              (0x4900C000UL) /* ACMP1_S base address */
627 #define VDAC0_S_BASE              (0x49024000UL) /* VDAC0_S base address */
628 #define PCNT0_S_BASE              (0x49030000UL) /* PCNT0_S base address */
629 #define LESENSE_S_BASE            (0x49038000UL) /* LESENSE_S base address */
630 #define HFRCOEM23_S_BASE          (0x4A000000UL) /* HFRCOEM23_S base address */
631 #define HFXO0_S_BASE              (0x4A004000UL) /* HFXO0_S base address */
632 #define I2C0_S_BASE               (0x4B000000UL) /* I2C0_S base address */
633 #define WDOG0_S_BASE              (0x4B004000UL) /* WDOG0_S base address */
634 #define WDOG1_S_BASE              (0x4B008000UL) /* WDOG1_S base address */
635 #define EUSART0_S_BASE            (0x4B010000UL) /* EUSART0_S base address */
636 #define SEMAILBOX_S_HOST_BASE     (0x4C000000UL) /* SEMAILBOX_S_HOST base address */
637 #define SCRATCHPAD_NS_BASE        (0x50000000UL) /* SCRATCHPAD_NS base address */
638 #define EMU_NS_BASE               (0x50004000UL) /* EMU_NS base address */
639 #define CMU_NS_BASE               (0x50008000UL) /* CMU_NS base address */
640 #define HFRCO0_NS_BASE            (0x50010000UL) /* HFRCO0_NS base address */
641 #define FSRCO_NS_BASE             (0x50018000UL) /* FSRCO_NS base address */
642 #define DPLL0_NS_BASE             (0x5001C000UL) /* DPLL0_NS base address */
643 #define LFXO_NS_BASE              (0x50020000UL) /* LFXO_NS base address */
644 #define LFRCO_NS_BASE             (0x50024000UL) /* LFRCO_NS base address */
645 #define ULFRCO_NS_BASE            (0x50028000UL) /* ULFRCO_NS base address */
646 #define MSC_NS_BASE               (0x50030000UL) /* MSC_NS base address */
647 #define ICACHE0_NS_BASE           (0x50034000UL) /* ICACHE0_NS base address */
648 #define PRS_NS_BASE               (0x50038000UL) /* PRS_NS base address */
649 #define GPIO_NS_BASE              (0x5003C000UL) /* GPIO_NS base address */
650 #define LDMA_NS_BASE              (0x50040000UL) /* LDMA_NS base address */
651 #define LDMAXBAR_NS_BASE          (0x50044000UL) /* LDMAXBAR_NS base address */
652 #define TIMER0_NS_BASE            (0x50048000UL) /* TIMER0_NS base address */
653 #define TIMER1_NS_BASE            (0x5004C000UL) /* TIMER1_NS base address */
654 #define TIMER2_NS_BASE            (0x50050000UL) /* TIMER2_NS base address */
655 #define TIMER3_NS_BASE            (0x50054000UL) /* TIMER3_NS base address */
656 #define TIMER4_NS_BASE            (0x50058000UL) /* TIMER4_NS base address */
657 #define USART0_NS_BASE            (0x5005C000UL) /* USART0_NS base address */
658 #define BURTC_NS_BASE             (0x50064000UL) /* BURTC_NS base address */
659 #define I2C1_NS_BASE              (0x50068000UL) /* I2C1_NS base address */
660 #define SYSCFG_NS_CFGNS_BASE      (0x50078000UL) /* SYSCFG_NS_CFGNS base address */
661 #define SYSCFG_NS_BASE            (0x5007C000UL) /* SYSCFG_NS base address */
662 #define BURAM_NS_BASE             (0x50080000UL) /* BURAM_NS base address */
663 #define GPCRC_NS_BASE             (0x50088000UL) /* GPCRC_NS base address */
664 #define DCDC_NS_BASE              (0x50094000UL) /* DCDC_NS base address */
665 #define HOSTMAILBOX_NS_BASE       (0x50098000UL) /* HOSTMAILBOX_NS base address */
666 #define EUSART1_NS_BASE           (0x500A0000UL) /* EUSART1_NS base address */
667 #define EUSART2_NS_BASE           (0x500A4000UL) /* EUSART2_NS base address */
668 #define SYSRTC0_NS_BASE           (0x500A8000UL) /* SYSRTC0_NS base address */
669 #define LCD_NS_BASE               (0x500AC000UL) /* LCD_NS base address */
670 #define KEYSCAN_NS_BASE           (0x500B0000UL) /* KEYSCAN_NS base address */
671 #define DMEM_NS_BASE              (0x500B4000UL) /* DMEM_NS base address */
672 #define LCDRF_NS_BASE             (0x500C0000UL) /* LCDRF_NS base address */
673 #define PFMXPPRF_NS_BASE          (0x500C4000UL) /* PFMXPPRF_NS base address */
674 #define RADIOAES_NS_BASE          (0x54000000UL) /* RADIOAES_NS base address */
675 #define SMU_NS_BASE               (0x54008000UL) /* SMU_NS base address */
676 #define SMU_NS_CFGNS_BASE         (0x5400C000UL) /* SMU_NS_CFGNS base address */
677 #define LETIMER0_NS_BASE          (0x59000000UL) /* LETIMER0_NS base address */
678 #define IADC0_NS_BASE             (0x59004000UL) /* IADC0_NS base address */
679 #define ACMP0_NS_BASE             (0x59008000UL) /* ACMP0_NS base address */
680 #define ACMP1_NS_BASE             (0x5900C000UL) /* ACMP1_NS base address */
681 #define VDAC0_NS_BASE             (0x59024000UL) /* VDAC0_NS base address */
682 #define PCNT0_NS_BASE             (0x59030000UL) /* PCNT0_NS base address */
683 #define LESENSE_NS_BASE           (0x59038000UL) /* LESENSE_NS base address */
684 #define HFRCOEM23_NS_BASE         (0x5A000000UL) /* HFRCOEM23_NS base address */
685 #define HFXO0_NS_BASE             (0x5A004000UL) /* HFXO0_NS base address */
686 #define I2C0_NS_BASE              (0x5B000000UL) /* I2C0_NS base address */
687 #define WDOG0_NS_BASE             (0x5B004000UL) /* WDOG0_NS base address */
688 #define WDOG1_NS_BASE             (0x5B008000UL) /* WDOG1_NS base address */
689 #define EUSART0_NS_BASE           (0x5B010000UL) /* EUSART0_NS base address */
690 #define SEMAILBOX_NS_HOST_BASE    (0x5C000000UL) /* SEMAILBOX_NS_HOST base address */
691 
692 #if defined(SL_COMPONENT_CATALOG_PRESENT)
693 #include "sl_component_catalog.h"
694 
695 #endif
696 #if defined(SL_CATALOG_TRUSTZONE_SECURE_CONFIG_PRESENT)
697 #include "sl_trustzone_secure_config.h"
698 
699 #endif
700 
701 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S) && (SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S != 0)))
702 #define SCRATCHPAD_BASE        (SCRATCHPAD_S_BASE)           /* SCRATCHPAD base address */
703 #else
704 #define SCRATCHPAD_BASE        (SCRATCHPAD_NS_BASE)          /* SCRATCHPAD base address */
705 #endif // SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S
706 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EMU_S) && (SL_TRUSTZONE_PERIPHERAL_EMU_S != 0)))
707 #define EMU_BASE               (EMU_S_BASE)                  /* EMU base address */
708 #else
709 #define EMU_BASE               (EMU_NS_BASE)                 /* EMU base address */
710 #endif // SL_TRUSTZONE_PERIPHERAL_EMU_S
711 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_CMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_CMU_S) && (SL_TRUSTZONE_PERIPHERAL_CMU_S != 0)))
712 #define CMU_BASE               (CMU_S_BASE)                  /* CMU base address */
713 #else
714 #define CMU_BASE               (CMU_NS_BASE)                 /* CMU base address */
715 #endif // SL_TRUSTZONE_PERIPHERAL_CMU_S
716 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCO0_S != 0)))
717 #define HFRCO0_BASE            (HFRCO0_S_BASE)               /* HFRCO0 base address */
718 #else
719 #define HFRCO0_BASE            (HFRCO0_NS_BASE)              /* HFRCO0 base address */
720 #endif // SL_TRUSTZONE_PERIPHERAL_HFRCO0_S
721 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S) && (SL_TRUSTZONE_PERIPHERAL_FSRCO_S != 0)))
722 #define FSRCO_BASE             (FSRCO_S_BASE)                /* FSRCO base address */
723 #else
724 #define FSRCO_BASE             (FSRCO_NS_BASE)               /* FSRCO base address */
725 #endif // SL_TRUSTZONE_PERIPHERAL_FSRCO_S
726 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S) && (SL_TRUSTZONE_PERIPHERAL_DPLL0_S != 0)))
727 #define DPLL0_BASE             (DPLL0_S_BASE)                /* DPLL0 base address */
728 #else
729 #define DPLL0_BASE             (DPLL0_NS_BASE)               /* DPLL0 base address */
730 #endif // SL_TRUSTZONE_PERIPHERAL_DPLL0_S
731 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S) && (SL_TRUSTZONE_PERIPHERAL_LFXO_S != 0)))
732 #define LFXO_BASE              (LFXO_S_BASE)                 /* LFXO base address */
733 #else
734 #define LFXO_BASE              (LFXO_NS_BASE)                /* LFXO base address */
735 #endif // SL_TRUSTZONE_PERIPHERAL_LFXO_S
736 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_LFRCO_S != 0)))
737 #define LFRCO_BASE             (LFRCO_S_BASE)                /* LFRCO base address */
738 #else
739 #define LFRCO_BASE             (LFRCO_NS_BASE)               /* LFRCO base address */
740 #endif // SL_TRUSTZONE_PERIPHERAL_LFRCO_S
741 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_ULFRCO_S != 0)))
742 #define ULFRCO_BASE            (ULFRCO_S_BASE)               /* ULFRCO base address */
743 #else
744 #define ULFRCO_BASE            (ULFRCO_NS_BASE)              /* ULFRCO base address */
745 #endif // SL_TRUSTZONE_PERIPHERAL_ULFRCO_S
746 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_MSC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_MSC_S) && (SL_TRUSTZONE_PERIPHERAL_MSC_S != 0)))
747 #define MSC_BASE               (MSC_S_BASE)                  /* MSC base address */
748 #else
749 #define MSC_BASE               (MSC_NS_BASE)                 /* MSC base address */
750 #endif // SL_TRUSTZONE_PERIPHERAL_MSC_S
751 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S) && (SL_TRUSTZONE_PERIPHERAL_ICACHE0_S != 0)))
752 #define ICACHE0_BASE           (ICACHE0_S_BASE)              /* ICACHE0 base address */
753 #else
754 #define ICACHE0_BASE           (ICACHE0_NS_BASE)             /* ICACHE0 base address */
755 #endif // SL_TRUSTZONE_PERIPHERAL_ICACHE0_S
756 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PRS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PRS_S) && (SL_TRUSTZONE_PERIPHERAL_PRS_S != 0)))
757 #define PRS_BASE               (PRS_S_BASE)                  /* PRS base address */
758 #else
759 #define PRS_BASE               (PRS_NS_BASE)                 /* PRS base address */
760 #endif // SL_TRUSTZONE_PERIPHERAL_PRS_S
761 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S) && (SL_TRUSTZONE_PERIPHERAL_GPIO_S != 0)))
762 #define GPIO_BASE              (GPIO_S_BASE)                 /* GPIO base address */
763 #else
764 #define GPIO_BASE              (GPIO_NS_BASE)                /* GPIO base address */
765 #endif // SL_TRUSTZONE_PERIPHERAL_GPIO_S
766 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S) && (SL_TRUSTZONE_PERIPHERAL_LDMA_S != 0)))
767 #define LDMA_BASE              (LDMA_S_BASE)                 /* LDMA base address */
768 #else
769 #define LDMA_BASE              (LDMA_NS_BASE)                /* LDMA base address */
770 #endif // SL_TRUSTZONE_PERIPHERAL_LDMA_S
771 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S) && (SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S != 0)))
772 #define LDMAXBAR_BASE          (LDMAXBAR_S_BASE)             /* LDMAXBAR base address */
773 #else
774 #define LDMAXBAR_BASE          (LDMAXBAR_NS_BASE)            /* LDMAXBAR base address */
775 #endif // SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S
776 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER0_S != 0)))
777 #define TIMER0_BASE            (TIMER0_S_BASE)               /* TIMER0 base address */
778 #else
779 #define TIMER0_BASE            (TIMER0_NS_BASE)              /* TIMER0 base address */
780 #endif // SL_TRUSTZONE_PERIPHERAL_TIMER0_S
781 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER1_S != 0)))
782 #define TIMER1_BASE            (TIMER1_S_BASE)               /* TIMER1 base address */
783 #else
784 #define TIMER1_BASE            (TIMER1_NS_BASE)              /* TIMER1 base address */
785 #endif // SL_TRUSTZONE_PERIPHERAL_TIMER1_S
786 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER2_S != 0)))
787 #define TIMER2_BASE            (TIMER2_S_BASE)               /* TIMER2 base address */
788 #else
789 #define TIMER2_BASE            (TIMER2_NS_BASE)              /* TIMER2 base address */
790 #endif // SL_TRUSTZONE_PERIPHERAL_TIMER2_S
791 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER3_S != 0)))
792 #define TIMER3_BASE            (TIMER3_S_BASE)               /* TIMER3 base address */
793 #else
794 #define TIMER3_BASE            (TIMER3_NS_BASE)              /* TIMER3 base address */
795 #endif // SL_TRUSTZONE_PERIPHERAL_TIMER3_S
796 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER4_S != 0)))
797 #define TIMER4_BASE            (TIMER4_S_BASE)               /* TIMER4 base address */
798 #else
799 #define TIMER4_BASE            (TIMER4_NS_BASE)              /* TIMER4 base address */
800 #endif // SL_TRUSTZONE_PERIPHERAL_TIMER4_S
801 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_USART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_USART0_S) && (SL_TRUSTZONE_PERIPHERAL_USART0_S != 0)))
802 #define USART0_BASE            (USART0_S_BASE)               /* USART0 base address */
803 #else
804 #define USART0_BASE            (USART0_NS_BASE)              /* USART0 base address */
805 #endif // SL_TRUSTZONE_PERIPHERAL_USART0_S
806 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S) && (SL_TRUSTZONE_PERIPHERAL_BURTC_S != 0)))
807 #define BURTC_BASE             (BURTC_S_BASE)                /* BURTC base address */
808 #else
809 #define BURTC_BASE             (BURTC_NS_BASE)               /* BURTC base address */
810 #endif // SL_TRUSTZONE_PERIPHERAL_BURTC_S
811 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S) && (SL_TRUSTZONE_PERIPHERAL_I2C1_S != 0)))
812 #define I2C1_BASE              (I2C1_S_BASE)                 /* I2C1 base address */
813 #else
814 #define I2C1_BASE              (I2C1_NS_BASE)                /* I2C1 base address */
815 #endif // SL_TRUSTZONE_PERIPHERAL_I2C1_S
816 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S != 0)))
817 #define SYSCFG_CFGNS_BASE      (SYSCFG_S_CFGNS_BASE)         /* SYSCFG_CFGNS base address */
818 #else
819 #define SYSCFG_CFGNS_BASE      (SYSCFG_NS_CFGNS_BASE)        /* SYSCFG_CFGNS base address */
820 #endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S
821 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_S != 0)))
822 #define SYSCFG_BASE            (SYSCFG_S_BASE)               /* SYSCFG base address */
823 #else
824 #define SYSCFG_BASE            (SYSCFG_NS_BASE)              /* SYSCFG base address */
825 #endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_S
826 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S) && (SL_TRUSTZONE_PERIPHERAL_BURAM_S != 0)))
827 #define BURAM_BASE             (BURAM_S_BASE)                /* BURAM base address */
828 #else
829 #define BURAM_BASE             (BURAM_NS_BASE)               /* BURAM base address */
830 #endif // SL_TRUSTZONE_PERIPHERAL_BURAM_S
831 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S) && (SL_TRUSTZONE_PERIPHERAL_GPCRC_S != 0)))
832 #define GPCRC_BASE             (GPCRC_S_BASE)                /* GPCRC base address */
833 #else
834 #define GPCRC_BASE             (GPCRC_NS_BASE)               /* GPCRC base address */
835 #endif // SL_TRUSTZONE_PERIPHERAL_GPCRC_S
836 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S) && (SL_TRUSTZONE_PERIPHERAL_DCDC_S != 0)))
837 #define DCDC_BASE              (DCDC_S_BASE)                 /* DCDC base address */
838 #else
839 #define DCDC_BASE              (DCDC_NS_BASE)                /* DCDC base address */
840 #endif // SL_TRUSTZONE_PERIPHERAL_DCDC_S
841 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S) && (SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S != 0)))
842 #define HOSTMAILBOX_BASE       (HOSTMAILBOX_S_BASE)          /* HOSTMAILBOX base address */
843 #else
844 #define HOSTMAILBOX_BASE       (HOSTMAILBOX_NS_BASE)         /* HOSTMAILBOX base address */
845 #endif // SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S
846 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART1_S != 0)))
847 #define EUSART1_BASE           (EUSART1_S_BASE)              /* EUSART1 base address */
848 #else
849 #define EUSART1_BASE           (EUSART1_NS_BASE)             /* EUSART1 base address */
850 #endif // SL_TRUSTZONE_PERIPHERAL_EUSART1_S
851 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART2_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART2_S != 0)))
852 #define EUSART2_BASE           (EUSART2_S_BASE)              /* EUSART2 base address */
853 #else
854 #define EUSART2_BASE           (EUSART2_NS_BASE)             /* EUSART2 base address */
855 #endif // SL_TRUSTZONE_PERIPHERAL_EUSART2_S
856 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S) && (SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S != 0)))
857 #define SYSRTC0_BASE           (SYSRTC0_S_BASE)              /* SYSRTC0 base address */
858 #else
859 #define SYSRTC0_BASE           (SYSRTC0_NS_BASE)             /* SYSRTC0 base address */
860 #endif // SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S
861 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LCD_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LCD_S) && (SL_TRUSTZONE_PERIPHERAL_LCD_S != 0)))
862 #define LCD_BASE               (LCD_S_BASE)                  /* LCD base address */
863 #else
864 #define LCD_BASE               (LCD_NS_BASE)                 /* LCD base address */
865 #endif // SL_TRUSTZONE_PERIPHERAL_LCD_S
866 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S) && (SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S != 0)))
867 #define KEYSCAN_BASE           (KEYSCAN_S_BASE)              /* KEYSCAN base address */
868 #else
869 #define KEYSCAN_BASE           (KEYSCAN_NS_BASE)             /* KEYSCAN base address */
870 #endif // SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S
871 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S) && (SL_TRUSTZONE_PERIPHERAL_DMEM_S != 0)))
872 #define DMEM_BASE              (DMEM_S_BASE)                 /* DMEM base address */
873 #else
874 #define DMEM_BASE              (DMEM_NS_BASE)                /* DMEM base address */
875 #endif // SL_TRUSTZONE_PERIPHERAL_DMEM_S
876 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LCDRF_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LCDRF_S) && (SL_TRUSTZONE_PERIPHERAL_LCDRF_S != 0)))
877 #define LCDRF_BASE             (LCDRF_S_BASE)                /* LCDRF base address */
878 #else
879 #define LCDRF_BASE             (LCDRF_NS_BASE)               /* LCDRF base address */
880 #endif // SL_TRUSTZONE_PERIPHERAL_LCDRF_S
881 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S) && (SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S != 0)))
882 #define PFMXPPRF_BASE          (PFMXPPRF_S_BASE)             /* PFMXPPRF base address */
883 #else
884 #define PFMXPPRF_BASE          (PFMXPPRF_NS_BASE)            /* PFMXPPRF base address */
885 #endif // SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S
886 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S) && (SL_TRUSTZONE_PERIPHERAL_RADIOAES_S != 0)))
887 #define RADIOAES_BASE          (RADIOAES_S_BASE)             /* RADIOAES base address */
888 #else
889 #define RADIOAES_BASE          (RADIOAES_NS_BASE)            /* RADIOAES base address */
890 #endif // SL_TRUSTZONE_PERIPHERAL_RADIOAES_S
891 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_S != 0)))
892 #define SMU_BASE               (SMU_S_BASE)                  /* SMU base address */
893 #else
894 #define SMU_BASE               (SMU_S_BASE)                  /* SMU base address */
895 #endif // SL_TRUSTZONE_PERIPHERAL_SMU_S
896 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S != 0)))
897 #define SMU_CFGNS_BASE         (SMU_S_CFGNS_BASE)            /* SMU_CFGNS base address */
898 #else
899 #define SMU_CFGNS_BASE         (SMU_NS_CFGNS_BASE)           /* SMU_CFGNS base address */
900 #endif // SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S
901 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_LETIMER0_S != 0)))
902 #define LETIMER0_BASE          (LETIMER0_S_BASE)             /* LETIMER0 base address */
903 #else
904 #define LETIMER0_BASE          (LETIMER0_NS_BASE)            /* LETIMER0 base address */
905 #endif // SL_TRUSTZONE_PERIPHERAL_LETIMER0_S
906 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S) && (SL_TRUSTZONE_PERIPHERAL_IADC0_S != 0)))
907 #define IADC0_BASE             (IADC0_S_BASE)                /* IADC0 base address */
908 #else
909 #define IADC0_BASE             (IADC0_NS_BASE)               /* IADC0 base address */
910 #endif // SL_TRUSTZONE_PERIPHERAL_IADC0_S
911 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP0_S != 0)))
912 #define ACMP0_BASE             (ACMP0_S_BASE)                /* ACMP0 base address */
913 #else
914 #define ACMP0_BASE             (ACMP0_NS_BASE)               /* ACMP0 base address */
915 #endif // SL_TRUSTZONE_PERIPHERAL_ACMP0_S
916 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP1_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP1_S != 0)))
917 #define ACMP1_BASE             (ACMP1_S_BASE)                /* ACMP1 base address */
918 #else
919 #define ACMP1_BASE             (ACMP1_NS_BASE)               /* ACMP1 base address */
920 #endif // SL_TRUSTZONE_PERIPHERAL_ACMP1_S
921 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_VDAC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_VDAC0_S) && (SL_TRUSTZONE_PERIPHERAL_VDAC0_S != 0)))
922 #define VDAC0_BASE             (VDAC0_S_BASE)                /* VDAC0 base address */
923 #else
924 #define VDAC0_BASE             (VDAC0_NS_BASE)               /* VDAC0 base address */
925 #endif // SL_TRUSTZONE_PERIPHERAL_VDAC0_S
926 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PCNT0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PCNT0_S) && (SL_TRUSTZONE_PERIPHERAL_PCNT0_S != 0)))
927 #define PCNT0_BASE             (PCNT0_S_BASE)                /* PCNT0 base address */
928 #else
929 #define PCNT0_BASE             (PCNT0_NS_BASE)               /* PCNT0 base address */
930 #endif // SL_TRUSTZONE_PERIPHERAL_PCNT0_S
931 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LESENSE_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LESENSE_S) && (SL_TRUSTZONE_PERIPHERAL_LESENSE_S != 0)))
932 #define LESENSE_BASE           (LESENSE_S_BASE)              /* LESENSE base address */
933 #else
934 #define LESENSE_BASE           (LESENSE_NS_BASE)             /* LESENSE base address */
935 #endif // SL_TRUSTZONE_PERIPHERAL_LESENSE_S
936 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S != 0)))
937 #define HFRCOEM23_BASE         (HFRCOEM23_S_BASE)            /* HFRCOEM23 base address */
938 #else
939 #define HFRCOEM23_BASE         (HFRCOEM23_NS_BASE)           /* HFRCOEM23 base address */
940 #endif // SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S
941 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFXO0_S != 0)))
942 #define HFXO0_BASE             (HFXO0_S_BASE)                /* HFXO0 base address */
943 #else
944 #define HFXO0_BASE             (HFXO0_NS_BASE)               /* HFXO0 base address */
945 #endif // SL_TRUSTZONE_PERIPHERAL_HFXO0_S
946 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S) && (SL_TRUSTZONE_PERIPHERAL_I2C0_S != 0)))
947 #define I2C0_BASE              (I2C0_S_BASE)                 /* I2C0 base address */
948 #else
949 #define I2C0_BASE              (I2C0_NS_BASE)                /* I2C0 base address */
950 #endif // SL_TRUSTZONE_PERIPHERAL_I2C0_S
951 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG0_S != 0)))
952 #define WDOG0_BASE             (WDOG0_S_BASE)                /* WDOG0 base address */
953 #else
954 #define WDOG0_BASE             (WDOG0_NS_BASE)               /* WDOG0 base address */
955 #endif // SL_TRUSTZONE_PERIPHERAL_WDOG0_S
956 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG1_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG1_S != 0)))
957 #define WDOG1_BASE             (WDOG1_S_BASE)                /* WDOG1 base address */
958 #else
959 #define WDOG1_BASE             (WDOG1_NS_BASE)               /* WDOG1 base address */
960 #endif // SL_TRUSTZONE_PERIPHERAL_WDOG1_S
961 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART0_S != 0)))
962 #define EUSART0_BASE           (EUSART0_S_BASE)              /* EUSART0 base address */
963 #else
964 #define EUSART0_BASE           (EUSART0_NS_BASE)             /* EUSART0 base address */
965 #endif // SL_TRUSTZONE_PERIPHERAL_EUSART0_S
966 #if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S) && (SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S != 0)))
967 #define SEMAILBOX_HOST_BASE    (SEMAILBOX_S_HOST_BASE)       /* SEMAILBOX_HOST base address */
968 #else
969 #define SEMAILBOX_HOST_BASE    (SEMAILBOX_S_HOST_BASE)       /* SEMAILBOX_HOST base address */
970 #endif // SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S
971 
972 #define DEVINFO_BASE           (0x0FE08000UL) /* DEVINFO base address */
973 /** @} End of group EFR32FG23B020F512IM48_Peripheral_Base */
974 
975 /**************************************************************************//**
976  * @defgroup EFR32FG23B020F512IM48_Peripheral_Declaration EFR32FG23B020F512IM48 Peripheral Declarations Map
977  * @{
978  *****************************************************************************/
979 
980 #define SCRATCHPAD_S         ((SCRATCHPAD_TypeDef *) SCRATCHPAD_S_BASE)          /**< SCRATCHPAD_S base pointer */
981 #define EMU_S                ((EMU_TypeDef *) EMU_S_BASE)                        /**< EMU_S base pointer */
982 #define CMU_S                ((CMU_TypeDef *) CMU_S_BASE)                        /**< CMU_S base pointer */
983 #define HFRCO0_S             ((HFRCO_TypeDef *) HFRCO0_S_BASE)                   /**< HFRCO0_S base pointer */
984 #define FSRCO_S              ((FSRCO_TypeDef *) FSRCO_S_BASE)                    /**< FSRCO_S base pointer */
985 #define DPLL0_S              ((DPLL_TypeDef *) DPLL0_S_BASE)                     /**< DPLL0_S base pointer */
986 #define LFXO_S               ((LFXO_TypeDef *) LFXO_S_BASE)                      /**< LFXO_S base pointer */
987 #define LFRCO_S              ((LFRCO_TypeDef *) LFRCO_S_BASE)                    /**< LFRCO_S base pointer */
988 #define ULFRCO_S             ((ULFRCO_TypeDef *) ULFRCO_S_BASE)                  /**< ULFRCO_S base pointer */
989 #define MSC_S                ((MSC_TypeDef *) MSC_S_BASE)                        /**< MSC_S base pointer */
990 #define ICACHE0_S            ((ICACHE_TypeDef *) ICACHE0_S_BASE)                 /**< ICACHE0_S base pointer */
991 #define PRS_S                ((PRS_TypeDef *) PRS_S_BASE)                        /**< PRS_S base pointer */
992 #define GPIO_S               ((GPIO_TypeDef *) GPIO_S_BASE)                      /**< GPIO_S base pointer */
993 #define LDMA_S               ((LDMA_TypeDef *) LDMA_S_BASE)                      /**< LDMA_S base pointer */
994 #define LDMAXBAR_S           ((LDMAXBAR_TypeDef *) LDMAXBAR_S_BASE)              /**< LDMAXBAR_S base pointer */
995 #define TIMER0_S             ((TIMER_TypeDef *) TIMER0_S_BASE)                   /**< TIMER0_S base pointer */
996 #define TIMER1_S             ((TIMER_TypeDef *) TIMER1_S_BASE)                   /**< TIMER1_S base pointer */
997 #define TIMER2_S             ((TIMER_TypeDef *) TIMER2_S_BASE)                   /**< TIMER2_S base pointer */
998 #define TIMER3_S             ((TIMER_TypeDef *) TIMER3_S_BASE)                   /**< TIMER3_S base pointer */
999 #define TIMER4_S             ((TIMER_TypeDef *) TIMER4_S_BASE)                   /**< TIMER4_S base pointer */
1000 #define USART0_S             ((USART_TypeDef *) USART0_S_BASE)                   /**< USART0_S base pointer */
1001 #define BURTC_S              ((BURTC_TypeDef *) BURTC_S_BASE)                    /**< BURTC_S base pointer */
1002 #define I2C1_S               ((I2C_TypeDef *) I2C1_S_BASE)                       /**< I2C1_S base pointer */
1003 #define SYSCFG_S_CFGNS       ((SYSCFG_CFGNS_TypeDef *) SYSCFG_S_CFGNS_BASE)      /**< SYSCFG_S_CFGNS base pointer */
1004 #define SYSCFG_S             ((SYSCFG_TypeDef *) SYSCFG_S_BASE)                  /**< SYSCFG_S base pointer */
1005 #define BURAM_S              ((BURAM_TypeDef *) BURAM_S_BASE)                    /**< BURAM_S base pointer */
1006 #define GPCRC_S              ((GPCRC_TypeDef *) GPCRC_S_BASE)                    /**< GPCRC_S base pointer */
1007 #define DCDC_S               ((DCDC_TypeDef *) DCDC_S_BASE)                      /**< DCDC_S base pointer */
1008 #define HOSTMAILBOX_S        ((MAILBOX_TypeDef *) HOSTMAILBOX_S_BASE)            /**< HOSTMAILBOX_S base pointer */
1009 #define EUSART1_S            ((EUSART_TypeDef *) EUSART1_S_BASE)                 /**< EUSART1_S base pointer */
1010 #define EUSART2_S            ((EUSART_TypeDef *) EUSART2_S_BASE)                 /**< EUSART2_S base pointer */
1011 #define SYSRTC0_S            ((SYSRTC_TypeDef *) SYSRTC0_S_BASE)                 /**< SYSRTC0_S base pointer */
1012 #define LCD_S                ((LCD_TypeDef *) LCD_S_BASE)                        /**< LCD_S base pointer */
1013 #define KEYSCAN_S            ((KEYSCAN_TypeDef *) KEYSCAN_S_BASE)                /**< KEYSCAN_S base pointer */
1014 #define DMEM_S               ((MPAHBRAM_TypeDef *) DMEM_S_BASE)                  /**< DMEM_S base pointer */
1015 #define LCDRF_S              ((LCDRF_TypeDef *) LCDRF_S_BASE)                    /**< LCDRF_S base pointer */
1016 #define PFMXPPRF_S           ((PFMXPPRF_TypeDef *) PFMXPPRF_S_BASE)              /**< PFMXPPRF_S base pointer */
1017 #define RADIOAES_S           ((AES_TypeDef *) RADIOAES_S_BASE)                   /**< RADIOAES_S base pointer */
1018 #define SMU_S                ((SMU_TypeDef *) SMU_S_BASE)                        /**< SMU_S base pointer */
1019 #define SMU_S_CFGNS          ((SMU_CFGNS_TypeDef *) SMU_S_CFGNS_BASE)            /**< SMU_S_CFGNS base pointer */
1020 #define LETIMER0_S           ((LETIMER_TypeDef *) LETIMER0_S_BASE)               /**< LETIMER0_S base pointer */
1021 #define IADC0_S              ((IADC_TypeDef *) IADC0_S_BASE)                     /**< IADC0_S base pointer */
1022 #define ACMP0_S              ((ACMP_TypeDef *) ACMP0_S_BASE)                     /**< ACMP0_S base pointer */
1023 #define ACMP1_S              ((ACMP_TypeDef *) ACMP1_S_BASE)                     /**< ACMP1_S base pointer */
1024 #define VDAC0_S              ((VDAC_TypeDef *) VDAC0_S_BASE)                     /**< VDAC0_S base pointer */
1025 #define PCNT0_S              ((PCNT_TypeDef *) PCNT0_S_BASE)                     /**< PCNT0_S base pointer */
1026 #define LESENSE_S            ((LESENSE_TypeDef *) LESENSE_S_BASE)                /**< LESENSE_S base pointer */
1027 #define HFRCOEM23_S          ((HFRCO_TypeDef *) HFRCOEM23_S_BASE)                /**< HFRCOEM23_S base pointer */
1028 #define HFXO0_S              ((HFXO_TypeDef *) HFXO0_S_BASE)                     /**< HFXO0_S base pointer */
1029 #define I2C0_S               ((I2C_TypeDef *) I2C0_S_BASE)                       /**< I2C0_S base pointer */
1030 #define WDOG0_S              ((WDOG_TypeDef *) WDOG0_S_BASE)                     /**< WDOG0_S base pointer */
1031 #define WDOG1_S              ((WDOG_TypeDef *) WDOG1_S_BASE)                     /**< WDOG1_S base pointer */
1032 #define EUSART0_S            ((EUSART_TypeDef *) EUSART0_S_BASE)                 /**< EUSART0_S base pointer */
1033 #define SEMAILBOX_S_HOST     ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_S_HOST_BASE)  /**< SEMAILBOX_S_HOST base pointer */
1034 #define SCRATCHPAD_NS        ((SCRATCHPAD_TypeDef *) SCRATCHPAD_NS_BASE)         /**< SCRATCHPAD_NS base pointer */
1035 #define EMU_NS               ((EMU_TypeDef *) EMU_NS_BASE)                       /**< EMU_NS base pointer */
1036 #define CMU_NS               ((CMU_TypeDef *) CMU_NS_BASE)                       /**< CMU_NS base pointer */
1037 #define HFRCO0_NS            ((HFRCO_TypeDef *) HFRCO0_NS_BASE)                  /**< HFRCO0_NS base pointer */
1038 #define FSRCO_NS             ((FSRCO_TypeDef *) FSRCO_NS_BASE)                   /**< FSRCO_NS base pointer */
1039 #define DPLL0_NS             ((DPLL_TypeDef *) DPLL0_NS_BASE)                    /**< DPLL0_NS base pointer */
1040 #define LFXO_NS              ((LFXO_TypeDef *) LFXO_NS_BASE)                     /**< LFXO_NS base pointer */
1041 #define LFRCO_NS             ((LFRCO_TypeDef *) LFRCO_NS_BASE)                   /**< LFRCO_NS base pointer */
1042 #define ULFRCO_NS            ((ULFRCO_TypeDef *) ULFRCO_NS_BASE)                 /**< ULFRCO_NS base pointer */
1043 #define MSC_NS               ((MSC_TypeDef *) MSC_NS_BASE)                       /**< MSC_NS base pointer */
1044 #define ICACHE0_NS           ((ICACHE_TypeDef *) ICACHE0_NS_BASE)                /**< ICACHE0_NS base pointer */
1045 #define PRS_NS               ((PRS_TypeDef *) PRS_NS_BASE)                       /**< PRS_NS base pointer */
1046 #define GPIO_NS              ((GPIO_TypeDef *) GPIO_NS_BASE)                     /**< GPIO_NS base pointer */
1047 #define LDMA_NS              ((LDMA_TypeDef *) LDMA_NS_BASE)                     /**< LDMA_NS base pointer */
1048 #define LDMAXBAR_NS          ((LDMAXBAR_TypeDef *) LDMAXBAR_NS_BASE)             /**< LDMAXBAR_NS base pointer */
1049 #define TIMER0_NS            ((TIMER_TypeDef *) TIMER0_NS_BASE)                  /**< TIMER0_NS base pointer */
1050 #define TIMER1_NS            ((TIMER_TypeDef *) TIMER1_NS_BASE)                  /**< TIMER1_NS base pointer */
1051 #define TIMER2_NS            ((TIMER_TypeDef *) TIMER2_NS_BASE)                  /**< TIMER2_NS base pointer */
1052 #define TIMER3_NS            ((TIMER_TypeDef *) TIMER3_NS_BASE)                  /**< TIMER3_NS base pointer */
1053 #define TIMER4_NS            ((TIMER_TypeDef *) TIMER4_NS_BASE)                  /**< TIMER4_NS base pointer */
1054 #define USART0_NS            ((USART_TypeDef *) USART0_NS_BASE)                  /**< USART0_NS base pointer */
1055 #define BURTC_NS             ((BURTC_TypeDef *) BURTC_NS_BASE)                   /**< BURTC_NS base pointer */
1056 #define I2C1_NS              ((I2C_TypeDef *) I2C1_NS_BASE)                      /**< I2C1_NS base pointer */
1057 #define SYSCFG_NS_CFGNS      ((SYSCFG_CFGNS_TypeDef *) SYSCFG_NS_CFGNS_BASE)     /**< SYSCFG_NS_CFGNS base pointer */
1058 #define SYSCFG_NS            ((SYSCFG_TypeDef *) SYSCFG_NS_BASE)                 /**< SYSCFG_NS base pointer */
1059 #define BURAM_NS             ((BURAM_TypeDef *) BURAM_NS_BASE)                   /**< BURAM_NS base pointer */
1060 #define GPCRC_NS             ((GPCRC_TypeDef *) GPCRC_NS_BASE)                   /**< GPCRC_NS base pointer */
1061 #define DCDC_NS              ((DCDC_TypeDef *) DCDC_NS_BASE)                     /**< DCDC_NS base pointer */
1062 #define HOSTMAILBOX_NS       ((MAILBOX_TypeDef *) HOSTMAILBOX_NS_BASE)           /**< HOSTMAILBOX_NS base pointer */
1063 #define EUSART1_NS           ((EUSART_TypeDef *) EUSART1_NS_BASE)                /**< EUSART1_NS base pointer */
1064 #define EUSART2_NS           ((EUSART_TypeDef *) EUSART2_NS_BASE)                /**< EUSART2_NS base pointer */
1065 #define SYSRTC0_NS           ((SYSRTC_TypeDef *) SYSRTC0_NS_BASE)                /**< SYSRTC0_NS base pointer */
1066 #define LCD_NS               ((LCD_TypeDef *) LCD_NS_BASE)                       /**< LCD_NS base pointer */
1067 #define KEYSCAN_NS           ((KEYSCAN_TypeDef *) KEYSCAN_NS_BASE)               /**< KEYSCAN_NS base pointer */
1068 #define DMEM_NS              ((MPAHBRAM_TypeDef *) DMEM_NS_BASE)                 /**< DMEM_NS base pointer */
1069 #define LCDRF_NS             ((LCDRF_TypeDef *) LCDRF_NS_BASE)                   /**< LCDRF_NS base pointer */
1070 #define PFMXPPRF_NS          ((PFMXPPRF_TypeDef *) PFMXPPRF_NS_BASE)             /**< PFMXPPRF_NS base pointer */
1071 #define RADIOAES_NS          ((AES_TypeDef *) RADIOAES_NS_BASE)                  /**< RADIOAES_NS base pointer */
1072 #define SMU_NS               ((SMU_TypeDef *) SMU_NS_BASE)                       /**< SMU_NS base pointer */
1073 #define SMU_NS_CFGNS         ((SMU_CFGNS_TypeDef *) SMU_NS_CFGNS_BASE)           /**< SMU_NS_CFGNS base pointer */
1074 #define LETIMER0_NS          ((LETIMER_TypeDef *) LETIMER0_NS_BASE)              /**< LETIMER0_NS base pointer */
1075 #define IADC0_NS             ((IADC_TypeDef *) IADC0_NS_BASE)                    /**< IADC0_NS base pointer */
1076 #define ACMP0_NS             ((ACMP_TypeDef *) ACMP0_NS_BASE)                    /**< ACMP0_NS base pointer */
1077 #define ACMP1_NS             ((ACMP_TypeDef *) ACMP1_NS_BASE)                    /**< ACMP1_NS base pointer */
1078 #define VDAC0_NS             ((VDAC_TypeDef *) VDAC0_NS_BASE)                    /**< VDAC0_NS base pointer */
1079 #define PCNT0_NS             ((PCNT_TypeDef *) PCNT0_NS_BASE)                    /**< PCNT0_NS base pointer */
1080 #define LESENSE_NS           ((LESENSE_TypeDef *) LESENSE_NS_BASE)               /**< LESENSE_NS base pointer */
1081 #define HFRCOEM23_NS         ((HFRCO_TypeDef *) HFRCOEM23_NS_BASE)               /**< HFRCOEM23_NS base pointer */
1082 #define HFXO0_NS             ((HFXO_TypeDef *) HFXO0_NS_BASE)                    /**< HFXO0_NS base pointer */
1083 #define I2C0_NS              ((I2C_TypeDef *) I2C0_NS_BASE)                      /**< I2C0_NS base pointer */
1084 #define WDOG0_NS             ((WDOG_TypeDef *) WDOG0_NS_BASE)                    /**< WDOG0_NS base pointer */
1085 #define WDOG1_NS             ((WDOG_TypeDef *) WDOG1_NS_BASE)                    /**< WDOG1_NS base pointer */
1086 #define EUSART0_NS           ((EUSART_TypeDef *) EUSART0_NS_BASE)                /**< EUSART0_NS base pointer */
1087 #define SEMAILBOX_NS_HOST    ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_NS_HOST_BASE) /**< SEMAILBOX_NS_HOST base pointer */
1088 #define SCRATCHPAD           ((SCRATCHPAD_TypeDef *) SCRATCHPAD_BASE)            /**< SCRATCHPAD base pointer */
1089 #define EMU                  ((EMU_TypeDef *) EMU_BASE)                          /**< EMU base pointer */
1090 #define CMU                  ((CMU_TypeDef *) CMU_BASE)                          /**< CMU base pointer */
1091 #define HFRCO0               ((HFRCO_TypeDef *) HFRCO0_BASE)                     /**< HFRCO0 base pointer */
1092 #define FSRCO                ((FSRCO_TypeDef *) FSRCO_BASE)                      /**< FSRCO base pointer */
1093 #define DPLL0                ((DPLL_TypeDef *) DPLL0_BASE)                       /**< DPLL0 base pointer */
1094 #define LFXO                 ((LFXO_TypeDef *) LFXO_BASE)                        /**< LFXO base pointer */
1095 #define LFRCO                ((LFRCO_TypeDef *) LFRCO_BASE)                      /**< LFRCO base pointer */
1096 #define ULFRCO               ((ULFRCO_TypeDef *) ULFRCO_BASE)                    /**< ULFRCO base pointer */
1097 #define MSC                  ((MSC_TypeDef *) MSC_BASE)                          /**< MSC base pointer */
1098 #define ICACHE0              ((ICACHE_TypeDef *) ICACHE0_BASE)                   /**< ICACHE0 base pointer */
1099 #define PRS                  ((PRS_TypeDef *) PRS_BASE)                          /**< PRS base pointer */
1100 #define GPIO                 ((GPIO_TypeDef *) GPIO_BASE)                        /**< GPIO base pointer */
1101 #define LDMA                 ((LDMA_TypeDef *) LDMA_BASE)                        /**< LDMA base pointer */
1102 #define LDMAXBAR             ((LDMAXBAR_TypeDef *) LDMAXBAR_BASE)                /**< LDMAXBAR base pointer */
1103 #define TIMER0               ((TIMER_TypeDef *) TIMER0_BASE)                     /**< TIMER0 base pointer */
1104 #define TIMER1               ((TIMER_TypeDef *) TIMER1_BASE)                     /**< TIMER1 base pointer */
1105 #define TIMER2               ((TIMER_TypeDef *) TIMER2_BASE)                     /**< TIMER2 base pointer */
1106 #define TIMER3               ((TIMER_TypeDef *) TIMER3_BASE)                     /**< TIMER3 base pointer */
1107 #define TIMER4               ((TIMER_TypeDef *) TIMER4_BASE)                     /**< TIMER4 base pointer */
1108 #define USART0               ((USART_TypeDef *) USART0_BASE)                     /**< USART0 base pointer */
1109 #define BURTC                ((BURTC_TypeDef *) BURTC_BASE)                      /**< BURTC base pointer */
1110 #define I2C1                 ((I2C_TypeDef *) I2C1_BASE)                         /**< I2C1 base pointer */
1111 #define SYSCFG_CFGNS         ((SYSCFG_CFGNS_TypeDef *) SYSCFG_CFGNS_BASE)        /**< SYSCFG_CFGNS base pointer */
1112 #define SYSCFG               ((SYSCFG_TypeDef *) SYSCFG_BASE)                    /**< SYSCFG base pointer */
1113 #define BURAM                ((BURAM_TypeDef *) BURAM_BASE)                      /**< BURAM base pointer */
1114 #define GPCRC                ((GPCRC_TypeDef *) GPCRC_BASE)                      /**< GPCRC base pointer */
1115 #define DCDC                 ((DCDC_TypeDef *) DCDC_BASE)                        /**< DCDC base pointer */
1116 #define HOSTMAILBOX          ((MAILBOX_TypeDef *) HOSTMAILBOX_BASE)              /**< HOSTMAILBOX base pointer */
1117 #define EUSART1              ((EUSART_TypeDef *) EUSART1_BASE)                   /**< EUSART1 base pointer */
1118 #define EUSART2              ((EUSART_TypeDef *) EUSART2_BASE)                   /**< EUSART2 base pointer */
1119 #define SYSRTC0              ((SYSRTC_TypeDef *) SYSRTC0_BASE)                   /**< SYSRTC0 base pointer */
1120 #define LCD                  ((LCD_TypeDef *) LCD_BASE)                          /**< LCD base pointer */
1121 #define KEYSCAN              ((KEYSCAN_TypeDef *) KEYSCAN_BASE)                  /**< KEYSCAN base pointer */
1122 #define DMEM                 ((MPAHBRAM_TypeDef *) DMEM_BASE)                    /**< DMEM base pointer */
1123 #define LCDRF                ((LCDRF_TypeDef *) LCDRF_BASE)                      /**< LCDRF base pointer */
1124 #define PFMXPPRF             ((PFMXPPRF_TypeDef *) PFMXPPRF_BASE)                /**< PFMXPPRF base pointer */
1125 #define RADIOAES             ((AES_TypeDef *) RADIOAES_BASE)                     /**< RADIOAES base pointer */
1126 #define SMU                  ((SMU_TypeDef *) SMU_BASE)                          /**< SMU base pointer */
1127 #define SMU_CFGNS            ((SMU_CFGNS_TypeDef *) SMU_CFGNS_BASE)              /**< SMU_CFGNS base pointer */
1128 #define LETIMER0             ((LETIMER_TypeDef *) LETIMER0_BASE)                 /**< LETIMER0 base pointer */
1129 #define IADC0                ((IADC_TypeDef *) IADC0_BASE)                       /**< IADC0 base pointer */
1130 #define ACMP0                ((ACMP_TypeDef *) ACMP0_BASE)                       /**< ACMP0 base pointer */
1131 #define ACMP1                ((ACMP_TypeDef *) ACMP1_BASE)                       /**< ACMP1 base pointer */
1132 #define VDAC0                ((VDAC_TypeDef *) VDAC0_BASE)                       /**< VDAC0 base pointer */
1133 #define PCNT0                ((PCNT_TypeDef *) PCNT0_BASE)                       /**< PCNT0 base pointer */
1134 #define LESENSE              ((LESENSE_TypeDef *) LESENSE_BASE)                  /**< LESENSE base pointer */
1135 #define HFRCOEM23            ((HFRCO_TypeDef *) HFRCOEM23_BASE)                  /**< HFRCOEM23 base pointer */
1136 #define HFXO0                ((HFXO_TypeDef *) HFXO0_BASE)                       /**< HFXO0 base pointer */
1137 #define I2C0                 ((I2C_TypeDef *) I2C0_BASE)                         /**< I2C0 base pointer */
1138 #define WDOG0                ((WDOG_TypeDef *) WDOG0_BASE)                       /**< WDOG0 base pointer */
1139 #define WDOG1                ((WDOG_TypeDef *) WDOG1_BASE)                       /**< WDOG1 base pointer */
1140 #define EUSART0              ((EUSART_TypeDef *) EUSART0_BASE)                   /**< EUSART0 base pointer */
1141 #define SEMAILBOX_HOST       ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_HOST_BASE)    /**< SEMAILBOX_HOST base pointer */
1142 #define DEVINFO              ((DEVINFO_TypeDef *) DEVINFO_BASE)                  /**< DEVINFO base pointer */
1143 /** @} End of group EFR32FG23B020F512IM48_Peripheral_Declaration */
1144 
1145 /**************************************************************************//**
1146  * @defgroup EFR32FG23B020F512IM48_Peripheral_Parameters EFR32FG23B020F512IM48 Peripheral Parameters
1147  * @{
1148  * @brief Device peripheral parameter values
1149  *****************************************************************************/
1150 
1151 /* Common peripheral register block offsets. */
1152 #define PER_REG_BLOCK_SET_OFFSET                0x1000UL    /**< Offset to SET register block */
1153 #define PER_REG_BLOCK_CLR_OFFSET                0x2000UL    /**< Offset to CLEAR register block */
1154 #define PER_REG_BLOCK_TGL_OFFSET                0x3000UL    /**< Offset to TOGGLE register block */
1155 #define MSC_CDA_PRESENT                         0x0UL       /**>  */
1156 #define MSC_FDIO_WIDTH                          0x40UL      /**> None */
1157 #define MSC_FLASHADDRBITS                       0x14UL      /**> None */
1158 #define MSC_FLASHBLOCKADDRBITS                  0x14UL      /**> None */
1159 #define MSC_FLASH_BLOCK_INFO_PCOUNT             0x2UL       /**> None */
1160 #define MSC_FLASH_BLOCK_MAIN_PCOUNT             0x50UL      /**>  */
1161 #define MSC_INFOADDRBITS                        0xEUL       /**> None */
1162 #define MSC_INFOBLOCKADDRBITS                   0xEUL       /**> None */
1163 #define MSC_INFO_PSIZE_BITS                     0xDUL       /**> None */
1164 #define MSC_MAIN_PSIZE_BITS                     0xDUL       /**> None */
1165 #define MSC_REDUNDANCY                          0x2UL       /**> None */
1166 #define MSC_ROOTMAIN_PRESENT                    0x1UL       /**>  */
1167 #define MSC_UD_PRESENT                          0x1UL       /**>  */
1168 #define MSC_YADDRBITS                           0x6UL       /**>  */
1169 #define DMEM_BANK0_SIZE                         0x4000UL    /**> Bank0 size */
1170 #define DMEM_BANK1_SIZE                         0x4000UL    /**> Bank1 size */
1171 #define DMEM_BANK2_SIZE                         0x4000UL    /**> Bank2 size */
1172 #define DMEM_BANK3_SIZE                         0x4000UL    /**> Bank3 size */
1173 #define DMEM_BANK4_SIZE                         0x2000UL    /**> Bank4 size */
1174 #define DMEM_BANK5_SIZE                         0x2000UL    /**> Bank5 size */
1175 #define DMEM_BANK6_SIZE                         0x2000UL    /**> Bank6 size */
1176 #define DMEM_BANK7_SIZE                         0x2000UL    /**> Bank7 size */
1177 #define DMEM_NUM_BANKS                          0x4UL       /**> Number of physical SRAM banks */
1178 #define DMEM_NUM_PORTS                          0x2UL       /**> Number of AHB slave ports */
1179 #define DMEM_NUM_PORTS_IS_2                     0x1UL       /**> Boolean indicating if NUM_PORTS=2 */
1180 #define HFRCO0_EM23ONDEMAND                     0x0UL       /**> EM23 On Demand */
1181 #define HFRCO0_EXCLUDEEM23ONDEMAND              0x1UL       /**> Exclude EM23 On Demand */
1182 #define LFXO_NO_CTUNE                           0x0UL       /**> CTUNE Not Present */
1183 #define LFXO_CTUNE                              0x1UL       /**> CTUNE Present */
1184 #define ICACHE0_AHB_LITE                        0x0UL       /**> AHB Lite */
1185 #define ICACHE0_CACHEABLE_SIZE                  0x80000UL   /**> Cache Size */
1186 #define ICACHE0_CACHEABLE_START                 0x8000000UL /**> Cache Start */
1187 #define ICACHE0_DEFAULT_OFF                     0x0UL       /**> Default off */
1188 #define ICACHE0_FLASH_SIZE                      0x80000UL   /**> Flash size */
1189 #define ICACHE0_FLASH_START                     0x8000000UL /**> Flash start */
1190 #define ICACHE0_LOOPCACHE_MEM_ADDR_BITS         0x3UL       /**> Loopcache Memory Address bits */
1191 #define ICACHE0_LOOPCACHE_STICKINESS_BITS       0x4UL       /**> Loopcache Stickiness bits */
1192 #define ICACHE0_PARITY_BITS                     0x1UL       /**> Use Parity */
1193 #define ICACHE0_PC_BITS                         0x20UL      /**> Performance Counter bits */
1194 #define ICACHE0_PIPE_STAGE                      0x1UL       /**> Pipeline Stage */
1195 #define ICACHE0_RAM_ADDR_BITS                   0x0UL       /**> RAM Address bits */
1196 #define ICACHE0_RAM_DATA_BITS                   0x0UL       /**> RAM Data bits */
1197 #define ICACHE0_SET_BITS                        0x5UL       /**> Set bits */
1198 #define ICACHE0_USE_HREADY_GATING               0x1UL       /**> Use HREADY gating */
1199 #define ICACHE0_USE_IDLE_GATING                 0x1UL       /**> Use IDLE gating */
1200 #define ICACHE0_USE_LOOPCACHE                   0x1UL       /**> Use Loopcache */
1201 #define ICACHE0_WAY_BITS                        0x1UL       /**> Way bits */
1202 #define ICACHE0_WORDS_PER_BLOCK                 0x0UL       /**> Words Per Block */
1203 #define ICACHE0_WPB_BITS                        0x1UL       /**> Words Per Block bits */
1204 #define ICACHE0_WPL_BITS                        0x3UL       /**> Words Per Line bits */
1205 #define PRS_ASYNC_CH_NUM                        0xCUL       /**> None */
1206 #define PRS_PRSSEL_WIDTH                        0x4UL       /**> New Param */
1207 #define PRS_SPRSSEL_WIDTH                       0x2UL       /**> New Param */
1208 #define PRS_SYNC_CH_NUM                         0x4UL       /**> None */
1209 #define GPIO_COMALLOC_WIDTH                     0x4UL       /**> New Param */
1210 #define GPIO_MODE_WIDTH                         0x4UL       /**> Mode Width */
1211 #define GPIO_NUM_EM4_WU                         0xCUL       /**> New Param */
1212 #define GPIO_NUM_EVEN_PA                        0x6UL       /**> Num of even pins port A */
1213 #define GPIO_NUM_EVEN_PB                        0x4UL       /**> Num of even pins port B */
1214 #define GPIO_NUM_EVEN_PC                        0x5UL       /**> Num of even pins port C */
1215 #define GPIO_NUM_EVEN_PD                        0x3UL       /**> Num of even pins port D */
1216 #define GPIO_NUM_EXT_INT                        0xCUL       /**> New Param */
1217 #define GPIO_NUM_EXT_INT_L                      0x8UL       /**> New Param */
1218 #define GPIO_NUM_EXT_INT_U                      0x4UL       /**> New Param */
1219 #define GPIO_NUM_EXT_INT_U_ZERO                 0x0UL       /**> New Param */
1220 #define GPIO_NUM_ODD_PA                         0x5UL       /**> Num of odd pins port A */
1221 #define GPIO_NUM_ODD_PB                         0x3UL       /**> Num of odd pins port B */
1222 #define GPIO_NUM_ODD_PC                         0x5UL       /**> Num of odd pins port C */
1223 #define GPIO_NUM_ODD_PD                         0x3UL       /**> Num of odd pins port D */
1224 #define GPIO_PINSEL_WIDTH                       0x4UL       /**> Route config pin select width */
1225 #define GPIO_PORTSEL_WIDTH                      0x2UL       /**> Route config port select width */
1226 #define GPIO_PORT_A_WIDTH                       0xBUL       /**> Port A Width */
1227 #define GPIO_PORT_A_WIDTH_ZERO                  0x0UL       /**> Port A Width is Zero */
1228 #define GPIO_PORT_A_WL                          0x8UL       /**> New Param */
1229 #define GPIO_PORT_A_WU                          0x3UL       /**> New Param */
1230 #define GPIO_PORT_A_WU_ZERO                     0x0UL       /**> New Param */
1231 #define GPIO_PORT_B_WIDTH                       0x7UL       /**> Port B Width */
1232 #define GPIO_PORT_B_WIDTH_ZERO                  0x0UL       /**> Port B Width is Zero */
1233 #define GPIO_PORT_B_WL                          0x7UL       /**> New Param */
1234 #define GPIO_PORT_B_WU                          0x0UL       /**> New Param */
1235 #define GPIO_PORT_B_WU_ZERO                     0x1UL       /**> New Param */
1236 #define GPIO_PORT_C_WIDTH                       0xAUL       /**> Port C Width */
1237 #define GPIO_PORT_C_WIDTH_ZERO                  0x0UL       /**> Port C Width is Zero */
1238 #define GPIO_PORT_C_WL                          0x8UL       /**> New Param */
1239 #define GPIO_PORT_C_WU                          0x2UL       /**> New Param */
1240 #define GPIO_PORT_C_WU_ZERO                     0x0UL       /**> New Param */
1241 #define GPIO_PORT_D_WIDTH                       0x6UL       /**> Port D Width */
1242 #define GPIO_PORT_D_WIDTH_ZERO                  0x0UL       /**> Port D Width is Zero */
1243 #define GPIO_PORT_D_WL                          0x6UL       /**> New Param */
1244 #define GPIO_PORT_D_WU                          0x0UL       /**> New Param */
1245 #define GPIO_PORT_D_WU_ZERO                     0x1UL       /**> New Param */
1246 #define GPIO_SEGALLOC_WIDTH                     0x14UL      /**> New Param */
1247 #define GPIO_SLEWRATE_WIDTH                     0x3UL       /**> Slew Rate Width Param */
1248 #define LDMA_CH_BITS                            0x5UL       /**> New Param */
1249 #define LDMA_CH_NUM                             0x8UL       /**> New Param */
1250 #define LDMA_FIFO_BITS                          0x5UL       /**> New Param */
1251 #define LDMA_FIFO_DEPTH                         0x10UL      /**> New Param */
1252 #define LDMAXBAR_CH_BITS                        0x5UL       /**> None */
1253 #define LDMAXBAR_CH_NUM                         0x8UL       /**> None */
1254 #define LDMAXBAR_SIGSEL_W                       0x4UL       /**> New Param */
1255 #define LDMAXBAR_SOURCESEL_W                    0x6UL       /**> New Param */
1256 #define TIMER0_CC_NUM                           0x3UL       /**> Number of Compare/Capture Channels */
1257 #define TIMER0_CNTWIDTH                         0x20UL      /**> Counter Width */
1258 #define TIMER0_DTI                              0x1UL       /**> Dead-time insertion enabled */
1259 #define TIMER0_DTI_CC_NUM                       0x3UL       /**> Number of DTI Channels */
1260 #define TIMER0_NO_DTI                           0x0UL       /**>  */
1261 #define TIMER1_CC_NUM                           0x3UL       /**> Number of Compare/Capture Channels */
1262 #define TIMER1_CNTWIDTH                         0x10UL      /**> Counter Width */
1263 #define TIMER1_DTI                              0x1UL       /**> Dead-time insertion enabled */
1264 #define TIMER1_DTI_CC_NUM                       0x3UL       /**> Number of DTI Channels */
1265 #define TIMER1_NO_DTI                           0x0UL       /**>  */
1266 #define TIMER2_CC_NUM                           0x3UL       /**> Number of Compare/Capture Channels */
1267 #define TIMER2_CNTWIDTH                         0x10UL      /**> Counter Width */
1268 #define TIMER2_DTI                              0x1UL       /**> Dead-time insertion enabled */
1269 #define TIMER2_DTI_CC_NUM                       0x3UL       /**> Number of DTI Channels */
1270 #define TIMER2_NO_DTI                           0x0UL       /**>  */
1271 #define TIMER3_CC_NUM                           0x3UL       /**> Number of Compare/Capture Channels */
1272 #define TIMER3_CNTWIDTH                         0x10UL      /**> Counter Width */
1273 #define TIMER3_DTI                              0x1UL       /**> Dead-time insertion enabled */
1274 #define TIMER3_DTI_CC_NUM                       0x3UL       /**> Number of DTI Channels */
1275 #define TIMER3_NO_DTI                           0x0UL       /**>  */
1276 #define TIMER4_CC_NUM                           0x3UL       /**> Number of Compare/Capture Channels */
1277 #define TIMER4_CNTWIDTH                         0x10UL      /**> Counter Width */
1278 #define TIMER4_DTI                              0x1UL       /**> Dead-time insertion enabled */
1279 #define TIMER4_DTI_CC_NUM                       0x3UL       /**> Number of DTI Channels */
1280 #define TIMER4_NO_DTI                           0x0UL       /**>  */
1281 #define USART0_AUTOTX_REG                       0x1UL       /**> None */
1282 #define USART0_AUTOTX_REG_B                     0x0UL       /**> None */
1283 #define USART0_AUTOTX_TRIGGER                   0x1UL       /**> None */
1284 #define USART0_AUTOTX_TRIGGER_B                 0x0UL       /**> New Param */
1285 #define USART0_CLK_PRS                          0x1UL       /**> None */
1286 #define USART0_CLK_PRS_B                        0x0UL       /**> New Param */
1287 #define USART0_FLOW_CONTROL                     0x1UL       /**> None */
1288 #define USART0_FLOW_CONTROL_B                   0x0UL       /**> New Param */
1289 #define USART0_I2S                              0x1UL       /**> None */
1290 #define USART0_I2S_B                            0x0UL       /**> New Param */
1291 #define USART0_IRDA_AVAILABLE                   0x1UL       /**> None */
1292 #define USART0_IRDA_AVAILABLE_B                 0x0UL       /**> New Param */
1293 #define USART0_MVDIS_FUNC                       0x1UL       /**> None */
1294 #define USART0_MVDIS_FUNC_B                     0x0UL       /**> New Param */
1295 #define USART0_RX_PRS                           0x1UL       /**> None */
1296 #define USART0_RX_PRS_B                         0x0UL       /**> New Param */
1297 #define USART0_SC_AVAILABLE                     0x1UL       /**> None */
1298 #define USART0_SC_AVAILABLE_B                   0x0UL       /**> New Param */
1299 #define USART0_SYNC_AVAILABLE                   0x1UL       /**> None */
1300 #define USART0_SYNC_AVAILABLE_B                 0x0UL       /**> New Param */
1301 #define USART0_SYNC_LATE_SAMPLE                 0x1UL       /**> None */
1302 #define USART0_SYNC_LATE_SAMPLE_B               0x0UL       /**> New Param */
1303 #define USART0_TIMER                            0x1UL       /**> New Param */
1304 #define USART0_TIMER_B                          0x0UL       /**> New Param */
1305 #define BURTC_CNTWIDTH                          0x20UL      /**> None */
1306 #define BURTC_PRECNT_WIDTH                      0xFUL       /**>  */
1307 #define I2C1_DELAY                              0x7D0UL     /**> Delay cell selection */
1308 #define I2C1_DELAY_CHAIN_NUM                    0x2UL       /**> Number of delay chain */
1309 #define SYSCFG_CHIP_FAMILY                      0x38UL      /**> CHIP Family */
1310 #define SYSCFG_DEMODRAM_INST_COUNT              0x1UL       /**>  */
1311 #define SYSCFG_FRCRAM_INST_COUNT                0x1UL       /**>  */
1312 #define SYSCFG_SEQRAM_INST_COUNT                0x2UL       /**> None */
1313 #define SYSCFG_SWINT_NUM                        0x4UL       /**> Software interupts */
1314 #define DCDC_DRVSPEED_WIDTH                     0x2UL       /**> Drive Speed bitfield width */
1315 #define DCDC_IPKVAL_WIDTH                       0x4UL       /**> Peak Current Setting bitfield Width */
1316 #define DCDC_VCMPIBIAS_WIDTH                    0x2UL       /**> VCMP ibias bitfield width */
1317 #define HOSTMAILBOX_NUM_MSGPTRS                 0x4UL       /**>  */
1318 #define EUSART1_EM2_CAPABLE                     0x0UL       /**> EM2 Capable instance */
1319 #define EUSART1_NOT_EM2_CAPABLE                 0x1UL       /**> Not EM2 Capable instance */
1320 #define EUSART2_EM2_CAPABLE                     0x0UL       /**> EM2 Capable instance */
1321 #define EUSART2_NOT_EM2_CAPABLE                 0x1UL       /**> Not EM2 Capable instance */
1322 #define SYSRTC0_GROUP0_ALTIRQDIS                0x1UL       /**> Group 0 Alternate IRQ disable */
1323 #define SYSRTC0_GROUP0_CAPDIS                   0x0UL       /**> Group 0 Capture disable */
1324 #define SYSRTC0_GROUP0_CMP1DIS                  0x0UL       /**> Group 0 Compare1 disable */
1325 #define SYSRTC0_GROUP0_DIS                      0x0UL       /**> Group 0 Disable */
1326 #define SYSRTC0_GROUP0_ROOTDIS                  0x1UL       /**> Group 0 ROOT disable */
1327 #define SYSRTC0_GROUP1_ALTIRQDIS                0x0UL       /**> Group 1 Alternate IRQ disable */
1328 #define SYSRTC0_GROUP1_CAPDIS                   0x0UL       /**> Group 1 Capture disable */
1329 #define SYSRTC0_GROUP1_CMP1DIS                  0x0UL       /**> Group 1 Compare1 disable */
1330 #define SYSRTC0_GROUP1_DIS                      0x0UL       /**> Group 1 Disable */
1331 #define SYSRTC0_GROUP1_ROOTDIS                  0x1UL       /**> Group 1 ROOT disable */
1332 #define SYSRTC0_GROUP2_ALTIRQDIS                0x1UL       /**> Group 2 Alternate IRQ disable */
1333 #define SYSRTC0_GROUP2_CAPDIS                   0x1UL       /**> Group 2 Capture disable */
1334 #define SYSRTC0_GROUP2_CMP1DIS                  0x1UL       /**> Group 2 Compare1 disable */
1335 #define SYSRTC0_GROUP2_DIS                      0x0UL       /**> Group 2 Disable */
1336 #define SYSRTC0_GROUP2_ROOTDIS                  0x0UL       /**> Group 2 ROOT disable */
1337 #define SYSRTC0_GROUP3_ALTIRQDIS                0x1UL       /**> Group 3 Alternate IRQ disable */
1338 #define SYSRTC0_GROUP3_CAPDIS                   0x1UL       /**> Group 3 Capture disable */
1339 #define SYSRTC0_GROUP3_CMP1DIS                  0x1UL       /**> Group 3 Compare1 disable */
1340 #define SYSRTC0_GROUP3_DIS                      0x1UL       /**> Group 3 Disable */
1341 #define SYSRTC0_GROUP3_ROOTDIS                  0x1UL       /**> Group 3 ROOT disable */
1342 #define SYSRTC0_GROUP4_ALTIRQDIS                0x1UL       /**> Group 4 Alternate IRQ disable */
1343 #define SYSRTC0_GROUP4_CAPDIS                   0x1UL       /**> Group 4 Capture disable */
1344 #define SYSRTC0_GROUP4_CMP1DIS                  0x1UL       /**> Group 4 Compare1 disable */
1345 #define SYSRTC0_GROUP4_DIS                      0x1UL       /**> Group 4 Disable */
1346 #define SYSRTC0_GROUP4_ROOTDIS                  0x1UL       /**> Group 4 ROOT disable */
1347 #define SYSRTC0_GROUP5_ALTIRQDIS                0x1UL       /**> Group 5 Alternate IRQ disable */
1348 #define SYSRTC0_GROUP5_CAPDIS                   0x1UL       /**> Group 5 Capture disable */
1349 #define SYSRTC0_GROUP5_CMP1DIS                  0x1UL       /**> Group 5 Compare1 disable */
1350 #define SYSRTC0_GROUP5_DIS                      0x1UL       /**> Group 5 Disable */
1351 #define SYSRTC0_GROUP5_ROOTDIS                  0x1UL       /**> Group 5 ROOT disable */
1352 #define SYSRTC0_GROUP6_ALTIRQDIS                0x1UL       /**> Group 6 Alternate IRQ disable */
1353 #define SYSRTC0_GROUP6_CAPDIS                   0x1UL       /**> Group 6 Capture disable */
1354 #define SYSRTC0_GROUP6_CMP1DIS                  0x1UL       /**> Group 6 Compare1 disable */
1355 #define SYSRTC0_GROUP6_DIS                      0x1UL       /**> Group 6 Disable */
1356 #define SYSRTC0_GROUP6_ROOTDIS                  0x1UL       /**> Group 6 ROOT disable */
1357 #define SYSRTC0_GROUP7_ALTIRQDIS                0x1UL       /**> Group 7 Alternate IRQ disable */
1358 #define SYSRTC0_GROUP7_CAPDIS                   0x1UL       /**> Group 7 Capture disable */
1359 #define SYSRTC0_GROUP7_CMP1DIS                  0x1UL       /**> Group 7 Compare1 disable */
1360 #define SYSRTC0_GROUP7_DIS                      0x1UL       /**> Group 7 Disable */
1361 #define SYSRTC0_GROUP7_ROOTDIS                  0x1UL       /**> Group 7 ROOT disable */
1362 #define SYSRTC0_ROOTDIS                         0x0UL       /**> ROOT disable */
1363 #define LCD_COM_NUM                             0x4UL       /**> None */
1364 #define LCD_NO_ANIM_LOCS                        0x1UL       /**> None */
1365 #define LCD_NO_BANKED_SEG                       0x1UL       /**>  */
1366 #define LCD_NO_DSC                              0x0UL       /**> None */
1367 #define LCD_NO_EXTOSC                           0x0UL       /**> None */
1368 #define LCD_NO_UPPER_SEGMENTS                   0x1UL       /**>  */
1369 #define LCD_OCTAPLEX                            0x0UL       /**> None */
1370 #define LCD_SEGASCOM_NUM                        0x4UL       /**> None */
1371 #define LCD_SEG_NUM                             0x14UL      /**> None */
1372 #define LCD_SEL_WIDTH                           0x3UL       /**> None */
1373 #define KEYSCAN_COLNUM                          0x8UL       /**> COLNUM */
1374 #define KEYSCAN_COLWIDTH                        0x3UL       /**> COLWIDTH */
1375 #define KEYSCAN_ROWNUM                          0x6UL       /**> ROWNUM */
1376 #define PFMXPPRF_COUNT_WIDTH                    0x9UL       /**> Width of counters for pulse-pairing */
1377 #define RADIOAES_SIDECHANNEL_COUNTERMEASURES    0x1UL       /**> Enable sidechannel counter measures */
1378 #define SMU_NUM_BMPUS                           0x7UL       /**> Number of BMPUs */
1379 #define SMU_NUM_PPU_PERIPHS                     0x39UL      /**> Number of PPU Peripherals */
1380 #define SMU_NUM_PPU_PERIPHS_MOD_32              0x19UL      /**> Number of PPU Peripherals (mod 32) */
1381 #define SMU_NUM_PPU_PERIPHS_SUB_32              0x19UL      /**> Number of PPU peripherals minus 32 */
1382 #define SMU_PERIPHID_BITS                       0x8UL       /**> Bits used for Peripheral ID */
1383 #define LETIMER0_CNT_WIDTH                      0x18UL      /**> Count Width */
1384 #define IADC0_CONFIGNUM                         0x2UL       /**> CONFIG */
1385 #define IADC0_FULLRANGEUNIPOLAR                 0x0UL       /**> FULLRANGEUNIPOLAR */
1386 #define IADC0_SCANBYTES                         0x1UL       /**> SCANBYTES */
1387 #define IADC0_ENTRIES                           0x10UL      /**> ENTRIES */
1388 #define ACMP0_DAC_INPUT                         0x1UL       /**> None */
1389 #define ACMP0_EXT_OVR_IF                        0x1UL       /**> None */
1390 #define ACMP1_DAC_INPUT                         0x1UL       /**> None */
1391 #define ACMP1_EXT_OVR_IF                        0x1UL       /**> None */
1392 #define VDAC0_ALT_WIDTH                         0x6UL       /**> VOUT_AUX Out Width */
1393 #define VDAC0_CH1_TRIG_LESENSE                  0x0UL       /**> CH1 Trig Source = LESENSE */
1394 #define VDAC0_FIFO_DEPTH                        0x4UL       /**> WFIFO Depth */
1395 #define VDAC0_INT_PRESC_WIDTH                   0x7UL       /**> Internal Prescaler Width */
1396 #define VDAC0_RESOLUTION                        0xCUL       /**> DAC Resolution */
1397 #define PCNT0_PCNT_WIDTH                        0x10UL      /**> None */
1398 #define LESENSE_CHANNEL_NUM                     0x10UL      /**> None */
1399 #define LESENSE_RIPCNT_WIDTH                    0x10UL      /**> None */
1400 #define LESENSE_STATE_NUM                       0x20UL      /**> None */
1401 #define HFRCOEM23_EM23ONDEMAND                  0x1UL       /**> EM23 On Demand */
1402 #define HFRCOEM23_EXCLUDEEM23ONDEMAND           0x0UL       /**> Exclude EM23 On Demand */
1403 #define HFXO0_BUFOUT                            0x1UL       /**> BUFOUT */
1404 #define HFXO0_EXCLUDEBUFOUT                     0x0UL       /**> Exclude BUFOUT */
1405 #define I2C0_DELAY                              0x3E8UL     /**> Delay cell selection */
1406 #define I2C0_DELAY_CHAIN_NUM                    0x2UL       /**> Number of delay chain */
1407 #define WDOG0_PCNUM                             0x2UL       /**> None */
1408 #define WDOG1_PCNUM                             0x2UL       /**> None */
1409 #define EUSART0_EM2_CAPABLE                     0x1UL       /**> EM2 Capable instance */
1410 #define EUSART0_NOT_EM2_CAPABLE                 0x0UL       /**> Not EM2 Capable instance */
1411 #define RDMEM_FRC_BANK0_SIZE                    0x1000UL    /**> FRC_RAM_BANK0_SIZE */
1412 #define RDMEM_FRC_BANK1_SIZE                    0x0UL       /**> FRC_RAM_BANK1_SIZE */
1413 #define RDMEM_FRC_BANK2_SIZE                    0x0UL       /**> FRC_RAM_BANK2_SIZE */
1414 #define RDMEM_FRC_BANK3_SIZE                    0x0UL       /**> FRC_RAM_BANK3_SIZE */
1415 #define RDMEM_FRC_BANK4_SIZE                    0x0UL       /**> FRC_RAM_BANK4_SIZE */
1416 #define RDMEM_FRC_BANK5_SIZE                    0x0UL       /**> FRC_RAM_BANK5_SIZE */
1417 #define RDMEM_FRC_BANK6_SIZE                    0x0UL       /**> FRC_RAM_BANK6_SIZE */
1418 #define RDMEM_FRC_BANK7_SIZE                    0x0UL       /**> FRC_RAM_BANK7_SIZE */
1419 #define RDMEM_FRC_NUM_BANK                      0x1UL       /**> FRC_NUM_BANK */
1420 #define RDMEM_FRC_RAMADDRBITS                   0xCUL       /**> FRC RAM ADDRBITS */
1421 #define RDMEM_FRC_RAMADDRMINBITS                0xCUL       /**> FRC RAM address bits for one bank */
1422 #define RDMEM_FRC_RAMECCADDR_WIDTH              0x20UL      /**> FRC RAM ECC Address width */
1423 #define RDMEM_FRC_RAM_BWE_WIDTH                 0x27UL      /**> FRCRAM BWE width */
1424 #define RDMEM_FRC_RAM_DATA_WIDTH                0x27UL      /**> FRC_RAM_DATA_WIDTH */
1425 #define RDMEM_FRC_RAM_ECC_EN                    0x1UL       /**> FRC RAM ECCEN */
1426 #define RDMEM_FRC_RAM_TOTAL_SIZE                0x1000UL    /**> FRC_RAM_TOTAL_SIZE */
1427 #define RDMEM_SEQ_BANK0_SIZE                    0x2000UL    /**> SEQ_RAM_BANK0_SIZE */
1428 #define RDMEM_SEQ_BANK1_SIZE                    0x2000UL    /**> SEQ_RAM_BANK1_SIZE */
1429 #define RDMEM_SEQ_BANK2_SIZE                    0x0UL       /**> SEQ_RAM_BANK2_SIZE */
1430 #define RDMEM_SEQ_BANK3_SIZE                    0x0UL       /**> SEQ_RAM_BANK3_SIZE */
1431 #define RDMEM_SEQ_BANK4_SIZE                    0x0UL       /**> SEQ_RAM_BANK4_SIZE */
1432 #define RDMEM_SEQ_BANK5_SIZE                    0x0UL       /**> SEQ_RAM_BANK5_SIZE */
1433 #define RDMEM_SEQ_BANK6_SIZE                    0x0UL       /**> SEQ_RAM_BANK6_SIZE */
1434 #define RDMEM_SEQ_BANK7_SIZE                    0x0UL       /**> SEQ_RAM_BANK7_SIZE */
1435 #define RDMEM_SEQ_NUM_BANK                      0x2UL       /**> SEQ_NUM_BANK */
1436 #define RDMEM_SEQ_RAMADDRBITS                   0xEUL       /**> SEQ RAM ADDRBITS */
1437 #define RDMEM_SEQ_RAMADDRMINBITS                0xDUL       /**> SEQ RAM address bits for one bank */
1438 #define RDMEM_SEQ_RAMECCADDR_WIDTH              0x20UL      /**> SEQ RAM ECC Address width */
1439 #define RDMEM_SEQ_RAM_BWE_WIDTH                 0x27UL      /**> SEQRAM BWE width */
1440 #define RDMEM_SEQ_RAM_DATA_WIDTH                0x27UL      /**> SEQ_RAM_DATA_WIDTH */
1441 #define RDMEM_SEQ_RAM_ECC_EN                    0x1UL       /**> SEQ RAM ECCEN */
1442 #define RDMEM_SEQ_RAM_TOTAL_SIZE                0x4000UL    /**> SEQ_RAM_TOTAL_SIZE */
1443 
1444 /* Instance macros for ACMP */
1445 #define ACMP(n)                      (((n) == 0) ? ACMP0   \
1446                                       : ((n) == 1) ? ACMP1 \
1447                                       : 0x0UL)
1448 #define ACMP_NUM(ref)                (((ref) == ACMP0) ? 0   \
1449                                       : ((ref) == ACMP1) ? 1 \
1450                                       : -1)
1451 #define ACMP_DAC_INPUT(n)            (((n) == 0) ? ACMP0_DAC_INPUT   \
1452                                       : ((n) == 1) ? ACMP1_DAC_INPUT \
1453                                       : 0x0UL)
1454 #define ACMP_EXT_OVR_IF(n)           (((n) == 0) ? ACMP0_EXT_OVR_IF   \
1455                                       : ((n) == 1) ? ACMP1_EXT_OVR_IF \
1456                                       : 0x0UL)
1457 
1458 /* Instance macros for EUSART */
1459 #define EUSART(n)                    (((n) == 0) ? EUSART0   \
1460                                       : ((n) == 1) ? EUSART1 \
1461                                       : ((n) == 2) ? EUSART2 \
1462                                       : 0x0UL)
1463 #define EUSART_NUM(ref)              (((ref) == EUSART0) ? 0   \
1464                                       : ((ref) == EUSART1) ? 1 \
1465                                       : ((ref) == EUSART2) ? 2 \
1466                                       : -1)
1467 #define EUSART_EM2_CAPABLE(n)        (((n) == 0) ? EUSART0_EM2_CAPABLE   \
1468                                       : ((n) == 1) ? EUSART1_EM2_CAPABLE \
1469                                       : ((n) == 2) ? EUSART2_EM2_CAPABLE \
1470                                       : 0x0UL)
1471 #define EUSART_NOT_EM2_CAPABLE(n)    (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE   \
1472                                       : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
1473                                       : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
1474                                       : 0x0UL)
1475 
1476 /* Instance macros for I2C */
1477 #define I2C(n)                       (((n) == 0) ? I2C0   \
1478                                       : ((n) == 1) ? I2C1 \
1479                                       : 0x0UL)
1480 #define I2C_NUM(ref)                 (((ref) == I2C0) ? 0   \
1481                                       : ((ref) == I2C1) ? 1 \
1482                                       : -1)
1483 #define I2C_DELAY(n)                 (((n) == 0) ? I2C0_DELAY   \
1484                                       : ((n) == 1) ? I2C1_DELAY \
1485                                       : 0x0UL)
1486 #define I2C_DELAY_CHAIN_NUM(n)       (((n) == 0) ? I2C0_DELAY_CHAIN_NUM   \
1487                                       : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
1488                                       : 0x0UL)
1489 
1490 /* Instance macros for TIMER */
1491 #define TIMER(n)                     (((n) == 0) ? TIMER0   \
1492                                       : ((n) == 1) ? TIMER1 \
1493                                       : ((n) == 2) ? TIMER2 \
1494                                       : ((n) == 3) ? TIMER3 \
1495                                       : ((n) == 4) ? TIMER4 \
1496                                       : 0x0UL)
1497 #define TIMER_NUM(ref)               (((ref) == TIMER0) ? 0   \
1498                                       : ((ref) == TIMER1) ? 1 \
1499                                       : ((ref) == TIMER2) ? 2 \
1500                                       : ((ref) == TIMER3) ? 3 \
1501                                       : ((ref) == TIMER4) ? 4 \
1502                                       : -1)
1503 #define TIMER_CC_NUM(n)              (((n) == 0) ? TIMER0_CC_NUM   \
1504                                       : ((n) == 1) ? TIMER1_CC_NUM \
1505                                       : ((n) == 2) ? TIMER2_CC_NUM \
1506                                       : ((n) == 3) ? TIMER3_CC_NUM \
1507                                       : ((n) == 4) ? TIMER4_CC_NUM \
1508                                       : 0x0UL)
1509 #define TIMER_CNTWIDTH(n)            (((n) == 0) ? TIMER0_CNTWIDTH   \
1510                                       : ((n) == 1) ? TIMER1_CNTWIDTH \
1511                                       : ((n) == 2) ? TIMER2_CNTWIDTH \
1512                                       : ((n) == 3) ? TIMER3_CNTWIDTH \
1513                                       : ((n) == 4) ? TIMER4_CNTWIDTH \
1514                                       : 0x0UL)
1515 #define TIMER_DTI(n)                 (((n) == 0) ? TIMER0_DTI   \
1516                                       : ((n) == 1) ? TIMER1_DTI \
1517                                       : ((n) == 2) ? TIMER2_DTI \
1518                                       : ((n) == 3) ? TIMER3_DTI \
1519                                       : ((n) == 4) ? TIMER4_DTI \
1520                                       : 0x0UL)
1521 #define TIMER_DTI_CC_NUM(n)          (((n) == 0) ? TIMER0_DTI_CC_NUM   \
1522                                       : ((n) == 1) ? TIMER1_DTI_CC_NUM \
1523                                       : ((n) == 2) ? TIMER2_DTI_CC_NUM \
1524                                       : ((n) == 3) ? TIMER3_DTI_CC_NUM \
1525                                       : ((n) == 4) ? TIMER4_DTI_CC_NUM \
1526                                       : 0x0UL)
1527 #define TIMER_NO_DTI(n)              (((n) == 0) ? TIMER0_NO_DTI   \
1528                                       : ((n) == 1) ? TIMER1_NO_DTI \
1529                                       : ((n) == 2) ? TIMER2_NO_DTI \
1530                                       : ((n) == 3) ? TIMER3_NO_DTI \
1531                                       : ((n) == 4) ? TIMER4_NO_DTI \
1532                                       : 0x0UL)
1533 
1534 /* Instance macros for WDOG */
1535 #define WDOG(n)                      (((n) == 0) ? WDOG0   \
1536                                       : ((n) == 1) ? WDOG1 \
1537                                       : 0x0UL)
1538 #define WDOG_NUM(ref)                (((ref) == WDOG0) ? 0   \
1539                                       : ((ref) == WDOG1) ? 1 \
1540                                       : -1)
1541 #define WDOG_PCNUM(n)                (((n) == 0) ? WDOG0_PCNUM   \
1542                                       : ((n) == 1) ? WDOG1_PCNUM \
1543                                       : 0x0UL)
1544 
1545 /** @} End of group EFR32FG23B020F512IM48_Peripheral_Parameters  */
1546 
1547 /** @} End of group EFR32FG23B020F512IM48 */
1548 /** @}} End of group Parts */
1549 
1550 #ifdef __cplusplus
1551 }
1552 #endif
1553 #endif
1554