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