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