1 /* 2 Copyright (c) 2010 - 2024, 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 22. April 2024 36 * @note Generated by SVDConv V3.3.35 on Monday, 22.04.2024 15:21:09 37 * from File 'nrf5340_application.svd', 38 * last modified on Monday, 22.04.2024 13:20:06 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 } REGULATORS_VREGH_Type; /*!< Size = 4 (0x4) */ 482 483 484 /** 485 * @brief CLOCK_HFCLKAUDIO [HFCLKAUDIO] (Unspecified) 486 */ 487 typedef struct { 488 __IOM uint32_t FREQUENCY; /*!< (@ 0x00000000) Audio PLL frequency in 11.176 MHz - 11.402 MHz 489 or 12.165 MHz - 12.411 MHz frequency bands */ 490 } CLOCK_HFCLKAUDIO_Type; /*!< Size = 4 (0x4) */ 491 492 493 /** 494 * @brief RESET_NETWORK [NETWORK] (ULP network core control) 495 */ 496 typedef struct { 497 __IM uint32_t RESERVED; 498 __IOM uint32_t FORCEOFF; /*!< (@ 0x00000004) Force network core off */ 499 } RESET_NETWORK_Type; /*!< Size = 8 (0x8) */ 500 501 502 /** 503 * @brief CTRLAPPERI_MAILBOX [MAILBOX] (Unspecified) 504 */ 505 typedef struct { 506 __IM uint32_t RXDATA; /*!< (@ 0x00000000) Data sent from the debugger to the CPU. */ 507 __IM uint32_t RXSTATUS; /*!< (@ 0x00000004) This register shows a status that indicates if 508 data sent from the debugger to the CPU has 509 been read. */ 510 __IM uint32_t RESERVED[30]; 511 __IOM uint32_t TXDATA; /*!< (@ 0x00000080) Data sent from the CPU to the debugger. */ 512 __IM uint32_t TXSTATUS; /*!< (@ 0x00000084) This register shows a status that indicates if 513 the data sent from the CPU to the debugger 514 has been read. */ 515 } CTRLAPPERI_MAILBOX_Type; /*!< Size = 136 (0x88) */ 516 517 518 /** 519 * @brief CTRLAPPERI_ERASEPROTECT [ERASEPROTECT] (Unspecified) 520 */ 521 typedef struct { 522 __IOM uint32_t LOCK; /*!< (@ 0x00000000) This register locks the ERASEPROTECT.DISABLE 523 register from being written until next reset. */ 524 __IOM uint32_t DISABLE; /*!< (@ 0x00000004) This register disables the ERASEPROTECT register 525 and performs an ERASEALL operation. */ 526 } CTRLAPPERI_ERASEPROTECT_Type; /*!< Size = 8 (0x8) */ 527 528 529 /** 530 * @brief CTRLAPPERI_APPROTECT [APPROTECT] (Unspecified) 531 */ 532 typedef struct { 533 __IOM uint32_t LOCK; /*!< (@ 0x00000000) This register locks the APPROTECT.DISABLE register 534 from being written to until next reset. */ 535 __IOM uint32_t DISABLE; /*!< (@ 0x00000004) This register disables the APPROTECT register 536 and enables debug access to non-secure mode. */ 537 } CTRLAPPERI_APPROTECT_Type; /*!< Size = 8 (0x8) */ 538 539 540 /** 541 * @brief CTRLAPPERI_SECUREAPPROTECT [SECUREAPPROTECT] (Unspecified) 542 */ 543 typedef struct { 544 __IOM uint32_t LOCK; /*!< (@ 0x00000000) This register locks the SECUREAPPROTECT.DISABLE 545 register from being written until next reset. */ 546 __IOM uint32_t DISABLE; /*!< (@ 0x00000004) This register disables the SECUREAPPROTECT register 547 and enables debug access to secure mode. */ 548 } CTRLAPPERI_SECUREAPPROTECT_Type; /*!< Size = 8 (0x8) */ 549 550 551 /** 552 * @brief SPIM_PSEL [PSEL] (Unspecified) 553 */ 554 typedef struct { 555 __IOM uint32_t SCK; /*!< (@ 0x00000000) Pin select for SCK */ 556 __IOM uint32_t MOSI; /*!< (@ 0x00000004) Pin select for MOSI signal */ 557 __IOM uint32_t MISO; /*!< (@ 0x00000008) Pin select for MISO signal */ 558 __IOM uint32_t CSN; /*!< (@ 0x0000000C) Pin select for CSN */ 559 } SPIM_PSEL_Type; /*!< Size = 16 (0x10) */ 560 561 562 /** 563 * @brief SPIM_RXD [RXD] (RXD EasyDMA channel) 564 */ 565 typedef struct { 566 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 567 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in receive buffer */ 568 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 569 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 570 } SPIM_RXD_Type; /*!< Size = 16 (0x10) */ 571 572 573 /** 574 * @brief SPIM_TXD [TXD] (TXD EasyDMA channel) 575 */ 576 typedef struct { 577 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 578 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Number of bytes in transmit buffer */ 579 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 580 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 581 } SPIM_TXD_Type; /*!< Size = 16 (0x10) */ 582 583 584 /** 585 * @brief SPIM_IFTIMING [IFTIMING] (Unspecified) 586 */ 587 typedef struct { 588 __IOM uint32_t RXDELAY; /*!< (@ 0x00000000) Sample delay for input serial data on MISO */ 589 __IOM uint32_t CSNDUR; /*!< (@ 0x00000004) Minimum duration between edge of CSN and edge 590 of SCK. When SHORTS.END_START is used, this 591 is also the minimum duration CSN must stay 592 high between transactions. */ 593 } SPIM_IFTIMING_Type; /*!< Size = 8 (0x8) */ 594 595 596 /** 597 * @brief SPIS_PSEL [PSEL] (Unspecified) 598 */ 599 typedef struct { 600 __IOM uint32_t SCK; /*!< (@ 0x00000000) Pin select for SCK */ 601 __IOM uint32_t MISO; /*!< (@ 0x00000004) Pin select for MISO signal */ 602 __IOM uint32_t MOSI; /*!< (@ 0x00000008) Pin select for MOSI signal */ 603 __IOM uint32_t CSN; /*!< (@ 0x0000000C) Pin select for CSN signal */ 604 } SPIS_PSEL_Type; /*!< Size = 16 (0x10) */ 605 606 607 /** 608 * @brief SPIS_RXD [RXD] (Unspecified) 609 */ 610 typedef struct { 611 __IOM uint32_t PTR; /*!< (@ 0x00000000) RXD data pointer */ 612 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in receive buffer */ 613 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes received in last granted transaction */ 614 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 615 } SPIS_RXD_Type; /*!< Size = 16 (0x10) */ 616 617 618 /** 619 * @brief SPIS_TXD [TXD] (Unspecified) 620 */ 621 typedef struct { 622 __IOM uint32_t PTR; /*!< (@ 0x00000000) TXD data pointer */ 623 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in transmit buffer */ 624 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transmitted in last granted transaction */ 625 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 626 } SPIS_TXD_Type; /*!< Size = 16 (0x10) */ 627 628 629 /** 630 * @brief TWIM_PSEL [PSEL] (Unspecified) 631 */ 632 typedef struct { 633 __IOM uint32_t SCL; /*!< (@ 0x00000000) Pin select for SCL signal */ 634 __IOM uint32_t SDA; /*!< (@ 0x00000004) Pin select for SDA signal */ 635 } TWIM_PSEL_Type; /*!< Size = 8 (0x8) */ 636 637 638 /** 639 * @brief TWIM_RXD [RXD] (RXD EasyDMA channel) 640 */ 641 typedef struct { 642 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 643 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in receive buffer */ 644 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 645 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 646 } TWIM_RXD_Type; /*!< Size = 16 (0x10) */ 647 648 649 /** 650 * @brief TWIM_TXD [TXD] (TXD EasyDMA channel) 651 */ 652 typedef struct { 653 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 654 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in transmit buffer */ 655 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 656 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 657 } TWIM_TXD_Type; /*!< Size = 16 (0x10) */ 658 659 660 /** 661 * @brief TWIS_PSEL [PSEL] (Unspecified) 662 */ 663 typedef struct { 664 __IOM uint32_t SCL; /*!< (@ 0x00000000) Pin select for SCL signal */ 665 __IOM uint32_t SDA; /*!< (@ 0x00000004) Pin select for SDA signal */ 666 } TWIS_PSEL_Type; /*!< Size = 8 (0x8) */ 667 668 669 /** 670 * @brief TWIS_RXD [RXD] (RXD EasyDMA channel) 671 */ 672 typedef struct { 673 __IOM uint32_t PTR; /*!< (@ 0x00000000) RXD Data pointer */ 674 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in RXD buffer */ 675 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last RXD transaction */ 676 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 677 } TWIS_RXD_Type; /*!< Size = 16 (0x10) */ 678 679 680 /** 681 * @brief TWIS_TXD [TXD] (TXD EasyDMA channel) 682 */ 683 typedef struct { 684 __IOM uint32_t PTR; /*!< (@ 0x00000000) TXD Data pointer */ 685 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in TXD buffer */ 686 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last TXD transaction */ 687 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 688 } TWIS_TXD_Type; /*!< Size = 16 (0x10) */ 689 690 691 /** 692 * @brief UARTE_PSEL [PSEL] (Unspecified) 693 */ 694 typedef struct { 695 __IOM uint32_t RTS; /*!< (@ 0x00000000) Pin select for RTS signal */ 696 __IOM uint32_t TXD; /*!< (@ 0x00000004) Pin select for TXD signal */ 697 __IOM uint32_t CTS; /*!< (@ 0x00000008) Pin select for CTS signal */ 698 __IOM uint32_t RXD; /*!< (@ 0x0000000C) Pin select for RXD signal */ 699 } UARTE_PSEL_Type; /*!< Size = 16 (0x10) */ 700 701 702 /** 703 * @brief UARTE_RXD [RXD] (RXD EasyDMA channel) 704 */ 705 typedef struct { 706 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 707 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in receive buffer */ 708 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 709 } UARTE_RXD_Type; /*!< Size = 12 (0xc) */ 710 711 712 /** 713 * @brief UARTE_TXD [TXD] (TXD EasyDMA channel) 714 */ 715 typedef struct { 716 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 717 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in transmit buffer */ 718 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 719 } UARTE_TXD_Type; /*!< Size = 12 (0xc) */ 720 721 722 /** 723 * @brief SAADC_EVENTS_CH [EVENTS_CH] (Peripheral events.) 724 */ 725 typedef struct { 726 __IOM uint32_t LIMITH; /*!< (@ 0x00000000) Description cluster: Last results is equal or 727 above CH[n].LIMIT.HIGH */ 728 __IOM uint32_t LIMITL; /*!< (@ 0x00000004) Description cluster: Last results is equal or 729 below CH[n].LIMIT.LOW */ 730 } SAADC_EVENTS_CH_Type; /*!< Size = 8 (0x8) */ 731 732 733 /** 734 * @brief SAADC_PUBLISH_CH [PUBLISH_CH] (Publish configuration for events) 735 */ 736 typedef struct { 737 __IOM uint32_t LIMITH; /*!< (@ 0x00000000) Description cluster: Publish configuration for 738 event CH[n].LIMITH */ 739 __IOM uint32_t LIMITL; /*!< (@ 0x00000004) Description cluster: Publish configuration for 740 event CH[n].LIMITL */ 741 } SAADC_PUBLISH_CH_Type; /*!< Size = 8 (0x8) */ 742 743 744 /** 745 * @brief SAADC_CH [CH] (Unspecified) 746 */ 747 typedef struct { 748 __IOM uint32_t PSELP; /*!< (@ 0x00000000) Description cluster: Input positive pin selection 749 for CH[n] */ 750 __IOM uint32_t PSELN; /*!< (@ 0x00000004) Description cluster: Input negative pin selection 751 for CH[n] */ 752 __IOM uint32_t CONFIG; /*!< (@ 0x00000008) Description cluster: Input configuration for 753 CH[n] */ 754 __IOM uint32_t LIMIT; /*!< (@ 0x0000000C) Description cluster: High/low limits for event 755 monitoring a channel */ 756 } SAADC_CH_Type; /*!< Size = 16 (0x10) */ 757 758 759 /** 760 * @brief SAADC_RESULT [RESULT] (RESULT EasyDMA channel) 761 */ 762 typedef struct { 763 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 764 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of buffer words to transfer */ 765 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of buffer words transferred since last 766 START */ 767 } SAADC_RESULT_Type; /*!< Size = 12 (0xc) */ 768 769 770 /** 771 * @brief DPPIC_TASKS_CHG [TASKS_CHG] (Channel group tasks) 772 */ 773 typedef struct { 774 __OM uint32_t EN; /*!< (@ 0x00000000) Description cluster: Enable channel group n */ 775 __OM uint32_t DIS; /*!< (@ 0x00000004) Description cluster: Disable channel group n */ 776 } DPPIC_TASKS_CHG_Type; /*!< Size = 8 (0x8) */ 777 778 779 /** 780 * @brief DPPIC_SUBSCRIBE_CHG [SUBSCRIBE_CHG] (Subscribe configuration for tasks) 781 */ 782 typedef struct { 783 __IOM uint32_t EN; /*!< (@ 0x00000000) Description cluster: Subscribe configuration 784 for task CHG[n].EN */ 785 __IOM uint32_t DIS; /*!< (@ 0x00000004) Description cluster: Subscribe configuration 786 for task CHG[n].DIS */ 787 } DPPIC_SUBSCRIBE_CHG_Type; /*!< Size = 8 (0x8) */ 788 789 790 /** 791 * @brief PWM_SEQ [SEQ] (Unspecified) 792 */ 793 typedef struct { 794 __IOM uint32_t PTR; /*!< (@ 0x00000000) Description cluster: Beginning address in RAM 795 of this sequence */ 796 __IOM uint32_t CNT; /*!< (@ 0x00000004) Description cluster: Number of values (duty cycles) 797 in this sequence */ 798 __IOM uint32_t REFRESH; /*!< (@ 0x00000008) Description cluster: Number of additional PWM 799 periods between samples loaded into compare 800 register */ 801 __IOM uint32_t ENDDELAY; /*!< (@ 0x0000000C) Description cluster: Time added after the sequence */ 802 __IM uint32_t RESERVED[4]; 803 } PWM_SEQ_Type; /*!< Size = 32 (0x20) */ 804 805 806 /** 807 * @brief PWM_PSEL [PSEL] (Unspecified) 808 */ 809 typedef struct { 810 __IOM uint32_t OUT[4]; /*!< (@ 0x00000000) Description collection: Output pin select for 811 PWM channel n */ 812 } PWM_PSEL_Type; /*!< Size = 16 (0x10) */ 813 814 815 /** 816 * @brief PDM_PSEL [PSEL] (Unspecified) 817 */ 818 typedef struct { 819 __IOM uint32_t CLK; /*!< (@ 0x00000000) Pin number configuration for PDM CLK signal */ 820 __IOM uint32_t DIN; /*!< (@ 0x00000004) Pin number configuration for PDM DIN signal */ 821 } PDM_PSEL_Type; /*!< Size = 8 (0x8) */ 822 823 824 /** 825 * @brief PDM_SAMPLE [SAMPLE] (Unspecified) 826 */ 827 typedef struct { 828 __IOM uint32_t PTR; /*!< (@ 0x00000000) RAM address pointer to write samples to with 829 EasyDMA */ 830 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Number of samples to allocate memory for in EasyDMA 831 mode */ 832 } PDM_SAMPLE_Type; /*!< Size = 8 (0x8) */ 833 834 835 /** 836 * @brief I2S_CONFIG [CONFIG] (Unspecified) 837 */ 838 typedef struct { 839 __IOM uint32_t MODE; /*!< (@ 0x00000000) I2S mode */ 840 __IOM uint32_t RXEN; /*!< (@ 0x00000004) Reception (RX) enable */ 841 __IOM uint32_t TXEN; /*!< (@ 0x00000008) Transmission (TX) enable */ 842 __IOM uint32_t MCKEN; /*!< (@ 0x0000000C) Master clock generator enable */ 843 __IOM uint32_t MCKFREQ; /*!< (@ 0x00000010) I2S clock generator control */ 844 __IOM uint32_t RATIO; /*!< (@ 0x00000014) MCK / LRCK ratio */ 845 __IOM uint32_t SWIDTH; /*!< (@ 0x00000018) Sample width */ 846 __IOM uint32_t ALIGN; /*!< (@ 0x0000001C) Alignment of sample within a frame */ 847 __IOM uint32_t FORMAT; /*!< (@ 0x00000020) Frame format */ 848 __IOM uint32_t CHANNELS; /*!< (@ 0x00000024) Enable channels */ 849 __IOM uint32_t CLKCONFIG; /*!< (@ 0x00000028) Clock source selection for the I2S module */ 850 } I2S_CONFIG_Type; /*!< Size = 44 (0x2c) */ 851 852 853 /** 854 * @brief I2S_RXD [RXD] (Unspecified) 855 */ 856 typedef struct { 857 __IOM uint32_t PTR; /*!< (@ 0x00000000) Receive buffer RAM start address. */ 858 } I2S_RXD_Type; /*!< Size = 4 (0x4) */ 859 860 861 /** 862 * @brief I2S_TXD [TXD] (Unspecified) 863 */ 864 typedef struct { 865 __IOM uint32_t PTR; /*!< (@ 0x00000000) Transmit buffer RAM start address */ 866 } I2S_TXD_Type; /*!< Size = 4 (0x4) */ 867 868 869 /** 870 * @brief I2S_RXTXD [RXTXD] (Unspecified) 871 */ 872 typedef struct { 873 __IOM uint32_t MAXCNT; /*!< (@ 0x00000000) Size of RXD and TXD buffers */ 874 } I2S_RXTXD_Type; /*!< Size = 4 (0x4) */ 875 876 877 /** 878 * @brief I2S_PSEL [PSEL] (Unspecified) 879 */ 880 typedef struct { 881 __IOM uint32_t MCK; /*!< (@ 0x00000000) Pin select for MCK signal */ 882 __IOM uint32_t SCK; /*!< (@ 0x00000004) Pin select for SCK signal */ 883 __IOM uint32_t LRCK; /*!< (@ 0x00000008) Pin select for LRCK signal */ 884 __IOM uint32_t SDIN; /*!< (@ 0x0000000C) Pin select for SDIN signal */ 885 __IOM uint32_t SDOUT; /*!< (@ 0x00000010) Pin select for SDOUT signal */ 886 } I2S_PSEL_Type; /*!< Size = 20 (0x14) */ 887 888 889 /** 890 * @brief QSPI_READ [READ] (Unspecified) 891 */ 892 typedef struct { 893 __IOM uint32_t SRC; /*!< (@ 0x00000000) Flash memory source address */ 894 __IOM uint32_t DST; /*!< (@ 0x00000004) RAM destination address */ 895 __IOM uint32_t CNT; /*!< (@ 0x00000008) Read transfer length */ 896 } QSPI_READ_Type; /*!< Size = 12 (0xc) */ 897 898 899 /** 900 * @brief QSPI_WRITE [WRITE] (Unspecified) 901 */ 902 typedef struct { 903 __IOM uint32_t DST; /*!< (@ 0x00000000) Flash destination address */ 904 __IOM uint32_t SRC; /*!< (@ 0x00000004) RAM source address */ 905 __IOM uint32_t CNT; /*!< (@ 0x00000008) Write transfer length */ 906 } QSPI_WRITE_Type; /*!< Size = 12 (0xc) */ 907 908 909 /** 910 * @brief QSPI_ERASE [ERASE] (Unspecified) 911 */ 912 typedef struct { 913 __IOM uint32_t PTR; /*!< (@ 0x00000000) Start address of flash block to be erased */ 914 __IOM uint32_t LEN; /*!< (@ 0x00000004) Size of block to be erased. */ 915 } QSPI_ERASE_Type; /*!< Size = 8 (0x8) */ 916 917 918 /** 919 * @brief QSPI_PSEL [PSEL] (Unspecified) 920 */ 921 typedef struct { 922 __IOM uint32_t SCK; /*!< (@ 0x00000000) Pin select for serial clock SCK */ 923 __IOM uint32_t CSN; /*!< (@ 0x00000004) Pin select for chip select signal CSN. */ 924 __IM uint32_t RESERVED; 925 __IOM uint32_t IO0; /*!< (@ 0x0000000C) Pin select for serial data MOSI/IO0. */ 926 __IOM uint32_t IO1; /*!< (@ 0x00000010) Pin select for serial data MISO/IO1. */ 927 __IOM uint32_t IO2; /*!< (@ 0x00000014) Pin select for serial data WP/IO2. */ 928 __IOM uint32_t IO3; /*!< (@ 0x00000018) Pin select for serial data HOLD/IO3. */ 929 } QSPI_PSEL_Type; /*!< Size = 28 (0x1c) */ 930 931 932 /** 933 * @brief QSPI_XIP_ENC [XIP_ENC] (Unspecified) 934 */ 935 typedef struct { 936 __OM uint32_t KEY0; /*!< (@ 0x00000000) Bits 31:0 of XIP AES KEY */ 937 __OM uint32_t KEY1; /*!< (@ 0x00000004) Bits 63:32 of XIP AES KEY */ 938 __OM uint32_t KEY2; /*!< (@ 0x00000008) Bits 95:64 of XIP AES KEY */ 939 __OM uint32_t KEY3; /*!< (@ 0x0000000C) Bits 127:96 of XIP AES KEY */ 940 __OM uint32_t NONCE0; /*!< (@ 0x00000010) Bits 31:0 of XIP NONCE */ 941 __OM uint32_t NONCE1; /*!< (@ 0x00000014) Bits 63:32 of XIP NONCE */ 942 __OM uint32_t NONCE2; /*!< (@ 0x00000018) Bits 95:64 of XIP NONCE */ 943 __IOM uint32_t ENABLE; /*!< (@ 0x0000001C) Enable stream cipher for XIP */ 944 } QSPI_XIP_ENC_Type; /*!< Size = 32 (0x20) */ 945 946 947 /** 948 * @brief QSPI_DMA_ENC [DMA_ENC] (Unspecified) 949 */ 950 typedef struct { 951 __OM uint32_t KEY0; /*!< (@ 0x00000000) Bits 31:0 of DMA AES KEY */ 952 __OM uint32_t KEY1; /*!< (@ 0x00000004) Bits 63:32 of DMA AES KEY */ 953 __OM uint32_t KEY2; /*!< (@ 0x00000008) Bits 95:64 of DMA AES KEY */ 954 __OM uint32_t KEY3; /*!< (@ 0x0000000C) Bits 127:96 of DMA AES KEY */ 955 __OM uint32_t NONCE0; /*!< (@ 0x00000010) Bits 31:0 of DMA NONCE */ 956 __OM uint32_t NONCE1; /*!< (@ 0x00000014) Bits 63:32 of DMA NONCE */ 957 __OM uint32_t NONCE2; /*!< (@ 0x00000018) Bits 95:64 of DMA NONCE */ 958 __IOM uint32_t ENABLE; /*!< (@ 0x0000001C) Enable stream cipher for EasyDMA */ 959 } QSPI_DMA_ENC_Type; /*!< Size = 32 (0x20) */ 960 961 962 /** 963 * @brief NFCT_FRAMESTATUS [FRAMESTATUS] (Unspecified) 964 */ 965 typedef struct { 966 __IOM uint32_t RX; /*!< (@ 0x00000000) Result of last incoming frame */ 967 } NFCT_FRAMESTATUS_Type; /*!< Size = 4 (0x4) */ 968 969 970 /** 971 * @brief NFCT_TXD [TXD] (Unspecified) 972 */ 973 typedef struct { 974 __IOM uint32_t FRAMECONFIG; /*!< (@ 0x00000000) Configuration of outgoing frames */ 975 __IOM uint32_t AMOUNT; /*!< (@ 0x00000004) Size of outgoing frame */ 976 } NFCT_TXD_Type; /*!< Size = 8 (0x8) */ 977 978 979 /** 980 * @brief NFCT_RXD [RXD] (Unspecified) 981 */ 982 typedef struct { 983 __IOM uint32_t FRAMECONFIG; /*!< (@ 0x00000000) Configuration of incoming frames */ 984 __IM uint32_t AMOUNT; /*!< (@ 0x00000004) Size of last incoming frame */ 985 } NFCT_RXD_Type; /*!< Size = 8 (0x8) */ 986 987 988 /** 989 * @brief QDEC_PSEL [PSEL] (Unspecified) 990 */ 991 typedef struct { 992 __IOM uint32_t LED; /*!< (@ 0x00000000) Pin select for LED signal */ 993 __IOM uint32_t A; /*!< (@ 0x00000004) Pin select for A signal */ 994 __IOM uint32_t B; /*!< (@ 0x00000008) Pin select for B signal */ 995 } QDEC_PSEL_Type; /*!< Size = 12 (0xc) */ 996 997 998 /** 999 * @brief USBD_HALTED [HALTED] (Unspecified) 1000 */ 1001 typedef struct { 1002 __IM uint32_t EPIN[8]; /*!< (@ 0x00000000) Description collection: IN endpoint halted status. 1003 Can be used as is as response to a GetStatus() 1004 request to endpoint. */ 1005 __IM uint32_t RESERVED; 1006 __IM uint32_t EPOUT[8]; /*!< (@ 0x00000024) Description collection: OUT endpoint halted status. 1007 Can be used as is as response to a GetStatus() 1008 request to endpoint. */ 1009 } USBD_HALTED_Type; /*!< Size = 68 (0x44) */ 1010 1011 1012 /** 1013 * @brief USBD_SIZE [SIZE] (Unspecified) 1014 */ 1015 typedef struct { 1016 __IOM uint32_t EPOUT[8]; /*!< (@ 0x00000000) Description collection: Number of bytes received 1017 last in the data stage of this OUT endpoint */ 1018 __IM uint32_t ISOOUT; /*!< (@ 0x00000020) Number of bytes received last on this ISO OUT 1019 data endpoint */ 1020 } USBD_SIZE_Type; /*!< Size = 36 (0x24) */ 1021 1022 1023 /** 1024 * @brief USBD_EPIN [EPIN] (Unspecified) 1025 */ 1026 typedef struct { 1027 __IOM uint32_t PTR; /*!< (@ 0x00000000) Description cluster: Data pointer */ 1028 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Description cluster: Maximum number of bytes 1029 to transfer */ 1030 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Description cluster: Number of bytes transferred 1031 in the last transaction */ 1032 __IM uint32_t RESERVED[2]; 1033 } USBD_EPIN_Type; /*!< Size = 20 (0x14) */ 1034 1035 1036 /** 1037 * @brief USBD_ISOIN [ISOIN] (Unspecified) 1038 */ 1039 typedef struct { 1040 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 1041 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes to transfer */ 1042 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 1043 } USBD_ISOIN_Type; /*!< Size = 12 (0xc) */ 1044 1045 1046 /** 1047 * @brief USBD_EPOUT [EPOUT] (Unspecified) 1048 */ 1049 typedef struct { 1050 __IOM uint32_t PTR; /*!< (@ 0x00000000) Description cluster: Data pointer */ 1051 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Description cluster: Maximum number of bytes 1052 to transfer */ 1053 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Description cluster: Number of bytes transferred 1054 in the last transaction */ 1055 __IM uint32_t RESERVED[2]; 1056 } USBD_EPOUT_Type; /*!< Size = 20 (0x14) */ 1057 1058 1059 /** 1060 * @brief USBD_ISOOUT [ISOOUT] (Unspecified) 1061 */ 1062 typedef struct { 1063 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 1064 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes to transfer */ 1065 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 1066 } USBD_ISOOUT_Type; /*!< Size = 12 (0xc) */ 1067 1068 1069 /** 1070 * @brief VMC_RAM [RAM] (Unspecified) 1071 */ 1072 typedef struct { 1073 __IOM uint32_t POWER; /*!< (@ 0x00000000) Description cluster: RAM[n] power control register */ 1074 __IOM uint32_t POWERSET; /*!< (@ 0x00000004) Description cluster: RAM[n] power control set 1075 register */ 1076 __IOM uint32_t POWERCLR; /*!< (@ 0x00000008) Description cluster: RAM[n] power control clear 1077 register */ 1078 __IM uint32_t RESERVED; 1079 } VMC_RAM_Type; /*!< Size = 16 (0x10) */ 1080 1081 1082 /** @} */ /* End of group Device_Peripheral_clusters */ 1083 1084 1085 /* =========================================================================================================================== */ 1086 /* ================ Device Specific Peripheral Section ================ */ 1087 /* =========================================================================================================================== */ 1088 1089 1090 /** @addtogroup Device_Peripheral_peripherals 1091 * @{ 1092 */ 1093 1094 1095 1096 /* =========================================================================================================================== */ 1097 /* ================ CACHEDATA_S ================ */ 1098 /* =========================================================================================================================== */ 1099 1100 1101 /** 1102 * @brief CACHEDATA (CACHEDATA_S) 1103 */ 1104 1105 typedef struct { /*!< (@ 0x00F00000) CACHEDATA_S Structure */ 1106 __IOM CACHEDATA_SET_Type SET[256]; /*!< (@ 0x00000000) Unspecified */ 1107 } NRF_CACHEDATA_Type; /*!< Size = 8192 (0x2000) */ 1108 1109 1110 1111 /* =========================================================================================================================== */ 1112 /* ================ CACHEINFO_S ================ */ 1113 /* =========================================================================================================================== */ 1114 1115 1116 /** 1117 * @brief CACHEINFO (CACHEINFO_S) 1118 */ 1119 1120 typedef struct { /*!< (@ 0x00F08000) CACHEINFO_S Structure */ 1121 __IOM CACHEINFO_SET_Type SET[256]; /*!< (@ 0x00000000) Unspecified */ 1122 } NRF_CACHEINFO_Type; /*!< Size = 2048 (0x800) */ 1123 1124 1125 1126 /* =========================================================================================================================== */ 1127 /* ================ FICR_S ================ */ 1128 /* =========================================================================================================================== */ 1129 1130 1131 /** 1132 * @brief Factory Information Configuration Registers (FICR_S) 1133 */ 1134 1135 typedef struct { /*!< (@ 0x00FF0000) FICR_S Structure */ 1136 __IM uint32_t RESERVED[128]; 1137 __IOM FICR_INFO_Type INFO; /*!< (@ 0x00000200) Device info */ 1138 __IM uint32_t RESERVED1[53]; 1139 __IOM FICR_TRIMCNF_Type TRIMCNF[32]; /*!< (@ 0x00000300) Unspecified */ 1140 __IM uint32_t RESERVED2[20]; 1141 __IOM FICR_NFC_Type NFC; /*!< (@ 0x00000450) Unspecified */ 1142 __IM uint32_t RESERVED3[488]; 1143 __IOM FICR_TRNG90B_Type TRNG90B; /*!< (@ 0x00000C00) NIST800-90B RNG calibration data */ 1144 __IM uint32_t XOSC32MTRIM; /*!< (@ 0x00000C20) XOSC32M capacitor selection trim values */ 1145 } NRF_FICR_Type; /*!< Size = 3108 (0xc24) */ 1146 1147 1148 1149 /* =========================================================================================================================== */ 1150 /* ================ UICR_S ================ */ 1151 /* =========================================================================================================================== */ 1152 1153 1154 /** 1155 * @brief User Information Configuration Registers User information configuration registers (UICR_S) 1156 */ 1157 1158 typedef struct { /*!< (@ 0x00FF8000) UICR_S Structure */ 1159 __IOM uint32_t APPROTECT; /*!< (@ 0x00000000) Access port protection */ 1160 __IM uint32_t RESERVED[3]; 1161 __IOM uint32_t VREGHVOUT; /*!< (@ 0x00000010) Output voltage from the high voltage (VREGH) 1162 regulator stage. The maximum output voltage 1163 from this stage is given as VDDH - VREGHDROP. */ 1164 __IOM uint32_t HFXOCNT; /*!< (@ 0x00000014) HFXO startup counter */ 1165 __IM uint32_t RESERVED1; 1166 __IOM uint32_t SECUREAPPROTECT; /*!< (@ 0x0000001C) Secure access port protection */ 1167 __IOM uint32_t ERASEPROTECT; /*!< (@ 0x00000020) Erase protection */ 1168 __IOM uint32_t TINSTANCE; /*!< (@ 0x00000024) SW-DP Target instance */ 1169 __IOM uint32_t NFCPINS; /*!< (@ 0x00000028) Setting of pins dedicated to NFC functionality: 1170 NFC antenna or GPIO */ 1171 __IM uint32_t RESERVED2[53]; 1172 __IOM uint32_t OTP[192]; /*!< (@ 0x00000100) Description collection: One time programmable 1173 memory */ 1174 __IOM UICR_KEYSLOT_Type KEYSLOT; /*!< (@ 0x00000400) Unspecified */ 1175 } NRF_UICR_Type; /*!< Size = 4096 (0x1000) */ 1176 1177 1178 1179 /* =========================================================================================================================== */ 1180 /* ================ CTI_S ================ */ 1181 /* =========================================================================================================================== */ 1182 1183 1184 /** 1185 * @brief Cross-Trigger Interface control. NOTE: this is not a separate peripheral, but describes CM33 functionality. (CTI_S) 1186 */ 1187 1188 typedef struct { /*!< (@ 0xE0042000) CTI_S Structure */ 1189 __IOM uint32_t CTICONTROL; /*!< (@ 0x00000000) CTI Control register */ 1190 __IM uint32_t RESERVED[3]; 1191 __OM uint32_t CTIINTACK; /*!< (@ 0x00000010) CTI Interrupt Acknowledge register */ 1192 __IOM uint32_t CTIAPPSET; /*!< (@ 0x00000014) CTI Application Trigger Set register */ 1193 __OM uint32_t CTIAPPCLEAR; /*!< (@ 0x00000018) CTI Application Trigger Clear register */ 1194 __OM uint32_t CTIAPPPULSE; /*!< (@ 0x0000001C) CTI Application Pulse register */ 1195 __IOM uint32_t CTIINEN[8]; /*!< (@ 0x00000020) Description collection: CTI Trigger input */ 1196 __IM uint32_t RESERVED1[24]; 1197 __IOM uint32_t CTIOUTEN[8]; /*!< (@ 0x000000A0) Description collection: CTI Trigger output */ 1198 __IM uint32_t RESERVED2[28]; 1199 __IM uint32_t CTITRIGINSTATUS; /*!< (@ 0x00000130) CTI Trigger In Status register */ 1200 __IM uint32_t CTITRIGOUTSTATUS; /*!< (@ 0x00000134) CTI Trigger Out Status register */ 1201 __IM uint32_t CTICHINSTATUS; /*!< (@ 0x00000138) CTI Channel In Status register */ 1202 __IM uint32_t RESERVED3; 1203 __IOM uint32_t CTIGATE; /*!< (@ 0x00000140) Enable CTI Channel Gate register */ 1204 __IM uint32_t RESERVED4[926]; 1205 __IM uint32_t DEVARCH; /*!< (@ 0x00000FBC) Device Architecture register */ 1206 __IM uint32_t RESERVED5[2]; 1207 __IM uint32_t DEVID; /*!< (@ 0x00000FC8) Device Configuration register */ 1208 __IM uint32_t DEVTYPE; /*!< (@ 0x00000FCC) Device Type Identifier register */ 1209 __IM uint32_t PIDR4; /*!< (@ 0x00000FD0) Peripheral ID4 Register */ 1210 __IM uint32_t PIDR5; /*!< (@ 0x00000FD4) Peripheral ID5 register */ 1211 __IM uint32_t PIDR6; /*!< (@ 0x00000FD8) Peripheral ID6 register */ 1212 __IM uint32_t PIDR7; /*!< (@ 0x00000FDC) Peripheral ID7 register */ 1213 __IM uint32_t PIDR0; /*!< (@ 0x00000FE0) Peripheral ID0 Register */ 1214 __IM uint32_t PIDR1; /*!< (@ 0x00000FE4) Peripheral ID1 Register */ 1215 __IM uint32_t PIDR2; /*!< (@ 0x00000FE8) Peripheral ID2 Register */ 1216 __IM uint32_t PIDR3; /*!< (@ 0x00000FEC) Peripheral ID3 Register */ 1217 __IM uint32_t CIDR0; /*!< (@ 0x00000FF0) Component ID0 Register */ 1218 __IM uint32_t CIDR1; /*!< (@ 0x00000FF4) Component ID1 Register */ 1219 __IM uint32_t CIDR2; /*!< (@ 0x00000FF8) Component ID2 Register */ 1220 __IM uint32_t CIDR3; /*!< (@ 0x00000FFC) Component ID3 Register */ 1221 } NRF_CTI_Type; /*!< Size = 4096 (0x1000) */ 1222 1223 1224 1225 /* =========================================================================================================================== */ 1226 /* ================ TAD_S ================ */ 1227 /* =========================================================================================================================== */ 1228 1229 1230 /** 1231 * @brief Trace and debug control (TAD_S) 1232 */ 1233 1234 typedef struct { /*!< (@ 0xE0080000) TAD_S Structure */ 1235 __IM uint32_t RESERVED; 1236 __OM uint32_t CLOCKSTART; /*!< (@ 0x00000004) Start all trace and debug clocks. */ 1237 __OM uint32_t CLOCKSTOP; /*!< (@ 0x00000008) Stop all trace and debug clocks. */ 1238 __IM uint32_t RESERVED1[317]; 1239 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable debug domain and aquire selected GPIOs */ 1240 __IOM TAD_PSEL_Type PSEL; /*!< (@ 0x00000504) Unspecified */ 1241 __IOM uint32_t TRACEPORTSPEED; /*!< (@ 0x00000518) Clocking options for the Trace Port debug interface 1242 Reset behavior is the same as debug components */ 1243 } NRF_TAD_Type; /*!< Size = 1308 (0x51c) */ 1244 1245 1246 1247 /* =========================================================================================================================== */ 1248 /* ================ DCNF_NS ================ */ 1249 /* =========================================================================================================================== */ 1250 1251 1252 /** 1253 * @brief Domain configuration management 0 (DCNF_NS) 1254 */ 1255 1256 typedef struct { /*!< (@ 0x40000000) DCNF_NS Structure */ 1257 __IM uint32_t RESERVED[264]; 1258 __IM uint32_t CPUID; /*!< (@ 0x00000420) CPU ID of this subsystem */ 1259 __IM uint32_t RESERVED1[7]; 1260 __IOM DCNF_EXTPERI_Type EXTPERI[1]; /*!< (@ 0x00000440) Unspecified */ 1261 __IM uint32_t RESERVED2[7]; 1262 __IOM DCNF_EXTRAM_Type EXTRAM[1]; /*!< (@ 0x00000460) Unspecified */ 1263 __IM uint32_t RESERVED3[7]; 1264 __IOM DCNF_EXTCODE_Type EXTCODE[1]; /*!< (@ 0x00000480) Unspecified */ 1265 } NRF_DCNF_Type; /*!< Size = 1156 (0x484) */ 1266 1267 1268 1269 /* =========================================================================================================================== */ 1270 /* ================ FPU_NS ================ */ 1271 /* =========================================================================================================================== */ 1272 1273 1274 /** 1275 * @brief FPU control peripheral 0 (FPU_NS) 1276 */ 1277 1278 typedef struct { /*!< (@ 0x40000000) FPU_NS Structure */ 1279 __IM uint32_t RESERVED[64]; 1280 __IOM uint32_t EVENTS_INVALIDOPERATION; /*!< (@ 0x00000100) An FPUIOC exception triggered by an invalid operation 1281 has occurred in the FPU */ 1282 __IOM uint32_t EVENTS_DIVIDEBYZERO; /*!< (@ 0x00000104) An FPUDZC exception triggered by a floating-point 1283 divide-by-zero operation has occurred in 1284 the FPU */ 1285 __IOM uint32_t EVENTS_OVERFLOW; /*!< (@ 0x00000108) An FPUOFC exception triggered by a floating-point 1286 overflow has occurred in the FPU */ 1287 __IOM uint32_t EVENTS_UNDERFLOW; /*!< (@ 0x0000010C) An FPUUFC exception triggered by a floating-point 1288 underflow has occurred in the FPU */ 1289 __IOM uint32_t EVENTS_INEXACT; /*!< (@ 0x00000110) An FPUIXC exception triggered by an inexact floating-point 1290 operation has occurred in the FPU */ 1291 __IOM uint32_t EVENTS_DENORMALINPUT; /*!< (@ 0x00000114) An FPUIDC exception triggered by a denormal floating-point 1292 input has occurred in the FPU */ 1293 __IM uint32_t RESERVED1[122]; 1294 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1295 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1296 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1297 } NRF_FPU_Type; /*!< Size = 780 (0x30c) */ 1298 1299 1300 1301 /* =========================================================================================================================== */ 1302 /* ================ CACHE_S ================ */ 1303 /* =========================================================================================================================== */ 1304 1305 1306 /** 1307 * @brief Cache (CACHE_S) 1308 */ 1309 1310 typedef struct { /*!< (@ 0x50001000) CACHE_S Structure */ 1311 __IM uint32_t RESERVED[256]; 1312 __IOM CACHE_PROFILING_Type PROFILING[2]; /*!< (@ 0x00000400) Unspecified */ 1313 __IM uint32_t RESERVED1[48]; 1314 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable cache. */ 1315 __OM uint32_t INVALIDATE; /*!< (@ 0x00000504) Invalidate the cache. */ 1316 __OM uint32_t ERASE; /*!< (@ 0x00000508) Erase the cache. */ 1317 __IOM uint32_t PROFILINGENABLE; /*!< (@ 0x0000050C) Enable the profiling counters. */ 1318 __OM uint32_t PROFILINGCLEAR; /*!< (@ 0x00000510) Clear the profiling counters. */ 1319 __IOM uint32_t MODE; /*!< (@ 0x00000514) Cache mode. Switching from Cache to Ram mode 1320 causes the RAM to be cleared. Switching 1321 from RAM to Cache mode causes the cache 1322 to be invalidated. */ 1323 __IOM uint32_t DEBUGLOCK; /*!< (@ 0x00000518) Lock debug mode. */ 1324 __IOM uint32_t ERASESTATUS; /*!< (@ 0x0000051C) Cache erase status. */ 1325 __IOM uint32_t WRITELOCK; /*!< (@ 0x00000520) Lock cache updates. Prevents updating of cache 1326 content on cache misses, but will continue 1327 to lookup instruction/data fetches in content 1328 already present in the cache. Ignored in 1329 RAM mode. */ 1330 } NRF_CACHE_Type; /*!< Size = 1316 (0x524) */ 1331 1332 1333 1334 /* =========================================================================================================================== */ 1335 /* ================ SPU_S ================ */ 1336 /* =========================================================================================================================== */ 1337 1338 1339 /** 1340 * @brief System protection unit (SPU_S) 1341 */ 1342 1343 typedef struct { /*!< (@ 0x50003000) SPU_S Structure */ 1344 __IM uint32_t RESERVED[64]; 1345 __IOM uint32_t EVENTS_RAMACCERR; /*!< (@ 0x00000100) A security violation has been detected for the 1346 RAM memory space */ 1347 __IOM uint32_t EVENTS_FLASHACCERR; /*!< (@ 0x00000104) A security violation has been detected for the 1348 flash memory space */ 1349 __IOM uint32_t EVENTS_PERIPHACCERR; /*!< (@ 0x00000108) A security violation has been detected on one 1350 or several peripherals */ 1351 __IM uint32_t RESERVED1[29]; 1352 __IOM uint32_t PUBLISH_RAMACCERR; /*!< (@ 0x00000180) Publish configuration for event RAMACCERR */ 1353 __IOM uint32_t PUBLISH_FLASHACCERR; /*!< (@ 0x00000184) Publish configuration for event FLASHACCERR */ 1354 __IOM uint32_t PUBLISH_PERIPHACCERR; /*!< (@ 0x00000188) Publish configuration for event PERIPHACCERR */ 1355 __IM uint32_t RESERVED2[93]; 1356 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1357 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1358 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1359 __IM uint32_t RESERVED3[61]; 1360 __IM uint32_t CAP; /*!< (@ 0x00000400) Show implemented features for the current device */ 1361 __IOM uint32_t CPULOCK; /*!< (@ 0x00000404) Configure bits to lock down CPU features at runtime */ 1362 __IM uint32_t RESERVED4[14]; 1363 __IOM SPU_EXTDOMAIN_Type EXTDOMAIN[1]; /*!< (@ 0x00000440) Unspecified */ 1364 __IM uint32_t RESERVED5[15]; 1365 __IOM SPU_DPPI_Type DPPI[1]; /*!< (@ 0x00000480) Unspecified */ 1366 __IM uint32_t RESERVED6[14]; 1367 __IOM SPU_GPIOPORT_Type GPIOPORT[2]; /*!< (@ 0x000004C0) Unspecified */ 1368 __IM uint32_t RESERVED7[12]; 1369 __IOM SPU_FLASHNSC_Type FLASHNSC[2]; /*!< (@ 0x00000500) Unspecified */ 1370 __IM uint32_t RESERVED8[12]; 1371 __IOM SPU_RAMNSC_Type RAMNSC[2]; /*!< (@ 0x00000540) Unspecified */ 1372 __IM uint32_t RESERVED9[44]; 1373 __IOM SPU_FLASHREGION_Type FLASHREGION[64]; /*!< (@ 0x00000600) Unspecified */ 1374 __IOM SPU_RAMREGION_Type RAMREGION[64]; /*!< (@ 0x00000700) Unspecified */ 1375 __IOM SPU_PERIPHID_Type PERIPHID[256]; /*!< (@ 0x00000800) Unspecified */ 1376 } NRF_SPU_Type; /*!< Size = 3072 (0xc00) */ 1377 1378 1379 1380 /* =========================================================================================================================== */ 1381 /* ================ OSCILLATORS_NS ================ */ 1382 /* =========================================================================================================================== */ 1383 1384 1385 /** 1386 * @brief Oscillator control 0 (OSCILLATORS_NS) 1387 */ 1388 1389 typedef struct { /*!< (@ 0x40004000) OSCILLATORS_NS Structure */ 1390 __IM uint32_t RESERVED[369]; 1391 __IOM uint32_t XOSC32MCAPS; /*!< (@ 0x000005C4) Programmable capacitance of XC1 and XC2 */ 1392 __IM uint32_t RESERVED1[62]; 1393 __IOM OSCILLATORS_XOSC32KI_Type XOSC32KI; /*!< (@ 0x000006C0) Unspecified */ 1394 } NRF_OSCILLATORS_Type; /*!< Size = 1748 (0x6d4) */ 1395 1396 1397 1398 /* =========================================================================================================================== */ 1399 /* ================ REGULATORS_NS ================ */ 1400 /* =========================================================================================================================== */ 1401 1402 1403 /** 1404 * @brief Voltage regulators 0 (REGULATORS_NS) 1405 */ 1406 1407 typedef struct { /*!< (@ 0x40004000) REGULATORS_NS Structure */ 1408 __IM uint32_t RESERVED[266]; 1409 __IM uint32_t MAINREGSTATUS; /*!< (@ 0x00000428) Main supply status */ 1410 __IM uint32_t RESERVED1[53]; 1411 __OM uint32_t SYSTEMOFF; /*!< (@ 0x00000500) System OFF register */ 1412 __IM uint32_t RESERVED2[3]; 1413 __IOM uint32_t POFCON; /*!< (@ 0x00000510) Power-fail comparator configuration */ 1414 __IM uint32_t RESERVED3[124]; 1415 __IOM REGULATORS_VREGMAIN_Type VREGMAIN; /*!< (@ 0x00000704) Unspecified */ 1416 __IM uint32_t RESERVED4[126]; 1417 __IOM REGULATORS_VREGRADIO_Type VREGRADIO; /*!< (@ 0x00000900) Unspecified */ 1418 __IM uint32_t RESERVED5[126]; 1419 __IOM REGULATORS_VREGH_Type VREGH; /*!< (@ 0x00000B00) Unspecified */ 1420 } NRF_REGULATORS_Type; /*!< Size = 2820 (0xb04) */ 1421 1422 1423 1424 /* =========================================================================================================================== */ 1425 /* ================ CLOCK_NS ================ */ 1426 /* =========================================================================================================================== */ 1427 1428 1429 /** 1430 * @brief Clock management 0 (CLOCK_NS) 1431 */ 1432 1433 typedef struct { /*!< (@ 0x40005000) CLOCK_NS Structure */ 1434 __OM uint32_t TASKS_HFCLKSTART; /*!< (@ 0x00000000) Start HFCLK128M/HFCLK64M source as selected in 1435 HFCLKSRC */ 1436 __OM uint32_t TASKS_HFCLKSTOP; /*!< (@ 0x00000004) Stop HFCLK128M/HFCLK64M source */ 1437 __OM uint32_t TASKS_LFCLKSTART; /*!< (@ 0x00000008) Start LFCLK source as selected in LFCLKSRC */ 1438 __OM uint32_t TASKS_LFCLKSTOP; /*!< (@ 0x0000000C) Stop LFCLK source */ 1439 __OM uint32_t TASKS_CAL; /*!< (@ 0x00000010) Start calibration of LFRC oscillator */ 1440 __IM uint32_t RESERVED; 1441 __OM uint32_t TASKS_HFCLKAUDIOSTART; /*!< (@ 0x00000018) Start HFCLKAUDIO source */ 1442 __OM uint32_t TASKS_HFCLKAUDIOSTOP; /*!< (@ 0x0000001C) Stop HFCLKAUDIO source */ 1443 __OM uint32_t TASKS_HFCLK192MSTART; /*!< (@ 0x00000020) Start HFCLK192M source as selected in HFCLK192MSRC */ 1444 __OM uint32_t TASKS_HFCLK192MSTOP; /*!< (@ 0x00000024) Stop HFCLK192M source */ 1445 __IM uint32_t RESERVED1[22]; 1446 __IOM uint32_t SUBSCRIBE_HFCLKSTART; /*!< (@ 0x00000080) Subscribe configuration for task HFCLKSTART */ 1447 __IOM uint32_t SUBSCRIBE_HFCLKSTOP; /*!< (@ 0x00000084) Subscribe configuration for task HFCLKSTOP */ 1448 __IOM uint32_t SUBSCRIBE_LFCLKSTART; /*!< (@ 0x00000088) Subscribe configuration for task LFCLKSTART */ 1449 __IOM uint32_t SUBSCRIBE_LFCLKSTOP; /*!< (@ 0x0000008C) Subscribe configuration for task LFCLKSTOP */ 1450 __IOM uint32_t SUBSCRIBE_CAL; /*!< (@ 0x00000090) Subscribe configuration for task CAL */ 1451 __IM uint32_t RESERVED2; 1452 __IOM uint32_t SUBSCRIBE_HFCLKAUDIOSTART; /*!< (@ 0x00000098) Subscribe configuration for task HFCLKAUDIOSTART */ 1453 __IOM uint32_t SUBSCRIBE_HFCLKAUDIOSTOP; /*!< (@ 0x0000009C) Subscribe configuration for task HFCLKAUDIOSTOP */ 1454 __IOM uint32_t SUBSCRIBE_HFCLK192MSTART; /*!< (@ 0x000000A0) Subscribe configuration for task HFCLK192MSTART */ 1455 __IOM uint32_t SUBSCRIBE_HFCLK192MSTOP; /*!< (@ 0x000000A4) Subscribe configuration for task HFCLK192MSTOP */ 1456 __IM uint32_t RESERVED3[22]; 1457 __IOM uint32_t EVENTS_HFCLKSTARTED; /*!< (@ 0x00000100) HFCLK128M/HFCLK64M source started */ 1458 __IOM uint32_t EVENTS_LFCLKSTARTED; /*!< (@ 0x00000104) LFCLK source started */ 1459 __IM uint32_t RESERVED4[5]; 1460 __IOM uint32_t EVENTS_DONE; /*!< (@ 0x0000011C) Calibration of LFRC oscillator complete event */ 1461 __IOM uint32_t EVENTS_HFCLKAUDIOSTARTED; /*!< (@ 0x00000120) HFCLKAUDIO source started */ 1462 __IOM uint32_t EVENTS_HFCLK192MSTARTED; /*!< (@ 0x00000124) HFCLK192M source started */ 1463 __IM uint32_t RESERVED5[22]; 1464 __IOM uint32_t PUBLISH_HFCLKSTARTED; /*!< (@ 0x00000180) Publish configuration for event HFCLKSTARTED */ 1465 __IOM uint32_t PUBLISH_LFCLKSTARTED; /*!< (@ 0x00000184) Publish configuration for event LFCLKSTARTED */ 1466 __IM uint32_t RESERVED6[5]; 1467 __IOM uint32_t PUBLISH_DONE; /*!< (@ 0x0000019C) Publish configuration for event DONE */ 1468 __IOM uint32_t PUBLISH_HFCLKAUDIOSTARTED; /*!< (@ 0x000001A0) Publish configuration for event HFCLKAUDIOSTARTED */ 1469 __IOM uint32_t PUBLISH_HFCLK192MSTARTED; /*!< (@ 0x000001A4) Publish configuration for event HFCLK192MSTARTED */ 1470 __IM uint32_t RESERVED7[86]; 1471 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1472 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1473 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1474 __IM uint32_t INTPEND; /*!< (@ 0x0000030C) Pending interrupts */ 1475 __IM uint32_t RESERVED8[62]; 1476 __IM uint32_t HFCLKRUN; /*!< (@ 0x00000408) Status indicating that HFCLKSTART task has been 1477 triggered */ 1478 __IM uint32_t HFCLKSTAT; /*!< (@ 0x0000040C) Status indicating which HFCLK128M/HFCLK64M source 1479 is running This register value in any CLOCK 1480 instance reflects status only due to configurations/action 1481 in that CLOCK instance. */ 1482 __IM uint32_t RESERVED9; 1483 __IM uint32_t LFCLKRUN; /*!< (@ 0x00000414) Status indicating that LFCLKSTART task has been 1484 triggered */ 1485 __IM uint32_t LFCLKSTAT; /*!< (@ 0x00000418) Status indicating which LFCLK source is running 1486 This register value in any CLOCK instance 1487 reflects status only due to configurations/actions 1488 in that CLOCK instance. */ 1489 __IM uint32_t LFCLKSRCCOPY; /*!< (@ 0x0000041C) Copy of LFCLKSRC register, set when LFCLKSTART 1490 task was triggered */ 1491 __IM uint32_t RESERVED10[12]; 1492 __IM uint32_t HFCLKAUDIORUN; /*!< (@ 0x00000450) Status indicating that HFCLKAUDIOSTART task has 1493 been triggered */ 1494 __IM uint32_t HFCLKAUDIOSTAT; /*!< (@ 0x00000454) Status indicating which HFCLKAUDIO source is 1495 running */ 1496 __IM uint32_t HFCLK192MRUN; /*!< (@ 0x00000458) Status indicating that HFCLK192MSTART task has 1497 been triggered */ 1498 __IM uint32_t HFCLK192MSTAT; /*!< (@ 0x0000045C) Status indicating which HFCLK192M source is running */ 1499 __IM uint32_t RESERVED11[45]; 1500 __IOM uint32_t HFCLKSRC; /*!< (@ 0x00000514) Clock source for HFCLK128M/HFCLK64M */ 1501 __IOM uint32_t LFCLKSRC; /*!< (@ 0x00000518) Clock source for LFCLK */ 1502 __IM uint32_t RESERVED12[15]; 1503 __IOM uint32_t HFCLKCTRL; /*!< (@ 0x00000558) HFCLK128M frequency configuration */ 1504 __IOM CLOCK_HFCLKAUDIO_Type HFCLKAUDIO; /*!< (@ 0x0000055C) Unspecified */ 1505 __IM uint32_t RESERVED13[4]; 1506 __IOM uint32_t HFCLKALWAYSRUN; /*!< (@ 0x00000570) Automatic or manual control of HFCLK128M/HFCLK64M */ 1507 __IOM uint32_t LFCLKALWAYSRUN; /*!< (@ 0x00000574) Automatic or manual control of LFCLK */ 1508 __IM uint32_t RESERVED14; 1509 __IOM uint32_t HFCLKAUDIOALWAYSRUN; /*!< (@ 0x0000057C) Automatic or manual control of HFCLKAUDIO */ 1510 __IOM uint32_t HFCLK192MSRC; /*!< (@ 0x00000580) Clock source for HFCLK192M */ 1511 __IOM uint32_t HFCLK192MALWAYSRUN; /*!< (@ 0x00000584) Automatic or manual control of HFCLK192M */ 1512 __IM uint32_t RESERVED15[12]; 1513 __IOM uint32_t HFCLK192MCTRL; /*!< (@ 0x000005B8) HFCLK192M frequency configuration */ 1514 } NRF_CLOCK_Type; /*!< Size = 1468 (0x5bc) */ 1515 1516 1517 1518 /* =========================================================================================================================== */ 1519 /* ================ POWER_NS ================ */ 1520 /* =========================================================================================================================== */ 1521 1522 1523 /** 1524 * @brief Power control 0 (POWER_NS) 1525 */ 1526 1527 typedef struct { /*!< (@ 0x40005000) POWER_NS Structure */ 1528 __IM uint32_t RESERVED[30]; 1529 __OM uint32_t TASKS_CONSTLAT; /*!< (@ 0x00000078) Enable Constant Latency mode */ 1530 __OM uint32_t TASKS_LOWPWR; /*!< (@ 0x0000007C) Enable Low-Power mode (variable latency) */ 1531 __IM uint32_t RESERVED1[30]; 1532 __IOM uint32_t SUBSCRIBE_CONSTLAT; /*!< (@ 0x000000F8) Subscribe configuration for task CONSTLAT */ 1533 __IOM uint32_t SUBSCRIBE_LOWPWR; /*!< (@ 0x000000FC) Subscribe configuration for task LOWPWR */ 1534 __IM uint32_t RESERVED2[2]; 1535 __IOM uint32_t EVENTS_POFWARN; /*!< (@ 0x00000108) Power failure warning */ 1536 __IM uint32_t RESERVED3[2]; 1537 __IOM uint32_t EVENTS_SLEEPENTER; /*!< (@ 0x00000114) CPU entered WFI/WFE sleep */ 1538 __IOM uint32_t EVENTS_SLEEPEXIT; /*!< (@ 0x00000118) CPU exited WFI/WFE sleep */ 1539 __IM uint32_t RESERVED4[27]; 1540 __IOM uint32_t PUBLISH_POFWARN; /*!< (@ 0x00000188) Publish configuration for event POFWARN */ 1541 __IM uint32_t RESERVED5[2]; 1542 __IOM uint32_t PUBLISH_SLEEPENTER; /*!< (@ 0x00000194) Publish configuration for event SLEEPENTER */ 1543 __IOM uint32_t PUBLISH_SLEEPEXIT; /*!< (@ 0x00000198) Publish configuration for event SLEEPEXIT */ 1544 __IM uint32_t RESERVED6[89]; 1545 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1546 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1547 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1548 __IM uint32_t RESERVED7[132]; 1549 __IOM uint32_t GPREGRET[2]; /*!< (@ 0x0000051C) Description collection: General purpose retention 1550 register */ 1551 } NRF_POWER_Type; /*!< Size = 1316 (0x524) */ 1552 1553 1554 1555 /* =========================================================================================================================== */ 1556 /* ================ RESET_NS ================ */ 1557 /* =========================================================================================================================== */ 1558 1559 1560 /** 1561 * @brief Reset control 0 (RESET_NS) 1562 */ 1563 1564 typedef struct { /*!< (@ 0x40005000) RESET_NS Structure */ 1565 __IM uint32_t RESERVED[256]; 1566 __IOM uint32_t RESETREAS; /*!< (@ 0x00000400) Reset reason */ 1567 __IM uint32_t RESERVED1[131]; 1568 __IOM RESET_NETWORK_Type NETWORK; /*!< (@ 0x00000610) ULP network core control */ 1569 } NRF_RESET_Type; /*!< Size = 1560 (0x618) */ 1570 1571 1572 1573 /* =========================================================================================================================== */ 1574 /* ================ CTRLAP_NS ================ */ 1575 /* =========================================================================================================================== */ 1576 1577 1578 /** 1579 * @brief Control access port 0 (CTRLAP_NS) 1580 */ 1581 1582 typedef struct { /*!< (@ 0x40006000) CTRLAP_NS Structure */ 1583 __IM uint32_t RESERVED[256]; 1584 __IOM CTRLAPPERI_MAILBOX_Type MAILBOX; /*!< (@ 0x00000400) Unspecified */ 1585 __IM uint32_t RESERVED1[30]; 1586 __IOM CTRLAPPERI_ERASEPROTECT_Type ERASEPROTECT;/*!< (@ 0x00000500) Unspecified */ 1587 __IM uint32_t RESERVED2[14]; 1588 __IOM CTRLAPPERI_APPROTECT_Type APPROTECT; /*!< (@ 0x00000540) Unspecified */ 1589 __IOM CTRLAPPERI_SECUREAPPROTECT_Type SECUREAPPROTECT;/*!< (@ 0x00000548) Unspecified */ 1590 __IM uint32_t RESERVED3[44]; 1591 __IM uint32_t STATUS; /*!< (@ 0x00000600) Status bits for CTRL-AP peripheral. */ 1592 } NRF_CTRLAPPERI_Type; /*!< Size = 1540 (0x604) */ 1593 1594 1595 1596 /* =========================================================================================================================== */ 1597 /* ================ SPIM0_NS ================ */ 1598 /* =========================================================================================================================== */ 1599 1600 1601 /** 1602 * @brief Serial Peripheral Interface Master with EasyDMA 0 (SPIM0_NS) 1603 */ 1604 1605 typedef struct { /*!< (@ 0x40008000) SPIM0_NS Structure */ 1606 __IM uint32_t RESERVED[4]; 1607 __OM uint32_t TASKS_START; /*!< (@ 0x00000010) Start SPI transaction */ 1608 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000014) Stop SPI transaction */ 1609 __IM uint32_t RESERVED1; 1610 __OM uint32_t TASKS_SUSPEND; /*!< (@ 0x0000001C) Suspend SPI transaction */ 1611 __OM uint32_t TASKS_RESUME; /*!< (@ 0x00000020) Resume SPI transaction */ 1612 __IM uint32_t RESERVED2[27]; 1613 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000090) Subscribe configuration for task START */ 1614 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000094) Subscribe configuration for task STOP */ 1615 __IM uint32_t RESERVED3; 1616 __IOM uint32_t SUBSCRIBE_SUSPEND; /*!< (@ 0x0000009C) Subscribe configuration for task SUSPEND */ 1617 __IOM uint32_t SUBSCRIBE_RESUME; /*!< (@ 0x000000A0) Subscribe configuration for task RESUME */ 1618 __IM uint32_t RESERVED4[24]; 1619 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000104) SPI transaction has stopped */ 1620 __IM uint32_t RESERVED5[2]; 1621 __IOM uint32_t EVENTS_ENDRX; /*!< (@ 0x00000110) End of RXD buffer reached */ 1622 __IM uint32_t RESERVED6; 1623 __IOM uint32_t EVENTS_END; /*!< (@ 0x00000118) End of RXD buffer and TXD buffer reached */ 1624 __IM uint32_t RESERVED7; 1625 __IOM uint32_t EVENTS_ENDTX; /*!< (@ 0x00000120) End of TXD buffer reached */ 1626 __IM uint32_t RESERVED8[10]; 1627 __IOM uint32_t EVENTS_STARTED; /*!< (@ 0x0000014C) Transaction started */ 1628 __IM uint32_t RESERVED9[13]; 1629 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000184) Publish configuration for event STOPPED */ 1630 __IM uint32_t RESERVED10[2]; 1631 __IOM uint32_t PUBLISH_ENDRX; /*!< (@ 0x00000190) Publish configuration for event ENDRX */ 1632 __IM uint32_t RESERVED11; 1633 __IOM uint32_t PUBLISH_END; /*!< (@ 0x00000198) Publish configuration for event END */ 1634 __IM uint32_t RESERVED12; 1635 __IOM uint32_t PUBLISH_ENDTX; /*!< (@ 0x000001A0) Publish configuration for event ENDTX */ 1636 __IM uint32_t RESERVED13[10]; 1637 __IOM uint32_t PUBLISH_STARTED; /*!< (@ 0x000001CC) Publish configuration for event STARTED */ 1638 __IM uint32_t RESERVED14[12]; 1639 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1640 __IM uint32_t RESERVED15[64]; 1641 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1642 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1643 __IM uint32_t RESERVED16[61]; 1644 __IOM uint32_t STALLSTAT; /*!< (@ 0x00000400) Stall status for EasyDMA RAM accesses. The fields 1645 in this register are set to STALL by hardware 1646 whenever a stall occurres and can be cleared 1647 (set to NOSTALL) by the CPU. */ 1648 __IM uint32_t RESERVED17[63]; 1649 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable SPIM */ 1650 __IM uint32_t RESERVED18; 1651 __IOM SPIM_PSEL_Type PSEL; /*!< (@ 0x00000508) Unspecified */ 1652 __IM uint32_t RESERVED19[3]; 1653 __IOM uint32_t FREQUENCY; /*!< (@ 0x00000524) SPI frequency. Accuracy depends on the HFCLK 1654 source selected. */ 1655 __IM uint32_t RESERVED20[3]; 1656 __IOM SPIM_RXD_Type RXD; /*!< (@ 0x00000534) RXD EasyDMA channel */ 1657 __IOM SPIM_TXD_Type TXD; /*!< (@ 0x00000544) TXD EasyDMA channel */ 1658 __IOM uint32_t CONFIG; /*!< (@ 0x00000554) Configuration register */ 1659 __IM uint32_t RESERVED21[2]; 1660 __IOM SPIM_IFTIMING_Type IFTIMING; /*!< (@ 0x00000560) Unspecified */ 1661 __IOM uint32_t CSNPOL; /*!< (@ 0x00000568) Polarity of CSN output */ 1662 __IOM uint32_t PSELDCX; /*!< (@ 0x0000056C) Pin select for DCX signal */ 1663 __IOM uint32_t DCXCNT; /*!< (@ 0x00000570) DCX configuration */ 1664 __IM uint32_t RESERVED22[19]; 1665 __IOM uint32_t ORC; /*!< (@ 0x000005C0) Byte transmitted after TXD.MAXCNT bytes have 1666 been transmitted in the case when RXD.MAXCNT 1667 is greater than TXD.MAXCNT */ 1668 } NRF_SPIM_Type; /*!< Size = 1476 (0x5c4) */ 1669 1670 1671 1672 /* =========================================================================================================================== */ 1673 /* ================ SPIS0_NS ================ */ 1674 /* =========================================================================================================================== */ 1675 1676 1677 /** 1678 * @brief SPI Slave 0 (SPIS0_NS) 1679 */ 1680 1681 typedef struct { /*!< (@ 0x40008000) SPIS0_NS Structure */ 1682 __IM uint32_t RESERVED[9]; 1683 __OM uint32_t TASKS_ACQUIRE; /*!< (@ 0x00000024) Acquire SPI semaphore */ 1684 __OM uint32_t TASKS_RELEASE; /*!< (@ 0x00000028) Release SPI semaphore, enabling the SPI slave 1685 to acquire it */ 1686 __IM uint32_t RESERVED1[30]; 1687 __IOM uint32_t SUBSCRIBE_ACQUIRE; /*!< (@ 0x000000A4) Subscribe configuration for task ACQUIRE */ 1688 __IOM uint32_t SUBSCRIBE_RELEASE; /*!< (@ 0x000000A8) Subscribe configuration for task RELEASE */ 1689 __IM uint32_t RESERVED2[22]; 1690 __IOM uint32_t EVENTS_END; /*!< (@ 0x00000104) Granted transaction completed */ 1691 __IM uint32_t RESERVED3[2]; 1692 __IOM uint32_t EVENTS_ENDRX; /*!< (@ 0x00000110) End of RXD buffer reached */ 1693 __IM uint32_t RESERVED4[5]; 1694 __IOM uint32_t EVENTS_ACQUIRED; /*!< (@ 0x00000128) Semaphore acquired */ 1695 __IM uint32_t RESERVED5[22]; 1696 __IOM uint32_t PUBLISH_END; /*!< (@ 0x00000184) Publish configuration for event END */ 1697 __IM uint32_t RESERVED6[2]; 1698 __IOM uint32_t PUBLISH_ENDRX; /*!< (@ 0x00000190) Publish configuration for event ENDRX */ 1699 __IM uint32_t RESERVED7[5]; 1700 __IOM uint32_t PUBLISH_ACQUIRED; /*!< (@ 0x000001A8) Publish configuration for event ACQUIRED */ 1701 __IM uint32_t RESERVED8[21]; 1702 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1703 __IM uint32_t RESERVED9[64]; 1704 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1705 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1706 __IM uint32_t RESERVED10[61]; 1707 __IM uint32_t SEMSTAT; /*!< (@ 0x00000400) Semaphore status register */ 1708 __IM uint32_t RESERVED11[15]; 1709 __IOM uint32_t STATUS; /*!< (@ 0x00000440) Status from last transaction */ 1710 __IM uint32_t RESERVED12[47]; 1711 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable SPI slave */ 1712 __IM uint32_t RESERVED13; 1713 __IOM SPIS_PSEL_Type PSEL; /*!< (@ 0x00000508) Unspecified */ 1714 __IM uint32_t RESERVED14[7]; 1715 __IOM SPIS_RXD_Type RXD; /*!< (@ 0x00000534) Unspecified */ 1716 __IOM SPIS_TXD_Type TXD; /*!< (@ 0x00000544) Unspecified */ 1717 __IOM uint32_t CONFIG; /*!< (@ 0x00000554) Configuration register */ 1718 __IM uint32_t RESERVED15; 1719 __IOM uint32_t DEF; /*!< (@ 0x0000055C) Default character. Character clocked out in case 1720 of an ignored transaction. */ 1721 __IM uint32_t RESERVED16[24]; 1722 __IOM uint32_t ORC; /*!< (@ 0x000005C0) Over-read character */ 1723 } NRF_SPIS_Type; /*!< Size = 1476 (0x5c4) */ 1724 1725 1726 1727 /* =========================================================================================================================== */ 1728 /* ================ TWIM0_NS ================ */ 1729 /* =========================================================================================================================== */ 1730 1731 1732 /** 1733 * @brief I2C compatible Two-Wire Master Interface with EasyDMA 0 (TWIM0_NS) 1734 */ 1735 1736 typedef struct { /*!< (@ 0x40008000) TWIM0_NS Structure */ 1737 __OM uint32_t TASKS_STARTRX; /*!< (@ 0x00000000) Start TWI receive sequence */ 1738 __IM uint32_t RESERVED; 1739 __OM uint32_t TASKS_STARTTX; /*!< (@ 0x00000008) Start TWI transmit sequence */ 1740 __IM uint32_t RESERVED1[2]; 1741 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000014) Stop TWI transaction. Must be issued while the 1742 TWI master is not suspended. */ 1743 __IM uint32_t RESERVED2; 1744 __OM uint32_t TASKS_SUSPEND; /*!< (@ 0x0000001C) Suspend TWI transaction */ 1745 __OM uint32_t TASKS_RESUME; /*!< (@ 0x00000020) Resume TWI transaction */ 1746 __IM uint32_t RESERVED3[23]; 1747 __IOM uint32_t SUBSCRIBE_STARTRX; /*!< (@ 0x00000080) Subscribe configuration for task STARTRX */ 1748 __IM uint32_t RESERVED4; 1749 __IOM uint32_t SUBSCRIBE_STARTTX; /*!< (@ 0x00000088) Subscribe configuration for task STARTTX */ 1750 __IM uint32_t RESERVED5[2]; 1751 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000094) Subscribe configuration for task STOP */ 1752 __IM uint32_t RESERVED6; 1753 __IOM uint32_t SUBSCRIBE_SUSPEND; /*!< (@ 0x0000009C) Subscribe configuration for task SUSPEND */ 1754 __IOM uint32_t SUBSCRIBE_RESUME; /*!< (@ 0x000000A0) Subscribe configuration for task RESUME */ 1755 __IM uint32_t RESERVED7[24]; 1756 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000104) TWI stopped */ 1757 __IM uint32_t RESERVED8[7]; 1758 __IOM uint32_t EVENTS_ERROR; /*!< (@ 0x00000124) TWI error */ 1759 __IM uint32_t RESERVED9[8]; 1760 __IOM uint32_t EVENTS_SUSPENDED; /*!< (@ 0x00000148) SUSPEND task has been issued, TWI traffic is 1761 now suspended. */ 1762 __IOM uint32_t EVENTS_RXSTARTED; /*!< (@ 0x0000014C) Receive sequence started */ 1763 __IOM uint32_t EVENTS_TXSTARTED; /*!< (@ 0x00000150) Transmit sequence started */ 1764 __IM uint32_t RESERVED10[2]; 1765 __IOM uint32_t EVENTS_LASTRX; /*!< (@ 0x0000015C) Byte boundary, starting to receive the last byte */ 1766 __IOM uint32_t EVENTS_LASTTX; /*!< (@ 0x00000160) Byte boundary, starting to transmit the last 1767 byte */ 1768 __IM uint32_t RESERVED11[8]; 1769 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000184) Publish configuration for event STOPPED */ 1770 __IM uint32_t RESERVED12[7]; 1771 __IOM uint32_t PUBLISH_ERROR; /*!< (@ 0x000001A4) Publish configuration for event ERROR */ 1772 __IM uint32_t RESERVED13[8]; 1773 __IOM uint32_t PUBLISH_SUSPENDED; /*!< (@ 0x000001C8) Publish configuration for event SUSPENDED */ 1774 __IOM uint32_t PUBLISH_RXSTARTED; /*!< (@ 0x000001CC) Publish configuration for event RXSTARTED */ 1775 __IOM uint32_t PUBLISH_TXSTARTED; /*!< (@ 0x000001D0) Publish configuration for event TXSTARTED */ 1776 __IM uint32_t RESERVED14[2]; 1777 __IOM uint32_t PUBLISH_LASTRX; /*!< (@ 0x000001DC) Publish configuration for event LASTRX */ 1778 __IOM uint32_t PUBLISH_LASTTX; /*!< (@ 0x000001E0) Publish configuration for event LASTTX */ 1779 __IM uint32_t RESERVED15[7]; 1780 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1781 __IM uint32_t RESERVED16[63]; 1782 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1783 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1784 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1785 __IM uint32_t RESERVED17[110]; 1786 __IOM uint32_t ERRORSRC; /*!< (@ 0x000004C4) Error source */ 1787 __IM uint32_t RESERVED18[14]; 1788 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable TWIM */ 1789 __IM uint32_t RESERVED19; 1790 __IOM TWIM_PSEL_Type PSEL; /*!< (@ 0x00000508) Unspecified */ 1791 __IM uint32_t RESERVED20[5]; 1792 __IOM uint32_t FREQUENCY; /*!< (@ 0x00000524) TWI frequency. Accuracy depends on the HFCLK 1793 source selected. */ 1794 __IM uint32_t RESERVED21[3]; 1795 __IOM TWIM_RXD_Type RXD; /*!< (@ 0x00000534) RXD EasyDMA channel */ 1796 __IOM TWIM_TXD_Type TXD; /*!< (@ 0x00000544) TXD EasyDMA channel */ 1797 __IM uint32_t RESERVED22[13]; 1798 __IOM uint32_t ADDRESS; /*!< (@ 0x00000588) Address used in the TWI transfer */ 1799 } NRF_TWIM_Type; /*!< Size = 1420 (0x58c) */ 1800 1801 1802 1803 /* =========================================================================================================================== */ 1804 /* ================ TWIS0_NS ================ */ 1805 /* =========================================================================================================================== */ 1806 1807 1808 /** 1809 * @brief I2C compatible Two-Wire Slave Interface with EasyDMA 0 (TWIS0_NS) 1810 */ 1811 1812 typedef struct { /*!< (@ 0x40008000) TWIS0_NS Structure */ 1813 __IM uint32_t RESERVED[5]; 1814 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000014) Stop TWI transaction */ 1815 __IM uint32_t RESERVED1; 1816 __OM uint32_t TASKS_SUSPEND; /*!< (@ 0x0000001C) Suspend TWI transaction */ 1817 __OM uint32_t TASKS_RESUME; /*!< (@ 0x00000020) Resume TWI transaction */ 1818 __IM uint32_t RESERVED2[3]; 1819 __OM uint32_t TASKS_PREPARERX; /*!< (@ 0x00000030) Prepare the TWI slave to respond to a write command */ 1820 __OM uint32_t TASKS_PREPARETX; /*!< (@ 0x00000034) Prepare the TWI slave to respond to a read command */ 1821 __IM uint32_t RESERVED3[23]; 1822 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000094) Subscribe configuration for task STOP */ 1823 __IM uint32_t RESERVED4; 1824 __IOM uint32_t SUBSCRIBE_SUSPEND; /*!< (@ 0x0000009C) Subscribe configuration for task SUSPEND */ 1825 __IOM uint32_t SUBSCRIBE_RESUME; /*!< (@ 0x000000A0) Subscribe configuration for task RESUME */ 1826 __IM uint32_t RESERVED5[3]; 1827 __IOM uint32_t SUBSCRIBE_PREPARERX; /*!< (@ 0x000000B0) Subscribe configuration for task PREPARERX */ 1828 __IOM uint32_t SUBSCRIBE_PREPARETX; /*!< (@ 0x000000B4) Subscribe configuration for task PREPARETX */ 1829 __IM uint32_t RESERVED6[19]; 1830 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000104) TWI stopped */ 1831 __IM uint32_t RESERVED7[7]; 1832 __IOM uint32_t EVENTS_ERROR; /*!< (@ 0x00000124) TWI error */ 1833 __IM uint32_t RESERVED8[9]; 1834 __IOM uint32_t EVENTS_RXSTARTED; /*!< (@ 0x0000014C) Receive sequence started */ 1835 __IOM uint32_t EVENTS_TXSTARTED; /*!< (@ 0x00000150) Transmit sequence started */ 1836 __IM uint32_t RESERVED9[4]; 1837 __IOM uint32_t EVENTS_WRITE; /*!< (@ 0x00000164) Write command received */ 1838 __IOM uint32_t EVENTS_READ; /*!< (@ 0x00000168) Read command received */ 1839 __IM uint32_t RESERVED10[6]; 1840 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000184) Publish configuration for event STOPPED */ 1841 __IM uint32_t RESERVED11[7]; 1842 __IOM uint32_t PUBLISH_ERROR; /*!< (@ 0x000001A4) Publish configuration for event ERROR */ 1843 __IM uint32_t RESERVED12[9]; 1844 __IOM uint32_t PUBLISH_RXSTARTED; /*!< (@ 0x000001CC) Publish configuration for event RXSTARTED */ 1845 __IOM uint32_t PUBLISH_TXSTARTED; /*!< (@ 0x000001D0) Publish configuration for event TXSTARTED */ 1846 __IM uint32_t RESERVED13[4]; 1847 __IOM uint32_t PUBLISH_WRITE; /*!< (@ 0x000001E4) Publish configuration for event WRITE */ 1848 __IOM uint32_t PUBLISH_READ; /*!< (@ 0x000001E8) Publish configuration for event READ */ 1849 __IM uint32_t RESERVED14[5]; 1850 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1851 __IM uint32_t RESERVED15[63]; 1852 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1853 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1854 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1855 __IM uint32_t RESERVED16[113]; 1856 __IOM uint32_t ERRORSRC; /*!< (@ 0x000004D0) Error source */ 1857 __IM uint32_t MATCH; /*!< (@ 0x000004D4) Status register indicating which address had 1858 a match */ 1859 __IM uint32_t RESERVED17[10]; 1860 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable TWIS */ 1861 __IM uint32_t RESERVED18; 1862 __IOM TWIS_PSEL_Type PSEL; /*!< (@ 0x00000508) Unspecified */ 1863 __IM uint32_t RESERVED19[9]; 1864 __IOM TWIS_RXD_Type RXD; /*!< (@ 0x00000534) RXD EasyDMA channel */ 1865 __IOM TWIS_TXD_Type TXD; /*!< (@ 0x00000544) TXD EasyDMA channel */ 1866 __IM uint32_t RESERVED20[13]; 1867 __IOM uint32_t ADDRESS[2]; /*!< (@ 0x00000588) Description collection: TWI slave address n */ 1868 __IM uint32_t RESERVED21; 1869 __IOM uint32_t CONFIG; /*!< (@ 0x00000594) Configuration register for the address match 1870 mechanism */ 1871 __IM uint32_t RESERVED22[10]; 1872 __IOM uint32_t ORC; /*!< (@ 0x000005C0) Over-read character. Character sent out in case 1873 of an over-read of the transmit buffer. */ 1874 } NRF_TWIS_Type; /*!< Size = 1476 (0x5c4) */ 1875 1876 1877 1878 /* =========================================================================================================================== */ 1879 /* ================ UARTE0_NS ================ */ 1880 /* =========================================================================================================================== */ 1881 1882 1883 /** 1884 * @brief UART with EasyDMA 0 (UARTE0_NS) 1885 */ 1886 1887 typedef struct { /*!< (@ 0x40008000) UARTE0_NS Structure */ 1888 __OM uint32_t TASKS_STARTRX; /*!< (@ 0x00000000) Start UART receiver */ 1889 __OM uint32_t TASKS_STOPRX; /*!< (@ 0x00000004) Stop UART receiver */ 1890 __OM uint32_t TASKS_STARTTX; /*!< (@ 0x00000008) Start UART transmitter */ 1891 __OM uint32_t TASKS_STOPTX; /*!< (@ 0x0000000C) Stop UART transmitter */ 1892 __IM uint32_t RESERVED[7]; 1893 __OM uint32_t TASKS_FLUSHRX; /*!< (@ 0x0000002C) Flush RX FIFO into RX buffer */ 1894 __IM uint32_t RESERVED1[20]; 1895 __IOM uint32_t SUBSCRIBE_STARTRX; /*!< (@ 0x00000080) Subscribe configuration for task STARTRX */ 1896 __IOM uint32_t SUBSCRIBE_STOPRX; /*!< (@ 0x00000084) Subscribe configuration for task STOPRX */ 1897 __IOM uint32_t SUBSCRIBE_STARTTX; /*!< (@ 0x00000088) Subscribe configuration for task STARTTX */ 1898 __IOM uint32_t SUBSCRIBE_STOPTX; /*!< (@ 0x0000008C) Subscribe configuration for task STOPTX */ 1899 __IM uint32_t RESERVED2[7]; 1900 __IOM uint32_t SUBSCRIBE_FLUSHRX; /*!< (@ 0x000000AC) Subscribe configuration for task FLUSHRX */ 1901 __IM uint32_t RESERVED3[20]; 1902 __IOM uint32_t EVENTS_CTS; /*!< (@ 0x00000100) CTS is activated (set low). Clear To Send. */ 1903 __IOM uint32_t EVENTS_NCTS; /*!< (@ 0x00000104) CTS is deactivated (set high). Not Clear To Send. */ 1904 __IOM uint32_t EVENTS_RXDRDY; /*!< (@ 0x00000108) Data received in RXD (but potentially not yet 1905 transferred to Data RAM) */ 1906 __IM uint32_t RESERVED4; 1907 __IOM uint32_t EVENTS_ENDRX; /*!< (@ 0x00000110) Receive buffer is filled up */ 1908 __IM uint32_t RESERVED5[2]; 1909 __IOM uint32_t EVENTS_TXDRDY; /*!< (@ 0x0000011C) Data sent from TXD */ 1910 __IOM uint32_t EVENTS_ENDTX; /*!< (@ 0x00000120) Last TX byte transmitted */ 1911 __IOM uint32_t EVENTS_ERROR; /*!< (@ 0x00000124) Error detected */ 1912 __IM uint32_t RESERVED6[7]; 1913 __IOM uint32_t EVENTS_RXTO; /*!< (@ 0x00000144) Receiver timeout */ 1914 __IM uint32_t RESERVED7; 1915 __IOM uint32_t EVENTS_RXSTARTED; /*!< (@ 0x0000014C) UART receiver has started */ 1916 __IOM uint32_t EVENTS_TXSTARTED; /*!< (@ 0x00000150) UART transmitter has started */ 1917 __IM uint32_t RESERVED8; 1918 __IOM uint32_t EVENTS_TXSTOPPED; /*!< (@ 0x00000158) Transmitter stopped */ 1919 __IM uint32_t RESERVED9[9]; 1920 __IOM uint32_t PUBLISH_CTS; /*!< (@ 0x00000180) Publish configuration for event CTS */ 1921 __IOM uint32_t PUBLISH_NCTS; /*!< (@ 0x00000184) Publish configuration for event NCTS */ 1922 __IOM uint32_t PUBLISH_RXDRDY; /*!< (@ 0x00000188) Publish configuration for event RXDRDY */ 1923 __IM uint32_t RESERVED10; 1924 __IOM uint32_t PUBLISH_ENDRX; /*!< (@ 0x00000190) Publish configuration for event ENDRX */ 1925 __IM uint32_t RESERVED11[2]; 1926 __IOM uint32_t PUBLISH_TXDRDY; /*!< (@ 0x0000019C) Publish configuration for event TXDRDY */ 1927 __IOM uint32_t PUBLISH_ENDTX; /*!< (@ 0x000001A0) Publish configuration for event ENDTX */ 1928 __IOM uint32_t PUBLISH_ERROR; /*!< (@ 0x000001A4) Publish configuration for event ERROR */ 1929 __IM uint32_t RESERVED12[7]; 1930 __IOM uint32_t PUBLISH_RXTO; /*!< (@ 0x000001C4) Publish configuration for event RXTO */ 1931 __IM uint32_t RESERVED13; 1932 __IOM uint32_t PUBLISH_RXSTARTED; /*!< (@ 0x000001CC) Publish configuration for event RXSTARTED */ 1933 __IOM uint32_t PUBLISH_TXSTARTED; /*!< (@ 0x000001D0) Publish configuration for event TXSTARTED */ 1934 __IM uint32_t RESERVED14; 1935 __IOM uint32_t PUBLISH_TXSTOPPED; /*!< (@ 0x000001D8) Publish configuration for event TXSTOPPED */ 1936 __IM uint32_t RESERVED15[9]; 1937 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1938 __IM uint32_t RESERVED16[63]; 1939 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1940 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1941 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1942 __IM uint32_t RESERVED17[93]; 1943 __IOM uint32_t ERRORSRC; /*!< (@ 0x00000480) Error source */ 1944 __IM uint32_t RESERVED18[31]; 1945 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable UART */ 1946 __IM uint32_t RESERVED19; 1947 __IOM UARTE_PSEL_Type PSEL; /*!< (@ 0x00000508) Unspecified */ 1948 __IM uint32_t RESERVED20[3]; 1949 __IOM uint32_t BAUDRATE; /*!< (@ 0x00000524) Baud rate. Accuracy depends on the HFCLK source 1950 selected. */ 1951 __IM uint32_t RESERVED21[3]; 1952 __IOM UARTE_RXD_Type RXD; /*!< (@ 0x00000534) RXD EasyDMA channel */ 1953 __IM uint32_t RESERVED22; 1954 __IOM UARTE_TXD_Type TXD; /*!< (@ 0x00000544) TXD EasyDMA channel */ 1955 __IM uint32_t RESERVED23[7]; 1956 __IOM uint32_t CONFIG; /*!< (@ 0x0000056C) Configuration of parity and hardware flow control */ 1957 } NRF_UARTE_Type; /*!< Size = 1392 (0x570) */ 1958 1959 1960 1961 /* =========================================================================================================================== */ 1962 /* ================ GPIOTE0_S ================ */ 1963 /* =========================================================================================================================== */ 1964 1965 1966 /** 1967 * @brief GPIO Tasks and Events 0 (GPIOTE0_S) 1968 */ 1969 1970 typedef struct { /*!< (@ 0x5000D000) GPIOTE0_S Structure */ 1971 __OM uint32_t TASKS_OUT[8]; /*!< (@ 0x00000000) Description collection: Task for writing to pin 1972 specified in CONFIG[n].PSEL. Action on pin 1973 is configured in CONFIG[n].POLARITY. */ 1974 __IM uint32_t RESERVED[4]; 1975 __OM uint32_t TASKS_SET[8]; /*!< (@ 0x00000030) Description collection: Task for writing to pin 1976 specified in CONFIG[n].PSEL. Action on pin 1977 is to set it high. */ 1978 __IM uint32_t RESERVED1[4]; 1979 __OM uint32_t TASKS_CLR[8]; /*!< (@ 0x00000060) Description collection: Task for writing to pin 1980 specified in CONFIG[n].PSEL. Action on pin 1981 is to set it low. */ 1982 __IOM uint32_t SUBSCRIBE_OUT[8]; /*!< (@ 0x00000080) Description collection: Subscribe configuration 1983 for task OUT[n] */ 1984 __IM uint32_t RESERVED2[4]; 1985 __IOM uint32_t SUBSCRIBE_SET[8]; /*!< (@ 0x000000B0) Description collection: Subscribe configuration 1986 for task SET[n] */ 1987 __IM uint32_t RESERVED3[4]; 1988 __IOM uint32_t SUBSCRIBE_CLR[8]; /*!< (@ 0x000000E0) Description collection: Subscribe configuration 1989 for task CLR[n] */ 1990 __IOM uint32_t EVENTS_IN[8]; /*!< (@ 0x00000100) Description collection: Event generated from 1991 pin specified in CONFIG[n].PSEL */ 1992 __IM uint32_t RESERVED4[23]; 1993 __IOM uint32_t EVENTS_PORT; /*!< (@ 0x0000017C) Event generated from multiple input GPIO pins 1994 with SENSE mechanism enabled */ 1995 __IOM uint32_t PUBLISH_IN[8]; /*!< (@ 0x00000180) Description collection: Publish configuration 1996 for event IN[n] */ 1997 __IM uint32_t RESERVED5[23]; 1998 __IOM uint32_t PUBLISH_PORT; /*!< (@ 0x000001FC) Publish configuration for event PORT */ 1999 __IM uint32_t RESERVED6[65]; 2000 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2001 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2002 __IM uint32_t RESERVED7[126]; 2003 __IOM uint32_t LATENCY; /*!< (@ 0x00000504) Latency selection for Event mode (MODE=Event) 2004 with rising or falling edge detection on 2005 the pin. */ 2006 __IM uint32_t RESERVED8[2]; 2007 __IOM uint32_t CONFIG[8]; /*!< (@ 0x00000510) Description collection: Configuration for OUT[n], 2008 SET[n], and CLR[n] tasks and IN[n] event */ 2009 } NRF_GPIOTE_Type; /*!< Size = 1328 (0x530) */ 2010 2011 2012 2013 /* =========================================================================================================================== */ 2014 /* ================ SAADC_NS ================ */ 2015 /* =========================================================================================================================== */ 2016 2017 2018 /** 2019 * @brief Analog to Digital Converter 0 (SAADC_NS) 2020 */ 2021 2022 typedef struct { /*!< (@ 0x4000E000) SAADC_NS Structure */ 2023 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Start the ADC and prepare the result buffer in 2024 RAM */ 2025 __OM uint32_t TASKS_SAMPLE; /*!< (@ 0x00000004) Take one ADC sample, if scan is enabled all channels 2026 are sampled */ 2027 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000008) Stop the ADC and terminate any ongoing conversion */ 2028 __OM uint32_t TASKS_CALIBRATEOFFSET; /*!< (@ 0x0000000C) Starts offset auto-calibration */ 2029 __IM uint32_t RESERVED[28]; 2030 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 2031 __IOM uint32_t SUBSCRIBE_SAMPLE; /*!< (@ 0x00000084) Subscribe configuration for task SAMPLE */ 2032 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000088) Subscribe configuration for task STOP */ 2033 __IOM uint32_t SUBSCRIBE_CALIBRATEOFFSET; /*!< (@ 0x0000008C) Subscribe configuration for task CALIBRATEOFFSET */ 2034 __IM uint32_t RESERVED1[28]; 2035 __IOM uint32_t EVENTS_STARTED; /*!< (@ 0x00000100) The ADC has started */ 2036 __IOM uint32_t EVENTS_END; /*!< (@ 0x00000104) The ADC has filled up the Result buffer */ 2037 __IOM uint32_t EVENTS_DONE; /*!< (@ 0x00000108) A conversion task has been completed. Depending 2038 on the mode, multiple conversions might 2039 be needed for a result to be transferred 2040 to RAM. */ 2041 __IOM uint32_t EVENTS_RESULTDONE; /*!< (@ 0x0000010C) A result is ready to get transferred to RAM */ 2042 __IOM uint32_t EVENTS_CALIBRATEDONE; /*!< (@ 0x00000110) Calibration is complete */ 2043 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000114) The ADC has stopped */ 2044 __IOM SAADC_EVENTS_CH_Type EVENTS_CH[8]; /*!< (@ 0x00000118) Peripheral events. */ 2045 __IM uint32_t RESERVED2[10]; 2046 __IOM uint32_t PUBLISH_STARTED; /*!< (@ 0x00000180) Publish configuration for event STARTED */ 2047 __IOM uint32_t PUBLISH_END; /*!< (@ 0x00000184) Publish configuration for event END */ 2048 __IOM uint32_t PUBLISH_DONE; /*!< (@ 0x00000188) Publish configuration for event DONE */ 2049 __IOM uint32_t PUBLISH_RESULTDONE; /*!< (@ 0x0000018C) Publish configuration for event RESULTDONE */ 2050 __IOM uint32_t PUBLISH_CALIBRATEDONE; /*!< (@ 0x00000190) Publish configuration for event CALIBRATEDONE */ 2051 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000194) Publish configuration for event STOPPED */ 2052 __IOM SAADC_PUBLISH_CH_Type PUBLISH_CH[8]; /*!< (@ 0x00000198) Publish configuration for events */ 2053 __IM uint32_t RESERVED3[74]; 2054 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 2055 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2056 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2057 __IM uint32_t RESERVED4[61]; 2058 __IM uint32_t STATUS; /*!< (@ 0x00000400) Status */ 2059 __IM uint32_t RESERVED5[63]; 2060 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable or disable ADC */ 2061 __IM uint32_t RESERVED6[3]; 2062 __IOM SAADC_CH_Type CH[8]; /*!< (@ 0x00000510) Unspecified */ 2063 __IM uint32_t RESERVED7[24]; 2064 __IOM uint32_t RESOLUTION; /*!< (@ 0x000005F0) Resolution configuration */ 2065 __IOM uint32_t OVERSAMPLE; /*!< (@ 0x000005F4) Oversampling configuration. OVERSAMPLE should 2066 not be combined with SCAN. The RESOLUTION 2067 is applied before averaging, thus for high 2068 OVERSAMPLE a higher RESOLUTION should be 2069 used. */ 2070 __IOM uint32_t SAMPLERATE; /*!< (@ 0x000005F8) Controls normal or continuous sample rate */ 2071 __IM uint32_t RESERVED8[12]; 2072 __IOM SAADC_RESULT_Type RESULT; /*!< (@ 0x0000062C) RESULT EasyDMA channel */ 2073 } NRF_SAADC_Type; /*!< Size = 1592 (0x638) */ 2074 2075 2076 2077 /* =========================================================================================================================== */ 2078 /* ================ TIMER0_NS ================ */ 2079 /* =========================================================================================================================== */ 2080 2081 2082 /** 2083 * @brief Timer/Counter 0 (TIMER0_NS) 2084 */ 2085 2086 typedef struct { /*!< (@ 0x4000F000) TIMER0_NS Structure */ 2087 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Start Timer */ 2088 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stop Timer */ 2089 __OM uint32_t TASKS_COUNT; /*!< (@ 0x00000008) Increment Timer (Counter mode only) */ 2090 __OM uint32_t TASKS_CLEAR; /*!< (@ 0x0000000C) Clear time */ 2091 __OM uint32_t TASKS_SHUTDOWN; /*!< (@ 0x00000010) Deprecated register - Shut down timer */ 2092 __IM uint32_t RESERVED[11]; 2093 __OM uint32_t TASKS_CAPTURE[6]; /*!< (@ 0x00000040) Description collection: Capture Timer value to 2094 CC[n] register */ 2095 __IM uint32_t RESERVED1[10]; 2096 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 2097 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 2098 __IOM uint32_t SUBSCRIBE_COUNT; /*!< (@ 0x00000088) Subscribe configuration for task COUNT */ 2099 __IOM uint32_t SUBSCRIBE_CLEAR; /*!< (@ 0x0000008C) Subscribe configuration for task CLEAR */ 2100 __IOM uint32_t SUBSCRIBE_SHUTDOWN; /*!< (@ 0x00000090) Deprecated register - Subscribe configuration 2101 for task SHUTDOWN */ 2102 __IM uint32_t RESERVED2[11]; 2103 __IOM uint32_t SUBSCRIBE_CAPTURE[6]; /*!< (@ 0x000000C0) Description collection: Subscribe configuration 2104 for task CAPTURE[n] */ 2105 __IM uint32_t RESERVED3[26]; 2106 __IOM uint32_t EVENTS_COMPARE[6]; /*!< (@ 0x00000140) Description collection: Compare event on CC[n] 2107 match */ 2108 __IM uint32_t RESERVED4[26]; 2109 __IOM uint32_t PUBLISH_COMPARE[6]; /*!< (@ 0x000001C0) Description collection: Publish configuration 2110 for event COMPARE[n] */ 2111 __IM uint32_t RESERVED5[10]; 2112 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 2113 __IM uint32_t RESERVED6[63]; 2114 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 2115 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2116 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2117 __IM uint32_t RESERVED7[126]; 2118 __IOM uint32_t MODE; /*!< (@ 0x00000504) Timer mode selection */ 2119 __IOM uint32_t BITMODE; /*!< (@ 0x00000508) Configure the number of bits used by the TIMER */ 2120 __IM uint32_t RESERVED8; 2121 __IOM uint32_t PRESCALER; /*!< (@ 0x00000510) Timer prescaler register */ 2122 __IM uint32_t RESERVED9[11]; 2123 __IOM uint32_t CC[6]; /*!< (@ 0x00000540) Description collection: Capture/Compare register 2124 n */ 2125 __IM uint32_t RESERVED10[10]; 2126 __IOM uint32_t ONESHOTEN[6]; /*!< (@ 0x00000580) Description collection: Enable one-shot operation 2127 for Capture/Compare channel n */ 2128 } NRF_TIMER_Type; /*!< Size = 1432 (0x598) */ 2129 2130 2131 2132 /* =========================================================================================================================== */ 2133 /* ================ RTC0_NS ================ */ 2134 /* =========================================================================================================================== */ 2135 2136 2137 /** 2138 * @brief Real-time counter 0 (RTC0_NS) 2139 */ 2140 2141 typedef struct { /*!< (@ 0x40014000) RTC0_NS Structure */ 2142 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Start RTC counter */ 2143 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stop RTC counter */ 2144 __OM uint32_t TASKS_CLEAR; /*!< (@ 0x00000008) Clear RTC counter */ 2145 __OM uint32_t TASKS_TRIGOVRFLW; /*!< (@ 0x0000000C) Set counter to 0xFFFFF0 */ 2146 __IM uint32_t RESERVED[12]; 2147 __OM uint32_t TASKS_CAPTURE[4]; /*!< (@ 0x00000040) Description collection: Capture RTC counter to 2148 CC[n] register */ 2149 __IM uint32_t RESERVED1[12]; 2150 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 2151 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 2152 __IOM uint32_t SUBSCRIBE_CLEAR; /*!< (@ 0x00000088) Subscribe configuration for task CLEAR */ 2153 __IOM uint32_t SUBSCRIBE_TRIGOVRFLW; /*!< (@ 0x0000008C) Subscribe configuration for task TRIGOVRFLW */ 2154 __IM uint32_t RESERVED2[12]; 2155 __IOM uint32_t SUBSCRIBE_CAPTURE[4]; /*!< (@ 0x000000C0) Description collection: Subscribe configuration 2156 for task CAPTURE[n] */ 2157 __IM uint32_t RESERVED3[12]; 2158 __IOM uint32_t EVENTS_TICK; /*!< (@ 0x00000100) Event on counter increment */ 2159 __IOM uint32_t EVENTS_OVRFLW; /*!< (@ 0x00000104) Event on counter overflow */ 2160 __IM uint32_t RESERVED4[14]; 2161 __IOM uint32_t EVENTS_COMPARE[4]; /*!< (@ 0x00000140) Description collection: Compare event on CC[n] 2162 match */ 2163 __IM uint32_t RESERVED5[12]; 2164 __IOM uint32_t PUBLISH_TICK; /*!< (@ 0x00000180) Publish configuration for event TICK */ 2165 __IOM uint32_t PUBLISH_OVRFLW; /*!< (@ 0x00000184) Publish configuration for event OVRFLW */ 2166 __IM uint32_t RESERVED6[14]; 2167 __IOM uint32_t PUBLISH_COMPARE[4]; /*!< (@ 0x000001C0) Description collection: Publish configuration 2168 for event COMPARE[n] */ 2169 __IM uint32_t RESERVED7[12]; 2170 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 2171 __IM uint32_t RESERVED8[64]; 2172 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2173 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2174 __IM uint32_t RESERVED9[13]; 2175 __IOM uint32_t EVTEN; /*!< (@ 0x00000340) Enable or disable event routing */ 2176 __IOM uint32_t EVTENSET; /*!< (@ 0x00000344) Enable event routing */ 2177 __IOM uint32_t EVTENCLR; /*!< (@ 0x00000348) Disable event routing */ 2178 __IM uint32_t RESERVED10[110]; 2179 __IM uint32_t COUNTER; /*!< (@ 0x00000504) Current counter value */ 2180 __IOM uint32_t PRESCALER; /*!< (@ 0x00000508) 12-bit prescaler for counter frequency (32768 2181 / (PRESCALER + 1)). Must be written when 2182 RTC is stopped. */ 2183 __IM uint32_t RESERVED11[13]; 2184 __IOM uint32_t CC[4]; /*!< (@ 0x00000540) Description collection: Compare register n */ 2185 } NRF_RTC_Type; /*!< Size = 1360 (0x550) */ 2186 2187 2188 2189 /* =========================================================================================================================== */ 2190 /* ================ DPPIC_NS ================ */ 2191 /* =========================================================================================================================== */ 2192 2193 2194 /** 2195 * @brief Distributed programmable peripheral interconnect controller 0 (DPPIC_NS) 2196 */ 2197 2198 typedef struct { /*!< (@ 0x40017000) DPPIC_NS Structure */ 2199 __OM DPPIC_TASKS_CHG_Type TASKS_CHG[6]; /*!< (@ 0x00000000) Channel group tasks */ 2200 __IM uint32_t RESERVED[20]; 2201 __IOM DPPIC_SUBSCRIBE_CHG_Type SUBSCRIBE_CHG[6];/*!< (@ 0x00000080) Subscribe configuration for tasks */ 2202 __IM uint32_t RESERVED1[276]; 2203 __IOM uint32_t CHEN; /*!< (@ 0x00000500) Channel enable register */ 2204 __IOM uint32_t CHENSET; /*!< (@ 0x00000504) Channel enable set register */ 2205 __IOM uint32_t CHENCLR; /*!< (@ 0x00000508) Channel enable clear register */ 2206 __IM uint32_t RESERVED2[189]; 2207 __IOM uint32_t CHG[6]; /*!< (@ 0x00000800) Description collection: Channel group n Note: 2208 Writes to this register are ignored if either 2209 SUBSCRIBE_CHG[n].EN or SUBSCRIBE_CHG[n].DIS 2210 is enabled */ 2211 } NRF_DPPIC_Type; /*!< Size = 2072 (0x818) */ 2212 2213 2214 2215 /* =========================================================================================================================== */ 2216 /* ================ WDT0_NS ================ */ 2217 /* =========================================================================================================================== */ 2218 2219 2220 /** 2221 * @brief Watchdog Timer 0 (WDT0_NS) 2222 */ 2223 2224 typedef struct { /*!< (@ 0x40018000) WDT0_NS Structure */ 2225 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Start WDT */ 2226 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stop WDT */ 2227 __IM uint32_t RESERVED[30]; 2228 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 2229 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 2230 __IM uint32_t RESERVED1[30]; 2231 __IOM uint32_t EVENTS_TIMEOUT; /*!< (@ 0x00000100) Watchdog timeout */ 2232 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000104) Watchdog stopped */ 2233 __IM uint32_t RESERVED2[30]; 2234 __IOM uint32_t PUBLISH_TIMEOUT; /*!< (@ 0x00000180) Publish configuration for event TIMEOUT */ 2235 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000184) Publish configuration for event STOPPED */ 2236 __IM uint32_t RESERVED3[95]; 2237 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2238 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2239 __IM uint32_t RESERVED4[6]; 2240 __IOM uint32_t NMIENSET; /*!< (@ 0x00000324) Enable interrupt */ 2241 __IOM uint32_t NMIENCLR; /*!< (@ 0x00000328) Disable interrupt */ 2242 __IM uint32_t RESERVED5[53]; 2243 __IM uint32_t RUNSTATUS; /*!< (@ 0x00000400) Run status */ 2244 __IM uint32_t REQSTATUS; /*!< (@ 0x00000404) Request status */ 2245 __IM uint32_t RESERVED6[63]; 2246 __IOM uint32_t CRV; /*!< (@ 0x00000504) Counter reload value */ 2247 __IOM uint32_t RREN; /*!< (@ 0x00000508) Enable register for reload request registers */ 2248 __IOM uint32_t CONFIG; /*!< (@ 0x0000050C) Configuration register */ 2249 __IM uint32_t RESERVED7[4]; 2250 __OM uint32_t TSEN; /*!< (@ 0x00000520) Task stop enable */ 2251 __IM uint32_t RESERVED8[55]; 2252 __OM uint32_t RR[8]; /*!< (@ 0x00000600) Description collection: Reload request n */ 2253 } NRF_WDT_Type; /*!< Size = 1568 (0x620) */ 2254 2255 2256 2257 /* =========================================================================================================================== */ 2258 /* ================ COMP_NS ================ */ 2259 /* =========================================================================================================================== */ 2260 2261 2262 /** 2263 * @brief Comparator 0 (COMP_NS) 2264 */ 2265 2266 typedef struct { /*!< (@ 0x4001A000) COMP_NS Structure */ 2267 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Start comparator */ 2268 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stop comparator */ 2269 __OM uint32_t TASKS_SAMPLE; /*!< (@ 0x00000008) Sample comparator value */ 2270 __IM uint32_t RESERVED[29]; 2271 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 2272 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 2273 __IOM uint32_t SUBSCRIBE_SAMPLE; /*!< (@ 0x00000088) Subscribe configuration for task SAMPLE */ 2274 __IM uint32_t RESERVED1[29]; 2275 __IOM uint32_t EVENTS_READY; /*!< (@ 0x00000100) COMP is ready and output is valid */ 2276 __IOM uint32_t EVENTS_DOWN; /*!< (@ 0x00000104) Downward crossing */ 2277 __IOM uint32_t EVENTS_UP; /*!< (@ 0x00000108) Upward crossing */ 2278 __IOM uint32_t EVENTS_CROSS; /*!< (@ 0x0000010C) Downward or upward crossing */ 2279 __IM uint32_t RESERVED2[28]; 2280 __IOM uint32_t PUBLISH_READY; /*!< (@ 0x00000180) Publish configuration for event READY */ 2281 __IOM uint32_t PUBLISH_DOWN; /*!< (@ 0x00000184) Publish configuration for event DOWN */ 2282 __IOM uint32_t PUBLISH_UP; /*!< (@ 0x00000188) Publish configuration for event UP */ 2283 __IOM uint32_t PUBLISH_CROSS; /*!< (@ 0x0000018C) Publish configuration for event CROSS */ 2284 __IM uint32_t RESERVED3[28]; 2285 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 2286 __IM uint32_t RESERVED4[63]; 2287 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 2288 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2289 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2290 __IM uint32_t RESERVED5[61]; 2291 __IM uint32_t RESULT; /*!< (@ 0x00000400) Compare result */ 2292 __IM uint32_t RESERVED6[63]; 2293 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) COMP enable */ 2294 __IOM uint32_t PSEL; /*!< (@ 0x00000504) Pin select */ 2295 __IOM uint32_t REFSEL; /*!< (@ 0x00000508) Reference source select for single-ended mode */ 2296 __IOM uint32_t EXTREFSEL; /*!< (@ 0x0000050C) External reference select */ 2297 __IM uint32_t RESERVED7[8]; 2298 __IOM uint32_t TH; /*!< (@ 0x00000530) Threshold configuration for hysteresis unit */ 2299 __IOM uint32_t MODE; /*!< (@ 0x00000534) Mode configuration */ 2300 __IOM uint32_t HYST; /*!< (@ 0x00000538) Comparator hysteresis enable */ 2301 __IOM uint32_t ISOURCE; /*!< (@ 0x0000053C) Current source select on analog input */ 2302 } NRF_COMP_Type; /*!< Size = 1344 (0x540) */ 2303 2304 2305 2306 /* =========================================================================================================================== */ 2307 /* ================ LPCOMP_NS ================ */ 2308 /* =========================================================================================================================== */ 2309 2310 2311 /** 2312 * @brief Low-power comparator 0 (LPCOMP_NS) 2313 */ 2314 2315 typedef struct { /*!< (@ 0x4001A000) LPCOMP_NS Structure */ 2316 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Start comparator */ 2317 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stop comparator */ 2318 __OM uint32_t TASKS_SAMPLE; /*!< (@ 0x00000008) Sample comparator value */ 2319 __IM uint32_t RESERVED[29]; 2320 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 2321 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 2322 __IOM uint32_t SUBSCRIBE_SAMPLE; /*!< (@ 0x00000088) Subscribe configuration for task SAMPLE */ 2323 __IM uint32_t RESERVED1[29]; 2324 __IOM uint32_t EVENTS_READY; /*!< (@ 0x00000100) LPCOMP is ready and output is valid */ 2325 __IOM uint32_t EVENTS_DOWN; /*!< (@ 0x00000104) Downward crossing */ 2326 __IOM uint32_t EVENTS_UP; /*!< (@ 0x00000108) Upward crossing */ 2327 __IOM uint32_t EVENTS_CROSS; /*!< (@ 0x0000010C) Downward or upward crossing */ 2328 __IM uint32_t RESERVED2[28]; 2329 __IOM uint32_t PUBLISH_READY; /*!< (@ 0x00000180) Publish configuration for event READY */ 2330 __IOM uint32_t PUBLISH_DOWN; /*!< (@ 0x00000184) Publish configuration for event DOWN */ 2331 __IOM uint32_t PUBLISH_UP; /*!< (@ 0x00000188) Publish configuration for event UP */ 2332 __IOM uint32_t PUBLISH_CROSS; /*!< (@ 0x0000018C) Publish configuration for event CROSS */ 2333 __IM uint32_t RESERVED3[28]; 2334 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 2335 __IM uint32_t RESERVED4[64]; 2336 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2337 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2338 __IM uint32_t RESERVED5[61]; 2339 __IM uint32_t RESULT; /*!< (@ 0x00000400) Compare result */ 2340 __IM uint32_t RESERVED6[63]; 2341 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable LPCOMP */ 2342 __IOM uint32_t PSEL; /*!< (@ 0x00000504) Input pin select */ 2343 __IOM uint32_t REFSEL; /*!< (@ 0x00000508) Reference select */ 2344 __IOM uint32_t EXTREFSEL; /*!< (@ 0x0000050C) External reference select */ 2345 __IM uint32_t RESERVED7[4]; 2346 __IOM uint32_t ANADETECT; /*!< (@ 0x00000520) Analog detect configuration */ 2347 __IM uint32_t RESERVED8[5]; 2348 __IOM uint32_t HYST; /*!< (@ 0x00000538) Comparator hysteresis enable */ 2349 } NRF_LPCOMP_Type; /*!< Size = 1340 (0x53c) */ 2350 2351 2352 2353 /* =========================================================================================================================== */ 2354 /* ================ EGU0_NS ================ */ 2355 /* =========================================================================================================================== */ 2356 2357 2358 /** 2359 * @brief Event generator unit 0 (EGU0_NS) 2360 */ 2361 2362 typedef struct { /*!< (@ 0x4001B000) EGU0_NS Structure */ 2363 __OM uint32_t TASKS_TRIGGER[16]; /*!< (@ 0x00000000) Description collection: Trigger n for triggering 2364 the corresponding TRIGGERED[n] event */ 2365 __IM uint32_t RESERVED[16]; 2366 __IOM uint32_t SUBSCRIBE_TRIGGER[16]; /*!< (@ 0x00000080) Description collection: Subscribe configuration 2367 for task TRIGGER[n] */ 2368 __IM uint32_t RESERVED1[16]; 2369 __IOM uint32_t EVENTS_TRIGGERED[16]; /*!< (@ 0x00000100) Description collection: Event number n generated 2370 by triggering the corresponding TRIGGER[n] 2371 task */ 2372 __IM uint32_t RESERVED2[16]; 2373 __IOM uint32_t PUBLISH_TRIGGERED[16]; /*!< (@ 0x00000180) Description collection: Publish configuration 2374 for event TRIGGERED[n] */ 2375 __IM uint32_t RESERVED3[80]; 2376 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 2377 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2378 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2379 } NRF_EGU_Type; /*!< Size = 780 (0x30c) */ 2380 2381 2382 2383 /* =========================================================================================================================== */ 2384 /* ================ PWM0_NS ================ */ 2385 /* =========================================================================================================================== */ 2386 2387 2388 /** 2389 * @brief Pulse width modulation unit 0 (PWM0_NS) 2390 */ 2391 2392 typedef struct { /*!< (@ 0x40021000) PWM0_NS Structure */ 2393 __IM uint32_t RESERVED; 2394 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stops PWM pulse generation on all channels at 2395 the end of current PWM period, and stops 2396 sequence playback */ 2397 __OM uint32_t TASKS_SEQSTART[2]; /*!< (@ 0x00000008) Description collection: Loads the first PWM value 2398 on all enabled channels from sequence n, 2399 and starts playing that sequence at the 2400 rate defined in SEQ[n]REFRESH and/or DECODER.MODE. 2401 Causes PWM generation to start if not running. */ 2402 __OM uint32_t TASKS_NEXTSTEP; /*!< (@ 0x00000010) Steps by one value in the current sequence on 2403 all enabled channels if DECODER.MODE=NextStep. 2404 Does not cause PWM generation to start if 2405 not running. */ 2406 __IM uint32_t RESERVED1[28]; 2407 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 2408 __IOM uint32_t SUBSCRIBE_SEQSTART[2]; /*!< (@ 0x00000088) Description collection: Subscribe configuration 2409 for task SEQSTART[n] */ 2410 __IOM uint32_t SUBSCRIBE_NEXTSTEP; /*!< (@ 0x00000090) Subscribe configuration for task NEXTSTEP */ 2411 __IM uint32_t RESERVED2[28]; 2412 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000104) Response to STOP task, emitted when PWM pulses 2413 are no longer generated */ 2414 __IOM uint32_t EVENTS_SEQSTARTED[2]; /*!< (@ 0x00000108) Description collection: First PWM period started 2415 on sequence n */ 2416 __IOM uint32_t EVENTS_SEQEND[2]; /*!< (@ 0x00000110) Description collection: Emitted at end of every 2417 sequence n, when last value from RAM has 2418 been applied to wave counter */ 2419 __IOM uint32_t EVENTS_PWMPERIODEND; /*!< (@ 0x00000118) Emitted at the end of each PWM period */ 2420 __IOM uint32_t EVENTS_LOOPSDONE; /*!< (@ 0x0000011C) Concatenated sequences have been played the amount 2421 of times defined in LOOP.CNT */ 2422 __IM uint32_t RESERVED3[25]; 2423 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000184) Publish configuration for event STOPPED */ 2424 __IOM uint32_t PUBLISH_SEQSTARTED[2]; /*!< (@ 0x00000188) Description collection: Publish configuration 2425 for event SEQSTARTED[n] */ 2426 __IOM uint32_t PUBLISH_SEQEND[2]; /*!< (@ 0x00000190) Description collection: Publish configuration 2427 for event SEQEND[n] */ 2428 __IOM uint32_t PUBLISH_PWMPERIODEND; /*!< (@ 0x00000198) Publish configuration for event PWMPERIODEND */ 2429 __IOM uint32_t PUBLISH_LOOPSDONE; /*!< (@ 0x0000019C) Publish configuration for event LOOPSDONE */ 2430 __IM uint32_t RESERVED4[24]; 2431 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 2432 __IM uint32_t RESERVED5[63]; 2433 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 2434 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2435 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2436 __IM uint32_t RESERVED6[125]; 2437 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) PWM module enable register */ 2438 __IOM uint32_t MODE; /*!< (@ 0x00000504) Selects operating mode of the wave counter */ 2439 __IOM uint32_t COUNTERTOP; /*!< (@ 0x00000508) Value up to which the pulse generator counter 2440 counts */ 2441 __IOM uint32_t PRESCALER; /*!< (@ 0x0000050C) Configuration for PWM_CLK */ 2442 __IOM uint32_t DECODER; /*!< (@ 0x00000510) Configuration of the decoder */ 2443 __IOM uint32_t LOOP; /*!< (@ 0x00000514) Number of playbacks of a loop */ 2444 __IM uint32_t RESERVED7[2]; 2445 __IOM PWM_SEQ_Type SEQ[2]; /*!< (@ 0x00000520) Unspecified */ 2446 __IOM PWM_PSEL_Type PSEL; /*!< (@ 0x00000560) Unspecified */ 2447 } NRF_PWM_Type; /*!< Size = 1392 (0x570) */ 2448 2449 2450 2451 /* =========================================================================================================================== */ 2452 /* ================ PDM0_NS ================ */ 2453 /* =========================================================================================================================== */ 2454 2455 2456 /** 2457 * @brief Pulse Density Modulation (Digital Microphone) Interface 0 (PDM0_NS) 2458 */ 2459 2460 typedef struct { /*!< (@ 0x40026000) PDM0_NS Structure */ 2461 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Starts continuous PDM transfer */ 2462 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stops PDM transfer */ 2463 __IM uint32_t RESERVED[30]; 2464 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 2465 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 2466 __IM uint32_t RESERVED1[30]; 2467 __IOM uint32_t EVENTS_STARTED; /*!< (@ 0x00000100) PDM transfer has started */ 2468 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000104) PDM transfer has finished */ 2469 __IOM uint32_t EVENTS_END; /*!< (@ 0x00000108) The PDM has written the last sample specified 2470 by SAMPLE.MAXCNT (or the last sample after 2471 a STOP task has been received) to Data RAM */ 2472 __IM uint32_t RESERVED2[29]; 2473 __IOM uint32_t PUBLISH_STARTED; /*!< (@ 0x00000180) Publish configuration for event STARTED */ 2474 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000184) Publish configuration for event STOPPED */ 2475 __IOM uint32_t PUBLISH_END; /*!< (@ 0x00000188) Publish configuration for event END */ 2476 __IM uint32_t RESERVED3[93]; 2477 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 2478 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2479 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2480 __IM uint32_t RESERVED4[125]; 2481 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) PDM module enable register */ 2482 __IOM uint32_t PDMCLKCTRL; /*!< (@ 0x00000504) PDM clock generator control */ 2483 __IOM uint32_t MODE; /*!< (@ 0x00000508) Defines the routing of the connected PDM microphones' 2484 signals */ 2485 __IM uint32_t RESERVED5[3]; 2486 __IOM uint32_t GAINL; /*!< (@ 0x00000518) Left output gain adjustment */ 2487 __IOM uint32_t GAINR; /*!< (@ 0x0000051C) Right output gain adjustment */ 2488 __IOM uint32_t RATIO; /*!< (@ 0x00000520) Selects the ratio between PDM_CLK and output 2489 sample rate. Change PDMCLKCTRL accordingly. */ 2490 __IM uint32_t RESERVED6[7]; 2491 __IOM PDM_PSEL_Type PSEL; /*!< (@ 0x00000540) Unspecified */ 2492 __IM uint32_t RESERVED7; 2493 __IOM uint32_t MCLKCONFIG; /*!< (@ 0x0000054C) Master clock generator configuration */ 2494 __IM uint32_t RESERVED8[4]; 2495 __IOM PDM_SAMPLE_Type SAMPLE; /*!< (@ 0x00000560) Unspecified */ 2496 } NRF_PDM_Type; /*!< Size = 1384 (0x568) */ 2497 2498 2499 2500 /* =========================================================================================================================== */ 2501 /* ================ I2S0_NS ================ */ 2502 /* =========================================================================================================================== */ 2503 2504 2505 /** 2506 * @brief Inter-IC Sound 0 (I2S0_NS) 2507 */ 2508 2509 typedef struct { /*!< (@ 0x40028000) I2S0_NS Structure */ 2510 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Starts continuous I2S transfer. Also starts MCK 2511 generator when this is enabled */ 2512 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stops I2S transfer and MCK generator. Triggering 2513 this task will cause the event STOPPED to 2514 be generated. */ 2515 __IM uint32_t RESERVED[30]; 2516 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 2517 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 2518 __IM uint32_t RESERVED1[31]; 2519 __IOM uint32_t EVENTS_RXPTRUPD; /*!< (@ 0x00000104) The RXD.PTR register has been copied to internal 2520 double-buffers. When the I2S module is started 2521 and RX is enabled, this event will be generated 2522 for every RXTXD.MAXCNT words received on 2523 the SDIN pin. */ 2524 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000108) I2S transfer stopped. */ 2525 __IM uint32_t RESERVED2[2]; 2526 __IOM uint32_t EVENTS_TXPTRUPD; /*!< (@ 0x00000114) The TDX.PTR register has been copied to internal 2527 double-buffers. When the I2S module is started 2528 and TX is enabled, this event will be generated 2529 for every RXTXD.MAXCNT words that are sent 2530 on the SDOUT pin. */ 2531 __IM uint32_t RESERVED3; 2532 __IOM uint32_t EVENTS_FRAMESTART; /*!< (@ 0x0000011C) Frame start event, generated on the active edge 2533 of LRCK */ 2534 __IM uint32_t RESERVED4[25]; 2535 __IOM uint32_t PUBLISH_RXPTRUPD; /*!< (@ 0x00000184) Publish configuration for event RXPTRUPD */ 2536 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000188) Publish configuration for event STOPPED */ 2537 __IM uint32_t RESERVED5[2]; 2538 __IOM uint32_t PUBLISH_TXPTRUPD; /*!< (@ 0x00000194) Publish configuration for event TXPTRUPD */ 2539 __IM uint32_t RESERVED6; 2540 __IOM uint32_t PUBLISH_FRAMESTART; /*!< (@ 0x0000019C) Publish configuration for event FRAMESTART */ 2541 __IM uint32_t RESERVED7[88]; 2542 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 2543 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2544 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2545 __IM uint32_t RESERVED8[125]; 2546 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable I2S module */ 2547 __IOM I2S_CONFIG_Type CONFIG; /*!< (@ 0x00000504) Unspecified */ 2548 __IM uint32_t RESERVED9[2]; 2549 __IOM I2S_RXD_Type RXD; /*!< (@ 0x00000538) Unspecified */ 2550 __IM uint32_t RESERVED10; 2551 __IOM I2S_TXD_Type TXD; /*!< (@ 0x00000540) Unspecified */ 2552 __IM uint32_t RESERVED11[3]; 2553 __IOM I2S_RXTXD_Type RXTXD; /*!< (@ 0x00000550) Unspecified */ 2554 __IM uint32_t RESERVED12[3]; 2555 __IOM I2S_PSEL_Type PSEL; /*!< (@ 0x00000560) Unspecified */ 2556 } NRF_I2S_Type; /*!< Size = 1396 (0x574) */ 2557 2558 2559 2560 /* =========================================================================================================================== */ 2561 /* ================ IPC_NS ================ */ 2562 /* =========================================================================================================================== */ 2563 2564 2565 /** 2566 * @brief Interprocessor communication 0 (IPC_NS) 2567 */ 2568 2569 typedef struct { /*!< (@ 0x4002A000) IPC_NS Structure */ 2570 __OM uint32_t TASKS_SEND[16]; /*!< (@ 0x00000000) Description collection: Trigger events on IPC 2571 channel enabled in SEND_CNF[n] */ 2572 __IM uint32_t RESERVED[16]; 2573 __IOM uint32_t SUBSCRIBE_SEND[16]; /*!< (@ 0x00000080) Description collection: Subscribe configuration 2574 for task SEND[n] */ 2575 __IM uint32_t RESERVED1[16]; 2576 __IOM uint32_t EVENTS_RECEIVE[16]; /*!< (@ 0x00000100) Description collection: Event received on one 2577 or more of the enabled IPC channels in RECEIVE_CNF[n] */ 2578 __IM uint32_t RESERVED2[16]; 2579 __IOM uint32_t PUBLISH_RECEIVE[16]; /*!< (@ 0x00000180) Description collection: Publish configuration 2580 for event RECEIVE[n] */ 2581 __IM uint32_t RESERVED3[80]; 2582 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 2583 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2584 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2585 __IM uint32_t INTPEND; /*!< (@ 0x0000030C) Pending interrupts */ 2586 __IM uint32_t RESERVED4[128]; 2587 __IOM uint32_t SEND_CNF[16]; /*!< (@ 0x00000510) Description collection: Send event configuration 2588 for TASKS_SEND[n] */ 2589 __IM uint32_t RESERVED5[16]; 2590 __IOM uint32_t RECEIVE_CNF[16]; /*!< (@ 0x00000590) Description collection: Receive event configuration 2591 for EVENTS_RECEIVE[n] */ 2592 __IM uint32_t RESERVED6[16]; 2593 __IOM uint32_t GPMEM[2]; /*!< (@ 0x00000610) Description collection: General purpose memory */ 2594 } NRF_IPC_Type; /*!< Size = 1560 (0x618) */ 2595 2596 2597 2598 /* =========================================================================================================================== */ 2599 /* ================ QSPI_NS ================ */ 2600 /* =========================================================================================================================== */ 2601 2602 2603 /** 2604 * @brief External flash interface 0 (QSPI_NS) 2605 */ 2606 2607 typedef struct { /*!< (@ 0x4002B000) QSPI_NS Structure */ 2608 __OM uint32_t TASKS_ACTIVATE; /*!< (@ 0x00000000) Activate QSPI interface */ 2609 __OM uint32_t TASKS_READSTART; /*!< (@ 0x00000004) Start transfer from external flash memory to 2610 internal RAM */ 2611 __OM uint32_t TASKS_WRITESTART; /*!< (@ 0x00000008) Start transfer from internal RAM to external 2612 flash memory */ 2613 __OM uint32_t TASKS_ERASESTART; /*!< (@ 0x0000000C) Start external flash memory erase operation */ 2614 __OM uint32_t TASKS_DEACTIVATE; /*!< (@ 0x00000010) Deactivate QSPI interface */ 2615 __IM uint32_t RESERVED[27]; 2616 __IOM uint32_t SUBSCRIBE_ACTIVATE; /*!< (@ 0x00000080) Subscribe configuration for task ACTIVATE */ 2617 __IOM uint32_t SUBSCRIBE_READSTART; /*!< (@ 0x00000084) Subscribe configuration for task READSTART */ 2618 __IOM uint32_t SUBSCRIBE_WRITESTART; /*!< (@ 0x00000088) Subscribe configuration for task WRITESTART */ 2619 __IOM uint32_t SUBSCRIBE_ERASESTART; /*!< (@ 0x0000008C) Subscribe configuration for task ERASESTART */ 2620 __IOM uint32_t SUBSCRIBE_DEACTIVATE; /*!< (@ 0x00000090) Subscribe configuration for task DEACTIVATE */ 2621 __IM uint32_t RESERVED1[27]; 2622 __IOM uint32_t EVENTS_READY; /*!< (@ 0x00000100) QSPI peripheral is ready. This event will be 2623 generated as a response to all QSPI tasks 2624 except DEACTIVATE. */ 2625 __IM uint32_t RESERVED2[31]; 2626 __IOM uint32_t PUBLISH_READY; /*!< (@ 0x00000180) Publish configuration for event READY */ 2627 __IM uint32_t RESERVED3[95]; 2628 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 2629 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2630 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2631 __IM uint32_t RESERVED4[125]; 2632 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable QSPI peripheral and acquire the pins selected 2633 in PSELn registers */ 2634 __IOM QSPI_READ_Type READ; /*!< (@ 0x00000504) Unspecified */ 2635 __IOM QSPI_WRITE_Type WRITE; /*!< (@ 0x00000510) Unspecified */ 2636 __IOM QSPI_ERASE_Type ERASE; /*!< (@ 0x0000051C) Unspecified */ 2637 __IOM QSPI_PSEL_Type PSEL; /*!< (@ 0x00000524) Unspecified */ 2638 __IOM uint32_t XIPOFFSET; /*!< (@ 0x00000540) Address offset into the external memory for Execute 2639 in Place operation. */ 2640 __IOM uint32_t IFCONFIG0; /*!< (@ 0x00000544) Interface configuration. */ 2641 __IM uint32_t RESERVED5; 2642 __IOM uint32_t XIPEN; /*!< (@ 0x0000054C) Enable Execute in Place operation. */ 2643 __IM uint32_t RESERVED6[4]; 2644 __IOM QSPI_XIP_ENC_Type XIP_ENC; /*!< (@ 0x00000560) Unspecified */ 2645 __IOM QSPI_DMA_ENC_Type DMA_ENC; /*!< (@ 0x00000580) Unspecified */ 2646 __IM uint32_t RESERVED7[24]; 2647 __IOM uint32_t IFCONFIG1; /*!< (@ 0x00000600) Interface configuration. */ 2648 __IM uint32_t STATUS; /*!< (@ 0x00000604) Status register. */ 2649 __IM uint32_t RESERVED8[3]; 2650 __IOM uint32_t DPMDUR; /*!< (@ 0x00000614) Set the duration required to enter/exit deep 2651 power-down mode (DPM). */ 2652 __IM uint32_t RESERVED9[3]; 2653 __IOM uint32_t ADDRCONF; /*!< (@ 0x00000624) Extended address configuration. */ 2654 __IM uint32_t RESERVED10[3]; 2655 __IOM uint32_t CINSTRCONF; /*!< (@ 0x00000634) Custom instruction configuration register. */ 2656 __IOM uint32_t CINSTRDAT0; /*!< (@ 0x00000638) Custom instruction data register 0. */ 2657 __IOM uint32_t CINSTRDAT1; /*!< (@ 0x0000063C) Custom instruction data register 1. */ 2658 __IOM uint32_t IFTIMING; /*!< (@ 0x00000640) SPI interface timing. */ 2659 } NRF_QSPI_Type; /*!< Size = 1604 (0x644) */ 2660 2661 2662 2663 /* =========================================================================================================================== */ 2664 /* ================ NFCT_NS ================ */ 2665 /* =========================================================================================================================== */ 2666 2667 2668 /** 2669 * @brief NFC-A compatible radio 0 (NFCT_NS) 2670 */ 2671 2672 typedef struct { /*!< (@ 0x4002D000) NFCT_NS Structure */ 2673 __OM uint32_t TASKS_ACTIVATE; /*!< (@ 0x00000000) Activate NFCT peripheral for incoming and outgoing 2674 frames, change state to activated */ 2675 __OM uint32_t TASKS_DISABLE; /*!< (@ 0x00000004) Disable NFCT peripheral */ 2676 __OM uint32_t TASKS_SENSE; /*!< (@ 0x00000008) Enable NFC sense field mode, change state to 2677 sense mode */ 2678 __OM uint32_t TASKS_STARTTX; /*!< (@ 0x0000000C) Start transmission of an outgoing frame, change 2679 state to transmit */ 2680 __IM uint32_t RESERVED[3]; 2681 __OM uint32_t TASKS_ENABLERXDATA; /*!< (@ 0x0000001C) Initializes the EasyDMA for receive. */ 2682 __IM uint32_t RESERVED1; 2683 __OM uint32_t TASKS_GOIDLE; /*!< (@ 0x00000024) Force state machine to IDLE state */ 2684 __OM uint32_t TASKS_GOSLEEP; /*!< (@ 0x00000028) Force state machine to SLEEP_A state */ 2685 __IM uint32_t RESERVED2[21]; 2686 __IOM uint32_t SUBSCRIBE_ACTIVATE; /*!< (@ 0x00000080) Subscribe configuration for task ACTIVATE */ 2687 __IOM uint32_t SUBSCRIBE_DISABLE; /*!< (@ 0x00000084) Subscribe configuration for task DISABLE */ 2688 __IOM uint32_t SUBSCRIBE_SENSE; /*!< (@ 0x00000088) Subscribe configuration for task SENSE */ 2689 __IOM uint32_t SUBSCRIBE_STARTTX; /*!< (@ 0x0000008C) Subscribe configuration for task STARTTX */ 2690 __IM uint32_t RESERVED3[3]; 2691 __IOM uint32_t SUBSCRIBE_ENABLERXDATA; /*!< (@ 0x0000009C) Subscribe configuration for task ENABLERXDATA */ 2692 __IM uint32_t RESERVED4; 2693 __IOM uint32_t SUBSCRIBE_GOIDLE; /*!< (@ 0x000000A4) Subscribe configuration for task GOIDLE */ 2694 __IOM uint32_t SUBSCRIBE_GOSLEEP; /*!< (@ 0x000000A8) Subscribe configuration for task GOSLEEP */ 2695 __IM uint32_t RESERVED5[21]; 2696 __IOM uint32_t EVENTS_READY; /*!< (@ 0x00000100) The NFCT peripheral is ready to receive and send 2697 frames */ 2698 __IOM uint32_t EVENTS_FIELDDETECTED; /*!< (@ 0x00000104) Remote NFC field detected */ 2699 __IOM uint32_t EVENTS_FIELDLOST; /*!< (@ 0x00000108) Remote NFC field lost */ 2700 __IOM uint32_t EVENTS_TXFRAMESTART; /*!< (@ 0x0000010C) Marks the start of the first symbol of a transmitted 2701 frame */ 2702 __IOM uint32_t EVENTS_TXFRAMEEND; /*!< (@ 0x00000110) Marks the end of the last transmitted on-air 2703 symbol of a frame */ 2704 __IOM uint32_t EVENTS_RXFRAMESTART; /*!< (@ 0x00000114) Marks the end of the first symbol of a received 2705 frame */ 2706 __IOM uint32_t EVENTS_RXFRAMEEND; /*!< (@ 0x00000118) Received data has been checked (CRC, parity) 2707 and transferred to RAM, and EasyDMA has 2708 ended accessing the RX buffer */ 2709 __IOM uint32_t EVENTS_ERROR; /*!< (@ 0x0000011C) NFC error reported. The ERRORSTATUS register 2710 contains details on the source of the error. */ 2711 __IM uint32_t RESERVED6[2]; 2712 __IOM uint32_t EVENTS_RXERROR; /*!< (@ 0x00000128) NFC RX frame error reported. The FRAMESTATUS.RX 2713 register contains details on the source 2714 of the error. */ 2715 __IOM uint32_t EVENTS_ENDRX; /*!< (@ 0x0000012C) RX buffer (as defined by PACKETPTR and MAXLEN) 2716 in Data RAM full. */ 2717 __IOM uint32_t EVENTS_ENDTX; /*!< (@ 0x00000130) Transmission of data in RAM has ended, and EasyDMA 2718 has ended accessing the TX buffer */ 2719 __IM uint32_t RESERVED7; 2720 __IOM uint32_t EVENTS_AUTOCOLRESSTARTED; /*!< (@ 0x00000138) Auto collision resolution process has started */ 2721 __IM uint32_t RESERVED8[3]; 2722 __IOM uint32_t EVENTS_COLLISION; /*!< (@ 0x00000148) NFC auto collision resolution error reported. */ 2723 __IOM uint32_t EVENTS_SELECTED; /*!< (@ 0x0000014C) NFC auto collision resolution successfully completed */ 2724 __IOM uint32_t EVENTS_STARTED; /*!< (@ 0x00000150) EasyDMA is ready to receive or send frames. */ 2725 __IM uint32_t RESERVED9[11]; 2726 __IOM uint32_t PUBLISH_READY; /*!< (@ 0x00000180) Publish configuration for event READY */ 2727 __IOM uint32_t PUBLISH_FIELDDETECTED; /*!< (@ 0x00000184) Publish configuration for event FIELDDETECTED */ 2728 __IOM uint32_t PUBLISH_FIELDLOST; /*!< (@ 0x00000188) Publish configuration for event FIELDLOST */ 2729 __IOM uint32_t PUBLISH_TXFRAMESTART; /*!< (@ 0x0000018C) Publish configuration for event TXFRAMESTART */ 2730 __IOM uint32_t PUBLISH_TXFRAMEEND; /*!< (@ 0x00000190) Publish configuration for event TXFRAMEEND */ 2731 __IOM uint32_t PUBLISH_RXFRAMESTART; /*!< (@ 0x00000194) Publish configuration for event RXFRAMESTART */ 2732 __IOM uint32_t PUBLISH_RXFRAMEEND; /*!< (@ 0x00000198) Publish configuration for event RXFRAMEEND */ 2733 __IOM uint32_t PUBLISH_ERROR; /*!< (@ 0x0000019C) Publish configuration for event ERROR */ 2734 __IM uint32_t RESERVED10[2]; 2735 __IOM uint32_t PUBLISH_RXERROR; /*!< (@ 0x000001A8) Publish configuration for event RXERROR */ 2736 __IOM uint32_t PUBLISH_ENDRX; /*!< (@ 0x000001AC) Publish configuration for event ENDRX */ 2737 __IOM uint32_t PUBLISH_ENDTX; /*!< (@ 0x000001B0) Publish configuration for event ENDTX */ 2738 __IM uint32_t RESERVED11; 2739 __IOM uint32_t PUBLISH_AUTOCOLRESSTARTED; /*!< (@ 0x000001B8) Publish configuration for event AUTOCOLRESSTARTED */ 2740 __IM uint32_t RESERVED12[3]; 2741 __IOM uint32_t PUBLISH_COLLISION; /*!< (@ 0x000001C8) Publish configuration for event COLLISION */ 2742 __IOM uint32_t PUBLISH_SELECTED; /*!< (@ 0x000001CC) Publish configuration for event SELECTED */ 2743 __IOM uint32_t PUBLISH_STARTED; /*!< (@ 0x000001D0) Publish configuration for event STARTED */ 2744 __IM uint32_t RESERVED13[11]; 2745 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 2746 __IM uint32_t RESERVED14[63]; 2747 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 2748 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2749 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2750 __IM uint32_t RESERVED15[62]; 2751 __IOM uint32_t ERRORSTATUS; /*!< (@ 0x00000404) NFC Error Status register */ 2752 __IM uint32_t RESERVED16; 2753 __IOM NFCT_FRAMESTATUS_Type FRAMESTATUS; /*!< (@ 0x0000040C) Unspecified */ 2754 __IM uint32_t NFCTAGSTATE; /*!< (@ 0x00000410) Current operating state of NFC tag */ 2755 __IM uint32_t RESERVED17[3]; 2756 __IM uint32_t SLEEPSTATE; /*!< (@ 0x00000420) Sleep state during automatic collision resolution */ 2757 __IM uint32_t RESERVED18[6]; 2758 __IM uint32_t FIELDPRESENT; /*!< (@ 0x0000043C) Indicates the presence or not of a valid field */ 2759 __IM uint32_t RESERVED19[49]; 2760 __IOM uint32_t FRAMEDELAYMIN; /*!< (@ 0x00000504) Minimum frame delay */ 2761 __IOM uint32_t FRAMEDELAYMAX; /*!< (@ 0x00000508) Maximum frame delay */ 2762 __IOM uint32_t FRAMEDELAYMODE; /*!< (@ 0x0000050C) Configuration register for the Frame Delay Timer */ 2763 __IOM uint32_t PACKETPTR; /*!< (@ 0x00000510) Packet pointer for TXD and RXD data storage in 2764 Data RAM */ 2765 __IOM uint32_t MAXLEN; /*!< (@ 0x00000514) Size of the RAM buffer allocated to TXD and RXD 2766 data storage each */ 2767 __IOM NFCT_TXD_Type TXD; /*!< (@ 0x00000518) Unspecified */ 2768 __IOM NFCT_RXD_Type RXD; /*!< (@ 0x00000520) Unspecified */ 2769 __IM uint32_t RESERVED20; 2770 __IOM uint32_t MODULATIONCTRL; /*!< (@ 0x0000052C) Enables the modulation output to a GPIO pin which 2771 can be connected to a second external antenna. */ 2772 __IM uint32_t RESERVED21[2]; 2773 __IOM uint32_t MODULATIONPSEL; /*!< (@ 0x00000538) Pin select for Modulation control */ 2774 __IM uint32_t RESERVED22[21]; 2775 __IOM uint32_t NFCID1_LAST; /*!< (@ 0x00000590) Last NFCID1 part (4, 7 or 10 bytes ID) */ 2776 __IOM uint32_t NFCID1_2ND_LAST; /*!< (@ 0x00000594) Second last NFCID1 part (7 or 10 bytes ID) */ 2777 __IOM uint32_t NFCID1_3RD_LAST; /*!< (@ 0x00000598) Third last NFCID1 part (10 bytes ID) */ 2778 __IOM uint32_t AUTOCOLRESCONFIG; /*!< (@ 0x0000059C) Controls the auto collision resolution function. 2779 This setting must be done before the NFCT 2780 peripheral is activated. */ 2781 __IOM uint32_t SENSRES; /*!< (@ 0x000005A0) NFC-A SENS_RES auto-response settings */ 2782 __IOM uint32_t SELRES; /*!< (@ 0x000005A4) NFC-A SEL_RES auto-response settings */ 2783 } NRF_NFCT_Type; /*!< Size = 1448 (0x5a8) */ 2784 2785 2786 2787 /* =========================================================================================================================== */ 2788 /* ================ MUTEX_NS ================ */ 2789 /* =========================================================================================================================== */ 2790 2791 2792 /** 2793 * @brief MUTEX 0 (MUTEX_NS) 2794 */ 2795 2796 typedef struct { /*!< (@ 0x40030000) MUTEX_NS Structure */ 2797 __IM uint32_t RESERVED[256]; 2798 __IOM uint32_t MUTEX[16]; /*!< (@ 0x00000400) Description collection: Mutex register */ 2799 } NRF_MUTEX_Type; /*!< Size = 1088 (0x440) */ 2800 2801 2802 2803 /* =========================================================================================================================== */ 2804 /* ================ QDEC0_NS ================ */ 2805 /* =========================================================================================================================== */ 2806 2807 2808 /** 2809 * @brief Quadrature Decoder 0 (QDEC0_NS) 2810 */ 2811 2812 typedef struct { /*!< (@ 0x40033000) QDEC0_NS Structure */ 2813 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Task starting the quadrature decoder */ 2814 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Task stopping the quadrature decoder */ 2815 __OM uint32_t TASKS_READCLRACC; /*!< (@ 0x00000008) Read and clear ACC and ACCDBL */ 2816 __OM uint32_t TASKS_RDCLRACC; /*!< (@ 0x0000000C) Read and clear ACC */ 2817 __OM uint32_t TASKS_RDCLRDBL; /*!< (@ 0x00000010) Read and clear ACCDBL */ 2818 __IM uint32_t RESERVED[27]; 2819 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 2820 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 2821 __IOM uint32_t SUBSCRIBE_READCLRACC; /*!< (@ 0x00000088) Subscribe configuration for task READCLRACC */ 2822 __IOM uint32_t SUBSCRIBE_RDCLRACC; /*!< (@ 0x0000008C) Subscribe configuration for task RDCLRACC */ 2823 __IOM uint32_t SUBSCRIBE_RDCLRDBL; /*!< (@ 0x00000090) Subscribe configuration for task RDCLRDBL */ 2824 __IM uint32_t RESERVED1[27]; 2825 __IOM uint32_t EVENTS_SAMPLERDY; /*!< (@ 0x00000100) Event being generated for every new sample value 2826 written to the SAMPLE register */ 2827 __IOM uint32_t EVENTS_REPORTRDY; /*!< (@ 0x00000104) Non-null report ready */ 2828 __IOM uint32_t EVENTS_ACCOF; /*!< (@ 0x00000108) ACC or ACCDBL register overflow */ 2829 __IOM uint32_t EVENTS_DBLRDY; /*!< (@ 0x0000010C) Double displacement(s) detected */ 2830 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000110) QDEC has been stopped */ 2831 __IM uint32_t RESERVED2[27]; 2832 __IOM uint32_t PUBLISH_SAMPLERDY; /*!< (@ 0x00000180) Publish configuration for event SAMPLERDY */ 2833 __IOM uint32_t PUBLISH_REPORTRDY; /*!< (@ 0x00000184) Publish configuration for event REPORTRDY */ 2834 __IOM uint32_t PUBLISH_ACCOF; /*!< (@ 0x00000188) Publish configuration for event ACCOF */ 2835 __IOM uint32_t PUBLISH_DBLRDY; /*!< (@ 0x0000018C) Publish configuration for event DBLRDY */ 2836 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000190) Publish configuration for event STOPPED */ 2837 __IM uint32_t RESERVED3[27]; 2838 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 2839 __IM uint32_t RESERVED4[64]; 2840 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2841 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2842 __IM uint32_t RESERVED5[125]; 2843 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable the quadrature decoder */ 2844 __IOM uint32_t LEDPOL; /*!< (@ 0x00000504) LED output pin polarity */ 2845 __IOM uint32_t SAMPLEPER; /*!< (@ 0x00000508) Sample period */ 2846 __IM int32_t SAMPLE; /*!< (@ 0x0000050C) Motion sample value */ 2847 __IOM uint32_t REPORTPER; /*!< (@ 0x00000510) Number of samples to be taken before REPORTRDY 2848 and DBLRDY events can be generated */ 2849 __IM int32_t ACC; /*!< (@ 0x00000514) Register accumulating the valid transitions */ 2850 __IM int32_t ACCREAD; /*!< (@ 0x00000518) Snapshot of the ACC register, updated by the 2851 READCLRACC or RDCLRACC task */ 2852 __IOM QDEC_PSEL_Type PSEL; /*!< (@ 0x0000051C) Unspecified */ 2853 __IOM uint32_t DBFEN; /*!< (@ 0x00000528) Enable input debounce filters */ 2854 __IM uint32_t RESERVED6[5]; 2855 __IOM uint32_t LEDPRE; /*!< (@ 0x00000540) Time period the LED is switched ON prior to sampling */ 2856 __IM uint32_t ACCDBL; /*!< (@ 0x00000544) Register accumulating the number of detected 2857 double transitions */ 2858 __IM uint32_t ACCDBLREAD; /*!< (@ 0x00000548) Snapshot of the ACCDBL, updated by the READCLRACC 2859 or RDCLRDBL task */ 2860 } NRF_QDEC_Type; /*!< Size = 1356 (0x54c) */ 2861 2862 2863 2864 /* =========================================================================================================================== */ 2865 /* ================ USBD_NS ================ */ 2866 /* =========================================================================================================================== */ 2867 2868 2869 /** 2870 * @brief Universal serial bus device 0 (USBD_NS) 2871 */ 2872 2873 typedef struct { /*!< (@ 0x40036000) USBD_NS Structure */ 2874 __IM uint32_t RESERVED; 2875 __OM uint32_t TASKS_STARTEPIN[8]; /*!< (@ 0x00000004) Description collection: Captures the EPIN[n].PTR 2876 and EPIN[n].MAXCNT registers values, and 2877 enables endpoint IN n to respond to traffic 2878 from host */ 2879 __OM uint32_t TASKS_STARTISOIN; /*!< (@ 0x00000024) Captures the ISOIN.PTR and ISOIN.MAXCNT registers 2880 values, and enables sending data on ISO 2881 endpoint */ 2882 __OM uint32_t TASKS_STARTEPOUT[8]; /*!< (@ 0x00000028) Description collection: Captures the EPOUT[n].PTR 2883 and EPOUT[n].MAXCNT registers values, and 2884 enables endpoint n to respond to traffic 2885 from host */ 2886 __OM uint32_t TASKS_STARTISOOUT; /*!< (@ 0x00000048) Captures the ISOOUT.PTR and ISOOUT.MAXCNT registers 2887 values, and enables receiving of data on 2888 ISO endpoint */ 2889 __OM uint32_t TASKS_EP0RCVOUT; /*!< (@ 0x0000004C) Allows OUT data stage on control endpoint 0 */ 2890 __OM uint32_t TASKS_EP0STATUS; /*!< (@ 0x00000050) Allows status stage on control endpoint 0 */ 2891 __OM uint32_t TASKS_EP0STALL; /*!< (@ 0x00000054) Stalls data and status stage on control endpoint 2892 0 */ 2893 __OM uint32_t TASKS_DPDMDRIVE; /*!< (@ 0x00000058) Forces D+ and D- lines into the state defined 2894 in the DPDMVALUE register */ 2895 __OM uint32_t TASKS_DPDMNODRIVE; /*!< (@ 0x0000005C) Stops forcing D+ and D- lines into any state 2896 (USB engine takes control) */ 2897 __IM uint32_t RESERVED1[9]; 2898 __IOM uint32_t SUBSCRIBE_STARTEPIN[8]; /*!< (@ 0x00000084) Description collection: Subscribe configuration 2899 for task STARTEPIN[n] */ 2900 __IOM uint32_t SUBSCRIBE_STARTISOIN; /*!< (@ 0x000000A4) Subscribe configuration for task STARTISOIN */ 2901 __IOM uint32_t SUBSCRIBE_STARTEPOUT[8]; /*!< (@ 0x000000A8) Description collection: Subscribe configuration 2902 for task STARTEPOUT[n] */ 2903 __IOM uint32_t SUBSCRIBE_STARTISOOUT; /*!< (@ 0x000000C8) Subscribe configuration for task STARTISOOUT */ 2904 __IOM uint32_t SUBSCRIBE_EP0RCVOUT; /*!< (@ 0x000000CC) Subscribe configuration for task EP0RCVOUT */ 2905 __IOM uint32_t SUBSCRIBE_EP0STATUS; /*!< (@ 0x000000D0) Subscribe configuration for task EP0STATUS */ 2906 __IOM uint32_t SUBSCRIBE_EP0STALL; /*!< (@ 0x000000D4) Subscribe configuration for task EP0STALL */ 2907 __IOM uint32_t SUBSCRIBE_DPDMDRIVE; /*!< (@ 0x000000D8) Subscribe configuration for task DPDMDRIVE */ 2908 __IOM uint32_t SUBSCRIBE_DPDMNODRIVE; /*!< (@ 0x000000DC) Subscribe configuration for task DPDMNODRIVE */ 2909 __IM uint32_t RESERVED2[8]; 2910 __IOM uint32_t EVENTS_USBRESET; /*!< (@ 0x00000100) Signals that a USB reset condition has been detected 2911 on USB lines */ 2912 __IOM uint32_t EVENTS_STARTED; /*!< (@ 0x00000104) Confirms that the EPIN[n].PTR and EPIN[n].MAXCNT, 2913 or EPOUT[n].PTR and EPOUT[n].MAXCNT registers 2914 have been captured on all endpoints reported 2915 in the EPSTATUS register */ 2916 __IOM uint32_t EVENTS_ENDEPIN[8]; /*!< (@ 0x00000108) Description collection: The whole EPIN[n] buffer 2917 has been consumed. The buffer can be accessed 2918 safely by software. */ 2919 __IOM uint32_t EVENTS_EP0DATADONE; /*!< (@ 0x00000128) An acknowledged data transfer has taken place 2920 on the control endpoint */ 2921 __IOM uint32_t EVENTS_ENDISOIN; /*!< (@ 0x0000012C) The whole ISOIN buffer has been consumed. The 2922 buffer can be accessed safely by software. */ 2923 __IOM uint32_t EVENTS_ENDEPOUT[8]; /*!< (@ 0x00000130) Description collection: The whole EPOUT[n] buffer 2924 has been consumed. The buffer can be accessed 2925 safely by software. */ 2926 __IOM uint32_t EVENTS_ENDISOOUT; /*!< (@ 0x00000150) The whole ISOOUT buffer has been consumed. The 2927 buffer can be accessed safely by software. */ 2928 __IOM uint32_t EVENTS_SOF; /*!< (@ 0x00000154) Signals that a SOF (start of frame) condition 2929 has been detected on USB lines */ 2930 __IOM uint32_t EVENTS_USBEVENT; /*!< (@ 0x00000158) An event or an error not covered by specific 2931 events has occurred. Check EVENTCAUSE register 2932 to find the cause. */ 2933 __IOM uint32_t EVENTS_EP0SETUP; /*!< (@ 0x0000015C) A valid SETUP token has been received (and acknowledged) 2934 on the control endpoint */ 2935 __IOM uint32_t EVENTS_EPDATA; /*!< (@ 0x00000160) A data transfer has occurred on a data endpoint, 2936 indicated by the EPDATASTATUS register */ 2937 __IM uint32_t RESERVED3[7]; 2938 __IOM uint32_t PUBLISH_USBRESET; /*!< (@ 0x00000180) Publish configuration for event USBRESET */ 2939 __IOM uint32_t PUBLISH_STARTED; /*!< (@ 0x00000184) Publish configuration for event STARTED */ 2940 __IOM uint32_t PUBLISH_ENDEPIN[8]; /*!< (@ 0x00000188) Description collection: Publish configuration 2941 for event ENDEPIN[n] */ 2942 __IOM uint32_t PUBLISH_EP0DATADONE; /*!< (@ 0x000001A8) Publish configuration for event EP0DATADONE */ 2943 __IOM uint32_t PUBLISH_ENDISOIN; /*!< (@ 0x000001AC) Publish configuration for event ENDISOIN */ 2944 __IOM uint32_t PUBLISH_ENDEPOUT[8]; /*!< (@ 0x000001B0) Description collection: Publish configuration 2945 for event ENDEPOUT[n] */ 2946 __IOM uint32_t PUBLISH_ENDISOOUT; /*!< (@ 0x000001D0) Publish configuration for event ENDISOOUT */ 2947 __IOM uint32_t PUBLISH_SOF; /*!< (@ 0x000001D4) Publish configuration for event SOF */ 2948 __IOM uint32_t PUBLISH_USBEVENT; /*!< (@ 0x000001D8) Publish configuration for event USBEVENT */ 2949 __IOM uint32_t PUBLISH_EP0SETUP; /*!< (@ 0x000001DC) Publish configuration for event EP0SETUP */ 2950 __IOM uint32_t PUBLISH_EPDATA; /*!< (@ 0x000001E0) Publish configuration for event EPDATA */ 2951 __IM uint32_t RESERVED4[7]; 2952 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 2953 __IM uint32_t RESERVED5[63]; 2954 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 2955 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 2956 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 2957 __IM uint32_t RESERVED6[61]; 2958 __IOM uint32_t EVENTCAUSE; /*!< (@ 0x00000400) Details on what caused the USBEVENT event */ 2959 __IM uint32_t RESERVED7[7]; 2960 __IOM USBD_HALTED_Type HALTED; /*!< (@ 0x00000420) Unspecified */ 2961 __IM uint32_t RESERVED8; 2962 __IOM uint32_t EPSTATUS; /*!< (@ 0x00000468) Provides information on which endpoint's EasyDMA 2963 registers have been captured */ 2964 __IOM uint32_t EPDATASTATUS; /*!< (@ 0x0000046C) Provides information on which endpoint(s) an 2965 acknowledged data transfer has occurred 2966 (EPDATA event) */ 2967 __IM uint32_t USBADDR; /*!< (@ 0x00000470) Device USB address */ 2968 __IM uint32_t RESERVED9[3]; 2969 __IM uint32_t BMREQUESTTYPE; /*!< (@ 0x00000480) SETUP data, byte 0, bmRequestType */ 2970 __IM uint32_t BREQUEST; /*!< (@ 0x00000484) SETUP data, byte 1, bRequest */ 2971 __IM uint32_t WVALUEL; /*!< (@ 0x00000488) SETUP data, byte 2, LSB of wValue */ 2972 __IM uint32_t WVALUEH; /*!< (@ 0x0000048C) SETUP data, byte 3, MSB of wValue */ 2973 __IM uint32_t WINDEXL; /*!< (@ 0x00000490) SETUP data, byte 4, LSB of wIndex */ 2974 __IM uint32_t WINDEXH; /*!< (@ 0x00000494) SETUP data, byte 5, MSB of wIndex */ 2975 __IM uint32_t WLENGTHL; /*!< (@ 0x00000498) SETUP data, byte 6, LSB of wLength */ 2976 __IM uint32_t WLENGTHH; /*!< (@ 0x0000049C) SETUP data, byte 7, MSB of wLength */ 2977 __IOM USBD_SIZE_Type SIZE; /*!< (@ 0x000004A0) Unspecified */ 2978 __IM uint32_t RESERVED10[15]; 2979 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable USB */ 2980 __IOM uint32_t USBPULLUP; /*!< (@ 0x00000504) Control of the USB pull-up */ 2981 __IOM uint32_t DPDMVALUE; /*!< (@ 0x00000508) State D+ and D- lines will be forced into by 2982 the DPDMDRIVE task. The DPDMNODRIVE task 2983 reverts the control of the lines to MAC 2984 IP (no forcing). */ 2985 __IOM uint32_t DTOGGLE; /*!< (@ 0x0000050C) Data toggle control and status */ 2986 __IOM uint32_t EPINEN; /*!< (@ 0x00000510) Endpoint IN enable */ 2987 __IOM uint32_t EPOUTEN; /*!< (@ 0x00000514) Endpoint OUT enable */ 2988 __OM uint32_t EPSTALL; /*!< (@ 0x00000518) STALL endpoints */ 2989 __IOM uint32_t ISOSPLIT; /*!< (@ 0x0000051C) Controls the split of ISO buffers */ 2990 __IM uint32_t FRAMECNTR; /*!< (@ 0x00000520) Returns the current value of the start of frame 2991 counter */ 2992 __IM uint32_t RESERVED11[2]; 2993 __IOM uint32_t LOWPOWER; /*!< (@ 0x0000052C) Controls USBD peripheral low power mode during 2994 USB suspend */ 2995 __IOM uint32_t ISOINCONFIG; /*!< (@ 0x00000530) Controls the response of the ISO IN endpoint 2996 to an IN token when no data is ready to 2997 be sent */ 2998 __IM uint32_t RESERVED12[51]; 2999 __IOM USBD_EPIN_Type EPIN[8]; /*!< (@ 0x00000600) Unspecified */ 3000 __IOM USBD_ISOIN_Type ISOIN; /*!< (@ 0x000006A0) Unspecified */ 3001 __IM uint32_t RESERVED13[21]; 3002 __IOM USBD_EPOUT_Type EPOUT[8]; /*!< (@ 0x00000700) Unspecified */ 3003 __IOM USBD_ISOOUT_Type ISOOUT; /*!< (@ 0x000007A0) Unspecified */ 3004 } NRF_USBD_Type; /*!< Size = 1964 (0x7ac) */ 3005 3006 3007 3008 /* =========================================================================================================================== */ 3009 /* ================ USBREGULATOR_NS ================ */ 3010 /* =========================================================================================================================== */ 3011 3012 3013 /** 3014 * @brief USB Regulator 0 (USBREGULATOR_NS) 3015 */ 3016 3017 typedef struct { /*!< (@ 0x40037000) USBREGULATOR_NS Structure */ 3018 __IM uint32_t RESERVED[64]; 3019 __IOM uint32_t EVENTS_USBDETECTED; /*!< (@ 0x00000100) Voltage supply detected on VBUS */ 3020 __IOM uint32_t EVENTS_USBREMOVED; /*!< (@ 0x00000104) Voltage supply removed from VBUS */ 3021 __IOM uint32_t EVENTS_USBPWRRDY; /*!< (@ 0x00000108) USB 3.3 V supply ready */ 3022 __IM uint32_t RESERVED1[29]; 3023 __IOM uint32_t PUBLISH_USBDETECTED; /*!< (@ 0x00000180) Publish configuration for event USBDETECTED */ 3024 __IOM uint32_t PUBLISH_USBREMOVED; /*!< (@ 0x00000184) Publish configuration for event USBREMOVED */ 3025 __IOM uint32_t PUBLISH_USBPWRRDY; /*!< (@ 0x00000188) Publish configuration for event USBPWRRDY */ 3026 __IM uint32_t RESERVED2[93]; 3027 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 3028 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 3029 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 3030 __IM uint32_t RESERVED3[61]; 3031 __IM uint32_t USBREGSTATUS; /*!< (@ 0x00000400) USB supply status */ 3032 } NRF_USBREG_Type; /*!< Size = 1028 (0x404) */ 3033 3034 3035 3036 /* =========================================================================================================================== */ 3037 /* ================ KMU_NS ================ */ 3038 /* =========================================================================================================================== */ 3039 3040 3041 /** 3042 * @brief Key management unit 0 (KMU_NS) 3043 */ 3044 3045 typedef struct { /*!< (@ 0x40039000) KMU_NS Structure */ 3046 __OM uint32_t TASKS_PUSH_KEYSLOT; /*!< (@ 0x00000000) Push a key slot over secure APB */ 3047 __IM uint32_t RESERVED[63]; 3048 __IOM uint32_t EVENTS_KEYSLOT_PUSHED; /*!< (@ 0x00000100) Key slot successfully pushed over secure APB */ 3049 __IOM uint32_t EVENTS_KEYSLOT_REVOKED; /*!< (@ 0x00000104) Key slot has been revoked and cannot be tasked 3050 for selection */ 3051 __IOM uint32_t EVENTS_KEYSLOT_ERROR; /*!< (@ 0x00000108) No key slot selected, no destination address 3052 defined, or error during push operation */ 3053 __IM uint32_t RESERVED1[125]; 3054 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 3055 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 3056 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 3057 __IM uint32_t INTPEND; /*!< (@ 0x0000030C) Pending interrupts */ 3058 __IM uint32_t RESERVED2[63]; 3059 __IM uint32_t STATUS; /*!< (@ 0x0000040C) Status bits for KMU operation */ 3060 __IM uint32_t RESERVED3[60]; 3061 __IOM uint32_t SELECTKEYSLOT; /*!< (@ 0x00000500) Select key slot to be read over AHB or pushed 3062 over secure APB when TASKS_PUSH_KEYSLOT 3063 is started */ 3064 } NRF_KMU_Type; /*!< Size = 1284 (0x504) */ 3065 3066 3067 3068 /* =========================================================================================================================== */ 3069 /* ================ NVMC_NS ================ */ 3070 /* =========================================================================================================================== */ 3071 3072 3073 /** 3074 * @brief Non-volatile memory controller 0 (NVMC_NS) 3075 */ 3076 3077 typedef struct { /*!< (@ 0x40039000) NVMC_NS Structure */ 3078 __IM uint32_t RESERVED[256]; 3079 __IM uint32_t READY; /*!< (@ 0x00000400) Ready flag */ 3080 __IM uint32_t RESERVED1; 3081 __IM uint32_t READYNEXT; /*!< (@ 0x00000408) Ready flag */ 3082 __IM uint32_t RESERVED2[62]; 3083 __IOM uint32_t CONFIG; /*!< (@ 0x00000504) Configuration register */ 3084 __IM uint32_t RESERVED3; 3085 __OM uint32_t ERASEALL; /*!< (@ 0x0000050C) Register for erasing all non-volatile user memory */ 3086 __IM uint32_t RESERVED4[3]; 3087 __IOM uint32_t ERASEPAGEPARTIALCFG; /*!< (@ 0x0000051C) Register for partial erase configuration */ 3088 __IM uint32_t RESERVED5[25]; 3089 __IOM uint32_t CONFIGNS; /*!< (@ 0x00000584) Non-secure configuration register */ 3090 __OM uint32_t WRITEUICRNS; /*!< (@ 0x00000588) Non-secure APPROTECT enable register */ 3091 } NRF_NVMC_Type; /*!< Size = 1420 (0x58c) */ 3092 3093 3094 3095 /* =========================================================================================================================== */ 3096 /* ================ P0_NS ================ */ 3097 /* =========================================================================================================================== */ 3098 3099 3100 /** 3101 * @brief GPIO Port 0 (P0_NS) 3102 */ 3103 3104 typedef struct { /*!< (@ 0x40842500) P0_NS Structure */ 3105 __IM uint32_t RESERVED; 3106 __IOM uint32_t OUT; /*!< (@ 0x00000004) Write GPIO port */ 3107 __IOM uint32_t OUTSET; /*!< (@ 0x00000008) Set individual bits in GPIO port */ 3108 __IOM uint32_t OUTCLR; /*!< (@ 0x0000000C) Clear individual bits in GPIO port */ 3109 __IM uint32_t IN; /*!< (@ 0x00000010) Read GPIO port */ 3110 __IOM uint32_t DIR; /*!< (@ 0x00000014) Direction of GPIO pins */ 3111 __IOM uint32_t DIRSET; /*!< (@ 0x00000018) DIR set register */ 3112 __IOM uint32_t DIRCLR; /*!< (@ 0x0000001C) DIR clear register */ 3113 __IOM uint32_t LATCH; /*!< (@ 0x00000020) Latch register indicating what GPIO pins that 3114 have met the criteria set in the PIN_CNF[n].SENSE 3115 registers */ 3116 __IOM uint32_t DETECTMODE; /*!< (@ 0x00000024) Select between default DETECT signal behavior 3117 and LDETECT mode (For non-secure pin only) */ 3118 __IOM uint32_t DETECTMODE_SEC; /*!< (@ 0x00000028) Select between default DETECT signal behavior 3119 and LDETECT mode (For secure pin only) */ 3120 __IM uint32_t RESERVED1[117]; 3121 __IOM uint32_t PIN_CNF[32]; /*!< (@ 0x00000200) Description collection: Configuration of GPIO 3122 pins */ 3123 } NRF_GPIO_Type; /*!< Size = 640 (0x280) */ 3124 3125 3126 3127 /* =========================================================================================================================== */ 3128 /* ================ CRYPTOCELL_S ================ */ 3129 /* =========================================================================================================================== */ 3130 3131 3132 /** 3133 * @brief ARM TrustZone CryptoCell register interface (CRYPTOCELL_S) 3134 */ 3135 3136 typedef struct { /*!< (@ 0x50844000) CRYPTOCELL_S Structure */ 3137 __IM uint32_t RESERVED[320]; 3138 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable CRYPTOCELL subsystem. */ 3139 } NRF_CRYPTOCELL_Type; /*!< Size = 1284 (0x504) */ 3140 3141 3142 3143 /* =========================================================================================================================== */ 3144 /* ================ VMC_NS ================ */ 3145 /* =========================================================================================================================== */ 3146 3147 3148 /** 3149 * @brief Volatile Memory controller 0 (VMC_NS) 3150 */ 3151 3152 typedef struct { /*!< (@ 0x40081000) VMC_NS Structure */ 3153 __IM uint32_t RESERVED[384]; 3154 __IOM VMC_RAM_Type RAM[8]; /*!< (@ 0x00000600) Unspecified */ 3155 } NRF_VMC_Type; /*!< Size = 1664 (0x680) */ 3156 3157 3158 /** @} */ /* End of group Device_Peripheral_peripherals */ 3159 3160 3161 /* =========================================================================================================================== */ 3162 /* ================ Device Specific Peripheral Address Map ================ */ 3163 /* =========================================================================================================================== */ 3164 3165 3166 /** @addtogroup Device_Peripheral_peripheralAddr 3167 * @{ 3168 */ 3169 3170 #define NRF_CACHEDATA_S_BASE 0x00F00000UL 3171 #define NRF_CACHEINFO_S_BASE 0x00F08000UL 3172 #define NRF_FICR_S_BASE 0x00FF0000UL 3173 #define NRF_UICR_S_BASE 0x00FF8000UL 3174 #define NRF_CTI_S_BASE 0xE0042000UL 3175 #define NRF_TAD_S_BASE 0xE0080000UL 3176 #define NRF_DCNF_NS_BASE 0x40000000UL 3177 #define NRF_FPU_NS_BASE 0x40000000UL 3178 #define NRF_DCNF_S_BASE 0x50000000UL 3179 #define NRF_FPU_S_BASE 0x50000000UL 3180 #define NRF_CACHE_S_BASE 0x50001000UL 3181 #define NRF_SPU_S_BASE 0x50003000UL 3182 #define NRF_OSCILLATORS_NS_BASE 0x40004000UL 3183 #define NRF_REGULATORS_NS_BASE 0x40004000UL 3184 #define NRF_OSCILLATORS_S_BASE 0x50004000UL 3185 #define NRF_REGULATORS_S_BASE 0x50004000UL 3186 #define NRF_CLOCK_NS_BASE 0x40005000UL 3187 #define NRF_POWER_NS_BASE 0x40005000UL 3188 #define NRF_RESET_NS_BASE 0x40005000UL 3189 #define NRF_CLOCK_S_BASE 0x50005000UL 3190 #define NRF_POWER_S_BASE 0x50005000UL 3191 #define NRF_RESET_S_BASE 0x50005000UL 3192 #define NRF_CTRLAP_NS_BASE 0x40006000UL 3193 #define NRF_CTRLAP_S_BASE 0x50006000UL 3194 #define NRF_SPIM0_NS_BASE 0x40008000UL 3195 #define NRF_SPIS0_NS_BASE 0x40008000UL 3196 #define NRF_TWIM0_NS_BASE 0x40008000UL 3197 #define NRF_TWIS0_NS_BASE 0x40008000UL 3198 #define NRF_UARTE0_NS_BASE 0x40008000UL 3199 #define NRF_SPIM0_S_BASE 0x50008000UL 3200 #define NRF_SPIS0_S_BASE 0x50008000UL 3201 #define NRF_TWIM0_S_BASE 0x50008000UL 3202 #define NRF_TWIS0_S_BASE 0x50008000UL 3203 #define NRF_UARTE0_S_BASE 0x50008000UL 3204 #define NRF_SPIM1_NS_BASE 0x40009000UL 3205 #define NRF_SPIS1_NS_BASE 0x40009000UL 3206 #define NRF_TWIM1_NS_BASE 0x40009000UL 3207 #define NRF_TWIS1_NS_BASE 0x40009000UL 3208 #define NRF_UARTE1_NS_BASE 0x40009000UL 3209 #define NRF_SPIM1_S_BASE 0x50009000UL 3210 #define NRF_SPIS1_S_BASE 0x50009000UL 3211 #define NRF_TWIM1_S_BASE 0x50009000UL 3212 #define NRF_TWIS1_S_BASE 0x50009000UL 3213 #define NRF_UARTE1_S_BASE 0x50009000UL 3214 #define NRF_SPIM4_NS_BASE 0x4000A000UL 3215 #define NRF_SPIM4_S_BASE 0x5000A000UL 3216 #define NRF_SPIM2_NS_BASE 0x4000B000UL 3217 #define NRF_SPIS2_NS_BASE 0x4000B000UL 3218 #define NRF_TWIM2_NS_BASE 0x4000B000UL 3219 #define NRF_TWIS2_NS_BASE 0x4000B000UL 3220 #define NRF_UARTE2_NS_BASE 0x4000B000UL 3221 #define NRF_SPIM2_S_BASE 0x5000B000UL 3222 #define NRF_SPIS2_S_BASE 0x5000B000UL 3223 #define NRF_TWIM2_S_BASE 0x5000B000UL 3224 #define NRF_TWIS2_S_BASE 0x5000B000UL 3225 #define NRF_UARTE2_S_BASE 0x5000B000UL 3226 #define NRF_SPIM3_NS_BASE 0x4000C000UL 3227 #define NRF_SPIS3_NS_BASE 0x4000C000UL 3228 #define NRF_TWIM3_NS_BASE 0x4000C000UL 3229 #define NRF_TWIS3_NS_BASE 0x4000C000UL 3230 #define NRF_UARTE3_NS_BASE 0x4000C000UL 3231 #define NRF_SPIM3_S_BASE 0x5000C000UL 3232 #define NRF_SPIS3_S_BASE 0x5000C000UL 3233 #define NRF_TWIM3_S_BASE 0x5000C000UL 3234 #define NRF_TWIS3_S_BASE 0x5000C000UL 3235 #define NRF_UARTE3_S_BASE 0x5000C000UL 3236 #define NRF_GPIOTE0_S_BASE 0x5000D000UL 3237 #define NRF_SAADC_NS_BASE 0x4000E000UL 3238 #define NRF_SAADC_S_BASE 0x5000E000UL 3239 #define NRF_TIMER0_NS_BASE 0x4000F000UL 3240 #define NRF_TIMER0_S_BASE 0x5000F000UL 3241 #define NRF_TIMER1_NS_BASE 0x40010000UL 3242 #define NRF_TIMER1_S_BASE 0x50010000UL 3243 #define NRF_TIMER2_NS_BASE 0x40011000UL 3244 #define NRF_TIMER2_S_BASE 0x50011000UL 3245 #define NRF_RTC0_NS_BASE 0x40014000UL 3246 #define NRF_RTC0_S_BASE 0x50014000UL 3247 #define NRF_RTC1_NS_BASE 0x40015000UL 3248 #define NRF_RTC1_S_BASE 0x50015000UL 3249 #define NRF_DPPIC_NS_BASE 0x40017000UL 3250 #define NRF_DPPIC_S_BASE 0x50017000UL 3251 #define NRF_WDT0_NS_BASE 0x40018000UL 3252 #define NRF_WDT0_S_BASE 0x50018000UL 3253 #define NRF_WDT1_NS_BASE 0x40019000UL 3254 #define NRF_WDT1_S_BASE 0x50019000UL 3255 #define NRF_COMP_NS_BASE 0x4001A000UL 3256 #define NRF_LPCOMP_NS_BASE 0x4001A000UL 3257 #define NRF_COMP_S_BASE 0x5001A000UL 3258 #define NRF_LPCOMP_S_BASE 0x5001A000UL 3259 #define NRF_EGU0_NS_BASE 0x4001B000UL 3260 #define NRF_EGU0_S_BASE 0x5001B000UL 3261 #define NRF_EGU1_NS_BASE 0x4001C000UL 3262 #define NRF_EGU1_S_BASE 0x5001C000UL 3263 #define NRF_EGU2_NS_BASE 0x4001D000UL 3264 #define NRF_EGU2_S_BASE 0x5001D000UL 3265 #define NRF_EGU3_NS_BASE 0x4001E000UL 3266 #define NRF_EGU3_S_BASE 0x5001E000UL 3267 #define NRF_EGU4_NS_BASE 0x4001F000UL 3268 #define NRF_EGU4_S_BASE 0x5001F000UL 3269 #define NRF_EGU5_NS_BASE 0x40020000UL 3270 #define NRF_EGU5_S_BASE 0x50020000UL 3271 #define NRF_PWM0_NS_BASE 0x40021000UL 3272 #define NRF_PWM0_S_BASE 0x50021000UL 3273 #define NRF_PWM1_NS_BASE 0x40022000UL 3274 #define NRF_PWM1_S_BASE 0x50022000UL 3275 #define NRF_PWM2_NS_BASE 0x40023000UL 3276 #define NRF_PWM2_S_BASE 0x50023000UL 3277 #define NRF_PWM3_NS_BASE 0x40024000UL 3278 #define NRF_PWM3_S_BASE 0x50024000UL 3279 #define NRF_PDM0_NS_BASE 0x40026000UL 3280 #define NRF_PDM0_S_BASE 0x50026000UL 3281 #define NRF_I2S0_NS_BASE 0x40028000UL 3282 #define NRF_I2S0_S_BASE 0x50028000UL 3283 #define NRF_IPC_NS_BASE 0x4002A000UL 3284 #define NRF_IPC_S_BASE 0x5002A000UL 3285 #define NRF_QSPI_NS_BASE 0x4002B000UL 3286 #define NRF_QSPI_S_BASE 0x5002B000UL 3287 #define NRF_NFCT_NS_BASE 0x4002D000UL 3288 #define NRF_NFCT_S_BASE 0x5002D000UL 3289 #define NRF_GPIOTE1_NS_BASE 0x4002F000UL 3290 #define NRF_MUTEX_NS_BASE 0x40030000UL 3291 #define NRF_MUTEX_S_BASE 0x50030000UL 3292 #define NRF_QDEC0_NS_BASE 0x40033000UL 3293 #define NRF_QDEC0_S_BASE 0x50033000UL 3294 #define NRF_QDEC1_NS_BASE 0x40034000UL 3295 #define NRF_QDEC1_S_BASE 0x50034000UL 3296 #define NRF_USBD_NS_BASE 0x40036000UL 3297 #define NRF_USBD_S_BASE 0x50036000UL 3298 #define NRF_USBREGULATOR_NS_BASE 0x40037000UL 3299 #define NRF_USBREGULATOR_S_BASE 0x50037000UL 3300 #define NRF_KMU_NS_BASE 0x40039000UL 3301 #define NRF_NVMC_NS_BASE 0x40039000UL 3302 #define NRF_KMU_S_BASE 0x50039000UL 3303 #define NRF_NVMC_S_BASE 0x50039000UL 3304 #define NRF_P0_NS_BASE 0x40842500UL 3305 #define NRF_P1_NS_BASE 0x40842800UL 3306 #define NRF_P0_S_BASE 0x50842500UL 3307 #define NRF_P1_S_BASE 0x50842800UL 3308 #define NRF_CRYPTOCELL_S_BASE 0x50844000UL 3309 #define NRF_VMC_NS_BASE 0x40081000UL 3310 #define NRF_VMC_S_BASE 0x50081000UL 3311 3312 /** @} */ /* End of group Device_Peripheral_peripheralAddr */ 3313 3314 3315 /* =========================================================================================================================== */ 3316 /* ================ Peripheral declaration ================ */ 3317 /* =========================================================================================================================== */ 3318 3319 3320 /** @addtogroup Device_Peripheral_declaration 3321 * @{ 3322 */ 3323 3324 #define NRF_CACHEDATA_S ((NRF_CACHEDATA_Type*) NRF_CACHEDATA_S_BASE) 3325 #define NRF_CACHEINFO_S ((NRF_CACHEINFO_Type*) NRF_CACHEINFO_S_BASE) 3326 #define NRF_FICR_S ((NRF_FICR_Type*) NRF_FICR_S_BASE) 3327 #define NRF_UICR_S ((NRF_UICR_Type*) NRF_UICR_S_BASE) 3328 #define NRF_CTI_S ((NRF_CTI_Type*) NRF_CTI_S_BASE) 3329 #define NRF_TAD_S ((NRF_TAD_Type*) NRF_TAD_S_BASE) 3330 #define NRF_DCNF_NS ((NRF_DCNF_Type*) NRF_DCNF_NS_BASE) 3331 #define NRF_FPU_NS ((NRF_FPU_Type*) NRF_FPU_NS_BASE) 3332 #define NRF_DCNF_S ((NRF_DCNF_Type*) NRF_DCNF_S_BASE) 3333 #define NRF_FPU_S ((NRF_FPU_Type*) NRF_FPU_S_BASE) 3334 #define NRF_CACHE_S ((NRF_CACHE_Type*) NRF_CACHE_S_BASE) 3335 #define NRF_SPU_S ((NRF_SPU_Type*) NRF_SPU_S_BASE) 3336 #define NRF_OSCILLATORS_NS ((NRF_OSCILLATORS_Type*) NRF_OSCILLATORS_NS_BASE) 3337 #define NRF_REGULATORS_NS ((NRF_REGULATORS_Type*) NRF_REGULATORS_NS_BASE) 3338 #define NRF_OSCILLATORS_S ((NRF_OSCILLATORS_Type*) NRF_OSCILLATORS_S_BASE) 3339 #define NRF_REGULATORS_S ((NRF_REGULATORS_Type*) NRF_REGULATORS_S_BASE) 3340 #define NRF_CLOCK_NS ((NRF_CLOCK_Type*) NRF_CLOCK_NS_BASE) 3341 #define NRF_POWER_NS ((NRF_POWER_Type*) NRF_POWER_NS_BASE) 3342 #define NRF_RESET_NS ((NRF_RESET_Type*) NRF_RESET_NS_BASE) 3343 #define NRF_CLOCK_S ((NRF_CLOCK_Type*) NRF_CLOCK_S_BASE) 3344 #define NRF_POWER_S ((NRF_POWER_Type*) NRF_POWER_S_BASE) 3345 #define NRF_RESET_S ((NRF_RESET_Type*) NRF_RESET_S_BASE) 3346 #define NRF_CTRLAP_NS ((NRF_CTRLAPPERI_Type*) NRF_CTRLAP_NS_BASE) 3347 #define NRF_CTRLAP_S ((NRF_CTRLAPPERI_Type*) NRF_CTRLAP_S_BASE) 3348 #define NRF_SPIM0_NS ((NRF_SPIM_Type*) NRF_SPIM0_NS_BASE) 3349 #define NRF_SPIS0_NS ((NRF_SPIS_Type*) NRF_SPIS0_NS_BASE) 3350 #define NRF_TWIM0_NS ((NRF_TWIM_Type*) NRF_TWIM0_NS_BASE) 3351 #define NRF_TWIS0_NS ((NRF_TWIS_Type*) NRF_TWIS0_NS_BASE) 3352 #define NRF_UARTE0_NS ((NRF_UARTE_Type*) NRF_UARTE0_NS_BASE) 3353 #define NRF_SPIM0_S ((NRF_SPIM_Type*) NRF_SPIM0_S_BASE) 3354 #define NRF_SPIS0_S ((NRF_SPIS_Type*) NRF_SPIS0_S_BASE) 3355 #define NRF_TWIM0_S ((NRF_TWIM_Type*) NRF_TWIM0_S_BASE) 3356 #define NRF_TWIS0_S ((NRF_TWIS_Type*) NRF_TWIS0_S_BASE) 3357 #define NRF_UARTE0_S ((NRF_UARTE_Type*) NRF_UARTE0_S_BASE) 3358 #define NRF_SPIM1_NS ((NRF_SPIM_Type*) NRF_SPIM1_NS_BASE) 3359 #define NRF_SPIS1_NS ((NRF_SPIS_Type*) NRF_SPIS1_NS_BASE) 3360 #define NRF_TWIM1_NS ((NRF_TWIM_Type*) NRF_TWIM1_NS_BASE) 3361 #define NRF_TWIS1_NS ((NRF_TWIS_Type*) NRF_TWIS1_NS_BASE) 3362 #define NRF_UARTE1_NS ((NRF_UARTE_Type*) NRF_UARTE1_NS_BASE) 3363 #define NRF_SPIM1_S ((NRF_SPIM_Type*) NRF_SPIM1_S_BASE) 3364 #define NRF_SPIS1_S ((NRF_SPIS_Type*) NRF_SPIS1_S_BASE) 3365 #define NRF_TWIM1_S ((NRF_TWIM_Type*) NRF_TWIM1_S_BASE) 3366 #define NRF_TWIS1_S ((NRF_TWIS_Type*) NRF_TWIS1_S_BASE) 3367 #define NRF_UARTE1_S ((NRF_UARTE_Type*) NRF_UARTE1_S_BASE) 3368 #define NRF_SPIM4_NS ((NRF_SPIM_Type*) NRF_SPIM4_NS_BASE) 3369 #define NRF_SPIM4_S ((NRF_SPIM_Type*) NRF_SPIM4_S_BASE) 3370 #define NRF_SPIM2_NS ((NRF_SPIM_Type*) NRF_SPIM2_NS_BASE) 3371 #define NRF_SPIS2_NS ((NRF_SPIS_Type*) NRF_SPIS2_NS_BASE) 3372 #define NRF_TWIM2_NS ((NRF_TWIM_Type*) NRF_TWIM2_NS_BASE) 3373 #define NRF_TWIS2_NS ((NRF_TWIS_Type*) NRF_TWIS2_NS_BASE) 3374 #define NRF_UARTE2_NS ((NRF_UARTE_Type*) NRF_UARTE2_NS_BASE) 3375 #define NRF_SPIM2_S ((NRF_SPIM_Type*) NRF_SPIM2_S_BASE) 3376 #define NRF_SPIS2_S ((NRF_SPIS_Type*) NRF_SPIS2_S_BASE) 3377 #define NRF_TWIM2_S ((NRF_TWIM_Type*) NRF_TWIM2_S_BASE) 3378 #define NRF_TWIS2_S ((NRF_TWIS_Type*) NRF_TWIS2_S_BASE) 3379 #define NRF_UARTE2_S ((NRF_UARTE_Type*) NRF_UARTE2_S_BASE) 3380 #define NRF_SPIM3_NS ((NRF_SPIM_Type*) NRF_SPIM3_NS_BASE) 3381 #define NRF_SPIS3_NS ((NRF_SPIS_Type*) NRF_SPIS3_NS_BASE) 3382 #define NRF_TWIM3_NS ((NRF_TWIM_Type*) NRF_TWIM3_NS_BASE) 3383 #define NRF_TWIS3_NS ((NRF_TWIS_Type*) NRF_TWIS3_NS_BASE) 3384 #define NRF_UARTE3_NS ((NRF_UARTE_Type*) NRF_UARTE3_NS_BASE) 3385 #define NRF_SPIM3_S ((NRF_SPIM_Type*) NRF_SPIM3_S_BASE) 3386 #define NRF_SPIS3_S ((NRF_SPIS_Type*) NRF_SPIS3_S_BASE) 3387 #define NRF_TWIM3_S ((NRF_TWIM_Type*) NRF_TWIM3_S_BASE) 3388 #define NRF_TWIS3_S ((NRF_TWIS_Type*) NRF_TWIS3_S_BASE) 3389 #define NRF_UARTE3_S ((NRF_UARTE_Type*) NRF_UARTE3_S_BASE) 3390 #define NRF_GPIOTE0_S ((NRF_GPIOTE_Type*) NRF_GPIOTE0_S_BASE) 3391 #define NRF_SAADC_NS ((NRF_SAADC_Type*) NRF_SAADC_NS_BASE) 3392 #define NRF_SAADC_S ((NRF_SAADC_Type*) NRF_SAADC_S_BASE) 3393 #define NRF_TIMER0_NS ((NRF_TIMER_Type*) NRF_TIMER0_NS_BASE) 3394 #define NRF_TIMER0_S ((NRF_TIMER_Type*) NRF_TIMER0_S_BASE) 3395 #define NRF_TIMER1_NS ((NRF_TIMER_Type*) NRF_TIMER1_NS_BASE) 3396 #define NRF_TIMER1_S ((NRF_TIMER_Type*) NRF_TIMER1_S_BASE) 3397 #define NRF_TIMER2_NS ((NRF_TIMER_Type*) NRF_TIMER2_NS_BASE) 3398 #define NRF_TIMER2_S ((NRF_TIMER_Type*) NRF_TIMER2_S_BASE) 3399 #define NRF_RTC0_NS ((NRF_RTC_Type*) NRF_RTC0_NS_BASE) 3400 #define NRF_RTC0_S ((NRF_RTC_Type*) NRF_RTC0_S_BASE) 3401 #define NRF_RTC1_NS ((NRF_RTC_Type*) NRF_RTC1_NS_BASE) 3402 #define NRF_RTC1_S ((NRF_RTC_Type*) NRF_RTC1_S_BASE) 3403 #define NRF_DPPIC_NS ((NRF_DPPIC_Type*) NRF_DPPIC_NS_BASE) 3404 #define NRF_DPPIC_S ((NRF_DPPIC_Type*) NRF_DPPIC_S_BASE) 3405 #define NRF_WDT0_NS ((NRF_WDT_Type*) NRF_WDT0_NS_BASE) 3406 #define NRF_WDT0_S ((NRF_WDT_Type*) NRF_WDT0_S_BASE) 3407 #define NRF_WDT1_NS ((NRF_WDT_Type*) NRF_WDT1_NS_BASE) 3408 #define NRF_WDT1_S ((NRF_WDT_Type*) NRF_WDT1_S_BASE) 3409 #define NRF_COMP_NS ((NRF_COMP_Type*) NRF_COMP_NS_BASE) 3410 #define NRF_LPCOMP_NS ((NRF_LPCOMP_Type*) NRF_LPCOMP_NS_BASE) 3411 #define NRF_COMP_S ((NRF_COMP_Type*) NRF_COMP_S_BASE) 3412 #define NRF_LPCOMP_S ((NRF_LPCOMP_Type*) NRF_LPCOMP_S_BASE) 3413 #define NRF_EGU0_NS ((NRF_EGU_Type*) NRF_EGU0_NS_BASE) 3414 #define NRF_EGU0_S ((NRF_EGU_Type*) NRF_EGU0_S_BASE) 3415 #define NRF_EGU1_NS ((NRF_EGU_Type*) NRF_EGU1_NS_BASE) 3416 #define NRF_EGU1_S ((NRF_EGU_Type*) NRF_EGU1_S_BASE) 3417 #define NRF_EGU2_NS ((NRF_EGU_Type*) NRF_EGU2_NS_BASE) 3418 #define NRF_EGU2_S ((NRF_EGU_Type*) NRF_EGU2_S_BASE) 3419 #define NRF_EGU3_NS ((NRF_EGU_Type*) NRF_EGU3_NS_BASE) 3420 #define NRF_EGU3_S ((NRF_EGU_Type*) NRF_EGU3_S_BASE) 3421 #define NRF_EGU4_NS ((NRF_EGU_Type*) NRF_EGU4_NS_BASE) 3422 #define NRF_EGU4_S ((NRF_EGU_Type*) NRF_EGU4_S_BASE) 3423 #define NRF_EGU5_NS ((NRF_EGU_Type*) NRF_EGU5_NS_BASE) 3424 #define NRF_EGU5_S ((NRF_EGU_Type*) NRF_EGU5_S_BASE) 3425 #define NRF_PWM0_NS ((NRF_PWM_Type*) NRF_PWM0_NS_BASE) 3426 #define NRF_PWM0_S ((NRF_PWM_Type*) NRF_PWM0_S_BASE) 3427 #define NRF_PWM1_NS ((NRF_PWM_Type*) NRF_PWM1_NS_BASE) 3428 #define NRF_PWM1_S ((NRF_PWM_Type*) NRF_PWM1_S_BASE) 3429 #define NRF_PWM2_NS ((NRF_PWM_Type*) NRF_PWM2_NS_BASE) 3430 #define NRF_PWM2_S ((NRF_PWM_Type*) NRF_PWM2_S_BASE) 3431 #define NRF_PWM3_NS ((NRF_PWM_Type*) NRF_PWM3_NS_BASE) 3432 #define NRF_PWM3_S ((NRF_PWM_Type*) NRF_PWM3_S_BASE) 3433 #define NRF_PDM0_NS ((NRF_PDM_Type*) NRF_PDM0_NS_BASE) 3434 #define NRF_PDM0_S ((NRF_PDM_Type*) NRF_PDM0_S_BASE) 3435 #define NRF_I2S0_NS ((NRF_I2S_Type*) NRF_I2S0_NS_BASE) 3436 #define NRF_I2S0_S ((NRF_I2S_Type*) NRF_I2S0_S_BASE) 3437 #define NRF_IPC_NS ((NRF_IPC_Type*) NRF_IPC_NS_BASE) 3438 #define NRF_IPC_S ((NRF_IPC_Type*) NRF_IPC_S_BASE) 3439 #define NRF_QSPI_NS ((NRF_QSPI_Type*) NRF_QSPI_NS_BASE) 3440 #define NRF_QSPI_S ((NRF_QSPI_Type*) NRF_QSPI_S_BASE) 3441 #define NRF_NFCT_NS ((NRF_NFCT_Type*) NRF_NFCT_NS_BASE) 3442 #define NRF_NFCT_S ((NRF_NFCT_Type*) NRF_NFCT_S_BASE) 3443 #define NRF_GPIOTE1_NS ((NRF_GPIOTE_Type*) NRF_GPIOTE1_NS_BASE) 3444 #define NRF_MUTEX_NS ((NRF_MUTEX_Type*) NRF_MUTEX_NS_BASE) 3445 #define NRF_MUTEX_S ((NRF_MUTEX_Type*) NRF_MUTEX_S_BASE) 3446 #define NRF_QDEC0_NS ((NRF_QDEC_Type*) NRF_QDEC0_NS_BASE) 3447 #define NRF_QDEC0_S ((NRF_QDEC_Type*) NRF_QDEC0_S_BASE) 3448 #define NRF_QDEC1_NS ((NRF_QDEC_Type*) NRF_QDEC1_NS_BASE) 3449 #define NRF_QDEC1_S ((NRF_QDEC_Type*) NRF_QDEC1_S_BASE) 3450 #define NRF_USBD_NS ((NRF_USBD_Type*) NRF_USBD_NS_BASE) 3451 #define NRF_USBD_S ((NRF_USBD_Type*) NRF_USBD_S_BASE) 3452 #define NRF_USBREGULATOR_NS ((NRF_USBREG_Type*) NRF_USBREGULATOR_NS_BASE) 3453 #define NRF_USBREGULATOR_S ((NRF_USBREG_Type*) NRF_USBREGULATOR_S_BASE) 3454 #define NRF_KMU_NS ((NRF_KMU_Type*) NRF_KMU_NS_BASE) 3455 #define NRF_NVMC_NS ((NRF_NVMC_Type*) NRF_NVMC_NS_BASE) 3456 #define NRF_KMU_S ((NRF_KMU_Type*) NRF_KMU_S_BASE) 3457 #define NRF_NVMC_S ((NRF_NVMC_Type*) NRF_NVMC_S_BASE) 3458 #define NRF_P0_NS ((NRF_GPIO_Type*) NRF_P0_NS_BASE) 3459 #define NRF_P1_NS ((NRF_GPIO_Type*) NRF_P1_NS_BASE) 3460 #define NRF_P0_S ((NRF_GPIO_Type*) NRF_P0_S_BASE) 3461 #define NRF_P1_S ((NRF_GPIO_Type*) NRF_P1_S_BASE) 3462 #define NRF_CRYPTOCELL_S ((NRF_CRYPTOCELL_Type*) NRF_CRYPTOCELL_S_BASE) 3463 #define NRF_VMC_NS ((NRF_VMC_Type*) NRF_VMC_NS_BASE) 3464 #define NRF_VMC_S ((NRF_VMC_Type*) NRF_VMC_S_BASE) 3465 3466 /** @} */ /* End of group Device_Peripheral_declaration */ 3467 3468 3469 #ifdef __cplusplus 3470 } 3471 #endif 3472 3473 #endif /* NRF5340_APPLICATION_H */ 3474 3475 3476 /** @} */ /* End of group nrf5340_application */ 3477 3478 /** @} */ /* End of group Nordic Semiconductor */ 3479