1 /* 2 Copyright (c) 2010 - 2025, Nordic Semiconductor ASA All rights reserved. 3 4 SPDX-License-Identifier: BSD-3-Clause 5 6 Redistribution and use in source and binary forms, with or without 7 modification, are permitted provided that the following conditions are met: 8 9 1. Redistributions of source code must retain the above copyright notice, this 10 list of conditions and the following disclaimer. 11 12 2. Redistributions in binary form must reproduce the above copyright 13 notice, this list of conditions and the following disclaimer in the 14 documentation and/or other materials provided with the distribution. 15 16 3. Neither the name of Nordic Semiconductor ASA nor the names of its 17 contributors may be used to endorse or promote products derived from this 18 software without specific prior written permission. 19 20 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 IMPLIED WARRANTIES OF MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE 23 ARE DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE 24 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 25 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 26 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 27 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 28 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 29 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 30 POSSIBILITY OF SUCH DAMAGE. 31 * 32 * @file nrf5340_application.h 33 * @brief CMSIS HeaderFile 34 * @version 1 35 * @date 07. January 2025 36 * @note Generated by SVDConv V3.3.35 on Tuesday, 07.01.2025 15:34:18 37 * from File 'nrf5340_application.svd', 38 * last modified on Friday, 13.12.2024 08:41:10 39 */ 40 41 42 43 /** @addtogroup Nordic Semiconductor 44 * @{ 45 */ 46 47 48 /** @addtogroup nrf5340_application 49 * @{ 50 */ 51 52 53 #ifndef NRF5340_APPLICATION_H 54 #define NRF5340_APPLICATION_H 55 56 #ifdef __cplusplus 57 extern "C" { 58 #endif 59 60 61 /** @addtogroup Configuration_of_CMSIS 62 * @{ 63 */ 64 65 66 67 /* =========================================================================================================================== */ 68 /* ================ Interrupt Number Definition ================ */ 69 /* =========================================================================================================================== */ 70 71 typedef enum { 72 /* ======================================= ARM Cortex-M33 Specific Interrupt Numbers ======================================= */ 73 Reset_IRQn = -15, /*!< -15 Reset Vector, invoked on Power up and warm reset */ 74 NonMaskableInt_IRQn = -14, /*!< -14 Non maskable Interrupt, cannot be stopped or preempted */ 75 HardFault_IRQn = -13, /*!< -13 Hard Fault, all classes of Fault */ 76 MemoryManagement_IRQn = -12, /*!< -12 Memory Management, MPU mismatch, including Access Violation 77 and No Match */ 78 BusFault_IRQn = -11, /*!< -11 Bus Fault, Pre-Fetch-, Memory Access Fault, other address/memory 79 related Fault */ 80 UsageFault_IRQn = -10, /*!< -10 Usage Fault, i.e. Undef Instruction, Illegal State Transition */ 81 SecureFault_IRQn = -9, /*!< -9 Secure Fault Handler */ 82 SVCall_IRQn = -5, /*!< -5 System Service Call via SVC instruction */ 83 DebugMonitor_IRQn = -4, /*!< -4 Debug Monitor */ 84 PendSV_IRQn = -2, /*!< -2 Pendable request for system service */ 85 SysTick_IRQn = -1, /*!< -1 System Tick Timer */ 86 /* ==================================== nrf5340_application Specific Interrupt Numbers ===================================== */ 87 FPU_IRQn = 0, /*!< 0 FPU */ 88 CACHE_IRQn = 1, /*!< 1 CACHE */ 89 SPU_IRQn = 3, /*!< 3 SPU */ 90 CLOCK_POWER_IRQn = 5, /*!< 5 CLOCK_POWER */ 91 SERIAL0_IRQn = 8, /*!< 8 SERIAL0 */ 92 SERIAL1_IRQn = 9, /*!< 9 SERIAL1 */ 93 SPIM4_IRQn = 10, /*!< 10 SPIM4 */ 94 SERIAL2_IRQn = 11, /*!< 11 SERIAL2 */ 95 SERIAL3_IRQn = 12, /*!< 12 SERIAL3 */ 96 GPIOTE0_IRQn = 13, /*!< 13 GPIOTE0 */ 97 SAADC_IRQn = 14, /*!< 14 SAADC */ 98 TIMER0_IRQn = 15, /*!< 15 TIMER0 */ 99 TIMER1_IRQn = 16, /*!< 16 TIMER1 */ 100 TIMER2_IRQn = 17, /*!< 17 TIMER2 */ 101 RTC0_IRQn = 20, /*!< 20 RTC0 */ 102 RTC1_IRQn = 21, /*!< 21 RTC1 */ 103 WDT0_IRQn = 24, /*!< 24 WDT0 */ 104 WDT1_IRQn = 25, /*!< 25 WDT1 */ 105 COMP_LPCOMP_IRQn = 26, /*!< 26 COMP_LPCOMP */ 106 EGU0_IRQn = 27, /*!< 27 EGU0 */ 107 EGU1_IRQn = 28, /*!< 28 EGU1 */ 108 EGU2_IRQn = 29, /*!< 29 EGU2 */ 109 EGU3_IRQn = 30, /*!< 30 EGU3 */ 110 EGU4_IRQn = 31, /*!< 31 EGU4 */ 111 EGU5_IRQn = 32, /*!< 32 EGU5 */ 112 PWM0_IRQn = 33, /*!< 33 PWM0 */ 113 PWM1_IRQn = 34, /*!< 34 PWM1 */ 114 PWM2_IRQn = 35, /*!< 35 PWM2 */ 115 PWM3_IRQn = 36, /*!< 36 PWM3 */ 116 PDM0_IRQn = 38, /*!< 38 PDM0 */ 117 I2S0_IRQn = 40, /*!< 40 I2S0 */ 118 IPC_IRQn = 42, /*!< 42 IPC */ 119 QSPI_IRQn = 43, /*!< 43 QSPI */ 120 NFCT_IRQn = 45, /*!< 45 NFCT */ 121 GPIOTE1_IRQn = 47, /*!< 47 GPIOTE1 */ 122 QDEC0_IRQn = 51, /*!< 51 QDEC0 */ 123 QDEC1_IRQn = 52, /*!< 52 QDEC1 */ 124 USBD_IRQn = 54, /*!< 54 USBD */ 125 USBREGULATOR_IRQn = 55, /*!< 55 USBREGULATOR */ 126 KMU_IRQn = 57, /*!< 57 KMU */ 127 CRYPTOCELL_IRQn = 68 /*!< 68 CRYPTOCELL */ 128 } IRQn_Type; 129 130 131 132 /* =========================================================================================================================== */ 133 /* ================ Processor and Core Peripheral Section ================ */ 134 /* =========================================================================================================================== */ 135 136 /* ========================== Configuration of the ARM Cortex-M33 Processor and Core Peripherals =========================== */ 137 #define __CM33_REV 0x0004U /*!< CM33 Core Revision */ 138 #define __INTERRUPTS_MAX 240 /*!< Top interrupt number */ 139 #define __DSP_PRESENT 1 /*!< DSP present or not */ 140 #define __NVIC_PRIO_BITS 3 /*!< Number of Bits used for Priority Levels */ 141 #define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ 142 #define __VTOR_PRESENT 1 /*!< Set to 1 if CPU supports Vector Table Offset Register */ 143 #define __MPU_PRESENT 1 /*!< MPU present */ 144 #define __FPU_PRESENT 1 /*!< FPU present */ 145 #define __FPU_DP 0 /*!< Double Precision FPU */ 146 #define __SAUREGION_PRESENT 0 /*!< SAU region present */ 147 148 149 /** @} */ /* End of group Configuration_of_CMSIS */ 150 151 #include "core_cm33.h" /*!< ARM Cortex-M33 processor and core peripherals */ 152 #include "system_nrf5340_application.h" /*!< nrf5340_application System */ 153 154 #ifndef __IM /*!< Fallback for older CMSIS versions */ 155 #define __IM __I 156 #endif 157 #ifndef __OM /*!< Fallback for older CMSIS versions */ 158 #define __OM __O 159 #endif 160 #ifndef __IOM /*!< Fallback for older CMSIS versions */ 161 #define __IOM __IO 162 #endif 163 164 165 /* =========================================================================================================================== */ 166 /* ================ Device Specific Cluster Section ================ */ 167 /* =========================================================================================================================== */ 168 169 170 /** @addtogroup Device_Peripheral_clusters 171 * @{ 172 */ 173 174 175 /** 176 * @brief CACHEDATA_SET_WAY [WAY] (Unspecified) 177 */ 178 typedef struct { 179 __IOM uint32_t DATA0; /*!< (@ 0x00000000) Description cluster: Cache data bits [31:0] of 180 SET[n], WAY[o]. */ 181 __IOM uint32_t DATA1; /*!< (@ 0x00000004) Description cluster: Cache data bits [63:32] 182 of SET[n], WAY[o]. */ 183 __IOM uint32_t DATA2; /*!< (@ 0x00000008) Description cluster: Cache data bits [95:64] 184 of SET[n], WAY[o]. */ 185 __IOM uint32_t DATA3; /*!< (@ 0x0000000C) Description cluster: Cache data bits [127:96] 186 of SET[n], WAY[o]. */ 187 } CACHEDATA_SET_WAY_Type; /*!< Size = 16 (0x10) */ 188 189 190 /** 191 * @brief CACHEDATA_SET [SET] (Unspecified) 192 */ 193 typedef struct { 194 __IOM CACHEDATA_SET_WAY_Type WAY[2]; /*!< (@ 0x00000000) Unspecified */ 195 } CACHEDATA_SET_Type; /*!< Size = 32 (0x20) */ 196 197 198 /** 199 * @brief CACHEINFO_SET [SET] (Unspecified) 200 */ 201 typedef struct { 202 __IOM uint32_t WAY[2]; /*!< (@ 0x00000000) Description collection: Cache information for 203 SET[n], WAY[o]. */ 204 } CACHEINFO_SET_Type; /*!< Size = 8 (0x8) */ 205 206 207 /** 208 * @brief FICR_INFO [INFO] (Device info) 209 */ 210 typedef struct { 211 __IM uint32_t CONFIGID; /*!< (@ 0x00000000) Configuration identifier */ 212 __IM uint32_t DEVICEID[2]; /*!< (@ 0x00000004) Description collection: Device identifier */ 213 __IM uint32_t PART; /*!< (@ 0x0000000C) Part code */ 214 __IM uint32_t VARIANT; /*!< (@ 0x00000010) Part Variant, Hardware version and Production 215 configuration */ 216 __IM uint32_t PACKAGE; /*!< (@ 0x00000014) Package option */ 217 __IM uint32_t RAM; /*!< (@ 0x00000018) RAM variant */ 218 __IM uint32_t FLASH; /*!< (@ 0x0000001C) Flash variant */ 219 __IM uint32_t CODEPAGESIZE; /*!< (@ 0x00000020) Code memory page size in bytes */ 220 __IM uint32_t CODESIZE; /*!< (@ 0x00000024) Code memory size */ 221 __IM uint32_t DEVICETYPE; /*!< (@ 0x00000028) Device type */ 222 } FICR_INFO_Type; /*!< Size = 44 (0x2c) */ 223 224 225 /** 226 * @brief FICR_TRIMCNF [TRIMCNF] (Unspecified) 227 */ 228 typedef struct { 229 __IM uint32_t ADDR; /*!< (@ 0x00000000) Description cluster: Address of the PAR register 230 which will be written */ 231 __IM uint32_t DATA; /*!< (@ 0x00000004) Description cluster: Data */ 232 } FICR_TRIMCNF_Type; /*!< Size = 8 (0x8) */ 233 234 235 /** 236 * @brief FICR_NFC [NFC] (Unspecified) 237 */ 238 typedef struct { 239 __IM uint32_t TAGHEADER0; /*!< (@ 0x00000000) Default header for NFC Tag. Software can read 240 these values to populate NFCID1_3RD_LAST, 241 NFCID1_2ND_LAST and NFCID1_LAST. */ 242 __IM uint32_t TAGHEADER1; /*!< (@ 0x00000004) Default header for NFC Tag. Software can read 243 these values to populate NFCID1_3RD_LAST, 244 NFCID1_2ND_LAST and NFCID1_LAST. */ 245 __IM uint32_t TAGHEADER2; /*!< (@ 0x00000008) Default header for NFC Tag. Software can read 246 these values to populate NFCID1_3RD_LAST, 247 NFCID1_2ND_LAST and NFCID1_LAST. */ 248 __IM uint32_t TAGHEADER3; /*!< (@ 0x0000000C) Default header for NFC Tag. Software can read 249 these values to populate NFCID1_3RD_LAST, 250 NFCID1_2ND_LAST and NFCID1_LAST. */ 251 } FICR_NFC_Type; /*!< Size = 16 (0x10) */ 252 253 254 /** 255 * @brief FICR_TRNG90B [TRNG90B] (NIST800-90B RNG calibration data) 256 */ 257 typedef struct { 258 __IM uint32_t BYTES; /*!< (@ 0x00000000) Amount of bytes for the required entropy bits */ 259 __IM uint32_t RCCUTOFF; /*!< (@ 0x00000004) Repetition counter cutoff */ 260 __IM uint32_t APCUTOFF; /*!< (@ 0x00000008) Adaptive proportion cutoff */ 261 __IM uint32_t STARTUP; /*!< (@ 0x0000000C) Amount of bytes for the startup tests */ 262 __IM uint32_t ROSC1; /*!< (@ 0x00000010) Sample count for ring oscillator 1 */ 263 __IM uint32_t ROSC2; /*!< (@ 0x00000014) Sample count for ring oscillator 2 */ 264 __IM uint32_t ROSC3; /*!< (@ 0x00000018) Sample count for ring oscillator 3 */ 265 __IM uint32_t ROSC4; /*!< (@ 0x0000001C) Sample count for ring oscillator 4 */ 266 } FICR_TRNG90B_Type; /*!< Size = 32 (0x20) */ 267 268 269 /** 270 * @brief UICR_KEYSLOT_CONFIG [CONFIG] (Unspecified) 271 */ 272 typedef struct { 273 __IOM uint32_t DEST; /*!< (@ 0x00000000) Description cluster: Destination address where 274 content of the key value registers (KEYSLOT.KEYn.VALUE[0-3 275 ) will be pushed by KMU. Note that this 276 address must match that of a peripherals 277 APB mapped write-only key registers, else 278 the KMU can push this key value into an 279 address range which the CPU can potentially 280 read. */ 281 __IOM uint32_t PERM; /*!< (@ 0x00000004) Description cluster: Define permissions for the 282 key slot. Bits 0-15 and 16-31 can only be 283 written when equal to 0xFFFF. */ 284 } UICR_KEYSLOT_CONFIG_Type; /*!< Size = 8 (0x8) */ 285 286 287 /** 288 * @brief UICR_KEYSLOT_KEY [KEY] (Unspecified) 289 */ 290 typedef struct { 291 __IOM uint32_t VALUE[4]; /*!< (@ 0x00000000) Description collection: Define bits [31+o*32:0+o*32] 292 of value assigned to KMU key slot. */ 293 } UICR_KEYSLOT_KEY_Type; /*!< Size = 16 (0x10) */ 294 295 296 /** 297 * @brief UICR_KEYSLOT [KEYSLOT] (Unspecified) 298 */ 299 typedef struct { 300 __IOM UICR_KEYSLOT_CONFIG_Type CONFIG[128]; /*!< (@ 0x00000000) Unspecified */ 301 __IOM UICR_KEYSLOT_KEY_Type KEY[128]; /*!< (@ 0x00000400) Unspecified */ 302 } UICR_KEYSLOT_Type; /*!< Size = 3072 (0xc00) */ 303 304 305 /** 306 * @brief TAD_PSEL [PSEL] (Unspecified) 307 */ 308 typedef struct { 309 __IOM uint32_t TRACECLK; /*!< (@ 0x00000000) Pin configuration for TRACECLK */ 310 __IOM uint32_t TRACEDATA0; /*!< (@ 0x00000004) Pin configuration for TRACEDATA[0] */ 311 __IOM uint32_t TRACEDATA1; /*!< (@ 0x00000008) Pin configuration for TRACEDATA[1] */ 312 __IOM uint32_t TRACEDATA2; /*!< (@ 0x0000000C) Pin configuration for TRACEDATA[2] */ 313 __IOM uint32_t TRACEDATA3; /*!< (@ 0x00000010) Pin configuration for TRACEDATA[3] */ 314 } TAD_PSEL_Type; /*!< Size = 20 (0x14) */ 315 316 317 /** 318 * @brief DCNF_EXTPERI [EXTPERI] (Unspecified) 319 */ 320 typedef struct { 321 __IOM uint32_t PROTECT; /*!< (@ 0x00000000) Description cluster: Control access for master 322 connected to AMLI master port EXTPERI[n] */ 323 } DCNF_EXTPERI_Type; /*!< Size = 4 (0x4) */ 324 325 326 /** 327 * @brief DCNF_EXTRAM [EXTRAM] (Unspecified) 328 */ 329 typedef struct { 330 __IOM uint32_t PROTECT; /*!< (@ 0x00000000) Description cluster: Control access from master 331 connected to AMLI master port EXTRAM[n] */ 332 } DCNF_EXTRAM_Type; /*!< Size = 4 (0x4) */ 333 334 335 /** 336 * @brief DCNF_EXTCODE [EXTCODE] (Unspecified) 337 */ 338 typedef struct { 339 __IOM uint32_t PROTECT; /*!< (@ 0x00000000) Description cluster: Control access from master 340 connected to AMLI master port EXTCODE[n] */ 341 } DCNF_EXTCODE_Type; /*!< Size = 4 (0x4) */ 342 343 344 /** 345 * @brief CACHE_PROFILING [PROFILING] (Unspecified) 346 */ 347 typedef struct { 348 __IM uint32_t IHIT; /*!< (@ 0x00000000) Description cluster: Instruction fetch cache 349 hit counter for cache region n, where n=0 350 means Flash and n=1 means XIP. */ 351 __IM uint32_t IMISS; /*!< (@ 0x00000004) Description cluster: Instruction fetch cache 352 miss counter for cache region n, where n=0 353 means Flash and n=1 means XIP. */ 354 __IM uint32_t DHIT; /*!< (@ 0x00000008) Description cluster: Data fetch cache hit counter 355 for cache region n, where n=0 means Flash 356 and n=1 means XIP. */ 357 __IM uint32_t DMISS; /*!< (@ 0x0000000C) Description cluster: Data fetch cache miss counter 358 for cache region n, where n=0 means Flash 359 and n=1 means XIP. */ 360 __IM uint32_t RESERVED[4]; 361 } CACHE_PROFILING_Type; /*!< Size = 32 (0x20) */ 362 363 364 /** 365 * @brief SPU_EXTDOMAIN [EXTDOMAIN] (Unspecified) 366 */ 367 typedef struct { 368 __IOM uint32_t PERM; /*!< (@ 0x00000000) Description cluster: Access for bus access generated 369 from the external domain n List capabilities 370 of the external domain n */ 371 } SPU_EXTDOMAIN_Type; /*!< Size = 4 (0x4) */ 372 373 374 /** 375 * @brief SPU_DPPI [DPPI] (Unspecified) 376 */ 377 typedef struct { 378 __IOM uint32_t PERM; /*!< (@ 0x00000000) Description cluster: Select between secure and 379 non-secure attribute for the DPPI channels */ 380 __IOM uint32_t LOCK; /*!< (@ 0x00000004) Description cluster: Prevent further modification 381 of the corresponding PERM register */ 382 } SPU_DPPI_Type; /*!< Size = 8 (0x8) */ 383 384 385 /** 386 * @brief SPU_GPIOPORT [GPIOPORT] (Unspecified) 387 */ 388 typedef struct { 389 __IOM uint32_t PERM; /*!< (@ 0x00000000) Description cluster: Select between secure and 390 non-secure attribute for pins 0 to 31 of 391 port n */ 392 __IOM uint32_t LOCK; /*!< (@ 0x00000004) Description cluster: Prevent further modification 393 of the corresponding PERM register */ 394 } SPU_GPIOPORT_Type; /*!< Size = 8 (0x8) */ 395 396 397 /** 398 * @brief SPU_FLASHNSC [FLASHNSC] (Unspecified) 399 */ 400 typedef struct { 401 __IOM uint32_t REGION; /*!< (@ 0x00000000) Description cluster: Define which flash region 402 can contain the non-secure callable (NSC) 403 region n */ 404 __IOM uint32_t SIZE; /*!< (@ 0x00000004) Description cluster: Define the size of the non-secure 405 callable (NSC) region n */ 406 } SPU_FLASHNSC_Type; /*!< Size = 8 (0x8) */ 407 408 409 /** 410 * @brief SPU_RAMNSC [RAMNSC] (Unspecified) 411 */ 412 typedef struct { 413 __IOM uint32_t REGION; /*!< (@ 0x00000000) Description cluster: Define which RAM region 414 can contain the non-secure callable (NSC) 415 region n */ 416 __IOM uint32_t SIZE; /*!< (@ 0x00000004) Description cluster: Define the size of the non-secure 417 callable (NSC) region n */ 418 } SPU_RAMNSC_Type; /*!< Size = 8 (0x8) */ 419 420 421 /** 422 * @brief SPU_FLASHREGION [FLASHREGION] (Unspecified) 423 */ 424 typedef struct { 425 __IOM uint32_t PERM; /*!< (@ 0x00000000) Description cluster: Access permissions for flash 426 region n */ 427 } SPU_FLASHREGION_Type; /*!< Size = 4 (0x4) */ 428 429 430 /** 431 * @brief SPU_RAMREGION [RAMREGION] (Unspecified) 432 */ 433 typedef struct { 434 __IOM uint32_t PERM; /*!< (@ 0x00000000) Description cluster: Access permissions for RAM 435 region n */ 436 } SPU_RAMREGION_Type; /*!< Size = 4 (0x4) */ 437 438 439 /** 440 * @brief SPU_PERIPHID [PERIPHID] (Unspecified) 441 */ 442 typedef struct { 443 __IOM uint32_t PERM; /*!< (@ 0x00000000) Description cluster: List capabilities and access 444 permissions for the peripheral with ID n */ 445 } SPU_PERIPHID_Type; /*!< Size = 4 (0x4) */ 446 447 448 /** 449 * @brief OSCILLATORS_XOSC32KI [XOSC32KI] (Unspecified) 450 */ 451 typedef struct { 452 __IOM uint32_t BYPASS; /*!< (@ 0x00000000) Enable or disable bypass of LFCLK crystal oscillator 453 with external clock source */ 454 __IM uint32_t RESERVED[3]; 455 __IOM uint32_t INTCAP; /*!< (@ 0x00000010) Control usage of internal load capacitors */ 456 } OSCILLATORS_XOSC32KI_Type; /*!< Size = 20 (0x14) */ 457 458 459 /** 460 * @brief REGULATORS_VREGMAIN [VREGMAIN] (Unspecified) 461 */ 462 typedef struct { 463 __IOM uint32_t DCDCEN; /*!< (@ 0x00000000) DC/DC enable register for VREGMAIN */ 464 } REGULATORS_VREGMAIN_Type; /*!< Size = 4 (0x4) */ 465 466 467 /** 468 * @brief REGULATORS_VREGRADIO [VREGRADIO] (Unspecified) 469 */ 470 typedef struct { 471 __IM uint32_t RESERVED; 472 __IOM uint32_t DCDCEN; /*!< (@ 0x00000004) DC/DC enable register for VREGRADIO */ 473 } REGULATORS_VREGRADIO_Type; /*!< Size = 8 (0x8) */ 474 475 476 /** 477 * @brief REGULATORS_VREGH [VREGH] (Unspecified) 478 */ 479 typedef struct { 480 __IOM uint32_t DCDCEN; /*!< (@ 0x00000000) DC/DC enable register for VREGH */ 481 __IM uint32_t RESERVED[15]; 482 __IOM uint32_t EXTSILENTEN; /*!< (@ 0x00000040) When VREGH is in DC/DC mode, enable VREGH silent 483 mode to supply external components from 484 VDD. Silent mode has lower voltage ripple. 485 Silent mode is used when DC/DC is enabled, 486 and is ignored in LDO mode. Disabling silent 487 mode reduces current consumption in sleep. */ 488 } REGULATORS_VREGH_Type; /*!< Size = 68 (0x44) */ 489 490 491 /** 492 * @brief CLOCK_HFCLKAUDIO [HFCLKAUDIO] (Unspecified) 493 */ 494 typedef struct { 495 __IOM uint32_t FREQUENCY; /*!< (@ 0x00000000) Audio PLL frequency in 11.176 MHz - 11.402 MHz 496 or 12.165 MHz - 12.411 MHz frequency bands */ 497 } CLOCK_HFCLKAUDIO_Type; /*!< Size = 4 (0x4) */ 498 499 500 /** 501 * @brief RESET_NETWORK [NETWORK] (Unspecified) 502 */ 503 typedef struct { 504 __IM uint32_t RESERVED; 505 __IOM uint32_t FORCEOFF; /*!< (@ 0x00000004) Force network core off */ 506 } RESET_NETWORK_Type; /*!< Size = 8 (0x8) */ 507 508 509 /** 510 * @brief CTRLAPPERI_MAILBOX [MAILBOX] (Unspecified) 511 */ 512 typedef struct { 513 __IM uint32_t RXDATA; /*!< (@ 0x00000000) Data sent from the debugger to the CPU. */ 514 __IM uint32_t RXSTATUS; /*!< (@ 0x00000004) This register shows a status that indicates if 515 data sent from the debugger to the CPU has 516 been read. */ 517 __IM uint32_t RESERVED[30]; 518 __IOM uint32_t TXDATA; /*!< (@ 0x00000080) Data sent from the CPU to the debugger. */ 519 __IM uint32_t TXSTATUS; /*!< (@ 0x00000084) This register shows a status that indicates if 520 the data sent from the CPU to the debugger 521 has been read. */ 522 } CTRLAPPERI_MAILBOX_Type; /*!< Size = 136 (0x88) */ 523 524 525 /** 526 * @brief CTRLAPPERI_ERASEPROTECT [ERASEPROTECT] (Unspecified) 527 */ 528 typedef struct { 529 __IOM uint32_t LOCK; /*!< (@ 0x00000000) This register locks the ERASEPROTECT.DISABLE 530 register from being written until next reset. */ 531 __IOM uint32_t DISABLE; /*!< (@ 0x00000004) This register disables the ERASEPROTECT register 532 and performs an ERASEALL operation. */ 533 } CTRLAPPERI_ERASEPROTECT_Type; /*!< Size = 8 (0x8) */ 534 535 536 /** 537 * @brief CTRLAPPERI_APPROTECT [APPROTECT] (Unspecified) 538 */ 539 typedef struct { 540 __IOM uint32_t LOCK; /*!< (@ 0x00000000) This register locks the APPROTECT.DISABLE register 541 from being written to until next reset. */ 542 __IOM uint32_t DISABLE; /*!< (@ 0x00000004) This register disables the APPROTECT register 543 and enables debug access to non-secure mode. */ 544 } CTRLAPPERI_APPROTECT_Type; /*!< Size = 8 (0x8) */ 545 546 547 /** 548 * @brief CTRLAPPERI_SECUREAPPROTECT [SECUREAPPROTECT] (Unspecified) 549 */ 550 typedef struct { 551 __IOM uint32_t LOCK; /*!< (@ 0x00000000) This register locks the SECUREAPPROTECT.DISABLE 552 register from being written until next reset. */ 553 __IOM uint32_t DISABLE; /*!< (@ 0x00000004) This register disables the SECUREAPPROTECT register 554 and enables debug access to secure mode. */ 555 } CTRLAPPERI_SECUREAPPROTECT_Type; /*!< Size = 8 (0x8) */ 556 557 558 /** 559 * @brief SPIM_PSEL [PSEL] (Unspecified) 560 */ 561 typedef struct { 562 __IOM uint32_t SCK; /*!< (@ 0x00000000) Pin select for SCK */ 563 __IOM uint32_t MOSI; /*!< (@ 0x00000004) Pin select for MOSI signal */ 564 __IOM uint32_t MISO; /*!< (@ 0x00000008) Pin select for MISO signal */ 565 __IOM uint32_t CSN; /*!< (@ 0x0000000C) Pin select for CSN */ 566 } SPIM_PSEL_Type; /*!< Size = 16 (0x10) */ 567 568 569 /** 570 * @brief SPIM_RXD [RXD] (RXD EasyDMA channel) 571 */ 572 typedef struct { 573 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 574 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in receive buffer */ 575 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 576 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 577 } SPIM_RXD_Type; /*!< Size = 16 (0x10) */ 578 579 580 /** 581 * @brief SPIM_TXD [TXD] (TXD EasyDMA channel) 582 */ 583 typedef struct { 584 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 585 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Number of bytes in transmit buffer */ 586 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 587 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 588 } SPIM_TXD_Type; /*!< Size = 16 (0x10) */ 589 590 591 /** 592 * @brief SPIM_IFTIMING [IFTIMING] (Unspecified) 593 */ 594 typedef struct { 595 __IOM uint32_t RXDELAY; /*!< (@ 0x00000000) Sample delay for input serial data on MISO */ 596 __IOM uint32_t CSNDUR; /*!< (@ 0x00000004) Minimum duration between edge of CSN and edge 597 of SCK. When SHORTS.END_START is used, this 598 is also the minimum duration CSN must stay 599 high between transactions. */ 600 } SPIM_IFTIMING_Type; /*!< Size = 8 (0x8) */ 601 602 603 /** 604 * @brief SPIS_PSEL [PSEL] (Unspecified) 605 */ 606 typedef struct { 607 __IOM uint32_t SCK; /*!< (@ 0x00000000) Pin select for SCK */ 608 __IOM uint32_t MISO; /*!< (@ 0x00000004) Pin select for MISO signal */ 609 __IOM uint32_t MOSI; /*!< (@ 0x00000008) Pin select for MOSI signal */ 610 __IOM uint32_t CSN; /*!< (@ 0x0000000C) Pin select for CSN signal */ 611 } SPIS_PSEL_Type; /*!< Size = 16 (0x10) */ 612 613 614 /** 615 * @brief SPIS_RXD [RXD] (Unspecified) 616 */ 617 typedef struct { 618 __IOM uint32_t PTR; /*!< (@ 0x00000000) RXD data pointer */ 619 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in receive buffer */ 620 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes received in last granted transaction */ 621 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 622 } SPIS_RXD_Type; /*!< Size = 16 (0x10) */ 623 624 625 /** 626 * @brief SPIS_TXD [TXD] (Unspecified) 627 */ 628 typedef struct { 629 __IOM uint32_t PTR; /*!< (@ 0x00000000) TXD data pointer */ 630 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in transmit buffer */ 631 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transmitted in last granted transaction */ 632 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 633 } SPIS_TXD_Type; /*!< Size = 16 (0x10) */ 634 635 636 /** 637 * @brief TWIM_PSEL [PSEL] (Unspecified) 638 */ 639 typedef struct { 640 __IOM uint32_t SCL; /*!< (@ 0x00000000) Pin select for SCL signal */ 641 __IOM uint32_t SDA; /*!< (@ 0x00000004) Pin select for SDA signal */ 642 } TWIM_PSEL_Type; /*!< Size = 8 (0x8) */ 643 644 645 /** 646 * @brief TWIM_RXD [RXD] (RXD EasyDMA channel) 647 */ 648 typedef struct { 649 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 650 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in receive buffer */ 651 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 652 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 653 } TWIM_RXD_Type; /*!< Size = 16 (0x10) */ 654 655 656 /** 657 * @brief TWIM_TXD [TXD] (TXD EasyDMA channel) 658 */ 659 typedef struct { 660 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 661 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in transmit buffer */ 662 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 663 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 664 } TWIM_TXD_Type; /*!< Size = 16 (0x10) */ 665 666 667 /** 668 * @brief TWIS_PSEL [PSEL] (Unspecified) 669 */ 670 typedef struct { 671 __IOM uint32_t SCL; /*!< (@ 0x00000000) Pin select for SCL signal */ 672 __IOM uint32_t SDA; /*!< (@ 0x00000004) Pin select for SDA signal */ 673 } TWIS_PSEL_Type; /*!< Size = 8 (0x8) */ 674 675 676 /** 677 * @brief TWIS_RXD [RXD] (RXD EasyDMA channel) 678 */ 679 typedef struct { 680 __IOM uint32_t PTR; /*!< (@ 0x00000000) RXD Data pointer */ 681 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in RXD buffer */ 682 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last RXD transaction */ 683 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 684 } TWIS_RXD_Type; /*!< Size = 16 (0x10) */ 685 686 687 /** 688 * @brief TWIS_TXD [TXD] (TXD EasyDMA channel) 689 */ 690 typedef struct { 691 __IOM uint32_t PTR; /*!< (@ 0x00000000) TXD Data pointer */ 692 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in TXD buffer */ 693 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last TXD transaction */ 694 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 695 } TWIS_TXD_Type; /*!< Size = 16 (0x10) */ 696 697 698 /** 699 * @brief UARTE_PSEL [PSEL] (Unspecified) 700 */ 701 typedef struct { 702 __IOM uint32_t RTS; /*!< (@ 0x00000000) Pin select for RTS signal */ 703 __IOM uint32_t TXD; /*!< (@ 0x00000004) Pin select for TXD signal */ 704 __IOM uint32_t CTS; /*!< (@ 0x00000008) Pin select for CTS signal */ 705 __IOM uint32_t RXD; /*!< (@ 0x0000000C) Pin select for RXD signal */ 706 } UARTE_PSEL_Type; /*!< Size = 16 (0x10) */ 707 708 709 /** 710 * @brief UARTE_RXD [RXD] (RXD EasyDMA channel) 711 */ 712 typedef struct { 713 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 714 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in receive buffer */ 715 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 716 } UARTE_RXD_Type; /*!< Size = 12 (0xc) */ 717 718 719 /** 720 * @brief UARTE_TXD [TXD] (TXD EasyDMA channel) 721 */ 722 typedef struct { 723 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 724 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in transmit buffer */ 725 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 726 } UARTE_TXD_Type; /*!< Size = 12 (0xc) */ 727 728 729 /** 730 * @brief SAADC_EVENTS_CH [EVENTS_CH] (Peripheral events.) 731 */ 732 typedef struct { 733 __IOM uint32_t LIMITH; /*!< (@ 0x00000000) Description cluster: Last results is equal or 734 above CH[n].LIMIT.HIGH */ 735 __IOM uint32_t LIMITL; /*!< (@ 0x00000004) Description cluster: Last results is equal or 736 below CH[n].LIMIT.LOW */ 737 } SAADC_EVENTS_CH_Type; /*!< Size = 8 (0x8) */ 738 739 740 /** 741 * @brief SAADC_PUBLISH_CH [PUBLISH_CH] (Publish configuration for events) 742 */ 743 typedef struct { 744 __IOM uint32_t LIMITH; /*!< (@ 0x00000000) Description cluster: Publish configuration for 745 event CH[n].LIMITH */ 746 __IOM uint32_t LIMITL; /*!< (@ 0x00000004) Description cluster: Publish configuration for 747 event CH[n].LIMITL */ 748 } SAADC_PUBLISH_CH_Type; /*!< Size = 8 (0x8) */ 749 750 751 /** 752 * @brief SAADC_CH [CH] (Unspecified) 753 */ 754 typedef struct { 755 __IOM uint32_t PSELP; /*!< (@ 0x00000000) Description cluster: Input positive pin selection 756 for CH[n] */ 757 __IOM uint32_t PSELN; /*!< (@ 0x00000004) Description cluster: Input negative pin selection 758 for CH[n] */ 759 __IOM uint32_t CONFIG; /*!< (@ 0x00000008) Description cluster: Input configuration for 760 CH[n] */ 761 __IOM uint32_t LIMIT; /*!< (@ 0x0000000C) Description cluster: High/low limits for event 762 monitoring a channel */ 763 } SAADC_CH_Type; /*!< Size = 16 (0x10) */ 764 765 766 /** 767 * @brief SAADC_RESULT [RESULT] (RESULT EasyDMA channel) 768 */ 769 typedef struct { 770 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 771 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of buffer words to transfer */ 772 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of buffer words transferred since last 773 START */ 774 } SAADC_RESULT_Type; /*!< Size = 12 (0xc) */ 775 776 777 /** 778 * @brief DPPIC_TASKS_CHG [TASKS_CHG] (Channel group tasks) 779 */ 780 typedef struct { 781 __OM uint32_t EN; /*!< (@ 0x00000000) Description cluster: Enable channel group n */ 782 __OM uint32_t DIS; /*!< (@ 0x00000004) Description cluster: Disable channel group n */ 783 } DPPIC_TASKS_CHG_Type; /*!< Size = 8 (0x8) */ 784 785 786 /** 787 * @brief DPPIC_SUBSCRIBE_CHG [SUBSCRIBE_CHG] (Subscribe configuration for tasks) 788 */ 789 typedef struct { 790 __IOM uint32_t EN; /*!< (@ 0x00000000) Description cluster: Subscribe configuration 791 for task CHG[n].EN */ 792 __IOM uint32_t DIS; /*!< (@ 0x00000004) Description cluster: Subscribe configuration 793 for task CHG[n].DIS */ 794 } DPPIC_SUBSCRIBE_CHG_Type; /*!< Size = 8 (0x8) */ 795 796 797 /** 798 * @brief PWM_SEQ [SEQ] (Unspecified) 799 */ 800 typedef struct { 801 __IOM uint32_t PTR; /*!< (@ 0x00000000) Description cluster: Beginning address in RAM 802 of this sequence */ 803 __IOM uint32_t CNT; /*!< (@ 0x00000004) Description cluster: Number of values (duty cycles) 804 in this sequence */ 805 __IOM uint32_t REFRESH; /*!< (@ 0x00000008) Description cluster: Number of additional PWM 806 periods between samples loaded into compare 807 register */ 808 __IOM uint32_t ENDDELAY; /*!< (@ 0x0000000C) Description cluster: Time added after the sequence */ 809 __IM uint32_t RESERVED[4]; 810 } PWM_SEQ_Type; /*!< Size = 32 (0x20) */ 811 812 813 /** 814 * @brief PWM_PSEL [PSEL] (Unspecified) 815 */ 816 typedef struct { 817 __IOM uint32_t OUT[4]; /*!< (@ 0x00000000) Description collection: Output pin select for 818 PWM channel n */ 819 } PWM_PSEL_Type; /*!< Size = 16 (0x10) */ 820 821 822 /** 823 * @brief PDM_PSEL [PSEL] (Unspecified) 824 */ 825 typedef struct { 826 __IOM uint32_t CLK; /*!< (@ 0x00000000) Pin number configuration for PDM CLK signal */ 827 __IOM uint32_t DIN; /*!< (@ 0x00000004) Pin number configuration for PDM DIN signal */ 828 } PDM_PSEL_Type; /*!< Size = 8 (0x8) */ 829 830 831 /** 832 * @brief PDM_SAMPLE [SAMPLE] (Unspecified) 833 */ 834 typedef struct { 835 __IOM uint32_t PTR; /*!< (@ 0x00000000) RAM address pointer to write samples to with 836 EasyDMA */ 837 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Number of samples to allocate memory for in EasyDMA 838 mode */ 839 } PDM_SAMPLE_Type; /*!< Size = 8 (0x8) */ 840 841 842 /** 843 * @brief I2S_CONFIG [CONFIG] (Unspecified) 844 */ 845 typedef struct { 846 __IOM uint32_t MODE; /*!< (@ 0x00000000) I2S mode */ 847 __IOM uint32_t RXEN; /*!< (@ 0x00000004) Reception (RX) enable */ 848 __IOM uint32_t TXEN; /*!< (@ 0x00000008) Transmission (TX) enable */ 849 __IOM uint32_t MCKEN; /*!< (@ 0x0000000C) Master clock generator enable */ 850 __IOM uint32_t MCKFREQ; /*!< (@ 0x00000010) I2S clock generator control */ 851 __IOM uint32_t RATIO; /*!< (@ 0x00000014) MCK / LRCK ratio */ 852 __IOM uint32_t SWIDTH; /*!< (@ 0x00000018) Sample width */ 853 __IOM uint32_t ALIGN; /*!< (@ 0x0000001C) Alignment of sample within a frame */ 854 __IOM uint32_t FORMAT; /*!< (@ 0x00000020) Frame format */ 855 __IOM uint32_t CHANNELS; /*!< (@ 0x00000024) Enable channels */ 856 __IOM uint32_t CLKCONFIG; /*!< (@ 0x00000028) Clock source selection for the I2S module */ 857 } I2S_CONFIG_Type; /*!< Size = 44 (0x2c) */ 858 859 860 /** 861 * @brief I2S_RXD [RXD] (Unspecified) 862 */ 863 typedef struct { 864 __IOM uint32_t PTR; /*!< (@ 0x00000000) Receive buffer RAM start address. */ 865 } I2S_RXD_Type; /*!< Size = 4 (0x4) */ 866 867 868 /** 869 * @brief I2S_TXD [TXD] (Unspecified) 870 */ 871 typedef struct { 872 __IOM uint32_t PTR; /*!< (@ 0x00000000) Transmit buffer RAM start address */ 873 } I2S_TXD_Type; /*!< Size = 4 (0x4) */ 874 875 876 /** 877 * @brief I2S_RXTXD [RXTXD] (Unspecified) 878 */ 879 typedef struct { 880 __IOM uint32_t MAXCNT; /*!< (@ 0x00000000) Size of RXD and TXD buffers */ 881 } I2S_RXTXD_Type; /*!< Size = 4 (0x4) */ 882 883 884 /** 885 * @brief I2S_PSEL [PSEL] (Unspecified) 886 */ 887 typedef struct { 888 __IOM uint32_t MCK; /*!< (@ 0x00000000) Pin select for MCK signal */ 889 __IOM uint32_t SCK; /*!< (@ 0x00000004) Pin select for SCK signal */ 890 __IOM uint32_t LRCK; /*!< (@ 0x00000008) Pin select for LRCK signal */ 891 __IOM uint32_t SDIN; /*!< (@ 0x0000000C) Pin select for SDIN signal */ 892 __IOM uint32_t SDOUT; /*!< (@ 0x00000010) Pin select for SDOUT signal */ 893 } I2S_PSEL_Type; /*!< Size = 20 (0x14) */ 894 895 896 /** 897 * @brief QSPI_READ [READ] (Unspecified) 898 */ 899 typedef struct { 900 __IOM uint32_t SRC; /*!< (@ 0x00000000) Flash memory source address */ 901 __IOM uint32_t DST; /*!< (@ 0x00000004) RAM destination address */ 902 __IOM uint32_t CNT; /*!< (@ 0x00000008) Read transfer length */ 903 } QSPI_READ_Type; /*!< Size = 12 (0xc) */ 904 905 906 /** 907 * @brief QSPI_WRITE [WRITE] (Unspecified) 908 */ 909 typedef struct { 910 __IOM uint32_t DST; /*!< (@ 0x00000000) Flash destination address */ 911 __IOM uint32_t SRC; /*!< (@ 0x00000004) RAM source address */ 912 __IOM uint32_t CNT; /*!< (@ 0x00000008) Write transfer length */ 913 } QSPI_WRITE_Type; /*!< Size = 12 (0xc) */ 914 915 916 /** 917 * @brief QSPI_ERASE [ERASE] (Unspecified) 918 */ 919 typedef struct { 920 __IOM uint32_t PTR; /*!< (@ 0x00000000) Start address of flash block to be erased */ 921 __IOM uint32_t LEN; /*!< (@ 0x00000004) Size of block to be erased. */ 922 } QSPI_ERASE_Type; /*!< Size = 8 (0x8) */ 923 924 925 /** 926 * @brief QSPI_PSEL [PSEL] (Unspecified) 927 */ 928 typedef struct { 929 __IOM uint32_t SCK; /*!< (@ 0x00000000) Pin select for serial clock SCK */ 930 __IOM uint32_t CSN; /*!< (@ 0x00000004) Pin select for chip select signal CSN. */ 931 __IM uint32_t RESERVED; 932 __IOM uint32_t IO0; /*!< (@ 0x0000000C) Pin select for serial data MOSI/IO0. */ 933 __IOM uint32_t IO1; /*!< (@ 0x00000010) Pin select for serial data MISO/IO1. */ 934 __IOM uint32_t IO2; /*!< (@ 0x00000014) Pin select for serial data WP/IO2. */ 935 __IOM uint32_t IO3; /*!< (@ 0x00000018) Pin select for serial data HOLD/IO3. */ 936 } QSPI_PSEL_Type; /*!< Size = 28 (0x1c) */ 937 938 939 /** 940 * @brief QSPI_XIP_ENC [XIP_ENC] (Unspecified) 941 */ 942 typedef struct { 943 __OM uint32_t KEY0; /*!< (@ 0x00000000) Bits 31:0 of XIP AES KEY */ 944 __OM uint32_t KEY1; /*!< (@ 0x00000004) Bits 63:32 of XIP AES KEY */ 945 __OM uint32_t KEY2; /*!< (@ 0x00000008) Bits 95:64 of XIP AES KEY */ 946 __OM uint32_t KEY3; /*!< (@ 0x0000000C) Bits 127:96 of XIP AES KEY */ 947 __OM uint32_t NONCE0; /*!< (@ 0x00000010) Bits 31:0 of XIP NONCE */ 948 __OM uint32_t NONCE1; /*!< (@ 0x00000014) Bits 63:32 of XIP NONCE */ 949 __OM uint32_t NONCE2; /*!< (@ 0x00000018) Bits 95:64 of XIP NONCE */ 950 __IOM uint32_t ENABLE; /*!< (@ 0x0000001C) Enable stream cipher for XIP */ 951 } QSPI_XIP_ENC_Type; /*!< Size = 32 (0x20) */ 952 953 954 /** 955 * @brief QSPI_DMA_ENC [DMA_ENC] (Unspecified) 956 */ 957 typedef struct { 958 __OM uint32_t KEY0; /*!< (@ 0x00000000) Bits 31:0 of DMA AES KEY */ 959 __OM uint32_t KEY1; /*!< (@ 0x00000004) Bits 63:32 of DMA AES KEY */ 960 __OM uint32_t KEY2; /*!< (@ 0x00000008) Bits 95:64 of DMA AES KEY */ 961 __OM uint32_t KEY3; /*!< (@ 0x0000000C) Bits 127:96 of DMA AES KEY */ 962 __OM uint32_t NONCE0; /*!< (@ 0x00000010) Bits 31:0 of DMA NONCE */ 963 __OM uint32_t NONCE1; /*!< (@ 0x00000014) Bits 63:32 of DMA NONCE */ 964 __OM uint32_t NONCE2; /*!< (@ 0x00000018) Bits 95:64 of DMA NONCE */ 965 __IOM uint32_t ENABLE; /*!< (@ 0x0000001C) Enable stream cipher for EasyDMA */ 966 } QSPI_DMA_ENC_Type; /*!< Size = 32 (0x20) */ 967 968 969 /** 970 * @brief NFCT_FRAMESTATUS [FRAMESTATUS] (Unspecified) 971 */ 972 typedef struct { 973 __IOM uint32_t RX; /*!< (@ 0x00000000) Result of last incoming frame */ 974 } NFCT_FRAMESTATUS_Type; /*!< Size = 4 (0x4) */ 975 976 977 /** 978 * @brief NFCT_TXD [TXD] (Unspecified) 979 */ 980 typedef struct { 981 __IOM uint32_t FRAMECONFIG; /*!< (@ 0x00000000) Configuration of outgoing frames */ 982 __IOM uint32_t AMOUNT; /*!< (@ 0x00000004) Size of outgoing frame */ 983 } NFCT_TXD_Type; /*!< Size = 8 (0x8) */ 984 985 986 /** 987 * @brief NFCT_RXD [RXD] (Unspecified) 988 */ 989 typedef struct { 990 __IOM uint32_t FRAMECONFIG; /*!< (@ 0x00000000) Configuration of incoming frames */ 991 __IM uint32_t AMOUNT; /*!< (@ 0x00000004) Size of last incoming frame */ 992 } NFCT_RXD_Type; /*!< Size = 8 (0x8) */ 993 994 995 /** 996 * @brief QDEC_PSEL [PSEL] (Unspecified) 997 */ 998 typedef struct { 999 __IOM uint32_t LED; /*!< (@ 0x00000000) Pin select for LED signal */ 1000 __IOM uint32_t A; /*!< (@ 0x00000004) Pin select for A signal */ 1001 __IOM uint32_t B; /*!< (@ 0x00000008) Pin select for B signal */ 1002 } QDEC_PSEL_Type; /*!< Size = 12 (0xc) */ 1003 1004 1005 /** 1006 * @brief USBD_HALTED [HALTED] (Unspecified) 1007 */ 1008 typedef struct { 1009 __IM uint32_t EPIN[8]; /*!< (@ 0x00000000) Description collection: IN endpoint halted status. 1010 Can be used as is as response to a GetStatus() 1011 request to endpoint. */ 1012 __IM uint32_t RESERVED; 1013 __IM uint32_t EPOUT[8]; /*!< (@ 0x00000024) Description collection: OUT endpoint halted status. 1014 Can be used as is as response to a GetStatus() 1015 request to endpoint. */ 1016 } USBD_HALTED_Type; /*!< Size = 68 (0x44) */ 1017 1018 1019 /** 1020 * @brief USBD_SIZE [SIZE] (Unspecified) 1021 */ 1022 typedef struct { 1023 __IOM uint32_t EPOUT[8]; /*!< (@ 0x00000000) Description collection: Number of bytes received 1024 last in the data stage of this OUT endpoint */ 1025 __IM uint32_t ISOOUT; /*!< (@ 0x00000020) Number of bytes received last on this ISO OUT 1026 data endpoint */ 1027 } USBD_SIZE_Type; /*!< Size = 36 (0x24) */ 1028 1029 1030 /** 1031 * @brief USBD_EPIN [EPIN] (Unspecified) 1032 */ 1033 typedef struct { 1034 __IOM uint32_t PTR; /*!< (@ 0x00000000) Description cluster: Data pointer */ 1035 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Description cluster: Maximum number of bytes 1036 to transfer */ 1037 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Description cluster: Number of bytes transferred 1038 in the last transaction */ 1039 __IM uint32_t RESERVED[2]; 1040 } USBD_EPIN_Type; /*!< Size = 20 (0x14) */ 1041 1042 1043 /** 1044 * @brief USBD_ISOIN [ISOIN] (Unspecified) 1045 */ 1046 typedef struct { 1047 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 1048 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes to transfer */ 1049 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 1050 } USBD_ISOIN_Type; /*!< Size = 12 (0xc) */ 1051 1052 1053 /** 1054 * @brief USBD_EPOUT [EPOUT] (Unspecified) 1055 */ 1056 typedef struct { 1057 __IOM uint32_t PTR; /*!< (@ 0x00000000) Description cluster: Data pointer */ 1058 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Description cluster: Maximum number of bytes 1059 to transfer */ 1060 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Description cluster: Number of bytes transferred 1061 in the last transaction */ 1062 __IM uint32_t RESERVED[2]; 1063 } USBD_EPOUT_Type; /*!< Size = 20 (0x14) */ 1064 1065 1066 /** 1067 * @brief USBD_ISOOUT [ISOOUT] (Unspecified) 1068 */ 1069 typedef struct { 1070 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 1071 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes to transfer */ 1072 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 1073 } USBD_ISOOUT_Type; /*!< Size = 12 (0xc) */ 1074 1075 1076 /** 1077 * @brief VMC_RAM [RAM] (Unspecified) 1078 */ 1079 typedef struct { 1080 __IOM uint32_t POWER; /*!< (@ 0x00000000) Description cluster: RAM[n] power control register */ 1081 __IOM uint32_t POWERSET; /*!< (@ 0x00000004) Description cluster: RAM[n] power control set 1082 register */ 1083 __IOM uint32_t POWERCLR; /*!< (@ 0x00000008) Description cluster: RAM[n] power control clear 1084 register */ 1085 __IM uint32_t RESERVED; 1086 } VMC_RAM_Type; /*!< Size = 16 (0x10) */ 1087 1088 1089 /** @} */ /* End of group Device_Peripheral_clusters */ 1090 1091 1092 /* =========================================================================================================================== */ 1093 /* ================ Device Specific Peripheral Section ================ */ 1094 /* =========================================================================================================================== */ 1095 1096 1097 /** @addtogroup Device_Peripheral_peripherals 1098 * @{ 1099 */ 1100 1101 1102 1103 /* =========================================================================================================================== */ 1104 /* ================ CACHEDATA_S ================ */ 1105 /* =========================================================================================================================== */ 1106 1107 1108 /** 1109 * @brief CACHEDATA (CACHEDATA_S) 1110 */ 1111 1112 typedef struct { /*!< (@ 0x00F00000) CACHEDATA_S Structure */ 1113 __IOM CACHEDATA_SET_Type SET[256]; /*!< (@ 0x00000000) Unspecified */ 1114 } NRF_CACHEDATA_Type; /*!< Size = 8192 (0x2000) */ 1115 1116 1117 1118 /* =========================================================================================================================== */ 1119 /* ================ CACHEINFO_S ================ */ 1120 /* =========================================================================================================================== */ 1121 1122 1123 /** 1124 * @brief CACHEINFO (CACHEINFO_S) 1125 */ 1126 1127 typedef struct { /*!< (@ 0x00F08000) CACHEINFO_S Structure */ 1128 __IOM CACHEINFO_SET_Type SET[256]; /*!< (@ 0x00000000) Unspecified */ 1129 } NRF_CACHEINFO_Type; /*!< Size = 2048 (0x800) */ 1130 1131 1132 1133 /* =========================================================================================================================== */ 1134 /* ================ FICR_S ================ */ 1135 /* =========================================================================================================================== */ 1136 1137 1138 /** 1139 * @brief Factory Information Configuration Registers (FICR_S) 1140 */ 1141 1142 typedef struct { /*!< (@ 0x00FF0000) FICR_S Structure */ 1143 __IM uint32_t RESERVED[128]; 1144 __IOM FICR_INFO_Type INFO; /*!< (@ 0x00000200) Device info */ 1145 __IM uint32_t RESERVED1[53]; 1146 __IOM FICR_TRIMCNF_Type TRIMCNF[32]; /*!< (@ 0x00000300) Unspecified */ 1147 __IM uint32_t RESERVED2[20]; 1148 __IOM FICR_NFC_Type NFC; /*!< (@ 0x00000450) Unspecified */ 1149 __IM uint32_t RESERVED3[488]; 1150 __IOM FICR_TRNG90B_Type TRNG90B; /*!< (@ 0x00000C00) NIST800-90B RNG calibration data */ 1151 __IM uint32_t XOSC32MTRIM; /*!< (@ 0x00000C20) XOSC32M capacitor selection trim values */ 1152 } NRF_FICR_Type; /*!< Size = 3108 (0xc24) */ 1153 1154 1155 1156 /* =========================================================================================================================== */ 1157 /* ================ UICR_S ================ */ 1158 /* =========================================================================================================================== */ 1159 1160 1161 /** 1162 * @brief User Information Configuration Registers User information configuration registers (UICR_S) 1163 */ 1164 1165 typedef struct { /*!< (@ 0x00FF8000) UICR_S Structure */ 1166 __IOM uint32_t APPROTECT; /*!< (@ 0x00000000) Access port protection */ 1167 __IM uint32_t RESERVED[3]; 1168 __IOM uint32_t VREGHVOUT; /*!< (@ 0x00000010) Output voltage from the high voltage (VREGH) 1169 regulator stage. The maximum output voltage 1170 from this stage is given as VDDH - VREGHDROP. */ 1171 __IOM uint32_t HFXOCNT; /*!< (@ 0x00000014) HFXO startup counter */ 1172 __IM uint32_t RESERVED1; 1173 __IOM uint32_t SECUREAPPROTECT; /*!< (@ 0x0000001C) Secure access port protection */ 1174 __IOM uint32_t ERASEPROTECT; /*!< (@ 0x00000020) Erase protection */ 1175 __IOM uint32_t TINSTANCE; /*!< (@ 0x00000024) SW-DP Target instance */ 1176 __IOM uint32_t NFCPINS; /*!< (@ 0x00000028) Setting of pins dedicated to NFC functionality: 1177 NFC antenna or GPIO */ 1178 __IM uint32_t RESERVED2[53]; 1179 __IOM uint32_t OTP[192]; /*!< (@ 0x00000100) Description collection: One time programmable 1180 memory */ 1181 __IOM UICR_KEYSLOT_Type KEYSLOT; /*!< (@ 0x00000400) Unspecified */ 1182 } NRF_UICR_Type; /*!< Size = 4096 (0x1000) */ 1183 1184 1185 1186 /* =========================================================================================================================== */ 1187 /* ================ CTI_S ================ */ 1188 /* =========================================================================================================================== */ 1189 1190 1191 /** 1192 * @brief Cross-Trigger Interface control. NOTE: this is not a separate peripheral, but describes CM33 functionality. (CTI_S) 1193 */ 1194 1195 typedef struct { /*!< (@ 0xE0042000) CTI_S Structure */ 1196 __IOM uint32_t CTICONTROL; /*!< (@ 0x00000000) CTI Control register */ 1197 __IM uint32_t RESERVED[3]; 1198 __OM uint32_t CTIINTACK; /*!< (@ 0x00000010) CTI Interrupt Acknowledge register */ 1199 __IOM uint32_t CTIAPPSET; /*!< (@ 0x00000014) CTI Application Trigger Set register */ 1200 __OM uint32_t CTIAPPCLEAR; /*!< (@ 0x00000018) CTI Application Trigger Clear register */ 1201 __OM uint32_t CTIAPPPULSE; /*!< (@ 0x0000001C) CTI Application Pulse register */ 1202 __IOM uint32_t CTIINEN[8]; /*!< (@ 0x00000020) Description collection: CTI Trigger to Channel 1203 Enable register */ 1204 __IM uint32_t RESERVED1[24]; 1205 __IOM uint32_t CTIOUTEN[8]; /*!< (@ 0x000000A0) Description collection: CTI Channel to Trigger 1206 Enable register */ 1207 __IM uint32_t RESERVED2[28]; 1208 __IM uint32_t CTITRIGINSTATUS; /*!< (@ 0x00000130) CTI Trigger In Status register */ 1209 __IM uint32_t CTITRIGOUTSTATUS; /*!< (@ 0x00000134) CTI Trigger Out Status register */ 1210 __IM uint32_t CTICHINSTATUS; /*!< (@ 0x00000138) CTI Channel In Status register */ 1211 __IM uint32_t RESERVED3; 1212 __IOM uint32_t CTIGATE; /*!< (@ 0x00000140) Enable CTI Channel Gate register */ 1213 __IM uint32_t RESERVED4[926]; 1214 __IM uint32_t DEVARCH; /*!< (@ 0x00000FBC) Device Architecture register */ 1215 __IM uint32_t RESERVED5[2]; 1216 __IM uint32_t DEVID; /*!< (@ 0x00000FC8) Device Configuration register */ 1217 __IM uint32_t DEVTYPE; /*!< (@ 0x00000FCC) Device Type Identifier register */ 1218 __IM uint32_t PIDR4; /*!< (@ 0x00000FD0) Peripheral ID4 Register */ 1219 __IM uint32_t PIDR5; /*!< (@ 0x00000FD4) Peripheral ID5 register */ 1220 __IM uint32_t PIDR6; /*!< (@ 0x00000FD8) Peripheral ID6 register */ 1221 __IM uint32_t PIDR7; /*!< (@ 0x00000FDC) Peripheral ID7 register */ 1222 __IM uint32_t PIDR0; /*!< (@ 0x00000FE0) Peripheral ID0 Register */ 1223 __IM uint32_t PIDR1; /*!< (@ 0x00000FE4) Peripheral ID1 Register */ 1224 __IM uint32_t PIDR2; /*!< (@ 0x00000FE8) Peripheral ID2 Register */ 1225 __IM uint32_t PIDR3; /*!< (@ 0x00000FEC) Peripheral ID3 Register */ 1226 __IM uint32_t CIDR0; /*!< (@ 0x00000FF0) Component ID0 Register */ 1227 __IM uint32_t CIDR1; /*!< (@ 0x00000FF4) Component ID1 Register */ 1228 __IM uint32_t CIDR2; /*!< (@ 0x00000FF8) Component ID2 Register */ 1229 __IM uint32_t CIDR3; /*!< (@ 0x00000FFC) Component ID3 Register */ 1230 } NRF_CTI_Type; /*!< Size = 4096 (0x1000) */ 1231 1232 1233 1234 /* =========================================================================================================================== */ 1235 /* ================ TAD_S ================ */ 1236 /* =========================================================================================================================== */ 1237 1238 1239 /** 1240 * @brief Trace and debug control (TAD_S) 1241 */ 1242 1243 typedef struct { /*!< (@ 0xE0080000) TAD_S Structure */ 1244 __IM uint32_t RESERVED; 1245 __OM uint32_t CLOCKSTART; /*!< (@ 0x00000004) Start all trace and debug clocks. */ 1246 __OM uint32_t CLOCKSTOP; /*!< (@ 0x00000008) Stop all trace and debug clocks. */ 1247 __IM uint32_t RESERVED1[317]; 1248 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable debug domain and aquire selected GPIOs */ 1249 __IOM TAD_PSEL_Type PSEL; /*!< (@ 0x00000504) Unspecified */ 1250 __IOM uint32_t TRACEPORTSPEED; /*!< (@ 0x00000518) Clocking options for the Trace Port debug interface 1251 Reset behavior is the same as debug components */ 1252 } NRF_TAD_Type; /*!< Size = 1308 (0x51c) */ 1253 1254 1255 1256 /* =========================================================================================================================== */ 1257 /* ================ DCNF_NS ================ */ 1258 /* =========================================================================================================================== */ 1259 1260 1261 /** 1262 * @brief Domain configuration management 0 (DCNF_NS) 1263 */ 1264 1265 typedef struct { /*!< (@ 0x40000000) DCNF_NS Structure */ 1266 __IM uint32_t RESERVED[264]; 1267 __IM uint32_t CPUID; /*!< (@ 0x00000420) CPU ID of this subsystem */ 1268 __IM uint32_t RESERVED1[7]; 1269 __IOM DCNF_EXTPERI_Type EXTPERI[1]; /*!< (@ 0x00000440) Unspecified */ 1270 __IM uint32_t RESERVED2[7]; 1271 __IOM DCNF_EXTRAM_Type EXTRAM[1]; /*!< (@ 0x00000460) Unspecified */ 1272 __IM uint32_t RESERVED3[7]; 1273 __IOM DCNF_EXTCODE_Type EXTCODE[1]; /*!< (@ 0x00000480) Unspecified */ 1274 } NRF_DCNF_Type; /*!< Size = 1156 (0x484) */ 1275 1276 1277 1278 /* =========================================================================================================================== */ 1279 /* ================ FPU_NS ================ */ 1280 /* =========================================================================================================================== */ 1281 1282 1283 /** 1284 * @brief FPU control peripheral 0 (FPU_NS) 1285 */ 1286 1287 typedef struct { /*!< (@ 0x40000000) FPU_NS Structure */ 1288 __IM uint32_t RESERVED[64]; 1289 __IOM uint32_t EVENTS_INVALIDOPERATION; /*!< (@ 0x00000100) An FPUIOC exception triggered by an invalid operation 1290 has occurred in the FPU */ 1291 __IOM uint32_t EVENTS_DIVIDEBYZERO; /*!< (@ 0x00000104) An FPUDZC exception triggered by a floating-point 1292 divide-by-zero operation has occurred in 1293 the FPU */ 1294 __IOM uint32_t EVENTS_OVERFLOW; /*!< (@ 0x00000108) An FPUOFC exception triggered by a floating-point 1295 overflow has occurred in the FPU */ 1296 __IOM uint32_t EVENTS_UNDERFLOW; /*!< (@ 0x0000010C) An FPUUFC exception triggered by a floating-point 1297 underflow has occurred in the FPU */ 1298 __IOM uint32_t EVENTS_INEXACT; /*!< (@ 0x00000110) An FPUIXC exception triggered by an inexact floating-point 1299 operation has occurred in the FPU */ 1300 __IOM uint32_t EVENTS_DENORMALINPUT; /*!< (@ 0x00000114) An FPUIDC exception triggered by a denormal floating-point 1301 input has occurred in the FPU */ 1302 __IM uint32_t RESERVED1[122]; 1303 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1304 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1305 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1306 } NRF_FPU_Type; /*!< Size = 780 (0x30c) */ 1307 1308 1309 1310 /* =========================================================================================================================== */ 1311 /* ================ CACHE_S ================ */ 1312 /* =========================================================================================================================== */ 1313 1314 1315 /** 1316 * @brief Cache (CACHE_S) 1317 */ 1318 1319 typedef struct { /*!< (@ 0x50001000) CACHE_S Structure */ 1320 __IM uint32_t RESERVED[256]; 1321 __IOM CACHE_PROFILING_Type PROFILING[2]; /*!< (@ 0x00000400) Unspecified */ 1322 __IM uint32_t RESERVED1[48]; 1323 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable cache. */ 1324 __OM uint32_t INVALIDATE; /*!< (@ 0x00000504) Invalidate the cache. */ 1325 __OM uint32_t ERASE; /*!< (@ 0x00000508) Erase the cache. */ 1326 __IOM uint32_t PROFILINGENABLE; /*!< (@ 0x0000050C) Enable the profiling counters. */ 1327 __OM uint32_t PROFILINGCLEAR; /*!< (@ 0x00000510) Clear the profiling counters. */ 1328 __IOM uint32_t MODE; /*!< (@ 0x00000514) Cache mode. Switching from Cache to Ram mode 1329 causes the RAM to be cleared. Switching 1330 from RAM to Cache mode causes the cache 1331 to be invalidated. */ 1332 __IOM uint32_t DEBUGLOCK; /*!< (@ 0x00000518) Lock debug mode. */ 1333 __IOM uint32_t ERASESTATUS; /*!< (@ 0x0000051C) Cache erase status. */ 1334 __IOM uint32_t WRITELOCK; /*!< (@ 0x00000520) Lock cache updates. Prevents updating of cache 1335 content on cache misses, but will continue 1336 to lookup instruction/data fetches in content 1337 already present in the cache. Ignored in 1338 RAM mode. */ 1339 } NRF_CACHE_Type; /*!< Size = 1316 (0x524) */ 1340 1341 1342 1343 /* =========================================================================================================================== */ 1344 /* ================ SPU_S ================ */ 1345 /* =========================================================================================================================== */ 1346 1347 1348 /** 1349 * @brief System protection unit (SPU_S) 1350 */ 1351 1352 typedef struct { /*!< (@ 0x50003000) SPU_S Structure */ 1353 __IM uint32_t RESERVED[64]; 1354 __IOM uint32_t EVENTS_RAMACCERR; /*!< (@ 0x00000100) A security violation has been detected for the 1355 RAM memory space */ 1356 __IOM uint32_t EVENTS_FLASHACCERR; /*!< (@ 0x00000104) A security violation has been detected for the 1357 flash memory space */ 1358 __IOM uint32_t EVENTS_PERIPHACCERR; /*!< (@ 0x00000108) A security violation has been detected on one 1359 or several peripherals */ 1360 __IM uint32_t RESERVED1[29]; 1361 __IOM uint32_t PUBLISH_RAMACCERR; /*!< (@ 0x00000180) Publish configuration for event RAMACCERR */ 1362 __IOM uint32_t PUBLISH_FLASHACCERR; /*!< (@ 0x00000184) Publish configuration for event FLASHACCERR */ 1363 __IOM uint32_t PUBLISH_PERIPHACCERR; /*!< (@ 0x00000188) Publish configuration for event PERIPHACCERR */ 1364 __IM uint32_t RESERVED2[93]; 1365 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1366 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1367 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1368 __IM uint32_t RESERVED3[61]; 1369 __IM uint32_t CAP; /*!< (@ 0x00000400) Show implemented features for the current device */ 1370 __IOM uint32_t CPULOCK; /*!< (@ 0x00000404) Configure bits to lock down CPU features at runtime */ 1371 __IM uint32_t RESERVED4[14]; 1372 __IOM SPU_EXTDOMAIN_Type EXTDOMAIN[1]; /*!< (@ 0x00000440) Unspecified */ 1373 __IM uint32_t RESERVED5[15]; 1374 __IOM SPU_DPPI_Type DPPI[1]; /*!< (@ 0x00000480) Unspecified */ 1375 __IM uint32_t RESERVED6[14]; 1376 __IOM SPU_GPIOPORT_Type GPIOPORT[2]; /*!< (@ 0x000004C0) Unspecified */ 1377 __IM uint32_t RESERVED7[12]; 1378 __IOM SPU_FLASHNSC_Type FLASHNSC[2]; /*!< (@ 0x00000500) Unspecified */ 1379 __IM uint32_t RESERVED8[12]; 1380 __IOM SPU_RAMNSC_Type RAMNSC[2]; /*!< (@ 0x00000540) Unspecified */ 1381 __IM uint32_t RESERVED9[44]; 1382 __IOM SPU_FLASHREGION_Type FLASHREGION[64]; /*!< (@ 0x00000600) Unspecified */ 1383 __IOM SPU_RAMREGION_Type RAMREGION[64]; /*!< (@ 0x00000700) Unspecified */ 1384 __IOM SPU_PERIPHID_Type PERIPHID[256]; /*!< (@ 0x00000800) Unspecified */ 1385 } NRF_SPU_Type; /*!< Size = 3072 (0xc00) */ 1386 1387 1388 1389 /* =========================================================================================================================== */ 1390 /* ================ OSCILLATORS_NS ================ */ 1391 /* =========================================================================================================================== */ 1392 1393 1394 /** 1395 * @brief Oscillator control 0 (OSCILLATORS_NS) 1396 */ 1397 1398 typedef struct { /*!< (@ 0x40004000) OSCILLATORS_NS Structure */ 1399 __IM uint32_t RESERVED[369]; 1400 __IOM uint32_t XOSC32MCAPS; /*!< (@ 0x000005C4) Programmable capacitance of XC1 and XC2 */ 1401 __IM uint32_t RESERVED1[62]; 1402 __IOM OSCILLATORS_XOSC32KI_Type XOSC32KI; /*!< (@ 0x000006C0) Unspecified */ 1403 } NRF_OSCILLATORS_Type; /*!< Size = 1748 (0x6d4) */ 1404 1405 1406 1407 /* =========================================================================================================================== */ 1408 /* ================ REGULATORS_NS ================ */ 1409 /* =========================================================================================================================== */ 1410 1411 1412 /** 1413 * @brief Voltage regulators 0 (REGULATORS_NS) 1414 */ 1415 1416 typedef struct { /*!< (@ 0x40004000) REGULATORS_NS Structure */ 1417 __IM uint32_t RESERVED[266]; 1418 __IM uint32_t MAINREGSTATUS; /*!< (@ 0x00000428) Main supply status */ 1419 __IM uint32_t RESERVED1[53]; 1420 __OM uint32_t SYSTEMOFF; /*!< (@ 0x00000500) System OFF register */ 1421 __IM uint32_t RESERVED2[3]; 1422 __IOM uint32_t POFCON; /*!< (@ 0x00000510) Power-fail comparator configuration */ 1423 __IM uint32_t RESERVED3[124]; 1424 __IOM REGULATORS_VREGMAIN_Type VREGMAIN; /*!< (@ 0x00000704) Unspecified */ 1425 __IM uint32_t RESERVED4[126]; 1426 __IOM REGULATORS_VREGRADIO_Type VREGRADIO; /*!< (@ 0x00000900) Unspecified */ 1427 __IM uint32_t RESERVED5[126]; 1428 __IOM REGULATORS_VREGH_Type VREGH; /*!< (@ 0x00000B00) Unspecified */ 1429 } NRF_REGULATORS_Type; /*!< Size = 2884 (0xb44) */ 1430 1431 1432 1433 /* =========================================================================================================================== */ 1434 /* ================ CLOCK_NS ================ */ 1435 /* =========================================================================================================================== */ 1436 1437 1438 /** 1439 * @brief Clock management 0 (CLOCK_NS) 1440 */ 1441 1442 typedef struct { /*!< (@ 0x40005000) CLOCK_NS Structure */ 1443 __OM uint32_t TASKS_HFCLKSTART; /*!< (@ 0x00000000) Start HFCLK128M/HFCLK64M source as selected in 1444 HFCLKSRC */ 1445 __OM uint32_t TASKS_HFCLKSTOP; /*!< (@ 0x00000004) Stop HFCLK128M/HFCLK64M source */ 1446 __OM uint32_t TASKS_LFCLKSTART; /*!< (@ 0x00000008) Start LFCLK source as selected in LFCLKSRC */ 1447 __OM uint32_t TASKS_LFCLKSTOP; /*!< (@ 0x0000000C) Stop LFCLK source */ 1448 __OM uint32_t TASKS_CAL; /*!< (@ 0x00000010) Start calibration of LFRC oscillator */ 1449 __IM uint32_t RESERVED; 1450 __OM uint32_t TASKS_HFCLKAUDIOSTART; /*!< (@ 0x00000018) Start HFCLKAUDIO source */ 1451 __OM uint32_t TASKS_HFCLKAUDIOSTOP; /*!< (@ 0x0000001C) Stop HFCLKAUDIO source */ 1452 __OM uint32_t TASKS_HFCLK192MSTART; /*!< (@ 0x00000020) Start HFCLK192M source as selected in HFCLK192MSRC */ 1453 __OM uint32_t TASKS_HFCLK192MSTOP; /*!< (@ 0x00000024) Stop HFCLK192M source */ 1454 __IM uint32_t RESERVED1[22]; 1455 __IOM uint32_t SUBSCRIBE_HFCLKSTART; /*!< (@ 0x00000080) Subscribe configuration for task HFCLKSTART */ 1456 __IOM uint32_t SUBSCRIBE_HFCLKSTOP; /*!< (@ 0x00000084) Subscribe configuration for task HFCLKSTOP */ 1457 __IOM uint32_t SUBSCRIBE_LFCLKSTART; /*!< (@ 0x00000088) Subscribe configuration for task LFCLKSTART */ 1458 __IOM uint32_t SUBSCRIBE_LFCLKSTOP; /*!< (@ 0x0000008C) Subscribe configuration for task LFCLKSTOP */ 1459 __IOM uint32_t SUBSCRIBE_CAL; /*!< (@ 0x00000090) Subscribe configuration for task CAL */ 1460 __IM uint32_t RESERVED2; 1461 __IOM uint32_t SUBSCRIBE_HFCLKAUDIOSTART; /*!< (@ 0x00000098) Subscribe configuration for task HFCLKAUDIOSTART */ 1462 __IOM uint32_t SUBSCRIBE_HFCLKAUDIOSTOP; /*!< (@ 0x0000009C) Subscribe configuration for task HFCLKAUDIOSTOP */ 1463 __IOM uint32_t SUBSCRIBE_HFCLK192MSTART; /*!< (@ 0x000000A0) Subscribe configuration for task HFCLK192MSTART */ 1464 __IOM uint32_t SUBSCRIBE_HFCLK192MSTOP; /*!< (@ 0x000000A4) Subscribe configuration for task HFCLK192MSTOP */ 1465 __IM uint32_t RESERVED3[22]; 1466 __IOM uint32_t EVENTS_HFCLKSTARTED; /*!< (@ 0x00000100) HFCLK128M/HFCLK64M source started */ 1467 __IOM uint32_t EVENTS_LFCLKSTARTED; /*!< (@ 0x00000104) LFCLK source started */ 1468 __IM uint32_t RESERVED4[5]; 1469 __IOM uint32_t EVENTS_DONE; /*!< (@ 0x0000011C) Calibration of LFRC oscillator complete event */ 1470 __IOM uint32_t EVENTS_HFCLKAUDIOSTARTED; /*!< (@ 0x00000120) HFCLKAUDIO source started */ 1471 __IOM uint32_t EVENTS_HFCLK192MSTARTED; /*!< (@ 0x00000124) HFCLK192M source started */ 1472 __IM uint32_t RESERVED5[22]; 1473 __IOM uint32_t PUBLISH_HFCLKSTARTED; /*!< (@ 0x00000180) Publish configuration for event HFCLKSTARTED */ 1474 __IOM uint32_t PUBLISH_LFCLKSTARTED; /*!< (@ 0x00000184) Publish configuration for event LFCLKSTARTED */ 1475 __IM uint32_t RESERVED6[5]; 1476 __IOM uint32_t PUBLISH_DONE; /*!< (@ 0x0000019C) Publish configuration for event DONE */ 1477 __IOM uint32_t PUBLISH_HFCLKAUDIOSTARTED; /*!< (@ 0x000001A0) Publish configuration for event HFCLKAUDIOSTARTED */ 1478 __IOM uint32_t PUBLISH_HFCLK192MSTARTED; /*!< (@ 0x000001A4) Publish configuration for event HFCLK192MSTARTED */ 1479 __IM uint32_t RESERVED7[86]; 1480 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1481 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1482 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1483 __IM uint32_t INTPEND; /*!< (@ 0x0000030C) Pending interrupts */ 1484 __IM uint32_t RESERVED8[62]; 1485 __IM uint32_t HFCLKRUN; /*!< (@ 0x00000408) Status indicating that HFCLKSTART task has been 1486 triggered */ 1487 __IM uint32_t HFCLKSTAT; /*!< (@ 0x0000040C) Status indicating which HFCLK128M/HFCLK64M source 1488 is running This register value in any CLOCK 1489 instance reflects status only due to configurations/action 1490 in that CLOCK instance. */ 1491 __IM uint32_t RESERVED9; 1492 __IM uint32_t LFCLKRUN; /*!< (@ 0x00000414) Status indicating that LFCLKSTART task has been 1493 triggered */ 1494 __IM uint32_t LFCLKSTAT; /*!< (@ 0x00000418) Status indicating which LFCLK source is running 1495 This register value in any CLOCK instance 1496 reflects status only due to configurations/actions 1497 in that CLOCK instance. */ 1498 __IM uint32_t LFCLKSRCCOPY; /*!< (@ 0x0000041C) Copy of LFCLKSRC register, set when LFCLKSTART 1499 task was triggered */ 1500 __IM uint32_t RESERVED10[12]; 1501 __IM uint32_t HFCLKAUDIORUN; /*!< (@ 0x00000450) Status indicating that HFCLKAUDIOSTART task has 1502 been triggered */ 1503 __IM uint32_t HFCLKAUDIOSTAT; /*!< (@ 0x00000454) Status indicating which HFCLKAUDIO source is 1504 running */ 1505 __IM uint32_t HFCLK192MRUN; /*!< (@ 0x00000458) Status indicating that HFCLK192MSTART task has 1506 been triggered */ 1507 __IM uint32_t HFCLK192MSTAT; /*!< (@ 0x0000045C) Status indicating which HFCLK192M source is running */ 1508 __IM uint32_t RESERVED11[45]; 1509 __IOM uint32_t HFCLKSRC; /*!< (@ 0x00000514) Clock source for HFCLK128M/HFCLK64M */ 1510 __IOM uint32_t LFCLKSRC; /*!< (@ 0x00000518) Clock source for LFCLK */ 1511 __IM uint32_t RESERVED12[15]; 1512 __IOM uint32_t HFCLKCTRL; /*!< (@ 0x00000558) HFCLK128M frequency configuration */ 1513 __IOM CLOCK_HFCLKAUDIO_Type HFCLKAUDIO; /*!< (@ 0x0000055C) Unspecified */ 1514 __IM uint32_t RESERVED13[4]; 1515 __IOM uint32_t HFCLKALWAYSRUN; /*!< (@ 0x00000570) Automatic or manual control of HFCLK128M/HFCLK64M */ 1516 __IOM uint32_t LFCLKALWAYSRUN; /*!< (@ 0x00000574) Automatic or manual control of LFCLK */ 1517 __IM uint32_t RESERVED14; 1518 __IOM uint32_t HFCLKAUDIOALWAYSRUN; /*!< (@ 0x0000057C) Automatic or manual control of HFCLKAUDIO */ 1519 __IOM uint32_t HFCLK192MSRC; /*!< (@ 0x00000580) Clock source for HFCLK192M */ 1520 __IOM uint32_t HFCLK192MALWAYSRUN; /*!< (@ 0x00000584) Automatic or manual control of HFCLK192M */ 1521 __IM uint32_t RESERVED15[12]; 1522 __IOM uint32_t HFCLK192MCTRL; /*!< (@ 0x000005B8) HFCLK192M frequency configuration */ 1523 } NRF_CLOCK_Type; /*!< Size = 1468 (0x5bc) */ 1524 1525 1526 1527 /* =========================================================================================================================== */ 1528 /* ================ POWER_NS ================ */ 1529 /* =========================================================================================================================== */ 1530 1531 1532 /** 1533 * @brief Power control 0 (POWER_NS) 1534 */ 1535 1536 typedef struct { /*!< (@ 0x40005000) POWER_NS Structure */ 1537 __IM uint32_t RESERVED[30]; 1538 __OM uint32_t TASKS_CONSTLAT; /*!< (@ 0x00000078) Enable Constant Latency mode */ 1539 __OM uint32_t TASKS_LOWPWR; /*!< (@ 0x0000007C) Enable Low-Power mode (variable latency) */ 1540 __IM uint32_t RESERVED1[30]; 1541 __IOM uint32_t SUBSCRIBE_CONSTLAT; /*!< (@ 0x000000F8) Subscribe configuration for task CONSTLAT */ 1542 __IOM uint32_t SUBSCRIBE_LOWPWR; /*!< (@ 0x000000FC) Subscribe configuration for task LOWPWR */ 1543 __IM uint32_t RESERVED2[2]; 1544 __IOM uint32_t EVENTS_POFWARN; /*!< (@ 0x00000108) Power failure warning */ 1545 __IM uint32_t RESERVED3[2]; 1546 __IOM uint32_t EVENTS_SLEEPENTER; /*!< (@ 0x00000114) CPU entered WFI/WFE sleep */ 1547 __IOM uint32_t EVENTS_SLEEPEXIT; /*!< (@ 0x00000118) CPU exited WFI/WFE sleep */ 1548 __IM uint32_t RESERVED4[27]; 1549 __IOM uint32_t PUBLISH_POFWARN; /*!< (@ 0x00000188) Publish configuration for event POFWARN */ 1550 __IM uint32_t RESERVED5[2]; 1551 __IOM uint32_t PUBLISH_SLEEPENTER; /*!< (@ 0x00000194) Publish configuration for event SLEEPENTER */ 1552 __IOM uint32_t PUBLISH_SLEEPEXIT; /*!< (@ 0x00000198) Publish configuration for event SLEEPEXIT */ 1553 __IM uint32_t RESERVED6[89]; 1554 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1555 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1556 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1557 __IM uint32_t RESERVED7[132]; 1558 __IOM uint32_t GPREGRET[2]; /*!< (@ 0x0000051C) Description collection: General purpose retention 1559 register */ 1560 } NRF_POWER_Type; /*!< Size = 1316 (0x524) */ 1561 1562 1563 1564 /* =========================================================================================================================== */ 1565 /* ================ RESET_NS ================ */ 1566 /* =========================================================================================================================== */ 1567 1568 1569 /** 1570 * @brief Reset control 0 (RESET_NS) 1571 */ 1572 1573 typedef struct { /*!< (@ 0x40005000) RESET_NS Structure */ 1574 __IM uint32_t RESERVED[256]; 1575 __IOM uint32_t RESETREAS; /*!< (@ 0x00000400) Reset reason */ 1576 __IM uint32_t RESERVED1[131]; 1577 __IOM RESET_NETWORK_Type NETWORK; /*!< (@ 0x00000610) Unspecified */ 1578 } NRF_RESET_Type; /*!< Size = 1560 (0x618) */ 1579 1580 1581 1582 /* =========================================================================================================================== */ 1583 /* ================ CTRLAP_NS ================ */ 1584 /* =========================================================================================================================== */ 1585 1586 1587 /** 1588 * @brief Control access port 0 (CTRLAP_NS) 1589 */ 1590 1591 typedef struct { /*!< (@ 0x40006000) CTRLAP_NS Structure */ 1592 __IM uint32_t RESERVED[256]; 1593 __IOM CTRLAPPERI_MAILBOX_Type MAILBOX; /*!< (@ 0x00000400) Unspecified */ 1594 __IM uint32_t RESERVED1[30]; 1595 __IOM CTRLAPPERI_ERASEPROTECT_Type ERASEPROTECT;/*!< (@ 0x00000500) Unspecified */ 1596 __IM uint32_t RESERVED2[14]; 1597 __IOM CTRLAPPERI_APPROTECT_Type APPROTECT; /*!< (@ 0x00000540) Unspecified */ 1598 __IOM CTRLAPPERI_SECUREAPPROTECT_Type SECUREAPPROTECT;/*!< (@ 0x00000548) Unspecified */ 1599 __IM uint32_t RESERVED3[44]; 1600 __IM uint32_t STATUS; /*!< (@ 0x00000600) Status bits for CTRL-AP peripheral. */ 1601 } NRF_CTRLAPPERI_Type; /*!< Size = 1540 (0x604) */ 1602 1603 1604 1605 /* =========================================================================================================================== */ 1606 /* ================ SPIM0_NS ================ */ 1607 /* =========================================================================================================================== */ 1608 1609 1610 /** 1611 * @brief Serial Peripheral Interface Master with EasyDMA 0 (SPIM0_NS) 1612 */ 1613 1614 typedef struct { /*!< (@ 0x40008000) SPIM0_NS Structure */ 1615 __IM uint32_t RESERVED[4]; 1616 __OM uint32_t TASKS_START; /*!< (@ 0x00000010) Start SPI transaction */ 1617 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000014) Stop SPI transaction */ 1618 __IM uint32_t RESERVED1; 1619 __OM uint32_t TASKS_SUSPEND; /*!< (@ 0x0000001C) Suspend SPI transaction */ 1620 __OM uint32_t TASKS_RESUME; /*!< (@ 0x00000020) Resume SPI transaction */ 1621 __IM uint32_t RESERVED2[27]; 1622 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000090) Subscribe configuration for task START */ 1623 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000094) Subscribe configuration for task STOP */ 1624 __IM uint32_t RESERVED3; 1625 __IOM uint32_t SUBSCRIBE_SUSPEND; /*!< (@ 0x0000009C) Subscribe configuration for task SUSPEND */ 1626 __IOM uint32_t SUBSCRIBE_RESUME; /*!< (@ 0x000000A0) Subscribe configuration for task RESUME */ 1627 __IM uint32_t RESERVED4[24]; 1628 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000104) SPI transaction has stopped */ 1629 __IM uint32_t RESERVED5[2]; 1630 __IOM uint32_t EVENTS_ENDRX; /*!< (@ 0x00000110) End of RXD buffer reached */ 1631 __IM uint32_t RESERVED6; 1632 __IOM uint32_t EVENTS_END; /*!< (@ 0x00000118) End of RXD buffer and TXD buffer reached */ 1633 __IM uint32_t RESERVED7; 1634 __IOM uint32_t EVENTS_ENDTX; /*!< (@ 0x00000120) End of TXD buffer reached */ 1635 __IM uint32_t RESERVED8[10]; 1636 __IOM uint32_t EVENTS_STARTED; /*!< (@ 0x0000014C) Transaction started */ 1637 __IM uint32_t RESERVED9[13]; 1638 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000184) Publish configuration for event STOPPED */ 1639 __IM uint32_t RESERVED10[2]; 1640 __IOM uint32_t PUBLISH_ENDRX; /*!< (@ 0x00000190) Publish configuration for event ENDRX */ 1641 __IM uint32_t RESERVED11; 1642 __IOM uint32_t PUBLISH_END; /*!< (@ 0x00000198) Publish configuration for event END */ 1643 __IM uint32_t RESERVED12; 1644 __IOM uint32_t PUBLISH_ENDTX; /*!< (@ 0x000001A0) Publish configuration for event ENDTX */ 1645 __IM uint32_t RESERVED13[10]; 1646 __IOM uint32_t PUBLISH_STARTED; /*!< (@ 0x000001CC) Publish configuration for event STARTED */ 1647 __IM uint32_t RESERVED14[12]; 1648 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1649 __IM uint32_t RESERVED15[64]; 1650 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1651 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1652 __IM uint32_t RESERVED16[61]; 1653 __IOM uint32_t STALLSTAT; /*!< (@ 0x00000400) Stall status for EasyDMA RAM accesses. The fields 1654 in this register are set to STALL by hardware 1655 whenever a stall occurres and can be cleared 1656 (set to NOSTALL) by the CPU. */ 1657 __IM uint32_t RESERVED17[63]; 1658 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable SPIM */ 1659 __IM uint32_t RESERVED18; 1660 __IOM SPIM_PSEL_Type PSEL; /*!< (@ 0x00000508) Unspecified */ 1661 __IM uint32_t RESERVED19[3]; 1662 __IOM uint32_t FREQUENCY; /*!< (@ 0x00000524) SPI frequency. Accuracy depends on the HFCLK 1663 source selected. */ 1664 __IM uint32_t RESERVED20[3]; 1665 __IOM SPIM_RXD_Type RXD; /*!< (@ 0x00000534) RXD EasyDMA channel */ 1666 __IOM SPIM_TXD_Type TXD; /*!< (@ 0x00000544) TXD EasyDMA channel */ 1667 __IOM uint32_t CONFIG; /*!< (@ 0x00000554) Configuration register */ 1668 __IM uint32_t RESERVED21[2]; 1669 __IOM SPIM_IFTIMING_Type IFTIMING; /*!< (@ 0x00000560) Unspecified */ 1670 __IOM uint32_t CSNPOL; /*!< (@ 0x00000568) Polarity of CSN output */ 1671 __IOM uint32_t PSELDCX; /*!< (@ 0x0000056C) Pin select for DCX signal */ 1672 __IOM uint32_t DCXCNT; /*!< (@ 0x00000570) DCX configuration */ 1673 __IM uint32_t RESERVED22[19]; 1674 __IOM uint32_t ORC; /*!< (@ 0x000005C0) Byte transmitted after TXD.MAXCNT bytes have 1675 been transmitted in the case when RXD.MAXCNT 1676 is greater than TXD.MAXCNT */ 1677 } NRF_SPIM_Type; /*!< Size = 1476 (0x5c4) */ 1678 1679 1680 1681 /* =========================================================================================================================== */ 1682 /* ================ SPIS0_NS ================ */ 1683 /* =========================================================================================================================== */ 1684 1685 1686 /** 1687 * @brief SPI Slave 0 (SPIS0_NS) 1688 */ 1689 1690 typedef struct { /*!< (@ 0x40008000) SPIS0_NS Structure */ 1691 __IM uint32_t RESERVED[9]; 1692 __OM uint32_t TASKS_ACQUIRE; /*!< (@ 0x00000024) Acquire SPI semaphore */ 1693 __OM uint32_t TASKS_RELEASE; /*!< (@ 0x00000028) Release SPI semaphore, enabling the SPI slave 1694 to acquire it */ 1695 __IM uint32_t RESERVED1[30]; 1696 __IOM uint32_t SUBSCRIBE_ACQUIRE; /*!< (@ 0x000000A4) Subscribe configuration for task ACQUIRE */ 1697 __IOM uint32_t SUBSCRIBE_RELEASE; /*!< (@ 0x000000A8) Subscribe configuration for task RELEASE */ 1698 __IM uint32_t RESERVED2[22]; 1699 __IOM uint32_t EVENTS_END; /*!< (@ 0x00000104) Granted transaction completed */ 1700 __IM uint32_t RESERVED3[2]; 1701 __IOM uint32_t EVENTS_ENDRX; /*!< (@ 0x00000110) End of RXD buffer reached */ 1702 __IM uint32_t RESERVED4[5]; 1703 __IOM uint32_t EVENTS_ACQUIRED; /*!< (@ 0x00000128) Semaphore acquired */ 1704 __IM uint32_t RESERVED5[22]; 1705 __IOM uint32_t PUBLISH_END; /*!< (@ 0x00000184) Publish configuration for event END */ 1706 __IM uint32_t RESERVED6[2]; 1707 __IOM uint32_t PUBLISH_ENDRX; /*!< (@ 0x00000190) Publish configuration for event ENDRX */ 1708 __IM uint32_t RESERVED7[5]; 1709 __IOM uint32_t PUBLISH_ACQUIRED; /*!< (@ 0x000001A8) Publish configuration for event ACQUIRED */ 1710 __IM uint32_t RESERVED8[21]; 1711 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1712 __IM uint32_t RESERVED9[64]; 1713 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1714 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1715 __IM uint32_t RESERVED10[61]; 1716 __IM uint32_t SEMSTAT; /*!< (@ 0x00000400) Semaphore status register */ 1717 __IM uint32_t RESERVED11[15]; 1718 __IOM uint32_t STATUS; /*!< (@ 0x00000440) Status from last transaction */ 1719 __IM uint32_t RESERVED12[47]; 1720 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable SPI slave */ 1721 __IM uint32_t RESERVED13; 1722 __IOM SPIS_PSEL_Type PSEL; /*!< (@ 0x00000508) Unspecified */ 1723 __IM uint32_t RESERVED14[7]; 1724 __IOM SPIS_RXD_Type RXD; /*!< (@ 0x00000534) Unspecified */ 1725 __IOM SPIS_TXD_Type TXD; /*!< (@ 0x00000544) Unspecified */ 1726 __IOM uint32_t CONFIG; /*!< (@ 0x00000554) Configuration register */ 1727 __IM uint32_t RESERVED15; 1728 __IOM uint32_t DEF; /*!< (@ 0x0000055C) Default character. Character clocked out in case 1729 of an ignored transaction. */ 1730 __IM uint32_t RESERVED16[24]; 1731 __IOM uint32_t ORC; /*!< (@ 0x000005C0) Over-read character */ 1732 } NRF_SPIS_Type; /*!< Size = 1476 (0x5c4) */ 1733 1734 1735 1736 /* =========================================================================================================================== */ 1737 /* ================ TWIM0_NS ================ */ 1738 /* =========================================================================================================================== */ 1739 1740 1741 /** 1742 * @brief I2C compatible Two-Wire Master Interface with EasyDMA 0 (TWIM0_NS) 1743 */ 1744 1745 typedef struct { /*!< (@ 0x40008000) TWIM0_NS Structure */ 1746 __OM uint32_t TASKS_STARTRX; /*!< (@ 0x00000000) Start TWI receive sequence */ 1747 __IM uint32_t RESERVED; 1748 __OM uint32_t TASKS_STARTTX; /*!< (@ 0x00000008) Start TWI transmit sequence */ 1749 __IM uint32_t RESERVED1[2]; 1750 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000014) Stop TWI transaction. Must be issued while the 1751 TWI master is not suspended. */ 1752 __IM uint32_t RESERVED2; 1753 __OM uint32_t TASKS_SUSPEND; /*!< (@ 0x0000001C) Suspend TWI transaction */ 1754 __OM uint32_t TASKS_RESUME; /*!< (@ 0x00000020) Resume TWI transaction */ 1755 __IM uint32_t RESERVED3[23]; 1756 __IOM uint32_t SUBSCRIBE_STARTRX; /*!< (@ 0x00000080) Subscribe configuration for task STARTRX */ 1757 __IM uint32_t RESERVED4; 1758 __IOM uint32_t SUBSCRIBE_STARTTX; /*!< (@ 0x00000088) Subscribe configuration for task STARTTX */ 1759 __IM uint32_t RESERVED5[2]; 1760 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000094) Subscribe configuration for task STOP */ 1761 __IM uint32_t RESERVED6; 1762 __IOM uint32_t SUBSCRIBE_SUSPEND; /*!< (@ 0x0000009C) Subscribe configuration for task SUSPEND */ 1763 __IOM uint32_t SUBSCRIBE_RESUME; /*!< (@ 0x000000A0) Subscribe configuration for task RESUME */ 1764 __IM uint32_t RESERVED7[24]; 1765 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000104) TWI stopped */ 1766 __IM uint32_t RESERVED8[7]; 1767 __IOM uint32_t EVENTS_ERROR; /*!< (@ 0x00000124) TWI error */ 1768 __IM uint32_t RESERVED9[8]; 1769 __IOM uint32_t EVENTS_SUSPENDED; /*!< (@ 0x00000148) SUSPEND task has been issued, TWI traffic is 1770 now suspended. */ 1771 __IOM uint32_t EVENTS_RXSTARTED; /*!< (@ 0x0000014C) Receive sequence started */ 1772 __IOM uint32_t EVENTS_TXSTARTED; /*!< (@ 0x00000150) Transmit sequence started */ 1773 __IM uint32_t RESERVED10[2]; 1774 __IOM uint32_t EVENTS_LASTRX; /*!< (@ 0x0000015C) Byte boundary, starting to receive the last byte */ 1775 __IOM uint32_t EVENTS_LASTTX; /*!< (@ 0x00000160) Byte boundary, starting to transmit the last 1776 byte */ 1777 __IM uint32_t RESERVED11[8]; 1778 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000184) Publish configuration for event STOPPED */ 1779 __IM uint32_t RESERVED12[7]; 1780 __IOM uint32_t PUBLISH_ERROR; /*!< (@ 0x000001A4) Publish configuration for event ERROR */ 1781 __IM uint32_t RESERVED13[8]; 1782 __IOM uint32_t PUBLISH_SUSPENDED; /*!< (@ 0x000001C8) Publish configuration for event SUSPENDED */ 1783 __IOM uint32_t PUBLISH_RXSTARTED; /*!< (@ 0x000001CC) Publish configuration for event RXSTARTED */ 1784 __IOM uint32_t PUBLISH_TXSTARTED; /*!< (@ 0x000001D0) Publish configuration for event TXSTARTED */ 1785 __IM uint32_t RESERVED14[2]; 1786 __IOM uint32_t PUBLISH_LASTRX; /*!< (@ 0x000001DC) Publish configuration for event LASTRX */ 1787 __IOM uint32_t PUBLISH_LASTTX; /*!< (@ 0x000001E0) Publish configuration for event LASTTX */ 1788 __IM uint32_t RESERVED15[7]; 1789 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1790 __IM uint32_t RESERVED16[63]; 1791 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1792 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1793 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1794 __IM uint32_t RESERVED17[110]; 1795 __IOM uint32_t ERRORSRC; /*!< (@ 0x000004C4) Error source */ 1796 __IM uint32_t RESERVED18[14]; 1797 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable TWIM */ 1798 __IM uint32_t RESERVED19; 1799 __IOM TWIM_PSEL_Type PSEL; /*!< (@ 0x00000508) Unspecified */ 1800 __IM uint32_t RESERVED20[5]; 1801 __IOM uint32_t FREQUENCY; /*!< (@ 0x00000524) TWI frequency. Accuracy depends on the HFCLK 1802 source selected. */ 1803 __IM uint32_t RESERVED21[3]; 1804 __IOM TWIM_RXD_Type RXD; /*!< (@ 0x00000534) RXD EasyDMA channel */ 1805 __IOM TWIM_TXD_Type TXD; /*!< (@ 0x00000544) TXD EasyDMA channel */ 1806 __IM uint32_t RESERVED22[13]; 1807 __IOM uint32_t ADDRESS; /*!< (@ 0x00000588) Address used in the TWI transfer */ 1808 } NRF_TWIM_Type; /*!< Size = 1420 (0x58c) */ 1809 1810 1811 1812 /* =========================================================================================================================== */ 1813 /* ================ TWIS0_NS ================ */ 1814 /* =========================================================================================================================== */ 1815 1816 1817 /** 1818 * @brief I2C compatible Two-Wire Slave Interface with EasyDMA 0 (TWIS0_NS) 1819 */ 1820 1821 typedef struct { /*!< (@ 0x40008000) TWIS0_NS Structure */ 1822 __IM uint32_t RESERVED[5]; 1823 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000014) Stop TWI transaction */ 1824 __IM uint32_t RESERVED1; 1825 __OM uint32_t TASKS_SUSPEND; /*!< (@ 0x0000001C) Suspend TWI transaction */ 1826 __OM uint32_t TASKS_RESUME; /*!< (@ 0x00000020) Resume TWI transaction */ 1827 __IM uint32_t RESERVED2[3]; 1828 __OM uint32_t TASKS_PREPARERX; /*!< (@ 0x00000030) Prepare the TWI slave to respond to a write command */ 1829 __OM uint32_t TASKS_PREPARETX; /*!< (@ 0x00000034) Prepare the TWI slave to respond to a read command */ 1830 __IM uint32_t RESERVED3[23]; 1831 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000094) Subscribe configuration for task STOP */ 1832 __IM uint32_t RESERVED4; 1833 __IOM uint32_t SUBSCRIBE_SUSPEND; /*!< (@ 0x0000009C) Subscribe configuration for task SUSPEND */ 1834 __IOM uint32_t SUBSCRIBE_RESUME; /*!< (@ 0x000000A0) Subscribe configuration for task RESUME */ 1835 __IM uint32_t RESERVED5[3]; 1836 __IOM uint32_t SUBSCRIBE_PREPARERX; /*!< (@ 0x000000B0) Subscribe configuration for task PREPARERX */ 1837 __IOM uint32_t SUBSCRIBE_PREPARETX; /*!< (@ 0x000000B4) Subscribe configuration for task PREPARETX */ 1838 __IM uint32_t RESERVED6[19]; 1839 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000104) TWI stopped */ 1840 __IM uint32_t RESERVED7[7]; 1841 __IOM uint32_t EVENTS_ERROR; /*!< (@ 0x00000124) TWI error */ 1842 __IM uint32_t RESERVED8[9]; 1843 __IOM uint32_t EVENTS_RXSTARTED; /*!< (@ 0x0000014C) Receive sequence started */ 1844 __IOM uint32_t EVENTS_TXSTARTED; /*!< (@ 0x00000150) Transmit sequence started */ 1845 __IM uint32_t RESERVED9[4]; 1846 __IOM uint32_t EVENTS_WRITE; /*!< (@ 0x00000164) Write command received */ 1847 __IOM uint32_t EVENTS_READ; /*!< (@ 0x00000168) Read command received */ 1848 __IM uint32_t RESERVED10[6]; 1849 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000184) Publish configuration for event STOPPED */ 1850 __IM uint32_t RESERVED11[7]; 1851 __IOM uint32_t PUBLISH_ERROR; /*!< (@ 0x000001A4) Publish configuration for event ERROR */ 1852 __IM uint32_t RESERVED12[9]; 1853 __IOM uint32_t PUBLISH_RXSTARTED; /*!< (@ 0x000001CC) Publish configuration for event RXSTARTED */ 1854 __IOM uint32_t PUBLISH_TXSTARTED; /*!< (@ 0x000001D0) Publish configuration for event TXSTARTED */ 1855 __IM uint32_t RESERVED13[4]; 1856 __IOM uint32_t PUBLISH_WRITE; /*!< (@ 0x000001E4) Publish configuration for event WRITE */ 1857 __IOM uint32_t PUBLISH_READ; /*!< (@ 0x000001E8) Publish configuration for event READ */ 1858 __IM uint32_t RESERVED14[5]; 1859 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1860 __IM uint32_t RESERVED15[63]; 1861 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1862 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1863 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1864 __IM uint32_t RESERVED16[113]; 1865 __IOM uint32_t ERRORSRC; /*!< (@ 0x000004D0) Error source */ 1866 __IM uint32_t MATCH; /*!< (@ 0x000004D4) Status register indicating which address had 1867 a match */ 1868 __IM uint32_t RESERVED17[10]; 1869 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable TWIS */ 1870 __IM uint32_t RESERVED18; 1871 __IOM TWIS_PSEL_Type PSEL; /*!< (@ 0x00000508) Unspecified */ 1872 __IM uint32_t RESERVED19[9]; 1873 __IOM TWIS_RXD_Type RXD; /*!< (@ 0x00000534) RXD EasyDMA channel */ 1874 __IOM TWIS_TXD_Type TXD; /*!< (@ 0x00000544) TXD EasyDMA channel */ 1875 __IM uint32_t RESERVED20[13]; 1876 __IOM uint32_t ADDRESS[2]; /*!< (@ 0x00000588) Description collection: TWI slave address n */ 1877 __IM uint32_t RESERVED21; 1878 __IOM uint32_t CONFIG; /*!< (@ 0x00000594) Configuration register for the address match 1879 mechanism */ 1880 __IM uint32_t RESERVED22[10]; 1881 __IOM uint32_t ORC; /*!< (@ 0x000005C0) Over-read character. Character sent out in case 1882 of an over-read of the transmit buffer. */ 1883 } NRF_TWIS_Type; /*!< Size = 1476 (0x5c4) */ 1884 1885 1886 1887 /* =========================================================================================================================== */ 1888 /* ================ UARTE0_NS ================ */ 1889 /* =========================================================================================================================== */ 1890 1891 1892 /** 1893 * @brief UART with EasyDMA 0 (UARTE0_NS) 1894 */ 1895 1896 typedef struct { /*!< (@ 0x40008000) UARTE0_NS Structure */ 1897 __OM uint32_t TASKS_STARTRX; /*!< (@ 0x00000000) Start UART receiver */ 1898 __OM uint32_t TASKS_STOPRX; /*!< (@ 0x00000004) Stop UART receiver */ 1899 __OM uint32_t TASKS_STARTTX; /*!< (@ 0x00000008) Start UART transmitter */ 1900 __OM uint32_t TASKS_STOPTX; /*!< (@ 0x0000000C) Stop UART transmitter */ 1901 __IM uint32_t RESERVED[7]; 1902 __OM uint32_t TASKS_FLUSHRX; /*!< (@ 0x0000002C) Flush RX FIFO into RX buffer */ 1903 __IM uint32_t RESERVED1[20]; 1904 __IOM uint32_t SUBSCRIBE_STARTRX; /*!< (@ 0x00000080) Subscribe configuration for task STARTRX */ 1905 __IOM uint32_t SUBSCRIBE_STOPRX; /*!< (@ 0x00000084) Subscribe configuration for task STOPRX */ 1906 __IOM uint32_t SUBSCRIBE_STARTTX; /*!< (@ 0x00000088) Subscribe configuration for task STARTTX */ 1907 __IOM uint32_t SUBSCRIBE_STOPTX; /*!< (@ 0x0000008C) Subscribe configuration for task STOPTX */ 1908 __IM uint32_t RESERVED2[7]; 1909 __IOM uint32_t SUBSCRIBE_FLUSHRX; /*!< (@ 0x000000AC) Subscribe configuration for task FLUSHRX */ 1910 __IM uint32_t RESERVED3[20]; 1911 __IOM uint32_t EVENTS_CTS; /*!< (@ 0x00000100) CTS is activated (set low). Clear To Send. */ 1912 __IOM uint32_t EVENTS_NCTS; /*!< (@ 0x00000104) CTS is deactivated (set high). Not Clear To Send. */ 1913 __IOM uint32_t EVENTS_RXDRDY; /*!< (@ 0x00000108) Data received in RXD (but potentially not yet 1914 transferred to Data RAM) */ 1915 __IM uint32_t RESERVED4; 1916 __IOM uint32_t EVENTS_ENDRX; /*!< (@ 0x00000110) Receive buffer is filled up */ 1917 __IM uint32_t RESERVED5[2]; 1918 __IOM uint32_t EVENTS_TXDRDY; /*!< (@ 0x0000011C) Data sent from TXD */ 1919 __IOM uint32_t EVENTS_ENDTX; /*!< (@ 0x00000120) Last TX byte transmitted */ 1920 __IOM uint32_t EVENTS_ERROR; /*!< (@ 0x00000124) Error detected */ 1921 __IM uint32_t RESERVED6[7]; 1922 __IOM uint32_t EVENTS_RXTO; /*!< (@ 0x00000144) Receiver timeout */ 1923 __IM uint32_t RESERVED7; 1924 __IOM uint32_t EVENTS_RXSTARTED; /*!< (@ 0x0000014C) UART receiver has started */ 1925 __IOM uint32_t EVENTS_TXSTARTED; /*!< (@ 0x00000150) UART transmitter has started */ 1926 __IM uint32_t RESERVED8; 1927 __IOM uint32_t EVENTS_TXSTOPPED; /*!< (@ 0x00000158) Transmitter stopped */ 1928 __IM uint32_t RESERVED9[9]; 1929 __IOM uint32_t PUBLISH_CTS; /*!< (@ 0x00000180) Publish configuration for event CTS */ 1930 __IOM uint32_t PUBLISH_NCTS; /*!< (@ 0x00000184) Publish configuration for event NCTS */ 1931 __IOM uint32_t PUBLISH_RXDRDY; /*!< (@ 0x00000188) Publish configuration for event RXDRDY */ 1932 __IM uint32_t RESERVED10; 1933 __IOM uint32_t PUBLISH_ENDRX; /*!< (@ 0x00000190) Publish configuration for event ENDRX */ 1934 __IM uint32_t RESERVED11[2]; 1935 __IOM uint32_t PUBLISH_TXDRDY; /*!< (@ 0x0000019C) Publish configuration for event TXDRDY */ 1936 __IOM uint32_t PUBLISH_ENDTX; /*!< (@ 0x000001A0) Publish configuration for event ENDTX */ 1937 __IOM uint32_t PUBLISH_ERROR; /*!< (@ 0x000001A4) Publish configuration for event ERROR */ 1938 __IM uint32_t RESERVED12[7]; 1939 __IOM uint32_t PUBLISH_RXTO; /*!< (@ 0x000001C4) Publish configuration for event RXTO */ 1940 __IM uint32_t RESERVED13; 1941 __IOM uint32_t PUBLISH_RXSTARTED; /*!< (@ 0x000001CC) Publish configuration for event RXSTARTED */ 1942 __IOM uint32_t PUBLISH_TXSTARTED; /*!< (@ 0x000001D0) Publish configuration for event TXSTARTED */ 1943 __IM uint32_t RESERVED14; 1944 __IOM uint32_t PUBLISH_TXSTOPPED; /*!< (@ 0x000001D8) Publish configuration for event TXSTOPPED */ 1945 __IM uint32_t RESERVED15[9]; 1946 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1947 __IM uint32_t RESERVED16[63]; 1948 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1949 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1950 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1951 __IM uint32_t RESERVED17[93]; 1952 __IOM uint32_t ERRORSRC; /*!< (@ 0x00000480) Error source */ 1953 __IM uint32_t RESERVED18[31]; 1954 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable UART */ 1955 __IM uint32_t RESERVED19; 1956 __IOM UARTE_PSEL_Type PSEL; /*!< (@ 0x00000508) Unspecified */ 1957 __IM uint32_t RESERVED20[3]; 1958 __IOM uint32_t BAUDRATE; /*!< (@ 0x00000524) Baud rate. Accuracy depends on the HFCLK source 1959 selected. */ 1960 __IM uint32_t RESERVED21[3]; 1961 __IOM UARTE_RXD_Type RXD; /*!< (@ 0x00000534) RXD EasyDMA channel */ 1962 __IM uint32_t RESERVED22; 1963 __IOM UARTE_TXD_Type TXD; /*!< (@ 0x00000544) TXD EasyDMA channel */ 1964 __IM uint32_t RESERVED23[7]; 1965 __IOM uint32_t CONFIG; /*!< (@ 0x0000056C) Configuration of parity and hardware flow control */ 1966 } NRF_UARTE_Type; /*!< Size = 1392 (0x570) */ 1967 1968 1969 1970 /* =========================================================================================================================== */ 1971 /* ================ GPIOTE0_S ================ */ 1972 /* =========================================================================================================================== */ 1973 1974 1975 /** 1976 * @brief GPIO Tasks and Events 0 (GPIOTE0_S) 1977 */ 1978 1979 typedef struct { /*!< (@ 0x5000D000) GPIOTE0_S Structure */ 1980 __OM uint32_t TASKS_OUT[8]; /*!< (@ 0x00000000) Description collection: Task for writing to pin 1981 specified in CONFIG[n].PSEL. Action on pin 1982 is configured in CONFIG[n].POLARITY. */ 1983 __IM uint32_t RESERVED[4]; 1984 __OM uint32_t TASKS_SET[8]; /*!< (@ 0x00000030) Description collection: Task for writing to pin 1985 specified in CONFIG[n].PSEL. Action on pin 1986 is to set it high. */ 1987 __IM uint32_t RESERVED1[4]; 1988 __OM uint32_t TASKS_CLR[8]; /*!< (@ 0x00000060) Description collection: Task for writing to pin 1989 specified in CONFIG[n].PSEL. Action on pin 1990 is to set it low. */ 1991 __IOM uint32_t SUBSCRIBE_OUT[8]; /*!< (@ 0x00000080) Description collection: Subscribe configuration 1992 for task OUT[n] */ 1993 __IM uint32_t RESERVED2[4]; 1994 __IOM uint32_t SUBSCRIBE_SET[8]; /*!< (@ 0x000000B0) Description collection: Subscribe configuration 1995 for task SET[n] */ 1996 __IM uint32_t RESERVED3[4]; 1997 __IOM uint32_t SUBSCRIBE_CLR[8]; /*!< (@ 0x000000E0) Description collection: Subscribe configuration 1998 for task CLR[n] */ 1999 __IOM uint32_t EVENTS_IN[8]; /*!< (@ 0x00000100) Description collection: Event generated from 2000 pin specified in CONFIG[n].PSEL */ 2001 __IM uint32_t RESERVED4[23]; 2002 __IOM uint32_t EVENTS_PORT; /*!< (@ 0x0000017C) Event generated from multiple input GPIO pins 2003 with SENSE mechanism enabled */ 2004 __IOM uint32_t PUBLISH_IN[8]; /*!< (@ 0x00000180) Description collection: Publish configuration 2005 for event IN[n] */ 2006 __IM uint32_t RESERVED5[23]; 2007 __IOM uint32_t PUBLISH_PORT; /*!< (@ 0x000001FC) Publish configuration for event PORT */ 2008 __IM uint32_t RESERVED6[65]; 2009 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2010 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2011 __IM uint32_t RESERVED7[126]; 2012 __IOM uint32_t LATENCY; /*!< (@ 0x00000504) Latency selection for Event mode (MODE=Event) 2013 with rising or falling edge detection on 2014 the pin. */ 2015 __IM uint32_t RESERVED8[2]; 2016 __IOM uint32_t CONFIG[8]; /*!< (@ 0x00000510) Description collection: Configuration for OUT[n], 2017 SET[n], and CLR[n] tasks and IN[n] event */ 2018 } NRF_GPIOTE_Type; /*!< Size = 1328 (0x530) */ 2019 2020 2021 2022 /* =========================================================================================================================== */ 2023 /* ================ SAADC_NS ================ */ 2024 /* =========================================================================================================================== */ 2025 2026 2027 /** 2028 * @brief Analog to Digital Converter 0 (SAADC_NS) 2029 */ 2030 2031 typedef struct { /*!< (@ 0x4000E000) SAADC_NS Structure */ 2032 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Start the ADC and prepare the result buffer in 2033 RAM */ 2034 __OM uint32_t TASKS_SAMPLE; /*!< (@ 0x00000004) Take one ADC sample, if scan is enabled all channels 2035 are sampled */ 2036 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000008) Stop the ADC and terminate any ongoing conversion */ 2037 __OM uint32_t TASKS_CALIBRATEOFFSET; /*!< (@ 0x0000000C) Starts offset auto-calibration */ 2038 __IM uint32_t RESERVED[28]; 2039 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 2040 __IOM uint32_t SUBSCRIBE_SAMPLE; /*!< (@ 0x00000084) Subscribe configuration for task SAMPLE */ 2041 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000088) Subscribe configuration for task STOP */ 2042 __IOM uint32_t SUBSCRIBE_CALIBRATEOFFSET; /*!< (@ 0x0000008C) Subscribe configuration for task CALIBRATEOFFSET */ 2043 __IM uint32_t RESERVED1[28]; 2044 __IOM uint32_t EVENTS_STARTED; /*!< (@ 0x00000100) The ADC has started */ 2045 __IOM uint32_t EVENTS_END; /*!< (@ 0x00000104) The ADC has filled up the Result buffer */ 2046 __IOM uint32_t EVENTS_DONE; /*!< (@ 0x00000108) A conversion task has been completed. Depending 2047 on the mode, multiple conversions might 2048 be needed for a result to be transferred 2049 to RAM. */ 2050 __IOM uint32_t EVENTS_RESULTDONE; /*!< (@ 0x0000010C) A result is ready to get transferred to RAM */ 2051 __IOM uint32_t EVENTS_CALIBRATEDONE; /*!< (@ 0x00000110) Calibration is complete */ 2052 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000114) The ADC has stopped */ 2053 __IOM SAADC_EVENTS_CH_Type EVENTS_CH[8]; /*!< (@ 0x00000118) Peripheral events. */ 2054 __IM uint32_t RESERVED2[10]; 2055 __IOM uint32_t PUBLISH_STARTED; /*!< (@ 0x00000180) Publish configuration for event STARTED */ 2056 __IOM uint32_t PUBLISH_END; /*!< (@ 0x00000184) Publish configuration for event END */ 2057 __IOM uint32_t PUBLISH_DONE; /*!< (@ 0x00000188) Publish configuration for event DONE */ 2058 __IOM uint32_t PUBLISH_RESULTDONE; /*!< (@ 0x0000018C) Publish configuration for event RESULTDONE */ 2059 __IOM uint32_t PUBLISH_CALIBRATEDONE; /*!< (@ 0x00000190) Publish configuration for event CALIBRATEDONE */ 2060 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000194) Publish configuration for event STOPPED */ 2061 __IOM SAADC_PUBLISH_CH_Type PUBLISH_CH[8]; /*!< (@ 0x00000198) Publish configuration for events */ 2062 __IM uint32_t RESERVED3[74]; 2063 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 2064 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2065 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2066 __IM uint32_t RESERVED4[61]; 2067 __IM uint32_t STATUS; /*!< (@ 0x00000400) Status */ 2068 __IM uint32_t RESERVED5[63]; 2069 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable or disable ADC */ 2070 __IM uint32_t RESERVED6[3]; 2071 __IOM SAADC_CH_Type CH[8]; /*!< (@ 0x00000510) Unspecified */ 2072 __IM uint32_t RESERVED7[24]; 2073 __IOM uint32_t RESOLUTION; /*!< (@ 0x000005F0) Resolution configuration */ 2074 __IOM uint32_t OVERSAMPLE; /*!< (@ 0x000005F4) Oversampling configuration. OVERSAMPLE should 2075 not be combined with SCAN. The RESOLUTION 2076 is applied before averaging, thus for high 2077 OVERSAMPLE a higher RESOLUTION should be 2078 used. */ 2079 __IOM uint32_t SAMPLERATE; /*!< (@ 0x000005F8) Controls normal or continuous sample rate */ 2080 __IM uint32_t RESERVED8[12]; 2081 __IOM SAADC_RESULT_Type RESULT; /*!< (@ 0x0000062C) RESULT EasyDMA channel */ 2082 } NRF_SAADC_Type; /*!< Size = 1592 (0x638) */ 2083 2084 2085 2086 /* =========================================================================================================================== */ 2087 /* ================ TIMER0_NS ================ */ 2088 /* =========================================================================================================================== */ 2089 2090 2091 /** 2092 * @brief Timer/Counter 0 (TIMER0_NS) 2093 */ 2094 2095 typedef struct { /*!< (@ 0x4000F000) TIMER0_NS Structure */ 2096 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Start Timer */ 2097 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stop Timer */ 2098 __OM uint32_t TASKS_COUNT; /*!< (@ 0x00000008) Increment Timer (Counter mode only) */ 2099 __OM uint32_t TASKS_CLEAR; /*!< (@ 0x0000000C) Clear time */ 2100 __OM uint32_t TASKS_SHUTDOWN; /*!< (@ 0x00000010) Deprecated register - Shut down timer */ 2101 __IM uint32_t RESERVED[11]; 2102 __OM uint32_t TASKS_CAPTURE[6]; /*!< (@ 0x00000040) Description collection: Capture Timer value to 2103 CC[n] register */ 2104 __IM uint32_t RESERVED1[10]; 2105 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 2106 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 2107 __IOM uint32_t SUBSCRIBE_COUNT; /*!< (@ 0x00000088) Subscribe configuration for task COUNT */ 2108 __IOM uint32_t SUBSCRIBE_CLEAR; /*!< (@ 0x0000008C) Subscribe configuration for task CLEAR */ 2109 __IOM uint32_t SUBSCRIBE_SHUTDOWN; /*!< (@ 0x00000090) Deprecated register - Subscribe configuration 2110 for task SHUTDOWN */ 2111 __IM uint32_t RESERVED2[11]; 2112 __IOM uint32_t SUBSCRIBE_CAPTURE[6]; /*!< (@ 0x000000C0) Description collection: Subscribe configuration 2113 for task CAPTURE[n] */ 2114 __IM uint32_t RESERVED3[26]; 2115 __IOM uint32_t EVENTS_COMPARE[6]; /*!< (@ 0x00000140) Description collection: Compare event on CC[n] 2116 match */ 2117 __IM uint32_t RESERVED4[26]; 2118 __IOM uint32_t PUBLISH_COMPARE[6]; /*!< (@ 0x000001C0) Description collection: Publish configuration 2119 for event COMPARE[n] */ 2120 __IM uint32_t RESERVED5[10]; 2121 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 2122 __IM uint32_t RESERVED6[63]; 2123 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 2124 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2125 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2126 __IM uint32_t RESERVED7[126]; 2127 __IOM uint32_t MODE; /*!< (@ 0x00000504) Timer mode selection */ 2128 __IOM uint32_t BITMODE; /*!< (@ 0x00000508) Configure the number of bits used by the TIMER */ 2129 __IM uint32_t RESERVED8; 2130 __IOM uint32_t PRESCALER; /*!< (@ 0x00000510) Timer prescaler register */ 2131 __IM uint32_t RESERVED9[11]; 2132 __IOM uint32_t CC[6]; /*!< (@ 0x00000540) Description collection: Capture/Compare register 2133 n */ 2134 __IM uint32_t RESERVED10[10]; 2135 __IOM uint32_t ONESHOTEN[6]; /*!< (@ 0x00000580) Description collection: Enable one-shot operation 2136 for Capture/Compare channel n */ 2137 } NRF_TIMER_Type; /*!< Size = 1432 (0x598) */ 2138 2139 2140 2141 /* =========================================================================================================================== */ 2142 /* ================ RTC0_NS ================ */ 2143 /* =========================================================================================================================== */ 2144 2145 2146 /** 2147 * @brief Real-time counter 0 (RTC0_NS) 2148 */ 2149 2150 typedef struct { /*!< (@ 0x40014000) RTC0_NS Structure */ 2151 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Start RTC counter */ 2152 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stop RTC counter */ 2153 __OM uint32_t TASKS_CLEAR; /*!< (@ 0x00000008) Clear RTC counter */ 2154 __OM uint32_t TASKS_TRIGOVRFLW; /*!< (@ 0x0000000C) Set counter to 0xFFFFF0 */ 2155 __IM uint32_t RESERVED[12]; 2156 __OM uint32_t TASKS_CAPTURE[4]; /*!< (@ 0x00000040) Description collection: Capture RTC counter to 2157 CC[n] register */ 2158 __IM uint32_t RESERVED1[12]; 2159 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 2160 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 2161 __IOM uint32_t SUBSCRIBE_CLEAR; /*!< (@ 0x00000088) Subscribe configuration for task CLEAR */ 2162 __IOM uint32_t SUBSCRIBE_TRIGOVRFLW; /*!< (@ 0x0000008C) Subscribe configuration for task TRIGOVRFLW */ 2163 __IM uint32_t RESERVED2[12]; 2164 __IOM uint32_t SUBSCRIBE_CAPTURE[4]; /*!< (@ 0x000000C0) Description collection: Subscribe configuration 2165 for task CAPTURE[n] */ 2166 __IM uint32_t RESERVED3[12]; 2167 __IOM uint32_t EVENTS_TICK; /*!< (@ 0x00000100) Event on counter increment */ 2168 __IOM uint32_t EVENTS_OVRFLW; /*!< (@ 0x00000104) Event on counter overflow */ 2169 __IM uint32_t RESERVED4[14]; 2170 __IOM uint32_t EVENTS_COMPARE[4]; /*!< (@ 0x00000140) Description collection: Compare event on CC[n] 2171 match */ 2172 __IM uint32_t RESERVED5[12]; 2173 __IOM uint32_t PUBLISH_TICK; /*!< (@ 0x00000180) Publish configuration for event TICK */ 2174 __IOM uint32_t PUBLISH_OVRFLW; /*!< (@ 0x00000184) Publish configuration for event OVRFLW */ 2175 __IM uint32_t RESERVED6[14]; 2176 __IOM uint32_t PUBLISH_COMPARE[4]; /*!< (@ 0x000001C0) Description collection: Publish configuration 2177 for event COMPARE[n] */ 2178 __IM uint32_t RESERVED7[12]; 2179 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 2180 __IM uint32_t RESERVED8[64]; 2181 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2182 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2183 __IM uint32_t RESERVED9[13]; 2184 __IOM uint32_t EVTEN; /*!< (@ 0x00000340) Enable or disable event routing */ 2185 __IOM uint32_t EVTENSET; /*!< (@ 0x00000344) Enable event routing */ 2186 __IOM uint32_t EVTENCLR; /*!< (@ 0x00000348) Disable event routing */ 2187 __IM uint32_t RESERVED10[110]; 2188 __IM uint32_t COUNTER; /*!< (@ 0x00000504) Current counter value */ 2189 __IOM uint32_t PRESCALER; /*!< (@ 0x00000508) 12-bit prescaler for counter frequency (32768 2190 / (PRESCALER + 1)). Must be written when 2191 RTC is stopped. */ 2192 __IM uint32_t RESERVED11[13]; 2193 __IOM uint32_t CC[4]; /*!< (@ 0x00000540) Description collection: Compare register n */ 2194 } NRF_RTC_Type; /*!< Size = 1360 (0x550) */ 2195 2196 2197 2198 /* =========================================================================================================================== */ 2199 /* ================ DPPIC_NS ================ */ 2200 /* =========================================================================================================================== */ 2201 2202 2203 /** 2204 * @brief Distributed programmable peripheral interconnect controller 0 (DPPIC_NS) 2205 */ 2206 2207 typedef struct { /*!< (@ 0x40017000) DPPIC_NS Structure */ 2208 __OM DPPIC_TASKS_CHG_Type TASKS_CHG[6]; /*!< (@ 0x00000000) Channel group tasks */ 2209 __IM uint32_t RESERVED[20]; 2210 __IOM DPPIC_SUBSCRIBE_CHG_Type SUBSCRIBE_CHG[6];/*!< (@ 0x00000080) Subscribe configuration for tasks */ 2211 __IM uint32_t RESERVED1[276]; 2212 __IOM uint32_t CHEN; /*!< (@ 0x00000500) Channel enable register */ 2213 __IOM uint32_t CHENSET; /*!< (@ 0x00000504) Channel enable set register */ 2214 __IOM uint32_t CHENCLR; /*!< (@ 0x00000508) Channel enable clear register */ 2215 __IM uint32_t RESERVED2[189]; 2216 __IOM uint32_t CHG[6]; /*!< (@ 0x00000800) Description collection: Channel group n Note: 2217 Writes to this register are ignored if either 2218 SUBSCRIBE_CHG[n].EN or SUBSCRIBE_CHG[n].DIS 2219 is enabled */ 2220 } NRF_DPPIC_Type; /*!< Size = 2072 (0x818) */ 2221 2222 2223 2224 /* =========================================================================================================================== */ 2225 /* ================ WDT0_NS ================ */ 2226 /* =========================================================================================================================== */ 2227 2228 2229 /** 2230 * @brief Watchdog Timer 0 (WDT0_NS) 2231 */ 2232 2233 typedef struct { /*!< (@ 0x40018000) WDT0_NS Structure */ 2234 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Start WDT */ 2235 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stop WDT */ 2236 __IM uint32_t RESERVED[30]; 2237 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 2238 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 2239 __IM uint32_t RESERVED1[30]; 2240 __IOM uint32_t EVENTS_TIMEOUT; /*!< (@ 0x00000100) Watchdog timeout */ 2241 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000104) Watchdog stopped */ 2242 __IM uint32_t RESERVED2[30]; 2243 __IOM uint32_t PUBLISH_TIMEOUT; /*!< (@ 0x00000180) Publish configuration for event TIMEOUT */ 2244 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000184) Publish configuration for event STOPPED */ 2245 __IM uint32_t RESERVED3[95]; 2246 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2247 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2248 __IM uint32_t RESERVED4[6]; 2249 __IOM uint32_t NMIENSET; /*!< (@ 0x00000324) Enable interrupt */ 2250 __IOM uint32_t NMIENCLR; /*!< (@ 0x00000328) Disable interrupt */ 2251 __IM uint32_t RESERVED5[53]; 2252 __IM uint32_t RUNSTATUS; /*!< (@ 0x00000400) Run status */ 2253 __IM uint32_t REQSTATUS; /*!< (@ 0x00000404) Request status */ 2254 __IM uint32_t RESERVED6[63]; 2255 __IOM uint32_t CRV; /*!< (@ 0x00000504) Counter reload value */ 2256 __IOM uint32_t RREN; /*!< (@ 0x00000508) Enable register for reload request registers */ 2257 __IOM uint32_t CONFIG; /*!< (@ 0x0000050C) Configuration register */ 2258 __IM uint32_t RESERVED7[4]; 2259 __OM uint32_t TSEN; /*!< (@ 0x00000520) Task stop enable */ 2260 __IM uint32_t RESERVED8[55]; 2261 __OM uint32_t RR[8]; /*!< (@ 0x00000600) Description collection: Reload request n */ 2262 } NRF_WDT_Type; /*!< Size = 1568 (0x620) */ 2263 2264 2265 2266 /* =========================================================================================================================== */ 2267 /* ================ COMP_NS ================ */ 2268 /* =========================================================================================================================== */ 2269 2270 2271 /** 2272 * @brief Comparator 0 (COMP_NS) 2273 */ 2274 2275 typedef struct { /*!< (@ 0x4001A000) COMP_NS Structure */ 2276 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Start comparator */ 2277 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stop comparator */ 2278 __OM uint32_t TASKS_SAMPLE; /*!< (@ 0x00000008) Sample comparator value */ 2279 __IM uint32_t RESERVED[29]; 2280 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 2281 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 2282 __IOM uint32_t SUBSCRIBE_SAMPLE; /*!< (@ 0x00000088) Subscribe configuration for task SAMPLE */ 2283 __IM uint32_t RESERVED1[29]; 2284 __IOM uint32_t EVENTS_READY; /*!< (@ 0x00000100) COMP is ready and output is valid */ 2285 __IOM uint32_t EVENTS_DOWN; /*!< (@ 0x00000104) Downward crossing */ 2286 __IOM uint32_t EVENTS_UP; /*!< (@ 0x00000108) Upward crossing */ 2287 __IOM uint32_t EVENTS_CROSS; /*!< (@ 0x0000010C) Downward or upward crossing */ 2288 __IM uint32_t RESERVED2[28]; 2289 __IOM uint32_t PUBLISH_READY; /*!< (@ 0x00000180) Publish configuration for event READY */ 2290 __IOM uint32_t PUBLISH_DOWN; /*!< (@ 0x00000184) Publish configuration for event DOWN */ 2291 __IOM uint32_t PUBLISH_UP; /*!< (@ 0x00000188) Publish configuration for event UP */ 2292 __IOM uint32_t PUBLISH_CROSS; /*!< (@ 0x0000018C) Publish configuration for event CROSS */ 2293 __IM uint32_t RESERVED3[28]; 2294 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 2295 __IM uint32_t RESERVED4[63]; 2296 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 2297 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2298 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2299 __IM uint32_t RESERVED5[61]; 2300 __IM uint32_t RESULT; /*!< (@ 0x00000400) Compare result */ 2301 __IM uint32_t RESERVED6[63]; 2302 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) COMP enable */ 2303 __IOM uint32_t PSEL; /*!< (@ 0x00000504) Pin select */ 2304 __IOM uint32_t REFSEL; /*!< (@ 0x00000508) Reference source select for single-ended mode */ 2305 __IOM uint32_t EXTREFSEL; /*!< (@ 0x0000050C) External reference select */ 2306 __IM uint32_t RESERVED7[8]; 2307 __IOM uint32_t TH; /*!< (@ 0x00000530) Threshold configuration for hysteresis unit */ 2308 __IOM uint32_t MODE; /*!< (@ 0x00000534) Mode configuration */ 2309 __IOM uint32_t HYST; /*!< (@ 0x00000538) Comparator hysteresis enable */ 2310 __IOM uint32_t ISOURCE; /*!< (@ 0x0000053C) Current source select on analog input */ 2311 } NRF_COMP_Type; /*!< Size = 1344 (0x540) */ 2312 2313 2314 2315 /* =========================================================================================================================== */ 2316 /* ================ LPCOMP_NS ================ */ 2317 /* =========================================================================================================================== */ 2318 2319 2320 /** 2321 * @brief Low-power comparator 0 (LPCOMP_NS) 2322 */ 2323 2324 typedef struct { /*!< (@ 0x4001A000) LPCOMP_NS Structure */ 2325 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Start comparator */ 2326 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stop comparator */ 2327 __OM uint32_t TASKS_SAMPLE; /*!< (@ 0x00000008) Sample comparator value */ 2328 __IM uint32_t RESERVED[29]; 2329 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 2330 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 2331 __IOM uint32_t SUBSCRIBE_SAMPLE; /*!< (@ 0x00000088) Subscribe configuration for task SAMPLE */ 2332 __IM uint32_t RESERVED1[29]; 2333 __IOM uint32_t EVENTS_READY; /*!< (@ 0x00000100) LPCOMP is ready and output is valid */ 2334 __IOM uint32_t EVENTS_DOWN; /*!< (@ 0x00000104) Downward crossing */ 2335 __IOM uint32_t EVENTS_UP; /*!< (@ 0x00000108) Upward crossing */ 2336 __IOM uint32_t EVENTS_CROSS; /*!< (@ 0x0000010C) Downward or upward crossing */ 2337 __IM uint32_t RESERVED2[28]; 2338 __IOM uint32_t PUBLISH_READY; /*!< (@ 0x00000180) Publish configuration for event READY */ 2339 __IOM uint32_t PUBLISH_DOWN; /*!< (@ 0x00000184) Publish configuration for event DOWN */ 2340 __IOM uint32_t PUBLISH_UP; /*!< (@ 0x00000188) Publish configuration for event UP */ 2341 __IOM uint32_t PUBLISH_CROSS; /*!< (@ 0x0000018C) Publish configuration for event CROSS */ 2342 __IM uint32_t RESERVED3[28]; 2343 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 2344 __IM uint32_t RESERVED4[64]; 2345 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2346 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2347 __IM uint32_t RESERVED5[61]; 2348 __IM uint32_t RESULT; /*!< (@ 0x00000400) Compare result */ 2349 __IM uint32_t RESERVED6[63]; 2350 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable LPCOMP */ 2351 __IOM uint32_t PSEL; /*!< (@ 0x00000504) Input pin select */ 2352 __IOM uint32_t REFSEL; /*!< (@ 0x00000508) Reference select */ 2353 __IOM uint32_t EXTREFSEL; /*!< (@ 0x0000050C) External reference select */ 2354 __IM uint32_t RESERVED7[4]; 2355 __IOM uint32_t ANADETECT; /*!< (@ 0x00000520) Analog detect configuration */ 2356 __IM uint32_t RESERVED8[5]; 2357 __IOM uint32_t HYST; /*!< (@ 0x00000538) Comparator hysteresis enable */ 2358 } NRF_LPCOMP_Type; /*!< Size = 1340 (0x53c) */ 2359 2360 2361 2362 /* =========================================================================================================================== */ 2363 /* ================ EGU0_NS ================ */ 2364 /* =========================================================================================================================== */ 2365 2366 2367 /** 2368 * @brief Event generator unit 0 (EGU0_NS) 2369 */ 2370 2371 typedef struct { /*!< (@ 0x4001B000) EGU0_NS Structure */ 2372 __OM uint32_t TASKS_TRIGGER[16]; /*!< (@ 0x00000000) Description collection: Trigger n for triggering 2373 the corresponding TRIGGERED[n] event */ 2374 __IM uint32_t RESERVED[16]; 2375 __IOM uint32_t SUBSCRIBE_TRIGGER[16]; /*!< (@ 0x00000080) Description collection: Subscribe configuration 2376 for task TRIGGER[n] */ 2377 __IM uint32_t RESERVED1[16]; 2378 __IOM uint32_t EVENTS_TRIGGERED[16]; /*!< (@ 0x00000100) Description collection: Event number n generated 2379 by triggering the corresponding TRIGGER[n] 2380 task */ 2381 __IM uint32_t RESERVED2[16]; 2382 __IOM uint32_t PUBLISH_TRIGGERED[16]; /*!< (@ 0x00000180) Description collection: Publish configuration 2383 for event TRIGGERED[n] */ 2384 __IM uint32_t RESERVED3[80]; 2385 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 2386 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2387 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2388 } NRF_EGU_Type; /*!< Size = 780 (0x30c) */ 2389 2390 2391 2392 /* =========================================================================================================================== */ 2393 /* ================ PWM0_NS ================ */ 2394 /* =========================================================================================================================== */ 2395 2396 2397 /** 2398 * @brief Pulse width modulation unit 0 (PWM0_NS) 2399 */ 2400 2401 typedef struct { /*!< (@ 0x40021000) PWM0_NS Structure */ 2402 __IM uint32_t RESERVED; 2403 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stops PWM pulse generation on all channels at 2404 the end of current PWM period, and stops 2405 sequence playback */ 2406 __OM uint32_t TASKS_SEQSTART[2]; /*!< (@ 0x00000008) Description collection: Loads the first PWM value 2407 on all enabled channels from sequence n, 2408 and starts playing that sequence at the 2409 rate defined in SEQ[n]REFRESH and/or DECODER.MODE. 2410 Causes PWM generation to start if not running. */ 2411 __OM uint32_t TASKS_NEXTSTEP; /*!< (@ 0x00000010) Steps by one value in the current sequence on 2412 all enabled channels if DECODER.MODE=NextStep. 2413 Does not cause PWM generation to start if 2414 not running. */ 2415 __IM uint32_t RESERVED1[28]; 2416 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 2417 __IOM uint32_t SUBSCRIBE_SEQSTART[2]; /*!< (@ 0x00000088) Description collection: Subscribe configuration 2418 for task SEQSTART[n] */ 2419 __IOM uint32_t SUBSCRIBE_NEXTSTEP; /*!< (@ 0x00000090) Subscribe configuration for task NEXTSTEP */ 2420 __IM uint32_t RESERVED2[28]; 2421 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000104) Response to STOP task, emitted when PWM pulses 2422 are no longer generated */ 2423 __IOM uint32_t EVENTS_SEQSTARTED[2]; /*!< (@ 0x00000108) Description collection: First PWM period started 2424 on sequence n */ 2425 __IOM uint32_t EVENTS_SEQEND[2]; /*!< (@ 0x00000110) Description collection: Emitted at end of every 2426 sequence n, when last value from RAM has 2427 been applied to wave counter */ 2428 __IOM uint32_t EVENTS_PWMPERIODEND; /*!< (@ 0x00000118) Emitted at the end of each PWM period */ 2429 __IOM uint32_t EVENTS_LOOPSDONE; /*!< (@ 0x0000011C) Concatenated sequences have been played the amount 2430 of times defined in LOOP.CNT */ 2431 __IM uint32_t RESERVED3[25]; 2432 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000184) Publish configuration for event STOPPED */ 2433 __IOM uint32_t PUBLISH_SEQSTARTED[2]; /*!< (@ 0x00000188) Description collection: Publish configuration 2434 for event SEQSTARTED[n] */ 2435 __IOM uint32_t PUBLISH_SEQEND[2]; /*!< (@ 0x00000190) Description collection: Publish configuration 2436 for event SEQEND[n] */ 2437 __IOM uint32_t PUBLISH_PWMPERIODEND; /*!< (@ 0x00000198) Publish configuration for event PWMPERIODEND */ 2438 __IOM uint32_t PUBLISH_LOOPSDONE; /*!< (@ 0x0000019C) Publish configuration for event LOOPSDONE */ 2439 __IM uint32_t RESERVED4[24]; 2440 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 2441 __IM uint32_t RESERVED5[63]; 2442 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 2443 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2444 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2445 __IM uint32_t RESERVED6[125]; 2446 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) PWM module enable register */ 2447 __IOM uint32_t MODE; /*!< (@ 0x00000504) Selects operating mode of the wave counter */ 2448 __IOM uint32_t COUNTERTOP; /*!< (@ 0x00000508) Value up to which the pulse generator counter 2449 counts */ 2450 __IOM uint32_t PRESCALER; /*!< (@ 0x0000050C) Configuration for PWM_CLK */ 2451 __IOM uint32_t DECODER; /*!< (@ 0x00000510) Configuration of the decoder */ 2452 __IOM uint32_t LOOP; /*!< (@ 0x00000514) Number of playbacks of a loop */ 2453 __IM uint32_t RESERVED7[2]; 2454 __IOM PWM_SEQ_Type SEQ[2]; /*!< (@ 0x00000520) Unspecified */ 2455 __IOM PWM_PSEL_Type PSEL; /*!< (@ 0x00000560) Unspecified */ 2456 } NRF_PWM_Type; /*!< Size = 1392 (0x570) */ 2457 2458 2459 2460 /* =========================================================================================================================== */ 2461 /* ================ PDM0_NS ================ */ 2462 /* =========================================================================================================================== */ 2463 2464 2465 /** 2466 * @brief Pulse Density Modulation (Digital Microphone) Interface 0 (PDM0_NS) 2467 */ 2468 2469 typedef struct { /*!< (@ 0x40026000) PDM0_NS Structure */ 2470 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Starts continuous PDM transfer */ 2471 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stops PDM transfer */ 2472 __IM uint32_t RESERVED[30]; 2473 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 2474 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 2475 __IM uint32_t RESERVED1[30]; 2476 __IOM uint32_t EVENTS_STARTED; /*!< (@ 0x00000100) PDM transfer has started */ 2477 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000104) PDM transfer has finished */ 2478 __IOM uint32_t EVENTS_END; /*!< (@ 0x00000108) The PDM has written the last sample specified 2479 by SAMPLE.MAXCNT (or the last sample after 2480 a STOP task has been received) to Data RAM */ 2481 __IM uint32_t RESERVED2[29]; 2482 __IOM uint32_t PUBLISH_STARTED; /*!< (@ 0x00000180) Publish configuration for event STARTED */ 2483 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000184) Publish configuration for event STOPPED */ 2484 __IOM uint32_t PUBLISH_END; /*!< (@ 0x00000188) Publish configuration for event END */ 2485 __IM uint32_t RESERVED3[93]; 2486 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 2487 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2488 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2489 __IM uint32_t RESERVED4[125]; 2490 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) PDM module enable register */ 2491 __IOM uint32_t PDMCLKCTRL; /*!< (@ 0x00000504) PDM clock generator control */ 2492 __IOM uint32_t MODE; /*!< (@ 0x00000508) Defines the routing of the connected PDM microphones' 2493 signals */ 2494 __IM uint32_t RESERVED5[3]; 2495 __IOM uint32_t GAINL; /*!< (@ 0x00000518) Left output gain adjustment */ 2496 __IOM uint32_t GAINR; /*!< (@ 0x0000051C) Right output gain adjustment */ 2497 __IOM uint32_t RATIO; /*!< (@ 0x00000520) Selects the ratio between PDM_CLK and output 2498 sample rate. Change PDMCLKCTRL accordingly. */ 2499 __IM uint32_t RESERVED6[7]; 2500 __IOM PDM_PSEL_Type PSEL; /*!< (@ 0x00000540) Unspecified */ 2501 __IM uint32_t RESERVED7; 2502 __IOM uint32_t MCLKCONFIG; /*!< (@ 0x0000054C) Master clock generator configuration */ 2503 __IM uint32_t RESERVED8[4]; 2504 __IOM PDM_SAMPLE_Type SAMPLE; /*!< (@ 0x00000560) Unspecified */ 2505 } NRF_PDM_Type; /*!< Size = 1384 (0x568) */ 2506 2507 2508 2509 /* =========================================================================================================================== */ 2510 /* ================ I2S0_NS ================ */ 2511 /* =========================================================================================================================== */ 2512 2513 2514 /** 2515 * @brief Inter-IC Sound 0 (I2S0_NS) 2516 */ 2517 2518 typedef struct { /*!< (@ 0x40028000) I2S0_NS Structure */ 2519 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Starts continuous I2S transfer. Also starts MCK 2520 generator when this is enabled */ 2521 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stops I2S transfer and MCK generator. Triggering 2522 this task will cause the event STOPPED to 2523 be generated. */ 2524 __IM uint32_t RESERVED[30]; 2525 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 2526 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 2527 __IM uint32_t RESERVED1[31]; 2528 __IOM uint32_t EVENTS_RXPTRUPD; /*!< (@ 0x00000104) The RXD.PTR register has been copied to internal 2529 double-buffers. When the I2S module is started 2530 and RX is enabled, this event will be generated 2531 for every RXTXD.MAXCNT words received on 2532 the SDIN pin. */ 2533 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000108) I2S transfer stopped. */ 2534 __IM uint32_t RESERVED2[2]; 2535 __IOM uint32_t EVENTS_TXPTRUPD; /*!< (@ 0x00000114) The TDX.PTR register has been copied to internal 2536 double-buffers. When the I2S module is started 2537 and TX is enabled, this event will be generated 2538 for every RXTXD.MAXCNT words that are sent 2539 on the SDOUT pin. */ 2540 __IM uint32_t RESERVED3; 2541 __IOM uint32_t EVENTS_FRAMESTART; /*!< (@ 0x0000011C) Frame start event, generated on the active edge 2542 of LRCK */ 2543 __IM uint32_t RESERVED4[25]; 2544 __IOM uint32_t PUBLISH_RXPTRUPD; /*!< (@ 0x00000184) Publish configuration for event RXPTRUPD */ 2545 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000188) Publish configuration for event STOPPED */ 2546 __IM uint32_t RESERVED5[2]; 2547 __IOM uint32_t PUBLISH_TXPTRUPD; /*!< (@ 0x00000194) Publish configuration for event TXPTRUPD */ 2548 __IM uint32_t RESERVED6; 2549 __IOM uint32_t PUBLISH_FRAMESTART; /*!< (@ 0x0000019C) Publish configuration for event FRAMESTART */ 2550 __IM uint32_t RESERVED7[88]; 2551 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 2552 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2553 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2554 __IM uint32_t RESERVED8[125]; 2555 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable I2S module */ 2556 __IOM I2S_CONFIG_Type CONFIG; /*!< (@ 0x00000504) Unspecified */ 2557 __IM uint32_t RESERVED9[2]; 2558 __IOM I2S_RXD_Type RXD; /*!< (@ 0x00000538) Unspecified */ 2559 __IM uint32_t RESERVED10; 2560 __IOM I2S_TXD_Type TXD; /*!< (@ 0x00000540) Unspecified */ 2561 __IM uint32_t RESERVED11[3]; 2562 __IOM I2S_RXTXD_Type RXTXD; /*!< (@ 0x00000550) Unspecified */ 2563 __IM uint32_t RESERVED12[3]; 2564 __IOM I2S_PSEL_Type PSEL; /*!< (@ 0x00000560) Unspecified */ 2565 } NRF_I2S_Type; /*!< Size = 1396 (0x574) */ 2566 2567 2568 2569 /* =========================================================================================================================== */ 2570 /* ================ IPC_NS ================ */ 2571 /* =========================================================================================================================== */ 2572 2573 2574 /** 2575 * @brief Interprocessor communication 0 (IPC_NS) 2576 */ 2577 2578 typedef struct { /*!< (@ 0x4002A000) IPC_NS Structure */ 2579 __OM uint32_t TASKS_SEND[16]; /*!< (@ 0x00000000) Description collection: Trigger events on IPC 2580 channel enabled in SEND_CNF[n] */ 2581 __IM uint32_t RESERVED[16]; 2582 __IOM uint32_t SUBSCRIBE_SEND[16]; /*!< (@ 0x00000080) Description collection: Subscribe configuration 2583 for task SEND[n] */ 2584 __IM uint32_t RESERVED1[16]; 2585 __IOM uint32_t EVENTS_RECEIVE[16]; /*!< (@ 0x00000100) Description collection: Event received on one 2586 or more of the enabled IPC channels in RECEIVE_CNF[n] */ 2587 __IM uint32_t RESERVED2[16]; 2588 __IOM uint32_t PUBLISH_RECEIVE[16]; /*!< (@ 0x00000180) Description collection: Publish configuration 2589 for event RECEIVE[n] */ 2590 __IM uint32_t RESERVED3[80]; 2591 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 2592 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2593 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2594 __IM uint32_t INTPEND; /*!< (@ 0x0000030C) Pending interrupts */ 2595 __IM uint32_t RESERVED4[128]; 2596 __IOM uint32_t SEND_CNF[16]; /*!< (@ 0x00000510) Description collection: Send event configuration 2597 for TASKS_SEND[n] */ 2598 __IM uint32_t RESERVED5[16]; 2599 __IOM uint32_t RECEIVE_CNF[16]; /*!< (@ 0x00000590) Description collection: Receive event configuration 2600 for EVENTS_RECEIVE[n] */ 2601 __IM uint32_t RESERVED6[16]; 2602 __IOM uint32_t GPMEM[2]; /*!< (@ 0x00000610) Description collection: General purpose memory */ 2603 } NRF_IPC_Type; /*!< Size = 1560 (0x618) */ 2604 2605 2606 2607 /* =========================================================================================================================== */ 2608 /* ================ QSPI_NS ================ */ 2609 /* =========================================================================================================================== */ 2610 2611 2612 /** 2613 * @brief External flash interface 0 (QSPI_NS) 2614 */ 2615 2616 typedef struct { /*!< (@ 0x4002B000) QSPI_NS Structure */ 2617 __OM uint32_t TASKS_ACTIVATE; /*!< (@ 0x00000000) Activate QSPI interface */ 2618 __OM uint32_t TASKS_READSTART; /*!< (@ 0x00000004) Start transfer from external flash memory to 2619 internal RAM */ 2620 __OM uint32_t TASKS_WRITESTART; /*!< (@ 0x00000008) Start transfer from internal RAM to external 2621 flash memory */ 2622 __OM uint32_t TASKS_ERASESTART; /*!< (@ 0x0000000C) Start external flash memory erase operation */ 2623 __OM uint32_t TASKS_DEACTIVATE; /*!< (@ 0x00000010) Deactivate QSPI interface */ 2624 __IM uint32_t RESERVED[27]; 2625 __IOM uint32_t SUBSCRIBE_ACTIVATE; /*!< (@ 0x00000080) Subscribe configuration for task ACTIVATE */ 2626 __IOM uint32_t SUBSCRIBE_READSTART; /*!< (@ 0x00000084) Subscribe configuration for task READSTART */ 2627 __IOM uint32_t SUBSCRIBE_WRITESTART; /*!< (@ 0x00000088) Subscribe configuration for task WRITESTART */ 2628 __IOM uint32_t SUBSCRIBE_ERASESTART; /*!< (@ 0x0000008C) Subscribe configuration for task ERASESTART */ 2629 __IOM uint32_t SUBSCRIBE_DEACTIVATE; /*!< (@ 0x00000090) Subscribe configuration for task DEACTIVATE */ 2630 __IM uint32_t RESERVED1[27]; 2631 __IOM uint32_t EVENTS_READY; /*!< (@ 0x00000100) QSPI peripheral is ready. This event will be 2632 generated as a response to all QSPI tasks 2633 except DEACTIVATE. */ 2634 __IM uint32_t RESERVED2[31]; 2635 __IOM uint32_t PUBLISH_READY; /*!< (@ 0x00000180) Publish configuration for event READY */ 2636 __IM uint32_t RESERVED3[95]; 2637 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 2638 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2639 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2640 __IM uint32_t RESERVED4[125]; 2641 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable QSPI peripheral and acquire the pins selected 2642 in PSELn registers */ 2643 __IOM QSPI_READ_Type READ; /*!< (@ 0x00000504) Unspecified */ 2644 __IOM QSPI_WRITE_Type WRITE; /*!< (@ 0x00000510) Unspecified */ 2645 __IOM QSPI_ERASE_Type ERASE; /*!< (@ 0x0000051C) Unspecified */ 2646 __IOM QSPI_PSEL_Type PSEL; /*!< (@ 0x00000524) Unspecified */ 2647 __IOM uint32_t XIPOFFSET; /*!< (@ 0x00000540) Address offset into the external memory for Execute 2648 in Place operation. */ 2649 __IOM uint32_t IFCONFIG0; /*!< (@ 0x00000544) Interface configuration. */ 2650 __IM uint32_t RESERVED5; 2651 __IOM uint32_t XIPEN; /*!< (@ 0x0000054C) Enable Execute in Place operation. */ 2652 __IM uint32_t RESERVED6[4]; 2653 __IOM QSPI_XIP_ENC_Type XIP_ENC; /*!< (@ 0x00000560) Unspecified */ 2654 __IOM QSPI_DMA_ENC_Type DMA_ENC; /*!< (@ 0x00000580) Unspecified */ 2655 __IM uint32_t RESERVED7[24]; 2656 __IOM uint32_t IFCONFIG1; /*!< (@ 0x00000600) Interface configuration. */ 2657 __IM uint32_t STATUS; /*!< (@ 0x00000604) Status register. */ 2658 __IM uint32_t RESERVED8[3]; 2659 __IOM uint32_t DPMDUR; /*!< (@ 0x00000614) Set the duration required to enter/exit deep 2660 power-down mode (DPM). */ 2661 __IM uint32_t RESERVED9[3]; 2662 __IOM uint32_t ADDRCONF; /*!< (@ 0x00000624) Extended address configuration. */ 2663 __IM uint32_t RESERVED10[3]; 2664 __IOM uint32_t CINSTRCONF; /*!< (@ 0x00000634) Custom instruction configuration register. */ 2665 __IOM uint32_t CINSTRDAT0; /*!< (@ 0x00000638) Custom instruction data register 0. */ 2666 __IOM uint32_t CINSTRDAT1; /*!< (@ 0x0000063C) Custom instruction data register 1. */ 2667 __IOM uint32_t IFTIMING; /*!< (@ 0x00000640) SPI interface timing. */ 2668 } NRF_QSPI_Type; /*!< Size = 1604 (0x644) */ 2669 2670 2671 2672 /* =========================================================================================================================== */ 2673 /* ================ NFCT_NS ================ */ 2674 /* =========================================================================================================================== */ 2675 2676 2677 /** 2678 * @brief NFC-A compatible radio 0 (NFCT_NS) 2679 */ 2680 2681 typedef struct { /*!< (@ 0x4002D000) NFCT_NS Structure */ 2682 __OM uint32_t TASKS_ACTIVATE; /*!< (@ 0x00000000) Activate NFCT peripheral for incoming and outgoing 2683 frames, change state to activated */ 2684 __OM uint32_t TASKS_DISABLE; /*!< (@ 0x00000004) Disable NFCT peripheral */ 2685 __OM uint32_t TASKS_SENSE; /*!< (@ 0x00000008) Enable NFC sense field mode, change state to 2686 sense mode */ 2687 __OM uint32_t TASKS_STARTTX; /*!< (@ 0x0000000C) Start transmission of an outgoing frame, change 2688 state to transmit */ 2689 __IM uint32_t RESERVED[3]; 2690 __OM uint32_t TASKS_ENABLERXDATA; /*!< (@ 0x0000001C) Initializes the EasyDMA for receive. */ 2691 __IM uint32_t RESERVED1; 2692 __OM uint32_t TASKS_GOIDLE; /*!< (@ 0x00000024) Force state machine to IDLE state */ 2693 __OM uint32_t TASKS_GOSLEEP; /*!< (@ 0x00000028) Force state machine to SLEEP_A state */ 2694 __IM uint32_t RESERVED2[21]; 2695 __IOM uint32_t SUBSCRIBE_ACTIVATE; /*!< (@ 0x00000080) Subscribe configuration for task ACTIVATE */ 2696 __IOM uint32_t SUBSCRIBE_DISABLE; /*!< (@ 0x00000084) Subscribe configuration for task DISABLE */ 2697 __IOM uint32_t SUBSCRIBE_SENSE; /*!< (@ 0x00000088) Subscribe configuration for task SENSE */ 2698 __IOM uint32_t SUBSCRIBE_STARTTX; /*!< (@ 0x0000008C) Subscribe configuration for task STARTTX */ 2699 __IM uint32_t RESERVED3[3]; 2700 __IOM uint32_t SUBSCRIBE_ENABLERXDATA; /*!< (@ 0x0000009C) Subscribe configuration for task ENABLERXDATA */ 2701 __IM uint32_t RESERVED4; 2702 __IOM uint32_t SUBSCRIBE_GOIDLE; /*!< (@ 0x000000A4) Subscribe configuration for task GOIDLE */ 2703 __IOM uint32_t SUBSCRIBE_GOSLEEP; /*!< (@ 0x000000A8) Subscribe configuration for task GOSLEEP */ 2704 __IM uint32_t RESERVED5[21]; 2705 __IOM uint32_t EVENTS_READY; /*!< (@ 0x00000100) The NFCT peripheral is ready to receive and send 2706 frames */ 2707 __IOM uint32_t EVENTS_FIELDDETECTED; /*!< (@ 0x00000104) Remote NFC field detected */ 2708 __IOM uint32_t EVENTS_FIELDLOST; /*!< (@ 0x00000108) Remote NFC field lost */ 2709 __IOM uint32_t EVENTS_TXFRAMESTART; /*!< (@ 0x0000010C) Marks the start of the first symbol of a transmitted 2710 frame */ 2711 __IOM uint32_t EVENTS_TXFRAMEEND; /*!< (@ 0x00000110) Marks the end of the last transmitted on-air 2712 symbol of a frame */ 2713 __IOM uint32_t EVENTS_RXFRAMESTART; /*!< (@ 0x00000114) Marks the end of the first symbol of a received 2714 frame */ 2715 __IOM uint32_t EVENTS_RXFRAMEEND; /*!< (@ 0x00000118) Received data has been checked (CRC, parity) 2716 and transferred to RAM, and EasyDMA has 2717 ended accessing the RX buffer */ 2718 __IOM uint32_t EVENTS_ERROR; /*!< (@ 0x0000011C) NFC error reported. The ERRORSTATUS register 2719 contains details on the source of the error. */ 2720 __IM uint32_t RESERVED6[2]; 2721 __IOM uint32_t EVENTS_RXERROR; /*!< (@ 0x00000128) NFC RX frame error reported. The FRAMESTATUS.RX 2722 register contains details on the source 2723 of the error. */ 2724 __IOM uint32_t EVENTS_ENDRX; /*!< (@ 0x0000012C) RX buffer (as defined by PACKETPTR and MAXLEN) 2725 in Data RAM full. */ 2726 __IOM uint32_t EVENTS_ENDTX; /*!< (@ 0x00000130) Transmission of data in RAM has ended, and EasyDMA 2727 has ended accessing the TX buffer */ 2728 __IM uint32_t RESERVED7; 2729 __IOM uint32_t EVENTS_AUTOCOLRESSTARTED; /*!< (@ 0x00000138) Auto collision resolution process has started */ 2730 __IM uint32_t RESERVED8[3]; 2731 __IOM uint32_t EVENTS_COLLISION; /*!< (@ 0x00000148) NFC auto collision resolution error reported. */ 2732 __IOM uint32_t EVENTS_SELECTED; /*!< (@ 0x0000014C) NFC auto collision resolution successfully completed */ 2733 __IOM uint32_t EVENTS_STARTED; /*!< (@ 0x00000150) EasyDMA is ready to receive or send frames. */ 2734 __IM uint32_t RESERVED9[11]; 2735 __IOM uint32_t PUBLISH_READY; /*!< (@ 0x00000180) Publish configuration for event READY */ 2736 __IOM uint32_t PUBLISH_FIELDDETECTED; /*!< (@ 0x00000184) Publish configuration for event FIELDDETECTED */ 2737 __IOM uint32_t PUBLISH_FIELDLOST; /*!< (@ 0x00000188) Publish configuration for event FIELDLOST */ 2738 __IOM uint32_t PUBLISH_TXFRAMESTART; /*!< (@ 0x0000018C) Publish configuration for event TXFRAMESTART */ 2739 __IOM uint32_t PUBLISH_TXFRAMEEND; /*!< (@ 0x00000190) Publish configuration for event TXFRAMEEND */ 2740 __IOM uint32_t PUBLISH_RXFRAMESTART; /*!< (@ 0x00000194) Publish configuration for event RXFRAMESTART */ 2741 __IOM uint32_t PUBLISH_RXFRAMEEND; /*!< (@ 0x00000198) Publish configuration for event RXFRAMEEND */ 2742 __IOM uint32_t PUBLISH_ERROR; /*!< (@ 0x0000019C) Publish configuration for event ERROR */ 2743 __IM uint32_t RESERVED10[2]; 2744 __IOM uint32_t PUBLISH_RXERROR; /*!< (@ 0x000001A8) Publish configuration for event RXERROR */ 2745 __IOM uint32_t PUBLISH_ENDRX; /*!< (@ 0x000001AC) Publish configuration for event ENDRX */ 2746 __IOM uint32_t PUBLISH_ENDTX; /*!< (@ 0x000001B0) Publish configuration for event ENDTX */ 2747 __IM uint32_t RESERVED11; 2748 __IOM uint32_t PUBLISH_AUTOCOLRESSTARTED; /*!< (@ 0x000001B8) Publish configuration for event AUTOCOLRESSTARTED */ 2749 __IM uint32_t RESERVED12[3]; 2750 __IOM uint32_t PUBLISH_COLLISION; /*!< (@ 0x000001C8) Publish configuration for event COLLISION */ 2751 __IOM uint32_t PUBLISH_SELECTED; /*!< (@ 0x000001CC) Publish configuration for event SELECTED */ 2752 __IOM uint32_t PUBLISH_STARTED; /*!< (@ 0x000001D0) Publish configuration for event STARTED */ 2753 __IM uint32_t RESERVED13[11]; 2754 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 2755 __IM uint32_t RESERVED14[63]; 2756 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 2757 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2758 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2759 __IM uint32_t RESERVED15[62]; 2760 __IOM uint32_t ERRORSTATUS; /*!< (@ 0x00000404) NFC Error Status register */ 2761 __IM uint32_t RESERVED16; 2762 __IOM NFCT_FRAMESTATUS_Type FRAMESTATUS; /*!< (@ 0x0000040C) Unspecified */ 2763 __IM uint32_t NFCTAGSTATE; /*!< (@ 0x00000410) Current operating state of NFC tag */ 2764 __IM uint32_t RESERVED17[3]; 2765 __IM uint32_t SLEEPSTATE; /*!< (@ 0x00000420) Sleep state during automatic collision resolution */ 2766 __IM uint32_t RESERVED18[6]; 2767 __IM uint32_t FIELDPRESENT; /*!< (@ 0x0000043C) Indicates the presence or not of a valid field */ 2768 __IM uint32_t RESERVED19[49]; 2769 __IOM uint32_t FRAMEDELAYMIN; /*!< (@ 0x00000504) Minimum frame delay */ 2770 __IOM uint32_t FRAMEDELAYMAX; /*!< (@ 0x00000508) Maximum frame delay */ 2771 __IOM uint32_t FRAMEDELAYMODE; /*!< (@ 0x0000050C) Configuration register for the Frame Delay Timer */ 2772 __IOM uint32_t PACKETPTR; /*!< (@ 0x00000510) Packet pointer for TXD and RXD data storage in 2773 Data RAM */ 2774 __IOM uint32_t MAXLEN; /*!< (@ 0x00000514) Size of the RAM buffer allocated to TXD and RXD 2775 data storage each */ 2776 __IOM NFCT_TXD_Type TXD; /*!< (@ 0x00000518) Unspecified */ 2777 __IOM NFCT_RXD_Type RXD; /*!< (@ 0x00000520) Unspecified */ 2778 __IM uint32_t RESERVED20; 2779 __IOM uint32_t MODULATIONCTRL; /*!< (@ 0x0000052C) Enables the modulation output to a GPIO pin which 2780 can be connected to a second external antenna. */ 2781 __IM uint32_t RESERVED21[2]; 2782 __IOM uint32_t MODULATIONPSEL; /*!< (@ 0x00000538) Pin select for Modulation control */ 2783 __IM uint32_t RESERVED22[21]; 2784 __IOM uint32_t NFCID1_LAST; /*!< (@ 0x00000590) Last NFCID1 part (4, 7 or 10 bytes ID) */ 2785 __IOM uint32_t NFCID1_2ND_LAST; /*!< (@ 0x00000594) Second last NFCID1 part (7 or 10 bytes ID) */ 2786 __IOM uint32_t NFCID1_3RD_LAST; /*!< (@ 0x00000598) Third last NFCID1 part (10 bytes ID) */ 2787 __IOM uint32_t AUTOCOLRESCONFIG; /*!< (@ 0x0000059C) Controls the auto collision resolution function. 2788 This setting must be done before the NFCT 2789 peripheral is activated. */ 2790 __IOM uint32_t SENSRES; /*!< (@ 0x000005A0) NFC-A SENS_RES auto-response settings */ 2791 __IOM uint32_t SELRES; /*!< (@ 0x000005A4) NFC-A SEL_RES auto-response settings */ 2792 } NRF_NFCT_Type; /*!< Size = 1448 (0x5a8) */ 2793 2794 2795 2796 /* =========================================================================================================================== */ 2797 /* ================ MUTEX_NS ================ */ 2798 /* =========================================================================================================================== */ 2799 2800 2801 /** 2802 * @brief MUTEX 0 (MUTEX_NS) 2803 */ 2804 2805 typedef struct { /*!< (@ 0x40030000) MUTEX_NS Structure */ 2806 __IM uint32_t RESERVED[256]; 2807 __IOM uint32_t MUTEX[16]; /*!< (@ 0x00000400) Description collection: Mutex register */ 2808 } NRF_MUTEX_Type; /*!< Size = 1088 (0x440) */ 2809 2810 2811 2812 /* =========================================================================================================================== */ 2813 /* ================ QDEC0_NS ================ */ 2814 /* =========================================================================================================================== */ 2815 2816 2817 /** 2818 * @brief Quadrature Decoder 0 (QDEC0_NS) 2819 */ 2820 2821 typedef struct { /*!< (@ 0x40033000) QDEC0_NS Structure */ 2822 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Task starting the quadrature decoder */ 2823 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Task stopping the quadrature decoder */ 2824 __OM uint32_t TASKS_READCLRACC; /*!< (@ 0x00000008) Read and clear ACC and ACCDBL */ 2825 __OM uint32_t TASKS_RDCLRACC; /*!< (@ 0x0000000C) Read and clear ACC */ 2826 __OM uint32_t TASKS_RDCLRDBL; /*!< (@ 0x00000010) Read and clear ACCDBL */ 2827 __IM uint32_t RESERVED[27]; 2828 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 2829 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 2830 __IOM uint32_t SUBSCRIBE_READCLRACC; /*!< (@ 0x00000088) Subscribe configuration for task READCLRACC */ 2831 __IOM uint32_t SUBSCRIBE_RDCLRACC; /*!< (@ 0x0000008C) Subscribe configuration for task RDCLRACC */ 2832 __IOM uint32_t SUBSCRIBE_RDCLRDBL; /*!< (@ 0x00000090) Subscribe configuration for task RDCLRDBL */ 2833 __IM uint32_t RESERVED1[27]; 2834 __IOM uint32_t EVENTS_SAMPLERDY; /*!< (@ 0x00000100) Event being generated for every new sample value 2835 written to the SAMPLE register */ 2836 __IOM uint32_t EVENTS_REPORTRDY; /*!< (@ 0x00000104) Non-null report ready */ 2837 __IOM uint32_t EVENTS_ACCOF; /*!< (@ 0x00000108) ACC or ACCDBL register overflow */ 2838 __IOM uint32_t EVENTS_DBLRDY; /*!< (@ 0x0000010C) Double displacement(s) detected */ 2839 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000110) QDEC has been stopped */ 2840 __IM uint32_t RESERVED2[27]; 2841 __IOM uint32_t PUBLISH_SAMPLERDY; /*!< (@ 0x00000180) Publish configuration for event SAMPLERDY */ 2842 __IOM uint32_t PUBLISH_REPORTRDY; /*!< (@ 0x00000184) Publish configuration for event REPORTRDY */ 2843 __IOM uint32_t PUBLISH_ACCOF; /*!< (@ 0x00000188) Publish configuration for event ACCOF */ 2844 __IOM uint32_t PUBLISH_DBLRDY; /*!< (@ 0x0000018C) Publish configuration for event DBLRDY */ 2845 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000190) Publish configuration for event STOPPED */ 2846 __IM uint32_t RESERVED3[27]; 2847 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 2848 __IM uint32_t RESERVED4[64]; 2849 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2850 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2851 __IM uint32_t RESERVED5[125]; 2852 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable the quadrature decoder */ 2853 __IOM uint32_t LEDPOL; /*!< (@ 0x00000504) LED output pin polarity */ 2854 __IOM uint32_t SAMPLEPER; /*!< (@ 0x00000508) Sample period */ 2855 __IM int32_t SAMPLE; /*!< (@ 0x0000050C) Motion sample value */ 2856 __IOM uint32_t REPORTPER; /*!< (@ 0x00000510) Number of samples to be taken before REPORTRDY 2857 and DBLRDY events can be generated */ 2858 __IM int32_t ACC; /*!< (@ 0x00000514) Register accumulating the valid transitions */ 2859 __IM int32_t ACCREAD; /*!< (@ 0x00000518) Snapshot of the ACC register, updated by the 2860 READCLRACC or RDCLRACC task */ 2861 __IOM QDEC_PSEL_Type PSEL; /*!< (@ 0x0000051C) Unspecified */ 2862 __IOM uint32_t DBFEN; /*!< (@ 0x00000528) Enable input debounce filters */ 2863 __IM uint32_t RESERVED6[5]; 2864 __IOM uint32_t LEDPRE; /*!< (@ 0x00000540) Time period the LED is switched ON prior to sampling */ 2865 __IM uint32_t ACCDBL; /*!< (@ 0x00000544) Register accumulating the number of detected 2866 double transitions */ 2867 __IM uint32_t ACCDBLREAD; /*!< (@ 0x00000548) Snapshot of the ACCDBL, updated by the READCLRACC 2868 or RDCLRDBL task */ 2869 } NRF_QDEC_Type; /*!< Size = 1356 (0x54c) */ 2870 2871 2872 2873 /* =========================================================================================================================== */ 2874 /* ================ USBD_NS ================ */ 2875 /* =========================================================================================================================== */ 2876 2877 2878 /** 2879 * @brief Universal serial bus device 0 (USBD_NS) 2880 */ 2881 2882 typedef struct { /*!< (@ 0x40036000) USBD_NS Structure */ 2883 __IM uint32_t RESERVED; 2884 __OM uint32_t TASKS_STARTEPIN[8]; /*!< (@ 0x00000004) Description collection: Captures the EPIN[n].PTR 2885 and EPIN[n].MAXCNT registers values, and 2886 enables endpoint IN n to respond to traffic 2887 from host */ 2888 __OM uint32_t TASKS_STARTISOIN; /*!< (@ 0x00000024) Captures the ISOIN.PTR and ISOIN.MAXCNT registers 2889 values, and enables sending data on ISO 2890 endpoint */ 2891 __OM uint32_t TASKS_STARTEPOUT[8]; /*!< (@ 0x00000028) Description collection: Captures the EPOUT[n].PTR 2892 and EPOUT[n].MAXCNT registers values, and 2893 enables endpoint n to respond to traffic 2894 from host */ 2895 __OM uint32_t TASKS_STARTISOOUT; /*!< (@ 0x00000048) Captures the ISOOUT.PTR and ISOOUT.MAXCNT registers 2896 values, and enables receiving of data on 2897 ISO endpoint */ 2898 __OM uint32_t TASKS_EP0RCVOUT; /*!< (@ 0x0000004C) Allows OUT data stage on control endpoint 0 */ 2899 __OM uint32_t TASKS_EP0STATUS; /*!< (@ 0x00000050) Allows status stage on control endpoint 0 */ 2900 __OM uint32_t TASKS_EP0STALL; /*!< (@ 0x00000054) Stalls data and status stage on control endpoint 2901 0 */ 2902 __OM uint32_t TASKS_DPDMDRIVE; /*!< (@ 0x00000058) Forces D+ and D- lines into the state defined 2903 in the DPDMVALUE register */ 2904 __OM uint32_t TASKS_DPDMNODRIVE; /*!< (@ 0x0000005C) Stops forcing D+ and D- lines into any state 2905 (USB engine takes control) */ 2906 __IM uint32_t RESERVED1[9]; 2907 __IOM uint32_t SUBSCRIBE_STARTEPIN[8]; /*!< (@ 0x00000084) Description collection: Subscribe configuration 2908 for task STARTEPIN[n] */ 2909 __IOM uint32_t SUBSCRIBE_STARTISOIN; /*!< (@ 0x000000A4) Subscribe configuration for task STARTISOIN */ 2910 __IOM uint32_t SUBSCRIBE_STARTEPOUT[8]; /*!< (@ 0x000000A8) Description collection: Subscribe configuration 2911 for task STARTEPOUT[n] */ 2912 __IOM uint32_t SUBSCRIBE_STARTISOOUT; /*!< (@ 0x000000C8) Subscribe configuration for task STARTISOOUT */ 2913 __IOM uint32_t SUBSCRIBE_EP0RCVOUT; /*!< (@ 0x000000CC) Subscribe configuration for task EP0RCVOUT */ 2914 __IOM uint32_t SUBSCRIBE_EP0STATUS; /*!< (@ 0x000000D0) Subscribe configuration for task EP0STATUS */ 2915 __IOM uint32_t SUBSCRIBE_EP0STALL; /*!< (@ 0x000000D4) Subscribe configuration for task EP0STALL */ 2916 __IOM uint32_t SUBSCRIBE_DPDMDRIVE; /*!< (@ 0x000000D8) Subscribe configuration for task DPDMDRIVE */ 2917 __IOM uint32_t SUBSCRIBE_DPDMNODRIVE; /*!< (@ 0x000000DC) Subscribe configuration for task DPDMNODRIVE */ 2918 __IM uint32_t RESERVED2[8]; 2919 __IOM uint32_t EVENTS_USBRESET; /*!< (@ 0x00000100) Signals that a USB reset condition has been detected 2920 on USB lines */ 2921 __IOM uint32_t EVENTS_STARTED; /*!< (@ 0x00000104) Confirms that the EPIN[n].PTR and EPIN[n].MAXCNT, 2922 or EPOUT[n].PTR and EPOUT[n].MAXCNT registers 2923 have been captured on all endpoints reported 2924 in the EPSTATUS register */ 2925 __IOM uint32_t EVENTS_ENDEPIN[8]; /*!< (@ 0x00000108) Description collection: The whole EPIN[n] buffer 2926 has been consumed. The buffer can be accessed 2927 safely by software. */ 2928 __IOM uint32_t EVENTS_EP0DATADONE; /*!< (@ 0x00000128) An acknowledged data transfer has taken place 2929 on the control endpoint */ 2930 __IOM uint32_t EVENTS_ENDISOIN; /*!< (@ 0x0000012C) The whole ISOIN buffer has been consumed. The 2931 buffer can be accessed safely by software. */ 2932 __IOM uint32_t EVENTS_ENDEPOUT[8]; /*!< (@ 0x00000130) Description collection: The whole EPOUT[n] buffer 2933 has been consumed. The buffer can be accessed 2934 safely by software. */ 2935 __IOM uint32_t EVENTS_ENDISOOUT; /*!< (@ 0x00000150) The whole ISOOUT buffer has been consumed. The 2936 buffer can be accessed safely by software. */ 2937 __IOM uint32_t EVENTS_SOF; /*!< (@ 0x00000154) Signals that a SOF (start of frame) condition 2938 has been detected on USB lines */ 2939 __IOM uint32_t EVENTS_USBEVENT; /*!< (@ 0x00000158) An event or an error not covered by specific 2940 events has occurred. Check EVENTCAUSE register 2941 to find the cause. */ 2942 __IOM uint32_t EVENTS_EP0SETUP; /*!< (@ 0x0000015C) A valid SETUP token has been received (and acknowledged) 2943 on the control endpoint */ 2944 __IOM uint32_t EVENTS_EPDATA; /*!< (@ 0x00000160) A data transfer has occurred on a data endpoint, 2945 indicated by the EPDATASTATUS register */ 2946 __IM uint32_t RESERVED3[7]; 2947 __IOM uint32_t PUBLISH_USBRESET; /*!< (@ 0x00000180) Publish configuration for event USBRESET */ 2948 __IOM uint32_t PUBLISH_STARTED; /*!< (@ 0x00000184) Publish configuration for event STARTED */ 2949 __IOM uint32_t PUBLISH_ENDEPIN[8]; /*!< (@ 0x00000188) Description collection: Publish configuration 2950 for event ENDEPIN[n] */ 2951 __IOM uint32_t PUBLISH_EP0DATADONE; /*!< (@ 0x000001A8) Publish configuration for event EP0DATADONE */ 2952 __IOM uint32_t PUBLISH_ENDISOIN; /*!< (@ 0x000001AC) Publish configuration for event ENDISOIN */ 2953 __IOM uint32_t PUBLISH_ENDEPOUT[8]; /*!< (@ 0x000001B0) Description collection: Publish configuration 2954 for event ENDEPOUT[n] */ 2955 __IOM uint32_t PUBLISH_ENDISOOUT; /*!< (@ 0x000001D0) Publish configuration for event ENDISOOUT */ 2956 __IOM uint32_t PUBLISH_SOF; /*!< (@ 0x000001D4) Publish configuration for event SOF */ 2957 __IOM uint32_t PUBLISH_USBEVENT; /*!< (@ 0x000001D8) Publish configuration for event USBEVENT */ 2958 __IOM uint32_t PUBLISH_EP0SETUP; /*!< (@ 0x000001DC) Publish configuration for event EP0SETUP */ 2959 __IOM uint32_t PUBLISH_EPDATA; /*!< (@ 0x000001E0) Publish configuration for event EPDATA */ 2960 __IM uint32_t RESERVED4[7]; 2961 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 2962 __IM uint32_t RESERVED5[63]; 2963 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 2964 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2965 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2966 __IM uint32_t RESERVED6[61]; 2967 __IOM uint32_t EVENTCAUSE; /*!< (@ 0x00000400) Details on what caused the USBEVENT event */ 2968 __IM uint32_t RESERVED7[7]; 2969 __IOM USBD_HALTED_Type HALTED; /*!< (@ 0x00000420) Unspecified */ 2970 __IM uint32_t RESERVED8; 2971 __IOM uint32_t EPSTATUS; /*!< (@ 0x00000468) Provides information on which endpoint's EasyDMA 2972 registers have been captured */ 2973 __IOM uint32_t EPDATASTATUS; /*!< (@ 0x0000046C) Provides information on which endpoint(s) an 2974 acknowledged data transfer has occurred 2975 (EPDATA event) */ 2976 __IM uint32_t USBADDR; /*!< (@ 0x00000470) Device USB address */ 2977 __IM uint32_t RESERVED9[3]; 2978 __IM uint32_t BMREQUESTTYPE; /*!< (@ 0x00000480) SETUP data, byte 0, bmRequestType */ 2979 __IM uint32_t BREQUEST; /*!< (@ 0x00000484) SETUP data, byte 1, bRequest */ 2980 __IM uint32_t WVALUEL; /*!< (@ 0x00000488) SETUP data, byte 2, LSB of wValue */ 2981 __IM uint32_t WVALUEH; /*!< (@ 0x0000048C) SETUP data, byte 3, MSB of wValue */ 2982 __IM uint32_t WINDEXL; /*!< (@ 0x00000490) SETUP data, byte 4, LSB of wIndex */ 2983 __IM uint32_t WINDEXH; /*!< (@ 0x00000494) SETUP data, byte 5, MSB of wIndex */ 2984 __IM uint32_t WLENGTHL; /*!< (@ 0x00000498) SETUP data, byte 6, LSB of wLength */ 2985 __IM uint32_t WLENGTHH; /*!< (@ 0x0000049C) SETUP data, byte 7, MSB of wLength */ 2986 __IOM USBD_SIZE_Type SIZE; /*!< (@ 0x000004A0) Unspecified */ 2987 __IM uint32_t RESERVED10[15]; 2988 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable USB */ 2989 __IOM uint32_t USBPULLUP; /*!< (@ 0x00000504) Control of the USB pull-up */ 2990 __IOM uint32_t DPDMVALUE; /*!< (@ 0x00000508) State D+ and D- lines will be forced into by 2991 the DPDMDRIVE task. The DPDMNODRIVE task 2992 reverts the control of the lines to MAC 2993 IP (no forcing). */ 2994 __IOM uint32_t DTOGGLE; /*!< (@ 0x0000050C) Data toggle control and status */ 2995 __IOM uint32_t EPINEN; /*!< (@ 0x00000510) Endpoint IN enable */ 2996 __IOM uint32_t EPOUTEN; /*!< (@ 0x00000514) Endpoint OUT enable */ 2997 __OM uint32_t EPSTALL; /*!< (@ 0x00000518) STALL endpoints */ 2998 __IOM uint32_t ISOSPLIT; /*!< (@ 0x0000051C) Controls the split of ISO buffers */ 2999 __IM uint32_t FRAMECNTR; /*!< (@ 0x00000520) Returns the current value of the start of frame 3000 counter */ 3001 __IM uint32_t RESERVED11[2]; 3002 __IOM uint32_t LOWPOWER; /*!< (@ 0x0000052C) Controls USBD peripheral Low-power mode during 3003 USB suspend */ 3004 __IOM uint32_t ISOINCONFIG; /*!< (@ 0x00000530) Controls the response of the ISO IN endpoint 3005 to an IN token when no data is ready to 3006 be sent */ 3007 __IM uint32_t RESERVED12[51]; 3008 __IOM USBD_EPIN_Type EPIN[8]; /*!< (@ 0x00000600) Unspecified */ 3009 __IOM USBD_ISOIN_Type ISOIN; /*!< (@ 0x000006A0) Unspecified */ 3010 __IM uint32_t RESERVED13[21]; 3011 __IOM USBD_EPOUT_Type EPOUT[8]; /*!< (@ 0x00000700) Unspecified */ 3012 __IOM USBD_ISOOUT_Type ISOOUT; /*!< (@ 0x000007A0) Unspecified */ 3013 } NRF_USBD_Type; /*!< Size = 1964 (0x7ac) */ 3014 3015 3016 3017 /* =========================================================================================================================== */ 3018 /* ================ USBREGULATOR_NS ================ */ 3019 /* =========================================================================================================================== */ 3020 3021 3022 /** 3023 * @brief USB Regulator 0 (USBREGULATOR_NS) 3024 */ 3025 3026 typedef struct { /*!< (@ 0x40037000) USBREGULATOR_NS Structure */ 3027 __IM uint32_t RESERVED[64]; 3028 __IOM uint32_t EVENTS_USBDETECTED; /*!< (@ 0x00000100) Voltage supply detected on VBUS */ 3029 __IOM uint32_t EVENTS_USBREMOVED; /*!< (@ 0x00000104) Voltage supply removed from VBUS */ 3030 __IOM uint32_t EVENTS_USBPWRRDY; /*!< (@ 0x00000108) USB 3.3 V supply ready */ 3031 __IM uint32_t RESERVED1[29]; 3032 __IOM uint32_t PUBLISH_USBDETECTED; /*!< (@ 0x00000180) Publish configuration for event USBDETECTED */ 3033 __IOM uint32_t PUBLISH_USBREMOVED; /*!< (@ 0x00000184) Publish configuration for event USBREMOVED */ 3034 __IOM uint32_t PUBLISH_USBPWRRDY; /*!< (@ 0x00000188) Publish configuration for event USBPWRRDY */ 3035 __IM uint32_t RESERVED2[93]; 3036 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 3037 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 3038 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 3039 __IM uint32_t RESERVED3[61]; 3040 __IM uint32_t USBREGSTATUS; /*!< (@ 0x00000400) USB supply status */ 3041 } NRF_USBREG_Type; /*!< Size = 1028 (0x404) */ 3042 3043 3044 3045 /* =========================================================================================================================== */ 3046 /* ================ KMU_NS ================ */ 3047 /* =========================================================================================================================== */ 3048 3049 3050 /** 3051 * @brief Key management unit 0 (KMU_NS) 3052 */ 3053 3054 typedef struct { /*!< (@ 0x40039000) KMU_NS Structure */ 3055 __OM uint32_t TASKS_PUSH_KEYSLOT; /*!< (@ 0x00000000) Push a key slot over secure APB */ 3056 __IM uint32_t RESERVED[63]; 3057 __IOM uint32_t EVENTS_KEYSLOT_PUSHED; /*!< (@ 0x00000100) Key slot successfully pushed over secure APB */ 3058 __IOM uint32_t EVENTS_KEYSLOT_REVOKED; /*!< (@ 0x00000104) Key slot has been revoked and cannot be tasked 3059 for selection */ 3060 __IOM uint32_t EVENTS_KEYSLOT_ERROR; /*!< (@ 0x00000108) No key slot selected, no destination address 3061 defined, or error during push operation */ 3062 __IM uint32_t RESERVED1[125]; 3063 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 3064 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 3065 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 3066 __IM uint32_t INTPEND; /*!< (@ 0x0000030C) Pending interrupts */ 3067 __IM uint32_t RESERVED2[63]; 3068 __IM uint32_t STATUS; /*!< (@ 0x0000040C) Status bits for KMU operation */ 3069 __IM uint32_t RESERVED3[60]; 3070 __IOM uint32_t SELECTKEYSLOT; /*!< (@ 0x00000500) Select key slot to be read over AHB or pushed 3071 over secure APB when TASKS_PUSH_KEYSLOT 3072 is started */ 3073 } NRF_KMU_Type; /*!< Size = 1284 (0x504) */ 3074 3075 3076 3077 /* =========================================================================================================================== */ 3078 /* ================ NVMC_NS ================ */ 3079 /* =========================================================================================================================== */ 3080 3081 3082 /** 3083 * @brief Non-volatile memory controller 0 (NVMC_NS) 3084 */ 3085 3086 typedef struct { /*!< (@ 0x40039000) NVMC_NS Structure */ 3087 __IM uint32_t RESERVED[256]; 3088 __IM uint32_t READY; /*!< (@ 0x00000400) Ready flag */ 3089 __IM uint32_t RESERVED1; 3090 __IM uint32_t READYNEXT; /*!< (@ 0x00000408) Ready flag */ 3091 __IM uint32_t RESERVED2[62]; 3092 __IOM uint32_t CONFIG; /*!< (@ 0x00000504) Configuration register */ 3093 __IM uint32_t RESERVED3; 3094 __OM uint32_t ERASEALL; /*!< (@ 0x0000050C) Register for erasing all non-volatile user memory */ 3095 __IM uint32_t RESERVED4[3]; 3096 __IOM uint32_t ERASEPAGEPARTIALCFG; /*!< (@ 0x0000051C) Register for partial erase configuration */ 3097 __IM uint32_t RESERVED5[25]; 3098 __IOM uint32_t CONFIGNS; /*!< (@ 0x00000584) Non-secure configuration register */ 3099 __OM uint32_t WRITEUICRNS; /*!< (@ 0x00000588) Non-secure APPROTECT enable register */ 3100 } NRF_NVMC_Type; /*!< Size = 1420 (0x58c) */ 3101 3102 3103 3104 /* =========================================================================================================================== */ 3105 /* ================ P0_NS ================ */ 3106 /* =========================================================================================================================== */ 3107 3108 3109 /** 3110 * @brief GPIO Port 0 (P0_NS) 3111 */ 3112 3113 typedef struct { /*!< (@ 0x40842500) P0_NS Structure */ 3114 __IM uint32_t RESERVED; 3115 __IOM uint32_t OUT; /*!< (@ 0x00000004) Write GPIO port */ 3116 __IOM uint32_t OUTSET; /*!< (@ 0x00000008) Set individual bits in GPIO port */ 3117 __IOM uint32_t OUTCLR; /*!< (@ 0x0000000C) Clear individual bits in GPIO port */ 3118 __IM uint32_t IN; /*!< (@ 0x00000010) Read GPIO port */ 3119 __IOM uint32_t DIR; /*!< (@ 0x00000014) Direction of GPIO pins */ 3120 __IOM uint32_t DIRSET; /*!< (@ 0x00000018) DIR set register */ 3121 __IOM uint32_t DIRCLR; /*!< (@ 0x0000001C) DIR clear register */ 3122 __IOM uint32_t LATCH; /*!< (@ 0x00000020) Latch register indicating what GPIO pins that 3123 have met the criteria set in the PIN_CNF[n].SENSE 3124 registers */ 3125 __IOM uint32_t DETECTMODE; /*!< (@ 0x00000024) Select between default DETECT signal behavior 3126 and LDETECT mode */ 3127 __IOM uint32_t DETECTMODE_SEC; /*!< (@ 0x00000028) Select between default DETECT signal behavior 3128 and LDETECT mode */ 3129 __IM uint32_t RESERVED1[117]; 3130 __IOM uint32_t PIN_CNF[32]; /*!< (@ 0x00000200) Description collection: Configuration of GPIO 3131 pins */ 3132 } NRF_GPIO_Type; /*!< Size = 640 (0x280) */ 3133 3134 3135 3136 /* =========================================================================================================================== */ 3137 /* ================ CRYPTOCELL_S ================ */ 3138 /* =========================================================================================================================== */ 3139 3140 3141 /** 3142 * @brief CRYPTOCELL register interface (CRYPTOCELL_S) 3143 */ 3144 3145 typedef struct { /*!< (@ 0x50844000) CRYPTOCELL_S Structure */ 3146 __IM uint32_t RESERVED[320]; 3147 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable CRYPTOCELL subsystem. */ 3148 } NRF_CRYPTOCELL_Type; /*!< Size = 1284 (0x504) */ 3149 3150 3151 3152 /* =========================================================================================================================== */ 3153 /* ================ CC_AES_S ================ */ 3154 /* =========================================================================================================================== */ 3155 3156 3157 /** 3158 * @brief CRYPTOCELL AES engine (CC_AES_S) 3159 */ 3160 3161 typedef struct { /*!< (@ 0x50845000) CC_AES_S Structure */ 3162 __IM uint32_t RESERVED[256]; 3163 __OM uint32_t AES_KEY_0[8]; /*!< (@ 0x00000400) Description collection: AES key value to use 3164 in non-tunneling operations, or as the first 3165 tunnel stage key in tunneling operations. 3166 The initial AES_KEY_0[0] register holds 3167 the least significant bits [31:0] of the 3168 key value. */ 3169 __OM uint32_t AES_KEY_1[8]; /*!< (@ 0x00000420) Description collection: AES key value to use 3170 as the second tunnel stage key in tunneling 3171 operations. The initial AES_KEY_1[0] register 3172 holds the least significant bits [31:0] 3173 of the key value. */ 3174 __IOM uint32_t AES_IV_0[4]; /*!< (@ 0x00000440) Description collection: AES Initialization Vector 3175 (IV) to use in non-tunneling operations, 3176 or as the first tunnel stage IV in tunneling 3177 operations. The initial AES_IV_0[0] register 3178 holds the least significant bits [31:0] 3179 of the IV. */ 3180 __IOM uint32_t AES_IV_1[4]; /*!< (@ 0x00000450) Description collection: AES Initialization Vector 3181 (IV) to use as the second tunnel stage IV 3182 in tunneling operations. The initial AES_IV_1[0] 3183 register holds the least significant bits 3184 [31:0] of the IV. */ 3185 __IOM uint32_t AES_CTR[4]; /*!< (@ 0x00000460) Description collection: AES counter (CTR) to 3186 use in non-tunneling and tunneling operations. 3187 The initial AES_CTR[0] register holds the 3188 least significant bits [31:0] of the CTR. */ 3189 __IM uint32_t AES_BUSY; /*!< (@ 0x00000470) Status register for AES engine activity. */ 3190 __IM uint32_t RESERVED1[2]; 3191 __OM uint32_t AES_CMAC_INIT; /*!< (@ 0x0000047C) Writing to this address triggers the AES engine 3192 to generate K1 and K2 for AES-CMAC operations. */ 3193 __IM uint32_t RESERVED2[15]; 3194 __IOM uint32_t AES_REMAINING_BYTES; /*!< (@ 0x000004BC) This register should be set with the amount of 3195 remaining bytes until the end of the current 3196 AES operation. */ 3197 __IOM uint32_t AES_CONTROL; /*!< (@ 0x000004C0) Control the AES engine behavior. */ 3198 __IM uint32_t RESERVED3; 3199 __IM uint32_t AES_HW_FLAGS; /*!< (@ 0x000004C8) Hardware configuration of the AES engine. Reset 3200 value holds the supported features. */ 3201 __IM uint32_t RESERVED4[3]; 3202 __IOM uint32_t AES_CTR_NO_INCREMENT; /*!< (@ 0x000004D8) This register enables the AES CTR no increment 3203 mode in which the counter mode is not incremented 3204 between two blocks */ 3205 __IM uint32_t RESERVED5[6]; 3206 __OM uint32_t AES_SW_RESET; /*!< (@ 0x000004F4) Reset the AES engine. */ 3207 __IM uint32_t RESERVED6[11]; 3208 __OM uint32_t AES_CMAC_SIZE0_KICK; /*!< (@ 0x00000524) Writing to this address triggers the AES engine 3209 to perform a CMAC operation with size 0. 3210 The CMAC result can be read from the AES_IV_0 3211 register. */ 3212 } NRF_CC_AES_Type; /*!< Size = 1320 (0x528) */ 3213 3214 3215 3216 /* =========================================================================================================================== */ 3217 /* ================ CC_AHB_S ================ */ 3218 /* =========================================================================================================================== */ 3219 3220 3221 /** 3222 * @brief CRYPTOCELL AHB interface (CC_AHB_S) 3223 */ 3224 3225 typedef struct { /*!< (@ 0x50845000) CC_AHB_S Structure */ 3226 __IM uint32_t RESERVED[704]; 3227 __IOM uint32_t AHBM_SINGLES; /*!< (@ 0x00000B00) This register forces the AHB transactions from 3228 CRYPTOCELL master to be always singles. */ 3229 __IOM uint32_t AHBM_HPROT; /*!< (@ 0x00000B04) This register holds the AHB HPROT value */ 3230 __IOM uint32_t AHBM_HMASTLOCK; /*!< (@ 0x00000B08) This register holds AHB HMASTLOCK value */ 3231 __IOM uint32_t AHBM_HNONSEC; /*!< (@ 0x00000B0C) This register holds AHB HNONSEC value */ 3232 } NRF_CC_AHB_Type; /*!< Size = 2832 (0xb10) */ 3233 3234 3235 3236 /* =========================================================================================================================== */ 3237 /* ================ CC_AO_S ================ */ 3238 /* =========================================================================================================================== */ 3239 3240 3241 /** 3242 * @brief CryptoCell AO (CC_AO_S) 3243 */ 3244 3245 typedef struct { /*!< (@ 0x50845000) CC_AO_S Structure */ 3246 __IM uint32_t RESERVED[910]; 3247 __IOM uint32_t AO_APB_FILTERING; /*!< (@ 0x00000E38) This register holds the AO_APB_FILTERING configuration. */ 3248 __IM uint32_t RESERVED1; 3249 __OM uint32_t CC_SW_RESET; /*!< (@ 0x00000E40) Reset the CRYPTOCELL subsystem. */ 3250 } NRF_CC_AO_Type; /*!< Size = 3652 (0xe44) */ 3251 3252 3253 3254 /* =========================================================================================================================== */ 3255 /* ================ CC_CHACHA_S ================ */ 3256 /* =========================================================================================================================== */ 3257 3258 3259 /** 3260 * @brief CRYPTOCELL CHACHA engine (CC_CHACHA_S) 3261 */ 3262 3263 typedef struct { /*!< (@ 0x50845000) CC_CHACHA_S Structure */ 3264 __IM uint32_t RESERVED[224]; 3265 __IOM uint32_t CHACHA_CONTROL; /*!< (@ 0x00000380) Control the CHACHA engine behavior. */ 3266 __IM uint32_t CHACHA_VERSION; /*!< (@ 0x00000384) CHACHA engine HW version */ 3267 __OM uint32_t CHACHA_KEY[8]; /*!< (@ 0x00000388) Description collection: CHACHA key value to use. 3268 The initial CHACHA_KEY[0] register holds 3269 the least significant bits [31:0] of the 3270 key value. */ 3271 __IOM uint32_t CHACHA_IV[2]; /*!< (@ 0x000003A8) Description collection: CHACHA Initialization 3272 Vector (IV) to use. The IV is also known 3273 as the nonce. */ 3274 __IM uint32_t CHACHA_BUSY; /*!< (@ 0x000003B0) Status register for CHACHA engine activity. */ 3275 __IM uint32_t CHACHA_HW_FLAGS; /*!< (@ 0x000003B4) Hardware configuration of the CHACHA engine. 3276 Reset value holds the supported features. */ 3277 __IOM uint32_t CHACHA_BLOCK_CNT_LSB; /*!< (@ 0x000003B8) Store the LSB value of the block counter, in 3278 order to support suspend/resume of operation */ 3279 __IOM uint32_t CHACHA_BLOCK_CNT_MSB; /*!< (@ 0x000003BC) Store the MSB value of the block counter, in 3280 order to support suspend/resume of operation */ 3281 __OM uint32_t CHACHA_SW_RESET; /*!< (@ 0x000003C0) Reset the CHACHA engine. */ 3282 __IM uint32_t CHACHA_POLY1305_KEY[8]; /*!< (@ 0x000003C4) Description collection: The auto-generated key 3283 to use in Poly1305 MAC calculation. The 3284 initial CHACHA_POLY1305_KEY[0] register 3285 holds the least significant bits [31:0] 3286 of the key value. */ 3287 __IOM uint32_t CHACHA_ENDIANNESS; /*!< (@ 0x000003E4) CHACHA engine data order configuration. */ 3288 __IM uint32_t CHACHA_DEBUG; /*!< (@ 0x000003E8) Debug register for the CHACHA engine */ 3289 } NRF_CC_CHACHA_Type; /*!< Size = 1004 (0x3ec) */ 3290 3291 3292 3293 /* =========================================================================================================================== */ 3294 /* ================ CC_CTL_S ================ */ 3295 /* =========================================================================================================================== */ 3296 3297 3298 /** 3299 * @brief CRYPTOCELL CTL interface (CC_CTL_S) 3300 */ 3301 3302 typedef struct { /*!< (@ 0x50845000) CC_CTL_S Structure */ 3303 __IM uint32_t RESERVED[576]; 3304 __OM uint32_t CRYPTO_CTL; /*!< (@ 0x00000900) Defines the cryptographic flow. */ 3305 __IM uint32_t RESERVED1[3]; 3306 __IM uint32_t CRYPTO_BUSY; /*!< (@ 0x00000910) Status register for cryptographic cores engine 3307 activity. */ 3308 __IM uint32_t RESERVED2[2]; 3309 __IM uint32_t HASH_BUSY; /*!< (@ 0x0000091C) Status register for HASH engine activity. */ 3310 __IM uint32_t RESERVED3[4]; 3311 __IOM uint32_t CONTEXT_ID; /*!< (@ 0x00000930) A general-purpose read/write register. */ 3312 } NRF_CC_CTL_Type; /*!< Size = 2356 (0x934) */ 3313 3314 3315 3316 /* =========================================================================================================================== */ 3317 /* ================ CC_DIN_S ================ */ 3318 /* =========================================================================================================================== */ 3319 3320 3321 /** 3322 * @brief CRYPTOCELL Data IN interface (CC_DIN_S) 3323 */ 3324 3325 typedef struct { /*!< (@ 0x50845000) CC_DIN_S Structure */ 3326 __IM uint32_t RESERVED[768]; 3327 __OM uint32_t DIN_BUFFER; /*!< (@ 0x00000C00) Used by CPU to write data directly to the DIN 3328 buffer, which is then sent to the cryptographic 3329 engines for processing. */ 3330 __IM uint32_t RESERVED1[7]; 3331 __IM uint32_t DIN_DMA_MEM_BUSY; /*!< (@ 0x00000C20) Status register for DIN DMA engine activity when 3332 accessing memory. */ 3333 __IM uint32_t RESERVED2; 3334 __OM uint32_t SRC_MEM_ADDR; /*!< (@ 0x00000C28) Data source address in memory. */ 3335 __OM uint32_t SRC_MEM_SIZE; /*!< (@ 0x00000C2C) The number of bytes to be read from memory. Writing 3336 to this register triggers the DMA operation. */ 3337 __IOM uint32_t SRC_SRAM_ADDR; /*!< (@ 0x00000C30) Data source address in RNG SRAM. */ 3338 __OM uint32_t SRC_SRAM_SIZE; /*!< (@ 0x00000C34) The number of bytes to be read from RNG SRAM. 3339 Writing to this register triggers the DMA 3340 operation. */ 3341 __IM uint32_t DIN_DMA_SRAM_BUSY; /*!< (@ 0x00000C38) Status register for DIN DMA engine activity when 3342 accessing RNG SRAM. */ 3343 __IOM uint32_t DIN_DMA_SRAM_ENDIANNESS; /*!< (@ 0x00000C3C) Configure the endianness of DIN DMA transactions 3344 towards RNG SRAM. */ 3345 __IM uint32_t RESERVED3; 3346 __OM uint32_t DIN_SW_RESET; /*!< (@ 0x00000C44) Reset the DIN DMA engine. */ 3347 __OM uint32_t DIN_CPU_DATA; /*!< (@ 0x00000C48) Specifies the number of bytes the CPU will write 3348 to the DIN_BUFFER, ensuring the cryptographic 3349 engine processes the correct amount of data. */ 3350 __OM uint32_t DIN_WRITE_ALIGN; /*!< (@ 0x00000C4C) Indicates that the next CPU write to the DIN_BUFFER 3351 is the last in the sequence. This is needed 3352 only when the data size is NOT modulo 4 3353 (e.g. HASH padding). */ 3354 __IM uint32_t DIN_FIFO_EMPTY; /*!< (@ 0x00000C50) Register indicating if DIN FIFO is empty and 3355 if more data can be accepted. */ 3356 __IM uint32_t RESERVED4; 3357 __OM uint32_t DIN_FIFO_RESET; /*!< (@ 0x00000C58) Reset the DIN FIFO, effectively clearing the 3358 FIFO for new data. */ 3359 } NRF_CC_DIN_Type; /*!< Size = 3164 (0xc5c) */ 3360 3361 3362 3363 /* =========================================================================================================================== */ 3364 /* ================ CC_DOUT_S ================ */ 3365 /* =========================================================================================================================== */ 3366 3367 3368 /** 3369 * @brief CRYPTOCELL Data OUT interface (CC_DOUT_S) 3370 */ 3371 3372 typedef struct { /*!< (@ 0x50845000) CC_DOUT_S Structure */ 3373 __IM uint32_t RESERVED[832]; 3374 __IM uint32_t DOUT_BUFFER; /*!< (@ 0x00000D00) Cryptographic results directly accessible by 3375 the CPU. */ 3376 __IM uint32_t RESERVED1[7]; 3377 __IM uint32_t DOUT_DMA_MEM_BUSY; /*!< (@ 0x00000D20) Status register for DOUT DMA engine activity 3378 when accessing memory. */ 3379 __IM uint32_t RESERVED2; 3380 __OM uint32_t DST_MEM_ADDR; /*!< (@ 0x00000D28) Data destination address in memory. */ 3381 __OM uint32_t DST_MEM_SIZE; /*!< (@ 0x00000D2C) The number of bytes to be written to memory. */ 3382 __IOM uint32_t DST_SRAM_ADDR; /*!< (@ 0x00000D30) Data destination address in RNG SRAM. */ 3383 __OM uint32_t DST_SRAM_SIZE; /*!< (@ 0x00000D34) The number of bytes to be written to RNG SRAM. */ 3384 __IM uint32_t DOUT_DMA_SRAM_BUSY; /*!< (@ 0x00000D38) Status register for DOUT DMA engine activity 3385 when accessing RNG SRAM. */ 3386 __IOM uint32_t DOUT_DMA_SRAM_ENDIANNESS; /*!< (@ 0x00000D3C) Configure the endianness of DOUT DMA transactions 3387 towards RNG SRAM. */ 3388 __IM uint32_t RESERVED3; 3389 __OM uint32_t DOUT_READ_ALIGN; /*!< (@ 0x00000D44) Indication that the next CPU read from the DOUT_BUFFER 3390 is the last in the sequence. This is needed 3391 only when the data size is NOT modulo 4 3392 (e.g. HASH padding). */ 3393 __IM uint32_t RESERVED4[2]; 3394 __IM uint32_t DOUT_FIFO_EMPTY; /*!< (@ 0x00000D50) Register indicating if DOUT FIFO is empty or 3395 if more data will come. */ 3396 __IM uint32_t RESERVED5; 3397 __OM uint32_t DOUT_SW_RESET; /*!< (@ 0x00000D58) Reset the DOUT DMA engine. */ 3398 } NRF_CC_DOUT_Type; /*!< Size = 3420 (0xd5c) */ 3399 3400 3401 3402 /* =========================================================================================================================== */ 3403 /* ================ CC_GHASH_S ================ */ 3404 /* =========================================================================================================================== */ 3405 3406 3407 /** 3408 * @brief CRYPTOCELL GHASH engine (CC_GHASH_S) 3409 */ 3410 3411 typedef struct { /*!< (@ 0x50845000) CC_GHASH_S Structure */ 3412 __IM uint32_t RESERVED[600]; 3413 __OM uint32_t GHASH_SUBKEY[4]; /*!< (@ 0x00000960) Description collection: GHASH subkey value to 3414 use. The initial GHASH_SUBKEY[0] register 3415 holds the least significant bits [31:0] 3416 of the subkey value. */ 3417 __IOM uint32_t GHASH_IV[4]; /*!< (@ 0x00000970) Description collection: GHASH Initialization 3418 Vector (IV) to use. The initial GHASH_IV[0] 3419 register holds the least significant bits 3420 [31:0] of the IV. */ 3421 __IM uint32_t GHASH_BUSY; /*!< (@ 0x00000980) Status register for GHASH engine activity. */ 3422 __OM uint32_t GHASH_INIT; /*!< (@ 0x00000984) Configure the GHASH engine for a new GHASH operation. */ 3423 } NRF_CC_GHASH_Type; /*!< Size = 2440 (0x988) */ 3424 3425 3426 3427 /* =========================================================================================================================== */ 3428 /* ================ CC_HASH_S ================ */ 3429 /* =========================================================================================================================== */ 3430 3431 3432 /** 3433 * @brief CRYPTOCELL HASH engine (CC_HASH_S) 3434 */ 3435 3436 typedef struct { /*!< (@ 0x50845000) CC_HASH_S Structure */ 3437 __IM uint32_t RESERVED[400]; 3438 __IOM uint32_t HASH_H[8]; /*!< (@ 0x00000640) Description collection: HASH_H value registers. 3439 The initial HASH_H[0] register holds the 3440 least significant bits [31:0] of the value. */ 3441 __IM uint32_t RESERVED1[9]; 3442 __OM uint32_t HASH_PAD_AUTO; /*!< (@ 0x00000684) Configure the HASH engine to automatically pad 3443 data at the end of the DMA transfer to complete 3444 the digest operation. */ 3445 __IOM uint32_t HASH_XOR_DIN; /*!< (@ 0x00000688) Perform an XOR operation of the DIN DMA engine 3446 input data being fed into the HASH engine. 3447 Set this register to '0' if XOR is not required. */ 3448 __IM uint32_t RESERVED2[2]; 3449 __OM uint32_t HASH_INIT_STATE; /*!< (@ 0x00000694) Configure HASH engine initial state registers. */ 3450 __IM uint32_t RESERVED3[3]; 3451 __OM uint32_t HASH_SELECT; /*!< (@ 0x000006A4) Select HASH or GHASH engine as the digest engine 3452 to use. */ 3453 __IM uint32_t RESERVED4[70]; 3454 __IOM uint32_t HASH_CONTROL; /*!< (@ 0x000007C0) Control the HASH engine behavior. */ 3455 __IOM uint32_t HASH_PAD; /*!< (@ 0x000007C4) Enable the hardware padding feature of the HASH 3456 engine. */ 3457 __IOM uint32_t HASH_PAD_FORCE; /*!< (@ 0x000007C8) Force the hardware padding operation to trigger 3458 if the input data length is zero bytes. */ 3459 __IOM uint32_t HASH_CUR_LEN_0; /*!< (@ 0x000007CC) Bits [31:0] of the number of bytes that have 3460 been digested so far. */ 3461 __IOM uint32_t HASH_CUR_LEN_1; /*!< (@ 0x000007D0) Bits [63:32] of the number of bytes that have 3462 been digested so far. */ 3463 __IM uint32_t RESERVED5[2]; 3464 __IM uint32_t HASH_HW_FLAGS; /*!< (@ 0x000007DC) Hardware configuration of the HASH engine. Reset 3465 value holds the supported features. */ 3466 __IM uint32_t RESERVED6; 3467 __OM uint32_t HASH_SW_RESET; /*!< (@ 0x000007E4) Reset the HASH engine. */ 3468 __IOM uint32_t HASH_ENDIANNESS; /*!< (@ 0x000007E8) Configure the endianness of HASH data and padding 3469 generation. */ 3470 } NRF_CC_HASH_Type; /*!< Size = 2028 (0x7ec) */ 3471 3472 3473 3474 /* =========================================================================================================================== */ 3475 /* ================ CC_HOST_RGF_S ================ */ 3476 /* =========================================================================================================================== */ 3477 3478 3479 /** 3480 * @brief CRYPTOCELL HOST register interface (CC_HOST_RGF_S) 3481 */ 3482 3483 typedef struct { /*!< (@ 0x50845000) CC_HOST_RGF_S Structure */ 3484 __IM uint32_t RESERVED[640]; 3485 __IM uint32_t IRR; /*!< (@ 0x00000A00) Interrupt request register. Each bit of this 3486 register holds the interrupt status of a 3487 single interrupt source. If corresponding 3488 IMR bit is unmasked, an interrupt is generated. */ 3489 __IOM uint32_t IMR; /*!< (@ 0x00000A04) Interrupt mask register. Each bit of this register 3490 holds the mask of a single interrupt source. */ 3491 __OM uint32_t ICR; /*!< (@ 0x00000A08) Interrupt clear register. Writing a 1 bit into 3492 a field in this register will clear the 3493 corresponding bit in IRR. */ 3494 __IOM uint32_t ENDIANNESS; /*!< (@ 0x00000A0C) This register defines the endianness of the Host-accessible 3495 registers, and can only be written once. */ 3496 __IM uint32_t RESERVED1[5]; 3497 __IM uint32_t HOST_SIGNATURE; /*!< (@ 0x00000A24) This register holds the CRYPTOCELL subsystem 3498 signature. See reset value. */ 3499 __IM uint32_t HOST_BOOT; /*!< (@ 0x00000A28) Hardware configuration of the CRYPTOCELL subsystem. 3500 Reset value holds the supported features. */ 3501 __IM uint32_t RESERVED2[20]; 3502 __IM uint32_t HOST_CC_IS_IDLE; /*!< (@ 0x00000A7C) Idle state register for the CRYPTOCELL subsystem. */ 3503 __IOM uint32_t HOST_POWERDOWN; /*!< (@ 0x00000A80) This register start the power-down sequence. */ 3504 } NRF_CC_HOST_RGF_Type; /*!< Size = 2692 (0xa84) */ 3505 3506 3507 3508 /* =========================================================================================================================== */ 3509 /* ================ CC_MISC_S ================ */ 3510 /* =========================================================================================================================== */ 3511 3512 3513 /** 3514 * @brief CRYPTOCELL MISC interface (CC_MISC_S) 3515 */ 3516 3517 typedef struct { /*!< (@ 0x50845000) CC_MISC_S Structure */ 3518 __IM uint32_t RESERVED[516]; 3519 __OM uint32_t AES_CLK; /*!< (@ 0x00000810) Clock control for the AES engine. */ 3520 __IM uint32_t RESERVED1; 3521 __OM uint32_t HASH_CLK; /*!< (@ 0x00000818) Clock control for the HASH engine. */ 3522 __OM uint32_t PKA_CLK; /*!< (@ 0x0000081C) Clock control for the PKA engine. */ 3523 __OM uint32_t DMA_CLK; /*!< (@ 0x00000820) Clock control for the DMA engines. */ 3524 __IM uint32_t CLK_STATUS; /*!< (@ 0x00000824) CRYPTOCELL clocks status register. */ 3525 __IM uint32_t RESERVED2[12]; 3526 __OM uint32_t CHACHA_CLK; /*!< (@ 0x00000858) Clock control for the CHACHA engine. */ 3527 } NRF_CC_MISC_Type; /*!< Size = 2140 (0x85c) */ 3528 3529 3530 3531 /* =========================================================================================================================== */ 3532 /* ================ CC_PKA_S ================ */ 3533 /* =========================================================================================================================== */ 3534 3535 3536 /** 3537 * @brief CRYPTOCELL PKA engine (CC_PKA_S) 3538 */ 3539 3540 typedef struct { /*!< (@ 0x50845000) CC_PKA_S Structure */ 3541 __IOM uint32_t MEMORY_MAP[32]; /*!< (@ 0x00000000) Description collection: Register for mapping 3542 the virtual register R[n] to a physical 3543 address in the PKA SRAM. */ 3544 __IOM uint32_t OPCODE; /*!< (@ 0x00000080) Operation code to be executed by the PKA engine. 3545 Writing to this register triggers the PKA 3546 operation. */ 3547 __IOM uint32_t N_NP_T0_T1_ADDR; /*!< (@ 0x00000084) This register defines the N, Np, T0, and T1 virtual 3548 register index. */ 3549 __IM uint32_t PKA_STATUS; /*!< (@ 0x00000088) This register holds the status for the PKA pipeline. */ 3550 __OM uint32_t PKA_SW_RESET; /*!< (@ 0x0000008C) Reset the PKA engine. */ 3551 __IOM uint32_t PKA_L[8]; /*!< (@ 0x00000090) Description collection: This register holds the 3552 operands bit size. */ 3553 __IM uint32_t PKA_PIPE; /*!< (@ 0x000000B0) Status register indicating if the PKA pipeline 3554 is ready to receive a new OPCODE. */ 3555 __IM uint32_t PKA_DONE; /*!< (@ 0x000000B4) Status register indicating if the PKA operation 3556 has been completed. */ 3557 __IM uint32_t RESERVED[3]; 3558 __IM uint32_t PKA_VERSION; /*!< (@ 0x000000C4) PKA engine HW version. Reset value holds the 3559 version. */ 3560 __IM uint32_t RESERVED1[3]; 3561 __OM uint32_t PKA_SRAM_WADDR; /*!< (@ 0x000000D4) Start address in PKA SRAM for subsequent write 3562 transactions. */ 3563 __OM uint32_t PKA_SRAM_WDATA; /*!< (@ 0x000000D8) Write data to PKA SRAM. Writing to this register 3564 triggers a DMA transaction writing data 3565 into PKA SRAM. The DMA address offset is 3566 automatically incremented during write. */ 3567 __IM uint32_t PKA_SRAM_RDATA; /*!< (@ 0x000000DC) Read data from PKA SRAM. Reading from this register 3568 triggers a DMA transaction read data from 3569 PKA SRAM. The DMA address offset is automatically 3570 incremented during read. */ 3571 __OM uint32_t PKA_SRAM_WCLEAR; /*!< (@ 0x000000E0) Register for clearing PKA SRAM write buffer. */ 3572 __OM uint32_t PKA_SRAM_RADDR; /*!< (@ 0x000000E4) Start address in PKA SRAM for subsequent read 3573 transactions. */ 3574 } NRF_CC_PKA_Type; /*!< Size = 232 (0xe8) */ 3575 3576 3577 3578 /* =========================================================================================================================== */ 3579 /* ================ CC_RNG_S ================ */ 3580 /* =========================================================================================================================== */ 3581 3582 3583 /** 3584 * @brief CRYPTOCELL RNG engine (CC_RNG_S) 3585 */ 3586 3587 typedef struct { /*!< (@ 0x50845000) CC_RNG_S Structure */ 3588 __IM uint32_t RESERVED[64]; 3589 __IOM uint32_t RNG_IMR; /*!< (@ 0x00000100) Interrupt mask register. Each bit of this register 3590 holds the mask of a single interrupt source. */ 3591 __IM uint32_t RNG_ISR; /*!< (@ 0x00000104) Interrupt status register. Each bit of this register 3592 holds the interrupt status of a single interrupt 3593 source. If corresponding RNG_IMR bit is 3594 unmasked, an interrupt is generated. */ 3595 __OM uint32_t RNG_ICR; /*!< (@ 0x00000108) Interrupt clear register. Writing a 1 bit into 3596 a field in this register will clear the 3597 corresponding bit in RNG_ISR. */ 3598 __IOM uint32_t TRNG_CONFIG; /*!< (@ 0x0000010C) TRNG ring oscillator length configuration */ 3599 __IM uint32_t TRNG_VALID; /*!< (@ 0x00000110) This register indicates if TRNG entropy collection 3600 is valid. */ 3601 __IM uint32_t EHR_DATA[6]; /*!< (@ 0x00000114) Description collection: The entropy holding registers 3602 (EHR) hold 192-bits random data collected 3603 by the TRNG. The initial EHR_DATA[0] register 3604 holds the least significant bits [31:0] 3605 of the random data value. */ 3606 __IOM uint32_t NOISE_SOURCE; /*!< (@ 0x0000012C) This register controls the ring oscillator circuit 3607 used as a noise source. */ 3608 __IOM uint32_t SAMPLE_CNT; /*!< (@ 0x00000130) Sample count defining the number of CPU clock 3609 cycles between two consecutive noise source 3610 samples. */ 3611 __IOM uint32_t AUTOCORR_STATISTIC; /*!< (@ 0x00000134) Statistics counter for autocorrelation test activations. 3612 Statistics collection is stopped if one 3613 of the counters reach its limit of all ones. */ 3614 __IOM uint32_t TRNG_DEBUG; /*!< (@ 0x00000138) Debug register for the TRNG. This register is 3615 used to bypass TRNG tests in hardware. */ 3616 __IM uint32_t RESERVED1; 3617 __OM uint32_t RNG_SW_RESET; /*!< (@ 0x00000140) Reset the RNG engine. */ 3618 __IM uint32_t RESERVED2[29]; 3619 __IM uint32_t RNG_BUSY; /*!< (@ 0x000001B8) Status register for RNG engine activity. */ 3620 __OM uint32_t TRNG_RESET; /*!< (@ 0x000001BC) Reset the TRNG, including internal counter of 3621 collected bits and registers EHR_DATA and 3622 TRNG_VALID. */ 3623 __IM uint32_t RNG_HW_FLAGS; /*!< (@ 0x000001C0) Hardware configuration of RNG engine. Reset value 3624 holds the supported features. */ 3625 __OM uint32_t RNG_CLK; /*!< (@ 0x000001C4) Control clock for the RNG engine. */ 3626 __IOM uint32_t RNG_DMA; /*!< (@ 0x000001C8) Writing to this register enables the RNG DMA 3627 engine. */ 3628 __IOM uint32_t RNG_DMA_ROSC_LEN; /*!< (@ 0x000001CC) This register defines which ring oscillator length 3629 configuration should be used when using 3630 the RNG DMA engine. */ 3631 __IOM uint32_t RNG_DMA_SRAM_ADDR; /*!< (@ 0x000001D0) This register defines the start address in TRNG 3632 SRAM for the TRNG data to be collected by 3633 the RNG DMA engine. */ 3634 __IOM uint32_t RNG_DMA_SAMPLES_NUM; /*!< (@ 0x000001D4) This register defines the number of 192-bits 3635 samples that the RNG DMA engine collects 3636 per run. */ 3637 __IOM uint32_t RNG_WATCHDOG_VAL; /*!< (@ 0x000001D8) This register defines the maximum number of CPU 3638 clock cycles per TRNG collection of 192-bits 3639 samples. If the number of cycles for a collection 3640 exceeds this threshold the WATCHDOG interrupt 3641 is triggered. */ 3642 __IM uint32_t RNG_DMA_BUSY; /*!< (@ 0x000001DC) Status register for RNG DMA engine activity. */ 3643 } NRF_CC_RNG_Type; /*!< Size = 480 (0x1e0) */ 3644 3645 3646 3647 /* =========================================================================================================================== */ 3648 /* ================ CC_RNG_SRAM_S ================ */ 3649 /* =========================================================================================================================== */ 3650 3651 3652 /** 3653 * @brief CRYPTOCELL RNG SRAM interface (CC_RNG_SRAM_S) 3654 */ 3655 3656 typedef struct { /*!< (@ 0x50845000) CC_RNG_SRAM_S Structure */ 3657 __IM uint32_t RESERVED[960]; 3658 __IOM uint32_t SRAM_DATA; /*!< (@ 0x00000F00) Read/Write data from RNG SRAM */ 3659 __OM uint32_t SRAM_ADDR; /*!< (@ 0x00000F04) First address given to RNG SRAM DMA for read/write 3660 transactions from/to RNG SRAM. */ 3661 __IM uint32_t SRAM_DATA_READY; /*!< (@ 0x00000F08) RNG SRAM DMA engine is ready to read/write from/to 3662 RNG SRAM. */ 3663 } NRF_CC_RNG_SRAM_Type; /*!< Size = 3852 (0xf0c) */ 3664 3665 3666 3667 /* =========================================================================================================================== */ 3668 /* ================ VMC_NS ================ */ 3669 /* =========================================================================================================================== */ 3670 3671 3672 /** 3673 * @brief Volatile Memory controller 0 (VMC_NS) 3674 */ 3675 3676 typedef struct { /*!< (@ 0x40081000) VMC_NS Structure */ 3677 __IM uint32_t RESERVED[384]; 3678 __IOM VMC_RAM_Type RAM[8]; /*!< (@ 0x00000600) Unspecified */ 3679 } NRF_VMC_Type; /*!< Size = 1664 (0x680) */ 3680 3681 3682 /** @} */ /* End of group Device_Peripheral_peripherals */ 3683 3684 3685 /* =========================================================================================================================== */ 3686 /* ================ Device Specific Peripheral Address Map ================ */ 3687 /* =========================================================================================================================== */ 3688 3689 3690 /** @addtogroup Device_Peripheral_peripheralAddr 3691 * @{ 3692 */ 3693 3694 #define NRF_CACHEDATA_S_BASE 0x00F00000UL 3695 #define NRF_CACHEINFO_S_BASE 0x00F08000UL 3696 #define NRF_FICR_S_BASE 0x00FF0000UL 3697 #define NRF_UICR_S_BASE 0x00FF8000UL 3698 #define NRF_CTI_S_BASE 0xE0042000UL 3699 #define NRF_TAD_S_BASE 0xE0080000UL 3700 #define NRF_DCNF_NS_BASE 0x40000000UL 3701 #define NRF_FPU_NS_BASE 0x40000000UL 3702 #define NRF_DCNF_S_BASE 0x50000000UL 3703 #define NRF_FPU_S_BASE 0x50000000UL 3704 #define NRF_CACHE_S_BASE 0x50001000UL 3705 #define NRF_SPU_S_BASE 0x50003000UL 3706 #define NRF_OSCILLATORS_NS_BASE 0x40004000UL 3707 #define NRF_REGULATORS_NS_BASE 0x40004000UL 3708 #define NRF_OSCILLATORS_S_BASE 0x50004000UL 3709 #define NRF_REGULATORS_S_BASE 0x50004000UL 3710 #define NRF_CLOCK_NS_BASE 0x40005000UL 3711 #define NRF_POWER_NS_BASE 0x40005000UL 3712 #define NRF_RESET_NS_BASE 0x40005000UL 3713 #define NRF_CLOCK_S_BASE 0x50005000UL 3714 #define NRF_POWER_S_BASE 0x50005000UL 3715 #define NRF_RESET_S_BASE 0x50005000UL 3716 #define NRF_CTRLAP_NS_BASE 0x40006000UL 3717 #define NRF_CTRLAP_S_BASE 0x50006000UL 3718 #define NRF_SPIM0_NS_BASE 0x40008000UL 3719 #define NRF_SPIS0_NS_BASE 0x40008000UL 3720 #define NRF_TWIM0_NS_BASE 0x40008000UL 3721 #define NRF_TWIS0_NS_BASE 0x40008000UL 3722 #define NRF_UARTE0_NS_BASE 0x40008000UL 3723 #define NRF_SPIM0_S_BASE 0x50008000UL 3724 #define NRF_SPIS0_S_BASE 0x50008000UL 3725 #define NRF_TWIM0_S_BASE 0x50008000UL 3726 #define NRF_TWIS0_S_BASE 0x50008000UL 3727 #define NRF_UARTE0_S_BASE 0x50008000UL 3728 #define NRF_SPIM1_NS_BASE 0x40009000UL 3729 #define NRF_SPIS1_NS_BASE 0x40009000UL 3730 #define NRF_TWIM1_NS_BASE 0x40009000UL 3731 #define NRF_TWIS1_NS_BASE 0x40009000UL 3732 #define NRF_UARTE1_NS_BASE 0x40009000UL 3733 #define NRF_SPIM1_S_BASE 0x50009000UL 3734 #define NRF_SPIS1_S_BASE 0x50009000UL 3735 #define NRF_TWIM1_S_BASE 0x50009000UL 3736 #define NRF_TWIS1_S_BASE 0x50009000UL 3737 #define NRF_UARTE1_S_BASE 0x50009000UL 3738 #define NRF_SPIM4_NS_BASE 0x4000A000UL 3739 #define NRF_SPIM4_S_BASE 0x5000A000UL 3740 #define NRF_SPIM2_NS_BASE 0x4000B000UL 3741 #define NRF_SPIS2_NS_BASE 0x4000B000UL 3742 #define NRF_TWIM2_NS_BASE 0x4000B000UL 3743 #define NRF_TWIS2_NS_BASE 0x4000B000UL 3744 #define NRF_UARTE2_NS_BASE 0x4000B000UL 3745 #define NRF_SPIM2_S_BASE 0x5000B000UL 3746 #define NRF_SPIS2_S_BASE 0x5000B000UL 3747 #define NRF_TWIM2_S_BASE 0x5000B000UL 3748 #define NRF_TWIS2_S_BASE 0x5000B000UL 3749 #define NRF_UARTE2_S_BASE 0x5000B000UL 3750 #define NRF_SPIM3_NS_BASE 0x4000C000UL 3751 #define NRF_SPIS3_NS_BASE 0x4000C000UL 3752 #define NRF_TWIM3_NS_BASE 0x4000C000UL 3753 #define NRF_TWIS3_NS_BASE 0x4000C000UL 3754 #define NRF_UARTE3_NS_BASE 0x4000C000UL 3755 #define NRF_SPIM3_S_BASE 0x5000C000UL 3756 #define NRF_SPIS3_S_BASE 0x5000C000UL 3757 #define NRF_TWIM3_S_BASE 0x5000C000UL 3758 #define NRF_TWIS3_S_BASE 0x5000C000UL 3759 #define NRF_UARTE3_S_BASE 0x5000C000UL 3760 #define NRF_GPIOTE0_S_BASE 0x5000D000UL 3761 #define NRF_SAADC_NS_BASE 0x4000E000UL 3762 #define NRF_SAADC_S_BASE 0x5000E000UL 3763 #define NRF_TIMER0_NS_BASE 0x4000F000UL 3764 #define NRF_TIMER0_S_BASE 0x5000F000UL 3765 #define NRF_TIMER1_NS_BASE 0x40010000UL 3766 #define NRF_TIMER1_S_BASE 0x50010000UL 3767 #define NRF_TIMER2_NS_BASE 0x40011000UL 3768 #define NRF_TIMER2_S_BASE 0x50011000UL 3769 #define NRF_RTC0_NS_BASE 0x40014000UL 3770 #define NRF_RTC0_S_BASE 0x50014000UL 3771 #define NRF_RTC1_NS_BASE 0x40015000UL 3772 #define NRF_RTC1_S_BASE 0x50015000UL 3773 #define NRF_DPPIC_NS_BASE 0x40017000UL 3774 #define NRF_DPPIC_S_BASE 0x50017000UL 3775 #define NRF_WDT0_NS_BASE 0x40018000UL 3776 #define NRF_WDT0_S_BASE 0x50018000UL 3777 #define NRF_WDT1_NS_BASE 0x40019000UL 3778 #define NRF_WDT1_S_BASE 0x50019000UL 3779 #define NRF_COMP_NS_BASE 0x4001A000UL 3780 #define NRF_LPCOMP_NS_BASE 0x4001A000UL 3781 #define NRF_COMP_S_BASE 0x5001A000UL 3782 #define NRF_LPCOMP_S_BASE 0x5001A000UL 3783 #define NRF_EGU0_NS_BASE 0x4001B000UL 3784 #define NRF_EGU0_S_BASE 0x5001B000UL 3785 #define NRF_EGU1_NS_BASE 0x4001C000UL 3786 #define NRF_EGU1_S_BASE 0x5001C000UL 3787 #define NRF_EGU2_NS_BASE 0x4001D000UL 3788 #define NRF_EGU2_S_BASE 0x5001D000UL 3789 #define NRF_EGU3_NS_BASE 0x4001E000UL 3790 #define NRF_EGU3_S_BASE 0x5001E000UL 3791 #define NRF_EGU4_NS_BASE 0x4001F000UL 3792 #define NRF_EGU4_S_BASE 0x5001F000UL 3793 #define NRF_EGU5_NS_BASE 0x40020000UL 3794 #define NRF_EGU5_S_BASE 0x50020000UL 3795 #define NRF_PWM0_NS_BASE 0x40021000UL 3796 #define NRF_PWM0_S_BASE 0x50021000UL 3797 #define NRF_PWM1_NS_BASE 0x40022000UL 3798 #define NRF_PWM1_S_BASE 0x50022000UL 3799 #define NRF_PWM2_NS_BASE 0x40023000UL 3800 #define NRF_PWM2_S_BASE 0x50023000UL 3801 #define NRF_PWM3_NS_BASE 0x40024000UL 3802 #define NRF_PWM3_S_BASE 0x50024000UL 3803 #define NRF_PDM0_NS_BASE 0x40026000UL 3804 #define NRF_PDM0_S_BASE 0x50026000UL 3805 #define NRF_I2S0_NS_BASE 0x40028000UL 3806 #define NRF_I2S0_S_BASE 0x50028000UL 3807 #define NRF_IPC_NS_BASE 0x4002A000UL 3808 #define NRF_IPC_S_BASE 0x5002A000UL 3809 #define NRF_QSPI_NS_BASE 0x4002B000UL 3810 #define NRF_QSPI_S_BASE 0x5002B000UL 3811 #define NRF_NFCT_NS_BASE 0x4002D000UL 3812 #define NRF_NFCT_S_BASE 0x5002D000UL 3813 #define NRF_GPIOTE1_NS_BASE 0x4002F000UL 3814 #define NRF_MUTEX_NS_BASE 0x40030000UL 3815 #define NRF_MUTEX_S_BASE 0x50030000UL 3816 #define NRF_QDEC0_NS_BASE 0x40033000UL 3817 #define NRF_QDEC0_S_BASE 0x50033000UL 3818 #define NRF_QDEC1_NS_BASE 0x40034000UL 3819 #define NRF_QDEC1_S_BASE 0x50034000UL 3820 #define NRF_USBD_NS_BASE 0x40036000UL 3821 #define NRF_USBD_S_BASE 0x50036000UL 3822 #define NRF_USBREGULATOR_NS_BASE 0x40037000UL 3823 #define NRF_USBREGULATOR_S_BASE 0x50037000UL 3824 #define NRF_KMU_NS_BASE 0x40039000UL 3825 #define NRF_NVMC_NS_BASE 0x40039000UL 3826 #define NRF_KMU_S_BASE 0x50039000UL 3827 #define NRF_NVMC_S_BASE 0x50039000UL 3828 #define NRF_P0_NS_BASE 0x40842500UL 3829 #define NRF_P1_NS_BASE 0x40842800UL 3830 #define NRF_P0_S_BASE 0x50842500UL 3831 #define NRF_P1_S_BASE 0x50842800UL 3832 #define NRF_CRYPTOCELL_S_BASE 0x50844000UL 3833 #define NRF_CC_AES_S_BASE 0x50845000UL 3834 #define NRF_CC_AHB_S_BASE 0x50845000UL 3835 #define NRF_CC_AO_S_BASE 0x50845000UL 3836 #define NRF_CC_CHACHA_S_BASE 0x50845000UL 3837 #define NRF_CC_CTL_S_BASE 0x50845000UL 3838 #define NRF_CC_DIN_S_BASE 0x50845000UL 3839 #define NRF_CC_DOUT_S_BASE 0x50845000UL 3840 #define NRF_CC_GHASH_S_BASE 0x50845000UL 3841 #define NRF_CC_HASH_S_BASE 0x50845000UL 3842 #define NRF_CC_HOST_RGF_S_BASE 0x50845000UL 3843 #define NRF_CC_MISC_S_BASE 0x50845000UL 3844 #define NRF_CC_PKA_S_BASE 0x50845000UL 3845 #define NRF_CC_RNG_S_BASE 0x50845000UL 3846 #define NRF_CC_RNG_SRAM_S_BASE 0x50845000UL 3847 #define NRF_VMC_NS_BASE 0x40081000UL 3848 #define NRF_VMC_S_BASE 0x50081000UL 3849 3850 /** @} */ /* End of group Device_Peripheral_peripheralAddr */ 3851 3852 3853 /* =========================================================================================================================== */ 3854 /* ================ Peripheral declaration ================ */ 3855 /* =========================================================================================================================== */ 3856 3857 3858 /** @addtogroup Device_Peripheral_declaration 3859 * @{ 3860 */ 3861 3862 #define NRF_CACHEDATA_S ((NRF_CACHEDATA_Type*) NRF_CACHEDATA_S_BASE) 3863 #define NRF_CACHEINFO_S ((NRF_CACHEINFO_Type*) NRF_CACHEINFO_S_BASE) 3864 #define NRF_FICR_S ((NRF_FICR_Type*) NRF_FICR_S_BASE) 3865 #define NRF_UICR_S ((NRF_UICR_Type*) NRF_UICR_S_BASE) 3866 #define NRF_CTI_S ((NRF_CTI_Type*) NRF_CTI_S_BASE) 3867 #define NRF_TAD_S ((NRF_TAD_Type*) NRF_TAD_S_BASE) 3868 #define NRF_DCNF_NS ((NRF_DCNF_Type*) NRF_DCNF_NS_BASE) 3869 #define NRF_FPU_NS ((NRF_FPU_Type*) NRF_FPU_NS_BASE) 3870 #define NRF_DCNF_S ((NRF_DCNF_Type*) NRF_DCNF_S_BASE) 3871 #define NRF_FPU_S ((NRF_FPU_Type*) NRF_FPU_S_BASE) 3872 #define NRF_CACHE_S ((NRF_CACHE_Type*) NRF_CACHE_S_BASE) 3873 #define NRF_SPU_S ((NRF_SPU_Type*) NRF_SPU_S_BASE) 3874 #define NRF_OSCILLATORS_NS ((NRF_OSCILLATORS_Type*) NRF_OSCILLATORS_NS_BASE) 3875 #define NRF_REGULATORS_NS ((NRF_REGULATORS_Type*) NRF_REGULATORS_NS_BASE) 3876 #define NRF_OSCILLATORS_S ((NRF_OSCILLATORS_Type*) NRF_OSCILLATORS_S_BASE) 3877 #define NRF_REGULATORS_S ((NRF_REGULATORS_Type*) NRF_REGULATORS_S_BASE) 3878 #define NRF_CLOCK_NS ((NRF_CLOCK_Type*) NRF_CLOCK_NS_BASE) 3879 #define NRF_POWER_NS ((NRF_POWER_Type*) NRF_POWER_NS_BASE) 3880 #define NRF_RESET_NS ((NRF_RESET_Type*) NRF_RESET_NS_BASE) 3881 #define NRF_CLOCK_S ((NRF_CLOCK_Type*) NRF_CLOCK_S_BASE) 3882 #define NRF_POWER_S ((NRF_POWER_Type*) NRF_POWER_S_BASE) 3883 #define NRF_RESET_S ((NRF_RESET_Type*) NRF_RESET_S_BASE) 3884 #define NRF_CTRLAP_NS ((NRF_CTRLAPPERI_Type*) NRF_CTRLAP_NS_BASE) 3885 #define NRF_CTRLAP_S ((NRF_CTRLAPPERI_Type*) NRF_CTRLAP_S_BASE) 3886 #define NRF_SPIM0_NS ((NRF_SPIM_Type*) NRF_SPIM0_NS_BASE) 3887 #define NRF_SPIS0_NS ((NRF_SPIS_Type*) NRF_SPIS0_NS_BASE) 3888 #define NRF_TWIM0_NS ((NRF_TWIM_Type*) NRF_TWIM0_NS_BASE) 3889 #define NRF_TWIS0_NS ((NRF_TWIS_Type*) NRF_TWIS0_NS_BASE) 3890 #define NRF_UARTE0_NS ((NRF_UARTE_Type*) NRF_UARTE0_NS_BASE) 3891 #define NRF_SPIM0_S ((NRF_SPIM_Type*) NRF_SPIM0_S_BASE) 3892 #define NRF_SPIS0_S ((NRF_SPIS_Type*) NRF_SPIS0_S_BASE) 3893 #define NRF_TWIM0_S ((NRF_TWIM_Type*) NRF_TWIM0_S_BASE) 3894 #define NRF_TWIS0_S ((NRF_TWIS_Type*) NRF_TWIS0_S_BASE) 3895 #define NRF_UARTE0_S ((NRF_UARTE_Type*) NRF_UARTE0_S_BASE) 3896 #define NRF_SPIM1_NS ((NRF_SPIM_Type*) NRF_SPIM1_NS_BASE) 3897 #define NRF_SPIS1_NS ((NRF_SPIS_Type*) NRF_SPIS1_NS_BASE) 3898 #define NRF_TWIM1_NS ((NRF_TWIM_Type*) NRF_TWIM1_NS_BASE) 3899 #define NRF_TWIS1_NS ((NRF_TWIS_Type*) NRF_TWIS1_NS_BASE) 3900 #define NRF_UARTE1_NS ((NRF_UARTE_Type*) NRF_UARTE1_NS_BASE) 3901 #define NRF_SPIM1_S ((NRF_SPIM_Type*) NRF_SPIM1_S_BASE) 3902 #define NRF_SPIS1_S ((NRF_SPIS_Type*) NRF_SPIS1_S_BASE) 3903 #define NRF_TWIM1_S ((NRF_TWIM_Type*) NRF_TWIM1_S_BASE) 3904 #define NRF_TWIS1_S ((NRF_TWIS_Type*) NRF_TWIS1_S_BASE) 3905 #define NRF_UARTE1_S ((NRF_UARTE_Type*) NRF_UARTE1_S_BASE) 3906 #define NRF_SPIM4_NS ((NRF_SPIM_Type*) NRF_SPIM4_NS_BASE) 3907 #define NRF_SPIM4_S ((NRF_SPIM_Type*) NRF_SPIM4_S_BASE) 3908 #define NRF_SPIM2_NS ((NRF_SPIM_Type*) NRF_SPIM2_NS_BASE) 3909 #define NRF_SPIS2_NS ((NRF_SPIS_Type*) NRF_SPIS2_NS_BASE) 3910 #define NRF_TWIM2_NS ((NRF_TWIM_Type*) NRF_TWIM2_NS_BASE) 3911 #define NRF_TWIS2_NS ((NRF_TWIS_Type*) NRF_TWIS2_NS_BASE) 3912 #define NRF_UARTE2_NS ((NRF_UARTE_Type*) NRF_UARTE2_NS_BASE) 3913 #define NRF_SPIM2_S ((NRF_SPIM_Type*) NRF_SPIM2_S_BASE) 3914 #define NRF_SPIS2_S ((NRF_SPIS_Type*) NRF_SPIS2_S_BASE) 3915 #define NRF_TWIM2_S ((NRF_TWIM_Type*) NRF_TWIM2_S_BASE) 3916 #define NRF_TWIS2_S ((NRF_TWIS_Type*) NRF_TWIS2_S_BASE) 3917 #define NRF_UARTE2_S ((NRF_UARTE_Type*) NRF_UARTE2_S_BASE) 3918 #define NRF_SPIM3_NS ((NRF_SPIM_Type*) NRF_SPIM3_NS_BASE) 3919 #define NRF_SPIS3_NS ((NRF_SPIS_Type*) NRF_SPIS3_NS_BASE) 3920 #define NRF_TWIM3_NS ((NRF_TWIM_Type*) NRF_TWIM3_NS_BASE) 3921 #define NRF_TWIS3_NS ((NRF_TWIS_Type*) NRF_TWIS3_NS_BASE) 3922 #define NRF_UARTE3_NS ((NRF_UARTE_Type*) NRF_UARTE3_NS_BASE) 3923 #define NRF_SPIM3_S ((NRF_SPIM_Type*) NRF_SPIM3_S_BASE) 3924 #define NRF_SPIS3_S ((NRF_SPIS_Type*) NRF_SPIS3_S_BASE) 3925 #define NRF_TWIM3_S ((NRF_TWIM_Type*) NRF_TWIM3_S_BASE) 3926 #define NRF_TWIS3_S ((NRF_TWIS_Type*) NRF_TWIS3_S_BASE) 3927 #define NRF_UARTE3_S ((NRF_UARTE_Type*) NRF_UARTE3_S_BASE) 3928 #define NRF_GPIOTE0_S ((NRF_GPIOTE_Type*) NRF_GPIOTE0_S_BASE) 3929 #define NRF_SAADC_NS ((NRF_SAADC_Type*) NRF_SAADC_NS_BASE) 3930 #define NRF_SAADC_S ((NRF_SAADC_Type*) NRF_SAADC_S_BASE) 3931 #define NRF_TIMER0_NS ((NRF_TIMER_Type*) NRF_TIMER0_NS_BASE) 3932 #define NRF_TIMER0_S ((NRF_TIMER_Type*) NRF_TIMER0_S_BASE) 3933 #define NRF_TIMER1_NS ((NRF_TIMER_Type*) NRF_TIMER1_NS_BASE) 3934 #define NRF_TIMER1_S ((NRF_TIMER_Type*) NRF_TIMER1_S_BASE) 3935 #define NRF_TIMER2_NS ((NRF_TIMER_Type*) NRF_TIMER2_NS_BASE) 3936 #define NRF_TIMER2_S ((NRF_TIMER_Type*) NRF_TIMER2_S_BASE) 3937 #define NRF_RTC0_NS ((NRF_RTC_Type*) NRF_RTC0_NS_BASE) 3938 #define NRF_RTC0_S ((NRF_RTC_Type*) NRF_RTC0_S_BASE) 3939 #define NRF_RTC1_NS ((NRF_RTC_Type*) NRF_RTC1_NS_BASE) 3940 #define NRF_RTC1_S ((NRF_RTC_Type*) NRF_RTC1_S_BASE) 3941 #define NRF_DPPIC_NS ((NRF_DPPIC_Type*) NRF_DPPIC_NS_BASE) 3942 #define NRF_DPPIC_S ((NRF_DPPIC_Type*) NRF_DPPIC_S_BASE) 3943 #define NRF_WDT0_NS ((NRF_WDT_Type*) NRF_WDT0_NS_BASE) 3944 #define NRF_WDT0_S ((NRF_WDT_Type*) NRF_WDT0_S_BASE) 3945 #define NRF_WDT1_NS ((NRF_WDT_Type*) NRF_WDT1_NS_BASE) 3946 #define NRF_WDT1_S ((NRF_WDT_Type*) NRF_WDT1_S_BASE) 3947 #define NRF_COMP_NS ((NRF_COMP_Type*) NRF_COMP_NS_BASE) 3948 #define NRF_LPCOMP_NS ((NRF_LPCOMP_Type*) NRF_LPCOMP_NS_BASE) 3949 #define NRF_COMP_S ((NRF_COMP_Type*) NRF_COMP_S_BASE) 3950 #define NRF_LPCOMP_S ((NRF_LPCOMP_Type*) NRF_LPCOMP_S_BASE) 3951 #define NRF_EGU0_NS ((NRF_EGU_Type*) NRF_EGU0_NS_BASE) 3952 #define NRF_EGU0_S ((NRF_EGU_Type*) NRF_EGU0_S_BASE) 3953 #define NRF_EGU1_NS ((NRF_EGU_Type*) NRF_EGU1_NS_BASE) 3954 #define NRF_EGU1_S ((NRF_EGU_Type*) NRF_EGU1_S_BASE) 3955 #define NRF_EGU2_NS ((NRF_EGU_Type*) NRF_EGU2_NS_BASE) 3956 #define NRF_EGU2_S ((NRF_EGU_Type*) NRF_EGU2_S_BASE) 3957 #define NRF_EGU3_NS ((NRF_EGU_Type*) NRF_EGU3_NS_BASE) 3958 #define NRF_EGU3_S ((NRF_EGU_Type*) NRF_EGU3_S_BASE) 3959 #define NRF_EGU4_NS ((NRF_EGU_Type*) NRF_EGU4_NS_BASE) 3960 #define NRF_EGU4_S ((NRF_EGU_Type*) NRF_EGU4_S_BASE) 3961 #define NRF_EGU5_NS ((NRF_EGU_Type*) NRF_EGU5_NS_BASE) 3962 #define NRF_EGU5_S ((NRF_EGU_Type*) NRF_EGU5_S_BASE) 3963 #define NRF_PWM0_NS ((NRF_PWM_Type*) NRF_PWM0_NS_BASE) 3964 #define NRF_PWM0_S ((NRF_PWM_Type*) NRF_PWM0_S_BASE) 3965 #define NRF_PWM1_NS ((NRF_PWM_Type*) NRF_PWM1_NS_BASE) 3966 #define NRF_PWM1_S ((NRF_PWM_Type*) NRF_PWM1_S_BASE) 3967 #define NRF_PWM2_NS ((NRF_PWM_Type*) NRF_PWM2_NS_BASE) 3968 #define NRF_PWM2_S ((NRF_PWM_Type*) NRF_PWM2_S_BASE) 3969 #define NRF_PWM3_NS ((NRF_PWM_Type*) NRF_PWM3_NS_BASE) 3970 #define NRF_PWM3_S ((NRF_PWM_Type*) NRF_PWM3_S_BASE) 3971 #define NRF_PDM0_NS ((NRF_PDM_Type*) NRF_PDM0_NS_BASE) 3972 #define NRF_PDM0_S ((NRF_PDM_Type*) NRF_PDM0_S_BASE) 3973 #define NRF_I2S0_NS ((NRF_I2S_Type*) NRF_I2S0_NS_BASE) 3974 #define NRF_I2S0_S ((NRF_I2S_Type*) NRF_I2S0_S_BASE) 3975 #define NRF_IPC_NS ((NRF_IPC_Type*) NRF_IPC_NS_BASE) 3976 #define NRF_IPC_S ((NRF_IPC_Type*) NRF_IPC_S_BASE) 3977 #define NRF_QSPI_NS ((NRF_QSPI_Type*) NRF_QSPI_NS_BASE) 3978 #define NRF_QSPI_S ((NRF_QSPI_Type*) NRF_QSPI_S_BASE) 3979 #define NRF_NFCT_NS ((NRF_NFCT_Type*) NRF_NFCT_NS_BASE) 3980 #define NRF_NFCT_S ((NRF_NFCT_Type*) NRF_NFCT_S_BASE) 3981 #define NRF_GPIOTE1_NS ((NRF_GPIOTE_Type*) NRF_GPIOTE1_NS_BASE) 3982 #define NRF_MUTEX_NS ((NRF_MUTEX_Type*) NRF_MUTEX_NS_BASE) 3983 #define NRF_MUTEX_S ((NRF_MUTEX_Type*) NRF_MUTEX_S_BASE) 3984 #define NRF_QDEC0_NS ((NRF_QDEC_Type*) NRF_QDEC0_NS_BASE) 3985 #define NRF_QDEC0_S ((NRF_QDEC_Type*) NRF_QDEC0_S_BASE) 3986 #define NRF_QDEC1_NS ((NRF_QDEC_Type*) NRF_QDEC1_NS_BASE) 3987 #define NRF_QDEC1_S ((NRF_QDEC_Type*) NRF_QDEC1_S_BASE) 3988 #define NRF_USBD_NS ((NRF_USBD_Type*) NRF_USBD_NS_BASE) 3989 #define NRF_USBD_S ((NRF_USBD_Type*) NRF_USBD_S_BASE) 3990 #define NRF_USBREGULATOR_NS ((NRF_USBREG_Type*) NRF_USBREGULATOR_NS_BASE) 3991 #define NRF_USBREGULATOR_S ((NRF_USBREG_Type*) NRF_USBREGULATOR_S_BASE) 3992 #define NRF_KMU_NS ((NRF_KMU_Type*) NRF_KMU_NS_BASE) 3993 #define NRF_NVMC_NS ((NRF_NVMC_Type*) NRF_NVMC_NS_BASE) 3994 #define NRF_KMU_S ((NRF_KMU_Type*) NRF_KMU_S_BASE) 3995 #define NRF_NVMC_S ((NRF_NVMC_Type*) NRF_NVMC_S_BASE) 3996 #define NRF_P0_NS ((NRF_GPIO_Type*) NRF_P0_NS_BASE) 3997 #define NRF_P1_NS ((NRF_GPIO_Type*) NRF_P1_NS_BASE) 3998 #define NRF_P0_S ((NRF_GPIO_Type*) NRF_P0_S_BASE) 3999 #define NRF_P1_S ((NRF_GPIO_Type*) NRF_P1_S_BASE) 4000 #define NRF_CRYPTOCELL_S ((NRF_CRYPTOCELL_Type*) NRF_CRYPTOCELL_S_BASE) 4001 #define NRF_CC_AES_S ((NRF_CC_AES_Type*) NRF_CC_AES_S_BASE) 4002 #define NRF_CC_AHB_S ((NRF_CC_AHB_Type*) NRF_CC_AHB_S_BASE) 4003 #define NRF_CC_AO_S ((NRF_CC_AO_Type*) NRF_CC_AO_S_BASE) 4004 #define NRF_CC_CHACHA_S ((NRF_CC_CHACHA_Type*) NRF_CC_CHACHA_S_BASE) 4005 #define NRF_CC_CTL_S ((NRF_CC_CTL_Type*) NRF_CC_CTL_S_BASE) 4006 #define NRF_CC_DIN_S ((NRF_CC_DIN_Type*) NRF_CC_DIN_S_BASE) 4007 #define NRF_CC_DOUT_S ((NRF_CC_DOUT_Type*) NRF_CC_DOUT_S_BASE) 4008 #define NRF_CC_GHASH_S ((NRF_CC_GHASH_Type*) NRF_CC_GHASH_S_BASE) 4009 #define NRF_CC_HASH_S ((NRF_CC_HASH_Type*) NRF_CC_HASH_S_BASE) 4010 #define NRF_CC_HOST_RGF_S ((NRF_CC_HOST_RGF_Type*) NRF_CC_HOST_RGF_S_BASE) 4011 #define NRF_CC_MISC_S ((NRF_CC_MISC_Type*) NRF_CC_MISC_S_BASE) 4012 #define NRF_CC_PKA_S ((NRF_CC_PKA_Type*) NRF_CC_PKA_S_BASE) 4013 #define NRF_CC_RNG_S ((NRF_CC_RNG_Type*) NRF_CC_RNG_S_BASE) 4014 #define NRF_CC_RNG_SRAM_S ((NRF_CC_RNG_SRAM_Type*) NRF_CC_RNG_SRAM_S_BASE) 4015 #define NRF_VMC_NS ((NRF_VMC_Type*) NRF_VMC_NS_BASE) 4016 #define NRF_VMC_S ((NRF_VMC_Type*) NRF_VMC_S_BASE) 4017 4018 /** @} */ /* End of group Device_Peripheral_declaration */ 4019 4020 4021 #ifdef __cplusplus 4022 } 4023 #endif 4024 4025 #endif /* NRF5340_APPLICATION_H */ 4026 4027 4028 /** @} */ /* End of group nrf5340_application */ 4029 4030 /** @} */ /* End of group Nordic Semiconductor */ 4031