1/* 2 * Copyright (c) 2020 Henrik Brix Andersen <henrik@brixandersen.dk> 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7#include <arm/armv8-m.dtsi> 8#include <zephyr/dt-bindings/clock/mcux_lpc_syscon_clock.h> 9#include <zephyr/dt-bindings/gpio/gpio.h> 10#include <zephyr/dt-bindings/i2c/i2c.h> 11#include <zephyr/dt-bindings/memory-attr/memory-attr-arm.h> 12#include <mem.h> 13#include <zephyr/dt-bindings/reset/nxp_syscon_reset_common.h> 14 15/ { 16 cpus { 17 #address-cells = <1>; 18 #size-cells = <0>; 19 20 cpu@0 { 21 compatible = "arm,cortex-m33f"; 22 reg = <0>; 23 #address-cells = <1>; 24 #size-cells = <1>; 25 26 mpu: mpu@e000ed90 { 27 compatible = "arm,armv8m-mpu"; 28 reg = <0xe000ed90 0x40>; 29 }; 30 }; 31 }; 32}; 33 34&sram { 35 #address-cells = <1>; 36 #size-cells = <1>; 37 38 sramx: memory@4000000 { 39 compatible = "zephyr,memory-region", "mmio-sram"; 40 reg = <0x4000000 DT_SIZE_K(16)>; 41 zephyr,memory-region = "SRAMX"; 42 }; 43 44 sram0: memory@20000000 { 45 compatible = "zephyr,memory-region", "mmio-sram"; 46 reg = <0x20000000 DT_SIZE_K(32)>; 47 zephyr,memory-region = "SRAM0"; 48 }; 49 50 sram1: memory@20008000 { 51 compatible = "zephyr,memory-region", "mmio-sram"; 52 reg = <0x20008000 DT_SIZE_K(16)>; 53 zephyr,memory-region = "SRAM1"; 54 }; 55 56 sram2: memory@2000c000 { 57 compatible = "zephyr,memory-region", "mmio-sram"; 58 reg = <0x2000c000 DT_SIZE_K(16)>; 59 zephyr,memory-region = "SRAM2"; 60 }; 61 62 usb_sram: memory@20010000 { 63 /* Connected to USB bus*/ 64 compatible = "zephyr,memory-region", "mmio-sram"; 65 reg = <0x20010000 DT_SIZE_K(16)>; 66 zephyr,memory-region = "USB_SRAM"; 67 zephyr,memory-attr = <( DT_MEM_ARM(ATTR_MPU_RAM) )>; 68 }; 69}; 70 71&peripheral { 72 #address-cells = <1>; 73 #size-cells = <1>; 74 75 syscon: syscon@0 { 76 compatible = "nxp,lpc-syscon"; 77 reg = <0x0 0x4000>; 78 #clock-cells = <1>; 79 reset: reset { 80 compatible = "nxp,lpc-syscon-reset"; 81 #reset-cells = <1>; 82 }; 83 }; 84 85 iap: flash-controller@34000 { 86 compatible = "nxp,iap-fmc55"; 87 reg = <0x34000 0x18>; 88 #address-cells = <1>; 89 #size-cells = <1>; 90 status = "disabled"; 91 92 flash0: flash@0 { 93 compatible = "soc-nv-flash"; 94 reg = <0x0 DT_SIZE_K(246)>; 95 erase-block-size = <512>; 96 write-block-size = <512>; 97 }; 98 99 flash_reserved: flash@3d800 { 100 compatible = "soc-nv-flash"; 101 reg = <0x0003d800 DT_SIZE_K(10)>; 102 status = "disabled"; 103 }; 104 105 uuid: flash@3fc70 { 106 compatible = "nxp,lpc-uid"; 107 reg = <0x3fc70 0x10>; 108 }; 109 110 boot_rom: flash@3000000 { 111 compatible = "soc-nv-flash"; 112 reg = <0x3000000 DT_SIZE_K(128)>; 113 }; 114 }; 115 116 iocon: iocon@1000 { 117 compatible = "nxp,lpc-iocon"; 118 reg = <0x1000 0x100>; 119 #address-cells = <1>; 120 #size-cells = <1>; 121 ranges = <0x0 0x1000 0x100>; 122 pinctrl: pinctrl { 123 compatible = "nxp,lpc-iocon-pinctrl"; 124 }; 125 }; 126 127 gpio: gpio@8c000 { 128 compatible = "nxp,lpc-gpio"; 129 reg = <0x8c000 0x2488>; 130 #address-cells = <1>; 131 #size-cells = <0>; 132 133 gpio0: gpio@0 { 134 compatible = "nxp,lpc-gpio-port"; 135 reg = <0>; 136 int-source = "pint"; 137 gpio-controller; 138 #gpio-cells = <2>; 139 }; 140 141 gpio1: gpio@1 { 142 compatible = "nxp,lpc-gpio-port"; 143 reg = <1>; 144 int-source = "pint"; 145 gpio-controller; 146 #gpio-cells = <2>; 147 }; 148 }; 149 150 pint: pint@4000 { 151 compatible = "nxp,pint"; 152 reg = <0x4000 0x1000>; 153 interrupt-controller; 154 #interrupt-cells = <1>; 155 #address-cells = <0>; 156 interrupts = <4 2>, <5 2>, <6 2>, <7 2>, 157 <32 2>, <33 2>, <34 2>, <35 2>; 158 num-lines = <8>; 159 num-inputs = <64>; 160 }; 161 162 ctimer0: ctimer@8000 { 163 compatible = "nxp,lpc-ctimer"; 164 reg = <0x8000 0x1000>; 165 interrupts = <10 0>; 166 status = "disabled"; 167 clk-source = <3>; 168 clocks = <&syscon MCUX_CTIMER0_CLK>; 169 mode = <0>; 170 input = <0>; 171 prescale = <0>; 172 }; 173 174 ctimer1: ctimer@9000 { 175 compatible = "nxp,lpc-ctimer"; 176 reg = <0x9000 0x1000>; 177 interrupts = <11 0>; 178 status = "disabled"; 179 clk-source = <3>; 180 clocks = <&syscon MCUX_CTIMER1_CLK>; 181 mode = <0>; 182 input = <0>; 183 prescale = <0>; 184 }; 185 186 ctimer2: ctimer@28000 { 187 compatible = "nxp,lpc-ctimer"; 188 reg = <0x28000 0x1000>; 189 interrupts = <36 0>; 190 status = "disabled"; 191 clk-source = <3>; 192 clocks = <&syscon MCUX_CTIMER2_CLK>; 193 mode = <0>; 194 input = <0>; 195 prescale = <0>; 196 }; 197 198 ctimer3: ctimer@29000 { 199 compatible = "nxp,lpc-ctimer"; 200 reg = <0x29000 0x1000>; 201 interrupts = <13 0>; 202 status = "disabled"; 203 clk-source = <3>; 204 clocks = <&syscon MCUX_CTIMER3_CLK>; 205 mode = <0>; 206 input = <0>; 207 prescale = <0>; 208 }; 209 210 ctimer4: ctimer@2A000 { 211 compatible = "nxp,lpc-ctimer"; 212 reg = <0x2A000 0x1000>; 213 interrupts = <37 0>; 214 status = "disabled"; 215 clk-source = <3>; 216 clocks = <&syscon MCUX_CTIMER4_CLK>; 217 mode = <0>; 218 input = <0>; 219 prescale = <0>; 220 }; 221 222 flexcomm0: flexcomm@86000 { 223 compatible = "nxp,lpc-flexcomm"; 224 reg = <0x86000 0x1000>; 225 interrupts = <14 0>; 226 clocks = <&syscon MCUX_FLEXCOMM0_CLK>; 227 resets = <&reset NXP_SYSCON_RESET(1, 11)>; 228 status = "disabled"; 229 }; 230 231 flexcomm1: flexcomm@87000 { 232 compatible = "nxp,lpc-flexcomm"; 233 reg = <0x87000 0x1000>; 234 interrupts = <15 0>; 235 clocks = <&syscon MCUX_FLEXCOMM1_CLK>; 236 resets = <&reset NXP_SYSCON_RESET(1, 12)>; 237 status = "disabled"; 238 }; 239 240 flexcomm2: flexcomm@88000 { 241 compatible = "nxp,lpc-flexcomm"; 242 reg = <0x88000 0x1000>; 243 interrupts = <16 0>; 244 clocks = <&syscon MCUX_FLEXCOMM2_CLK>; 245 resets = <&reset NXP_SYSCON_RESET(1, 13)>; 246 status = "disabled"; 247 }; 248 249 flexcomm3: flexcomm@89000 { 250 compatible = "nxp,lpc-flexcomm"; 251 reg = <0x89000 0x1000>; 252 interrupts = <17 0>; 253 clocks = <&syscon MCUX_FLEXCOMM3_CLK>; 254 resets = <&reset NXP_SYSCON_RESET(1, 14)>; 255 status = "disabled"; 256 }; 257 258 flexcomm4: flexcomm@8a000 { 259 compatible = "nxp,lpc-flexcomm"; 260 reg = <0x8a000 0x1000>; 261 interrupts = <18 0>; 262 clocks = <&syscon MCUX_FLEXCOMM4_CLK>; 263 resets = <&reset NXP_SYSCON_RESET(1, 15)>; 264 status = "disabled"; 265 }; 266 267 flexcomm5: flexcomm@96000 { 268 compatible = "nxp,lpc-flexcomm"; 269 reg = <0x96000 0x1000>; 270 interrupts = <19 0>; 271 clocks = <&syscon MCUX_FLEXCOMM5_CLK>; 272 resets = <&reset NXP_SYSCON_RESET(1, 16)>; 273 status = "disabled"; 274 }; 275 276 flexcomm6: flexcomm@97000 { 277 compatible = "nxp,lpc-flexcomm"; 278 reg = <0x97000 0x1000>; 279 interrupts = <20 0>; 280 clocks = <&syscon MCUX_FLEXCOMM6_CLK>; 281 resets = <&reset NXP_SYSCON_RESET(1, 17)>; 282 status = "disabled"; 283 }; 284 285 flexcomm7: flexcomm@98000 { 286 compatible = "nxp,lpc-flexcomm"; 287 reg = <0x98000 0x1000>; 288 interrupts = <21 0>; 289 clocks = <&syscon MCUX_FLEXCOMM7_CLK>; 290 resets = <&reset NXP_SYSCON_RESET(1, 18)>; 291 status = "disabled"; 292 }; 293 294 can0: can@9d000 { 295 compatible = "nxp,lpc-mcan"; 296 reg = <0x9d000 0x1000>; 297 interrupts = <43 0>, <44 0>; 298 interrupt-names = "int0", "int1"; 299 clocks = <&syscon MCUX_MCAN_CLK>; 300 resets = <&reset NXP_SYSCON_RESET(1, 7)>; 301 bosch,mram-cfg = <0x0 15 15 8 8 0 15 15>; 302 status = "disabled"; 303 }; 304 305 hs_lspi: spi@9f000 { 306 compatible = "nxp,lpc-spi"; 307 reg = <0x9f000 0x1000>; 308 interrupts = <59 0>; 309 clocks = <&syscon MCUX_HS_SPI_CLK>; 310 resets = <&reset NXP_SYSCON_RESET(2, 28)>; 311 status = "disabled"; 312 #address-cells = <1>; 313 #size-cells = <0>; 314 }; 315 316 rng: rng@3a000 { 317 compatible = "nxp,lpc-rng"; 318 reg = <0x3a000 0x1000>; 319 status = "okay"; 320 }; 321 322 usbhs: usbhs@94000 { 323 compatible = "nxp,lpcip3511"; 324 reg = <0x94000 0x1000>; 325 interrupts = <47 1>; 326 num-bidir-endpoints = <6>; 327 status = "disabled"; 328 }; 329 330 usbphy1: usbphy@38000 { 331 compatible = "nxp,usbphy"; 332 reg = <0x38000 0x1000>; 333 status = "disabled"; 334 }; 335}; 336 337&nvic { 338 arm,num-irq-priority-bits = <3>; 339}; 340