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