1/* 2 * Copyright (c) 2021, Laird Connectivity 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7#include <arm/armv7-m.dtsi> 8#include <zephyr/dt-bindings/clock/imx_ccm.h> 9#include <zephyr/dt-bindings/rdc/imx_rdc.h> 10#include <mem.h> 11 12/ { 13 cpus { 14 #address-cells = <1>; 15 #size-cells = <0>; 16 17 cpu@0 { 18 device_type = "cpu"; 19 compatible = "arm,cortex-m7"; 20 reg = <0>; 21 #address-cells = <1>; 22 #size-cells = <1>; 23 24 mpu: mpu@e000ed90 { 25 compatible = "arm,armv7m-mpu"; 26 reg = <0xe000ed90 0x40>; 27 }; 28 }; 29 }; 30 31 soc { 32 itcm: itcm@0 { 33 compatible = "nxp,imx-itcm"; 34 reg = <0x0 DT_SIZE_K(128)>; 35 }; 36 37 dtcm: dtcm@20000000 { 38 compatible = "nxp,imx-dtcm"; 39 reg = <0x20000000 DT_SIZE_K(128)>; 40 }; 41 42 ocram_code: code@900000 { 43 compatible = "nxp,imx-code-bus"; 44 reg = <0x00900000 DT_SIZE_K(576)>; 45 }; 46 47 ocram_sys: memory@20200000 { 48 device_type = "memory"; 49 compatible = "nxp,imx-sys-bus"; 50 reg = <0x20200000 DT_SIZE_K(576)>; 51 }; 52 53 ocram_s_code: code@180000 { 54 compatible = "nxp,imx-code-bus"; 55 reg = <0x00180000 DT_SIZE_K(36)>; 56 }; 57 58 ocram_s_sys: memory@20180000 { 59 device_type = "memory"; 60 compatible = "nxp,imx-sys-bus"; 61 reg = <0x20180000 DT_SIZE_K(36)>; 62 }; 63 64 ddr_code: code@80000000 { 65 device_type = "memory"; 66 compatible = "nxp,imx-code-bus"; 67 reg = <0x80000000 DT_SIZE_M(2)>; 68 }; 69 70 ddr_sys: memory@80200000 { 71 device_type = "memory"; 72 compatible = "nxp,imx-sys-bus"; 73 reg = <0x80200000 DT_SIZE_M(2)>; 74 }; 75 76 ccm: ccm@30380000 { 77 compatible = "nxp,imx-ccm"; 78 reg = <0x30380000 DT_SIZE_K(64)>; 79 #clock-cells = <3>; 80 }; 81 82 iomuxc: iomuxc@30330000 { 83 compatible = "nxp,imx-iomuxc"; 84 reg = <0x30330000 DT_SIZE_K(64)>; 85 status = "okay"; 86 pinctrl: pinctrl { 87 status = "okay"; 88 compatible = "nxp,imx8mp-pinctrl"; 89 }; 90 }; 91 92 gpio1: gpio@30200000 { 93 compatible = "nxp,imx-gpio"; 94 reg = <0x30200000 DT_SIZE_K(64)>; 95 interrupts = <64 0>, <65 0>; 96 rdc = <(RDC_DOMAIN_PERM(A7_DOMAIN_ID,\ 97 RDC_DOMAIN_PERM_RW)|\ 98 RDC_DOMAIN_PERM(M7_DOMAIN_ID,\ 99 RDC_DOMAIN_PERM_RW))>; 100 gpio-controller; 101 #gpio-cells = <2>; 102 status = "disabled"; 103 }; 104 105 gpio2: gpio@30210000 { 106 compatible = "nxp,imx-gpio"; 107 reg = <0x30210000 DT_SIZE_K(64)>; 108 interrupts = <66 0>, <67 0>; 109 rdc = <(RDC_DOMAIN_PERM(A7_DOMAIN_ID,\ 110 RDC_DOMAIN_PERM_RW)|\ 111 RDC_DOMAIN_PERM(M7_DOMAIN_ID,\ 112 RDC_DOMAIN_PERM_RW))>; 113 gpio-controller; 114 #gpio-cells = <2>; 115 status = "disabled"; 116 }; 117 118 gpio3: gpio@30220000 { 119 compatible = "nxp,imx-gpio"; 120 reg = <0x30220000 DT_SIZE_K(64)>; 121 interrupts = <68 0>, <69 0>; 122 rdc = <(RDC_DOMAIN_PERM(A7_DOMAIN_ID,\ 123 RDC_DOMAIN_PERM_RW)|\ 124 RDC_DOMAIN_PERM(M7_DOMAIN_ID,\ 125 RDC_DOMAIN_PERM_RW))>; 126 gpio-controller; 127 #gpio-cells = <2>; 128 status = "disabled"; 129 }; 130 131 gpio4: gpio@30230000 { 132 compatible = "nxp,imx-gpio"; 133 reg = <0x30230000 DT_SIZE_K(64)>; 134 interrupts = <70 0>, <71 0>; 135 rdc = <(RDC_DOMAIN_PERM(A7_DOMAIN_ID,\ 136 RDC_DOMAIN_PERM_RW)|\ 137 RDC_DOMAIN_PERM(M7_DOMAIN_ID,\ 138 RDC_DOMAIN_PERM_RW))>; 139 gpio-controller; 140 #gpio-cells = <2>; 141 status = "disabled"; 142 }; 143 144 gpio5: gpio@30240000 { 145 compatible = "nxp,imx-gpio"; 146 reg = <0x30240000 DT_SIZE_K(64)>; 147 interrupts = <72 0>, <73 0>; 148 rdc = <(RDC_DOMAIN_PERM(A7_DOMAIN_ID,\ 149 RDC_DOMAIN_PERM_RW)|\ 150 RDC_DOMAIN_PERM(M7_DOMAIN_ID,\ 151 RDC_DOMAIN_PERM_RW))>; 152 gpio-controller; 153 #gpio-cells = <2>; 154 status = "disabled"; 155 }; 156 157 uart4: uart@30a60000 { 158 compatible = "nxp,imx-iuart"; 159 reg = <0x30a60000 0x10000>; 160 interrupts = <29 3>; 161 clocks = <&ccm IMX_CCM_UART4_CLK 0x6c 24>; 162 status = "disabled"; 163 }; 164 165 uart1: uart@30860000 { 166 compatible = "nxp,imx-iuart"; 167 reg = <0x30860000 0x10000>; 168 interrupts = <26 3>; 169 clocks = <&ccm IMX_CCM_UART1_CLK 0x7c 24>; 170 status = "disabled"; 171 }; 172 173 mailbox0: mailbox@30ab0000 { 174 compatible = "nxp,imx-mu"; 175 reg = <0x30ab0000 DT_SIZE_K(64)>; 176 interrupts = <97 0>; 177 rdc = <(RDC_DOMAIN_PERM(A7_DOMAIN_ID,\ 178 RDC_DOMAIN_PERM_RW)|\ 179 RDC_DOMAIN_PERM(M7_DOMAIN_ID,\ 180 RDC_DOMAIN_PERM_RW))>; 181 status = "disabled"; 182 }; 183 184 ecspi1: spi@30820000 { 185 compatible = "nxp,imx-ecspi"; 186 reg = <0x30820000 DT_SIZE_K(64)>; 187 #address-cells = <1>; 188 #size-cells = <0>; 189 interrupts = <31 3>; 190 clocks = <&ccm IMX_CCM_ECSPI1_CLK 0 0>; 191 status = "disabled"; 192 }; 193 194 ecspi2: spi@30830000 { 195 compatible = "nxp,imx-ecspi"; 196 reg = <0x30830000 DT_SIZE_K(64)>; 197 #address-cells = <1>; 198 #size-cells = <0>; 199 interrupts = <32 3>; 200 clocks = <&ccm IMX_CCM_ECSPI2_CLK 0 0>; 201 status = "disabled"; 202 }; 203 204 ecspi3: spi@30840000 { 205 compatible = "nxp,imx-ecspi"; 206 reg = <0x30840000 DT_SIZE_K(64)>; 207 #address-cells = <1>; 208 #size-cells = <0>; 209 interrupts = <33 3>; 210 clocks = <&ccm IMX_CCM_ECSPI3_CLK 0 0>; 211 status = "disabled"; 212 }; 213 }; 214}; 215 216&nvic { 217 arm,num-irq-priority-bits = <4>; 218}; 219 220 221/* 222 * GPIO pinmux options. These options define the pinmux settings 223 * for GPIO ports on the package, so that the GPIO driver can 224 * select GPIO mux options during GPIO configuration. 225 */ 226 227&gpio1{ 228 pinmux = <&iomuxc_gpio1_io00_gpio_io_gpio1_io0>, 229 <&iomuxc_gpio1_io01_gpio_io_gpio1_io1>, 230 <&iomuxc_gpio1_io02_gpio_io_gpio1_io2>, 231 <&iomuxc_gpio1_io03_gpio_io_gpio1_io3>, 232 <&iomuxc_gpio1_io04_gpio_io_gpio1_io4>, 233 <&iomuxc_gpio1_io05_gpio_io_gpio1_io5>, 234 <&iomuxc_gpio1_io06_gpio_io_gpio1_io6>, 235 <&iomuxc_gpio1_io07_gpio_io_gpio1_io7>, 236 <&iomuxc_gpio1_io08_gpio_io_gpio1_io8>, 237 <&iomuxc_gpio1_io09_gpio_io_gpio1_io9>, 238 <&iomuxc_gpio1_io10_gpio_io_gpio1_io10>, 239 <&iomuxc_gpio1_io11_gpio_io_gpio1_io11>, 240 <&iomuxc_gpio1_io12_gpio_io_gpio1_io12>, 241 <&iomuxc_gpio1_io13_gpio_io_gpio1_io13>, 242 <&iomuxc_gpio1_io14_gpio_io_gpio1_io14>, 243 <&iomuxc_gpio1_io15_gpio_io_gpio1_io15>, 244 <&iomuxc_enet_mdc_gpio_io_gpio1_io16>, 245 <&iomuxc_enet_mdio_gpio_io_gpio1_io17>, 246 <&iomuxc_enet_td3_gpio_io_gpio1_io18>, 247 <&iomuxc_enet_td2_gpio_io_gpio1_io19>, 248 <&iomuxc_enet_td1_gpio_io_gpio1_io20>, 249 <&iomuxc_enet_td0_gpio_io_gpio1_io21>, 250 <&iomuxc_enet_tx_ctl_gpio_io_gpio1_io22>, 251 <&iomuxc_enet_txc_gpio_io_gpio1_io23>, 252 <&iomuxc_enet_rx_ctl_gpio_io_gpio1_io24>, 253 <&iomuxc_enet_rxc_gpio_io_gpio1_io25>, 254 <&iomuxc_enet_rd0_gpio_io_gpio1_io26>, 255 <&iomuxc_enet_rd1_gpio_io_gpio1_io27>, 256 <&iomuxc_enet_rd2_gpio_io_gpio1_io28>, 257 <&iomuxc_enet_rd3_gpio_io_gpio1_io29>; 258}; 259 260&gpio2{ 261 pinmux = <&iomuxc_sd1_clk_gpio_io_gpio2_io0>, 262 <&iomuxc_sd1_cmd_gpio_io_gpio2_io1>, 263 <&iomuxc_sd1_data0_gpio_io_gpio2_io2>, 264 <&iomuxc_sd1_data1_gpio_io_gpio2_io3>, 265 <&iomuxc_sd1_data2_gpio_io_gpio2_io4>, 266 <&iomuxc_sd1_data3_gpio_io_gpio2_io5>, 267 <&iomuxc_sd1_data4_gpio_io_gpio2_io6>, 268 <&iomuxc_sd1_data5_gpio_io_gpio2_io7>, 269 <&iomuxc_sd1_data6_gpio_io_gpio2_io8>, 270 <&iomuxc_sd1_data7_gpio_io_gpio2_io9>, 271 <&iomuxc_sd1_reset_b_gpio_io_gpio2_io10>, 272 <&iomuxc_sd1_strobe_gpio_io_gpio2_io11>, 273 <&iomuxc_sd2_cd_b_gpio_io_gpio2_io12>, 274 <&iomuxc_sd2_clk_gpio_io_gpio2_io13>, 275 <&iomuxc_sd2_cmd_gpio_io_gpio2_io14>, 276 <&iomuxc_sd2_data0_gpio_io_gpio2_io15>, 277 <&iomuxc_sd2_data1_gpio_io_gpio2_io16>, 278 <&iomuxc_sd2_data2_gpio_io_gpio2_io17>, 279 <&iomuxc_sd2_data3_gpio_io_gpio2_io18>, 280 <&iomuxc_sd2_reset_b_gpio_io_gpio2_io19>, 281 <&iomuxc_sd2_wp_gpio_io_gpio2_io20>; 282}; 283 284&gpio3{ 285 pinmux = <&iomuxc_nand_ale_gpio_io_gpio3_io0>, 286 <&iomuxc_nand_ce0_b_gpio_io_gpio3_io1>, 287 <&iomuxc_nand_ce1_b_gpio_io_gpio3_io2>, 288 <&iomuxc_nand_ce2_b_gpio_io_gpio3_io3>, 289 <&iomuxc_nand_ce3_b_gpio_io_gpio3_io4>, 290 <&iomuxc_nand_cle_gpio_io_gpio3_io5>, 291 <&iomuxc_nand_data00_gpio_io_gpio3_io6>, 292 <&iomuxc_nand_data01_gpio_io_gpio3_io7>, 293 <&iomuxc_nand_data02_gpio_io_gpio3_io8>, 294 <&iomuxc_nand_data03_gpio_io_gpio3_io9>, 295 <&iomuxc_nand_data04_gpio_io_gpio3_io10>, 296 <&iomuxc_nand_data05_gpio_io_gpio3_io11>, 297 <&iomuxc_nand_data06_gpio_io_gpio3_io12>, 298 <&iomuxc_nand_data07_gpio_io_gpio3_io13>, 299 <&iomuxc_nand_dqs_gpio_io_gpio3_io14>, 300 <&iomuxc_nand_re_b_gpio_io_gpio3_io15>, 301 <&iomuxc_nand_ready_b_gpio_io_gpio3_io16>, 302 <&iomuxc_nand_we_b_gpio_io_gpio3_io17>, 303 <&iomuxc_nand_wp_b_gpio_io_gpio3_io18>, 304 <&iomuxc_sai5_rxfs_gpio_io_gpio3_io19>, 305 <&iomuxc_sai5_rxc_gpio_io_gpio3_io20>, 306 <&iomuxc_sai5_rxd0_gpio_io_gpio3_io21>, 307 <&iomuxc_sai5_rxd1_gpio_io_gpio3_io22>, 308 <&iomuxc_sai5_rxd2_gpio_io_gpio3_io23>, 309 <&iomuxc_sai5_rxd3_gpio_io_gpio3_io24>, 310 <&iomuxc_sai5_mclk_gpio_io_gpio3_io25>, 311 <&iomuxc_hdmi_ddc_scl_gpio_io_gpio3_io26>, 312 <&iomuxc_hdmi_ddc_sda_gpio_io_gpio3_io27>, 313 <&iomuxc_hdmi_cec_gpio_io_gpio3_io28>, 314 <&iomuxc_hdmi_hpd_gpio_io_gpio3_io29>; 315}; 316 317&gpio4{ 318 pinmux = <&iomuxc_sai1_rxfs_gpio_io_gpio4_io0>, 319 <&iomuxc_sai1_rxc_gpio_io_gpio4_io1>, 320 <&iomuxc_sai1_rxd0_gpio_io_gpio4_io2>, 321 <&iomuxc_sai1_rxd1_gpio_io_gpio4_io3>, 322 <&iomuxc_sai1_rxd2_gpio_io_gpio4_io4>, 323 <&iomuxc_sai1_rxd3_gpio_io_gpio4_io5>, 324 <&iomuxc_sai1_rxd4_gpio_io_gpio4_io6>, 325 <&iomuxc_sai1_rxd5_gpio_io_gpio4_io7>, 326 <&iomuxc_sai1_rxd6_gpio_io_gpio4_io8>, 327 <&iomuxc_sai1_rxd7_gpio_io_gpio4_io9>, 328 <&iomuxc_sai1_txfs_gpio_io_gpio4_io10>, 329 <&iomuxc_sai1_txc_gpio_io_gpio4_io11>, 330 <&iomuxc_sai1_txd0_gpio_io_gpio4_io12>, 331 <&iomuxc_sai1_txd1_gpio_io_gpio4_io13>, 332 <&iomuxc_sai1_txd2_gpio_io_gpio4_io14>, 333 <&iomuxc_sai1_txd3_gpio_io_gpio4_io15>, 334 <&iomuxc_sai1_txd4_gpio_io_gpio4_io16>, 335 <&iomuxc_sai1_txd5_gpio_io_gpio4_io17>, 336 <&iomuxc_sai1_txd6_gpio_io_gpio4_io18>, 337 <&iomuxc_sai1_txd7_gpio_io_gpio4_io19>, 338 <&iomuxc_sai1_mclk_gpio_io_gpio4_io20>, 339 <&iomuxc_sai2_rxfs_gpio_io_gpio4_io21>, 340 <&iomuxc_sai2_rxc_gpio_io_gpio4_io22>, 341 <&iomuxc_sai2_rxd0_gpio_io_gpio4_io23>, 342 <&iomuxc_sai2_txfs_gpio_io_gpio4_io24>, 343 <&iomuxc_sai2_txc_gpio_io_gpio4_io25>, 344 <&iomuxc_sai2_txd0_gpio_io_gpio4_io26>, 345 <&iomuxc_sai2_mclk_gpio_io_gpio4_io27>, 346 <&iomuxc_sai3_rxfs_gpio_io_gpio4_io28>, 347 <&iomuxc_sai3_rxc_gpio_io_gpio4_io29>, 348 <&iomuxc_sai3_rxd_gpio_io_gpio4_io30>, 349 <&iomuxc_sai3_txfs_gpio_io_gpio4_io31>; 350}; 351 352&gpio5{ 353 pinmux = <&iomuxc_sai3_txc_gpio_io_gpio5_io0>, 354 <&iomuxc_sai3_txd_gpio_io_gpio5_io1>, 355 <&iomuxc_sai3_mclk_gpio_io_gpio5_io2>, 356 <&iomuxc_spdif_tx_gpio_io_gpio5_io3>, 357 <&iomuxc_spdif_rx_gpio_io_gpio5_io4>, 358 <&iomuxc_spdif_ext_clk_gpio_io_gpio5_io5>, 359 <&iomuxc_ecspi1_sclk_gpio_io_gpio5_io6>, 360 <&iomuxc_ecspi1_mosi_gpio_io_gpio5_io7>, 361 <&iomuxc_ecspi1_miso_gpio_io_gpio5_io8>, 362 <&iomuxc_ecspi1_ss0_gpio_io_gpio5_io9>, 363 <&iomuxc_ecspi2_sclk_gpio_io_gpio5_io10>, 364 <&iomuxc_ecspi2_mosi_gpio_io_gpio5_io11>, 365 <&iomuxc_ecspi2_miso_gpio_io_gpio5_io12>, 366 <&iomuxc_ecspi2_ss0_gpio_io_gpio5_io13>, 367 <&iomuxc_i2c1_scl_gpio_io_gpio5_io14>, 368 <&iomuxc_i2c1_sda_gpio_io_gpio5_io15>, 369 <&iomuxc_i2c2_scl_gpio_io_gpio5_io16>, 370 <&iomuxc_i2c2_sda_gpio_io_gpio5_io17>, 371 <&iomuxc_i2c3_scl_gpio_io_gpio5_io18>, 372 <&iomuxc_i2c3_sda_gpio_io_gpio5_io19>, 373 <&iomuxc_i2c4_scl_gpio_io_gpio5_io20>, 374 <&iomuxc_i2c4_sda_gpio_io_gpio5_io21>, 375 <&iomuxc_uart1_rxd_gpio_io_gpio5_io22>, 376 <&iomuxc_uart1_txd_gpio_io_gpio5_io23>, 377 <&iomuxc_uart2_rxd_gpio_io_gpio5_io24>, 378 <&iomuxc_uart2_txd_gpio_io_gpio5_io25>, 379 <&iomuxc_uart3_rxd_gpio_io_gpio5_io26>, 380 <&iomuxc_uart3_txd_gpio_io_gpio5_io27>, 381 <&iomuxc_uart4_rxd_gpio_io_gpio5_io28>, 382 <&iomuxc_uart4_txd_gpio_io_gpio5_io29>; 383}; 384