1 /* 2 Copyright (c) 2010 - 2023, 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 nrf9120.h 33 * @brief CMSIS HeaderFile 34 * @version 1 35 * @date 19. December 2023 36 * @note Generated by SVDConv V3.3.35 on Tuesday, 19.12.2023 10:20:04 37 * from File 'nrf9120.svd', 38 * last modified on Tuesday, 19.12.2023 09:18:47 39 */ 40 41 42 43 /** @addtogroup Nordic Semiconductor 44 * @{ 45 */ 46 47 48 /** @addtogroup nrf9120 49 * @{ 50 */ 51 52 53 #ifndef NRF9120_H 54 #define NRF9120_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 /* ========================================== nrf9120 Specific Interrupt Numbers =========================================== */ 87 SPU_IRQn = 3, /*!< 3 SPU */ 88 CLOCK_POWER_IRQn = 5, /*!< 5 CLOCK_POWER */ 89 SPIM0_SPIS0_TWIM0_TWIS0_UARTE0_IRQn= 8, /*!< 8 SPIM0_SPIS0_TWIM0_TWIS0_UARTE0 */ 90 SPIM1_SPIS1_TWIM1_TWIS1_UARTE1_IRQn= 9, /*!< 9 SPIM1_SPIS1_TWIM1_TWIS1_UARTE1 */ 91 SPIM2_SPIS2_TWIM2_TWIS2_UARTE2_IRQn= 10, /*!< 10 SPIM2_SPIS2_TWIM2_TWIS2_UARTE2 */ 92 SPIM3_SPIS3_TWIM3_TWIS3_UARTE3_IRQn= 11, /*!< 11 SPIM3_SPIS3_TWIM3_TWIS3_UARTE3 */ 93 GPIOTE0_IRQn = 13, /*!< 13 GPIOTE0 */ 94 SAADC_IRQn = 14, /*!< 14 SAADC */ 95 TIMER0_IRQn = 15, /*!< 15 TIMER0 */ 96 TIMER1_IRQn = 16, /*!< 16 TIMER1 */ 97 TIMER2_IRQn = 17, /*!< 17 TIMER2 */ 98 RTC0_IRQn = 20, /*!< 20 RTC0 */ 99 RTC1_IRQn = 21, /*!< 21 RTC1 */ 100 WDT_IRQn = 24, /*!< 24 WDT */ 101 EGU0_IRQn = 27, /*!< 27 EGU0 */ 102 EGU1_IRQn = 28, /*!< 28 EGU1 */ 103 EGU2_IRQn = 29, /*!< 29 EGU2 */ 104 EGU3_IRQn = 30, /*!< 30 EGU3 */ 105 EGU4_IRQn = 31, /*!< 31 EGU4 */ 106 EGU5_IRQn = 32, /*!< 32 EGU5 */ 107 PWM0_IRQn = 33, /*!< 33 PWM0 */ 108 PWM1_IRQn = 34, /*!< 34 PWM1 */ 109 PWM2_IRQn = 35, /*!< 35 PWM2 */ 110 PWM3_IRQn = 36, /*!< 36 PWM3 */ 111 PDM_IRQn = 38, /*!< 38 PDM */ 112 I2S_IRQn = 40, /*!< 40 I2S */ 113 IPC_IRQn = 42, /*!< 42 IPC */ 114 FPU_IRQn = 44, /*!< 44 FPU */ 115 GPIOTE1_IRQn = 49, /*!< 49 GPIOTE1 */ 116 KMU_IRQn = 57, /*!< 57 KMU */ 117 CRYPTOCELL_IRQn = 64 /*!< 64 CRYPTOCELL */ 118 } IRQn_Type; 119 120 121 122 /* =========================================================================================================================== */ 123 /* ================ Processor and Core Peripheral Section ================ */ 124 /* =========================================================================================================================== */ 125 126 /* ========================== Configuration of the ARM Cortex-M33 Processor and Core Peripherals =========================== */ 127 #define __CM33_REV 0x0004U /*!< CM33 Core Revision */ 128 #define __INTERRUPTS_MAX 240 /*!< Top interrupt number */ 129 #define __DSP_PRESENT 1 /*!< DSP present or not */ 130 #define __NVIC_PRIO_BITS 3 /*!< Number of Bits used for Priority Levels */ 131 #define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ 132 #define __VTOR_PRESENT 1 /*!< Set to 1 if CPU supports Vector Table Offset Register */ 133 #define __MPU_PRESENT 1 /*!< MPU present */ 134 #define __FPU_PRESENT 1 /*!< FPU present */ 135 #define __FPU_DP 0 /*!< Double Precision FPU */ 136 #define __SAUREGION_PRESENT 0 /*!< SAU region present */ 137 138 139 /** @} */ /* End of group Configuration_of_CMSIS */ 140 141 #include "core_cm33.h" /*!< ARM Cortex-M33 processor and core peripherals */ 142 #include "system_nrf9120.h" /*!< nrf9120 System */ 143 144 #ifndef __IM /*!< Fallback for older CMSIS versions */ 145 #define __IM __I 146 #endif 147 #ifndef __OM /*!< Fallback for older CMSIS versions */ 148 #define __OM __O 149 #endif 150 #ifndef __IOM /*!< Fallback for older CMSIS versions */ 151 #define __IOM __IO 152 #endif 153 154 155 /* ======================================== Start of section using anonymous unions ======================================== */ 156 #if defined (__CC_ARM) 157 #pragma push 158 #pragma anon_unions 159 #elif defined (__ICCARM__) 160 #pragma language=extended 161 #elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) 162 #pragma clang diagnostic push 163 #pragma clang diagnostic ignored "-Wc11-extensions" 164 #pragma clang diagnostic ignored "-Wreserved-id-macro" 165 #pragma clang diagnostic ignored "-Wgnu-anonymous-struct" 166 #pragma clang diagnostic ignored "-Wnested-anon-types" 167 #elif defined (__GNUC__) 168 /* anonymous unions are enabled by default */ 169 #elif defined (__TMS470__) 170 /* anonymous unions are enabled by default */ 171 #elif defined (__TASKING__) 172 #pragma warning 586 173 #elif defined (__CSMC__) 174 /* anonymous unions are enabled by default */ 175 #else 176 #warning Not supported compiler type 177 #endif 178 179 180 /* =========================================================================================================================== */ 181 /* ================ Device Specific Cluster Section ================ */ 182 /* =========================================================================================================================== */ 183 184 185 /** @addtogroup Device_Peripheral_clusters 186 * @{ 187 */ 188 189 190 /** 191 * @brief FICR_SIPINFO [SIPINFO] (SIP-specific device info) 192 */ 193 typedef struct { 194 __IM uint32_t PARTNO; /*!< (@ 0x00000000) SIP part number */ 195 __IM uint8_t HWREVISION[4]; /*!< (@ 0x00000004) Description collection: SIP hardware revision, 196 encoded in ASCII, ex B0A or B1A */ 197 __IM uint8_t VARIANT[4]; /*!< (@ 0x00000008) Description collection: SIP VARIANT, encoded 198 in ASCII, ex SIAA, SIBA or SICA */ 199 } FICR_SIPINFO_Type; /*!< Size = 12 (0xc) */ 200 201 202 /** 203 * @brief FICR_INFO [INFO] (Device info) 204 */ 205 typedef struct { 206 __IM uint32_t RESERVED; 207 __IM uint32_t DEVICEID[2]; /*!< (@ 0x00000004) Description collection: Device identifier */ 208 __IM uint32_t PART; /*!< (@ 0x0000000C) Part code */ 209 __IM uint32_t VARIANT; /*!< (@ 0x00000010) Part Variant, Hardware version and Production 210 configuration */ 211 __IM uint32_t PACKAGE; /*!< (@ 0x00000014) Package option */ 212 __IM uint32_t RAM; /*!< (@ 0x00000018) RAM variant */ 213 __IM uint32_t FLASH; /*!< (@ 0x0000001C) Flash variant */ 214 __IM uint32_t CODEPAGESIZE; /*!< (@ 0x00000020) Code memory page size */ 215 __IM uint32_t CODESIZE; /*!< (@ 0x00000024) Code memory size */ 216 __IM uint32_t DEVICETYPE; /*!< (@ 0x00000028) Device type */ 217 } FICR_INFO_Type; /*!< Size = 44 (0x2c) */ 218 219 220 /** 221 * @brief FICR_TRIMCNF [TRIMCNF] (Unspecified) 222 */ 223 typedef struct { 224 __IM uint32_t ADDR; /*!< (@ 0x00000000) Description cluster: Address */ 225 __IM uint32_t DATA; /*!< (@ 0x00000004) Description cluster: Data */ 226 } FICR_TRIMCNF_Type; /*!< Size = 8 (0x8) */ 227 228 229 /** 230 * @brief FICR_TRNG90B [TRNG90B] (NIST800-90B RNG calibration data) 231 */ 232 typedef struct { 233 __IM uint32_t BYTES; /*!< (@ 0x00000000) Amount of bytes for the required entropy bits */ 234 __IM uint32_t RCCUTOFF; /*!< (@ 0x00000004) Repetition counter cutoff */ 235 __IM uint32_t APCUTOFF; /*!< (@ 0x00000008) Adaptive proportion cutoff */ 236 __IM uint32_t STARTUP; /*!< (@ 0x0000000C) Amount of bytes for the startup tests */ 237 __IM uint32_t ROSC1; /*!< (@ 0x00000010) Sample count for ring oscillator 1 */ 238 __IM uint32_t ROSC2; /*!< (@ 0x00000014) Sample count for ring oscillator 2 */ 239 __IM uint32_t ROSC3; /*!< (@ 0x00000018) Sample count for ring oscillator 3 */ 240 __IM uint32_t ROSC4; /*!< (@ 0x0000001C) Sample count for ring oscillator 4 */ 241 } FICR_TRNG90B_Type; /*!< Size = 32 (0x20) */ 242 243 244 /** 245 * @brief UICR_KEYSLOT_CONFIG [CONFIG] (Unspecified) 246 */ 247 typedef struct { 248 __IOM uint32_t DEST; /*!< (@ 0x00000000) Description cluster: Destination address where 249 content of the key value registers (KEYSLOT.KEYn.VALUE[0-3 250 ) will be pushed by KMU. Note that this 251 address must match that of a peripherals 252 APB mapped write-only key registers, else 253 the KMU can push this key value into an 254 address range which the CPU can potentially 255 read. */ 256 __IOM uint32_t PERM; /*!< (@ 0x00000004) Description cluster: Define permissions for the 257 key slot. Bits 0-15 and 16-31 can only be 258 written when equal to 0xFFFF. */ 259 } UICR_KEYSLOT_CONFIG_Type; /*!< Size = 8 (0x8) */ 260 261 262 /** 263 * @brief UICR_KEYSLOT_KEY [KEY] (Unspecified) 264 */ 265 typedef struct { 266 __IOM uint32_t VALUE[4]; /*!< (@ 0x00000000) Description collection: Define bits [31+o*32:0+o*32] 267 of value assigned to KMU key slot. */ 268 } UICR_KEYSLOT_KEY_Type; /*!< Size = 16 (0x10) */ 269 270 271 /** 272 * @brief UICR_KEYSLOT [KEYSLOT] (Unspecified) 273 */ 274 typedef struct { 275 __IOM UICR_KEYSLOT_CONFIG_Type CONFIG[128]; /*!< (@ 0x00000000) Unspecified */ 276 __IOM UICR_KEYSLOT_KEY_Type KEY[128]; /*!< (@ 0x00000400) Unspecified */ 277 } UICR_KEYSLOT_Type; /*!< Size = 3072 (0xc00) */ 278 279 280 /** 281 * @brief TAD_PSEL [PSEL] (Unspecified) 282 */ 283 typedef struct { 284 __IOM uint32_t TRACECLK; /*!< (@ 0x00000000) Pin configuration for TRACECLK */ 285 __IOM uint32_t TRACEDATA0; /*!< (@ 0x00000004) Pin configuration for TRACEDATA[0] */ 286 __IOM uint32_t TRACEDATA1; /*!< (@ 0x00000008) Pin configuration for TRACEDATA[1] */ 287 __IOM uint32_t TRACEDATA2; /*!< (@ 0x0000000C) Pin configuration for TRACEDATA[2] */ 288 __IOM uint32_t TRACEDATA3; /*!< (@ 0x00000010) Pin configuration for TRACEDATA[3] */ 289 } TAD_PSEL_Type; /*!< Size = 20 (0x14) */ 290 291 292 /** 293 * @brief SPU_EXTDOMAIN [EXTDOMAIN] (Unspecified) 294 */ 295 typedef struct { 296 __IOM uint32_t PERM; /*!< (@ 0x00000000) Description cluster: Access for bus access generated 297 from the external domain n List capabilities 298 of the external domain n */ 299 } SPU_EXTDOMAIN_Type; /*!< Size = 4 (0x4) */ 300 301 302 /** 303 * @brief SPU_DPPI [DPPI] (Unspecified) 304 */ 305 typedef struct { 306 __IOM uint32_t PERM; /*!< (@ 0x00000000) Description cluster: Select between secure and 307 non-secure attribute for the DPPI channels. */ 308 __IOM uint32_t LOCK; /*!< (@ 0x00000004) Description cluster: Prevent further modification 309 of the corresponding PERM register */ 310 } SPU_DPPI_Type; /*!< Size = 8 (0x8) */ 311 312 313 /** 314 * @brief SPU_GPIOPORT [GPIOPORT] (Unspecified) 315 */ 316 typedef struct { 317 __IOM uint32_t PERM; /*!< (@ 0x00000000) Description cluster: Select between secure and 318 non-secure attribute for pins 0 to 31 of 319 port n. */ 320 __IOM uint32_t LOCK; /*!< (@ 0x00000004) Description cluster: Prevent further modification 321 of the corresponding PERM register */ 322 } SPU_GPIOPORT_Type; /*!< Size = 8 (0x8) */ 323 324 325 /** 326 * @brief SPU_FLASHNSC [FLASHNSC] (Unspecified) 327 */ 328 typedef struct { 329 __IOM uint32_t REGION; /*!< (@ 0x00000000) Description cluster: Define which flash region 330 can contain the non-secure callable (NSC) 331 region n */ 332 __IOM uint32_t SIZE; /*!< (@ 0x00000004) Description cluster: Define the size of the non-secure 333 callable (NSC) region n */ 334 } SPU_FLASHNSC_Type; /*!< Size = 8 (0x8) */ 335 336 337 /** 338 * @brief SPU_RAMNSC [RAMNSC] (Unspecified) 339 */ 340 typedef struct { 341 __IOM uint32_t REGION; /*!< (@ 0x00000000) Description cluster: Define which RAM region 342 can contain the non-secure callable (NSC) 343 region n */ 344 __IOM uint32_t SIZE; /*!< (@ 0x00000004) Description cluster: Define the size of the non-secure 345 callable (NSC) region n */ 346 } SPU_RAMNSC_Type; /*!< Size = 8 (0x8) */ 347 348 349 /** 350 * @brief SPU_FLASHREGION [FLASHREGION] (Unspecified) 351 */ 352 typedef struct { 353 __IOM uint32_t PERM; /*!< (@ 0x00000000) Description cluster: Access permissions for flash 354 region n */ 355 } SPU_FLASHREGION_Type; /*!< Size = 4 (0x4) */ 356 357 358 /** 359 * @brief SPU_RAMREGION [RAMREGION] (Unspecified) 360 */ 361 typedef struct { 362 __IOM uint32_t PERM; /*!< (@ 0x00000000) Description cluster: Access permissions for RAM 363 region n */ 364 } SPU_RAMREGION_Type; /*!< Size = 4 (0x4) */ 365 366 367 /** 368 * @brief SPU_PERIPHID [PERIPHID] (Unspecified) 369 */ 370 typedef struct { 371 __IOM uint32_t PERM; /*!< (@ 0x00000000) Description cluster: List capabilities and access 372 permissions for the peripheral with ID n */ 373 } SPU_PERIPHID_Type; /*!< Size = 4 (0x4) */ 374 375 376 /** 377 * @brief POWER_LTEMODEM [LTEMODEM] (LTE Modem) 378 */ 379 typedef struct { 380 __IOM uint32_t STARTN; /*!< (@ 0x00000000) Start LTE modem */ 381 __IOM uint32_t FORCEOFF; /*!< (@ 0x00000004) Force off LTE modem */ 382 } POWER_LTEMODEM_Type; /*!< Size = 8 (0x8) */ 383 384 385 /** 386 * @brief CTRLAPPERI_MAILBOX [MAILBOX] (Unspecified) 387 */ 388 typedef struct { 389 __IM uint32_t RXDATA; /*!< (@ 0x00000000) Data sent from the debugger to the CPU. */ 390 __IM uint32_t RXSTATUS; /*!< (@ 0x00000004) This register shows a status that indicates if 391 data sent from the debugger to the CPU has 392 been read. */ 393 __IM uint32_t RESERVED[30]; 394 __IOM uint32_t TXDATA; /*!< (@ 0x00000080) Data sent from the CPU to the debugger. */ 395 __IM uint32_t TXSTATUS; /*!< (@ 0x00000084) This register shows a status that indicates if 396 the data sent from the CPU to the debugger 397 has been read. */ 398 } CTRLAPPERI_MAILBOX_Type; /*!< Size = 136 (0x88) */ 399 400 401 /** 402 * @brief CTRLAPPERI_ERASEPROTECT [ERASEPROTECT] (Unspecified) 403 */ 404 typedef struct { 405 __IOM uint32_t LOCK; /*!< (@ 0x00000000) This register locks the ERASEPROTECT.DISABLE 406 register from being written until next reset. */ 407 __IOM uint32_t DISABLE; /*!< (@ 0x00000004) This register disables the ERASEPROTECT register 408 and performs an ERASEALL operation. */ 409 } CTRLAPPERI_ERASEPROTECT_Type; /*!< Size = 8 (0x8) */ 410 411 412 /** 413 * @brief SPIM_PSEL [PSEL] (Unspecified) 414 */ 415 typedef struct { 416 __IOM uint32_t SCK; /*!< (@ 0x00000000) Pin select for SCK */ 417 __IOM uint32_t MOSI; /*!< (@ 0x00000004) Pin select for MOSI signal */ 418 __IOM uint32_t MISO; /*!< (@ 0x00000008) Pin select for MISO signal */ 419 } SPIM_PSEL_Type; /*!< Size = 12 (0xc) */ 420 421 422 /** 423 * @brief SPIM_RXD [RXD] (RXD EasyDMA channel) 424 */ 425 typedef struct { 426 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 427 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in receive buffer */ 428 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 429 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 430 } SPIM_RXD_Type; /*!< Size = 16 (0x10) */ 431 432 433 /** 434 * @brief SPIM_TXD [TXD] (TXD EasyDMA channel) 435 */ 436 typedef struct { 437 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 438 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in transmit buffer */ 439 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 440 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 441 } SPIM_TXD_Type; /*!< Size = 16 (0x10) */ 442 443 444 /** 445 * @brief SPIS_PSEL [PSEL] (Unspecified) 446 */ 447 typedef struct { 448 __IOM uint32_t SCK; /*!< (@ 0x00000000) Pin select for SCK */ 449 __IOM uint32_t MISO; /*!< (@ 0x00000004) Pin select for MISO signal */ 450 __IOM uint32_t MOSI; /*!< (@ 0x00000008) Pin select for MOSI signal */ 451 __IOM uint32_t CSN; /*!< (@ 0x0000000C) Pin select for CSN signal */ 452 } SPIS_PSEL_Type; /*!< Size = 16 (0x10) */ 453 454 455 /** 456 * @brief SPIS_RXD [RXD] (Unspecified) 457 */ 458 typedef struct { 459 __IOM uint32_t PTR; /*!< (@ 0x00000000) RXD data pointer */ 460 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in receive buffer */ 461 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes received in last granted transaction */ 462 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 463 } SPIS_RXD_Type; /*!< Size = 16 (0x10) */ 464 465 466 /** 467 * @brief SPIS_TXD [TXD] (Unspecified) 468 */ 469 typedef struct { 470 __IOM uint32_t PTR; /*!< (@ 0x00000000) TXD data pointer */ 471 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in transmit buffer */ 472 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transmitted in last granted transaction */ 473 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 474 } SPIS_TXD_Type; /*!< Size = 16 (0x10) */ 475 476 477 /** 478 * @brief TWIM_PSEL [PSEL] (Unspecified) 479 */ 480 typedef struct { 481 __IOM uint32_t SCL; /*!< (@ 0x00000000) Pin select for SCL signal */ 482 __IOM uint32_t SDA; /*!< (@ 0x00000004) Pin select for SDA signal */ 483 } TWIM_PSEL_Type; /*!< Size = 8 (0x8) */ 484 485 486 /** 487 * @brief TWIM_RXD [RXD] (RXD EasyDMA channel) 488 */ 489 typedef struct { 490 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 491 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in receive buffer */ 492 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 493 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 494 } TWIM_RXD_Type; /*!< Size = 16 (0x10) */ 495 496 497 /** 498 * @brief TWIM_TXD [TXD] (TXD EasyDMA channel) 499 */ 500 typedef struct { 501 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 502 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in transmit buffer */ 503 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 504 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 505 } TWIM_TXD_Type; /*!< Size = 16 (0x10) */ 506 507 508 /** 509 * @brief TWIS_PSEL [PSEL] (Unspecified) 510 */ 511 typedef struct { 512 __IOM uint32_t SCL; /*!< (@ 0x00000000) Pin select for SCL signal */ 513 __IOM uint32_t SDA; /*!< (@ 0x00000004) Pin select for SDA signal */ 514 } TWIS_PSEL_Type; /*!< Size = 8 (0x8) */ 515 516 517 /** 518 * @brief TWIS_RXD [RXD] (RXD EasyDMA channel) 519 */ 520 typedef struct { 521 __IOM uint32_t PTR; /*!< (@ 0x00000000) RXD Data pointer */ 522 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in RXD buffer */ 523 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last RXD transaction */ 524 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 525 } TWIS_RXD_Type; /*!< Size = 16 (0x10) */ 526 527 528 /** 529 * @brief TWIS_TXD [TXD] (TXD EasyDMA channel) 530 */ 531 typedef struct { 532 __IOM uint32_t PTR; /*!< (@ 0x00000000) TXD Data pointer */ 533 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in TXD buffer */ 534 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last TXD transaction */ 535 __IOM uint32_t LIST; /*!< (@ 0x0000000C) EasyDMA list type */ 536 } TWIS_TXD_Type; /*!< Size = 16 (0x10) */ 537 538 539 /** 540 * @brief UARTE_PSEL [PSEL] (Unspecified) 541 */ 542 typedef struct { 543 __IOM uint32_t RTS; /*!< (@ 0x00000000) Pin select for RTS signal */ 544 __IOM uint32_t TXD; /*!< (@ 0x00000004) Pin select for TXD signal */ 545 __IOM uint32_t CTS; /*!< (@ 0x00000008) Pin select for CTS signal */ 546 __IOM uint32_t RXD; /*!< (@ 0x0000000C) Pin select for RXD signal */ 547 } UARTE_PSEL_Type; /*!< Size = 16 (0x10) */ 548 549 550 /** 551 * @brief UARTE_RXD [RXD] (RXD EasyDMA channel) 552 */ 553 typedef struct { 554 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 555 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in receive buffer */ 556 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 557 } UARTE_RXD_Type; /*!< Size = 12 (0xc) */ 558 559 560 /** 561 * @brief UARTE_TXD [TXD] (TXD EasyDMA channel) 562 */ 563 typedef struct { 564 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 565 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of bytes in transmit buffer */ 566 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of bytes transferred in the last transaction */ 567 } UARTE_TXD_Type; /*!< Size = 12 (0xc) */ 568 569 570 /** 571 * @brief SAADC_EVENTS_CH [EVENTS_CH] (Peripheral events.) 572 */ 573 typedef struct { 574 __IOM uint32_t LIMITH; /*!< (@ 0x00000000) Description cluster: Last results is equal or 575 above CH[n].LIMIT.HIGH */ 576 __IOM uint32_t LIMITL; /*!< (@ 0x00000004) Description cluster: Last results is equal or 577 below CH[n].LIMIT.LOW */ 578 } SAADC_EVENTS_CH_Type; /*!< Size = 8 (0x8) */ 579 580 581 /** 582 * @brief SAADC_PUBLISH_CH [PUBLISH_CH] (Publish configuration for events) 583 */ 584 typedef struct { 585 __IOM uint32_t LIMITH; /*!< (@ 0x00000000) Description cluster: Publish configuration for 586 event CH[n].LIMITH */ 587 __IOM uint32_t LIMITL; /*!< (@ 0x00000004) Description cluster: Publish configuration for 588 event CH[n].LIMITL */ 589 } SAADC_PUBLISH_CH_Type; /*!< Size = 8 (0x8) */ 590 591 592 /** 593 * @brief SAADC_CH [CH] (Unspecified) 594 */ 595 typedef struct { 596 __IOM uint32_t PSELP; /*!< (@ 0x00000000) Description cluster: Input positive pin selection 597 for CH[n] */ 598 __IOM uint32_t PSELN; /*!< (@ 0x00000004) Description cluster: Input negative pin selection 599 for CH[n] */ 600 __IOM uint32_t CONFIG; /*!< (@ 0x00000008) Description cluster: Input configuration for 601 CH[n] */ 602 __IOM uint32_t LIMIT; /*!< (@ 0x0000000C) Description cluster: High/low limits for event 603 monitoring a channel */ 604 } SAADC_CH_Type; /*!< Size = 16 (0x10) */ 605 606 607 /** 608 * @brief SAADC_RESULT [RESULT] (RESULT EasyDMA channel) 609 */ 610 typedef struct { 611 __IOM uint32_t PTR; /*!< (@ 0x00000000) Data pointer */ 612 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Maximum number of buffer words to transfer */ 613 __IM uint32_t AMOUNT; /*!< (@ 0x00000008) Number of buffer words transferred since last 614 START */ 615 } SAADC_RESULT_Type; /*!< Size = 12 (0xc) */ 616 617 618 /** 619 * @brief DPPIC_TASKS_CHG [TASKS_CHG] (Channel group tasks) 620 */ 621 typedef struct { 622 __OM uint32_t EN; /*!< (@ 0x00000000) Description cluster: Enable channel group n */ 623 __OM uint32_t DIS; /*!< (@ 0x00000004) Description cluster: Disable channel group n */ 624 } DPPIC_TASKS_CHG_Type; /*!< Size = 8 (0x8) */ 625 626 627 /** 628 * @brief DPPIC_SUBSCRIBE_CHG [SUBSCRIBE_CHG] (Subscribe configuration for tasks) 629 */ 630 typedef struct { 631 __IOM uint32_t EN; /*!< (@ 0x00000000) Description cluster: Subscribe configuration 632 for task CHG[n].EN */ 633 __IOM uint32_t DIS; /*!< (@ 0x00000004) Description cluster: Subscribe configuration 634 for task CHG[n].DIS */ 635 } DPPIC_SUBSCRIBE_CHG_Type; /*!< Size = 8 (0x8) */ 636 637 638 /** 639 * @brief PWM_SEQ [SEQ] (Unspecified) 640 */ 641 typedef struct { 642 __IOM uint32_t PTR; /*!< (@ 0x00000000) Description cluster: Beginning address in RAM 643 of this sequence */ 644 __IOM uint32_t CNT; /*!< (@ 0x00000004) Description cluster: Number of values (duty cycles) 645 in this sequence */ 646 __IOM uint32_t REFRESH; /*!< (@ 0x00000008) Description cluster: Number of additional PWM 647 periods between samples loaded into compare 648 register */ 649 __IOM uint32_t ENDDELAY; /*!< (@ 0x0000000C) Description cluster: Time added after the sequence */ 650 __IM uint32_t RESERVED[4]; 651 } PWM_SEQ_Type; /*!< Size = 32 (0x20) */ 652 653 654 /** 655 * @brief PWM_PSEL [PSEL] (Unspecified) 656 */ 657 typedef struct { 658 __IOM uint32_t OUT[4]; /*!< (@ 0x00000000) Description collection: Output pin select for 659 PWM channel n */ 660 } PWM_PSEL_Type; /*!< Size = 16 (0x10) */ 661 662 663 /** 664 * @brief PDM_PSEL [PSEL] (Unspecified) 665 */ 666 typedef struct { 667 __IOM uint32_t CLK; /*!< (@ 0x00000000) Pin number configuration for PDM CLK signal */ 668 __IOM uint32_t DIN; /*!< (@ 0x00000004) Pin number configuration for PDM DIN signal */ 669 } PDM_PSEL_Type; /*!< Size = 8 (0x8) */ 670 671 672 /** 673 * @brief PDM_SAMPLE [SAMPLE] (Unspecified) 674 */ 675 typedef struct { 676 __IOM uint32_t PTR; /*!< (@ 0x00000000) RAM address pointer to write samples to with 677 EasyDMA */ 678 __IOM uint32_t MAXCNT; /*!< (@ 0x00000004) Number of samples to allocate memory for in EasyDMA 679 mode */ 680 } PDM_SAMPLE_Type; /*!< Size = 8 (0x8) */ 681 682 683 /** 684 * @brief I2S_CONFIG [CONFIG] (Unspecified) 685 */ 686 typedef struct { 687 __IOM uint32_t MODE; /*!< (@ 0x00000000) I2S mode. */ 688 __IOM uint32_t RXEN; /*!< (@ 0x00000004) Reception (RX) enable. */ 689 __IOM uint32_t TXEN; /*!< (@ 0x00000008) Transmission (TX) enable. */ 690 __IOM uint32_t MCKEN; /*!< (@ 0x0000000C) Master clock generator enable. */ 691 __IOM uint32_t MCKFREQ; /*!< (@ 0x00000010) Master clock generator frequency. */ 692 __IOM uint32_t RATIO; /*!< (@ 0x00000014) MCK / LRCK ratio. */ 693 __IOM uint32_t SWIDTH; /*!< (@ 0x00000018) Sample width. */ 694 __IOM uint32_t ALIGN; /*!< (@ 0x0000001C) Alignment of sample within a frame. */ 695 __IOM uint32_t FORMAT; /*!< (@ 0x00000020) Frame format. */ 696 __IOM uint32_t CHANNELS; /*!< (@ 0x00000024) Enable channels. */ 697 } I2S_CONFIG_Type; /*!< Size = 40 (0x28) */ 698 699 700 /** 701 * @brief I2S_RXD [RXD] (Unspecified) 702 */ 703 typedef struct { 704 __IOM uint32_t PTR; /*!< (@ 0x00000000) Receive buffer RAM start address. */ 705 } I2S_RXD_Type; /*!< Size = 4 (0x4) */ 706 707 708 /** 709 * @brief I2S_TXD [TXD] (Unspecified) 710 */ 711 typedef struct { 712 __IOM uint32_t PTR; /*!< (@ 0x00000000) Transmit buffer RAM start address. */ 713 } I2S_TXD_Type; /*!< Size = 4 (0x4) */ 714 715 716 /** 717 * @brief I2S_RXTXD [RXTXD] (Unspecified) 718 */ 719 typedef struct { 720 __IOM uint32_t MAXCNT; /*!< (@ 0x00000000) Size of RXD and TXD buffers. */ 721 } I2S_RXTXD_Type; /*!< Size = 4 (0x4) */ 722 723 724 /** 725 * @brief I2S_PSEL [PSEL] (Unspecified) 726 */ 727 typedef struct { 728 __IOM uint32_t MCK; /*!< (@ 0x00000000) Pin select for MCK signal. */ 729 __IOM uint32_t SCK; /*!< (@ 0x00000004) Pin select for SCK signal. */ 730 __IOM uint32_t LRCK; /*!< (@ 0x00000008) Pin select for LRCK signal. */ 731 __IOM uint32_t SDIN; /*!< (@ 0x0000000C) Pin select for SDIN signal. */ 732 __IOM uint32_t SDOUT; /*!< (@ 0x00000010) Pin select for SDOUT signal. */ 733 } I2S_PSEL_Type; /*!< Size = 20 (0x14) */ 734 735 736 /** 737 * @brief APPROTECT_SECUREAPPROTECT [SECUREAPPROTECT] (Unspecified) 738 */ 739 typedef struct { 740 union { 741 __IOM uint32_t DISABLE; /*!< (@ 0x00000000) Software disable SECUREAPPROTECT mechanism */ 742 __IOM uint32_t FORCEPROTECT; /*!< (@ 0x00000000) Software force SECUREAPPROTECT mechanism */ 743 }; 744 } APPROTECT_SECUREAPPROTECT_Type; /*!< Size = 4 (0x4) */ 745 746 747 /** 748 * @brief APPROTECT_APPROTECT [APPROTECT] (Unspecified) 749 */ 750 typedef struct { 751 union { 752 __IOM uint32_t DISABLE; /*!< (@ 0x00000000) Software disable APPROTECT mechanism */ 753 __IOM uint32_t FORCEPROTECT; /*!< (@ 0x00000000) Software force APPROTECT mechanism */ 754 }; 755 } APPROTECT_APPROTECT_Type; /*!< Size = 4 (0x4) */ 756 757 758 /** 759 * @brief VMC_RAM [RAM] (Unspecified) 760 */ 761 typedef struct { 762 __IOM uint32_t POWER; /*!< (@ 0x00000000) Description cluster: RAMn power control register */ 763 __OM uint32_t POWERSET; /*!< (@ 0x00000004) Description cluster: RAMn power control set register */ 764 __OM uint32_t POWERCLR; /*!< (@ 0x00000008) Description cluster: RAMn power control clear 765 register */ 766 __IM uint32_t RESERVED; 767 } VMC_RAM_Type; /*!< Size = 16 (0x10) */ 768 769 770 /** @} */ /* End of group Device_Peripheral_clusters */ 771 772 773 /* =========================================================================================================================== */ 774 /* ================ Device Specific Peripheral Section ================ */ 775 /* =========================================================================================================================== */ 776 777 778 /** @addtogroup Device_Peripheral_peripherals 779 * @{ 780 */ 781 782 783 784 /* =========================================================================================================================== */ 785 /* ================ FICR_S ================ */ 786 /* =========================================================================================================================== */ 787 788 789 /** 790 * @brief Factory Information Configuration Registers (FICR_S) 791 */ 792 793 typedef struct { /*!< (@ 0x00FF0000) FICR_S Structure */ 794 __IM uint32_t RESERVED[80]; 795 __IOM FICR_SIPINFO_Type SIPINFO; /*!< (@ 0x00000140) SIP-specific device info */ 796 __IM uint32_t RESERVED1[45]; 797 __IOM FICR_INFO_Type INFO; /*!< (@ 0x00000200) Device info */ 798 __IM uint32_t RESERVED2[53]; 799 __IOM FICR_TRIMCNF_Type TRIMCNF[256]; /*!< (@ 0x00000300) Unspecified */ 800 __IM uint32_t RESERVED3[64]; 801 __IOM FICR_TRNG90B_Type TRNG90B; /*!< (@ 0x00000C00) NIST800-90B RNG calibration data */ 802 } NRF_FICR_Type; /*!< Size = 3104 (0xc20) */ 803 804 805 806 /* =========================================================================================================================== */ 807 /* ================ UICR_S ================ */ 808 /* =========================================================================================================================== */ 809 810 811 /** 812 * @brief User information configuration registers User information configuration registers (UICR_S) 813 */ 814 815 typedef struct { /*!< (@ 0x00FF8000) UICR_S Structure */ 816 __IOM uint32_t APPROTECT; /*!< (@ 0x00000000) Access port protection */ 817 __IM uint32_t RESERVED[4]; 818 __IOM uint32_t XOSC32M; /*!< (@ 0x00000014) Oscillator control */ 819 __IM uint32_t RESERVED1; 820 __IOM uint32_t HFXOSRC; /*!< (@ 0x0000001C) HFXO clock source selection */ 821 __IOM uint32_t HFXOCNT; /*!< (@ 0x00000020) HFXO startup counter */ 822 __IOM uint32_t APPNVMCPOFGUARD; /*!< (@ 0x00000024) Enable blocking NVM WRITE and aborting NVM ERASE 823 for Application NVM in POFWARN condition 824 . */ 825 __IOM uint32_t PMICCONF; /*!< (@ 0x00000028) Polarity of PMIC polarity configuration signals. */ 826 __IOM uint32_t SECUREAPPROTECT; /*!< (@ 0x0000002C) Secure access port protection */ 827 __IOM uint32_t ERASEPROTECT; /*!< (@ 0x00000030) Erase protection */ 828 __IM uint32_t RESERVED2[53]; 829 __IOM uint32_t OTP[190]; /*!< (@ 0x00000108) Description collection: One time programmable 830 memory */ 831 __IOM UICR_KEYSLOT_Type KEYSLOT; /*!< (@ 0x00000400) Unspecified */ 832 } NRF_UICR_Type; /*!< Size = 4096 (0x1000) */ 833 834 835 836 /* =========================================================================================================================== */ 837 /* ================ TAD_S ================ */ 838 /* =========================================================================================================================== */ 839 840 841 /** 842 * @brief Trace and debug control (TAD_S) 843 */ 844 845 typedef struct { /*!< (@ 0xE0080000) TAD_S Structure */ 846 __OM uint32_t TASKS_CLOCKSTART; /*!< (@ 0x00000000) Start all trace and debug clocks. */ 847 __OM uint32_t TASKS_CLOCKSTOP; /*!< (@ 0x00000004) Stop all trace and debug clocks. */ 848 __IM uint32_t RESERVED[318]; 849 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable debug domain and aquire selected GPIOs */ 850 __IOM TAD_PSEL_Type PSEL; /*!< (@ 0x00000504) Unspecified */ 851 __IOM uint32_t TRACEPORTSPEED; /*!< (@ 0x00000518) Clocking options for the Trace Port debug interface 852 Reset behavior is the same as debug components */ 853 } NRF_TAD_Type; /*!< Size = 1308 (0x51c) */ 854 855 856 857 /* =========================================================================================================================== */ 858 /* ================ SPU_S ================ */ 859 /* =========================================================================================================================== */ 860 861 862 /** 863 * @brief System protection unit (SPU_S) 864 */ 865 866 typedef struct { /*!< (@ 0x50003000) SPU_S Structure */ 867 __IM uint32_t RESERVED[64]; 868 __IOM uint32_t EVENTS_RAMACCERR; /*!< (@ 0x00000100) A security violation has been detected for the 869 RAM memory space */ 870 __IOM uint32_t EVENTS_FLASHACCERR; /*!< (@ 0x00000104) A security violation has been detected for the 871 flash memory space */ 872 __IOM uint32_t EVENTS_PERIPHACCERR; /*!< (@ 0x00000108) A security violation has been detected on one 873 or several peripherals */ 874 __IM uint32_t RESERVED1[29]; 875 __IOM uint32_t PUBLISH_RAMACCERR; /*!< (@ 0x00000180) Publish configuration for event RAMACCERR */ 876 __IOM uint32_t PUBLISH_FLASHACCERR; /*!< (@ 0x00000184) Publish configuration for event FLASHACCERR */ 877 __IOM uint32_t PUBLISH_PERIPHACCERR; /*!< (@ 0x00000188) Publish configuration for event PERIPHACCERR */ 878 __IM uint32_t RESERVED2[93]; 879 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 880 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 881 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 882 __IM uint32_t RESERVED3[61]; 883 __IM uint32_t CAP; /*!< (@ 0x00000400) Show implemented features for the current device */ 884 __IM uint32_t RESERVED4[15]; 885 __IOM SPU_EXTDOMAIN_Type EXTDOMAIN[1]; /*!< (@ 0x00000440) Unspecified */ 886 __IM uint32_t RESERVED5[15]; 887 __IOM SPU_DPPI_Type DPPI[1]; /*!< (@ 0x00000480) Unspecified */ 888 __IM uint32_t RESERVED6[14]; 889 __IOM SPU_GPIOPORT_Type GPIOPORT[1]; /*!< (@ 0x000004C0) Unspecified */ 890 __IM uint32_t RESERVED7[14]; 891 __IOM SPU_FLASHNSC_Type FLASHNSC[2]; /*!< (@ 0x00000500) Unspecified */ 892 __IM uint32_t RESERVED8[12]; 893 __IOM SPU_RAMNSC_Type RAMNSC[2]; /*!< (@ 0x00000540) Unspecified */ 894 __IM uint32_t RESERVED9[44]; 895 __IOM SPU_FLASHREGION_Type FLASHREGION[32]; /*!< (@ 0x00000600) Unspecified */ 896 __IM uint32_t RESERVED10[32]; 897 __IOM SPU_RAMREGION_Type RAMREGION[32]; /*!< (@ 0x00000700) Unspecified */ 898 __IM uint32_t RESERVED11[32]; 899 __IOM SPU_PERIPHID_Type PERIPHID[67]; /*!< (@ 0x00000800) Unspecified */ 900 } NRF_SPU_Type; /*!< Size = 2316 (0x90c) */ 901 902 903 904 /* =========================================================================================================================== */ 905 /* ================ REGULATORS_NS ================ */ 906 /* =========================================================================================================================== */ 907 908 909 /** 910 * @brief Voltage regulators control 0 (REGULATORS_NS) 911 */ 912 913 typedef struct { /*!< (@ 0x40004000) REGULATORS_NS Structure */ 914 __IM uint32_t RESERVED[320]; 915 __OM uint32_t SYSTEMOFF; /*!< (@ 0x00000500) System OFF register */ 916 __IM uint32_t RESERVED1[4]; 917 __IOM uint32_t EXTPOFCON; /*!< (@ 0x00000514) External power failure warning configuration */ 918 __IM uint32_t RESERVED2[24]; 919 __IOM uint32_t DCDCEN; /*!< (@ 0x00000578) Enable DC/DC mode of the main voltage regulator. */ 920 } NRF_REGULATORS_Type; /*!< Size = 1404 (0x57c) */ 921 922 923 924 /* =========================================================================================================================== */ 925 /* ================ CLOCK_NS ================ */ 926 /* =========================================================================================================================== */ 927 928 929 /** 930 * @brief Clock management 0 (CLOCK_NS) 931 */ 932 933 typedef struct { /*!< (@ 0x40005000) CLOCK_NS Structure */ 934 __OM uint32_t TASKS_HFCLKSTART; /*!< (@ 0x00000000) Start HFCLK source */ 935 __OM uint32_t TASKS_HFCLKSTOP; /*!< (@ 0x00000004) Stop HFCLK source */ 936 __OM uint32_t TASKS_LFCLKSTART; /*!< (@ 0x00000008) Start LFCLK source */ 937 __OM uint32_t TASKS_LFCLKSTOP; /*!< (@ 0x0000000C) Stop LFCLK source */ 938 __IM uint32_t RESERVED[28]; 939 __IOM uint32_t SUBSCRIBE_HFCLKSTART; /*!< (@ 0x00000080) Subscribe configuration for task HFCLKSTART */ 940 __IOM uint32_t SUBSCRIBE_HFCLKSTOP; /*!< (@ 0x00000084) Subscribe configuration for task HFCLKSTOP */ 941 __IOM uint32_t SUBSCRIBE_LFCLKSTART; /*!< (@ 0x00000088) Subscribe configuration for task LFCLKSTART */ 942 __IOM uint32_t SUBSCRIBE_LFCLKSTOP; /*!< (@ 0x0000008C) Subscribe configuration for task LFCLKSTOP */ 943 __IM uint32_t RESERVED1[28]; 944 __IOM uint32_t EVENTS_HFCLKSTARTED; /*!< (@ 0x00000100) HFCLK oscillator started */ 945 __IOM uint32_t EVENTS_LFCLKSTARTED; /*!< (@ 0x00000104) LFCLK started */ 946 __IM uint32_t RESERVED2[30]; 947 __IOM uint32_t PUBLISH_HFCLKSTARTED; /*!< (@ 0x00000180) Publish configuration for event HFCLKSTARTED */ 948 __IOM uint32_t PUBLISH_LFCLKSTARTED; /*!< (@ 0x00000184) Publish configuration for event LFCLKSTARTED */ 949 __IM uint32_t RESERVED3[94]; 950 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 951 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 952 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 953 __IM uint32_t INTPEND; /*!< (@ 0x0000030C) Pending interrupts */ 954 __IM uint32_t RESERVED4[62]; 955 __IM uint32_t HFCLKRUN; /*!< (@ 0x00000408) Status indicating that HFCLKSTART task has been 956 triggered */ 957 __IM uint32_t HFCLKSTAT; /*!< (@ 0x0000040C) The register shows if HFXO has been requested 958 by triggering HFCLKSTART task and if it 959 has been started (STATE) */ 960 __IM uint32_t RESERVED5; 961 __IM uint32_t LFCLKRUN; /*!< (@ 0x00000414) Status indicating that LFCLKSTART task has been 962 triggered */ 963 __IM uint32_t LFCLKSTAT; /*!< (@ 0x00000418) The register shows which LFCLK source has been 964 requested (SRC) when triggering LFCLKSTART 965 task and if the source has been started 966 (STATE) */ 967 __IM uint32_t LFCLKSRCCOPY; /*!< (@ 0x0000041C) Copy of LFCLKSRC register, set after LFCLKSTART 968 task has been triggered */ 969 __IM uint32_t RESERVED6[62]; 970 __IOM uint32_t LFCLKSRC; /*!< (@ 0x00000518) Clock source for the LFCLK. LFCLKSTART task starts 971 starts a clock source selected with this 972 register. */ 973 } NRF_CLOCK_Type; /*!< Size = 1308 (0x51c) */ 974 975 976 977 /* =========================================================================================================================== */ 978 /* ================ POWER_NS ================ */ 979 /* =========================================================================================================================== */ 980 981 982 /** 983 * @brief Power control 0 (POWER_NS) 984 */ 985 986 typedef struct { /*!< (@ 0x40005000) POWER_NS Structure */ 987 __IM uint32_t RESERVED[28]; 988 __OM uint32_t TASKS_PWMREQSTART; /*!< (@ 0x00000070) Request forcing PWM mode in external DC/DC voltage 989 regulator. (Drives FPWM_DCDC pin high or 990 low depending on a setting in UICR). */ 991 __OM uint32_t TASKS_PWMREQSTOP; /*!< (@ 0x00000074) Stop requesting forcing PWM mode in external 992 DC/DC voltage regulator */ 993 __OM uint32_t TASKS_CONSTLAT; /*!< (@ 0x00000078) Enable constant latency mode. */ 994 __OM uint32_t TASKS_LOWPWR; /*!< (@ 0x0000007C) Enable low power mode (variable latency) */ 995 __IM uint32_t RESERVED1[28]; 996 __IOM uint32_t SUBSCRIBE_PWMREQSTART; /*!< (@ 0x000000F0) Subscribe configuration for task PWMREQSTART */ 997 __IOM uint32_t SUBSCRIBE_PWMREQSTOP; /*!< (@ 0x000000F4) Subscribe configuration for task PWMREQSTOP */ 998 __IOM uint32_t SUBSCRIBE_CONSTLAT; /*!< (@ 0x000000F8) Subscribe configuration for task CONSTLAT */ 999 __IOM uint32_t SUBSCRIBE_LOWPWR; /*!< (@ 0x000000FC) Subscribe configuration for task LOWPWR */ 1000 __IM uint32_t RESERVED2[2]; 1001 __IOM uint32_t EVENTS_POFWARN; /*!< (@ 0x00000108) Power failure warning */ 1002 __IM uint32_t RESERVED3[2]; 1003 __IOM uint32_t EVENTS_SLEEPENTER; /*!< (@ 0x00000114) CPU entered WFI/WFE sleep */ 1004 __IOM uint32_t EVENTS_SLEEPEXIT; /*!< (@ 0x00000118) CPU exited WFI/WFE sleep */ 1005 __IM uint32_t RESERVED4[27]; 1006 __IOM uint32_t PUBLISH_POFWARN; /*!< (@ 0x00000188) Publish configuration for event POFWARN */ 1007 __IM uint32_t RESERVED5[2]; 1008 __IOM uint32_t PUBLISH_SLEEPENTER; /*!< (@ 0x00000194) Publish configuration for event SLEEPENTER */ 1009 __IOM uint32_t PUBLISH_SLEEPEXIT; /*!< (@ 0x00000198) Publish configuration for event SLEEPEXIT */ 1010 __IM uint32_t RESERVED6[89]; 1011 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1012 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1013 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1014 __IM uint32_t RESERVED7[61]; 1015 __IOM uint32_t RESETREAS; /*!< (@ 0x00000400) Reset reason */ 1016 __IM uint32_t RESERVED8[15]; 1017 __IM uint32_t POWERSTATUS; /*!< (@ 0x00000440) Modem domain power status */ 1018 __IM uint32_t RESERVED9[54]; 1019 __IOM uint32_t GPREGRET[2]; /*!< (@ 0x0000051C) Description collection: General purpose retention 1020 register */ 1021 __IM uint32_t RESERVED10[59]; 1022 __IOM POWER_LTEMODEM_Type LTEMODEM; /*!< (@ 0x00000610) LTE Modem */ 1023 } NRF_POWER_Type; /*!< Size = 1560 (0x618) */ 1024 1025 1026 1027 /* =========================================================================================================================== */ 1028 /* ================ CTRL_AP_PERI_S ================ */ 1029 /* =========================================================================================================================== */ 1030 1031 1032 /** 1033 * @brief Control access port (CTRL_AP_PERI_S) 1034 */ 1035 1036 typedef struct { /*!< (@ 0x50006000) CTRL_AP_PERI_S Structure */ 1037 __IM uint32_t RESERVED[256]; 1038 __IOM CTRLAPPERI_MAILBOX_Type MAILBOX; /*!< (@ 0x00000400) Unspecified */ 1039 __IM uint32_t RESERVED1[30]; 1040 __IOM CTRLAPPERI_ERASEPROTECT_Type ERASEPROTECT;/*!< (@ 0x00000500) Unspecified */ 1041 } NRF_CTRLAPPERI_Type; /*!< Size = 1288 (0x508) */ 1042 1043 1044 1045 /* =========================================================================================================================== */ 1046 /* ================ SPIM0_NS ================ */ 1047 /* =========================================================================================================================== */ 1048 1049 1050 /** 1051 * @brief Serial Peripheral Interface Master with EasyDMA 0 (SPIM0_NS) 1052 */ 1053 1054 typedef struct { /*!< (@ 0x40008000) SPIM0_NS Structure */ 1055 __IM uint32_t RESERVED[4]; 1056 __OM uint32_t TASKS_START; /*!< (@ 0x00000010) Start SPI transaction */ 1057 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000014) Stop SPI transaction */ 1058 __IM uint32_t RESERVED1; 1059 __OM uint32_t TASKS_SUSPEND; /*!< (@ 0x0000001C) Suspend SPI transaction */ 1060 __OM uint32_t TASKS_RESUME; /*!< (@ 0x00000020) Resume SPI transaction */ 1061 __IM uint32_t RESERVED2[27]; 1062 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000090) Subscribe configuration for task START */ 1063 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000094) Subscribe configuration for task STOP */ 1064 __IM uint32_t RESERVED3; 1065 __IOM uint32_t SUBSCRIBE_SUSPEND; /*!< (@ 0x0000009C) Subscribe configuration for task SUSPEND */ 1066 __IOM uint32_t SUBSCRIBE_RESUME; /*!< (@ 0x000000A0) Subscribe configuration for task RESUME */ 1067 __IM uint32_t RESERVED4[24]; 1068 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000104) SPI transaction has stopped */ 1069 __IM uint32_t RESERVED5[2]; 1070 __IOM uint32_t EVENTS_ENDRX; /*!< (@ 0x00000110) End of RXD buffer reached */ 1071 __IM uint32_t RESERVED6; 1072 __IOM uint32_t EVENTS_END; /*!< (@ 0x00000118) End of RXD buffer and TXD buffer reached */ 1073 __IM uint32_t RESERVED7; 1074 __IOM uint32_t EVENTS_ENDTX; /*!< (@ 0x00000120) End of TXD buffer reached */ 1075 __IM uint32_t RESERVED8[10]; 1076 __IOM uint32_t EVENTS_STARTED; /*!< (@ 0x0000014C) Transaction started */ 1077 __IM uint32_t RESERVED9[13]; 1078 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000184) Publish configuration for event STOPPED */ 1079 __IM uint32_t RESERVED10[2]; 1080 __IOM uint32_t PUBLISH_ENDRX; /*!< (@ 0x00000190) Publish configuration for event ENDRX */ 1081 __IM uint32_t RESERVED11; 1082 __IOM uint32_t PUBLISH_END; /*!< (@ 0x00000198) Publish configuration for event END */ 1083 __IM uint32_t RESERVED12; 1084 __IOM uint32_t PUBLISH_ENDTX; /*!< (@ 0x000001A0) Publish configuration for event ENDTX */ 1085 __IM uint32_t RESERVED13[10]; 1086 __IOM uint32_t PUBLISH_STARTED; /*!< (@ 0x000001CC) Publish configuration for event STARTED */ 1087 __IM uint32_t RESERVED14[12]; 1088 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1089 __IM uint32_t RESERVED15[64]; 1090 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1091 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1092 __IM uint32_t RESERVED16[125]; 1093 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable SPIM */ 1094 __IM uint32_t RESERVED17; 1095 __IOM SPIM_PSEL_Type PSEL; /*!< (@ 0x00000508) Unspecified */ 1096 __IM uint32_t RESERVED18[4]; 1097 __IOM uint32_t FREQUENCY; /*!< (@ 0x00000524) SPI frequency. Accuracy depends on the HFCLK 1098 source selected. */ 1099 __IM uint32_t RESERVED19[3]; 1100 __IOM SPIM_RXD_Type RXD; /*!< (@ 0x00000534) RXD EasyDMA channel */ 1101 __IOM SPIM_TXD_Type TXD; /*!< (@ 0x00000544) TXD EasyDMA channel */ 1102 __IOM uint32_t CONFIG; /*!< (@ 0x00000554) Configuration register */ 1103 __IM uint32_t RESERVED20[26]; 1104 __IOM uint32_t ORC; /*!< (@ 0x000005C0) Over-read character. Character clocked out in 1105 case an over-read of the TXD buffer. */ 1106 } NRF_SPIM_Type; /*!< Size = 1476 (0x5c4) */ 1107 1108 1109 1110 /* =========================================================================================================================== */ 1111 /* ================ SPIS0_NS ================ */ 1112 /* =========================================================================================================================== */ 1113 1114 1115 /** 1116 * @brief SPI Slave 0 (SPIS0_NS) 1117 */ 1118 1119 typedef struct { /*!< (@ 0x40008000) SPIS0_NS Structure */ 1120 __IM uint32_t RESERVED[9]; 1121 __OM uint32_t TASKS_ACQUIRE; /*!< (@ 0x00000024) Acquire SPI semaphore */ 1122 __OM uint32_t TASKS_RELEASE; /*!< (@ 0x00000028) Release SPI semaphore, enabling the SPI slave 1123 to acquire it */ 1124 __IM uint32_t RESERVED1[30]; 1125 __IOM uint32_t SUBSCRIBE_ACQUIRE; /*!< (@ 0x000000A4) Subscribe configuration for task ACQUIRE */ 1126 __IOM uint32_t SUBSCRIBE_RELEASE; /*!< (@ 0x000000A8) Subscribe configuration for task RELEASE */ 1127 __IM uint32_t RESERVED2[22]; 1128 __IOM uint32_t EVENTS_END; /*!< (@ 0x00000104) Granted transaction completed */ 1129 __IM uint32_t RESERVED3[2]; 1130 __IOM uint32_t EVENTS_ENDRX; /*!< (@ 0x00000110) End of RXD buffer reached */ 1131 __IM uint32_t RESERVED4[5]; 1132 __IOM uint32_t EVENTS_ACQUIRED; /*!< (@ 0x00000128) Semaphore acquired */ 1133 __IM uint32_t RESERVED5[22]; 1134 __IOM uint32_t PUBLISH_END; /*!< (@ 0x00000184) Publish configuration for event END */ 1135 __IM uint32_t RESERVED6[2]; 1136 __IOM uint32_t PUBLISH_ENDRX; /*!< (@ 0x00000190) Publish configuration for event ENDRX */ 1137 __IM uint32_t RESERVED7[5]; 1138 __IOM uint32_t PUBLISH_ACQUIRED; /*!< (@ 0x000001A8) Publish configuration for event ACQUIRED */ 1139 __IM uint32_t RESERVED8[21]; 1140 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1141 __IM uint32_t RESERVED9[64]; 1142 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1143 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1144 __IM uint32_t RESERVED10[61]; 1145 __IM uint32_t SEMSTAT; /*!< (@ 0x00000400) Semaphore status register */ 1146 __IM uint32_t RESERVED11[15]; 1147 __IOM uint32_t STATUS; /*!< (@ 0x00000440) Status from last transaction */ 1148 __IM uint32_t RESERVED12[47]; 1149 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable SPI slave */ 1150 __IM uint32_t RESERVED13; 1151 __IOM SPIS_PSEL_Type PSEL; /*!< (@ 0x00000508) Unspecified */ 1152 __IM uint32_t RESERVED14[7]; 1153 __IOM SPIS_RXD_Type RXD; /*!< (@ 0x00000534) Unspecified */ 1154 __IOM SPIS_TXD_Type TXD; /*!< (@ 0x00000544) Unspecified */ 1155 __IOM uint32_t CONFIG; /*!< (@ 0x00000554) Configuration register */ 1156 __IM uint32_t RESERVED15; 1157 __IOM uint32_t DEF; /*!< (@ 0x0000055C) Default character. Character clocked out in case 1158 of an ignored transaction. */ 1159 __IM uint32_t RESERVED16[24]; 1160 __IOM uint32_t ORC; /*!< (@ 0x000005C0) Over-read character */ 1161 } NRF_SPIS_Type; /*!< Size = 1476 (0x5c4) */ 1162 1163 1164 1165 /* =========================================================================================================================== */ 1166 /* ================ TWIM0_NS ================ */ 1167 /* =========================================================================================================================== */ 1168 1169 1170 /** 1171 * @brief I2C compatible Two-Wire Master Interface with EasyDMA 0 (TWIM0_NS) 1172 */ 1173 1174 typedef struct { /*!< (@ 0x40008000) TWIM0_NS Structure */ 1175 __OM uint32_t TASKS_STARTRX; /*!< (@ 0x00000000) Start TWI receive sequence */ 1176 __IM uint32_t RESERVED; 1177 __OM uint32_t TASKS_STARTTX; /*!< (@ 0x00000008) Start TWI transmit sequence */ 1178 __IM uint32_t RESERVED1[2]; 1179 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000014) Stop TWI transaction. Must be issued while the 1180 TWI master is not suspended. */ 1181 __IM uint32_t RESERVED2; 1182 __OM uint32_t TASKS_SUSPEND; /*!< (@ 0x0000001C) Suspend TWI transaction */ 1183 __OM uint32_t TASKS_RESUME; /*!< (@ 0x00000020) Resume TWI transaction */ 1184 __IM uint32_t RESERVED3[23]; 1185 __IOM uint32_t SUBSCRIBE_STARTRX; /*!< (@ 0x00000080) Subscribe configuration for task STARTRX */ 1186 __IM uint32_t RESERVED4; 1187 __IOM uint32_t SUBSCRIBE_STARTTX; /*!< (@ 0x00000088) Subscribe configuration for task STARTTX */ 1188 __IM uint32_t RESERVED5[2]; 1189 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000094) Subscribe configuration for task STOP */ 1190 __IM uint32_t RESERVED6; 1191 __IOM uint32_t SUBSCRIBE_SUSPEND; /*!< (@ 0x0000009C) Subscribe configuration for task SUSPEND */ 1192 __IOM uint32_t SUBSCRIBE_RESUME; /*!< (@ 0x000000A0) Subscribe configuration for task RESUME */ 1193 __IM uint32_t RESERVED7[24]; 1194 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000104) TWI stopped */ 1195 __IM uint32_t RESERVED8[7]; 1196 __IOM uint32_t EVENTS_ERROR; /*!< (@ 0x00000124) TWI error */ 1197 __IM uint32_t RESERVED9[8]; 1198 __IOM uint32_t EVENTS_SUSPENDED; /*!< (@ 0x00000148) SUSPEND task has been issued, TWI traffic is 1199 now suspended. */ 1200 __IOM uint32_t EVENTS_RXSTARTED; /*!< (@ 0x0000014C) Receive sequence started */ 1201 __IOM uint32_t EVENTS_TXSTARTED; /*!< (@ 0x00000150) Transmit sequence started */ 1202 __IM uint32_t RESERVED10[2]; 1203 __IOM uint32_t EVENTS_LASTRX; /*!< (@ 0x0000015C) Byte boundary, starting to receive the last byte */ 1204 __IOM uint32_t EVENTS_LASTTX; /*!< (@ 0x00000160) Byte boundary, starting to transmit the last 1205 byte */ 1206 __IM uint32_t RESERVED11[8]; 1207 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000184) Publish configuration for event STOPPED */ 1208 __IM uint32_t RESERVED12[7]; 1209 __IOM uint32_t PUBLISH_ERROR; /*!< (@ 0x000001A4) Publish configuration for event ERROR */ 1210 __IM uint32_t RESERVED13[8]; 1211 __IOM uint32_t PUBLISH_SUSPENDED; /*!< (@ 0x000001C8) Publish configuration for event SUSPENDED */ 1212 __IOM uint32_t PUBLISH_RXSTARTED; /*!< (@ 0x000001CC) Publish configuration for event RXSTARTED */ 1213 __IOM uint32_t PUBLISH_TXSTARTED; /*!< (@ 0x000001D0) Publish configuration for event TXSTARTED */ 1214 __IM uint32_t RESERVED14[2]; 1215 __IOM uint32_t PUBLISH_LASTRX; /*!< (@ 0x000001DC) Publish configuration for event LASTRX */ 1216 __IOM uint32_t PUBLISH_LASTTX; /*!< (@ 0x000001E0) Publish configuration for event LASTTX */ 1217 __IM uint32_t RESERVED15[7]; 1218 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1219 __IM uint32_t RESERVED16[63]; 1220 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1221 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1222 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1223 __IM uint32_t RESERVED17[110]; 1224 __IOM uint32_t ERRORSRC; /*!< (@ 0x000004C4) Error source */ 1225 __IM uint32_t RESERVED18[14]; 1226 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable TWIM */ 1227 __IM uint32_t RESERVED19; 1228 __IOM TWIM_PSEL_Type PSEL; /*!< (@ 0x00000508) Unspecified */ 1229 __IM uint32_t RESERVED20[5]; 1230 __IOM uint32_t FREQUENCY; /*!< (@ 0x00000524) TWI frequency. Accuracy depends on the HFCLK 1231 source selected. */ 1232 __IM uint32_t RESERVED21[3]; 1233 __IOM TWIM_RXD_Type RXD; /*!< (@ 0x00000534) RXD EasyDMA channel */ 1234 __IOM TWIM_TXD_Type TXD; /*!< (@ 0x00000544) TXD EasyDMA channel */ 1235 __IM uint32_t RESERVED22[13]; 1236 __IOM uint32_t ADDRESS; /*!< (@ 0x00000588) Address used in the TWI transfer */ 1237 } NRF_TWIM_Type; /*!< Size = 1420 (0x58c) */ 1238 1239 1240 1241 /* =========================================================================================================================== */ 1242 /* ================ TWIS0_NS ================ */ 1243 /* =========================================================================================================================== */ 1244 1245 1246 /** 1247 * @brief I2C compatible Two-Wire Slave Interface with EasyDMA 0 (TWIS0_NS) 1248 */ 1249 1250 typedef struct { /*!< (@ 0x40008000) TWIS0_NS Structure */ 1251 __IM uint32_t RESERVED[5]; 1252 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000014) Stop TWI transaction */ 1253 __IM uint32_t RESERVED1; 1254 __OM uint32_t TASKS_SUSPEND; /*!< (@ 0x0000001C) Suspend TWI transaction */ 1255 __OM uint32_t TASKS_RESUME; /*!< (@ 0x00000020) Resume TWI transaction */ 1256 __IM uint32_t RESERVED2[3]; 1257 __OM uint32_t TASKS_PREPARERX; /*!< (@ 0x00000030) Prepare the TWI slave to respond to a write command */ 1258 __OM uint32_t TASKS_PREPARETX; /*!< (@ 0x00000034) Prepare the TWI slave to respond to a read command */ 1259 __IM uint32_t RESERVED3[23]; 1260 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000094) Subscribe configuration for task STOP */ 1261 __IM uint32_t RESERVED4; 1262 __IOM uint32_t SUBSCRIBE_SUSPEND; /*!< (@ 0x0000009C) Subscribe configuration for task SUSPEND */ 1263 __IOM uint32_t SUBSCRIBE_RESUME; /*!< (@ 0x000000A0) Subscribe configuration for task RESUME */ 1264 __IM uint32_t RESERVED5[3]; 1265 __IOM uint32_t SUBSCRIBE_PREPARERX; /*!< (@ 0x000000B0) Subscribe configuration for task PREPARERX */ 1266 __IOM uint32_t SUBSCRIBE_PREPARETX; /*!< (@ 0x000000B4) Subscribe configuration for task PREPARETX */ 1267 __IM uint32_t RESERVED6[19]; 1268 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000104) TWI stopped */ 1269 __IM uint32_t RESERVED7[7]; 1270 __IOM uint32_t EVENTS_ERROR; /*!< (@ 0x00000124) TWI error */ 1271 __IM uint32_t RESERVED8[9]; 1272 __IOM uint32_t EVENTS_RXSTARTED; /*!< (@ 0x0000014C) Receive sequence started */ 1273 __IOM uint32_t EVENTS_TXSTARTED; /*!< (@ 0x00000150) Transmit sequence started */ 1274 __IM uint32_t RESERVED9[4]; 1275 __IOM uint32_t EVENTS_WRITE; /*!< (@ 0x00000164) Write command received */ 1276 __IOM uint32_t EVENTS_READ; /*!< (@ 0x00000168) Read command received */ 1277 __IM uint32_t RESERVED10[6]; 1278 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000184) Publish configuration for event STOPPED */ 1279 __IM uint32_t RESERVED11[7]; 1280 __IOM uint32_t PUBLISH_ERROR; /*!< (@ 0x000001A4) Publish configuration for event ERROR */ 1281 __IM uint32_t RESERVED12[9]; 1282 __IOM uint32_t PUBLISH_RXSTARTED; /*!< (@ 0x000001CC) Publish configuration for event RXSTARTED */ 1283 __IOM uint32_t PUBLISH_TXSTARTED; /*!< (@ 0x000001D0) Publish configuration for event TXSTARTED */ 1284 __IM uint32_t RESERVED13[4]; 1285 __IOM uint32_t PUBLISH_WRITE; /*!< (@ 0x000001E4) Publish configuration for event WRITE */ 1286 __IOM uint32_t PUBLISH_READ; /*!< (@ 0x000001E8) Publish configuration for event READ */ 1287 __IM uint32_t RESERVED14[5]; 1288 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1289 __IM uint32_t RESERVED15[63]; 1290 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1291 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1292 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1293 __IM uint32_t RESERVED16[113]; 1294 __IOM uint32_t ERRORSRC; /*!< (@ 0x000004D0) Error source */ 1295 __IM uint32_t MATCH; /*!< (@ 0x000004D4) Status register indicating which address had 1296 a match */ 1297 __IM uint32_t RESERVED17[10]; 1298 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable TWIS */ 1299 __IM uint32_t RESERVED18; 1300 __IOM TWIS_PSEL_Type PSEL; /*!< (@ 0x00000508) Unspecified */ 1301 __IM uint32_t RESERVED19[9]; 1302 __IOM TWIS_RXD_Type RXD; /*!< (@ 0x00000534) RXD EasyDMA channel */ 1303 __IOM TWIS_TXD_Type TXD; /*!< (@ 0x00000544) TXD EasyDMA channel */ 1304 __IM uint32_t RESERVED20[13]; 1305 __IOM uint32_t ADDRESS[2]; /*!< (@ 0x00000588) Description collection: TWI slave address n */ 1306 __IM uint32_t RESERVED21; 1307 __IOM uint32_t CONFIG; /*!< (@ 0x00000594) Configuration register for the address match 1308 mechanism */ 1309 __IM uint32_t RESERVED22[10]; 1310 __IOM uint32_t ORC; /*!< (@ 0x000005C0) Over-read character. Character sent out in case 1311 of an over-read of the transmit buffer. */ 1312 } NRF_TWIS_Type; /*!< Size = 1476 (0x5c4) */ 1313 1314 1315 1316 /* =========================================================================================================================== */ 1317 /* ================ UARTE0_NS ================ */ 1318 /* =========================================================================================================================== */ 1319 1320 1321 /** 1322 * @brief UART with EasyDMA 0 (UARTE0_NS) 1323 */ 1324 1325 typedef struct { /*!< (@ 0x40008000) UARTE0_NS Structure */ 1326 __OM uint32_t TASKS_STARTRX; /*!< (@ 0x00000000) Start UART receiver */ 1327 __OM uint32_t TASKS_STOPRX; /*!< (@ 0x00000004) Stop UART receiver */ 1328 __OM uint32_t TASKS_STARTTX; /*!< (@ 0x00000008) Start UART transmitter */ 1329 __OM uint32_t TASKS_STOPTX; /*!< (@ 0x0000000C) Stop UART transmitter */ 1330 __IM uint32_t RESERVED[7]; 1331 __OM uint32_t TASKS_FLUSHRX; /*!< (@ 0x0000002C) Flush RX FIFO into RX buffer */ 1332 __IM uint32_t RESERVED1[20]; 1333 __IOM uint32_t SUBSCRIBE_STARTRX; /*!< (@ 0x00000080) Subscribe configuration for task STARTRX */ 1334 __IOM uint32_t SUBSCRIBE_STOPRX; /*!< (@ 0x00000084) Subscribe configuration for task STOPRX */ 1335 __IOM uint32_t SUBSCRIBE_STARTTX; /*!< (@ 0x00000088) Subscribe configuration for task STARTTX */ 1336 __IOM uint32_t SUBSCRIBE_STOPTX; /*!< (@ 0x0000008C) Subscribe configuration for task STOPTX */ 1337 __IM uint32_t RESERVED2[7]; 1338 __IOM uint32_t SUBSCRIBE_FLUSHRX; /*!< (@ 0x000000AC) Subscribe configuration for task FLUSHRX */ 1339 __IM uint32_t RESERVED3[20]; 1340 __IOM uint32_t EVENTS_CTS; /*!< (@ 0x00000100) CTS is activated (set low). Clear To Send. */ 1341 __IOM uint32_t EVENTS_NCTS; /*!< (@ 0x00000104) CTS is deactivated (set high). Not Clear To Send. */ 1342 __IOM uint32_t EVENTS_RXDRDY; /*!< (@ 0x00000108) Data received in RXD (but potentially not yet 1343 transferred to Data RAM) */ 1344 __IM uint32_t RESERVED4; 1345 __IOM uint32_t EVENTS_ENDRX; /*!< (@ 0x00000110) Receive buffer is filled up */ 1346 __IM uint32_t RESERVED5[2]; 1347 __IOM uint32_t EVENTS_TXDRDY; /*!< (@ 0x0000011C) Data sent from TXD */ 1348 __IOM uint32_t EVENTS_ENDTX; /*!< (@ 0x00000120) Last TX byte transmitted */ 1349 __IOM uint32_t EVENTS_ERROR; /*!< (@ 0x00000124) Error detected */ 1350 __IM uint32_t RESERVED6[7]; 1351 __IOM uint32_t EVENTS_RXTO; /*!< (@ 0x00000144) Receiver timeout */ 1352 __IM uint32_t RESERVED7; 1353 __IOM uint32_t EVENTS_RXSTARTED; /*!< (@ 0x0000014C) UART receiver has started */ 1354 __IOM uint32_t EVENTS_TXSTARTED; /*!< (@ 0x00000150) UART transmitter has started */ 1355 __IM uint32_t RESERVED8; 1356 __IOM uint32_t EVENTS_TXSTOPPED; /*!< (@ 0x00000158) Transmitter stopped */ 1357 __IM uint32_t RESERVED9[9]; 1358 __IOM uint32_t PUBLISH_CTS; /*!< (@ 0x00000180) Publish configuration for event CTS */ 1359 __IOM uint32_t PUBLISH_NCTS; /*!< (@ 0x00000184) Publish configuration for event NCTS */ 1360 __IOM uint32_t PUBLISH_RXDRDY; /*!< (@ 0x00000188) Publish configuration for event RXDRDY */ 1361 __IM uint32_t RESERVED10; 1362 __IOM uint32_t PUBLISH_ENDRX; /*!< (@ 0x00000190) Publish configuration for event ENDRX */ 1363 __IM uint32_t RESERVED11[2]; 1364 __IOM uint32_t PUBLISH_TXDRDY; /*!< (@ 0x0000019C) Publish configuration for event TXDRDY */ 1365 __IOM uint32_t PUBLISH_ENDTX; /*!< (@ 0x000001A0) Publish configuration for event ENDTX */ 1366 __IOM uint32_t PUBLISH_ERROR; /*!< (@ 0x000001A4) Publish configuration for event ERROR */ 1367 __IM uint32_t RESERVED12[7]; 1368 __IOM uint32_t PUBLISH_RXTO; /*!< (@ 0x000001C4) Publish configuration for event RXTO */ 1369 __IM uint32_t RESERVED13; 1370 __IOM uint32_t PUBLISH_RXSTARTED; /*!< (@ 0x000001CC) Publish configuration for event RXSTARTED */ 1371 __IOM uint32_t PUBLISH_TXSTARTED; /*!< (@ 0x000001D0) Publish configuration for event TXSTARTED */ 1372 __IM uint32_t RESERVED14; 1373 __IOM uint32_t PUBLISH_TXSTOPPED; /*!< (@ 0x000001D8) Publish configuration for event TXSTOPPED */ 1374 __IM uint32_t RESERVED15[9]; 1375 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1376 __IM uint32_t RESERVED16[63]; 1377 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1378 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1379 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1380 __IM uint32_t RESERVED17[93]; 1381 __IOM uint32_t ERRORSRC; /*!< (@ 0x00000480) Error source This register is read/write one 1382 to clear. */ 1383 __IM uint32_t RESERVED18[31]; 1384 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable UART */ 1385 __IM uint32_t RESERVED19; 1386 __IOM UARTE_PSEL_Type PSEL; /*!< (@ 0x00000508) Unspecified */ 1387 __IM uint32_t RESERVED20[3]; 1388 __IOM uint32_t BAUDRATE; /*!< (@ 0x00000524) Baud rate. Accuracy depends on the HFCLK source 1389 selected. */ 1390 __IM uint32_t RESERVED21[3]; 1391 __IOM UARTE_RXD_Type RXD; /*!< (@ 0x00000534) RXD EasyDMA channel */ 1392 __IM uint32_t RESERVED22; 1393 __IOM UARTE_TXD_Type TXD; /*!< (@ 0x00000544) TXD EasyDMA channel */ 1394 __IM uint32_t RESERVED23[7]; 1395 __IOM uint32_t CONFIG; /*!< (@ 0x0000056C) Configuration of parity and hardware flow control */ 1396 } NRF_UARTE_Type; /*!< Size = 1392 (0x570) */ 1397 1398 1399 1400 /* =========================================================================================================================== */ 1401 /* ================ GPIOTE0_S ================ */ 1402 /* =========================================================================================================================== */ 1403 1404 1405 /** 1406 * @brief GPIO Tasks and Events 0 (GPIOTE0_S) 1407 */ 1408 1409 typedef struct { /*!< (@ 0x5000D000) GPIOTE0_S Structure */ 1410 __OM uint32_t TASKS_OUT[8]; /*!< (@ 0x00000000) Description collection: Task for writing to pin 1411 specified in CONFIG[n].PSEL. Action on pin 1412 is configured in CONFIG[n].POLARITY. */ 1413 __IM uint32_t RESERVED[4]; 1414 __OM uint32_t TASKS_SET[8]; /*!< (@ 0x00000030) Description collection: Task for writing to pin 1415 specified in CONFIG[n].PSEL. Action on pin 1416 is to set it high. */ 1417 __IM uint32_t RESERVED1[4]; 1418 __OM uint32_t TASKS_CLR[8]; /*!< (@ 0x00000060) Description collection: Task for writing to pin 1419 specified in CONFIG[n].PSEL. Action on pin 1420 is to set it low. */ 1421 __IOM uint32_t SUBSCRIBE_OUT[8]; /*!< (@ 0x00000080) Description collection: Subscribe configuration 1422 for task OUT[n] */ 1423 __IM uint32_t RESERVED2[4]; 1424 __IOM uint32_t SUBSCRIBE_SET[8]; /*!< (@ 0x000000B0) Description collection: Subscribe configuration 1425 for task SET[n] */ 1426 __IM uint32_t RESERVED3[4]; 1427 __IOM uint32_t SUBSCRIBE_CLR[8]; /*!< (@ 0x000000E0) Description collection: Subscribe configuration 1428 for task CLR[n] */ 1429 __IOM uint32_t EVENTS_IN[8]; /*!< (@ 0x00000100) Description collection: Event generated from 1430 pin specified in CONFIG[n].PSEL */ 1431 __IM uint32_t RESERVED4[23]; 1432 __IOM uint32_t EVENTS_PORT; /*!< (@ 0x0000017C) Event generated from multiple input GPIO pins 1433 with SENSE mechanism enabled */ 1434 __IOM uint32_t PUBLISH_IN[8]; /*!< (@ 0x00000180) Description collection: Publish configuration 1435 for event IN[n] */ 1436 __IM uint32_t RESERVED5[23]; 1437 __IOM uint32_t PUBLISH_PORT; /*!< (@ 0x000001FC) Publish configuration for event PORT */ 1438 __IM uint32_t RESERVED6[65]; 1439 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1440 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1441 __IM uint32_t RESERVED7[129]; 1442 __IOM uint32_t CONFIG[8]; /*!< (@ 0x00000510) Description collection: Configuration for OUT[n], 1443 SET[n], and CLR[n] tasks and IN[n] event */ 1444 } NRF_GPIOTE_Type; /*!< Size = 1328 (0x530) */ 1445 1446 1447 1448 /* =========================================================================================================================== */ 1449 /* ================ SAADC_NS ================ */ 1450 /* =========================================================================================================================== */ 1451 1452 1453 /** 1454 * @brief Analog to Digital Converter 0 (SAADC_NS) 1455 */ 1456 1457 typedef struct { /*!< (@ 0x4000E000) SAADC_NS Structure */ 1458 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Start the ADC and prepare the result buffer in 1459 RAM */ 1460 __OM uint32_t TASKS_SAMPLE; /*!< (@ 0x00000004) Take one ADC sample, if scan is enabled all channels 1461 are sampled */ 1462 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000008) Stop the ADC and terminate any on-going conversion */ 1463 __OM uint32_t TASKS_CALIBRATEOFFSET; /*!< (@ 0x0000000C) Starts offset auto-calibration */ 1464 __IM uint32_t RESERVED[28]; 1465 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 1466 __IOM uint32_t SUBSCRIBE_SAMPLE; /*!< (@ 0x00000084) Subscribe configuration for task SAMPLE */ 1467 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000088) Subscribe configuration for task STOP */ 1468 __IOM uint32_t SUBSCRIBE_CALIBRATEOFFSET; /*!< (@ 0x0000008C) Subscribe configuration for task CALIBRATEOFFSET */ 1469 __IM uint32_t RESERVED1[28]; 1470 __IOM uint32_t EVENTS_STARTED; /*!< (@ 0x00000100) The ADC has started */ 1471 __IOM uint32_t EVENTS_END; /*!< (@ 0x00000104) The ADC has filled up the Result buffer */ 1472 __IOM uint32_t EVENTS_DONE; /*!< (@ 0x00000108) A conversion task has been completed. Depending 1473 on the mode, multiple conversions might 1474 be needed for a result to be transferred 1475 to RAM. */ 1476 __IOM uint32_t EVENTS_RESULTDONE; /*!< (@ 0x0000010C) A result is ready to get transferred to RAM. */ 1477 __IOM uint32_t EVENTS_CALIBRATEDONE; /*!< (@ 0x00000110) Calibration is complete */ 1478 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000114) The ADC has stopped */ 1479 __IOM SAADC_EVENTS_CH_Type EVENTS_CH[8]; /*!< (@ 0x00000118) Peripheral events. */ 1480 __IM uint32_t RESERVED2[10]; 1481 __IOM uint32_t PUBLISH_STARTED; /*!< (@ 0x00000180) Publish configuration for event STARTED */ 1482 __IOM uint32_t PUBLISH_END; /*!< (@ 0x00000184) Publish configuration for event END */ 1483 __IOM uint32_t PUBLISH_DONE; /*!< (@ 0x00000188) Publish configuration for event DONE */ 1484 __IOM uint32_t PUBLISH_RESULTDONE; /*!< (@ 0x0000018C) Publish configuration for event RESULTDONE */ 1485 __IOM uint32_t PUBLISH_CALIBRATEDONE; /*!< (@ 0x00000190) Publish configuration for event CALIBRATEDONE */ 1486 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000194) Publish configuration for event STOPPED */ 1487 __IOM SAADC_PUBLISH_CH_Type PUBLISH_CH[8]; /*!< (@ 0x00000198) Publish configuration for events */ 1488 __IM uint32_t RESERVED3[74]; 1489 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1490 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1491 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1492 __IM uint32_t RESERVED4[61]; 1493 __IM uint32_t STATUS; /*!< (@ 0x00000400) Status */ 1494 __IM uint32_t RESERVED5[63]; 1495 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable or disable ADC */ 1496 __IM uint32_t RESERVED6[3]; 1497 __IOM SAADC_CH_Type CH[8]; /*!< (@ 0x00000510) Unspecified */ 1498 __IM uint32_t RESERVED7[24]; 1499 __IOM uint32_t RESOLUTION; /*!< (@ 0x000005F0) Resolution configuration */ 1500 __IOM uint32_t OVERSAMPLE; /*!< (@ 0x000005F4) Oversampling configuration. OVERSAMPLE should 1501 not be combined with SCAN. The RESOLUTION 1502 is applied before averaging, thus for high 1503 OVERSAMPLE a higher RESOLUTION should be 1504 used. */ 1505 __IOM uint32_t SAMPLERATE; /*!< (@ 0x000005F8) Controls normal or continuous sample rate */ 1506 __IM uint32_t RESERVED8[12]; 1507 __IOM SAADC_RESULT_Type RESULT; /*!< (@ 0x0000062C) RESULT EasyDMA channel */ 1508 } NRF_SAADC_Type; /*!< Size = 1592 (0x638) */ 1509 1510 1511 1512 /* =========================================================================================================================== */ 1513 /* ================ TIMER0_NS ================ */ 1514 /* =========================================================================================================================== */ 1515 1516 1517 /** 1518 * @brief Timer/Counter 0 (TIMER0_NS) 1519 */ 1520 1521 typedef struct { /*!< (@ 0x4000F000) TIMER0_NS Structure */ 1522 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Start Timer */ 1523 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stop Timer */ 1524 __OM uint32_t TASKS_COUNT; /*!< (@ 0x00000008) Increment Timer (Counter mode only) */ 1525 __OM uint32_t TASKS_CLEAR; /*!< (@ 0x0000000C) Clear time */ 1526 __OM uint32_t TASKS_SHUTDOWN; /*!< (@ 0x00000010) Deprecated register - Shut down timer */ 1527 __IM uint32_t RESERVED[11]; 1528 __OM uint32_t TASKS_CAPTURE[6]; /*!< (@ 0x00000040) Description collection: Capture Timer value to 1529 CC[n] register */ 1530 __IM uint32_t RESERVED1[10]; 1531 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 1532 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 1533 __IOM uint32_t SUBSCRIBE_COUNT; /*!< (@ 0x00000088) Subscribe configuration for task COUNT */ 1534 __IOM uint32_t SUBSCRIBE_CLEAR; /*!< (@ 0x0000008C) Subscribe configuration for task CLEAR */ 1535 __IOM uint32_t SUBSCRIBE_SHUTDOWN; /*!< (@ 0x00000090) Deprecated register - Subscribe configuration 1536 for task SHUTDOWN */ 1537 __IM uint32_t RESERVED2[11]; 1538 __IOM uint32_t SUBSCRIBE_CAPTURE[6]; /*!< (@ 0x000000C0) Description collection: Subscribe configuration 1539 for task CAPTURE[n] */ 1540 __IM uint32_t RESERVED3[26]; 1541 __IOM uint32_t EVENTS_COMPARE[6]; /*!< (@ 0x00000140) Description collection: Compare event on CC[n] 1542 match */ 1543 __IM uint32_t RESERVED4[26]; 1544 __IOM uint32_t PUBLISH_COMPARE[6]; /*!< (@ 0x000001C0) Description collection: Publish configuration 1545 for event COMPARE[n] */ 1546 __IM uint32_t RESERVED5[10]; 1547 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1548 __IM uint32_t RESERVED6[64]; 1549 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1550 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1551 __IM uint32_t RESERVED7[126]; 1552 __IOM uint32_t MODE; /*!< (@ 0x00000504) Timer mode selection */ 1553 __IOM uint32_t BITMODE; /*!< (@ 0x00000508) Configure the number of bits used by the TIMER */ 1554 __IM uint32_t RESERVED8; 1555 __IOM uint32_t PRESCALER; /*!< (@ 0x00000510) Timer prescaler register */ 1556 __IOM uint32_t ONESHOTEN[6]; /*!< (@ 0x00000514) Description collection: Enable one-shot operation 1557 for Capture/Compare channel n */ 1558 __IM uint32_t RESERVED9[5]; 1559 __IOM uint32_t CC[6]; /*!< (@ 0x00000540) Description collection: Capture/Compare register 1560 n */ 1561 } NRF_TIMER_Type; /*!< Size = 1368 (0x558) */ 1562 1563 1564 1565 /* =========================================================================================================================== */ 1566 /* ================ RTC0_NS ================ */ 1567 /* =========================================================================================================================== */ 1568 1569 1570 /** 1571 * @brief Real-time counter 0 (RTC0_NS) 1572 */ 1573 1574 typedef struct { /*!< (@ 0x40014000) RTC0_NS Structure */ 1575 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Start RTC counter */ 1576 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stop RTC counter */ 1577 __OM uint32_t TASKS_CLEAR; /*!< (@ 0x00000008) Clear RTC counter */ 1578 __OM uint32_t TASKS_TRIGOVRFLW; /*!< (@ 0x0000000C) Set counter to 0xFFFFF0 */ 1579 __IM uint32_t RESERVED[28]; 1580 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 1581 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 1582 __IOM uint32_t SUBSCRIBE_CLEAR; /*!< (@ 0x00000088) Subscribe configuration for task CLEAR */ 1583 __IOM uint32_t SUBSCRIBE_TRIGOVRFLW; /*!< (@ 0x0000008C) Subscribe configuration for task TRIGOVRFLW */ 1584 __IM uint32_t RESERVED1[28]; 1585 __IOM uint32_t EVENTS_TICK; /*!< (@ 0x00000100) Event on counter increment */ 1586 __IOM uint32_t EVENTS_OVRFLW; /*!< (@ 0x00000104) Event on counter overflow */ 1587 __IM uint32_t RESERVED2[14]; 1588 __IOM uint32_t EVENTS_COMPARE[4]; /*!< (@ 0x00000140) Description collection: Compare event on CC[n] 1589 match */ 1590 __IM uint32_t RESERVED3[12]; 1591 __IOM uint32_t PUBLISH_TICK; /*!< (@ 0x00000180) Publish configuration for event TICK */ 1592 __IOM uint32_t PUBLISH_OVRFLW; /*!< (@ 0x00000184) Publish configuration for event OVRFLW */ 1593 __IM uint32_t RESERVED4[14]; 1594 __IOM uint32_t PUBLISH_COMPARE[4]; /*!< (@ 0x000001C0) Description collection: Publish configuration 1595 for event COMPARE[n] */ 1596 __IM uint32_t RESERVED5[77]; 1597 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1598 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1599 __IM uint32_t RESERVED6[13]; 1600 __IOM uint32_t EVTEN; /*!< (@ 0x00000340) Enable or disable event routing */ 1601 __IOM uint32_t EVTENSET; /*!< (@ 0x00000344) Enable event routing */ 1602 __IOM uint32_t EVTENCLR; /*!< (@ 0x00000348) Disable event routing */ 1603 __IM uint32_t RESERVED7[110]; 1604 __IM uint32_t COUNTER; /*!< (@ 0x00000504) Current counter value */ 1605 __IOM uint32_t PRESCALER; /*!< (@ 0x00000508) 12-bit prescaler for counter frequency (32768/(PRESCALER+1)). 1606 Must be written when RTC is stopped. */ 1607 __IM uint32_t RESERVED8[13]; 1608 __IOM uint32_t CC[4]; /*!< (@ 0x00000540) Description collection: Compare register n */ 1609 } NRF_RTC_Type; /*!< Size = 1360 (0x550) */ 1610 1611 1612 1613 /* =========================================================================================================================== */ 1614 /* ================ DPPIC_NS ================ */ 1615 /* =========================================================================================================================== */ 1616 1617 1618 /** 1619 * @brief Distributed programmable peripheral interconnect controller 0 (DPPIC_NS) 1620 */ 1621 1622 typedef struct { /*!< (@ 0x40017000) DPPIC_NS Structure */ 1623 __OM DPPIC_TASKS_CHG_Type TASKS_CHG[6]; /*!< (@ 0x00000000) Channel group tasks */ 1624 __IM uint32_t RESERVED[20]; 1625 __IOM DPPIC_SUBSCRIBE_CHG_Type SUBSCRIBE_CHG[6];/*!< (@ 0x00000080) Subscribe configuration for tasks */ 1626 __IM uint32_t RESERVED1[276]; 1627 __IOM uint32_t CHEN; /*!< (@ 0x00000500) Channel enable register */ 1628 __IOM uint32_t CHENSET; /*!< (@ 0x00000504) Channel enable set register */ 1629 __IOM uint32_t CHENCLR; /*!< (@ 0x00000508) Channel enable clear register */ 1630 __IM uint32_t RESERVED2[189]; 1631 __IOM uint32_t CHG[6]; /*!< (@ 0x00000800) Description collection: Channel group n Note: 1632 Writes to this register are ignored if either 1633 SUBSCRIBE_CHG[n].EN or SUBSCRIBE_CHG[n].DIS 1634 is enabled */ 1635 } NRF_DPPIC_Type; /*!< Size = 2072 (0x818) */ 1636 1637 1638 1639 /* =========================================================================================================================== */ 1640 /* ================ WDT_NS ================ */ 1641 /* =========================================================================================================================== */ 1642 1643 1644 /** 1645 * @brief Watchdog Timer 0 (WDT_NS) 1646 */ 1647 1648 typedef struct { /*!< (@ 0x40018000) WDT_NS Structure */ 1649 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Start the watchdog */ 1650 __IM uint32_t RESERVED[31]; 1651 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 1652 __IM uint32_t RESERVED1[31]; 1653 __IOM uint32_t EVENTS_TIMEOUT; /*!< (@ 0x00000100) Watchdog timeout */ 1654 __IM uint32_t RESERVED2[31]; 1655 __IOM uint32_t PUBLISH_TIMEOUT; /*!< (@ 0x00000180) Publish configuration for event TIMEOUT */ 1656 __IM uint32_t RESERVED3[96]; 1657 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1658 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1659 __IM uint32_t RESERVED4[61]; 1660 __IM uint32_t RUNSTATUS; /*!< (@ 0x00000400) Run status */ 1661 __IM uint32_t REQSTATUS; /*!< (@ 0x00000404) Request status */ 1662 __IM uint32_t RESERVED5[63]; 1663 __IOM uint32_t CRV; /*!< (@ 0x00000504) Counter reload value */ 1664 __IOM uint32_t RREN; /*!< (@ 0x00000508) Enable register for reload request registers */ 1665 __IOM uint32_t CONFIG; /*!< (@ 0x0000050C) Configuration register */ 1666 __IM uint32_t RESERVED6[60]; 1667 __OM uint32_t RR[8]; /*!< (@ 0x00000600) Description collection: Reload request n */ 1668 } NRF_WDT_Type; /*!< Size = 1568 (0x620) */ 1669 1670 1671 1672 /* =========================================================================================================================== */ 1673 /* ================ EGU0_NS ================ */ 1674 /* =========================================================================================================================== */ 1675 1676 1677 /** 1678 * @brief Event generator unit 0 (EGU0_NS) 1679 */ 1680 1681 typedef struct { /*!< (@ 0x4001B000) EGU0_NS Structure */ 1682 __OM uint32_t TASKS_TRIGGER[16]; /*!< (@ 0x00000000) Description collection: Trigger n for triggering 1683 the corresponding TRIGGERED[n] event */ 1684 __IM uint32_t RESERVED[16]; 1685 __IOM uint32_t SUBSCRIBE_TRIGGER[16]; /*!< (@ 0x00000080) Description collection: Subscribe configuration 1686 for task TRIGGER[n] */ 1687 __IM uint32_t RESERVED1[16]; 1688 __IOM uint32_t EVENTS_TRIGGERED[16]; /*!< (@ 0x00000100) Description collection: Event number n generated 1689 by triggering the corresponding TRIGGER[n] 1690 task */ 1691 __IM uint32_t RESERVED2[16]; 1692 __IOM uint32_t PUBLISH_TRIGGERED[16]; /*!< (@ 0x00000180) Description collection: Publish configuration 1693 for event TRIGGERED[n] */ 1694 __IM uint32_t RESERVED3[80]; 1695 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1696 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1697 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1698 } NRF_EGU_Type; /*!< Size = 780 (0x30c) */ 1699 1700 1701 1702 /* =========================================================================================================================== */ 1703 /* ================ PWM0_NS ================ */ 1704 /* =========================================================================================================================== */ 1705 1706 1707 /** 1708 * @brief Pulse width modulation unit 0 (PWM0_NS) 1709 */ 1710 1711 typedef struct { /*!< (@ 0x40021000) PWM0_NS Structure */ 1712 __IM uint32_t RESERVED; 1713 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stops PWM pulse generation on all channels at 1714 the end of current PWM period, and stops 1715 sequence playback */ 1716 __OM uint32_t TASKS_SEQSTART[2]; /*!< (@ 0x00000008) Description collection: Loads the first PWM value 1717 on all enabled channels from sequence n, 1718 and starts playing that sequence at the 1719 rate defined in SEQ[n]REFRESH and/or DECODER.MODE. 1720 Causes PWM generation to start if not running. */ 1721 __OM uint32_t TASKS_NEXTSTEP; /*!< (@ 0x00000010) Steps by one value in the current sequence on 1722 all enabled channels if DECODER.MODE=NextStep. 1723 Does not cause PWM generation to start if 1724 not running. */ 1725 __IM uint32_t RESERVED1[28]; 1726 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 1727 __IOM uint32_t SUBSCRIBE_SEQSTART[2]; /*!< (@ 0x00000088) Description collection: Subscribe configuration 1728 for task SEQSTART[n] */ 1729 __IOM uint32_t SUBSCRIBE_NEXTSTEP; /*!< (@ 0x00000090) Subscribe configuration for task NEXTSTEP */ 1730 __IM uint32_t RESERVED2[28]; 1731 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000104) Response to STOP task, emitted when PWM pulses 1732 are no longer generated */ 1733 __IOM uint32_t EVENTS_SEQSTARTED[2]; /*!< (@ 0x00000108) Description collection: First PWM period started 1734 on sequence n */ 1735 __IOM uint32_t EVENTS_SEQEND[2]; /*!< (@ 0x00000110) Description collection: Emitted at end of every 1736 sequence n, when last value from RAM has 1737 been applied to wave counter */ 1738 __IOM uint32_t EVENTS_PWMPERIODEND; /*!< (@ 0x00000118) Emitted at the end of each PWM period */ 1739 __IOM uint32_t EVENTS_LOOPSDONE; /*!< (@ 0x0000011C) Concatenated sequences have been played the amount 1740 of times defined in LOOP.CNT */ 1741 __IM uint32_t RESERVED3[25]; 1742 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000184) Publish configuration for event STOPPED */ 1743 __IOM uint32_t PUBLISH_SEQSTARTED[2]; /*!< (@ 0x00000188) Description collection: Publish configuration 1744 for event SEQSTARTED[n] */ 1745 __IOM uint32_t PUBLISH_SEQEND[2]; /*!< (@ 0x00000190) Description collection: Publish configuration 1746 for event SEQEND[n] */ 1747 __IOM uint32_t PUBLISH_PWMPERIODEND; /*!< (@ 0x00000198) Publish configuration for event PWMPERIODEND */ 1748 __IOM uint32_t PUBLISH_LOOPSDONE; /*!< (@ 0x0000019C) Publish configuration for event LOOPSDONE */ 1749 __IM uint32_t RESERVED4[24]; 1750 __IOM uint32_t SHORTS; /*!< (@ 0x00000200) Shortcuts between local events and tasks */ 1751 __IM uint32_t RESERVED5[63]; 1752 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1753 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1754 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1755 __IM uint32_t RESERVED6[125]; 1756 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) PWM module enable register */ 1757 __IOM uint32_t MODE; /*!< (@ 0x00000504) Selects operating mode of the wave counter */ 1758 __IOM uint32_t COUNTERTOP; /*!< (@ 0x00000508) Value up to which the pulse generator counter 1759 counts */ 1760 __IOM uint32_t PRESCALER; /*!< (@ 0x0000050C) Configuration for PWM_CLK */ 1761 __IOM uint32_t DECODER; /*!< (@ 0x00000510) Configuration of the decoder */ 1762 __IOM uint32_t LOOP; /*!< (@ 0x00000514) Number of playbacks of a loop */ 1763 __IM uint32_t RESERVED7[2]; 1764 __IOM PWM_SEQ_Type SEQ[2]; /*!< (@ 0x00000520) Unspecified */ 1765 __IOM PWM_PSEL_Type PSEL; /*!< (@ 0x00000560) Unspecified */ 1766 } NRF_PWM_Type; /*!< Size = 1392 (0x570) */ 1767 1768 1769 1770 /* =========================================================================================================================== */ 1771 /* ================ PDM_NS ================ */ 1772 /* =========================================================================================================================== */ 1773 1774 1775 /** 1776 * @brief Pulse Density Modulation (Digital Microphone) Interface 0 (PDM_NS) 1777 */ 1778 1779 typedef struct { /*!< (@ 0x40026000) PDM_NS Structure */ 1780 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Starts continuous PDM transfer */ 1781 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stops PDM transfer */ 1782 __IM uint32_t RESERVED[30]; 1783 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 1784 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 1785 __IM uint32_t RESERVED1[30]; 1786 __IOM uint32_t EVENTS_STARTED; /*!< (@ 0x00000100) PDM transfer has started */ 1787 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000104) PDM transfer has finished */ 1788 __IOM uint32_t EVENTS_END; /*!< (@ 0x00000108) The PDM has written the last sample specified 1789 by SAMPLE.MAXCNT (or the last sample after 1790 a STOP task has been received) to Data RAM */ 1791 __IM uint32_t RESERVED2[29]; 1792 __IOM uint32_t PUBLISH_STARTED; /*!< (@ 0x00000180) Publish configuration for event STARTED */ 1793 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000184) Publish configuration for event STOPPED */ 1794 __IOM uint32_t PUBLISH_END; /*!< (@ 0x00000188) Publish configuration for event END */ 1795 __IM uint32_t RESERVED3[93]; 1796 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1797 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1798 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1799 __IM uint32_t RESERVED4[125]; 1800 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) PDM module enable register */ 1801 __IOM uint32_t PDMCLKCTRL; /*!< (@ 0x00000504) PDM clock generator control */ 1802 __IOM uint32_t MODE; /*!< (@ 0x00000508) Defines the routing of the connected PDM microphones' 1803 signals */ 1804 __IM uint32_t RESERVED5[3]; 1805 __IOM uint32_t GAINL; /*!< (@ 0x00000518) Left output gain adjustment */ 1806 __IOM uint32_t GAINR; /*!< (@ 0x0000051C) Right output gain adjustment */ 1807 __IOM uint32_t RATIO; /*!< (@ 0x00000520) Selects the ratio between PDM_CLK and output 1808 sample rate. Change PDMCLKCTRL accordingly. */ 1809 __IM uint32_t RESERVED6[7]; 1810 __IOM PDM_PSEL_Type PSEL; /*!< (@ 0x00000540) Unspecified */ 1811 __IM uint32_t RESERVED7[6]; 1812 __IOM PDM_SAMPLE_Type SAMPLE; /*!< (@ 0x00000560) Unspecified */ 1813 } NRF_PDM_Type; /*!< Size = 1384 (0x568) */ 1814 1815 1816 1817 /* =========================================================================================================================== */ 1818 /* ================ I2S_NS ================ */ 1819 /* =========================================================================================================================== */ 1820 1821 1822 /** 1823 * @brief Inter-IC Sound 0 (I2S_NS) 1824 */ 1825 1826 typedef struct { /*!< (@ 0x40028000) I2S_NS Structure */ 1827 __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Starts continuous I2S transfer. Also starts MCK 1828 generator when this is enabled. */ 1829 __OM uint32_t TASKS_STOP; /*!< (@ 0x00000004) Stops I2S transfer. Also stops MCK generator. 1830 Triggering this task will cause the STOPPED 1831 event to be generated. */ 1832 __IM uint32_t RESERVED[30]; 1833 __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */ 1834 __IOM uint32_t SUBSCRIBE_STOP; /*!< (@ 0x00000084) Subscribe configuration for task STOP */ 1835 __IM uint32_t RESERVED1[31]; 1836 __IOM uint32_t EVENTS_RXPTRUPD; /*!< (@ 0x00000104) The RXD.PTR register has been copied to internal 1837 double-buffers. When the I2S module is started 1838 and RX is enabled, this event will be generated 1839 for every RXTXD.MAXCNT words that are received 1840 on the SDIN pin. */ 1841 __IOM uint32_t EVENTS_STOPPED; /*!< (@ 0x00000108) I2S transfer stopped. */ 1842 __IM uint32_t RESERVED2[2]; 1843 __IOM uint32_t EVENTS_TXPTRUPD; /*!< (@ 0x00000114) The TDX.PTR register has been copied to internal 1844 double-buffers. When the I2S module is started 1845 and TX is enabled, this event will be generated 1846 for every RXTXD.MAXCNT words that are sent 1847 on the SDOUT pin. */ 1848 __IM uint32_t RESERVED3[27]; 1849 __IOM uint32_t PUBLISH_RXPTRUPD; /*!< (@ 0x00000184) Publish configuration for event RXPTRUPD */ 1850 __IOM uint32_t PUBLISH_STOPPED; /*!< (@ 0x00000188) Publish configuration for event STOPPED */ 1851 __IM uint32_t RESERVED4[2]; 1852 __IOM uint32_t PUBLISH_TXPTRUPD; /*!< (@ 0x00000194) Publish configuration for event TXPTRUPD */ 1853 __IM uint32_t RESERVED5[90]; 1854 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1855 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1856 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1857 __IM uint32_t RESERVED6[125]; 1858 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable I2S module. */ 1859 __IOM I2S_CONFIG_Type CONFIG; /*!< (@ 0x00000504) Unspecified */ 1860 __IM uint32_t RESERVED7[3]; 1861 __IOM I2S_RXD_Type RXD; /*!< (@ 0x00000538) Unspecified */ 1862 __IM uint32_t RESERVED8; 1863 __IOM I2S_TXD_Type TXD; /*!< (@ 0x00000540) Unspecified */ 1864 __IM uint32_t RESERVED9[3]; 1865 __IOM I2S_RXTXD_Type RXTXD; /*!< (@ 0x00000550) Unspecified */ 1866 __IM uint32_t RESERVED10[3]; 1867 __IOM I2S_PSEL_Type PSEL; /*!< (@ 0x00000560) Unspecified */ 1868 } NRF_I2S_Type; /*!< Size = 1396 (0x574) */ 1869 1870 1871 1872 /* =========================================================================================================================== */ 1873 /* ================ IPC_NS ================ */ 1874 /* =========================================================================================================================== */ 1875 1876 1877 /** 1878 * @brief Interprocessor communication 0 (IPC_NS) 1879 */ 1880 1881 typedef struct { /*!< (@ 0x4002A000) IPC_NS Structure */ 1882 __OM uint32_t TASKS_SEND[8]; /*!< (@ 0x00000000) Description collection: Trigger events on IPC 1883 channel enabled in SEND_CNF[n] */ 1884 __IM uint32_t RESERVED[24]; 1885 __IOM uint32_t SUBSCRIBE_SEND[8]; /*!< (@ 0x00000080) Description collection: Subscribe configuration 1886 for task SEND[n] */ 1887 __IM uint32_t RESERVED1[24]; 1888 __IOM uint32_t EVENTS_RECEIVE[8]; /*!< (@ 0x00000100) Description collection: Event received on one 1889 or more of the enabled IPC channels in RECEIVE_CNF[n] */ 1890 __IM uint32_t RESERVED2[24]; 1891 __IOM uint32_t PUBLISH_RECEIVE[8]; /*!< (@ 0x00000180) Description collection: Publish configuration 1892 for event RECEIVE[n] */ 1893 __IM uint32_t RESERVED3[88]; 1894 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1895 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1896 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1897 __IM uint32_t INTPEND; /*!< (@ 0x0000030C) Pending interrupts */ 1898 __IM uint32_t RESERVED4[128]; 1899 __IOM uint32_t SEND_CNF[8]; /*!< (@ 0x00000510) Description collection: Send event configuration 1900 for TASKS_SEND[n] */ 1901 __IM uint32_t RESERVED5[24]; 1902 __IOM uint32_t RECEIVE_CNF[8]; /*!< (@ 0x00000590) Description collection: Receive event configuration 1903 for EVENTS_RECEIVE[n] */ 1904 __IM uint32_t RESERVED6[24]; 1905 __IOM uint32_t GPMEM[4]; /*!< (@ 0x00000610) Description collection: General purpose memory */ 1906 } NRF_IPC_Type; /*!< Size = 1568 (0x620) */ 1907 1908 1909 1910 /* =========================================================================================================================== */ 1911 /* ================ FPU_NS ================ */ 1912 /* =========================================================================================================================== */ 1913 1914 1915 /** 1916 * @brief FPU (FPU_NS) 1917 */ 1918 1919 typedef struct { /*!< (@ 0x4002C000) FPU_NS Structure */ 1920 __IM uint32_t UNUSED; /*!< (@ 0x00000000) Unused. */ 1921 } NRF_FPU_Type; /*!< Size = 4 (0x4) */ 1922 1923 1924 1925 /* =========================================================================================================================== */ 1926 /* ================ APPROTECT_NS ================ */ 1927 /* =========================================================================================================================== */ 1928 1929 1930 /** 1931 * @brief Access Port Protection 0 (APPROTECT_NS) 1932 */ 1933 1934 typedef struct { /*!< (@ 0x40039000) APPROTECT_NS Structure */ 1935 __IM uint32_t RESERVED[896]; 1936 __IOM APPROTECT_SECUREAPPROTECT_Type SECUREAPPROTECT;/*!< (@ 0x00000E00) Unspecified */ 1937 __IM uint32_t RESERVED1[3]; 1938 __IOM APPROTECT_APPROTECT_Type APPROTECT; /*!< (@ 0x00000E10) Unspecified */ 1939 } NRF_APPROTECT_Type; /*!< Size = 3604 (0xe14) */ 1940 1941 1942 1943 /* =========================================================================================================================== */ 1944 /* ================ KMU_NS ================ */ 1945 /* =========================================================================================================================== */ 1946 1947 1948 /** 1949 * @brief Key management unit 0 (KMU_NS) 1950 */ 1951 1952 typedef struct { /*!< (@ 0x40039000) KMU_NS Structure */ 1953 __OM uint32_t TASKS_PUSH_KEYSLOT; /*!< (@ 0x00000000) Push a key slot over secure APB */ 1954 __IM uint32_t RESERVED[63]; 1955 __IOM uint32_t EVENTS_KEYSLOT_PUSHED; /*!< (@ 0x00000100) Key slot successfully pushed over secure APB */ 1956 __IOM uint32_t EVENTS_KEYSLOT_REVOKED; /*!< (@ 0x00000104) Key slot has been revoked and cannot be tasked 1957 for selection */ 1958 __IOM uint32_t EVENTS_KEYSLOT_ERROR; /*!< (@ 0x00000108) No key slot selected, no destination address 1959 defined, or error during push operation */ 1960 __IM uint32_t RESERVED1[125]; 1961 __IOM uint32_t INTEN; /*!< (@ 0x00000300) Enable or disable interrupt */ 1962 __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */ 1963 __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */ 1964 __IM uint32_t INTPEND; /*!< (@ 0x0000030C) Pending interrupts */ 1965 __IM uint32_t RESERVED2[63]; 1966 __IM uint32_t STATUS; /*!< (@ 0x0000040C) Status bits for KMU operation */ 1967 __IM uint32_t RESERVED3[60]; 1968 __IOM uint32_t SELECTKEYSLOT; /*!< (@ 0x00000500) Select key slot to be read over AHB or pushed 1969 over secure APB when TASKS_PUSH_KEYSLOT 1970 is started */ 1971 } NRF_KMU_Type; /*!< Size = 1284 (0x504) */ 1972 1973 1974 1975 /* =========================================================================================================================== */ 1976 /* ================ NVMC_NS ================ */ 1977 /* =========================================================================================================================== */ 1978 1979 1980 /** 1981 * @brief Non-volatile memory controller 0 (NVMC_NS) 1982 */ 1983 1984 typedef struct { /*!< (@ 0x40039000) NVMC_NS Structure */ 1985 __IM uint32_t RESERVED[256]; 1986 __IM uint32_t READY; /*!< (@ 0x00000400) Ready flag */ 1987 __IM uint32_t RESERVED1; 1988 __IM uint32_t READYNEXT; /*!< (@ 0x00000408) Ready flag */ 1989 __IM uint32_t RESERVED2[62]; 1990 __IOM uint32_t CONFIG; /*!< (@ 0x00000504) Configuration register */ 1991 __IM uint32_t RESERVED3; 1992 __OM uint32_t ERASEALL; /*!< (@ 0x0000050C) Register for erasing all non-volatile user memory */ 1993 __IM uint32_t RESERVED4[3]; 1994 __IOM uint32_t ERASEPAGEPARTIALCFG; /*!< (@ 0x0000051C) Register for partial erase configuration */ 1995 __IM uint32_t RESERVED5[8]; 1996 __IOM uint32_t ICACHECNF; /*!< (@ 0x00000540) I-code cache configuration register */ 1997 __IM uint32_t RESERVED6; 1998 __IOM uint32_t IHIT; /*!< (@ 0x00000548) I-code cache hit counter */ 1999 __IOM uint32_t IMISS; /*!< (@ 0x0000054C) I-code cache miss counter */ 2000 __IM uint32_t RESERVED7[13]; 2001 __IOM uint32_t CONFIGNS; /*!< (@ 0x00000584) Unspecified */ 2002 __OM uint32_t WRITEUICRNS; /*!< (@ 0x00000588) Non-secure APPROTECT enable register */ 2003 } NRF_NVMC_Type; /*!< Size = 1420 (0x58c) */ 2004 2005 2006 2007 /* =========================================================================================================================== */ 2008 /* ================ VMC_NS ================ */ 2009 /* =========================================================================================================================== */ 2010 2011 2012 /** 2013 * @brief Volatile Memory controller 0 (VMC_NS) 2014 */ 2015 2016 typedef struct { /*!< (@ 0x4003A000) VMC_NS Structure */ 2017 __IM uint32_t RESERVED[384]; 2018 __IOM VMC_RAM_Type RAM[8]; /*!< (@ 0x00000600) Unspecified */ 2019 } NRF_VMC_Type; /*!< Size = 1664 (0x680) */ 2020 2021 2022 2023 /* =========================================================================================================================== */ 2024 /* ================ CC_HOST_RGF_S ================ */ 2025 /* =========================================================================================================================== */ 2026 2027 2028 /** 2029 * @brief CRYPTOCELL HOST_RGF interface (CC_HOST_RGF_S) 2030 */ 2031 2032 typedef struct { /*!< (@ 0x50840000) CC_HOST_RGF_S Structure */ 2033 __IM uint32_t RESERVED[1678]; 2034 __IOM uint32_t HOST_CRYPTOKEY_SEL; /*!< (@ 0x00001A38) AES hardware key select */ 2035 __IM uint32_t RESERVED1[4]; 2036 __IOM uint32_t HOST_IOT_KPRTL_LOCK; /*!< (@ 0x00001A4C) This write-once register is the K_PRTL lock register. 2037 When this register is set, K_PRTL cannot 2038 be used and a zeroed key will be used instead. 2039 The value of this register is saved in the 2040 CRYPTOCELL AO power domain. */ 2041 __IOM uint32_t HOST_IOT_KDR0; /*!< (@ 0x00001A50) This register holds bits 31:0 of K_DR. The value 2042 of this register is saved in the CRYPTOCELL 2043 AO power domain. Reading from this address 2044 returns the K_DR valid status indicating 2045 if K_DR is successfully retained. */ 2046 __OM uint32_t HOST_IOT_KDR1; /*!< (@ 0x00001A54) This register holds bits 63:32 of K_DR. The value 2047 of this register is saved in the CRYPTOCELL 2048 AO power domain. */ 2049 __OM uint32_t HOST_IOT_KDR2; /*!< (@ 0x00001A58) This register holds bits 95:64 of K_DR. The value 2050 of this register is saved in the CRYPTOCELL 2051 AO power domain. */ 2052 __OM uint32_t HOST_IOT_KDR3; /*!< (@ 0x00001A5C) This register holds bits 127:96 of K_DR. The 2053 value of this register is saved in the CRYPTOCELL 2054 AO power domain. */ 2055 __IOM uint32_t HOST_IOT_LCS; /*!< (@ 0x00001A60) Controls lifecycle state (LCS) for CRYPTOCELL 2056 subsystem */ 2057 } NRF_CC_HOST_RGF_Type; /*!< Size = 6756 (0x1a64) */ 2058 2059 2060 2061 /* =========================================================================================================================== */ 2062 /* ================ CRYPTOCELL_S ================ */ 2063 /* =========================================================================================================================== */ 2064 2065 2066 /** 2067 * @brief ARM TrustZone CryptoCell register interface (CRYPTOCELL_S) 2068 */ 2069 2070 typedef struct { /*!< (@ 0x50840000) CRYPTOCELL_S Structure */ 2071 __IM uint32_t RESERVED[320]; 2072 __IOM uint32_t ENABLE; /*!< (@ 0x00000500) Enable CRYPTOCELL subsystem */ 2073 } NRF_CRYPTOCELL_Type; /*!< Size = 1284 (0x504) */ 2074 2075 2076 2077 /* =========================================================================================================================== */ 2078 /* ================ P0_NS ================ */ 2079 /* =========================================================================================================================== */ 2080 2081 2082 /** 2083 * @brief GPIO Port 0 (P0_NS) 2084 */ 2085 2086 typedef struct { /*!< (@ 0x40842500) P0_NS Structure */ 2087 __IM uint32_t RESERVED; 2088 __IOM uint32_t OUT; /*!< (@ 0x00000004) Write GPIO port */ 2089 __IOM uint32_t OUTSET; /*!< (@ 0x00000008) Set individual bits in GPIO port */ 2090 __IOM uint32_t OUTCLR; /*!< (@ 0x0000000C) Clear individual bits in GPIO port */ 2091 __IM uint32_t IN; /*!< (@ 0x00000010) Read GPIO port */ 2092 __IOM uint32_t DIR; /*!< (@ 0x00000014) Direction of GPIO pins */ 2093 __IOM uint32_t DIRSET; /*!< (@ 0x00000018) DIR set register */ 2094 __IOM uint32_t DIRCLR; /*!< (@ 0x0000001C) DIR clear register */ 2095 __IOM uint32_t LATCH; /*!< (@ 0x00000020) Latch register indicating what GPIO pins that 2096 have met the criteria set in the PIN_CNF[n].SENSE 2097 registers */ 2098 __IOM uint32_t DETECTMODE; /*!< (@ 0x00000024) Select between default DETECT signal behavior 2099 and LDETECT mode (For non-secure pin only) */ 2100 __IOM uint32_t DETECTMODE_SEC; /*!< (@ 0x00000028) Select between default DETECT signal behavior 2101 and LDETECT mode (For secure pin only) */ 2102 __IM uint32_t RESERVED1[117]; 2103 __IOM uint32_t PIN_CNF[32]; /*!< (@ 0x00000200) Description collection: Configuration of GPIO 2104 pins */ 2105 } NRF_GPIO_Type; /*!< Size = 640 (0x280) */ 2106 2107 2108 /** @} */ /* End of group Device_Peripheral_peripherals */ 2109 2110 2111 /* =========================================================================================================================== */ 2112 /* ================ Device Specific Peripheral Address Map ================ */ 2113 /* =========================================================================================================================== */ 2114 2115 2116 /** @addtogroup Device_Peripheral_peripheralAddr 2117 * @{ 2118 */ 2119 2120 #define NRF_FICR_S_BASE 0x00FF0000UL 2121 #define NRF_UICR_S_BASE 0x00FF8000UL 2122 #define NRF_TAD_S_BASE 0xE0080000UL 2123 #define NRF_SPU_S_BASE 0x50003000UL 2124 #define NRF_REGULATORS_NS_BASE 0x40004000UL 2125 #define NRF_REGULATORS_S_BASE 0x50004000UL 2126 #define NRF_CLOCK_NS_BASE 0x40005000UL 2127 #define NRF_POWER_NS_BASE 0x40005000UL 2128 #define NRF_CLOCK_S_BASE 0x50005000UL 2129 #define NRF_POWER_S_BASE 0x50005000UL 2130 #define NRF_CTRL_AP_PERI_S_BASE 0x50006000UL 2131 #define NRF_SPIM0_NS_BASE 0x40008000UL 2132 #define NRF_SPIS0_NS_BASE 0x40008000UL 2133 #define NRF_TWIM0_NS_BASE 0x40008000UL 2134 #define NRF_TWIS0_NS_BASE 0x40008000UL 2135 #define NRF_UARTE0_NS_BASE 0x40008000UL 2136 #define NRF_SPIM0_S_BASE 0x50008000UL 2137 #define NRF_SPIS0_S_BASE 0x50008000UL 2138 #define NRF_TWIM0_S_BASE 0x50008000UL 2139 #define NRF_TWIS0_S_BASE 0x50008000UL 2140 #define NRF_UARTE0_S_BASE 0x50008000UL 2141 #define NRF_SPIM1_NS_BASE 0x40009000UL 2142 #define NRF_SPIS1_NS_BASE 0x40009000UL 2143 #define NRF_TWIM1_NS_BASE 0x40009000UL 2144 #define NRF_TWIS1_NS_BASE 0x40009000UL 2145 #define NRF_UARTE1_NS_BASE 0x40009000UL 2146 #define NRF_SPIM1_S_BASE 0x50009000UL 2147 #define NRF_SPIS1_S_BASE 0x50009000UL 2148 #define NRF_TWIM1_S_BASE 0x50009000UL 2149 #define NRF_TWIS1_S_BASE 0x50009000UL 2150 #define NRF_UARTE1_S_BASE 0x50009000UL 2151 #define NRF_SPIM2_NS_BASE 0x4000A000UL 2152 #define NRF_SPIS2_NS_BASE 0x4000A000UL 2153 #define NRF_TWIM2_NS_BASE 0x4000A000UL 2154 #define NRF_TWIS2_NS_BASE 0x4000A000UL 2155 #define NRF_UARTE2_NS_BASE 0x4000A000UL 2156 #define NRF_SPIM2_S_BASE 0x5000A000UL 2157 #define NRF_SPIS2_S_BASE 0x5000A000UL 2158 #define NRF_TWIM2_S_BASE 0x5000A000UL 2159 #define NRF_TWIS2_S_BASE 0x5000A000UL 2160 #define NRF_UARTE2_S_BASE 0x5000A000UL 2161 #define NRF_SPIM3_NS_BASE 0x4000B000UL 2162 #define NRF_SPIS3_NS_BASE 0x4000B000UL 2163 #define NRF_TWIM3_NS_BASE 0x4000B000UL 2164 #define NRF_TWIS3_NS_BASE 0x4000B000UL 2165 #define NRF_UARTE3_NS_BASE 0x4000B000UL 2166 #define NRF_SPIM3_S_BASE 0x5000B000UL 2167 #define NRF_SPIS3_S_BASE 0x5000B000UL 2168 #define NRF_TWIM3_S_BASE 0x5000B000UL 2169 #define NRF_TWIS3_S_BASE 0x5000B000UL 2170 #define NRF_UARTE3_S_BASE 0x5000B000UL 2171 #define NRF_GPIOTE0_S_BASE 0x5000D000UL 2172 #define NRF_SAADC_NS_BASE 0x4000E000UL 2173 #define NRF_SAADC_S_BASE 0x5000E000UL 2174 #define NRF_TIMER0_NS_BASE 0x4000F000UL 2175 #define NRF_TIMER0_S_BASE 0x5000F000UL 2176 #define NRF_TIMER1_NS_BASE 0x40010000UL 2177 #define NRF_TIMER1_S_BASE 0x50010000UL 2178 #define NRF_TIMER2_NS_BASE 0x40011000UL 2179 #define NRF_TIMER2_S_BASE 0x50011000UL 2180 #define NRF_RTC0_NS_BASE 0x40014000UL 2181 #define NRF_RTC0_S_BASE 0x50014000UL 2182 #define NRF_RTC1_NS_BASE 0x40015000UL 2183 #define NRF_RTC1_S_BASE 0x50015000UL 2184 #define NRF_DPPIC_NS_BASE 0x40017000UL 2185 #define NRF_DPPIC_S_BASE 0x50017000UL 2186 #define NRF_WDT_NS_BASE 0x40018000UL 2187 #define NRF_WDT_S_BASE 0x50018000UL 2188 #define NRF_EGU0_NS_BASE 0x4001B000UL 2189 #define NRF_EGU0_S_BASE 0x5001B000UL 2190 #define NRF_EGU1_NS_BASE 0x4001C000UL 2191 #define NRF_EGU1_S_BASE 0x5001C000UL 2192 #define NRF_EGU2_NS_BASE 0x4001D000UL 2193 #define NRF_EGU2_S_BASE 0x5001D000UL 2194 #define NRF_EGU3_NS_BASE 0x4001E000UL 2195 #define NRF_EGU3_S_BASE 0x5001E000UL 2196 #define NRF_EGU4_NS_BASE 0x4001F000UL 2197 #define NRF_EGU4_S_BASE 0x5001F000UL 2198 #define NRF_EGU5_NS_BASE 0x40020000UL 2199 #define NRF_EGU5_S_BASE 0x50020000UL 2200 #define NRF_PWM0_NS_BASE 0x40021000UL 2201 #define NRF_PWM0_S_BASE 0x50021000UL 2202 #define NRF_PWM1_NS_BASE 0x40022000UL 2203 #define NRF_PWM1_S_BASE 0x50022000UL 2204 #define NRF_PWM2_NS_BASE 0x40023000UL 2205 #define NRF_PWM2_S_BASE 0x50023000UL 2206 #define NRF_PWM3_NS_BASE 0x40024000UL 2207 #define NRF_PWM3_S_BASE 0x50024000UL 2208 #define NRF_PDM_NS_BASE 0x40026000UL 2209 #define NRF_PDM_S_BASE 0x50026000UL 2210 #define NRF_I2S_NS_BASE 0x40028000UL 2211 #define NRF_I2S_S_BASE 0x50028000UL 2212 #define NRF_IPC_NS_BASE 0x4002A000UL 2213 #define NRF_IPC_S_BASE 0x5002A000UL 2214 #define NRF_FPU_NS_BASE 0x4002C000UL 2215 #define NRF_GPIOTE1_NS_BASE 0x40031000UL 2216 #define NRF_APPROTECT_NS_BASE 0x40039000UL 2217 #define NRF_KMU_NS_BASE 0x40039000UL 2218 #define NRF_NVMC_NS_BASE 0x40039000UL 2219 #define NRF_APPROTECT_S_BASE 0x50039000UL 2220 #define NRF_KMU_S_BASE 0x50039000UL 2221 #define NRF_NVMC_S_BASE 0x50039000UL 2222 #define NRF_VMC_NS_BASE 0x4003A000UL 2223 #define NRF_VMC_S_BASE 0x5003A000UL 2224 #define NRF_CC_HOST_RGF_S_BASE 0x50840000UL 2225 #define NRF_CRYPTOCELL_S_BASE 0x50840000UL 2226 #define NRF_P0_NS_BASE 0x40842500UL 2227 #define NRF_P0_S_BASE 0x50842500UL 2228 2229 /** @} */ /* End of group Device_Peripheral_peripheralAddr */ 2230 2231 2232 /* =========================================================================================================================== */ 2233 /* ================ Peripheral declaration ================ */ 2234 /* =========================================================================================================================== */ 2235 2236 2237 /** @addtogroup Device_Peripheral_declaration 2238 * @{ 2239 */ 2240 2241 #define NRF_FICR_S ((NRF_FICR_Type*) NRF_FICR_S_BASE) 2242 #define NRF_UICR_S ((NRF_UICR_Type*) NRF_UICR_S_BASE) 2243 #define NRF_TAD_S ((NRF_TAD_Type*) NRF_TAD_S_BASE) 2244 #define NRF_SPU_S ((NRF_SPU_Type*) NRF_SPU_S_BASE) 2245 #define NRF_REGULATORS_NS ((NRF_REGULATORS_Type*) NRF_REGULATORS_NS_BASE) 2246 #define NRF_REGULATORS_S ((NRF_REGULATORS_Type*) NRF_REGULATORS_S_BASE) 2247 #define NRF_CLOCK_NS ((NRF_CLOCK_Type*) NRF_CLOCK_NS_BASE) 2248 #define NRF_POWER_NS ((NRF_POWER_Type*) NRF_POWER_NS_BASE) 2249 #define NRF_CLOCK_S ((NRF_CLOCK_Type*) NRF_CLOCK_S_BASE) 2250 #define NRF_POWER_S ((NRF_POWER_Type*) NRF_POWER_S_BASE) 2251 #define NRF_CTRL_AP_PERI_S ((NRF_CTRLAPPERI_Type*) NRF_CTRL_AP_PERI_S_BASE) 2252 #define NRF_SPIM0_NS ((NRF_SPIM_Type*) NRF_SPIM0_NS_BASE) 2253 #define NRF_SPIS0_NS ((NRF_SPIS_Type*) NRF_SPIS0_NS_BASE) 2254 #define NRF_TWIM0_NS ((NRF_TWIM_Type*) NRF_TWIM0_NS_BASE) 2255 #define NRF_TWIS0_NS ((NRF_TWIS_Type*) NRF_TWIS0_NS_BASE) 2256 #define NRF_UARTE0_NS ((NRF_UARTE_Type*) NRF_UARTE0_NS_BASE) 2257 #define NRF_SPIM0_S ((NRF_SPIM_Type*) NRF_SPIM0_S_BASE) 2258 #define NRF_SPIS0_S ((NRF_SPIS_Type*) NRF_SPIS0_S_BASE) 2259 #define NRF_TWIM0_S ((NRF_TWIM_Type*) NRF_TWIM0_S_BASE) 2260 #define NRF_TWIS0_S ((NRF_TWIS_Type*) NRF_TWIS0_S_BASE) 2261 #define NRF_UARTE0_S ((NRF_UARTE_Type*) NRF_UARTE0_S_BASE) 2262 #define NRF_SPIM1_NS ((NRF_SPIM_Type*) NRF_SPIM1_NS_BASE) 2263 #define NRF_SPIS1_NS ((NRF_SPIS_Type*) NRF_SPIS1_NS_BASE) 2264 #define NRF_TWIM1_NS ((NRF_TWIM_Type*) NRF_TWIM1_NS_BASE) 2265 #define NRF_TWIS1_NS ((NRF_TWIS_Type*) NRF_TWIS1_NS_BASE) 2266 #define NRF_UARTE1_NS ((NRF_UARTE_Type*) NRF_UARTE1_NS_BASE) 2267 #define NRF_SPIM1_S ((NRF_SPIM_Type*) NRF_SPIM1_S_BASE) 2268 #define NRF_SPIS1_S ((NRF_SPIS_Type*) NRF_SPIS1_S_BASE) 2269 #define NRF_TWIM1_S ((NRF_TWIM_Type*) NRF_TWIM1_S_BASE) 2270 #define NRF_TWIS1_S ((NRF_TWIS_Type*) NRF_TWIS1_S_BASE) 2271 #define NRF_UARTE1_S ((NRF_UARTE_Type*) NRF_UARTE1_S_BASE) 2272 #define NRF_SPIM2_NS ((NRF_SPIM_Type*) NRF_SPIM2_NS_BASE) 2273 #define NRF_SPIS2_NS ((NRF_SPIS_Type*) NRF_SPIS2_NS_BASE) 2274 #define NRF_TWIM2_NS ((NRF_TWIM_Type*) NRF_TWIM2_NS_BASE) 2275 #define NRF_TWIS2_NS ((NRF_TWIS_Type*) NRF_TWIS2_NS_BASE) 2276 #define NRF_UARTE2_NS ((NRF_UARTE_Type*) NRF_UARTE2_NS_BASE) 2277 #define NRF_SPIM2_S ((NRF_SPIM_Type*) NRF_SPIM2_S_BASE) 2278 #define NRF_SPIS2_S ((NRF_SPIS_Type*) NRF_SPIS2_S_BASE) 2279 #define NRF_TWIM2_S ((NRF_TWIM_Type*) NRF_TWIM2_S_BASE) 2280 #define NRF_TWIS2_S ((NRF_TWIS_Type*) NRF_TWIS2_S_BASE) 2281 #define NRF_UARTE2_S ((NRF_UARTE_Type*) NRF_UARTE2_S_BASE) 2282 #define NRF_SPIM3_NS ((NRF_SPIM_Type*) NRF_SPIM3_NS_BASE) 2283 #define NRF_SPIS3_NS ((NRF_SPIS_Type*) NRF_SPIS3_NS_BASE) 2284 #define NRF_TWIM3_NS ((NRF_TWIM_Type*) NRF_TWIM3_NS_BASE) 2285 #define NRF_TWIS3_NS ((NRF_TWIS_Type*) NRF_TWIS3_NS_BASE) 2286 #define NRF_UARTE3_NS ((NRF_UARTE_Type*) NRF_UARTE3_NS_BASE) 2287 #define NRF_SPIM3_S ((NRF_SPIM_Type*) NRF_SPIM3_S_BASE) 2288 #define NRF_SPIS3_S ((NRF_SPIS_Type*) NRF_SPIS3_S_BASE) 2289 #define NRF_TWIM3_S ((NRF_TWIM_Type*) NRF_TWIM3_S_BASE) 2290 #define NRF_TWIS3_S ((NRF_TWIS_Type*) NRF_TWIS3_S_BASE) 2291 #define NRF_UARTE3_S ((NRF_UARTE_Type*) NRF_UARTE3_S_BASE) 2292 #define NRF_GPIOTE0_S ((NRF_GPIOTE_Type*) NRF_GPIOTE0_S_BASE) 2293 #define NRF_SAADC_NS ((NRF_SAADC_Type*) NRF_SAADC_NS_BASE) 2294 #define NRF_SAADC_S ((NRF_SAADC_Type*) NRF_SAADC_S_BASE) 2295 #define NRF_TIMER0_NS ((NRF_TIMER_Type*) NRF_TIMER0_NS_BASE) 2296 #define NRF_TIMER0_S ((NRF_TIMER_Type*) NRF_TIMER0_S_BASE) 2297 #define NRF_TIMER1_NS ((NRF_TIMER_Type*) NRF_TIMER1_NS_BASE) 2298 #define NRF_TIMER1_S ((NRF_TIMER_Type*) NRF_TIMER1_S_BASE) 2299 #define NRF_TIMER2_NS ((NRF_TIMER_Type*) NRF_TIMER2_NS_BASE) 2300 #define NRF_TIMER2_S ((NRF_TIMER_Type*) NRF_TIMER2_S_BASE) 2301 #define NRF_RTC0_NS ((NRF_RTC_Type*) NRF_RTC0_NS_BASE) 2302 #define NRF_RTC0_S ((NRF_RTC_Type*) NRF_RTC0_S_BASE) 2303 #define NRF_RTC1_NS ((NRF_RTC_Type*) NRF_RTC1_NS_BASE) 2304 #define NRF_RTC1_S ((NRF_RTC_Type*) NRF_RTC1_S_BASE) 2305 #define NRF_DPPIC_NS ((NRF_DPPIC_Type*) NRF_DPPIC_NS_BASE) 2306 #define NRF_DPPIC_S ((NRF_DPPIC_Type*) NRF_DPPIC_S_BASE) 2307 #define NRF_WDT_NS ((NRF_WDT_Type*) NRF_WDT_NS_BASE) 2308 #define NRF_WDT_S ((NRF_WDT_Type*) NRF_WDT_S_BASE) 2309 #define NRF_EGU0_NS ((NRF_EGU_Type*) NRF_EGU0_NS_BASE) 2310 #define NRF_EGU0_S ((NRF_EGU_Type*) NRF_EGU0_S_BASE) 2311 #define NRF_EGU1_NS ((NRF_EGU_Type*) NRF_EGU1_NS_BASE) 2312 #define NRF_EGU1_S ((NRF_EGU_Type*) NRF_EGU1_S_BASE) 2313 #define NRF_EGU2_NS ((NRF_EGU_Type*) NRF_EGU2_NS_BASE) 2314 #define NRF_EGU2_S ((NRF_EGU_Type*) NRF_EGU2_S_BASE) 2315 #define NRF_EGU3_NS ((NRF_EGU_Type*) NRF_EGU3_NS_BASE) 2316 #define NRF_EGU3_S ((NRF_EGU_Type*) NRF_EGU3_S_BASE) 2317 #define NRF_EGU4_NS ((NRF_EGU_Type*) NRF_EGU4_NS_BASE) 2318 #define NRF_EGU4_S ((NRF_EGU_Type*) NRF_EGU4_S_BASE) 2319 #define NRF_EGU5_NS ((NRF_EGU_Type*) NRF_EGU5_NS_BASE) 2320 #define NRF_EGU5_S ((NRF_EGU_Type*) NRF_EGU5_S_BASE) 2321 #define NRF_PWM0_NS ((NRF_PWM_Type*) NRF_PWM0_NS_BASE) 2322 #define NRF_PWM0_S ((NRF_PWM_Type*) NRF_PWM0_S_BASE) 2323 #define NRF_PWM1_NS ((NRF_PWM_Type*) NRF_PWM1_NS_BASE) 2324 #define NRF_PWM1_S ((NRF_PWM_Type*) NRF_PWM1_S_BASE) 2325 #define NRF_PWM2_NS ((NRF_PWM_Type*) NRF_PWM2_NS_BASE) 2326 #define NRF_PWM2_S ((NRF_PWM_Type*) NRF_PWM2_S_BASE) 2327 #define NRF_PWM3_NS ((NRF_PWM_Type*) NRF_PWM3_NS_BASE) 2328 #define NRF_PWM3_S ((NRF_PWM_Type*) NRF_PWM3_S_BASE) 2329 #define NRF_PDM_NS ((NRF_PDM_Type*) NRF_PDM_NS_BASE) 2330 #define NRF_PDM_S ((NRF_PDM_Type*) NRF_PDM_S_BASE) 2331 #define NRF_I2S_NS ((NRF_I2S_Type*) NRF_I2S_NS_BASE) 2332 #define NRF_I2S_S ((NRF_I2S_Type*) NRF_I2S_S_BASE) 2333 #define NRF_IPC_NS ((NRF_IPC_Type*) NRF_IPC_NS_BASE) 2334 #define NRF_IPC_S ((NRF_IPC_Type*) NRF_IPC_S_BASE) 2335 #define NRF_FPU_NS ((NRF_FPU_Type*) NRF_FPU_NS_BASE) 2336 #define NRF_GPIOTE1_NS ((NRF_GPIOTE_Type*) NRF_GPIOTE1_NS_BASE) 2337 #define NRF_APPROTECT_NS ((NRF_APPROTECT_Type*) NRF_APPROTECT_NS_BASE) 2338 #define NRF_KMU_NS ((NRF_KMU_Type*) NRF_KMU_NS_BASE) 2339 #define NRF_NVMC_NS ((NRF_NVMC_Type*) NRF_NVMC_NS_BASE) 2340 #define NRF_APPROTECT_S ((NRF_APPROTECT_Type*) NRF_APPROTECT_S_BASE) 2341 #define NRF_KMU_S ((NRF_KMU_Type*) NRF_KMU_S_BASE) 2342 #define NRF_NVMC_S ((NRF_NVMC_Type*) NRF_NVMC_S_BASE) 2343 #define NRF_VMC_NS ((NRF_VMC_Type*) NRF_VMC_NS_BASE) 2344 #define NRF_VMC_S ((NRF_VMC_Type*) NRF_VMC_S_BASE) 2345 #define NRF_CC_HOST_RGF_S ((NRF_CC_HOST_RGF_Type*) NRF_CC_HOST_RGF_S_BASE) 2346 #define NRF_CRYPTOCELL_S ((NRF_CRYPTOCELL_Type*) NRF_CRYPTOCELL_S_BASE) 2347 #define NRF_P0_NS ((NRF_GPIO_Type*) NRF_P0_NS_BASE) 2348 #define NRF_P0_S ((NRF_GPIO_Type*) NRF_P0_S_BASE) 2349 2350 /** @} */ /* End of group Device_Peripheral_declaration */ 2351 2352 2353 /* ========================================= End of section using anonymous unions ========================================= */ 2354 #if defined (__CC_ARM) 2355 #pragma pop 2356 #elif defined (__ICCARM__) 2357 /* leave anonymous unions enabled */ 2358 #elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) 2359 #pragma clang diagnostic pop 2360 #elif defined (__GNUC__) 2361 /* anonymous unions are enabled by default */ 2362 #elif defined (__TMS470__) 2363 /* anonymous unions are enabled by default */ 2364 #elif defined (__TASKING__) 2365 #pragma warning restore 2366 #elif defined (__CSMC__) 2367 /* anonymous unions are enabled by default */ 2368 #endif 2369 2370 2371 #ifdef __cplusplus 2372 } 2373 #endif 2374 2375 #endif /* NRF9120_H */ 2376 2377 2378 /** @} */ /* End of group nrf9120 */ 2379 2380 /** @} */ /* End of group Nordic Semiconductor */ 2381