1 //------------------------------------------------------------------------------ 2 // Copyright 2012 (c) Silicon Laboratories Inc. 3 // 4 // SPDX-License-Identifier: Zlib 5 // 6 // This siHAL software is provided 'as-is', without any express or implied 7 // warranty. In no event will the authors be held liable for any damages 8 // arising from the use of this software. 9 // 10 // Permission is granted to anyone to use this software for any purpose, 11 // including commercial applications, and to alter it and redistribute it 12 // freely, subject to the following restrictions: 13 // 14 // 1. The origin of this software must not be misrepresented; you must not 15 // claim that you wrote the original software. If you use this software 16 // in a product, an acknowledgment in the product documentation would be 17 // appreciated but is not required. 18 // 2. Altered source versions must be plainly marked as such, and must not be 19 // misrepresented as being the original software. 20 // 3. This notice may not be removed or altered from any source distribution. 21 //------------------------------------------------------------------------------ 22 // 23 // This file applies to the SIM3U1XX_LOCK_A module 24 // 25 // Script: 0.57 26 // Version: 1 27 28 #ifndef __SI32_LOCK_A_REGISTERS_H__ 29 #define __SI32_LOCK_A_REGISTERS_H__ 30 31 #include <stdint.h> 32 33 #ifdef __cplusplus 34 extern "C" { 35 #endif 36 37 struct SI32_LOCK_A_KEY_Struct 38 { 39 union 40 { 41 struct 42 { 43 // Peripheral Lock Mask Key 44 volatile uint8_t KEY_BITS; 45 uint32_t reserved0: 24; 46 }; 47 volatile uint32_t U32; 48 }; 49 }; 50 51 #define SI32_LOCK_A_KEY_KEY_MASK 0x000000FF 52 #define SI32_LOCK_A_KEY_KEY_SHIFT 0 53 // PERIPHLOCK registers are locked and no valid values have been written to KEY. 54 #define SI32_LOCK_A_KEY_KEY_LOCKED_VALUE 0 55 #define SI32_LOCK_A_KEY_KEY_LOCKED_U32 \ 56 (SI32_LOCK_A_KEY_KEY_LOCKED_VALUE << SI32_LOCK_A_KEY_KEY_SHIFT) 57 // PERIPHLOCK registers are locked and the first valid value (0xA5) has been 58 // written to KEY. 59 #define SI32_LOCK_A_KEY_KEY_INTERMEDIATE_VALUE 1 60 #define SI32_LOCK_A_KEY_KEY_INTERMEDIATE_U32 \ 61 (SI32_LOCK_A_KEY_KEY_INTERMEDIATE_VALUE << SI32_LOCK_A_KEY_KEY_SHIFT) 62 // PERIPHLOCK registers are unlocked. Any subsequent writes to KEY will lock the 63 // interface. 64 #define SI32_LOCK_A_KEY_KEY_UNLOCKED_VALUE 2 65 #define SI32_LOCK_A_KEY_KEY_UNLOCKED_U32 \ 66 (SI32_LOCK_A_KEY_KEY_UNLOCKED_VALUE << SI32_LOCK_A_KEY_KEY_SHIFT) 67 68 69 70 struct SI32_LOCK_A_PERIPHLOCK0_Struct 71 { 72 union 73 { 74 struct 75 { 76 // USART/UART Module Lock Enable 77 volatile uint32_t USARTL: 1; 78 // SPI Module Lock Enable 79 volatile uint32_t SPIL: 1; 80 // I2C Module Lock Enable 81 volatile uint32_t I2CL: 1; 82 // PCA Module Lock Enable 83 volatile uint32_t PCAL: 1; 84 // Timer Module Lock Enable 85 volatile uint32_t TIMERL: 1; 86 // USB Module Lock Enable 87 volatile uint32_t USBL: 1; 88 // SARADC Module Lock Enable 89 volatile uint32_t SARADCL: 1; 90 // SSG Module Lock Enable 91 volatile uint32_t SSGL: 1; 92 // Comparator Module Lock Enable 93 volatile uint32_t CMPL: 1; 94 // Capacitive Sensing Module Lock Enable 95 volatile uint32_t CSL: 1; 96 // EMIF Module Lock Enable 97 volatile uint32_t EMIFL: 1; 98 // AES Module Lock Enable 99 volatile uint32_t AESL: 1; 100 // CRC Module Lock Enable 101 volatile uint32_t CRCL: 1; 102 // RTC Module Lock Enable 103 volatile uint32_t RTCL: 1; 104 // Clock Control and Reset Sources Lock Enable 105 volatile uint32_t CLKRSTL: 1; 106 // Voltage Supply Monitor Module Lock Enable 107 volatile uint32_t VMONL: 1; 108 // IDAC Module Lock Enable 109 volatile uint32_t IDACL: 1; 110 // DMA Controller Module Lock Enable 111 volatile uint32_t DMACTRLL: 1; 112 // DMA Crossbar Module Lock Enable 113 volatile uint32_t DMAXBARL: 1; 114 // Low Power Timer Module Lock Enable 115 volatile uint32_t LPTL: 1; 116 // Voltage Reference Module Lock Enable 117 volatile uint32_t VREFL: 1; 118 // I2S Module Lock Enable 119 volatile uint32_t I2SL: 1; 120 // PLL Module Lock Enable 121 volatile uint32_t PLLL: 1; 122 // External Oscillator Module Lock Enable 123 volatile uint32_t EXTOSCL: 1; 124 // Voltage Regulator Module Lock Enable 125 volatile uint32_t VREGL: 1; 126 // Low Power Oscillator Lock Enable 127 volatile uint32_t LPOSCL: 1; 128 // External Regulator Module Lock Enable 129 volatile uint32_t EVREGL: 1; 130 uint32_t reserved0: 1; 131 // IVC Module Lock Enable 132 volatile uint32_t IVCL: 1; 133 uint32_t reserved1: 3; 134 }; 135 volatile uint32_t U32; 136 }; 137 }; 138 139 #define SI32_LOCK_A_PERIPHLOCK0_USARTL_MASK 0x00000001 140 #define SI32_LOCK_A_PERIPHLOCK0_USARTL_SHIFT 0 141 // Unlock the USART0, USART1, UART0, and UART1 Module registers. 142 #define SI32_LOCK_A_PERIPHLOCK0_USARTL_UNLOCKED_VALUE 0 143 #define SI32_LOCK_A_PERIPHLOCK0_USARTL_UNLOCKED_U32 \ 144 (SI32_LOCK_A_PERIPHLOCK0_USARTL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_USARTL_SHIFT) 145 // Lock the USART0, USART1, UART0, and UART1 Module registers (bits can still be 146 // read). 147 #define SI32_LOCK_A_PERIPHLOCK0_USARTL_LOCKED_VALUE 1 148 #define SI32_LOCK_A_PERIPHLOCK0_USARTL_LOCKED_U32 \ 149 (SI32_LOCK_A_PERIPHLOCK0_USARTL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_USARTL_SHIFT) 150 151 #define SI32_LOCK_A_PERIPHLOCK0_SPIL_MASK 0x00000002 152 #define SI32_LOCK_A_PERIPHLOCK0_SPIL_SHIFT 1 153 // Unlock the SPI0, SPI1, and SPI2 Module registers. 154 #define SI32_LOCK_A_PERIPHLOCK0_SPIL_UNLOCKED_VALUE 0 155 #define SI32_LOCK_A_PERIPHLOCK0_SPIL_UNLOCKED_U32 \ 156 (SI32_LOCK_A_PERIPHLOCK0_SPIL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_SPIL_SHIFT) 157 // Lock the SPI0, SPI1, and SPI2 Module registers (bits can still be read). 158 #define SI32_LOCK_A_PERIPHLOCK0_SPIL_LOCKED_VALUE 1 159 #define SI32_LOCK_A_PERIPHLOCK0_SPIL_LOCKED_U32 \ 160 (SI32_LOCK_A_PERIPHLOCK0_SPIL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_SPIL_SHIFT) 161 162 #define SI32_LOCK_A_PERIPHLOCK0_I2CL_MASK 0x00000004 163 #define SI32_LOCK_A_PERIPHLOCK0_I2CL_SHIFT 2 164 // Unlock the I2C0 and I2C1 Module registers. 165 #define SI32_LOCK_A_PERIPHLOCK0_I2CL_UNLOCKED_VALUE 0 166 #define SI32_LOCK_A_PERIPHLOCK0_I2CL_UNLOCKED_U32 \ 167 (SI32_LOCK_A_PERIPHLOCK0_I2CL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_I2CL_SHIFT) 168 // Lock the I2C0 and I2C1 Module registers (bits can still be read). 169 #define SI32_LOCK_A_PERIPHLOCK0_I2CL_LOCKED_VALUE 1 170 #define SI32_LOCK_A_PERIPHLOCK0_I2CL_LOCKED_U32 \ 171 (SI32_LOCK_A_PERIPHLOCK0_I2CL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_I2CL_SHIFT) 172 173 #define SI32_LOCK_A_PERIPHLOCK0_PCAL_MASK 0x00000008 174 #define SI32_LOCK_A_PERIPHLOCK0_PCAL_SHIFT 3 175 // Unlock the EPCA0, PCA0, and PCA1 Module registers. 176 #define SI32_LOCK_A_PERIPHLOCK0_PCAL_UNLOCKED_VALUE 0 177 #define SI32_LOCK_A_PERIPHLOCK0_PCAL_UNLOCKED_U32 \ 178 (SI32_LOCK_A_PERIPHLOCK0_PCAL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_PCAL_SHIFT) 179 // Lock the EPCA0, PCA0, and PCA1 Module registers (bits can still be read). 180 #define SI32_LOCK_A_PERIPHLOCK0_PCAL_LOCKED_VALUE 1 181 #define SI32_LOCK_A_PERIPHLOCK0_PCAL_LOCKED_U32 \ 182 (SI32_LOCK_A_PERIPHLOCK0_PCAL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_PCAL_SHIFT) 183 184 #define SI32_LOCK_A_PERIPHLOCK0_TIMERL_MASK 0x00000010 185 #define SI32_LOCK_A_PERIPHLOCK0_TIMERL_SHIFT 4 186 // Unlock the TIMER0 and TIMER1 Module registers. 187 #define SI32_LOCK_A_PERIPHLOCK0_TIMERL_UNLOCKED_VALUE 0 188 #define SI32_LOCK_A_PERIPHLOCK0_TIMERL_UNLOCKED_U32 \ 189 (SI32_LOCK_A_PERIPHLOCK0_TIMERL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_TIMERL_SHIFT) 190 // Lock the TIMER0 and TIMER1 Module registers (bits can still be read). 191 #define SI32_LOCK_A_PERIPHLOCK0_TIMERL_LOCKED_VALUE 1 192 #define SI32_LOCK_A_PERIPHLOCK0_TIMERL_LOCKED_U32 \ 193 (SI32_LOCK_A_PERIPHLOCK0_TIMERL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_TIMERL_SHIFT) 194 195 #define SI32_LOCK_A_PERIPHLOCK0_USBL_MASK 0x00000020 196 #define SI32_LOCK_A_PERIPHLOCK0_USBL_SHIFT 5 197 // Unlock the USB0 Module registers. 198 #define SI32_LOCK_A_PERIPHLOCK0_USBL_UNLOCKED_VALUE 0 199 #define SI32_LOCK_A_PERIPHLOCK0_USBL_UNLOCKED_U32 \ 200 (SI32_LOCK_A_PERIPHLOCK0_USBL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_USBL_SHIFT) 201 // Lock the USB0 Module registers (bits can still be read). 202 #define SI32_LOCK_A_PERIPHLOCK0_USBL_LOCKED_VALUE 1 203 #define SI32_LOCK_A_PERIPHLOCK0_USBL_LOCKED_U32 \ 204 (SI32_LOCK_A_PERIPHLOCK0_USBL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_USBL_SHIFT) 205 206 #define SI32_LOCK_A_PERIPHLOCK0_SARADCL_MASK 0x00000040 207 #define SI32_LOCK_A_PERIPHLOCK0_SARADCL_SHIFT 6 208 // Unlock the SARADC0 and SARADC1 Module registers. 209 #define SI32_LOCK_A_PERIPHLOCK0_SARADCL_UNLOCKED_VALUE 0 210 #define SI32_LOCK_A_PERIPHLOCK0_SARADCL_UNLOCKED_U32 \ 211 (SI32_LOCK_A_PERIPHLOCK0_SARADCL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_SARADCL_SHIFT) 212 // Lock the SARADC0 and SARADC1 Module registers (bits can still be read). 213 #define SI32_LOCK_A_PERIPHLOCK0_SARADCL_LOCKED_VALUE 1 214 #define SI32_LOCK_A_PERIPHLOCK0_SARADCL_LOCKED_U32 \ 215 (SI32_LOCK_A_PERIPHLOCK0_SARADCL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_SARADCL_SHIFT) 216 217 #define SI32_LOCK_A_PERIPHLOCK0_SSGL_MASK 0x00000080 218 #define SI32_LOCK_A_PERIPHLOCK0_SSGL_SHIFT 7 219 // Unlock the SSG0 Module registers. 220 #define SI32_LOCK_A_PERIPHLOCK0_SSGL_UNLOCKED_VALUE 0 221 #define SI32_LOCK_A_PERIPHLOCK0_SSGL_UNLOCKED_U32 \ 222 (SI32_LOCK_A_PERIPHLOCK0_SSGL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_SSGL_SHIFT) 223 // Lock the SSG0 Module registers (bits can still be read). 224 #define SI32_LOCK_A_PERIPHLOCK0_SSGL_LOCKED_VALUE 1 225 #define SI32_LOCK_A_PERIPHLOCK0_SSGL_LOCKED_U32 \ 226 (SI32_LOCK_A_PERIPHLOCK0_SSGL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_SSGL_SHIFT) 227 228 #define SI32_LOCK_A_PERIPHLOCK0_CMPL_MASK 0x00000100 229 #define SI32_LOCK_A_PERIPHLOCK0_CMPL_SHIFT 8 230 // Unlock the Comparator 0 and Comparator 1 Module registers. 231 #define SI32_LOCK_A_PERIPHLOCK0_CMPL_UNLOCKED_VALUE 0 232 #define SI32_LOCK_A_PERIPHLOCK0_CMPL_UNLOCKED_U32 \ 233 (SI32_LOCK_A_PERIPHLOCK0_CMPL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_CMPL_SHIFT) 234 // Lock the Comparator 0 and Comparator 1 Module registers (bits can still be 235 // read). 236 #define SI32_LOCK_A_PERIPHLOCK0_CMPL_LOCKED_VALUE 1 237 #define SI32_LOCK_A_PERIPHLOCK0_CMPL_LOCKED_U32 \ 238 (SI32_LOCK_A_PERIPHLOCK0_CMPL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_CMPL_SHIFT) 239 240 #define SI32_LOCK_A_PERIPHLOCK0_CSL_MASK 0x00000200 241 #define SI32_LOCK_A_PERIPHLOCK0_CSL_SHIFT 9 242 // Unlock the Capacitive Sensing (CAPSENSE0) Module registers. 243 #define SI32_LOCK_A_PERIPHLOCK0_CSL_UNLOCKED_VALUE 0 244 #define SI32_LOCK_A_PERIPHLOCK0_CSL_UNLOCKED_U32 \ 245 (SI32_LOCK_A_PERIPHLOCK0_CSL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_CSL_SHIFT) 246 // Lock the Capacitive Sensing (CAPSENSE0) Module registers (bits can still be 247 // read). 248 #define SI32_LOCK_A_PERIPHLOCK0_CSL_LOCKED_VALUE 1 249 #define SI32_LOCK_A_PERIPHLOCK0_CSL_LOCKED_U32 \ 250 (SI32_LOCK_A_PERIPHLOCK0_CSL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_CSL_SHIFT) 251 252 #define SI32_LOCK_A_PERIPHLOCK0_EMIFL_MASK 0x00000400 253 #define SI32_LOCK_A_PERIPHLOCK0_EMIFL_SHIFT 10 254 // Unlock the External Memory Interface (EMIF0) Module registers. 255 #define SI32_LOCK_A_PERIPHLOCK0_EMIFL_UNLOCKED_VALUE 0 256 #define SI32_LOCK_A_PERIPHLOCK0_EMIFL_UNLOCKED_U32 \ 257 (SI32_LOCK_A_PERIPHLOCK0_EMIFL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_EMIFL_SHIFT) 258 // Lock the External Memory Interface (EMIF0) Module registers (bits can still be 259 // read). 260 #define SI32_LOCK_A_PERIPHLOCK0_EMIFL_LOCKED_VALUE 1 261 #define SI32_LOCK_A_PERIPHLOCK0_EMIFL_LOCKED_U32 \ 262 (SI32_LOCK_A_PERIPHLOCK0_EMIFL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_EMIFL_SHIFT) 263 264 #define SI32_LOCK_A_PERIPHLOCK0_AESL_MASK 0x00000800 265 #define SI32_LOCK_A_PERIPHLOCK0_AESL_SHIFT 11 266 // Unlock the AES0 Module registers. 267 #define SI32_LOCK_A_PERIPHLOCK0_AESL_UNLOCKED_VALUE 0 268 #define SI32_LOCK_A_PERIPHLOCK0_AESL_UNLOCKED_U32 \ 269 (SI32_LOCK_A_PERIPHLOCK0_AESL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_AESL_SHIFT) 270 // Lock the AES0 Module registers (bits can still be read). 271 #define SI32_LOCK_A_PERIPHLOCK0_AESL_LOCKED_VALUE 1 272 #define SI32_LOCK_A_PERIPHLOCK0_AESL_LOCKED_U32 \ 273 (SI32_LOCK_A_PERIPHLOCK0_AESL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_AESL_SHIFT) 274 275 #define SI32_LOCK_A_PERIPHLOCK0_CRCL_MASK 0x00001000 276 #define SI32_LOCK_A_PERIPHLOCK0_CRCL_SHIFT 12 277 // Unlock the CRC0 Module registers. 278 #define SI32_LOCK_A_PERIPHLOCK0_CRCL_UNLOCKED_VALUE 0 279 #define SI32_LOCK_A_PERIPHLOCK0_CRCL_UNLOCKED_U32 \ 280 (SI32_LOCK_A_PERIPHLOCK0_CRCL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_CRCL_SHIFT) 281 // Lock the CRC0 Module registers (bits can still be read). 282 #define SI32_LOCK_A_PERIPHLOCK0_CRCL_LOCKED_VALUE 1 283 #define SI32_LOCK_A_PERIPHLOCK0_CRCL_LOCKED_U32 \ 284 (SI32_LOCK_A_PERIPHLOCK0_CRCL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_CRCL_SHIFT) 285 286 #define SI32_LOCK_A_PERIPHLOCK0_RTCL_MASK 0x00002000 287 #define SI32_LOCK_A_PERIPHLOCK0_RTCL_SHIFT 13 288 // Unlock the RTC0 Module registers. 289 #define SI32_LOCK_A_PERIPHLOCK0_RTCL_UNLOCKED_VALUE 0 290 #define SI32_LOCK_A_PERIPHLOCK0_RTCL_UNLOCKED_U32 \ 291 (SI32_LOCK_A_PERIPHLOCK0_RTCL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_RTCL_SHIFT) 292 // Lock the RTC0 Module registers (bits can still be read). 293 #define SI32_LOCK_A_PERIPHLOCK0_RTCL_LOCKED_VALUE 1 294 #define SI32_LOCK_A_PERIPHLOCK0_RTCL_LOCKED_U32 \ 295 (SI32_LOCK_A_PERIPHLOCK0_RTCL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_RTCL_SHIFT) 296 297 #define SI32_LOCK_A_PERIPHLOCK0_CLKRSTL_MASK 0x00004000 298 #define SI32_LOCK_A_PERIPHLOCK0_CLKRSTL_SHIFT 14 299 // Unlock the Clock Control (CLKCTRL) and Reset Sources (RSTSRC) Module registers. 300 #define SI32_LOCK_A_PERIPHLOCK0_CLKRSTL_UNLOCKED_VALUE 0 301 #define SI32_LOCK_A_PERIPHLOCK0_CLKRSTL_UNLOCKED_U32 \ 302 (SI32_LOCK_A_PERIPHLOCK0_CLKRSTL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_CLKRSTL_SHIFT) 303 // Lock the Clock Control (CLKCTRL) and Reset Sources (RSTSRC) Module registers 304 // (bits can still be read). 305 #define SI32_LOCK_A_PERIPHLOCK0_CLKRSTL_LOCKED_VALUE 1 306 #define SI32_LOCK_A_PERIPHLOCK0_CLKRSTL_LOCKED_U32 \ 307 (SI32_LOCK_A_PERIPHLOCK0_CLKRSTL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_CLKRSTL_SHIFT) 308 309 #define SI32_LOCK_A_PERIPHLOCK0_VMONL_MASK 0x00008000 310 #define SI32_LOCK_A_PERIPHLOCK0_VMONL_SHIFT 15 311 // Unlock the Voltage Supply Monitor (VMON0) Module registers. 312 #define SI32_LOCK_A_PERIPHLOCK0_VMONL_UNLOCKED_VALUE 0 313 #define SI32_LOCK_A_PERIPHLOCK0_VMONL_UNLOCKED_U32 \ 314 (SI32_LOCK_A_PERIPHLOCK0_VMONL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_VMONL_SHIFT) 315 // Lock the Voltage Supply Monitor (VMON0) Module registers (bits can still be 316 // read). 317 #define SI32_LOCK_A_PERIPHLOCK0_VMONL_LOCKED_VALUE 1 318 #define SI32_LOCK_A_PERIPHLOCK0_VMONL_LOCKED_U32 \ 319 (SI32_LOCK_A_PERIPHLOCK0_VMONL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_VMONL_SHIFT) 320 321 #define SI32_LOCK_A_PERIPHLOCK0_IDACL_MASK 0x00010000 322 #define SI32_LOCK_A_PERIPHLOCK0_IDACL_SHIFT 16 323 // Unlock the IDAC0 and IDAC1 Module registers. 324 #define SI32_LOCK_A_PERIPHLOCK0_IDACL_UNLOCKED_VALUE 0 325 #define SI32_LOCK_A_PERIPHLOCK0_IDACL_UNLOCKED_U32 \ 326 (SI32_LOCK_A_PERIPHLOCK0_IDACL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_IDACL_SHIFT) 327 // Lock the IDAC0 and IDAC1 Module registers (bits can still be read). 328 #define SI32_LOCK_A_PERIPHLOCK0_IDACL_LOCKED_VALUE 1 329 #define SI32_LOCK_A_PERIPHLOCK0_IDACL_LOCKED_U32 \ 330 (SI32_LOCK_A_PERIPHLOCK0_IDACL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_IDACL_SHIFT) 331 332 #define SI32_LOCK_A_PERIPHLOCK0_DMACTRLL_MASK 0x00020000 333 #define SI32_LOCK_A_PERIPHLOCK0_DMACTRLL_SHIFT 17 334 // Unlock the DMA Controller (DMACTRL0) Module registers. 335 #define SI32_LOCK_A_PERIPHLOCK0_DMACTRLL_UNLOCKED_VALUE 0 336 #define SI32_LOCK_A_PERIPHLOCK0_DMACTRLL_UNLOCKED_U32 \ 337 (SI32_LOCK_A_PERIPHLOCK0_DMACTRLL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_DMACTRLL_SHIFT) 338 // Lock the DMA Controller (DMACTRL0) Module registers (bits can still be read). 339 #define SI32_LOCK_A_PERIPHLOCK0_DMACTRLL_LOCKED_VALUE 1 340 #define SI32_LOCK_A_PERIPHLOCK0_DMACTRLL_LOCKED_U32 \ 341 (SI32_LOCK_A_PERIPHLOCK0_DMACTRLL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_DMACTRLL_SHIFT) 342 343 #define SI32_LOCK_A_PERIPHLOCK0_DMAXBARL_MASK 0x00040000 344 #define SI32_LOCK_A_PERIPHLOCK0_DMAXBARL_SHIFT 18 345 // Unlock the DMA Crossbar (DMAXBAR0) Module registers. 346 #define SI32_LOCK_A_PERIPHLOCK0_DMAXBARL_UNLOCKED_VALUE 0 347 #define SI32_LOCK_A_PERIPHLOCK0_DMAXBARL_UNLOCKED_U32 \ 348 (SI32_LOCK_A_PERIPHLOCK0_DMAXBARL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_DMAXBARL_SHIFT) 349 // Lock the DMA Crossbar (DMAXBAR0) Module registers (bits can still be read). 350 #define SI32_LOCK_A_PERIPHLOCK0_DMAXBARL_LOCKED_VALUE 1 351 #define SI32_LOCK_A_PERIPHLOCK0_DMAXBARL_LOCKED_U32 \ 352 (SI32_LOCK_A_PERIPHLOCK0_DMAXBARL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_DMAXBARL_SHIFT) 353 354 #define SI32_LOCK_A_PERIPHLOCK0_LPTL_MASK 0x00080000 355 #define SI32_LOCK_A_PERIPHLOCK0_LPTL_SHIFT 19 356 // Unlock the Low Power Timer (LPTIMER0) Module registers. 357 #define SI32_LOCK_A_PERIPHLOCK0_LPTL_UNLOCKED_VALUE 0 358 #define SI32_LOCK_A_PERIPHLOCK0_LPTL_UNLOCKED_U32 \ 359 (SI32_LOCK_A_PERIPHLOCK0_LPTL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_LPTL_SHIFT) 360 // Lock the Low Power Timer (LPTIMER0) Module registers (bits can still be read). 361 #define SI32_LOCK_A_PERIPHLOCK0_LPTL_LOCKED_VALUE 1 362 #define SI32_LOCK_A_PERIPHLOCK0_LPTL_LOCKED_U32 \ 363 (SI32_LOCK_A_PERIPHLOCK0_LPTL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_LPTL_SHIFT) 364 365 #define SI32_LOCK_A_PERIPHLOCK0_VREFL_MASK 0x00100000 366 #define SI32_LOCK_A_PERIPHLOCK0_VREFL_SHIFT 20 367 // Unlock the Voltage Reference (VREF0) Module registers. 368 #define SI32_LOCK_A_PERIPHLOCK0_VREFL_UNLOCKED_VALUE 0 369 #define SI32_LOCK_A_PERIPHLOCK0_VREFL_UNLOCKED_U32 \ 370 (SI32_LOCK_A_PERIPHLOCK0_VREFL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_VREFL_SHIFT) 371 // Lock the Voltage Reference (VREF0) Module registers (bits can still be read). 372 #define SI32_LOCK_A_PERIPHLOCK0_VREFL_LOCKED_VALUE 1 373 #define SI32_LOCK_A_PERIPHLOCK0_VREFL_LOCKED_U32 \ 374 (SI32_LOCK_A_PERIPHLOCK0_VREFL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_VREFL_SHIFT) 375 376 #define SI32_LOCK_A_PERIPHLOCK0_I2SL_MASK 0x00200000 377 #define SI32_LOCK_A_PERIPHLOCK0_I2SL_SHIFT 21 378 // Unlock the I2S0 Module registers. 379 #define SI32_LOCK_A_PERIPHLOCK0_I2SL_UNLOCKED_VALUE 0 380 #define SI32_LOCK_A_PERIPHLOCK0_I2SL_UNLOCKED_U32 \ 381 (SI32_LOCK_A_PERIPHLOCK0_I2SL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_I2SL_SHIFT) 382 // Lock the I2S0 Module registers (bits can still be read). 383 #define SI32_LOCK_A_PERIPHLOCK0_I2SL_LOCKED_VALUE 1 384 #define SI32_LOCK_A_PERIPHLOCK0_I2SL_LOCKED_U32 \ 385 (SI32_LOCK_A_PERIPHLOCK0_I2SL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_I2SL_SHIFT) 386 387 #define SI32_LOCK_A_PERIPHLOCK0_PLLL_MASK 0x00400000 388 #define SI32_LOCK_A_PERIPHLOCK0_PLLL_SHIFT 22 389 // Unlock the PLL0 Module registers. 390 #define SI32_LOCK_A_PERIPHLOCK0_PLLL_UNLOCKED_VALUE 0 391 #define SI32_LOCK_A_PERIPHLOCK0_PLLL_UNLOCKED_U32 \ 392 (SI32_LOCK_A_PERIPHLOCK0_PLLL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_PLLL_SHIFT) 393 // Lock the PLL0 Module registers (bits can still be read). 394 #define SI32_LOCK_A_PERIPHLOCK0_PLLL_LOCKED_VALUE 1 395 #define SI32_LOCK_A_PERIPHLOCK0_PLLL_LOCKED_U32 \ 396 (SI32_LOCK_A_PERIPHLOCK0_PLLL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_PLLL_SHIFT) 397 398 #define SI32_LOCK_A_PERIPHLOCK0_EXTOSCL_MASK 0x00800000 399 #define SI32_LOCK_A_PERIPHLOCK0_EXTOSCL_SHIFT 23 400 // Unlock the External Oscillator (EXTOSC0) Module registers. 401 #define SI32_LOCK_A_PERIPHLOCK0_EXTOSCL_UNLOCKED_VALUE 0 402 #define SI32_LOCK_A_PERIPHLOCK0_EXTOSCL_UNLOCKED_U32 \ 403 (SI32_LOCK_A_PERIPHLOCK0_EXTOSCL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_EXTOSCL_SHIFT) 404 // Lock the External Oscillator (EXTOSC0) Module registers (bits can still be 405 // read). 406 #define SI32_LOCK_A_PERIPHLOCK0_EXTOSCL_LOCKED_VALUE 1 407 #define SI32_LOCK_A_PERIPHLOCK0_EXTOSCL_LOCKED_U32 \ 408 (SI32_LOCK_A_PERIPHLOCK0_EXTOSCL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_EXTOSCL_SHIFT) 409 410 #define SI32_LOCK_A_PERIPHLOCK0_VREGL_MASK 0x01000000 411 #define SI32_LOCK_A_PERIPHLOCK0_VREGL_SHIFT 24 412 // Unlock the Voltage Regulator (VREG0) Module registers. 413 #define SI32_LOCK_A_PERIPHLOCK0_VREGL_UNLOCKED_VALUE 0 414 #define SI32_LOCK_A_PERIPHLOCK0_VREGL_UNLOCKED_U32 \ 415 (SI32_LOCK_A_PERIPHLOCK0_VREGL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_VREGL_SHIFT) 416 // Lock the Voltage Regulator (VREG0) Module registers (bits can still be read). 417 #define SI32_LOCK_A_PERIPHLOCK0_VREGL_LOCKED_VALUE 1 418 #define SI32_LOCK_A_PERIPHLOCK0_VREGL_LOCKED_U32 \ 419 (SI32_LOCK_A_PERIPHLOCK0_VREGL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_VREGL_SHIFT) 420 421 #define SI32_LOCK_A_PERIPHLOCK0_LPOSCL_MASK 0x02000000 422 #define SI32_LOCK_A_PERIPHLOCK0_LPOSCL_SHIFT 25 423 // Unlock the Low Power Oscillator (LPOSC0) Module registers. 424 #define SI32_LOCK_A_PERIPHLOCK0_LPOSCL_UNLOCKED_VALUE 0 425 #define SI32_LOCK_A_PERIPHLOCK0_LPOSCL_UNLOCKED_U32 \ 426 (SI32_LOCK_A_PERIPHLOCK0_LPOSCL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_LPOSCL_SHIFT) 427 // Lock the Low Power Oscillator (LPOSC0) Module registers (bits can still be 428 // read). 429 #define SI32_LOCK_A_PERIPHLOCK0_LPOSCL_LOCKED_VALUE 1 430 #define SI32_LOCK_A_PERIPHLOCK0_LPOSCL_LOCKED_U32 \ 431 (SI32_LOCK_A_PERIPHLOCK0_LPOSCL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_LPOSCL_SHIFT) 432 433 #define SI32_LOCK_A_PERIPHLOCK0_EVREGL_MASK 0x04000000 434 #define SI32_LOCK_A_PERIPHLOCK0_EVREGL_SHIFT 26 435 // Unlock the External Regulator (EXTVREG0) Module registers. 436 #define SI32_LOCK_A_PERIPHLOCK0_EVREGL_UNLOCKED_VALUE 0 437 #define SI32_LOCK_A_PERIPHLOCK0_EVREGL_UNLOCKED_U32 \ 438 (SI32_LOCK_A_PERIPHLOCK0_EVREGL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_EVREGL_SHIFT) 439 // Lock the External Regulator (EXTVREG0) Module registers (bits can still be 440 // read). 441 #define SI32_LOCK_A_PERIPHLOCK0_EVREGL_LOCKED_VALUE 1 442 #define SI32_LOCK_A_PERIPHLOCK0_EVREGL_LOCKED_U32 \ 443 (SI32_LOCK_A_PERIPHLOCK0_EVREGL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_EVREGL_SHIFT) 444 445 #define SI32_LOCK_A_PERIPHLOCK0_IVCL_MASK 0x10000000 446 #define SI32_LOCK_A_PERIPHLOCK0_IVCL_SHIFT 28 447 // Unlock the IVC0 Module registers. 448 #define SI32_LOCK_A_PERIPHLOCK0_IVCL_UNLOCKED_VALUE 0 449 #define SI32_LOCK_A_PERIPHLOCK0_IVCL_UNLOCKED_U32 \ 450 (SI32_LOCK_A_PERIPHLOCK0_IVCL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_IVCL_SHIFT) 451 // Lock the IVC0 Module registers (bits can still be read). 452 #define SI32_LOCK_A_PERIPHLOCK0_IVCL_LOCKED_VALUE 1 453 #define SI32_LOCK_A_PERIPHLOCK0_IVCL_LOCKED_U32 \ 454 (SI32_LOCK_A_PERIPHLOCK0_IVCL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK0_IVCL_SHIFT) 455 456 457 458 struct SI32_LOCK_A_PERIPHLOCK1_Struct 459 { 460 union 461 { 462 struct 463 { 464 // PMU Module Lock Enable 465 volatile uint32_t PMUL: 1; 466 uint32_t reserved0: 31; 467 }; 468 volatile uint32_t U32; 469 }; 470 }; 471 472 #define SI32_LOCK_A_PERIPHLOCK1_PMUL_MASK 0x00000001 473 #define SI32_LOCK_A_PERIPHLOCK1_PMUL_SHIFT 0 474 // Unlock the PMU Module registers. 475 #define SI32_LOCK_A_PERIPHLOCK1_PMUL_UNLOCKED_VALUE 0 476 #define SI32_LOCK_A_PERIPHLOCK1_PMUL_UNLOCKED_U32 \ 477 (SI32_LOCK_A_PERIPHLOCK1_PMUL_UNLOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK1_PMUL_SHIFT) 478 // Lock the PMU Module registers (bits can still be read). 479 #define SI32_LOCK_A_PERIPHLOCK1_PMUL_LOCKED_VALUE 1 480 #define SI32_LOCK_A_PERIPHLOCK1_PMUL_LOCKED_U32 \ 481 (SI32_LOCK_A_PERIPHLOCK1_PMUL_LOCKED_VALUE << SI32_LOCK_A_PERIPHLOCK1_PMUL_SHIFT) 482 483 484 485 typedef struct SI32_LOCK_A_Struct 486 { 487 struct SI32_LOCK_A_KEY_Struct KEY ; // Base Address + 0x0 488 uint32_t reserved0; 489 uint32_t reserved1; 490 uint32_t reserved2; 491 uint32_t reserved3[4]; 492 struct SI32_LOCK_A_PERIPHLOCK0_Struct PERIPHLOCK0 ; // Base Address + 0x20 493 volatile uint32_t PERIPHLOCK0_SET; 494 volatile uint32_t PERIPHLOCK0_CLR; 495 uint32_t reserved4; 496 uint32_t reserved5[4]; 497 struct SI32_LOCK_A_PERIPHLOCK1_Struct PERIPHLOCK1 ; // Base Address + 0x40 498 volatile uint32_t PERIPHLOCK1_SET; 499 volatile uint32_t PERIPHLOCK1_CLR; 500 uint32_t reserved6; 501 } SI32_LOCK_A_Type; 502 503 #ifdef __cplusplus 504 } 505 #endif 506 507 #endif // __SI32_LOCK_A_REGISTERS_H__ 508 509 //-eof-------------------------------------------------------------------------- 510 511