1 /* 2 3 Copyright (c) 2010 - 2020, Nordic Semiconductor ASA All rights reserved. 4 5 Redistribution and use in source and binary forms, with or without 6 modification, are permitted provided that the following conditions are met: 7 8 1. Redistributions of source code must retain the above copyright notice, this 9 list of conditions and the following disclaimer. 10 11 2. Redistributions in binary form must reproduce the above copyright 12 notice, this list of conditions and the following disclaimer in the 13 documentation and/or other materials provided with the distribution. 14 15 3. Neither the name of Nordic Semiconductor ASA nor the names of its 16 contributors may be used to endorse or promote products derived from this 17 software without specific prior written permission. 18 19 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 IMPLIED WARRANTIES OF MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE 22 ARE DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE 23 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29 POSSIBILITY OF SUCH DAMAGE. 30 31 */ 32 33 #ifndef _NRF5340_PERIPHERALS_H 34 #define _NRF5340_PERIPHERALS_H 35 36 37 /* Clock Peripheral */ 38 #define CLOCK_PRESENT 39 #define CLOCK_COUNT 1 40 41 /* Power Peripheral */ 42 #define POWER_PRESENT 43 #define POWER_COUNT 1 44 45 /* Non-Volatile Memory Controller */ 46 #define NVMC_PRESENT 47 #define NVMC_COUNT 1 48 49 /* NVM instruction and data cache */ 50 #define CACHE_PRESENT 51 #define CACHE_COUNT 1 52 53 /* Memory Protection Unit */ 54 #define MPU_REGION_NUM 8 55 56 /* Regulators Peripheral */ 57 #define REGULATORS_PRESENT 58 #define REGULATORS_COUNT 1 59 60 #define REGULATORS_FEATURE_VDDH_PRESENT 61 62 /* USB Regulator Peripheral */ 63 #define USBREG_PRESENT 64 #define USBREG_COUNT 1 65 66 /* Volatile Memory Controller Peripheral */ 67 #define VMC_PRESENT 68 #define VMC_COUNT 1 69 70 #define VMC_FEATURE_RAM_REGISTERS_PRESENT 71 #define VMC_FEATURE_RAM_REGISTERS_COUNT 8 72 73 /* Floating Point Unit */ 74 #define FPU_PRESENT 75 #define FPU_COUNT 1 76 77 /* Systick timer */ 78 #define SYSTICK_PRESENT 79 #define SYSTICK_COUNT 1 80 81 /* Inter-Processor Communication */ 82 #define IPC_PRESENT 83 #define IPC_COUNT 1 84 85 #define IPC_CH_NUM 16 86 #define IPC_CONF_NUM 16 87 #define IPC_GPMEM_NUM 2 88 89 /* GPIO */ 90 #define GPIO_PRESENT 91 #define GPIO_COUNT 2 92 93 #define P0_PIN_NUM 32 94 #define P1_PIN_NUM 16 95 96 #define P0_FEATURE_PINS_PRESENT 0xFFFFFFFFUL 97 #define P1_FEATURE_PINS_PRESENT 0x0000FFFFUL 98 99 /* NFC Tag */ 100 #define NFCT_PRESENT 101 #define NFCT_COUNT 1 102 103 #define NFCT_EASYDMA_MAXCNT_SIZE 9 104 105 /* Distributed Peripheral to Peripheral Interconnect */ 106 #define DPPI_PRESENT 107 #define DPPI_COUNT 1 108 109 #define DPPI_CH_NUM 32 110 #define DPPI_GROUP_NUM 6 111 112 /* Event Generator Unit */ 113 #define EGU_PRESENT 114 #define EGU_COUNT 6 115 116 #define EGU0_CH_NUM 16 117 #define EGU1_CH_NUM 16 118 #define EGU2_CH_NUM 16 119 #define EGU3_CH_NUM 16 120 #define EGU4_CH_NUM 16 121 #define EGU5_CH_NUM 16 122 123 /* Timer/Counter */ 124 #define TIMER_PRESENT 125 #define TIMER_COUNT 3 126 127 #define TIMER0_MAX_SIZE 32 128 #define TIMER1_MAX_SIZE 32 129 #define TIMER2_MAX_SIZE 32 130 131 #define TIMER0_CC_NUM 6 132 #define TIMER1_CC_NUM 6 133 #define TIMER2_CC_NUM 6 134 135 /* Real Time Counter */ 136 #define RTC_PRESENT 137 #define RTC_COUNT 2 138 139 #define RTC0_CC_NUM 4 140 #define RTC1_CC_NUM 4 141 142 /* Watchdog Timer */ 143 #define WDT_PRESENT 144 #define WDT_COUNT 2 145 146 /* Serial Peripheral Interface Master with DMA */ 147 #define SPIM_PRESENT 148 #define SPIM_COUNT 5 149 150 #define SPIM0_MAX_DATARATE 8 151 #define SPIM1_MAX_DATARATE 8 152 #define SPIM2_MAX_DATARATE 8 153 #define SPIM3_MAX_DATARATE 8 154 #define SPIM4_MAX_DATARATE 32 155 156 #define SPIM0_FEATURE_HARDWARE_CSN_PRESENT 0 157 #define SPIM1_FEATURE_HARDWARE_CSN_PRESENT 0 158 #define SPIM2_FEATURE_HARDWARE_CSN_PRESENT 0 159 #define SPIM3_FEATURE_HARDWARE_CSN_PRESENT 0 160 #define SPIM4_FEATURE_HARDWARE_CSN_PRESENT 1 161 162 #define SPIM0_FEATURE_DCX_PRESENT 0 163 #define SPIM1_FEATURE_DCX_PRESENT 0 164 #define SPIM2_FEATURE_DCX_PRESENT 0 165 #define SPIM3_FEATURE_DCX_PRESENT 0 166 #define SPIM4_FEATURE_DCX_PRESENT 1 167 168 #define SPIM0_FEATURE_RXDELAY_PRESENT 0 169 #define SPIM1_FEATURE_RXDELAY_PRESENT 0 170 #define SPIM2_FEATURE_RXDELAY_PRESENT 0 171 #define SPIM3_FEATURE_RXDELAY_PRESENT 0 172 #define SPIM4_FEATURE_RXDELAY_PRESENT 1 173 174 #define SPIM0_EASYDMA_MAXCNT_SIZE 16 175 #define SPIM1_EASYDMA_MAXCNT_SIZE 16 176 #define SPIM2_EASYDMA_MAXCNT_SIZE 16 177 #define SPIM3_EASYDMA_MAXCNT_SIZE 16 178 #define SPIM4_EASYDMA_MAXCNT_SIZE 16 179 180 /* Serial Peripheral Interface Slave with DMA*/ 181 #define SPIS_PRESENT 182 #define SPIS_COUNT 4 183 184 #define SPIS0_EASYDMA_MAXCNT_SIZE 16 185 #define SPIS1_EASYDMA_MAXCNT_SIZE 16 186 #define SPIS2_EASYDMA_MAXCNT_SIZE 16 187 #define SPIS3_EASYDMA_MAXCNT_SIZE 16 188 189 /* Two Wire Interface Master with DMA */ 190 #define TWIM_PRESENT 191 #define TWIM_COUNT 4 192 193 #define TWIM0_EASYDMA_MAXCNT_SIZE 16 194 #define TWIM1_EASYDMA_MAXCNT_SIZE 16 195 #define TWIM2_EASYDMA_MAXCNT_SIZE 16 196 #define TWIM3_EASYDMA_MAXCNT_SIZE 16 197 198 /* Two Wire Interface Slave with DMA */ 199 #define TWIS_PRESENT 200 #define TWIS_COUNT 4 201 202 #define TWIS0_EASYDMA_MAXCNT_SIZE 16 203 #define TWIS1_EASYDMA_MAXCNT_SIZE 16 204 #define TWIS2_EASYDMA_MAXCNT_SIZE 16 205 #define TWIS3_EASYDMA_MAXCNT_SIZE 16 206 207 /* Universal Asynchronous Receiver-Transmitter with DMA */ 208 #define UARTE_PRESENT 209 #define UARTE_COUNT 4 210 211 #define UARTE0_EASYDMA_MAXCNT_SIZE 16 212 #define UARTE1_EASYDMA_MAXCNT_SIZE 16 213 #define UARTE2_EASYDMA_MAXCNT_SIZE 16 214 #define UARTE3_EASYDMA_MAXCNT_SIZE 16 215 216 /* Quadrature Decoder */ 217 #define QDEC_PRESENT 218 #define QDEC_COUNT 2 219 220 /* Successive Approximation Analog to Digital Converter */ 221 #define SAADC_PRESENT 222 #define SAADC_COUNT 1 223 224 #define SAADC_CH_NUM 8 225 #define SAADC_EASYDMA_MAXCNT_SIZE 15 226 227 /* GPIO Tasks and Events */ 228 #define GPIOTE_PRESENT 229 #define GPIOTE_COUNT 2 230 231 #define GPIOTE_CH_NUM 8 232 233 #define GPIOTE_FEATURE_SET_PRESENT 234 #define GPIOTE_FEATURE_CLR_PRESENT 235 236 /* Low Power Comparator */ 237 #define LPCOMP_PRESENT 238 #define LPCOMP_COUNT 1 239 240 #define LPCOMP_REFSEL_RESOLUTION 16 241 242 #define LPCOMP_FEATURE_HYST_PRESENT 243 244 /* Comparator */ 245 #define COMP_PRESENT 246 #define COMP_COUNT 1 247 248 /* Pulse Width Modulator */ 249 #define PWM_PRESENT 250 #define PWM_COUNT 4 251 252 #define PWM0_CH_NUM 4 253 #define PWM1_CH_NUM 4 254 #define PWM2_CH_NUM 4 255 #define PWM3_CH_NUM 4 256 257 #define PWM0_EASYDMA_MAXCNT_SIZE 15 258 #define PWM1_EASYDMA_MAXCNT_SIZE 15 259 #define PWM2_EASYDMA_MAXCNT_SIZE 15 260 #define PWM3_EASYDMA_MAXCNT_SIZE 15 261 262 /* ARM TrustZone Cryptocell 310 */ 263 #define CRYPTOCELL_PRESENT 264 #define CRYPTOCELL_COUNT 1 265 266 /* Quad SPI */ 267 #define QSPI_PRESENT 268 #define QSPI_COUNT 1 269 270 #define QSPI_EASYDMA_MAXCNT_SIZE 20 271 272 /* Mutex*/ 273 #define MUTEX_PRESENT 274 #define MUTEX_COUNT 1 275 276 /* Key management Unit */ 277 #define KMU_PRESENT 278 #define KMU_COUNT 1 279 280 /* Pulse density modulation */ 281 #define PDM_PRESENT 282 #define PDM_COUNT 1 283 284 /* Secure Peripheral Unit */ 285 #define SPU_PRESENT 286 #define SPU_COUNT 1 287 288 /* Inter-IC Sound Interface */ 289 #define I2S_PRESENT 290 #define I2S_COUNT 1 291 292 #define I2S_EASYDMA_MAXCNT_SIZE 14 293 294 /* Universal Serial Bus Device */ 295 #define USBD_PRESENT 296 #define USBD_COUNT 1 297 298 #define USBD_EASYDMA_MAXCNT_SIZE 7 299 300 /* Oscillators */ 301 #define OSCILLATORS_PRESENT 302 #define OSCILLATORS_COUNT 1 303 304 #endif // _NRF5340_PERIPHERALS_H 305