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 14/ { 15 cpus { 16 #address-cells = <1>; 17 #size-cells = <0>; 18 19 cpu@0 { 20 compatible = "arm,cortex-m33f"; 21 reg = <0>; 22 #address-cells = <1>; 23 #size-cells = <1>; 24 25 mpu: mpu@e000ed90 { 26 compatible = "arm,armv8m-mpu"; 27 reg = <0xe000ed90 0x40>; 28 arm,num-mpu-regions = <8>; 29 }; 30 }; 31 }; 32}; 33 34&sram { 35 #address-cells = <1>; 36 #size-cells = <1>; 37 38 sramx: memory@4000000 { 39 compatible = "mmio-sram"; 40 reg = <0x4000000 DT_SIZE_K(16)>; 41 }; 42 43 sram0: memory@20000000 { 44 compatible = "mmio-sram"; 45 reg = <0x20000000 DT_SIZE_K(32)>; 46 }; 47 48 sram1: memory@20008000 { 49 compatible = "zephyr,memory-region", "mmio-sram"; 50 reg = <0x20008000 DT_SIZE_K(16)>; 51 zephyr,memory-region = "SRAM1"; 52 }; 53 54 sram2: memory@2000c000 { 55 compatible = "zephyr,memory-region", "mmio-sram"; 56 reg = <0x2000c000 DT_SIZE_K(16)>; 57 zephyr,memory-region = "SRAM2"; 58 }; 59 60 usb_sram: memory@20010000 { 61 /* Connected to USB bus*/ 62 compatible = "zephyr,memory-region", "mmio-sram"; 63 reg = <0x20010000 DT_SIZE_K(16)>; 64 zephyr,memory-region = "USB_SRAM"; 65 zephyr,memory-attr = <( DT_MEM_ARM(ATTR_MPU_RAM) )>; 66 }; 67}; 68 69&peripheral { 70 #address-cells = <1>; 71 #size-cells = <1>; 72 73 syscon: syscon@0 { 74 compatible = "nxp,lpc-syscon"; 75 reg = <0x0 0x4000>; 76 #clock-cells = <1>; 77 }; 78 79 iap: flash-controller@34000 { 80 compatible = "nxp,iap-fmc55"; 81 reg = <0x34000 0x18>; 82 #address-cells = <1>; 83 #size-cells = <1>; 84 status = "disabled"; 85 86 flash0: flash@0 { 87 compatible = "soc-nv-flash"; 88 reg = <0x0 DT_SIZE_K(246)>; 89 erase-block-size = <512>; 90 write-block-size = <512>; 91 }; 92 93 flash_reserved: flash@3d800 { 94 compatible = "soc-nv-flash"; 95 reg = <0x0003d800 DT_SIZE_K(10)>; 96 status = "disabled"; 97 }; 98 99 uuid: flash@9fc70 { 100 compatible = "nxp,lpc-uid"; 101 reg = <0x3fc70 0x10>; 102 }; 103 104 boot_rom: flash@3000000 { 105 compatible = "soc-nv-flash"; 106 reg = <0x3000000 DT_SIZE_K(128)>; 107 }; 108 }; 109 110 iocon: iocon@1000 { 111 compatible = "nxp,lpc-iocon"; 112 reg = <0x1000 0x100>; 113 #address-cells = <1>; 114 #size-cells = <1>; 115 ranges = <0x0 0x1000 0x100>; 116 pinctrl: pinctrl { 117 compatible = "nxp,lpc-iocon-pinctrl"; 118 }; 119 }; 120 121 gpio0: gpio@0 { 122 compatible = "nxp,lpc-gpio"; 123 reg = <0x8c000 0x2488>; 124 int-source = "pint"; 125 gpio-controller; 126 #gpio-cells = <2>; 127 port = <0>; 128 }; 129 130 gpio1: gpio@1 { 131 compatible = "nxp,lpc-gpio"; 132 reg = <0x8c000 0x2488>; 133 int-source = "pint"; 134 gpio-controller; 135 #gpio-cells = <2>; 136 port = <1>; 137 }; 138 139 pint: pint@4000 { 140 compatible = "nxp,pint"; 141 reg = <0x4000 0x1000>; 142 interrupt-controller; 143 #interrupt-cells = <1>; 144 #address-cells = <0>; 145 interrupts = <4 2>, <5 2>, <6 2>, <7 2>, 146 <32 2>, <33 2>, <34 2>, <35 2>; 147 num-lines = <8>; 148 num-inputs = <64>; 149 }; 150 151 flexcomm0: flexcomm@86000 { 152 compatible = "nxp,lpc-flexcomm"; 153 reg = <0x86000 0x1000>; 154 interrupts = <14 0>; 155 clocks = <&syscon MCUX_FLEXCOMM0_CLK>; 156 status = "disabled"; 157 }; 158 159 flexcomm1: flexcomm@87000 { 160 compatible = "nxp,lpc-flexcomm"; 161 reg = <0x87000 0x1000>; 162 interrupts = <15 0>; 163 clocks = <&syscon MCUX_FLEXCOMM1_CLK>; 164 status = "disabled"; 165 }; 166 167 flexcomm2: flexcomm@88000 { 168 compatible = "nxp,lpc-flexcomm"; 169 reg = <0x88000 0x1000>; 170 interrupts = <16 0>; 171 clocks = <&syscon MCUX_FLEXCOMM2_CLK>; 172 status = "disabled"; 173 }; 174 175 flexcomm3: flexcomm@89000 { 176 compatible = "nxp,lpc-flexcomm"; 177 reg = <0x89000 0x1000>; 178 interrupts = <17 0>; 179 clocks = <&syscon MCUX_FLEXCOMM3_CLK>; 180 status = "disabled"; 181 }; 182 183 flexcomm4: flexcomm@8a000 { 184 compatible = "nxp,lpc-flexcomm"; 185 reg = <0x8a000 0x1000>; 186 interrupts = <18 0>; 187 clocks = <&syscon MCUX_FLEXCOMM4_CLK>; 188 status = "disabled"; 189 }; 190 191 flexcomm5: flexcomm@96000 { 192 compatible = "nxp,lpc-flexcomm"; 193 reg = <0x96000 0x1000>; 194 interrupts = <19 0>; 195 clocks = <&syscon MCUX_FLEXCOMM5_CLK>; 196 status = "disabled"; 197 }; 198 199 flexcomm6: flexcomm@97000 { 200 compatible = "nxp,lpc-flexcomm"; 201 reg = <0x97000 0x1000>; 202 interrupts = <20 0>; 203 clocks = <&syscon MCUX_FLEXCOMM6_CLK>; 204 status = "disabled"; 205 }; 206 207 flexcomm7: flexcomm@98000 { 208 compatible = "nxp,lpc-flexcomm"; 209 reg = <0x98000 0x1000>; 210 interrupts = <21 0>; 211 clocks = <&syscon MCUX_FLEXCOMM7_CLK>; 212 status = "disabled"; 213 }; 214 215 can0: can@9d000 { 216 compatible = "nxp,lpc-mcan"; 217 reg = <0x9d000 0x1000>; 218 interrupts = <43 0>, <44 0>; 219 clocks = <&syscon MCUX_MCAN_CLK>; 220 bosch,mram-cfg = <0x0 15 15 8 8 0 15 15>; 221 sample-point = <875>; 222 sample-point-data = <875>; 223 status = "disabled"; 224 }; 225 226 hs_lspi: spi@9f000 { 227 compatible = "nxp,lpc-spi"; 228 reg = <0x9f000 0x1000>; 229 interrupts = <59 0>; 230 clocks = <&syscon MCUX_HS_SPI_CLK>; 231 status = "disabled"; 232 #address-cells = <1>; 233 #size-cells = <0>; 234 }; 235 236 rng: rng@3a000 { 237 compatible = "nxp,lpc-rng"; 238 reg = <0x3a000 0x1000>; 239 status = "okay"; 240 }; 241 242 usbhs: usbhs@144000 { 243 compatible = "nxp,mcux-usbd"; 244 reg = <0x94000 0x1000>; 245 interrupts = <47 1>; 246 num-bidir-endpoints = <6>; 247 usb-controller-index = "LpcIp3511Hs0"; 248 status = "disabled"; 249 }; 250}; 251 252&nvic { 253 arm,num-irq-priority-bits = <3>; 254}; 255