1/* 2 * Copyright 2021,2023-2024 NXP 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7#include <mem.h> 8#include <arm/armv7-m.dtsi> 9#include <zephyr/dt-bindings/adc/adc.h> 10#include <zephyr/dt-bindings/clock/imx_ccm_rev2.h> 11#include <zephyr/dt-bindings/gpio/gpio.h> 12#include <zephyr/dt-bindings/i2c/i2c.h> 13#include <zephyr/dt-bindings/pwm/pwm.h> 14#include <zephyr/dt-bindings/pm/imx_spc.h> 15#include <zephyr/dt-bindings/mipi_dsi/mipi_dsi.h> 16/ { 17 chosen { 18 zephyr,entropy = &caam; 19 }; 20 21 cpus { 22 #address-cells = <1>; 23 #size-cells = <0>; 24 25 cpu0: cpu@0 { 26 device_type = "cpu"; 27 compatible = "arm,cortex-m7"; 28 reg = <0>; 29 30 #address-cells = <1>; 31 #size-cells = <1>; 32 d-cache-line-size = <32>; 33 34 mpu: mpu@e000ed90 { 35 compatible = "arm,armv7m-mpu"; 36 reg = <0xe000ed90 0x40>; 37 }; 38 }; 39 cpu1: cpu@1 { 40 device_type = "cpu"; 41 compatible = "arm,cortex-m4f"; 42 reg = <1>; 43 d-cache-line-size = <32>; 44 45 #address-cells = <1>; 46 #size-cells = <1>; 47 48 mpu: mpu@e000ed90 { 49 compatible = "arm,armv7m-mpu"; 50 reg = <0xe000ed90 0x40>; 51 }; 52 }; 53 54 power-states { 55 /* 56 * Power states are managed with set points (see page 30-35 of RT1170 57 * datasheet). These set points correspond to various power 58 * savings, and associated transition (residency) times. 59 * 60 * Set points 1 and 10 were chosen as sane defaults to offer 61 * limited power savings and quick transitions when entering idle for 62 * short periods, and better power savings with longer transition 63 * times for long idle periods 64 */ 65 idle: set_point_1_wait { 66 /* idle corresponds to set point 1 (wait) for RT1170 */ 67 compatible = "zephyr,power-state"; 68 power-state-name="runtime-idle"; 69 substate-id = <IMX_SPC_SET_POINT_1_WAIT>; 70 min-residency-us = <100>; 71 }; 72 73 suspend: set_point_10_suspend { 74 /* suspend corresponds to set point 10 for RT1170 */ 75 compatible = "zephyr,power-state"; 76 power-state-name="suspend-to-idle"; 77 substate-id = <IMX_SPC_SET_POINT_10_SUSPEND>; 78 min-residency-us = <5000>; 79 exit-latency-us = <500>; 80 }; 81 }; 82 }; 83 84 xtal: xtal-osc { 85 compatible = "fixed-clock"; 86 clock-frequency = <24000000>; 87 #clock-cells = <0>; 88 }; 89 90 soc { 91 flexspi: spi@400cc000 { 92 compatible = "nxp,imx-flexspi"; 93 reg = <0x400cc000 0x4000>; 94 interrupts = <130 0>; 95 #address-cells = <1>; 96 #size-cells = <0>; 97 status = "disabled"; 98 clocks = <&ccm IMX_CCM_FLEXSPI_CLK 0x0 0>; 99 }; 100 101 flexspi2: spi@400d0000 { 102 compatible = "nxp,imx-flexspi"; 103 reg = <0x400d0000 0x4000>; 104 interrupts = <131 0>; 105 #address-cells = <1>; 106 #size-cells = <0>; 107 status = "disabled"; 108 clocks = <&ccm IMX_CCM_FLEXSPI2_CLK 0x0 0>; 109 }; 110 111 semc: semc0@400d4000 { 112 compatible = "nxp,imx-semc"; 113 reg = <0x400d4000 0x4000>; 114 interrupts = <132 0>; 115 #address-cells = <1>; 116 #size-cells = <1>; 117 }; 118 119 /* GPT1 is used for the hardware timer, not as a standard counter */ 120 gpt_hw_timer: gpt@400ec000 { 121 compatible = "nxp,gpt-hw-timer"; 122 reg = <0x400ec000 0x4000>; 123 interrupts = <119 0>; 124 status = "disabled"; 125 }; 126 127 gpt2: gpt@400f0000 { 128 compatible = "nxp,imx-gpt"; 129 reg = <0x400f0000 0x4000>; 130 interrupts = <120 0>; 131 gptfreq = <24000000>; 132 clocks = <&ccm IMX_CCM_GPT_CLK 0x41 0>; 133 }; 134 135 gpt3: gpt@400f4000 { 136 compatible = "nxp,imx-gpt"; 137 reg = <0x400f4000 0x4000>; 138 interrupts = <121 0>; 139 gptfreq = <24000000>; 140 clocks = <&ccm IMX_CCM_GPT_CLK 0x42 0>; 141 }; 142 143 gpt4: gpt@400f8000 { 144 compatible = "nxp,imx-gpt"; 145 reg = <0x400f8000 0x4000>; 146 interrupts = <122 0>; 147 gptfreq = <24000000>; 148 clocks = <&ccm IMX_CCM_GPT_CLK 0x43 0>; 149 }; 150 151 gpt5: gpt@400fc000 { 152 compatible = "nxp,imx-gpt"; 153 reg = <0x400fc000 0x4000>; 154 interrupts = <123 0>; 155 gptfreq = <24000000>; 156 clocks = <&ccm IMX_CCM_GPT_CLK 0x44 0>; 157 }; 158 159 gpt6: gpt@40100000 { 160 compatible = "nxp,imx-gpt"; 161 reg = <0x40100000 0x4000>; 162 interrupts = <124 0>; 163 gptfreq = <24000000>; 164 clocks = <&ccm IMX_CCM_GPT_CLK 0x45 0>; 165 }; 166 167 qtmr1: qtmr@4015c000 { 168 compatible = "nxp,qtmr-pwm"; 169 reg = <0x4015c000 0x4000>; 170 interrupts = <171 0>; 171 status = "disabled"; 172 clocks = <&ccm IMX_CCM_QTMR1_CLK 0x0 0>; 173 }; 174 175 qtmr2: qtmr@40160000 { 176 compatible = "nxp,qtmr-pwm"; 177 reg = <0x40160000 0x4000>; 178 interrupts = <172 0>; 179 status = "disabled"; 180 clocks = <&ccm IMX_CCM_QTMR2_CLK 0x0 0>; 181 }; 182 183 qtmr3: qtmr@40164000 { 184 compatible = "nxp,qtmr-pwm"; 185 reg = <0x40164000 0x4000>; 186 interrupts = <173 0>; 187 status = "disabled"; 188 clocks = <&ccm IMX_CCM_QTMR3_CLK 0x0 0>; 189 }; 190 191 qtmr4: qtmr@40168000 { 192 compatible = "nxp,qtmr-pwm"; 193 reg = <0x40168000 0x4000>; 194 interrupts = <174 0>; 195 status = "disabled"; 196 clocks = <&ccm IMX_CCM_QTMR4_CLK 0x0 0>; 197 }; 198 199 ccm: ccm@40cc0000 { 200 compatible = "nxp,imx-ccm-rev2"; 201 reg = <0x40cc0000 0x4000>; 202 203 #clock-cells = <3>; 204 205 /* 206 * ARM PLL is an integer PLL, with an input clock 207 * of 24MHz. The PLL features a loop divider and 208 * post divider. The output frequency is calculated 209 * as Fout = 24MHz * (clock-mult / clock-div) 210 */ 211 arm_pll: arm-pll { 212 compatible = "fixed-factor-clock"; 213 #clock-cells = <0>; 214 }; 215 216 }; 217 218 gpio1: gpio@4012c000 { 219 compatible = "nxp,imx-gpio"; 220 reg = <0x4012c000 0x4000>; 221 interrupts = <100 0>, <101 0>; 222 gpio-controller; 223 #gpio-cells = <2>; 224 }; 225 226 /* 227 * Note that CM7 and CM4 cores do not have the same memory addresses 228 * for GPIO2 and GPIO3, so those peripherals are defined in the SOC 229 * specific DTS files 230 */ 231 232 gpio4: gpio@40138000 { 233 compatible = "nxp,imx-gpio"; 234 reg = <0x40138000 0x4000>; 235 interrupts = <106 0>, <107 0>; 236 gpio-controller; 237 #gpio-cells = <2>; 238 }; 239 240 gpio5: gpio@4013c000 { 241 compatible = "nxp,imx-gpio"; 242 reg = <0x4013c000 0x4000>; 243 interrupts = <108 0>, <109 0>; 244 gpio-controller; 245 #gpio-cells = <2>; 246 }; 247 248 gpio6: gpio@40140000 { 249 compatible = "nxp,imx-gpio"; 250 reg = <0x40140000 0x4000>; 251 gpio-controller; 252 #gpio-cells = <2>; 253 }; 254 255 gpio7: gpio@40c5c000 { 256 compatible = "nxp,imx-gpio"; 257 reg = <0x40c5c000 0x4000>; 258 gpio-controller; 259 #gpio-cells = <2>; 260 }; 261 262 gpio8: gpio@40c60000 { 263 compatible = "nxp,imx-gpio"; 264 reg = <0x40c60000 0x4000>; 265 gpio-controller; 266 #gpio-cells = <2>; 267 }; 268 269 gpio9: gpio@40c64000 { 270 compatible = "nxp,imx-gpio"; 271 reg = <0x40c64000 0x4000>; 272 gpio-controller; 273 #gpio-cells = <2>; 274 }; 275 276 gpio10: gpio@40c68000 { 277 compatible = "nxp,imx-gpio"; 278 reg = <0x40c68000 0x4000>; 279 gpio-controller; 280 #gpio-cells = <2>; 281 }; 282 283 gpio11: gpio@40c6c000 { 284 compatible = "nxp,imx-gpio"; 285 reg = <0x40c6c000 0x4000>; 286 gpio-controller; 287 #gpio-cells = <2>; 288 }; 289 290 gpio12: gpio@40c70000 { 291 compatible = "nxp,imx-gpio"; 292 reg = <0x40c70000 0x4000>; 293 gpio-controller; 294 #gpio-cells = <2>; 295 }; 296 297 gpio13: gpio@40ca0000 { 298 compatible = "nxp,imx-gpio"; 299 reg = <0x40ca0000 0x4000>; 300 interrupts = <93 0>; 301 gpio-controller; 302 #gpio-cells = <2>; 303 }; 304 305 lpi2c1: i2c@40104000 { 306 compatible = "nxp,imx-lpi2c"; 307 clock-frequency = <I2C_BITRATE_STANDARD>; 308 #address-cells = <1>; 309 #size-cells = <0>; 310 reg = <0x40104000 0x4000>; 311 interrupts = <32 0>; 312 clocks = <&ccm IMX_CCM_LPI2C1_CLK 0x70 6>; 313 status = "disabled"; 314 }; 315 316 lpi2c2: i2c@40108000 { 317 compatible = "nxp,imx-lpi2c"; 318 clock-frequency = <I2C_BITRATE_STANDARD>; 319 #address-cells = <1>; 320 #size-cells = <0>; 321 reg = <0x40108000 0x4000>; 322 interrupts = <33 0>; 323 clocks = <&ccm IMX_CCM_LPI2C2_CLK 0x70 8>; 324 status = "disabled"; 325 }; 326 327 lpi2c3: i2c@4010c000 { 328 compatible = "nxp,imx-lpi2c"; 329 clock-frequency = <I2C_BITRATE_STANDARD>; 330 #address-cells = <1>; 331 #size-cells = <0>; 332 reg = <0x4010c000 0x4000>; 333 interrupts = <34 0>; 334 clocks = <&ccm IMX_CCM_LPI2C3_CLK 0x70 10>; 335 status = "disabled"; 336 }; 337 338 lpi2c4: i2c@40110000 { 339 compatible = "nxp,imx-lpi2c"; 340 clock-frequency = <I2C_BITRATE_STANDARD>; 341 #address-cells = <1>; 342 #size-cells = <0>; 343 reg = <0x40110000 0x4000>; 344 interrupts = <35 0>; 345 clocks = <&ccm IMX_CCM_LPI2C4_CLK 0x80 24>; 346 status = "disabled"; 347 }; 348 349 lpi2c5: i2c@40c34000 { 350 compatible = "nxp,imx-lpi2c"; 351 clock-frequency = <I2C_BITRATE_STANDARD>; 352 #address-cells = <1>; 353 #size-cells = <0>; 354 reg = <0x40c34000 0x4000>; 355 interrupts = <36 0>; 356 clocks = <&ccm IMX_CCM_LPI2C5_CLK 0x80 24>; 357 status = "disabled"; 358 }; 359 360 lpi2c6: i2c@40c38000 { 361 compatible = "nxp,imx-lpi2c"; 362 clock-frequency = <I2C_BITRATE_STANDARD>; 363 #address-cells = <1>; 364 #size-cells = <0>; 365 reg = <0x40c38000 0x4000>; 366 interrupts = <37 0>; 367 clocks = <&ccm IMX_CCM_LPI2C6_CLK 0x80 24>; 368 status = "disabled"; 369 }; 370 371 iomuxc: iomuxc@400e8000 { 372 compatible = "nxp,imx-iomuxc"; 373 reg = <0x400e8000 0x4000>; 374 status = "okay"; 375 pinctrl: pinctrl { 376 status = "okay"; 377 compatible = "nxp,mcux-rt11xx-pinctrl"; 378 }; 379 }; 380 381 iomuxc_lpsr: iomuxc_lpsr@40c08000 { 382 compatible = "nxp,mcux-rt-pinctrl"; 383 reg = <0x40c08000 0x4000>; 384 status = "disabled"; 385 }; 386 387 iomuxc_lpsr_gpr: iomuxc_lpsr_gpr@40c08000 { 388 compatible = "nxp,imx-gpr"; 389 reg = <0x40c08000 0x4000>; 390 #pinmux-cells = <2>; 391 }; 392 393 lcdif: display-controller@40804000 { 394 compatible = "nxp,imx-elcdif"; 395 reg = <0x40804000 0x4000>; 396 interrupts = <54 0>; 397 status = "disabled"; 398 nxp,pxp = <&pxp>; 399 }; 400 401 mipi_dsi: mipi-dsi@4080c000 { 402 compatible = "nxp,imx-mipi-dsi"; 403 #address-cells = <1>; 404 #size-cells = <0>; 405 reg = <0x4080c000 0x200>, 406 <0x4080c200 0x80>, 407 <0x4080c280 0x80>, 408 <0x4080c300 0x200>; 409 interrupts = <59 1>; 410 status = "disabled"; 411 }; 412 413 lpspi1: spi@40114000 { 414 compatible = "nxp,imx-lpspi"; 415 reg = <0x40114000 0x4000>; 416 interrupts = <38 3>; 417 status = "disabled"; 418 clocks = <&ccm IMX_CCM_LPSPI1_CLK 0x6c 0>; 419 #address-cells = <1>; 420 #size-cells = <0>; 421 }; 422 423 lpspi2: spi@40118000 { 424 compatible = "nxp,imx-lpspi"; 425 reg = <0x40118000 0x4000>; 426 interrupts = <39 3>; 427 status = "disabled"; 428 clocks = <&ccm IMX_CCM_LPSPI2_CLK 0x6c 2>; 429 #address-cells = <1>; 430 #size-cells = <0>; 431 }; 432 433 lpspi3: spi@4011c000 { 434 compatible = "nxp,imx-lpspi"; 435 reg = <0x4011c000 0x4000>; 436 interrupts = <40 3>; 437 status = "disabled"; 438 clocks = <&ccm IMX_CCM_LPSPI3_CLK 0x6c 4>; 439 #address-cells = <1>; 440 #size-cells = <0>; 441 }; 442 443 lpspi4: spi@40120000 { 444 compatible = "nxp,imx-lpspi"; 445 reg = <0x40120000 0x4000>; 446 interrupts = <41 3>; 447 status = "disabled"; 448 clocks = <&ccm IMX_CCM_LPSPI4_CLK 0x6c 6>; 449 #address-cells = <1>; 450 #size-cells = <0>; 451 }; 452 453 lpspi5: spi@40c2c000 { 454 compatible = "nxp,imx-lpspi"; 455 reg = <0x40c2c000 0x4000>; 456 interrupts = <42 3>; 457 status = "disabled"; 458 clocks = <&ccm IMX_CCM_LPSPI5_CLK 0x6c 6>; 459 #address-cells = <1>; 460 #size-cells = <0>; 461 }; 462 463 lpspi6: spi@40c30000 { 464 compatible = "nxp,imx-lpspi"; 465 reg = <0x40c30000 0x4000>; 466 interrupts = <43 3>; 467 status = "disabled"; 468 clocks = <&ccm IMX_CCM_LPSPI6_CLK 0x6c 6>; 469 #address-cells = <1>; 470 #size-cells = <0>; 471 }; 472 473 lpuart1: uart@4007c000 { 474 compatible = "nxp,kinetis-lpuart"; 475 reg = <0x4007c000 0x4000>; 476 interrupts = <20 0>; 477 clocks = <&ccm IMX_CCM_LPUART1_CLK 0x7c 24>; 478 status = "disabled"; 479 }; 480 481 lpuart2: uart@40080000 { 482 compatible = "nxp,kinetis-lpuart"; 483 reg = <0x40080000 0x4000>; 484 interrupts = <21 0>; 485 clocks = <&ccm IMX_CCM_LPUART2_CLK 0x68 28>; 486 status = "disabled"; 487 }; 488 489 lpuart3: uart@40084000 { 490 compatible = "nxp,kinetis-lpuart"; 491 reg = <0x40084000 0x4000>; 492 interrupts = <22 0>; 493 clocks = <&ccm IMX_CCM_LPUART3_CLK 0x68 12>; 494 status = "disabled"; 495 }; 496 497 lpuart4: uart@40088000 { 498 compatible = "nxp,kinetis-lpuart"; 499 reg = <0x40088000 0x4000>; 500 interrupts = <23 0>; 501 clocks = <&ccm IMX_CCM_LPUART4_CLK 0x6c 24>; 502 status = "disabled"; 503 }; 504 505 lpuart5: uart@4008c000 { 506 compatible = "nxp,kinetis-lpuart"; 507 reg = <0x4008c000 0x4000>; 508 interrupts = <24 0>; 509 clocks = <&ccm IMX_CCM_LPUART5_CLK 0x74 2>; 510 status = "disabled"; 511 }; 512 513 lpuart6: uart@40090000 { 514 compatible = "nxp,kinetis-lpuart"; 515 reg = <0x40090000 0x4000>; 516 interrupts = <25 0>; 517 clocks = <&ccm IMX_CCM_LPUART6_CLK 0x74 6>; 518 status = "disabled"; 519 }; 520 521 lpuart7: uart@40094000 { 522 compatible = "nxp,kinetis-lpuart"; 523 reg = <0x40094000 0x4000>; 524 interrupts = <26 0>; 525 clocks = <&ccm IMX_CCM_LPUART7_CLK 0x7c 26>; 526 status = "disabled"; 527 }; 528 529 lpuart8: uart@40098000 { 530 compatible = "nxp,kinetis-lpuart"; 531 reg = <0x40098000 0x4000>; 532 interrupts = <27 0>; 533 clocks = <&ccm IMX_CCM_LPUART8_CLK 0x80 14>; 534 status = "disabled"; 535 }; 536 537 lpuart9: uart@4009c000 { 538 compatible = "nxp,kinetis-lpuart"; 539 reg = <0x4009c000 0x4000>; 540 interrupts = <28 0>; 541 clocks = <&ccm IMX_CCM_LPUART9_CLK 0x80 14>; 542 status = "disabled"; 543 }; 544 545 lpuart10: uart@400a0000 { 546 compatible = "nxp,kinetis-lpuart"; 547 reg = <0x400a0000 0x4000>; 548 interrupts = <29 0>; 549 clocks = <&ccm IMX_CCM_LPUART10_CLK 0x80 14>; 550 status = "disabled"; 551 }; 552 553 lpuart11: uart@40c24000 { 554 compatible = "nxp,kinetis-lpuart"; 555 reg = <0x40c24000 0x4000>; 556 interrupts = <30 0>; 557 clocks = <&ccm IMX_CCM_LPUART11_CLK 0x80 14>; 558 status = "disabled"; 559 }; 560 561 lpuart12: uart@40c28000 { 562 compatible = "nxp,kinetis-lpuart"; 563 reg = <0x40c28000 0x4000>; 564 interrupts = <31 0>; 565 clocks = <&ccm IMX_CCM_LPUART12_CLK 0x80 14>; 566 status = "disabled"; 567 }; 568 569 flexpwm1: flexpwm@4018c000 { 570 compatible = "nxp,flexpwm"; 571 reg = <0x4018c000 0x4000>; 572 interrupts = <129 0>; 573 574 flexpwm1_pwm0: flexpwm1_pwm0 { 575 compatible = "nxp,imx-pwm"; 576 index = <0>; 577 interrupts = <125 0>; 578 #pwm-cells = <3>; 579 clocks = <&ccm IMX_CCM_PWM_CLK 0 0>; 580 nxp,prescaler = <128>; 581 status = "disabled"; 582 }; 583 584 flexpwm1_pwm1: flexpwm1_pwm1 { 585 compatible = "nxp,imx-pwm"; 586 index = <1>; 587 interrupts = <126 0>; 588 #pwm-cells = <3>; 589 clocks = <&ccm IMX_CCM_PWM_CLK 0 0>; 590 nxp,prescaler = <128>; 591 status = "disabled"; 592 }; 593 594 flexpwm1_pwm2: flexpwm1_pwm2 { 595 compatible = "nxp,imx-pwm"; 596 index = <2>; 597 interrupts = <127 0>; 598 #pwm-cells = <3>; 599 clocks = <&ccm IMX_CCM_PWM_CLK 0 0>; 600 nxp,prescaler = <128>; 601 status = "disabled"; 602 }; 603 604 flexpwm1_pwm3: flexpwm1_pwm3 { 605 compatible = "nxp,imx-pwm"; 606 index = <3>; 607 interrupts = <128 0>; 608 #pwm-cells = <3>; 609 clocks = <&ccm IMX_CCM_PWM_CLK 0 0>; 610 nxp,prescaler = <128>; 611 status = "disabled"; 612 }; 613 }; 614 615 flexpwm2: flexpwm@40190000 { 616 compatible = "nxp,flexpwm"; 617 reg = <0x40190000 0x4000>; 618 interrupts = <181 0>; 619 620 flexpwm2_pwm0: flexpwm2_pwm0 { 621 compatible = "nxp,imx-pwm"; 622 index = <0>; 623 interrupts = <177 0>; 624 #pwm-cells = <3>; 625 clocks = <&ccm IMX_CCM_PWM_CLK 0 0>; 626 nxp,prescaler = <128>; 627 status = "disabled"; 628 }; 629 630 flexpwm2_pwm1: flexpwm2_pwm1 { 631 compatible = "nxp,imx-pwm"; 632 index = <1>; 633 interrupts = <178 0>; 634 #pwm-cells = <3>; 635 clocks = <&ccm IMX_CCM_PWM_CLK 0 0>; 636 nxp,prescaler = <128>; 637 status = "disabled"; 638 }; 639 640 flexpwm2_pwm2: flexpwm2_pwm2 { 641 compatible = "nxp,imx-pwm"; 642 index = <2>; 643 interrupts = <179 0>; 644 #pwm-cells = <3>; 645 clocks = <&ccm IMX_CCM_PWM_CLK 0 0>; 646 nxp,prescaler = <128>; 647 status = "disabled"; 648 }; 649 650 flexpwm2_pwm3: flexpwm2_pwm3 { 651 compatible = "nxp,imx-pwm"; 652 index = <3>; 653 interrupts = <180 0>; 654 #pwm-cells = <3>; 655 clocks = <&ccm IMX_CCM_PWM_CLK 0 0>; 656 nxp,prescaler = <128>; 657 status = "disabled"; 658 }; 659 }; 660 661 flexpwm3: flexpwm@40194000 { 662 compatible = "nxp,flexpwm"; 663 reg = <0x40194000 0x4000>; 664 interrupts = <186 0>; 665 666 flexpwm3_pwm0: flexpwm3_pwm0 { 667 compatible = "nxp,imx-pwm"; 668 index = <0>; 669 interrupts = <182 0>; 670 #pwm-cells = <3>; 671 clocks = <&ccm IMX_CCM_PWM_CLK 0 0>; 672 nxp,prescaler = <128>; 673 status = "disabled"; 674 }; 675 676 flexpwm3_pwm1: flexpwm3_pwm1 { 677 compatible = "nxp,imx-pwm"; 678 index = <1>; 679 interrupts = <183 0>; 680 #pwm-cells = <3>; 681 clocks = <&ccm IMX_CCM_PWM_CLK 0 0>; 682 nxp,prescaler = <128>; 683 status = "disabled"; 684 }; 685 686 flexpwm3_pwm2: flexpwm3_pwm2 { 687 compatible = "nxp,imx-pwm"; 688 index = <2>; 689 interrupts = <184 0>; 690 #pwm-cells = <3>; 691 clocks = <&ccm IMX_CCM_PWM_CLK 0 0>; 692 nxp,prescaler = <128>; 693 status = "disabled"; 694 }; 695 696 flexpwm3_pwm3: flexpwm3_pwm3 { 697 compatible = "nxp,imx-pwm"; 698 index = <3>; 699 interrupts = <185 0>; 700 #pwm-cells = <3>; 701 clocks = <&ccm IMX_CCM_PWM_CLK 0 0>; 702 nxp,prescaler = <128>; 703 status = "disabled"; 704 }; 705 }; 706 707 flexpwm4: flexpwm@40198000 { 708 compatible = "nxp,flexpwm"; 709 reg = <0x40198000 0x4000>; 710 interrupts = <191 0>; 711 712 flexpwm4_pwm0: flexpwm4_pwm0 { 713 compatible = "nxp,imx-pwm"; 714 index = <0>; 715 interrupts = <187 0>; 716 #pwm-cells = <3>; 717 clocks = <&ccm IMX_CCM_PWM_CLK 0 0>; 718 nxp,prescaler = <128>; 719 status = "disabled"; 720 }; 721 722 flexpwm4_pwm1: flexpwm4_pwm1 { 723 compatible = "nxp,imx-pwm"; 724 index = <1>; 725 interrupts = <188 0>; 726 #pwm-cells = <3>; 727 clocks = <&ccm IMX_CCM_PWM_CLK 0 0>; 728 nxp,prescaler = <128>; 729 status = "disabled"; 730 }; 731 732 flexpwm4_pwm2: flexpwm4_pwm2 { 733 compatible = "nxp,imx-pwm"; 734 index = <2>; 735 interrupts = <189 0>; 736 #pwm-cells = <3>; 737 clocks = <&ccm IMX_CCM_PWM_CLK 0 0>; 738 nxp,prescaler = <128>; 739 status = "disabled"; 740 }; 741 742 flexpwm4_pwm3: flexpwm4_pwm3 { 743 compatible = "nxp,imx-pwm"; 744 index = <3>; 745 interrupts = <190 0>; 746 #pwm-cells = <3>; 747 clocks = <&ccm IMX_CCM_PWM_CLK 0 0>; 748 nxp,prescaler = <128>; 749 status = "disabled"; 750 }; 751 }; 752 753 enet: ethernet@40424000 { 754 compatible = "nxp,enet"; 755 reg = <0x40424000 0x628>; 756 clocks = <&ccm IMX_CCM_ENET_CLK 0 0>; 757 enet_mac: ethernet { 758 compatible = "nxp,enet-mac"; 759 interrupts = <137 0>; 760 interrupt-names = "COMMON"; 761 nxp,mdio = <&enet_mdio>; 762 nxp,ptp-clock = <&enet_ptp_clock>; 763 status = "disabled"; 764 }; 765 enet_mdio: mdio { 766 compatible = "nxp,enet-mdio"; 767 status = "disabled"; 768 #address-cells = <1>; 769 #size-cells = <0>; 770 }; 771 enet_ptp_clock: ptp_clock { 772 compatible = "nxp,enet-ptp-clock"; 773 interrupts = <138 0>; 774 status = "disabled"; 775 clocks = <&ccm IMX_CCM_ENET_PLL 0 0>; 776 }; 777 }; 778 779 enet1g: ethernet@40420000 { 780 compatible = "nxp,enet1g"; 781 reg = <0x40420000 0x628>; 782 clocks = <&ccm IMX_CCM_ENET1G_CLK 0 0>; 783 status = "disabled"; 784 enet1g_mac: ethernet { 785 compatible = "nxp,enet-mac"; 786 interrupts = <141 0>; 787 interrupt-names = "COMMON"; 788 nxp,mdio = <&enet1g_mdio>; 789 nxp,ptp-clock = <&enet1g_ptp_clock>; 790 status = "disabled"; 791 }; 792 enet1g_mdio: mdio { 793 compatible = "nxp,enet-mdio"; 794 status = "disabled"; 795 #address-cells = <1>; 796 #size-cells = <0>; 797 }; 798 enet1g_ptp_clock: ptp_clock { 799 compatible = "nxp,enet-ptp-clock"; 800 interrupts = <142 0>; 801 status = "disabled"; 802 clocks = <&ccm IMX_CCM_ENET_PLL 0 0>; 803 }; 804 }; 805 806 caam: caam@40440000 { 807 compatible = "nxp,imx-caam"; 808 reg = <0x40440000 0x81000>; 809 interrupts = <69 0>, <70 0>, <71 0>, 810 <72 0>, <73 0>, <74 0>; 811 status = "okay"; 812 }; 813 814 usb1: usbd@40430000 { 815 compatible = "nxp,ehci"; 816 reg = <0x40430000 0x200>; 817 interrupts = <136 1>; 818 interrupt-names = "usb_otg"; 819 clocks = <&xtal>; 820 num-bidir-endpoints = <8>; 821 status = "disabled"; 822 }; 823 824 usb2: usbd@4042c000 { 825 compatible = "nxp,ehci"; 826 reg = <0x4042c000 0x200>; 827 interrupts = <135 1>; 828 interrupt-names = "usb_otg"; 829 clocks = <&xtal>; 830 num-bidir-endpoints = <8>; 831 status = "disabled"; 832 }; 833 834 usbphy1: usbphy@40434000 { 835 compatible = "nxp,usbphy"; 836 reg = <0x40434000 0x1000>; 837 status = "disabled"; 838 }; 839 840 usbphy2: usbphy@40438000 { 841 compatible = "nxp,usbphy"; 842 reg = <0x40438000 0x1000>; 843 status = "disabled"; 844 }; 845 846 usdhc1: usdhc@40418000 { 847 compatible = "nxp,imx-usdhc"; 848 reg = <0x40418000 0x4000>; 849 status = "disabled"; 850 interrupts = <133 0>; 851 clocks = <&ccm IMX_CCM_USDHC1_CLK 0 0>; 852 max-current-330 = <1020>; 853 max-current-180 = <1020>; 854 max-bus-freq = <208000000>; 855 min-bus-freq = <400000>; 856 }; 857 858 usdhc2: usdhc@4041c000 { 859 compatible = "nxp,imx-usdhc"; 860 reg = <0x4041c000 0x4000>; 861 status = "disabled"; 862 interrupts = <134 0>; 863 clocks = <&ccm IMX_CCM_USDHC2_CLK 0 0>; 864 max-current-330 = <1020>; 865 max-current-180 = <1020>; 866 max-bus-freq = <208000000>; 867 min-bus-freq = <400000>; 868 }; 869 870 csi: csi@40800000 { 871 compatible = "nxp,imx-csi"; 872 reg = <0x40800000 0x4000>; 873 interrupts = <56 1>; 874 status = "disabled"; 875 source = <&mipi_csi2rx>; 876 877 port { 878 csi_ep_in: endpoint { 879 remote-endpoint = <&mipi_csi2rx_ep_out>; 880 }; 881 }; 882 }; 883 884 mipi_csi2rx: mipi_csi2rx@40810000 { 885 compatible = "nxp,mipi-csi2rx"; 886 reg = <0x40810000 0x200>; 887 status = "disabled"; 888 889 ports { 890 #address-cells = <1>; 891 #size-cells = <0>; 892 893 port@0 { 894 reg = <0>; 895 mipi_csi2rx_ep_out: endpoint { 896 remote-endpoint = <&csi_ep_in>; 897 }; 898 }; 899 900 port@1 { 901 reg = <1>; 902 }; 903 }; 904 }; 905 906 flexcan1: can@400c4000 { 907 compatible = "nxp,flexcan-fd", "nxp,flexcan"; 908 reg = <0x400c4000 0x1000>; 909 interrupts = <44 0>, <45 0>; 910 interrupt-names = "common", "error"; 911 clocks = <&ccm IMX_CCM_CAN1_CLK 0x68 14>; 912 clk-source = <0>; 913 status = "disabled"; 914 }; 915 916 flexcan2: can@400c8000 { 917 compatible = "nxp,flexcan-fd", "nxp,flexcan"; 918 reg = <0x400c8000 0x1000>; 919 interrupts = <46 0>, <47 0>; 920 interrupt-names = "common", "error"; 921 clocks = <&ccm IMX_CCM_CAN2_CLK 0x68 18>; 922 clk-source = <0>; 923 status = "disabled"; 924 }; 925 926 flexcan3: can@40c3c000 { 927 compatible = "nxp,flexcan-fd", "nxp,flexcan"; 928 reg = <0x40c3c000 0x1000>; 929 interrupts = <48 0>, <49 0>; 930 interrupt-names = "common", "error"; 931 clocks = <&ccm IMX_CCM_CAN3_CLK 0x84 6>; 932 clk-source = <0>; 933 status = "disabled"; 934 }; 935 936 wdog1: wdog@40030000 { 937 compatible = "nxp,imx-wdog"; 938 reg = <0x40030000 0xA>; 939 status = "disabled"; 940 interrupts = <112 0>; 941 }; 942 943 ocram: ocram@20200000 { 944 compatible = "zephyr,memory-region", "mmio-sram"; 945 zephyr,memory-region = "OCRAM"; 946 reg = <0x20200000 DT_SIZE_K(256)>; 947 }; 948 949 ocram1: ocram@20240000 { 950 compatible = "zephyr,memory-region", "mmio-sram"; 951 zephyr,memory-region = "OCRAM1"; 952 reg = <0x20240000 DT_SIZE_K(512)>; 953 }; 954 955 ocram2: ocram@202c0000 { 956 compatible = "zephyr,memory-region", "mmio-sram"; 957 zephyr,memory-region = "OCRAM2"; 958 reg = <0x202c0000 DT_SIZE_K(512)>; 959 }; 960 961 lpadc0: lpadc@40050000 { 962 compatible = "nxp,lpc-lpadc"; 963 reg = <0x40050000 0x304>; 964 interrupts = <88 0>; 965 status = "disabled"; 966 clk-divider = <8>; 967 clk-source = <0>; 968 voltage-ref= <1>; 969 calibration-average = <128>; 970 power-level = <0>; 971 offset-value-a = <10>; 972 offset-value-b = <10>; 973 #io-channel-cells = <1>; 974 clocks = <&ccm IMX_CCM_LPADC1_CLK 0 0>; 975 }; 976 977 lpadc1: lpadc@40054000 { 978 compatible = "nxp,lpc-lpadc"; 979 reg = <0x40054000 0x304>; 980 interrupts = <89 0>; 981 status = "disabled"; 982 clk-divider = <8>; 983 clk-source = <0>; 984 voltage-ref= <1>; 985 calibration-average = <128>; 986 power-level = <1>; 987 offset-value-a = <10>; 988 offset-value-b = <10>; 989 #io-channel-cells = <1>; 990 clocks = <&ccm IMX_CCM_LPADC2_CLK 0 0>; 991 }; 992 993 acmp1: cmp@401a4000 { 994 compatible = "nxp,kinetis-acmp"; 995 reg = <0x401a4000 0x4000>; 996 interrupts = <157 0>; 997 status = "disabled"; 998 #io-channel-cells = <2>; 999 }; 1000 1001 acmp2: cmp@401a8000 { 1002 compatible = "nxp,kinetis-acmp"; 1003 reg = <0x401a8000 0x4000>; 1004 interrupts = <158 0>; 1005 status = "disabled"; 1006 #io-channel-cells = <2>; 1007 }; 1008 1009 acmp3: cmp@401ac000 { 1010 compatible = "nxp,kinetis-acmp"; 1011 reg = <0x401ac000 0x4000>; 1012 interrupts = <159 0>; 1013 status = "disabled"; 1014 #io-channel-cells = <2>; 1015 }; 1016 1017 acmp4: cmp@401b0000 { 1018 compatible = "nxp,kinetis-acmp"; 1019 reg = <0x401b0000 0x4000>; 1020 interrupts = <160 0>; 1021 status = "disabled"; 1022 #io-channel-cells = <2>; 1023 }; 1024 1025 anatop: anatop@40c84000 { 1026 compatible = "nxp,imx-anatop"; 1027 reg = <0x40c84000 0x4000>; 1028 #clock-cells = <4>; 1029 #pll-clock-cells = <3>; 1030 }; 1031 1032 edma0: dma-controller@40070000 { 1033 #dma-cells = <2>; 1034 compatible = "nxp,mcux-edma"; 1035 dma-channels = <32>; 1036 dma-requests = <208>; 1037 nxp,mem2mem; 1038 nxp,a_on; 1039 reg = <0x40070000 0x4000>, 1040 <0x40074000 0x4000>; 1041 clocks = <&ccm IMX_CCM_EDMA_CLK 0x7C 0x000000C0>; 1042 status = "disabled"; 1043 interrupts = <0 0>, <1 0>, <2 0>, <3 0>, 1044 <4 0>, <5 0>, <6 0>, <7 0>, 1045 <8 0>, <9 0>, <10 0>, <11 0>, 1046 <12 0>, <13 0>, <14 0>, <15 0>, 1047 <16 0>; 1048 irq-shared-offset = <16>; 1049 }; 1050 1051 edma_lpsr0: dma-controller@40c14000 { 1052 #dma-cells = <2>; 1053 compatible = "nxp,mcux-edma"; 1054 dma-channels = <32>; 1055 dma-requests = <208>; 1056 nxp,mem2mem; 1057 nxp,a_on; 1058 reg = <0x40c14000 0x4000>, 1059 <0x40c18000 0x4000>; 1060 clocks = <&ccm IMX_CCM_EDMA_LPSR_CLK 0x7C 0x000000C0>; 1061 status = "disabled"; 1062 interrupts = <0 0>, <1 0>, <2 0>, <3 0>, 1063 <4 0>, <5 0>, <6 0>, <7 0>, 1064 <8 0>, <9 0>, <10 0>, <11 0>, 1065 <12 0>, <13 0>, <14 0>, <15 0>, 1066 <16 0>; 1067 irq-shared-offset = <16>; 1068 }; 1069 1070 pxp: pxp@40814000 { 1071 compatible = "nxp,pxp"; 1072 reg = <0x40814000 0x4000>; 1073 interrupts = <57 0>; 1074 status = "disabled"; 1075 #dma-cells = <0>; 1076 }; 1077 1078 iomuxcgpr: iomuxcgpr@400e4000 { 1079 compatible = "nxp,imx-gpr"; 1080 reg = <0x400e4000 0x4000>; 1081 #pinmux-cells = <2>; 1082 }; 1083 1084 sai1: sai@40404000 { 1085 compatible = "nxp,mcux-i2s"; 1086 #address-cells = <1>; 1087 #size-cells = <0>; 1088 #pinmux-cells = <2>; 1089 reg = <0x40404000 0x4000>; 1090 clocks = <&ccm IMX_CCM_SAI1_CLK 0x2004 4>; 1091 /* Source from audio PLL */ 1092 clock-mux = <4>; 1093 pre-div = <0>; 1094 podf = <4>; 1095 pll-clocks = <&anatop 0 0 0>, 1096 <&anatop 0 0 30>, 1097 <&anatop 0 0 1>, 1098 <&anatop 0 0 77>, 1099 <&anatop 0 0 100>; 1100 pll-clock-names = "src", "lp", "pd", "num", "den"; 1101 pinmuxes = <&iomuxcgpr 0x0 0x100>; 1102 interrupts = <76 0>; 1103 nxp,tx-channel = <1>; 1104 status = "disabled"; 1105 }; 1106 1107 sai2: sai@40408000 { 1108 compatible = "nxp,mcux-i2s"; 1109 #address-cells = <1>; 1110 #size-cells = <0>; 1111 #pinmux-cells = <2>; 1112 reg = <0x40408000 0x4000>; 1113 clocks = <&ccm IMX_CCM_SAI2_CLK 0x2084 4>; 1114 /* Source from audio PLL */ 1115 clock-mux = <4>; 1116 pre-div = <0>; 1117 podf = <63>; 1118 pll-clocks = <&anatop 0 0 0>, 1119 <&anatop 0 0 30>, 1120 <&anatop 0 0 1>, 1121 <&anatop 0 0 77>, 1122 <&anatop 0 0 100>; 1123 pll-clock-names = "src", "lp", "pd", "num", "den"; 1124 pinmuxes = <&iomuxcgpr 0x4 0x100>; 1125 interrupts = <77 0>; 1126 nxp,tx-channel = <1>; 1127 status = "disabled"; 1128 }; 1129 1130 sai3: sai@4040c000 { 1131 compatible = "nxp,mcux-i2s"; 1132 #address-cells = <1>; 1133 #size-cells = <0>; 1134 #pinmux-cells = <2>; 1135 reg = <0x4040c000 0x4000>; 1136 clocks = <&ccm IMX_CCM_SAI3_CLK 0x2104 4>; 1137 /* Source from audio PLL */ 1138 clock-mux = <4>; 1139 pre-div = <0>; 1140 podf = <63>; 1141 pll-clocks = <&anatop 0 0 0>, 1142 <&anatop 0 0 30>, 1143 <&anatop 0 0 1>, 1144 <&anatop 0 0 77>, 1145 <&anatop 0 0 100>; 1146 pll-clock-names = "src", "lp", "pd", "num", "den"; 1147 pinmuxes = <&iomuxcgpr 0x8 0x100>; 1148 interrupts = <78 0>, <79 0>; 1149 nxp,tx-channel = <1>; 1150 status = "disabled"; 1151 }; 1152 1153 sai4: sai@40c40000 { 1154 compatible = "nxp,mcux-i2s"; 1155 #address-cells = <1>; 1156 #size-cells = <0>; 1157 #pinmux-cells = <2>; 1158 reg = <0x40c40000 0x4000>; 1159 clocks = <&ccm IMX_CCM_SAI4_CLK 0x2184 6>; 1160 /* Source from audio PLL */ 1161 clock-mux = <6>; 1162 pre-div = <0>; 1163 podf = <63>; 1164 pll-clocks = <&anatop 0 0 0>, 1165 <&anatop 0 0 30>, 1166 <&anatop 0 0 1>, 1167 <&anatop 0 0 77>, 1168 <&anatop 0 0 100>; 1169 pll-clock-names = "src", "lp", "pd", "num", "den"; 1170 pinmuxes = <&iomuxcgpr 0x8 0x200>; 1171 interrupts = <80 0>, <81 0>; 1172 nxp,tx-channel = <1>; 1173 status = "disabled"; 1174 }; 1175 1176 src: reset-controller@40c04000 { 1177 compatible = "nxp,imx-src-rev2"; 1178 reg = <0x40c04000 0x4000>; 1179 status = "okay"; 1180 }; 1181 1182 1183 qdec1: qdec@40174000 { 1184 compatible = "nxp,mcux-qdec"; 1185 reg = <0x40174000 0x4000>; 1186 interrupts = <165 0>; 1187 status = "disabled"; 1188 }; 1189 1190 qdec2: qdec@40178000 { 1191 compatible = "nxp,mcux-qdec"; 1192 reg = <0x40178000 0x4000>; 1193 interrupts = <166 0>; 1194 status = "disabled"; 1195 }; 1196 1197 qdec3: qdec@4017c000 { 1198 compatible = "nxp,mcux-qdec"; 1199 reg = <0x4017c000 0x4000>; 1200 interrupts = <167 0>; 1201 status = "disabled"; 1202 }; 1203 1204 qdec4: qdec@40180000 { 1205 compatible = "nxp,mcux-qdec"; 1206 reg = <0x40180000 0x4000>; 1207 interrupts = <168 0>; 1208 status = "disabled"; 1209 }; 1210 1211 xbar1: xbar1@4003c000 { 1212 compatible = "nxp,mcux-xbar"; 1213 reg = <0x4003c000 0x4000>; 1214 interrupts = <143 0>, <144 0>; 1215 status = "disabled"; 1216 }; 1217 1218 xbar2: xbar2@40040000 { 1219 compatible = "nxp,mcux-xbar"; 1220 reg = <0x40040000 0x4000>; 1221 status = "disabled"; 1222 }; 1223 1224 xbar3: xbar3@40044000 { 1225 compatible = "nxp,mcux-xbar"; 1226 reg = <0x40044000 0x4000>; 1227 status = "disabled"; 1228 }; 1229 1230 pit1: pit@400d8000 { 1231 compatible = "nxp,pit"; 1232 reg = <0x400d8000 0x4000>; 1233 clocks = <&ccm IMX_CCM_PIT_CLK 0x0 0>; 1234 interrupts = <155 0>; 1235 max-load-value = <0xffffffff>; 1236 status = "disabled"; 1237 #address-cells = <1>; 1238 #size-cells = <0>; 1239 1240 pit1_channel0: pit1_channel@0 { 1241 compatible = "nxp,pit-channel"; 1242 reg = <0>; 1243 status = "disabled"; 1244 }; 1245 1246 pit1_channel1: pit1_channel@1 { 1247 compatible = "nxp,pit-channel"; 1248 reg = <1>; 1249 status = "disabled"; 1250 }; 1251 1252 pit1_channel2: pit1_channel@2 { 1253 compatible = "nxp,pit-channel"; 1254 reg = <2>; 1255 status = "disabled"; 1256 }; 1257 1258 pit1_channel3: pit1_channel@3 { 1259 compatible = "nxp,pit-channel"; 1260 reg = <3>; 1261 status = "disabled"; 1262 }; 1263 }; 1264 1265 pit2: pit@40cb0000 { 1266 compatible = "nxp,pit"; 1267 reg = <0x40cb0000 0x4000>; 1268 clocks = <&ccm IMX_CCM_PIT1_CLK 0x0 0>; 1269 interrupts = <156 0>; 1270 max-load-value = <0xffffffff>; 1271 status = "disabled"; 1272 #address-cells = <1>; 1273 #size-cells = <0>; 1274 1275 pit2_channel0: pit2_channel@0 { 1276 compatible = "nxp,pit-channel"; 1277 reg = <0>; 1278 status = "disabled"; 1279 }; 1280 pit2_channel1: pit2_channel@1 { 1281 compatible = "nxp,pit-channel"; 1282 reg = <1>; 1283 status = "disabled"; 1284 }; 1285 pit2_channel2: pit2_channel@2 { 1286 compatible = "nxp,pit-channel"; 1287 reg = <2>; 1288 status = "disabled"; 1289 }; 1290 pit2_channel3: pit2_channel@3 { 1291 compatible = "nxp,pit-channel"; 1292 reg = <3>; 1293 status = "disabled"; 1294 }; 1295 }; 1296 }; 1297}; 1298 1299&nvic { 1300 arm,num-irq-priority-bits = <4>; 1301}; 1302 1303&systick { 1304 /* 1305 * RT11xx relies by default on the GPT Timer for system clock 1306 * implementation, so the SysTick node should not be enabled. 1307 */ 1308 status = "disabled"; 1309}; 1310