1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright 2019 NXP 4 */ 5 6#include <dt-bindings/clock/imx8mp-clock.h> 7#include <dt-bindings/power/imx8mp-power.h> 8#include <dt-bindings/reset/imx8mp-reset.h> 9#include <dt-bindings/gpio/gpio.h> 10#include <dt-bindings/input/input.h> 11#include <dt-bindings/interconnect/fsl,imx8mp.h> 12#include <dt-bindings/interrupt-controller/arm-gic.h> 13#include <dt-bindings/thermal/thermal.h> 14 15#include "imx8mp-pinfunc.h" 16 17/ { 18 interrupt-parent = <&gic>; 19 #address-cells = <2>; 20 #size-cells = <2>; 21 22 aliases { 23 ethernet0 = &fec; 24 ethernet1 = &eqos; 25 gpio0 = &gpio1; 26 gpio1 = &gpio2; 27 gpio2 = &gpio3; 28 gpio3 = &gpio4; 29 gpio4 = &gpio5; 30 i2c0 = &i2c1; 31 i2c1 = &i2c2; 32 i2c2 = &i2c3; 33 i2c3 = &i2c4; 34 i2c4 = &i2c5; 35 i2c5 = &i2c6; 36 mmc0 = &usdhc1; 37 mmc1 = &usdhc2; 38 mmc2 = &usdhc3; 39 serial0 = &uart1; 40 serial1 = &uart2; 41 serial2 = &uart3; 42 serial3 = &uart4; 43 spi0 = &flexspi; 44 }; 45 46 cpus { 47 #address-cells = <1>; 48 #size-cells = <0>; 49 50 idle-states { 51 entry-method = "psci"; 52 53 cpu_pd_wait: cpu-pd-wait { 54 compatible = "arm,idle-state"; 55 arm,psci-suspend-param = <0x0010033>; 56 local-timer-stop; 57 entry-latency-us = <1000>; 58 exit-latency-us = <700>; 59 min-residency-us = <2700>; 60 wakeup-latency-us = <1500>; 61 }; 62 }; 63 64 A53_0: cpu@0 { 65 device_type = "cpu"; 66 compatible = "arm,cortex-a53"; 67 reg = <0x0>; 68 clock-latency = <61036>; 69 clocks = <&clk IMX8MP_CLK_ARM>; 70 enable-method = "psci"; 71 i-cache-size = <0x8000>; 72 i-cache-line-size = <64>; 73 i-cache-sets = <256>; 74 d-cache-size = <0x8000>; 75 d-cache-line-size = <64>; 76 d-cache-sets = <128>; 77 next-level-cache = <&A53_L2>; 78 nvmem-cells = <&cpu_speed_grade>; 79 nvmem-cell-names = "speed_grade"; 80 operating-points-v2 = <&a53_opp_table>; 81 #cooling-cells = <2>; 82 cpu-idle-states = <&cpu_pd_wait>; 83 }; 84 85 A53_1: cpu@1 { 86 device_type = "cpu"; 87 compatible = "arm,cortex-a53"; 88 reg = <0x1>; 89 clock-latency = <61036>; 90 clocks = <&clk IMX8MP_CLK_ARM>; 91 enable-method = "psci"; 92 i-cache-size = <0x8000>; 93 i-cache-line-size = <64>; 94 i-cache-sets = <256>; 95 d-cache-size = <0x8000>; 96 d-cache-line-size = <64>; 97 d-cache-sets = <128>; 98 next-level-cache = <&A53_L2>; 99 operating-points-v2 = <&a53_opp_table>; 100 #cooling-cells = <2>; 101 cpu-idle-states = <&cpu_pd_wait>; 102 }; 103 104 A53_2: cpu@2 { 105 device_type = "cpu"; 106 compatible = "arm,cortex-a53"; 107 reg = <0x2>; 108 clock-latency = <61036>; 109 clocks = <&clk IMX8MP_CLK_ARM>; 110 enable-method = "psci"; 111 i-cache-size = <0x8000>; 112 i-cache-line-size = <64>; 113 i-cache-sets = <256>; 114 d-cache-size = <0x8000>; 115 d-cache-line-size = <64>; 116 d-cache-sets = <128>; 117 next-level-cache = <&A53_L2>; 118 operating-points-v2 = <&a53_opp_table>; 119 #cooling-cells = <2>; 120 cpu-idle-states = <&cpu_pd_wait>; 121 }; 122 123 A53_3: cpu@3 { 124 device_type = "cpu"; 125 compatible = "arm,cortex-a53"; 126 reg = <0x3>; 127 clock-latency = <61036>; 128 clocks = <&clk IMX8MP_CLK_ARM>; 129 enable-method = "psci"; 130 i-cache-size = <0x8000>; 131 i-cache-line-size = <64>; 132 i-cache-sets = <256>; 133 d-cache-size = <0x8000>; 134 d-cache-line-size = <64>; 135 d-cache-sets = <128>; 136 next-level-cache = <&A53_L2>; 137 operating-points-v2 = <&a53_opp_table>; 138 #cooling-cells = <2>; 139 cpu-idle-states = <&cpu_pd_wait>; 140 }; 141 142 A53_L2: l2-cache0 { 143 compatible = "cache"; 144 cache-unified; 145 cache-level = <2>; 146 cache-size = <0x80000>; 147 cache-line-size = <64>; 148 cache-sets = <512>; 149 }; 150 }; 151 152 a53_opp_table: opp-table { 153 compatible = "operating-points-v2"; 154 opp-shared; 155 156 opp-1200000000 { 157 opp-hz = /bits/ 64 <1200000000>; 158 opp-microvolt = <850000>; 159 opp-supported-hw = <0x8a0>, <0x7>; 160 clock-latency-ns = <150000>; 161 opp-suspend; 162 }; 163 164 opp-1600000000 { 165 opp-hz = /bits/ 64 <1600000000>; 166 opp-microvolt = <950000>; 167 opp-supported-hw = <0xa0>, <0x7>; 168 clock-latency-ns = <150000>; 169 opp-suspend; 170 }; 171 172 opp-1800000000 { 173 opp-hz = /bits/ 64 <1800000000>; 174 opp-microvolt = <1000000>; 175 opp-supported-hw = <0x20>, <0x3>; 176 clock-latency-ns = <150000>; 177 opp-suspend; 178 }; 179 }; 180 181 osc_32k: clock-osc-32k { 182 compatible = "fixed-clock"; 183 #clock-cells = <0>; 184 clock-frequency = <32768>; 185 clock-output-names = "osc_32k"; 186 }; 187 188 osc_24m: clock-osc-24m { 189 compatible = "fixed-clock"; 190 #clock-cells = <0>; 191 clock-frequency = <24000000>; 192 clock-output-names = "osc_24m"; 193 }; 194 195 clk_ext1: clock-ext1 { 196 compatible = "fixed-clock"; 197 #clock-cells = <0>; 198 clock-frequency = <133000000>; 199 clock-output-names = "clk_ext1"; 200 }; 201 202 clk_ext2: clock-ext2 { 203 compatible = "fixed-clock"; 204 #clock-cells = <0>; 205 clock-frequency = <133000000>; 206 clock-output-names = "clk_ext2"; 207 }; 208 209 clk_ext3: clock-ext3 { 210 compatible = "fixed-clock"; 211 #clock-cells = <0>; 212 clock-frequency = <133000000>; 213 clock-output-names = "clk_ext3"; 214 }; 215 216 clk_ext4: clock-ext4 { 217 compatible = "fixed-clock"; 218 #clock-cells = <0>; 219 clock-frequency = <133000000>; 220 clock-output-names = "clk_ext4"; 221 }; 222 223 funnel { 224 /* 225 * non-configurable funnel don't show up on the AMBA 226 * bus. As such no need to add "arm,primecell". 227 */ 228 compatible = "arm,coresight-static-funnel"; 229 230 in-ports { 231 #address-cells = <1>; 232 #size-cells = <0>; 233 234 port@0 { 235 reg = <0>; 236 237 ca_funnel_in_port0: endpoint { 238 remote-endpoint = <&etm0_out_port>; 239 }; 240 }; 241 242 port@1 { 243 reg = <1>; 244 245 ca_funnel_in_port1: endpoint { 246 remote-endpoint = <&etm1_out_port>; 247 }; 248 }; 249 250 port@2 { 251 reg = <2>; 252 253 ca_funnel_in_port2: endpoint { 254 remote-endpoint = <&etm2_out_port>; 255 }; 256 }; 257 258 port@3 { 259 reg = <3>; 260 261 ca_funnel_in_port3: endpoint { 262 remote-endpoint = <&etm3_out_port>; 263 }; 264 }; 265 }; 266 267 out-ports { 268 port { 269 270 ca_funnel_out_port0: endpoint { 271 remote-endpoint = <&hugo_funnel_in_port0>; 272 }; 273 }; 274 }; 275 }; 276 277 reserved-memory { 278 #address-cells = <2>; 279 #size-cells = <2>; 280 ranges; 281 282 dsp_reserved: dsp@92400000 { 283 reg = <0 0x92400000 0 0x2000000>; 284 no-map; 285 status = "disabled"; 286 }; 287 }; 288 289 pmu { 290 compatible = "arm,cortex-a53-pmu"; 291 interrupts = <GIC_PPI 7 292 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 293 }; 294 295 psci { 296 compatible = "arm,psci-1.0"; 297 method = "smc"; 298 }; 299 300 thermal-zones { 301 cpu-thermal { 302 polling-delay-passive = <250>; 303 polling-delay = <2000>; 304 thermal-sensors = <&tmu 0>; 305 trips { 306 cpu_alert0: trip0 { 307 temperature = <85000>; 308 hysteresis = <2000>; 309 type = "passive"; 310 }; 311 312 cpu_crit0: trip1 { 313 temperature = <95000>; 314 hysteresis = <2000>; 315 type = "critical"; 316 }; 317 }; 318 319 cooling-maps { 320 map0 { 321 trip = <&cpu_alert0>; 322 cooling-device = 323 <&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 324 <&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 325 <&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 326 <&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 327 }; 328 }; 329 }; 330 331 soc-thermal { 332 polling-delay-passive = <250>; 333 polling-delay = <2000>; 334 thermal-sensors = <&tmu 1>; 335 trips { 336 soc_alert0: trip0 { 337 temperature = <85000>; 338 hysteresis = <2000>; 339 type = "passive"; 340 }; 341 342 soc_crit0: trip1 { 343 temperature = <95000>; 344 hysteresis = <2000>; 345 type = "critical"; 346 }; 347 }; 348 349 cooling-maps { 350 map0 { 351 trip = <&soc_alert0>; 352 cooling-device = 353 <&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 354 <&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 355 <&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 356 <&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 357 }; 358 }; 359 }; 360 }; 361 362 timer { 363 compatible = "arm,armv8-timer"; 364 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 365 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 366 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 367 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 368 clock-frequency = <8000000>; 369 arm,no-tick-in-suspend; 370 }; 371 372 soc: soc@0 { 373 compatible = "fsl,imx8mp-soc", "simple-bus"; 374 #address-cells = <1>; 375 #size-cells = <1>; 376 ranges = <0x0 0x0 0x0 0x3e000000>; 377 nvmem-cells = <&imx8mp_uid>; 378 nvmem-cell-names = "soc_unique_id"; 379 380 etm0: etm@28440000 { 381 compatible = "arm,coresight-etm4x", "arm,primecell"; 382 reg = <0x28440000 0x1000>; 383 cpu = <&A53_0>; 384 clocks = <&clk IMX8MP_CLK_MAIN_AXI>; 385 clock-names = "apb_pclk"; 386 387 out-ports { 388 port { 389 etm0_out_port: endpoint { 390 remote-endpoint = <&ca_funnel_in_port0>; 391 }; 392 }; 393 }; 394 }; 395 396 etm1: etm@28540000 { 397 compatible = "arm,coresight-etm4x", "arm,primecell"; 398 reg = <0x28540000 0x1000>; 399 cpu = <&A53_1>; 400 clocks = <&clk IMX8MP_CLK_MAIN_AXI>; 401 clock-names = "apb_pclk"; 402 403 out-ports { 404 port { 405 etm1_out_port: endpoint { 406 remote-endpoint = <&ca_funnel_in_port1>; 407 }; 408 }; 409 }; 410 }; 411 412 etm2: etm@28640000 { 413 compatible = "arm,coresight-etm4x", "arm,primecell"; 414 reg = <0x28640000 0x1000>; 415 cpu = <&A53_2>; 416 clocks = <&clk IMX8MP_CLK_MAIN_AXI>; 417 clock-names = "apb_pclk"; 418 419 out-ports { 420 port { 421 etm2_out_port: endpoint { 422 remote-endpoint = <&ca_funnel_in_port2>; 423 }; 424 }; 425 }; 426 }; 427 428 etm3: etm@28740000 { 429 compatible = "arm,coresight-etm4x", "arm,primecell"; 430 reg = <0x28740000 0x1000>; 431 cpu = <&A53_3>; 432 clocks = <&clk IMX8MP_CLK_MAIN_AXI>; 433 clock-names = "apb_pclk"; 434 435 out-ports { 436 port { 437 etm3_out_port: endpoint { 438 remote-endpoint = <&ca_funnel_in_port3>; 439 }; 440 }; 441 }; 442 }; 443 444 funnel@28c03000 { 445 compatible = "arm,coresight-dynamic-funnel", "arm,primecell"; 446 reg = <0x28c03000 0x1000>; 447 clocks = <&clk IMX8MP_CLK_MAIN_AXI>; 448 clock-names = "apb_pclk"; 449 450 in-ports { 451 #address-cells = <1>; 452 #size-cells = <0>; 453 454 port@0 { 455 reg = <0>; 456 457 hugo_funnel_in_port0: endpoint { 458 remote-endpoint = <&ca_funnel_out_port0>; 459 }; 460 }; 461 462 port@1 { 463 reg = <1>; 464 465 hugo_funnel_in_port1: endpoint { 466 /* M7 input */ 467 }; 468 }; 469 470 port@2 { 471 reg = <2>; 472 473 hugo_funnel_in_port2: endpoint { 474 /* DSP input */ 475 }; 476 }; 477 /* the other input ports are not connect to anything */ 478 }; 479 480 out-ports { 481 port { 482 hugo_funnel_out_port0: endpoint { 483 remote-endpoint = <&etf_in_port>; 484 }; 485 }; 486 }; 487 }; 488 489 etf@28c04000 { 490 compatible = "arm,coresight-tmc", "arm,primecell"; 491 reg = <0x28c04000 0x1000>; 492 clocks = <&clk IMX8MP_CLK_MAIN_AXI>; 493 clock-names = "apb_pclk"; 494 495 in-ports { 496 port { 497 etf_in_port: endpoint { 498 remote-endpoint = <&hugo_funnel_out_port0>; 499 }; 500 }; 501 }; 502 503 out-ports { 504 port { 505 etf_out_port: endpoint { 506 remote-endpoint = <&etr_in_port>; 507 }; 508 }; 509 }; 510 }; 511 512 etr@28c06000 { 513 compatible = "arm,coresight-tmc", "arm,primecell"; 514 reg = <0x28c06000 0x1000>; 515 clocks = <&clk IMX8MP_CLK_MAIN_AXI>; 516 clock-names = "apb_pclk"; 517 518 in-ports { 519 port { 520 etr_in_port: endpoint { 521 remote-endpoint = <&etf_out_port>; 522 }; 523 }; 524 }; 525 }; 526 527 aips1: bus@30000000 { 528 compatible = "fsl,aips-bus", "simple-bus"; 529 reg = <0x30000000 0x400000>; 530 #address-cells = <1>; 531 #size-cells = <1>; 532 ranges; 533 534 gpio1: gpio@30200000 { 535 compatible = "fsl,imx8mp-gpio", "fsl,imx35-gpio"; 536 reg = <0x30200000 0x10000>; 537 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, 538 <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 539 clocks = <&clk IMX8MP_CLK_GPIO1_ROOT>; 540 gpio-controller; 541 #gpio-cells = <2>; 542 interrupt-controller; 543 #interrupt-cells = <2>; 544 gpio-ranges = <&iomuxc 0 5 30>; 545 }; 546 547 gpio2: gpio@30210000 { 548 compatible = "fsl,imx8mp-gpio", "fsl,imx35-gpio"; 549 reg = <0x30210000 0x10000>; 550 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>, 551 <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; 552 clocks = <&clk IMX8MP_CLK_GPIO2_ROOT>; 553 gpio-controller; 554 #gpio-cells = <2>; 555 interrupt-controller; 556 #interrupt-cells = <2>; 557 gpio-ranges = <&iomuxc 0 35 21>; 558 }; 559 560 gpio3: gpio@30220000 { 561 compatible = "fsl,imx8mp-gpio", "fsl,imx35-gpio"; 562 reg = <0x30220000 0x10000>; 563 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, 564 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 565 clocks = <&clk IMX8MP_CLK_GPIO3_ROOT>; 566 gpio-controller; 567 #gpio-cells = <2>; 568 interrupt-controller; 569 #interrupt-cells = <2>; 570 gpio-ranges = <&iomuxc 0 56 26>, <&iomuxc 26 144 4>; 571 }; 572 573 gpio4: gpio@30230000 { 574 compatible = "fsl,imx8mp-gpio", "fsl,imx35-gpio"; 575 reg = <0x30230000 0x10000>; 576 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>, 577 <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 578 clocks = <&clk IMX8MP_CLK_GPIO4_ROOT>; 579 gpio-controller; 580 #gpio-cells = <2>; 581 interrupt-controller; 582 #interrupt-cells = <2>; 583 gpio-ranges = <&iomuxc 0 82 32>; 584 }; 585 586 gpio5: gpio@30240000 { 587 compatible = "fsl,imx8mp-gpio", "fsl,imx35-gpio"; 588 reg = <0x30240000 0x10000>; 589 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, 590 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 591 clocks = <&clk IMX8MP_CLK_GPIO5_ROOT>; 592 gpio-controller; 593 #gpio-cells = <2>; 594 interrupt-controller; 595 #interrupt-cells = <2>; 596 gpio-ranges = <&iomuxc 0 114 30>; 597 }; 598 599 tmu: tmu@30260000 { 600 compatible = "fsl,imx8mp-tmu"; 601 reg = <0x30260000 0x10000>; 602 clocks = <&clk IMX8MP_CLK_TSENSOR_ROOT>; 603 nvmem-cells = <&tmu_calib>; 604 nvmem-cell-names = "calib"; 605 #thermal-sensor-cells = <1>; 606 }; 607 608 wdog1: watchdog@30280000 { 609 compatible = "fsl,imx8mp-wdt", "fsl,imx21-wdt"; 610 reg = <0x30280000 0x10000>; 611 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; 612 clocks = <&clk IMX8MP_CLK_WDOG1_ROOT>; 613 status = "disabled"; 614 }; 615 616 wdog2: watchdog@30290000 { 617 compatible = "fsl,imx8mp-wdt", "fsl,imx21-wdt"; 618 reg = <0x30290000 0x10000>; 619 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 620 clocks = <&clk IMX8MP_CLK_WDOG2_ROOT>; 621 status = "disabled"; 622 }; 623 624 wdog3: watchdog@302a0000 { 625 compatible = "fsl,imx8mp-wdt", "fsl,imx21-wdt"; 626 reg = <0x302a0000 0x10000>; 627 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 628 clocks = <&clk IMX8MP_CLK_WDOG3_ROOT>; 629 status = "disabled"; 630 }; 631 632 gpt1: timer@302d0000 { 633 compatible = "fsl,imx8mp-gpt", "fsl,imx6dl-gpt"; 634 reg = <0x302d0000 0x10000>; 635 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; 636 clocks = <&clk IMX8MP_CLK_GPT1_ROOT>, <&clk IMX8MP_CLK_GPT1>; 637 clock-names = "ipg", "per"; 638 }; 639 640 gpt2: timer@302e0000 { 641 compatible = "fsl,imx8mp-gpt", "fsl,imx6dl-gpt"; 642 reg = <0x302e0000 0x10000>; 643 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>; 644 clocks = <&clk IMX8MP_CLK_GPT2_ROOT>, <&clk IMX8MP_CLK_GPT2>; 645 clock-names = "ipg", "per"; 646 }; 647 648 gpt3: timer@302f0000 { 649 compatible = "fsl,imx8mp-gpt", "fsl,imx6dl-gpt"; 650 reg = <0x302f0000 0x10000>; 651 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; 652 clocks = <&clk IMX8MP_CLK_GPT3_ROOT>, <&clk IMX8MP_CLK_GPT3>; 653 clock-names = "ipg", "per"; 654 }; 655 656 iomuxc: pinctrl@30330000 { 657 compatible = "fsl,imx8mp-iomuxc"; 658 reg = <0x30330000 0x10000>; 659 }; 660 661 gpr: syscon@30340000 { 662 compatible = "fsl,imx8mp-iomuxc-gpr", "syscon"; 663 reg = <0x30340000 0x10000>; 664 }; 665 666 ocotp: efuse@30350000 { 667 compatible = "fsl,imx8mp-ocotp", "fsl,imx8mm-ocotp", "syscon"; 668 reg = <0x30350000 0x10000>; 669 clocks = <&clk IMX8MP_CLK_OCOTP_ROOT>; 670 /* For nvmem subnodes */ 671 #address-cells = <1>; 672 #size-cells = <1>; 673 674 /* 675 * The register address below maps to the MX8M 676 * Fusemap Description Table entries this way. 677 * Assuming 678 * reg = <ADDR SIZE>; 679 * then 680 * Fuse Address = (ADDR * 4) + 0x400 681 * Note that if SIZE is greater than 4, then 682 * each subsequent fuse is located at offset 683 * +0x10 in Fusemap Description Table (e.g. 684 * reg = <0x8 0x8> describes fuses 0x420 and 685 * 0x430). 686 */ 687 imx8mp_uid: unique-id@8 { /* 0x420-0x430 */ 688 reg = <0x8 0x8>; 689 }; 690 691 cpu_speed_grade: speed-grade@10 { /* 0x440 */ 692 reg = <0x10 4>; 693 }; 694 695 eth_mac1: mac-address@90 { /* 0x640 */ 696 reg = <0x90 6>; 697 }; 698 699 eth_mac2: mac-address@96 { /* 0x658 */ 700 reg = <0x96 6>; 701 }; 702 703 tmu_calib: calib@264 { /* 0xd90-0xdc0 */ 704 reg = <0x264 0x10>; 705 }; 706 }; 707 708 anatop: clock-controller@30360000 { 709 compatible = "fsl,imx8mp-anatop", "fsl,imx8mm-anatop"; 710 reg = <0x30360000 0x10000>; 711 #clock-cells = <1>; 712 }; 713 714 snvs: snvs@30370000 { 715 compatible = "fsl,sec-v4.0-mon","syscon", "simple-mfd"; 716 reg = <0x30370000 0x10000>; 717 718 snvs_rtc: snvs-rtc-lp { 719 compatible = "fsl,sec-v4.0-mon-rtc-lp"; 720 regmap = <&snvs>; 721 offset = <0x34>; 722 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, 723 <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 724 clocks = <&clk IMX8MP_CLK_SNVS_ROOT>; 725 clock-names = "snvs-rtc"; 726 }; 727 728 snvs_pwrkey: snvs-powerkey { 729 compatible = "fsl,sec-v4.0-pwrkey"; 730 regmap = <&snvs>; 731 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 732 clocks = <&clk IMX8MP_CLK_SNVS_ROOT>; 733 clock-names = "snvs-pwrkey"; 734 linux,keycode = <KEY_POWER>; 735 wakeup-source; 736 status = "disabled"; 737 }; 738 739 snvs_lpgpr: snvs-lpgpr { 740 compatible = "fsl,imx8mp-snvs-lpgpr", 741 "fsl,imx7d-snvs-lpgpr"; 742 }; 743 }; 744 745 clk: clock-controller@30380000 { 746 compatible = "fsl,imx8mp-ccm"; 747 reg = <0x30380000 0x10000>; 748 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>, 749 <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 750 #clock-cells = <1>; 751 clocks = <&osc_32k>, <&osc_24m>, <&clk_ext1>, <&clk_ext2>, 752 <&clk_ext3>, <&clk_ext4>; 753 clock-names = "osc_32k", "osc_24m", "clk_ext1", "clk_ext2", 754 "clk_ext3", "clk_ext4"; 755 assigned-clocks = <&clk IMX8MP_CLK_A53_SRC>, 756 <&clk IMX8MP_CLK_A53_CORE>, 757 <&clk IMX8MP_CLK_NOC>, 758 <&clk IMX8MP_CLK_NOC_IO>, 759 <&clk IMX8MP_CLK_GIC>; 760 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>, 761 <&clk IMX8MP_ARM_PLL_OUT>, 762 <&clk IMX8MP_SYS_PLL2_1000M>, 763 <&clk IMX8MP_SYS_PLL1_800M>, 764 <&clk IMX8MP_SYS_PLL2_500M>; 765 assigned-clock-rates = <0>, <0>, 766 <1000000000>, 767 <800000000>, 768 <500000000>; 769 }; 770 771 src: reset-controller@30390000 { 772 compatible = "fsl,imx8mp-src", "syscon"; 773 reg = <0x30390000 0x10000>; 774 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; 775 #reset-cells = <1>; 776 }; 777 778 gpc: gpc@303a0000 { 779 compatible = "fsl,imx8mp-gpc"; 780 reg = <0x303a0000 0x1000>; 781 interrupt-parent = <&gic>; 782 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 783 interrupt-controller; 784 #interrupt-cells = <3>; 785 786 pgc { 787 #address-cells = <1>; 788 #size-cells = <0>; 789 790 pgc_mipi_phy1: power-domain@0 { 791 #power-domain-cells = <0>; 792 reg = <IMX8MP_POWER_DOMAIN_MIPI_PHY1>; 793 }; 794 795 pgc_pcie_phy: power-domain@1 { 796 #power-domain-cells = <0>; 797 reg = <IMX8MP_POWER_DOMAIN_PCIE_PHY>; 798 }; 799 800 pgc_usb1_phy: power-domain@2 { 801 #power-domain-cells = <0>; 802 reg = <IMX8MP_POWER_DOMAIN_USB1_PHY>; 803 }; 804 805 pgc_usb2_phy: power-domain@3 { 806 #power-domain-cells = <0>; 807 reg = <IMX8MP_POWER_DOMAIN_USB2_PHY>; 808 }; 809 810 pgc_mlmix: power-domain@4 { 811 #power-domain-cells = <0>; 812 reg = <IMX8MP_POWER_DOMAIN_MLMIX>; 813 clocks = <&clk IMX8MP_CLK_ML_AXI>, 814 <&clk IMX8MP_CLK_ML_AHB>, 815 <&clk IMX8MP_CLK_NPU_ROOT>; 816 assigned-clocks = <&clk IMX8MP_CLK_ML_CORE>, 817 <&clk IMX8MP_CLK_ML_AXI>, 818 <&clk IMX8MP_CLK_ML_AHB>; 819 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>, 820 <&clk IMX8MP_SYS_PLL1_800M>, 821 <&clk IMX8MP_SYS_PLL1_800M>; 822 assigned-clock-rates = <800000000>, 823 <800000000>, 824 <300000000>; 825 }; 826 827 pgc_audio: power-domain@5 { 828 #power-domain-cells = <0>; 829 reg = <IMX8MP_POWER_DOMAIN_AUDIOMIX>; 830 clocks = <&clk IMX8MP_CLK_AUDIO_ROOT>, 831 <&clk IMX8MP_CLK_AUDIO_AXI>; 832 assigned-clocks = <&clk IMX8MP_CLK_AUDIO_AHB>, 833 <&clk IMX8MP_CLK_AUDIO_AXI_SRC>; 834 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>, 835 <&clk IMX8MP_SYS_PLL1_800M>; 836 assigned-clock-rates = <400000000>, 837 <600000000>; 838 }; 839 840 pgc_gpu2d: power-domain@6 { 841 #power-domain-cells = <0>; 842 reg = <IMX8MP_POWER_DOMAIN_GPU2D>; 843 clocks = <&clk IMX8MP_CLK_GPU2D_ROOT>; 844 power-domains = <&pgc_gpumix>; 845 }; 846 847 pgc_gpumix: power-domain@7 { 848 #power-domain-cells = <0>; 849 reg = <IMX8MP_POWER_DOMAIN_GPUMIX>; 850 clocks = <&clk IMX8MP_CLK_GPU_ROOT>, 851 <&clk IMX8MP_CLK_GPU_AHB>; 852 assigned-clocks = <&clk IMX8MP_CLK_GPU_AXI>, 853 <&clk IMX8MP_CLK_GPU_AHB>; 854 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>, 855 <&clk IMX8MP_SYS_PLL1_800M>; 856 assigned-clock-rates = <800000000>, <400000000>; 857 }; 858 859 pgc_vpumix: power-domain@8 { 860 #power-domain-cells = <0>; 861 reg = <IMX8MP_POWER_DOMAIN_VPUMIX>; 862 clocks = <&clk IMX8MP_CLK_VPU_ROOT>; 863 }; 864 865 pgc_gpu3d: power-domain@9 { 866 #power-domain-cells = <0>; 867 reg = <IMX8MP_POWER_DOMAIN_GPU3D>; 868 clocks = <&clk IMX8MP_CLK_GPU3D_ROOT>, 869 <&clk IMX8MP_CLK_GPU3D_SHADER_CORE>; 870 power-domains = <&pgc_gpumix>; 871 }; 872 873 pgc_mediamix: power-domain@10 { 874 #power-domain-cells = <0>; 875 reg = <IMX8MP_POWER_DOMAIN_MEDIAMIX>; 876 clocks = <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>, 877 <&clk IMX8MP_CLK_MEDIA_APB_ROOT>; 878 }; 879 880 pgc_vpu_g1: power-domain@11 { 881 #power-domain-cells = <0>; 882 power-domains = <&pgc_vpumix>; 883 reg = <IMX8MP_POWER_DOMAIN_VPU_G1>; 884 clocks = <&clk IMX8MP_CLK_VPU_G1_ROOT>; 885 }; 886 887 pgc_vpu_g2: power-domain@12 { 888 #power-domain-cells = <0>; 889 power-domains = <&pgc_vpumix>; 890 reg = <IMX8MP_POWER_DOMAIN_VPU_G2>; 891 clocks = <&clk IMX8MP_CLK_VPU_G2_ROOT>; 892 893 }; 894 895 pgc_vpu_vc8000e: power-domain@13 { 896 #power-domain-cells = <0>; 897 power-domains = <&pgc_vpumix>; 898 reg = <IMX8MP_POWER_DOMAIN_VPU_VC8000E>; 899 clocks = <&clk IMX8MP_CLK_VPU_VC8KE_ROOT>; 900 }; 901 902 pgc_hdmimix: power-domain@14 { 903 #power-domain-cells = <0>; 904 reg = <IMX8MP_POWER_DOMAIN_HDMIMIX>; 905 clocks = <&clk IMX8MP_CLK_HDMI_ROOT>, 906 <&clk IMX8MP_CLK_HDMI_APB>; 907 assigned-clocks = <&clk IMX8MP_CLK_HDMI_AXI>, 908 <&clk IMX8MP_CLK_HDMI_APB>; 909 assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>, 910 <&clk IMX8MP_SYS_PLL1_133M>; 911 assigned-clock-rates = <500000000>, <133000000>; 912 }; 913 914 pgc_hdmi_phy: power-domain@15 { 915 #power-domain-cells = <0>; 916 reg = <IMX8MP_POWER_DOMAIN_HDMI_PHY>; 917 }; 918 919 pgc_mipi_phy2: power-domain@16 { 920 #power-domain-cells = <0>; 921 reg = <IMX8MP_POWER_DOMAIN_MIPI_PHY2>; 922 }; 923 924 pgc_hsiomix: power-domain@17 { 925 #power-domain-cells = <0>; 926 reg = <IMX8MP_POWER_DOMAIN_HSIOMIX>; 927 clocks = <&clk IMX8MP_CLK_HSIO_AXI>, 928 <&clk IMX8MP_CLK_HSIO_ROOT>; 929 assigned-clocks = <&clk IMX8MP_CLK_HSIO_AXI>; 930 assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>; 931 assigned-clock-rates = <500000000>; 932 }; 933 934 pgc_ispdwp: power-domain@18 { 935 #power-domain-cells = <0>; 936 reg = <IMX8MP_POWER_DOMAIN_MEDIAMIX_ISPDWP>; 937 clocks = <&clk IMX8MP_CLK_MEDIA_ISP_ROOT>; 938 }; 939 }; 940 }; 941 }; 942 943 aips2: bus@30400000 { 944 compatible = "fsl,aips-bus", "simple-bus"; 945 reg = <0x30400000 0x400000>; 946 #address-cells = <1>; 947 #size-cells = <1>; 948 ranges; 949 950 pwm1: pwm@30660000 { 951 compatible = "fsl,imx8mp-pwm", "fsl,imx27-pwm"; 952 reg = <0x30660000 0x10000>; 953 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 954 clocks = <&clk IMX8MP_CLK_PWM1_ROOT>, 955 <&clk IMX8MP_CLK_PWM1_ROOT>; 956 clock-names = "ipg", "per"; 957 #pwm-cells = <3>; 958 status = "disabled"; 959 }; 960 961 pwm2: pwm@30670000 { 962 compatible = "fsl,imx8mp-pwm", "fsl,imx27-pwm"; 963 reg = <0x30670000 0x10000>; 964 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 965 clocks = <&clk IMX8MP_CLK_PWM2_ROOT>, 966 <&clk IMX8MP_CLK_PWM2_ROOT>; 967 clock-names = "ipg", "per"; 968 #pwm-cells = <3>; 969 status = "disabled"; 970 }; 971 972 pwm3: pwm@30680000 { 973 compatible = "fsl,imx8mp-pwm", "fsl,imx27-pwm"; 974 reg = <0x30680000 0x10000>; 975 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 976 clocks = <&clk IMX8MP_CLK_PWM3_ROOT>, 977 <&clk IMX8MP_CLK_PWM3_ROOT>; 978 clock-names = "ipg", "per"; 979 #pwm-cells = <3>; 980 status = "disabled"; 981 }; 982 983 pwm4: pwm@30690000 { 984 compatible = "fsl,imx8mp-pwm", "fsl,imx27-pwm"; 985 reg = <0x30690000 0x10000>; 986 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 987 clocks = <&clk IMX8MP_CLK_PWM4_ROOT>, 988 <&clk IMX8MP_CLK_PWM4_ROOT>; 989 clock-names = "ipg", "per"; 990 #pwm-cells = <3>; 991 status = "disabled"; 992 }; 993 994 system_counter: timer@306a0000 { 995 compatible = "nxp,sysctr-timer"; 996 reg = <0x306a0000 0x20000>; 997 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 998 clocks = <&osc_24m>; 999 clock-names = "per"; 1000 }; 1001 1002 gpt6: timer@306e0000 { 1003 compatible = "fsl,imx8mp-gpt", "fsl,imx6dl-gpt"; 1004 reg = <0x306e0000 0x10000>; 1005 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>; 1006 clocks = <&clk IMX8MP_CLK_GPT6_ROOT>, <&clk IMX8MP_CLK_GPT6>; 1007 clock-names = "ipg", "per"; 1008 }; 1009 1010 gpt5: timer@306f0000 { 1011 compatible = "fsl,imx8mp-gpt", "fsl,imx6dl-gpt"; 1012 reg = <0x306f0000 0x10000>; 1013 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>; 1014 clocks = <&clk IMX8MP_CLK_GPT5_ROOT>, <&clk IMX8MP_CLK_GPT5>; 1015 clock-names = "ipg", "per"; 1016 }; 1017 1018 gpt4: timer@30700000 { 1019 compatible = "fsl,imx8mp-gpt", "fsl,imx6dl-gpt"; 1020 reg = <0x30700000 0x10000>; 1021 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; 1022 clocks = <&clk IMX8MP_CLK_GPT4_ROOT>, <&clk IMX8MP_CLK_GPT4>; 1023 clock-names = "ipg", "per"; 1024 }; 1025 }; 1026 1027 aips3: bus@30800000 { 1028 compatible = "fsl,aips-bus", "simple-bus"; 1029 reg = <0x30800000 0x400000>; 1030 #address-cells = <1>; 1031 #size-cells = <1>; 1032 ranges; 1033 1034 spba-bus@30800000 { 1035 compatible = "fsl,spba-bus", "simple-bus"; 1036 reg = <0x30800000 0x100000>; 1037 #address-cells = <1>; 1038 #size-cells = <1>; 1039 ranges; 1040 1041 ecspi1: spi@30820000 { 1042 #address-cells = <1>; 1043 #size-cells = <0>; 1044 compatible = "fsl,imx8mp-ecspi", "fsl,imx6ul-ecspi"; 1045 reg = <0x30820000 0x10000>; 1046 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 1047 clocks = <&clk IMX8MP_CLK_ECSPI1_ROOT>, 1048 <&clk IMX8MP_CLK_ECSPI1_ROOT>; 1049 clock-names = "ipg", "per"; 1050 assigned-clock-rates = <80000000>; 1051 assigned-clocks = <&clk IMX8MP_CLK_ECSPI1>; 1052 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>; 1053 dmas = <&sdma1 0 7 1>, <&sdma1 1 7 2>; 1054 dma-names = "rx", "tx"; 1055 status = "disabled"; 1056 }; 1057 1058 ecspi2: spi@30830000 { 1059 #address-cells = <1>; 1060 #size-cells = <0>; 1061 compatible = "fsl,imx8mp-ecspi", "fsl,imx6ul-ecspi"; 1062 reg = <0x30830000 0x10000>; 1063 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 1064 clocks = <&clk IMX8MP_CLK_ECSPI2_ROOT>, 1065 <&clk IMX8MP_CLK_ECSPI2_ROOT>; 1066 clock-names = "ipg", "per"; 1067 assigned-clock-rates = <80000000>; 1068 assigned-clocks = <&clk IMX8MP_CLK_ECSPI2>; 1069 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>; 1070 dmas = <&sdma1 2 7 1>, <&sdma1 3 7 2>; 1071 dma-names = "rx", "tx"; 1072 status = "disabled"; 1073 }; 1074 1075 ecspi3: spi@30840000 { 1076 #address-cells = <1>; 1077 #size-cells = <0>; 1078 compatible = "fsl,imx8mp-ecspi", "fsl,imx6ul-ecspi"; 1079 reg = <0x30840000 0x10000>; 1080 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 1081 clocks = <&clk IMX8MP_CLK_ECSPI3_ROOT>, 1082 <&clk IMX8MP_CLK_ECSPI3_ROOT>; 1083 clock-names = "ipg", "per"; 1084 assigned-clock-rates = <80000000>; 1085 assigned-clocks = <&clk IMX8MP_CLK_ECSPI3>; 1086 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>; 1087 dmas = <&sdma1 4 7 1>, <&sdma1 5 7 2>; 1088 dma-names = "rx", "tx"; 1089 status = "disabled"; 1090 }; 1091 1092 uart1: serial@30860000 { 1093 compatible = "fsl,imx8mp-uart", "fsl,imx6q-uart"; 1094 reg = <0x30860000 0x10000>; 1095 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 1096 clocks = <&clk IMX8MP_CLK_UART1_ROOT>, 1097 <&clk IMX8MP_CLK_UART1_ROOT>; 1098 clock-names = "ipg", "per"; 1099 dmas = <&sdma1 22 4 0>, <&sdma1 23 4 0>; 1100 dma-names = "rx", "tx"; 1101 status = "disabled"; 1102 }; 1103 1104 uart3: serial@30880000 { 1105 compatible = "fsl,imx8mp-uart", "fsl,imx6q-uart"; 1106 reg = <0x30880000 0x10000>; 1107 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 1108 clocks = <&clk IMX8MP_CLK_UART3_ROOT>, 1109 <&clk IMX8MP_CLK_UART3_ROOT>; 1110 clock-names = "ipg", "per"; 1111 dmas = <&sdma1 26 4 0>, <&sdma1 27 4 0>; 1112 dma-names = "rx", "tx"; 1113 status = "disabled"; 1114 }; 1115 1116 uart2: serial@30890000 { 1117 compatible = "fsl,imx8mp-uart", "fsl,imx6q-uart"; 1118 reg = <0x30890000 0x10000>; 1119 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; 1120 clocks = <&clk IMX8MP_CLK_UART2_ROOT>, 1121 <&clk IMX8MP_CLK_UART2_ROOT>; 1122 clock-names = "ipg", "per"; 1123 dmas = <&sdma1 24 4 0>, <&sdma1 25 4 0>; 1124 dma-names = "rx", "tx"; 1125 status = "disabled"; 1126 }; 1127 1128 flexcan1: can@308c0000 { 1129 compatible = "fsl,imx8mp-flexcan"; 1130 reg = <0x308c0000 0x10000>; 1131 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>; 1132 clocks = <&clk IMX8MP_CLK_IPG_ROOT>, 1133 <&clk IMX8MP_CLK_CAN1_ROOT>; 1134 clock-names = "ipg", "per"; 1135 assigned-clocks = <&clk IMX8MP_CLK_CAN1>; 1136 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_40M>; 1137 assigned-clock-rates = <40000000>; 1138 fsl,clk-source = /bits/ 8 <0>; 1139 fsl,stop-mode = <&gpr 0x10 4>; 1140 status = "disabled"; 1141 }; 1142 1143 flexcan2: can@308d0000 { 1144 compatible = "fsl,imx8mp-flexcan"; 1145 reg = <0x308d0000 0x10000>; 1146 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; 1147 clocks = <&clk IMX8MP_CLK_IPG_ROOT>, 1148 <&clk IMX8MP_CLK_CAN2_ROOT>; 1149 clock-names = "ipg", "per"; 1150 assigned-clocks = <&clk IMX8MP_CLK_CAN2>; 1151 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_40M>; 1152 assigned-clock-rates = <40000000>; 1153 fsl,clk-source = /bits/ 8 <0>; 1154 fsl,stop-mode = <&gpr 0x10 5>; 1155 status = "disabled"; 1156 }; 1157 }; 1158 1159 crypto: crypto@30900000 { 1160 compatible = "fsl,sec-v4.0"; 1161 #address-cells = <1>; 1162 #size-cells = <1>; 1163 reg = <0x30900000 0x40000>; 1164 ranges = <0 0x30900000 0x40000>; 1165 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; 1166 clocks = <&clk IMX8MP_CLK_AHB>, 1167 <&clk IMX8MP_CLK_IPG_ROOT>; 1168 clock-names = "aclk", "ipg"; 1169 1170 sec_jr0: jr@1000 { 1171 compatible = "fsl,sec-v4.0-job-ring"; 1172 reg = <0x1000 0x1000>; 1173 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; 1174 status = "disabled"; 1175 }; 1176 1177 sec_jr1: jr@2000 { 1178 compatible = "fsl,sec-v4.0-job-ring"; 1179 reg = <0x2000 0x1000>; 1180 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; 1181 }; 1182 1183 sec_jr2: jr@3000 { 1184 compatible = "fsl,sec-v4.0-job-ring"; 1185 reg = <0x3000 0x1000>; 1186 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>; 1187 }; 1188 }; 1189 1190 i2c1: i2c@30a20000 { 1191 compatible = "fsl,imx8mp-i2c", "fsl,imx21-i2c"; 1192 #address-cells = <1>; 1193 #size-cells = <0>; 1194 reg = <0x30a20000 0x10000>; 1195 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 1196 clocks = <&clk IMX8MP_CLK_I2C1_ROOT>; 1197 status = "disabled"; 1198 }; 1199 1200 i2c2: i2c@30a30000 { 1201 compatible = "fsl,imx8mp-i2c", "fsl,imx21-i2c"; 1202 #address-cells = <1>; 1203 #size-cells = <0>; 1204 reg = <0x30a30000 0x10000>; 1205 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 1206 clocks = <&clk IMX8MP_CLK_I2C2_ROOT>; 1207 status = "disabled"; 1208 }; 1209 1210 i2c3: i2c@30a40000 { 1211 compatible = "fsl,imx8mp-i2c", "fsl,imx21-i2c"; 1212 #address-cells = <1>; 1213 #size-cells = <0>; 1214 reg = <0x30a40000 0x10000>; 1215 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 1216 clocks = <&clk IMX8MP_CLK_I2C3_ROOT>; 1217 status = "disabled"; 1218 }; 1219 1220 i2c4: i2c@30a50000 { 1221 compatible = "fsl,imx8mp-i2c", "fsl,imx21-i2c"; 1222 #address-cells = <1>; 1223 #size-cells = <0>; 1224 reg = <0x30a50000 0x10000>; 1225 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 1226 clocks = <&clk IMX8MP_CLK_I2C4_ROOT>; 1227 status = "disabled"; 1228 }; 1229 1230 uart4: serial@30a60000 { 1231 compatible = "fsl,imx8mp-uart", "fsl,imx6q-uart"; 1232 reg = <0x30a60000 0x10000>; 1233 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 1234 clocks = <&clk IMX8MP_CLK_UART4_ROOT>, 1235 <&clk IMX8MP_CLK_UART4_ROOT>; 1236 clock-names = "ipg", "per"; 1237 dmas = <&sdma1 28 4 0>, <&sdma1 29 4 0>; 1238 dma-names = "rx", "tx"; 1239 status = "disabled"; 1240 }; 1241 1242 mu: mailbox@30aa0000 { 1243 compatible = "fsl,imx8mp-mu", "fsl,imx6sx-mu"; 1244 reg = <0x30aa0000 0x10000>; 1245 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; 1246 clocks = <&clk IMX8MP_CLK_MU_ROOT>; 1247 #mbox-cells = <2>; 1248 }; 1249 1250 mu2: mailbox@30e60000 { 1251 compatible = "fsl,imx8mp-mu", "fsl,imx6sx-mu"; 1252 reg = <0x30e60000 0x10000>; 1253 interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>; 1254 #mbox-cells = <2>; 1255 status = "disabled"; 1256 }; 1257 1258 i2c5: i2c@30ad0000 { 1259 compatible = "fsl,imx8mp-i2c", "fsl,imx21-i2c"; 1260 #address-cells = <1>; 1261 #size-cells = <0>; 1262 reg = <0x30ad0000 0x10000>; 1263 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; 1264 clocks = <&clk IMX8MP_CLK_I2C5_ROOT>; 1265 status = "disabled"; 1266 }; 1267 1268 i2c6: i2c@30ae0000 { 1269 compatible = "fsl,imx8mp-i2c", "fsl,imx21-i2c"; 1270 #address-cells = <1>; 1271 #size-cells = <0>; 1272 reg = <0x30ae0000 0x10000>; 1273 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 1274 clocks = <&clk IMX8MP_CLK_I2C6_ROOT>; 1275 status = "disabled"; 1276 }; 1277 1278 usdhc1: mmc@30b40000 { 1279 compatible = "fsl,imx8mp-usdhc", "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc"; 1280 reg = <0x30b40000 0x10000>; 1281 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 1282 clocks = <&clk IMX8MP_CLK_IPG_ROOT>, 1283 <&clk IMX8MP_CLK_NAND_USDHC_BUS>, 1284 <&clk IMX8MP_CLK_USDHC1_ROOT>; 1285 clock-names = "ipg", "ahb", "per"; 1286 fsl,tuning-start-tap = <20>; 1287 fsl,tuning-step = <2>; 1288 bus-width = <4>; 1289 status = "disabled"; 1290 }; 1291 1292 usdhc2: mmc@30b50000 { 1293 compatible = "fsl,imx8mp-usdhc", "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc"; 1294 reg = <0x30b50000 0x10000>; 1295 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 1296 clocks = <&clk IMX8MP_CLK_IPG_ROOT>, 1297 <&clk IMX8MP_CLK_NAND_USDHC_BUS>, 1298 <&clk IMX8MP_CLK_USDHC2_ROOT>; 1299 clock-names = "ipg", "ahb", "per"; 1300 fsl,tuning-start-tap = <20>; 1301 fsl,tuning-step = <2>; 1302 bus-width = <4>; 1303 status = "disabled"; 1304 }; 1305 1306 usdhc3: mmc@30b60000 { 1307 compatible = "fsl,imx8mp-usdhc", "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc"; 1308 reg = <0x30b60000 0x10000>; 1309 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 1310 clocks = <&clk IMX8MP_CLK_IPG_ROOT>, 1311 <&clk IMX8MP_CLK_NAND_USDHC_BUS>, 1312 <&clk IMX8MP_CLK_USDHC3_ROOT>; 1313 clock-names = "ipg", "ahb", "per"; 1314 fsl,tuning-start-tap = <20>; 1315 fsl,tuning-step = <2>; 1316 bus-width = <4>; 1317 status = "disabled"; 1318 }; 1319 1320 flexspi: spi@30bb0000 { 1321 compatible = "nxp,imx8mp-fspi"; 1322 reg = <0x30bb0000 0x10000>, <0x8000000 0x10000000>; 1323 reg-names = "fspi_base", "fspi_mmap"; 1324 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 1325 clocks = <&clk IMX8MP_CLK_QSPI_ROOT>, 1326 <&clk IMX8MP_CLK_QSPI_ROOT>; 1327 clock-names = "fspi_en", "fspi"; 1328 assigned-clock-rates = <80000000>; 1329 assigned-clocks = <&clk IMX8MP_CLK_QSPI>; 1330 #address-cells = <1>; 1331 #size-cells = <0>; 1332 status = "disabled"; 1333 }; 1334 1335 sdma1: dma-controller@30bd0000 { 1336 compatible = "fsl,imx8mp-sdma", "fsl,imx8mq-sdma"; 1337 reg = <0x30bd0000 0x10000>; 1338 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 1339 clocks = <&clk IMX8MP_CLK_SDMA1_ROOT>, 1340 <&clk IMX8MP_CLK_AHB>; 1341 clock-names = "ipg", "ahb"; 1342 #dma-cells = <3>; 1343 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin"; 1344 }; 1345 1346 fec: ethernet@30be0000 { 1347 compatible = "fsl,imx8mp-fec", "fsl,imx8mq-fec", "fsl,imx6sx-fec"; 1348 reg = <0x30be0000 0x10000>; 1349 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, 1350 <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>, 1351 <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>, 1352 <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>; 1353 clocks = <&clk IMX8MP_CLK_ENET1_ROOT>, 1354 <&clk IMX8MP_CLK_SIM_ENET_ROOT>, 1355 <&clk IMX8MP_CLK_ENET_TIMER>, 1356 <&clk IMX8MP_CLK_ENET_REF>, 1357 <&clk IMX8MP_CLK_ENET_PHY_REF>; 1358 clock-names = "ipg", "ahb", "ptp", 1359 "enet_clk_ref", "enet_out"; 1360 assigned-clocks = <&clk IMX8MP_CLK_ENET_AXI>, 1361 <&clk IMX8MP_CLK_ENET_TIMER>, 1362 <&clk IMX8MP_CLK_ENET_REF>, 1363 <&clk IMX8MP_CLK_ENET_PHY_REF>; 1364 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_266M>, 1365 <&clk IMX8MP_SYS_PLL2_100M>, 1366 <&clk IMX8MP_SYS_PLL2_125M>, 1367 <&clk IMX8MP_SYS_PLL2_50M>; 1368 assigned-clock-rates = <0>, <100000000>, <125000000>, <0>; 1369 fsl,num-tx-queues = <3>; 1370 fsl,num-rx-queues = <3>; 1371 nvmem-cells = <ð_mac1>; 1372 nvmem-cell-names = "mac-address"; 1373 fsl,stop-mode = <&gpr 0x10 3>; 1374 status = "disabled"; 1375 }; 1376 1377 eqos: ethernet@30bf0000 { 1378 compatible = "nxp,imx8mp-dwmac-eqos", "snps,dwmac-5.10a"; 1379 reg = <0x30bf0000 0x10000>; 1380 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>, 1381 <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>; 1382 interrupt-names = "macirq", "eth_wake_irq"; 1383 clocks = <&clk IMX8MP_CLK_ENET_QOS_ROOT>, 1384 <&clk IMX8MP_CLK_QOS_ENET_ROOT>, 1385 <&clk IMX8MP_CLK_ENET_QOS_TIMER>, 1386 <&clk IMX8MP_CLK_ENET_QOS>; 1387 clock-names = "stmmaceth", "pclk", "ptp_ref", "tx"; 1388 assigned-clocks = <&clk IMX8MP_CLK_ENET_AXI>, 1389 <&clk IMX8MP_CLK_ENET_QOS_TIMER>, 1390 <&clk IMX8MP_CLK_ENET_QOS>; 1391 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_266M>, 1392 <&clk IMX8MP_SYS_PLL2_100M>, 1393 <&clk IMX8MP_SYS_PLL2_125M>; 1394 assigned-clock-rates = <0>, <100000000>, <125000000>; 1395 nvmem-cells = <ð_mac2>; 1396 nvmem-cell-names = "mac-address"; 1397 intf_mode = <&gpr 0x4>; 1398 status = "disabled"; 1399 }; 1400 }; 1401 1402 aips5: bus@30c00000 { 1403 compatible = "fsl,aips-bus", "simple-bus"; 1404 reg = <0x30c00000 0x400000>; 1405 #address-cells = <1>; 1406 #size-cells = <1>; 1407 ranges; 1408 1409 spba-bus@30c00000 { 1410 compatible = "fsl,spba-bus", "simple-bus"; 1411 reg = <0x30c00000 0x100000>; 1412 #address-cells = <1>; 1413 #size-cells = <1>; 1414 ranges; 1415 1416 sai1: sai@30c10000 { 1417 compatible = "fsl,imx8mp-sai", "fsl,imx8mq-sai"; 1418 reg = <0x30c10000 0x10000>; 1419 #sound-dai-cells = <0>; 1420 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_IPG>, 1421 <&clk IMX8MP_CLK_DUMMY>, 1422 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>, 1423 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK2>, 1424 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK3>; 1425 clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; 1426 dmas = <&sdma2 0 2 0>, <&sdma2 1 2 0>; 1427 dma-names = "rx", "tx"; 1428 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; 1429 status = "disabled"; 1430 }; 1431 1432 sai2: sai@30c20000 { 1433 compatible = "fsl,imx8mp-sai", "fsl,imx8mq-sai"; 1434 reg = <0x30c20000 0x10000>; 1435 #sound-dai-cells = <0>; 1436 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI2_IPG>, 1437 <&clk IMX8MP_CLK_DUMMY>, 1438 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI2_MCLK1>, 1439 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI2_MCLK2>, 1440 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI2_MCLK3>; 1441 clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; 1442 dmas = <&sdma2 2 2 0>, <&sdma2 3 2 0>; 1443 dma-names = "rx", "tx"; 1444 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 1445 status = "disabled"; 1446 }; 1447 1448 sai3: sai@30c30000 { 1449 compatible = "fsl,imx8mp-sai", "fsl,imx8mq-sai"; 1450 reg = <0x30c30000 0x10000>; 1451 #sound-dai-cells = <0>; 1452 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI3_IPG>, 1453 <&clk IMX8MP_CLK_DUMMY>, 1454 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI3_MCLK1>, 1455 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI3_MCLK2>, 1456 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI3_MCLK3>; 1457 clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; 1458 dmas = <&sdma2 4 2 0>, <&sdma2 5 2 0>; 1459 dma-names = "rx", "tx"; 1460 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 1461 status = "disabled"; 1462 }; 1463 1464 sai5: sai@30c50000 { 1465 compatible = "fsl,imx8mp-sai", "fsl,imx8mq-sai"; 1466 reg = <0x30c50000 0x10000>; 1467 #sound-dai-cells = <0>; 1468 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI5_IPG>, 1469 <&clk IMX8MP_CLK_DUMMY>, 1470 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI5_MCLK1>, 1471 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI5_MCLK2>, 1472 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI5_MCLK3>; 1473 clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; 1474 dmas = <&sdma2 8 2 0>, <&sdma2 9 2 0>; 1475 dma-names = "rx", "tx"; 1476 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; 1477 status = "disabled"; 1478 }; 1479 1480 sai6: sai@30c60000 { 1481 compatible = "fsl,imx8mp-sai", "fsl,imx8mq-sai"; 1482 reg = <0x30c60000 0x10000>; 1483 #sound-dai-cells = <0>; 1484 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI6_IPG>, 1485 <&clk IMX8MP_CLK_DUMMY>, 1486 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI6_MCLK1>, 1487 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI6_MCLK2>, 1488 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI6_MCLK3>; 1489 clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; 1490 dmas = <&sdma2 10 2 0>, <&sdma2 11 2 0>; 1491 dma-names = "rx", "tx"; 1492 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; 1493 status = "disabled"; 1494 }; 1495 1496 sai7: sai@30c80000 { 1497 compatible = "fsl,imx8mp-sai", "fsl,imx8mq-sai"; 1498 reg = <0x30c80000 0x10000>; 1499 #sound-dai-cells = <0>; 1500 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI7_IPG>, 1501 <&clk IMX8MP_CLK_DUMMY>, 1502 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI7_MCLK1>, 1503 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI7_MCLK2>, 1504 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI7_MCLK3>; 1505 clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; 1506 dmas = <&sdma2 12 2 0>, <&sdma2 13 2 0>; 1507 dma-names = "rx", "tx"; 1508 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; 1509 status = "disabled"; 1510 }; 1511 1512 easrc: easrc@30c90000 { 1513 compatible = "fsl,imx8mp-easrc", "fsl,imx8mn-easrc"; 1514 reg = <0x30c90000 0x10000>; 1515 interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; 1516 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_ASRC_IPG>; 1517 clock-names = "mem"; 1518 dmas = <&sdma2 16 23 0> , <&sdma2 17 23 0>, 1519 <&sdma2 18 23 0> , <&sdma2 19 23 0>, 1520 <&sdma2 20 23 0> , <&sdma2 21 23 0>, 1521 <&sdma2 22 23 0> , <&sdma2 23 23 0>; 1522 dma-names = "ctx0_rx", "ctx0_tx", 1523 "ctx1_rx", "ctx1_tx", 1524 "ctx2_rx", "ctx2_tx", 1525 "ctx3_rx", "ctx3_tx"; 1526 firmware-name = "imx/easrc/easrc-imx8mn.bin"; 1527 fsl,asrc-rate = <8000>; 1528 fsl,asrc-format = <2>; 1529 status = "disabled"; 1530 }; 1531 1532 micfil: audio-controller@30ca0000 { 1533 compatible = "fsl,imx8mp-micfil"; 1534 reg = <0x30ca0000 0x10000>; 1535 #sound-dai-cells = <0>; 1536 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>, 1537 <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>, 1538 <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>, 1539 <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 1540 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_PDM_IPG>, 1541 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_PDM_SEL>, 1542 <&clk IMX8MP_AUDIO_PLL1_OUT>, 1543 <&clk IMX8MP_AUDIO_PLL2_OUT>, 1544 <&clk IMX8MP_CLK_EXT3>; 1545 clock-names = "ipg_clk", "ipg_clk_app", 1546 "pll8k", "pll11k", "clkext3"; 1547 dmas = <&sdma2 24 25 0x80000000>; 1548 dma-names = "rx"; 1549 status = "disabled"; 1550 }; 1551 1552 aud2htx: aud2htx@30cb0000 { 1553 compatible = "fsl,imx8mp-aud2htx"; 1554 reg = <0x30cb0000 0x10000>; 1555 interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>; 1556 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_AUD2HTX_IPG>; 1557 clock-names = "bus"; 1558 dmas = <&sdma2 26 2 0>; 1559 dma-names = "tx"; 1560 status = "disabled"; 1561 }; 1562 1563 xcvr: xcvr@30cc0000 { 1564 compatible = "fsl,imx8mp-xcvr"; 1565 reg = <0x30cc0000 0x800>, 1566 <0x30cc0800 0x400>, 1567 <0x30cc0c00 0x080>, 1568 <0x30cc0e00 0x080>; 1569 reg-names = "ram", "regs", "rxfifo", 1570 "txfifo"; 1571 interrupts = /* XCVR IRQ 0 */ 1572 <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>, 1573 /* XCVR IRQ 1 */ 1574 <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>, 1575 /* XCVR PHY - SPDIF wakeup IRQ */ 1576 <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>; 1577 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_EARC_IPG>, 1578 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_EARC_PHY>, 1579 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SPBA2_ROOT>, 1580 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_AUDPLL_ROOT>; 1581 clock-names = "ipg", "phy", "spba", "pll_ipg"; 1582 dmas = <&sdma2 30 2 0>, <&sdma2 31 2 0>; 1583 dma-names = "rx", "tx"; 1584 resets = <&audio_blk_ctrl 0>; 1585 status = "disabled"; 1586 }; 1587 }; 1588 1589 sdma3: dma-controller@30e00000 { 1590 compatible = "fsl,imx8mp-sdma", "fsl,imx8mq-sdma"; 1591 reg = <0x30e00000 0x10000>; 1592 #dma-cells = <3>; 1593 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SDMA3_ROOT>, 1594 <&clk IMX8MP_CLK_AUDIO_ROOT>; 1595 clock-names = "ipg", "ahb"; 1596 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 1597 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin"; 1598 }; 1599 1600 sdma2: dma-controller@30e10000 { 1601 compatible = "fsl,imx8mp-sdma", "fsl,imx8mq-sdma"; 1602 reg = <0x30e10000 0x10000>; 1603 #dma-cells = <3>; 1604 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SDMA2_ROOT>, 1605 <&clk IMX8MP_CLK_AUDIO_ROOT>; 1606 clock-names = "ipg", "ahb"; 1607 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 1608 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin"; 1609 }; 1610 1611 audio_blk_ctrl: clock-controller@30e20000 { 1612 compatible = "fsl,imx8mp-audio-blk-ctrl"; 1613 reg = <0x30e20000 0x10000>; 1614 #clock-cells = <1>; 1615 #reset-cells = <1>; 1616 clocks = <&clk IMX8MP_CLK_AUDIO_ROOT>, 1617 <&clk IMX8MP_CLK_SAI1>, 1618 <&clk IMX8MP_CLK_SAI2>, 1619 <&clk IMX8MP_CLK_SAI3>, 1620 <&clk IMX8MP_CLK_SAI5>, 1621 <&clk IMX8MP_CLK_SAI6>, 1622 <&clk IMX8MP_CLK_SAI7>; 1623 clock-names = "ahb", 1624 "sai1", "sai2", "sai3", 1625 "sai5", "sai6", "sai7"; 1626 power-domains = <&pgc_audio>; 1627 assigned-clocks = <&clk IMX8MP_AUDIO_PLL1>, 1628 <&clk IMX8MP_AUDIO_PLL2>; 1629 assigned-clock-rates = <393216000>, <361267200>; 1630 }; 1631 }; 1632 1633 noc: interconnect@32700000 { 1634 compatible = "fsl,imx8mp-noc", "fsl,imx8m-noc"; 1635 reg = <0x32700000 0x100000>; 1636 clocks = <&clk IMX8MP_CLK_NOC>; 1637 #interconnect-cells = <1>; 1638 operating-points-v2 = <&noc_opp_table>; 1639 1640 noc_opp_table: opp-table { 1641 compatible = "operating-points-v2"; 1642 1643 opp-200000000 { 1644 opp-hz = /bits/ 64 <200000000>; 1645 }; 1646 1647 opp-1000000000 { 1648 opp-hz = /bits/ 64 <1000000000>; 1649 }; 1650 }; 1651 }; 1652 1653 aips4: bus@32c00000 { 1654 compatible = "fsl,aips-bus", "simple-bus"; 1655 reg = <0x32c00000 0x400000>; 1656 #address-cells = <1>; 1657 #size-cells = <1>; 1658 ranges; 1659 1660 isi_0: isi@32e00000 { 1661 compatible = "fsl,imx8mp-isi"; 1662 reg = <0x32e00000 0x4000>; 1663 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, 1664 <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; 1665 clocks = <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>, 1666 <&clk IMX8MP_CLK_MEDIA_APB_ROOT>; 1667 clock-names = "axi", "apb"; 1668 fsl,blk-ctrl = <&media_blk_ctrl>; 1669 power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_ISI>; 1670 status = "disabled"; 1671 1672 ports { 1673 #address-cells = <1>; 1674 #size-cells = <0>; 1675 1676 port@0 { 1677 reg = <0>; 1678 1679 isi_in_0: endpoint { 1680 remote-endpoint = <&mipi_csi_0_out>; 1681 }; 1682 }; 1683 1684 port@1 { 1685 reg = <1>; 1686 1687 isi_in_1: endpoint { 1688 remote-endpoint = <&mipi_csi_1_out>; 1689 }; 1690 }; 1691 }; 1692 }; 1693 1694 isp_0: isp@32e10000 { 1695 compatible = "fsl,imx8mp-isp"; 1696 reg = <0x32e10000 0x10000>; 1697 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 1698 clocks = <&clk IMX8MP_CLK_MEDIA_ISP_ROOT>, 1699 <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>, 1700 <&clk IMX8MP_CLK_MEDIA_APB_ROOT>; 1701 clock-names = "isp", "aclk", "hclk"; 1702 power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_ISP>; 1703 fsl,blk-ctrl = <&media_blk_ctrl 0>; 1704 status = "disabled"; 1705 1706 ports { 1707 #address-cells = <1>; 1708 #size-cells = <0>; 1709 1710 port@1 { 1711 reg = <1>; 1712 }; 1713 }; 1714 }; 1715 1716 isp_1: isp@32e20000 { 1717 compatible = "fsl,imx8mp-isp"; 1718 reg = <0x32e20000 0x10000>; 1719 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 1720 clocks = <&clk IMX8MP_CLK_MEDIA_ISP_ROOT>, 1721 <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>, 1722 <&clk IMX8MP_CLK_MEDIA_APB_ROOT>; 1723 clock-names = "isp", "aclk", "hclk"; 1724 power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_ISP>; 1725 fsl,blk-ctrl = <&media_blk_ctrl 1>; 1726 status = "disabled"; 1727 1728 ports { 1729 #address-cells = <1>; 1730 #size-cells = <0>; 1731 1732 port@1 { 1733 reg = <1>; 1734 }; 1735 }; 1736 }; 1737 1738 dewarp: dwe@32e30000 { 1739 compatible = "nxp,imx8mp-dw100"; 1740 reg = <0x32e30000 0x10000>; 1741 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 1742 clocks = <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>, 1743 <&clk IMX8MP_CLK_MEDIA_APB_ROOT>; 1744 clock-names = "axi", "ahb"; 1745 power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_DWE>; 1746 }; 1747 1748 mipi_csi_0: csi@32e40000 { 1749 compatible = "fsl,imx8mp-mipi-csi2", "fsl,imx8mm-mipi-csi2"; 1750 reg = <0x32e40000 0x10000>; 1751 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 1752 clock-frequency = <250000000>; 1753 clocks = <&clk IMX8MP_CLK_MEDIA_APB_ROOT>, 1754 <&clk IMX8MP_CLK_MEDIA_CAM1_PIX_ROOT>, 1755 <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF_ROOT>, 1756 <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>; 1757 clock-names = "pclk", "wrap", "phy", "axi"; 1758 assigned-clocks = <&clk IMX8MP_CLK_MEDIA_CAM1_PIX>, 1759 <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF>; 1760 assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_250M>, 1761 <&clk IMX8MP_CLK_24M>; 1762 power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_MIPI_CSI2_1>; 1763 status = "disabled"; 1764 1765 ports { 1766 #address-cells = <1>; 1767 #size-cells = <0>; 1768 1769 port@0 { 1770 reg = <0>; 1771 }; 1772 1773 port@1 { 1774 reg = <1>; 1775 1776 mipi_csi_0_out: endpoint { 1777 remote-endpoint = <&isi_in_0>; 1778 }; 1779 }; 1780 }; 1781 }; 1782 1783 mipi_csi_1: csi@32e50000 { 1784 compatible = "fsl,imx8mp-mipi-csi2", "fsl,imx8mm-mipi-csi2"; 1785 reg = <0x32e50000 0x10000>; 1786 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 1787 clock-frequency = <250000000>; 1788 clocks = <&clk IMX8MP_CLK_MEDIA_APB_ROOT>, 1789 <&clk IMX8MP_CLK_MEDIA_CAM2_PIX_ROOT>, 1790 <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF_ROOT>, 1791 <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>; 1792 clock-names = "pclk", "wrap", "phy", "axi"; 1793 assigned-clocks = <&clk IMX8MP_CLK_MEDIA_CAM2_PIX>, 1794 <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF>; 1795 assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_250M>, 1796 <&clk IMX8MP_CLK_24M>; 1797 power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_MIPI_CSI2_2>; 1798 status = "disabled"; 1799 1800 ports { 1801 #address-cells = <1>; 1802 #size-cells = <0>; 1803 1804 port@0 { 1805 reg = <0>; 1806 }; 1807 1808 port@1 { 1809 reg = <1>; 1810 1811 mipi_csi_1_out: endpoint { 1812 remote-endpoint = <&isi_in_1>; 1813 }; 1814 }; 1815 }; 1816 }; 1817 1818 mipi_dsi: dsi@32e60000 { 1819 compatible = "fsl,imx8mp-mipi-dsim"; 1820 reg = <0x32e60000 0x400>; 1821 clocks = <&clk IMX8MP_CLK_MEDIA_APB_ROOT>, 1822 <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF>; 1823 clock-names = "bus_clk", "sclk_mipi"; 1824 assigned-clocks = <&clk IMX8MP_CLK_MEDIA_APB>, 1825 <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF>; 1826 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>, 1827 <&clk IMX8MP_CLK_24M>; 1828 assigned-clock-rates = <200000000>, <24000000>; 1829 samsung,pll-clock-frequency = <24000000>; 1830 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 1831 power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_MIPI_DSI_1>; 1832 status = "disabled"; 1833 1834 ports { 1835 #address-cells = <1>; 1836 #size-cells = <0>; 1837 1838 port@0 { 1839 reg = <0>; 1840 1841 dsim_from_lcdif1: endpoint { 1842 remote-endpoint = <&lcdif1_to_dsim>; 1843 }; 1844 }; 1845 1846 port@1 { 1847 reg = <1>; 1848 1849 mipi_dsi_out: endpoint { 1850 }; 1851 }; 1852 }; 1853 }; 1854 1855 lcdif1: display-controller@32e80000 { 1856 compatible = "fsl,imx8mp-lcdif"; 1857 reg = <0x32e80000 0x10000>; 1858 clocks = <&clk IMX8MP_CLK_MEDIA_DISP1_PIX_ROOT>, 1859 <&clk IMX8MP_CLK_MEDIA_APB_ROOT>, 1860 <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>; 1861 clock-names = "pix", "axi", "disp_axi"; 1862 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 1863 power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_LCDIF_1>; 1864 status = "disabled"; 1865 1866 port { 1867 lcdif1_to_dsim: endpoint { 1868 remote-endpoint = <&dsim_from_lcdif1>; 1869 }; 1870 }; 1871 }; 1872 1873 lcdif2: display-controller@32e90000 { 1874 compatible = "fsl,imx8mp-lcdif"; 1875 reg = <0x32e90000 0x10000>; 1876 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 1877 clocks = <&clk IMX8MP_CLK_MEDIA_DISP2_PIX_ROOT>, 1878 <&clk IMX8MP_CLK_MEDIA_APB_ROOT>, 1879 <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>; 1880 clock-names = "pix", "axi", "disp_axi"; 1881 power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_LCDIF_2>; 1882 status = "disabled"; 1883 1884 port { 1885 lcdif2_to_ldb: endpoint { 1886 remote-endpoint = <&ldb_from_lcdif2>; 1887 }; 1888 }; 1889 }; 1890 1891 media_blk_ctrl: blk-ctrl@32ec0000 { 1892 compatible = "fsl,imx8mp-media-blk-ctrl", 1893 "syscon"; 1894 reg = <0x32ec0000 0x10000>; 1895 #address-cells = <1>; 1896 #size-cells = <1>; 1897 power-domains = <&pgc_mediamix>, 1898 <&pgc_mipi_phy1>, 1899 <&pgc_mipi_phy1>, 1900 <&pgc_mediamix>, 1901 <&pgc_mediamix>, 1902 <&pgc_mipi_phy2>, 1903 <&pgc_mediamix>, 1904 <&pgc_ispdwp>, 1905 <&pgc_ispdwp>, 1906 <&pgc_mipi_phy2>; 1907 power-domain-names = "bus", "mipi-dsi1", "mipi-csi1", 1908 "lcdif1", "isi", "mipi-csi2", 1909 "lcdif2", "isp", "dwe", 1910 "mipi-dsi2"; 1911 interconnects = 1912 <&noc IMX8MP_ICM_LCDIF_RD &noc IMX8MP_ICN_MEDIA>, 1913 <&noc IMX8MP_ICM_LCDIF_WR &noc IMX8MP_ICN_MEDIA>, 1914 <&noc IMX8MP_ICM_ISI0 &noc IMX8MP_ICN_MEDIA>, 1915 <&noc IMX8MP_ICM_ISI1 &noc IMX8MP_ICN_MEDIA>, 1916 <&noc IMX8MP_ICM_ISI2 &noc IMX8MP_ICN_MEDIA>, 1917 <&noc IMX8MP_ICM_ISP0 &noc IMX8MP_ICN_MEDIA>, 1918 <&noc IMX8MP_ICM_ISP1 &noc IMX8MP_ICN_MEDIA>, 1919 <&noc IMX8MP_ICM_DWE &noc IMX8MP_ICN_MEDIA>; 1920 interconnect-names = "lcdif-rd", "lcdif-wr", "isi0", 1921 "isi1", "isi2", "isp0", "isp1", 1922 "dwe"; 1923 clocks = <&clk IMX8MP_CLK_MEDIA_APB_ROOT>, 1924 <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>, 1925 <&clk IMX8MP_CLK_MEDIA_CAM1_PIX_ROOT>, 1926 <&clk IMX8MP_CLK_MEDIA_CAM2_PIX_ROOT>, 1927 <&clk IMX8MP_CLK_MEDIA_DISP1_PIX_ROOT>, 1928 <&clk IMX8MP_CLK_MEDIA_DISP2_PIX_ROOT>, 1929 <&clk IMX8MP_CLK_MEDIA_ISP_ROOT>, 1930 <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF_ROOT>; 1931 clock-names = "apb", "axi", "cam1", "cam2", 1932 "disp1", "disp2", "isp", "phy"; 1933 1934 /* 1935 * The ISP maximum frequency is 400MHz in normal mode 1936 * and 500MHz in overdrive mode. The 400MHz operating 1937 * point hasn't been successfully tested yet, so set 1938 * IMX8MP_CLK_MEDIA_ISP to 500MHz for the time being. 1939 */ 1940 assigned-clocks = <&clk IMX8MP_CLK_MEDIA_AXI>, 1941 <&clk IMX8MP_CLK_MEDIA_APB>, 1942 <&clk IMX8MP_CLK_MEDIA_DISP1_PIX>, 1943 <&clk IMX8MP_CLK_MEDIA_DISP2_PIX>, 1944 <&clk IMX8MP_CLK_MEDIA_ISP>, 1945 <&clk IMX8MP_VIDEO_PLL1>; 1946 assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_1000M>, 1947 <&clk IMX8MP_SYS_PLL1_800M>, 1948 <&clk IMX8MP_VIDEO_PLL1_OUT>, 1949 <&clk IMX8MP_VIDEO_PLL1_OUT>, 1950 <&clk IMX8MP_SYS_PLL2_500M>; 1951 assigned-clock-rates = <500000000>, <200000000>, 1952 <0>, <0>, <500000000>, 1953 <1039500000>; 1954 #power-domain-cells = <1>; 1955 1956 lvds_bridge: bridge@5c { 1957 compatible = "fsl,imx8mp-ldb"; 1958 reg = <0x5c 0x4>, <0x128 0x4>; 1959 reg-names = "ldb", "lvds"; 1960 clocks = <&clk IMX8MP_CLK_MEDIA_LDB_ROOT>; 1961 clock-names = "ldb"; 1962 assigned-clocks = <&clk IMX8MP_CLK_MEDIA_LDB>; 1963 assigned-clock-parents = <&clk IMX8MP_VIDEO_PLL1_OUT>; 1964 status = "disabled"; 1965 1966 ports { 1967 #address-cells = <1>; 1968 #size-cells = <0>; 1969 1970 port@0 { 1971 reg = <0>; 1972 1973 ldb_from_lcdif2: endpoint { 1974 remote-endpoint = <&lcdif2_to_ldb>; 1975 }; 1976 }; 1977 1978 port@1 { 1979 reg = <1>; 1980 1981 ldb_lvds_ch0: endpoint { 1982 }; 1983 }; 1984 1985 port@2 { 1986 reg = <2>; 1987 1988 ldb_lvds_ch1: endpoint { 1989 }; 1990 }; 1991 }; 1992 }; 1993 }; 1994 1995 pcie_phy: pcie-phy@32f00000 { 1996 compatible = "fsl,imx8mp-pcie-phy"; 1997 reg = <0x32f00000 0x10000>; 1998 resets = <&src IMX8MP_RESET_PCIEPHY>, 1999 <&src IMX8MP_RESET_PCIEPHY_PERST>; 2000 reset-names = "pciephy", "perst"; 2001 power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_PCIE_PHY>; 2002 #phy-cells = <0>; 2003 status = "disabled"; 2004 }; 2005 2006 hsio_blk_ctrl: blk-ctrl@32f10000 { 2007 compatible = "fsl,imx8mp-hsio-blk-ctrl", "syscon"; 2008 reg = <0x32f10000 0x24>; 2009 clocks = <&clk IMX8MP_CLK_USB_ROOT>, 2010 <&clk IMX8MP_CLK_PCIE_ROOT>; 2011 clock-names = "usb", "pcie"; 2012 power-domains = <&pgc_hsiomix>, <&pgc_hsiomix>, 2013 <&pgc_usb1_phy>, <&pgc_usb2_phy>, 2014 <&pgc_hsiomix>, <&pgc_pcie_phy>; 2015 power-domain-names = "bus", "usb", "usb-phy1", 2016 "usb-phy2", "pcie", "pcie-phy"; 2017 interconnects = <&noc IMX8MP_ICM_NOC_PCIE &noc IMX8MP_ICN_HSIO>, 2018 <&noc IMX8MP_ICM_USB1 &noc IMX8MP_ICN_HSIO>, 2019 <&noc IMX8MP_ICM_USB2 &noc IMX8MP_ICN_HSIO>, 2020 <&noc IMX8MP_ICM_PCIE &noc IMX8MP_ICN_HSIO>; 2021 interconnect-names = "noc-pcie", "usb1", "usb2", "pcie"; 2022 #power-domain-cells = <1>; 2023 #clock-cells = <0>; 2024 }; 2025 2026 hdmi_blk_ctrl: blk-ctrl@32fc0000 { 2027 compatible = "fsl,imx8mp-hdmi-blk-ctrl", "syscon"; 2028 reg = <0x32fc0000 0x1000>; 2029 clocks = <&clk IMX8MP_CLK_HDMI_APB>, 2030 <&clk IMX8MP_CLK_HDMI_ROOT>, 2031 <&clk IMX8MP_CLK_HDMI_REF_266M>, 2032 <&clk IMX8MP_CLK_HDMI_24M>, 2033 <&clk IMX8MP_CLK_HDMI_FDCC_TST>; 2034 clock-names = "apb", "axi", "ref_266m", "ref_24m", "fdcc"; 2035 power-domains = <&pgc_hdmimix>, <&pgc_hdmimix>, 2036 <&pgc_hdmimix>, <&pgc_hdmimix>, 2037 <&pgc_hdmimix>, <&pgc_hdmimix>, 2038 <&pgc_hdmimix>, <&pgc_hdmi_phy>, 2039 <&pgc_hdmimix>, <&pgc_hdmimix>; 2040 power-domain-names = "bus", "irqsteer", "lcdif", 2041 "pai", "pvi", "trng", 2042 "hdmi-tx", "hdmi-tx-phy", 2043 "hdcp", "hrv"; 2044 #power-domain-cells = <1>; 2045 }; 2046 2047 irqsteer_hdmi: interrupt-controller@32fc2000 { 2048 compatible = "fsl,imx8mp-irqsteer", "fsl,imx-irqsteer"; 2049 reg = <0x32fc2000 0x1000>; 2050 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>; 2051 interrupt-controller; 2052 #interrupt-cells = <1>; 2053 fsl,channel = <1>; 2054 fsl,num-irqs = <64>; 2055 clocks = <&clk IMX8MP_CLK_HDMI_APB>; 2056 clock-names = "ipg"; 2057 power-domains = <&hdmi_blk_ctrl IMX8MP_HDMIBLK_PD_IRQSTEER>; 2058 }; 2059 2060 hdmi_pvi: display-bridge@32fc4000 { 2061 compatible = "fsl,imx8mp-hdmi-pvi"; 2062 reg = <0x32fc4000 0x1000>; 2063 interrupt-parent = <&irqsteer_hdmi>; 2064 interrupts = <12>; 2065 power-domains = <&hdmi_blk_ctrl IMX8MP_HDMIBLK_PD_PVI>; 2066 status = "disabled"; 2067 2068 ports { 2069 #address-cells = <1>; 2070 #size-cells = <0>; 2071 2072 port@0 { 2073 reg = <0>; 2074 pvi_from_lcdif3: endpoint { 2075 remote-endpoint = <&lcdif3_to_pvi>; 2076 }; 2077 }; 2078 2079 port@1 { 2080 reg = <1>; 2081 pvi_to_hdmi_tx: endpoint { 2082 remote-endpoint = <&hdmi_tx_from_pvi>; 2083 }; 2084 }; 2085 }; 2086 }; 2087 2088 lcdif3: display-controller@32fc6000 { 2089 compatible = "fsl,imx8mp-lcdif"; 2090 reg = <0x32fc6000 0x1000>; 2091 interrupt-parent = <&irqsteer_hdmi>; 2092 interrupts = <8>; 2093 clocks = <&hdmi_tx_phy>, 2094 <&clk IMX8MP_CLK_HDMI_APB>, 2095 <&clk IMX8MP_CLK_HDMI_ROOT>; 2096 clock-names = "pix", "axi", "disp_axi"; 2097 power-domains = <&hdmi_blk_ctrl IMX8MP_HDMIBLK_PD_LCDIF>; 2098 status = "disabled"; 2099 2100 port { 2101 lcdif3_to_pvi: endpoint { 2102 remote-endpoint = <&pvi_from_lcdif3>; 2103 }; 2104 }; 2105 }; 2106 2107 hdmi_tx: hdmi@32fd8000 { 2108 compatible = "fsl,imx8mp-hdmi-tx"; 2109 reg = <0x32fd8000 0x7eff>; 2110 interrupt-parent = <&irqsteer_hdmi>; 2111 interrupts = <0>; 2112 clocks = <&clk IMX8MP_CLK_HDMI_APB>, 2113 <&clk IMX8MP_CLK_HDMI_REF_266M>, 2114 <&clk IMX8MP_CLK_32K>, 2115 <&hdmi_tx_phy>; 2116 clock-names = "iahb", "isfr", "cec", "pix"; 2117 assigned-clocks = <&clk IMX8MP_CLK_HDMI_REF_266M>; 2118 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_266M>; 2119 power-domains = <&hdmi_blk_ctrl IMX8MP_HDMIBLK_PD_HDMI_TX>; 2120 reg-io-width = <1>; 2121 status = "disabled"; 2122 2123 ports { 2124 #address-cells = <1>; 2125 #size-cells = <0>; 2126 2127 port@0 { 2128 reg = <0>; 2129 2130 hdmi_tx_from_pvi: endpoint { 2131 remote-endpoint = <&pvi_to_hdmi_tx>; 2132 }; 2133 }; 2134 2135 port@1 { 2136 reg = <1>; 2137 /* Point endpoint to the HDMI connector */ 2138 }; 2139 }; 2140 }; 2141 2142 hdmi_tx_phy: phy@32fdff00 { 2143 compatible = "fsl,imx8mp-hdmi-phy"; 2144 reg = <0x32fdff00 0x100>; 2145 clocks = <&clk IMX8MP_CLK_HDMI_APB>, 2146 <&clk IMX8MP_CLK_HDMI_24M>; 2147 clock-names = "apb", "ref"; 2148 assigned-clocks = <&clk IMX8MP_CLK_HDMI_24M>; 2149 assigned-clock-parents = <&clk IMX8MP_CLK_24M>; 2150 power-domains = <&hdmi_blk_ctrl IMX8MP_HDMIBLK_PD_HDMI_TX_PHY>; 2151 #clock-cells = <0>; 2152 #phy-cells = <0>; 2153 status = "disabled"; 2154 }; 2155 }; 2156 2157 pcie: pcie@33800000 { 2158 compatible = "fsl,imx8mp-pcie"; 2159 reg = <0x33800000 0x400000>, <0x1ff00000 0x80000>; 2160 reg-names = "dbi", "config"; 2161 clocks = <&clk IMX8MP_CLK_HSIO_ROOT>, 2162 <&clk IMX8MP_CLK_HSIO_AXI>, 2163 <&clk IMX8MP_CLK_PCIE_ROOT>; 2164 clock-names = "pcie", "pcie_bus", "pcie_aux"; 2165 assigned-clocks = <&clk IMX8MP_CLK_PCIE_AUX>; 2166 assigned-clock-rates = <10000000>; 2167 assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_50M>; 2168 #address-cells = <3>; 2169 #size-cells = <2>; 2170 device_type = "pci"; 2171 bus-range = <0x00 0xff>; 2172 ranges = <0x81000000 0 0x00000000 0x1ff80000 0 0x00010000>, /* downstream I/O 64KB */ 2173 <0x82000000 0 0x18000000 0x18000000 0 0x07f00000>; /* non-prefetchable memory */ 2174 num-lanes = <1>; 2175 num-viewport = <4>; 2176 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>; 2177 interrupt-names = "msi"; 2178 #interrupt-cells = <1>; 2179 interrupt-map-mask = <0 0 0 0x7>; 2180 interrupt-map = <0 0 0 1 &gic GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>, 2181 <0 0 0 2 &gic GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, 2182 <0 0 0 3 &gic GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>, 2183 <0 0 0 4 &gic GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>; 2184 fsl,max-link-speed = <3>; 2185 linux,pci-domain = <0>; 2186 power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_PCIE>; 2187 resets = <&src IMX8MP_RESET_PCIE_CTRL_APPS_EN>, 2188 <&src IMX8MP_RESET_PCIE_CTRL_APPS_TURNOFF>; 2189 reset-names = "apps", "turnoff"; 2190 phys = <&pcie_phy>; 2191 phy-names = "pcie-phy"; 2192 status = "disabled"; 2193 }; 2194 2195 pcie_ep: pcie-ep@33800000 { 2196 compatible = "fsl,imx8mp-pcie-ep"; 2197 reg = <0x33800000 0x100000>, 2198 <0x18000000 0x8000000>, 2199 <0x33900000 0x100000>, 2200 <0x33b00000 0x100000>; 2201 reg-names = "dbi", "addr_space", "dbi2", "atu"; 2202 clocks = <&clk IMX8MP_CLK_HSIO_ROOT>, 2203 <&clk IMX8MP_CLK_HSIO_AXI>, 2204 <&clk IMX8MP_CLK_PCIE_ROOT>; 2205 clock-names = "pcie", "pcie_bus", "pcie_aux"; 2206 assigned-clocks = <&clk IMX8MP_CLK_PCIE_AUX>; 2207 assigned-clock-rates = <10000000>; 2208 assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_50M>; 2209 num-lanes = <1>; 2210 interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; /* eDMA */ 2211 interrupt-names = "dma"; 2212 fsl,max-link-speed = <3>; 2213 power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_PCIE>; 2214 resets = <&src IMX8MP_RESET_PCIE_CTRL_APPS_EN>, 2215 <&src IMX8MP_RESET_PCIE_CTRL_APPS_TURNOFF>; 2216 reset-names = "apps", "turnoff"; 2217 phys = <&pcie_phy>; 2218 phy-names = "pcie-phy"; 2219 num-ib-windows = <4>; 2220 num-ob-windows = <4>; 2221 status = "disabled"; 2222 }; 2223 2224 gpu3d: gpu@38000000 { 2225 compatible = "vivante,gc"; 2226 reg = <0x38000000 0x8000>; 2227 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 2228 clocks = <&clk IMX8MP_CLK_GPU3D_ROOT>, 2229 <&clk IMX8MP_CLK_GPU3D_SHADER_CORE>, 2230 <&clk IMX8MP_CLK_GPU_ROOT>, 2231 <&clk IMX8MP_CLK_GPU_AHB>; 2232 clock-names = "core", "shader", "bus", "reg"; 2233 assigned-clocks = <&clk IMX8MP_CLK_GPU3D_CORE>, 2234 <&clk IMX8MP_CLK_GPU3D_SHADER_CORE>; 2235 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>, 2236 <&clk IMX8MP_SYS_PLL1_800M>; 2237 assigned-clock-rates = <800000000>, <800000000>; 2238 power-domains = <&pgc_gpu3d>; 2239 }; 2240 2241 gpu2d: gpu@38008000 { 2242 compatible = "vivante,gc"; 2243 reg = <0x38008000 0x8000>; 2244 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 2245 clocks = <&clk IMX8MP_CLK_GPU2D_ROOT>, 2246 <&clk IMX8MP_CLK_GPU_ROOT>, 2247 <&clk IMX8MP_CLK_GPU_AHB>; 2248 clock-names = "core", "bus", "reg"; 2249 assigned-clocks = <&clk IMX8MP_CLK_GPU2D_CORE>; 2250 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>; 2251 assigned-clock-rates = <800000000>; 2252 power-domains = <&pgc_gpu2d>; 2253 }; 2254 2255 vpu_g1: video-codec@38300000 { 2256 compatible = "nxp,imx8mm-vpu-g1"; 2257 reg = <0x38300000 0x10000>; 2258 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 2259 clocks = <&clk IMX8MP_CLK_VPU_G1_ROOT>; 2260 assigned-clocks = <&clk IMX8MP_CLK_VPU_G1>; 2261 assigned-clock-parents = <&clk IMX8MP_VPU_PLL_OUT>; 2262 assigned-clock-rates = <600000000>; 2263 power-domains = <&vpumix_blk_ctrl IMX8MP_VPUBLK_PD_G1>; 2264 }; 2265 2266 vpu_g2: video-codec@38310000 { 2267 compatible = "nxp,imx8mq-vpu-g2"; 2268 reg = <0x38310000 0x10000>; 2269 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 2270 clocks = <&clk IMX8MP_CLK_VPU_G2_ROOT>; 2271 assigned-clocks = <&clk IMX8MP_CLK_VPU_G2>; 2272 assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_1000M>; 2273 assigned-clock-rates = <500000000>; 2274 power-domains = <&vpumix_blk_ctrl IMX8MP_VPUBLK_PD_G2>; 2275 }; 2276 2277 vpumix_blk_ctrl: blk-ctrl@38330000 { 2278 compatible = "fsl,imx8mp-vpu-blk-ctrl", "syscon"; 2279 reg = <0x38330000 0x100>; 2280 #power-domain-cells = <1>; 2281 power-domains = <&pgc_vpumix>, <&pgc_vpu_g1>, 2282 <&pgc_vpu_g2>, <&pgc_vpu_vc8000e>; 2283 power-domain-names = "bus", "g1", "g2", "vc8000e"; 2284 clocks = <&clk IMX8MP_CLK_VPU_G1_ROOT>, 2285 <&clk IMX8MP_CLK_VPU_G2_ROOT>, 2286 <&clk IMX8MP_CLK_VPU_VC8KE_ROOT>; 2287 clock-names = "g1", "g2", "vc8000e"; 2288 assigned-clocks = <&clk IMX8MP_CLK_VPU_BUS>, <&clk IMX8MP_VPU_PLL>; 2289 assigned-clock-parents = <&clk IMX8MP_VPU_PLL_OUT>; 2290 assigned-clock-rates = <600000000>, <600000000>; 2291 interconnects = <&noc IMX8MP_ICM_VPU_G1 &noc IMX8MP_ICN_VIDEO>, 2292 <&noc IMX8MP_ICM_VPU_G2 &noc IMX8MP_ICN_VIDEO>, 2293 <&noc IMX8MP_ICM_VPU_H1 &noc IMX8MP_ICN_VIDEO>; 2294 interconnect-names = "g1", "g2", "vc8000e"; 2295 }; 2296 2297 npu: npu@38500000 { 2298 compatible = "vivante,gc"; 2299 reg = <0x38500000 0x200000>; 2300 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 2301 clocks = <&clk IMX8MP_CLK_NPU_ROOT>, 2302 <&clk IMX8MP_CLK_NPU_ROOT>, 2303 <&clk IMX8MP_CLK_ML_AXI>, 2304 <&clk IMX8MP_CLK_ML_AHB>; 2305 clock-names = "core", "shader", "bus", "reg"; 2306 power-domains = <&pgc_mlmix>; 2307 }; 2308 2309 gic: interrupt-controller@38800000 { 2310 compatible = "arm,gic-v3"; 2311 reg = <0x38800000 0x10000>, 2312 <0x38880000 0xc0000>; 2313 #interrupt-cells = <3>; 2314 interrupt-controller; 2315 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 2316 interrupt-parent = <&gic>; 2317 }; 2318 2319 edacmc: memory-controller@3d400000 { 2320 compatible = "snps,ddrc-3.80a"; 2321 reg = <0x3d400000 0x400000>; 2322 interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>; 2323 }; 2324 2325 ddr-pmu@3d800000 { 2326 compatible = "fsl,imx8mp-ddr-pmu", "fsl,imx8m-ddr-pmu"; 2327 reg = <0x3d800000 0x400000>; 2328 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 2329 }; 2330 2331 usb3_phy0: usb-phy@381f0040 { 2332 compatible = "fsl,imx8mp-usb-phy"; 2333 reg = <0x381f0040 0x40>; 2334 clocks = <&clk IMX8MP_CLK_USB_PHY_ROOT>; 2335 clock-names = "phy"; 2336 assigned-clocks = <&clk IMX8MP_CLK_USB_PHY_REF>; 2337 assigned-clock-parents = <&clk IMX8MP_CLK_24M>; 2338 power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_USB_PHY1>; 2339 #phy-cells = <0>; 2340 status = "disabled"; 2341 }; 2342 2343 usb3_0: usb@32f10100 { 2344 compatible = "fsl,imx8mp-dwc3"; 2345 reg = <0x32f10100 0x8>, 2346 <0x381f0000 0x20>; 2347 clocks = <&clk IMX8MP_CLK_HSIO_ROOT>, 2348 <&clk IMX8MP_CLK_USB_SUSP>; 2349 clock-names = "hsio", "suspend"; 2350 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; 2351 power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_USB>; 2352 #address-cells = <1>; 2353 #size-cells = <1>; 2354 dma-ranges = <0x40000000 0x40000000 0xc0000000>; 2355 ranges; 2356 status = "disabled"; 2357 2358 usb_dwc3_0: usb@38100000 { 2359 compatible = "snps,dwc3"; 2360 reg = <0x38100000 0x10000>; 2361 clocks = <&clk IMX8MP_CLK_USB_ROOT>, 2362 <&clk IMX8MP_CLK_USB_CORE_REF>, 2363 <&clk IMX8MP_CLK_USB_SUSP>; 2364 clock-names = "bus_early", "ref", "suspend"; 2365 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 2366 phys = <&usb3_phy0>, <&usb3_phy0>; 2367 phy-names = "usb2-phy", "usb3-phy"; 2368 snps,gfladj-refclk-lpm-sel-quirk; 2369 snps,parkmode-disable-ss-quirk; 2370 }; 2371 2372 }; 2373 2374 usb3_phy1: usb-phy@382f0040 { 2375 compatible = "fsl,imx8mp-usb-phy"; 2376 reg = <0x382f0040 0x40>; 2377 clocks = <&clk IMX8MP_CLK_USB_PHY_ROOT>; 2378 clock-names = "phy"; 2379 assigned-clocks = <&clk IMX8MP_CLK_USB_PHY_REF>; 2380 assigned-clock-parents = <&clk IMX8MP_CLK_24M>; 2381 power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_USB_PHY2>; 2382 #phy-cells = <0>; 2383 status = "disabled"; 2384 }; 2385 2386 usb3_1: usb@32f10108 { 2387 compatible = "fsl,imx8mp-dwc3"; 2388 reg = <0x32f10108 0x8>, 2389 <0x382f0000 0x20>; 2390 clocks = <&clk IMX8MP_CLK_HSIO_ROOT>, 2391 <&clk IMX8MP_CLK_USB_SUSP>; 2392 clock-names = "hsio", "suspend"; 2393 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>; 2394 power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_USB>; 2395 #address-cells = <1>; 2396 #size-cells = <1>; 2397 dma-ranges = <0x40000000 0x40000000 0xc0000000>; 2398 ranges; 2399 status = "disabled"; 2400 2401 usb_dwc3_1: usb@38200000 { 2402 compatible = "snps,dwc3"; 2403 reg = <0x38200000 0x10000>; 2404 clocks = <&clk IMX8MP_CLK_USB_ROOT>, 2405 <&clk IMX8MP_CLK_USB_CORE_REF>, 2406 <&clk IMX8MP_CLK_USB_SUSP>; 2407 clock-names = "bus_early", "ref", "suspend"; 2408 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 2409 phys = <&usb3_phy1>, <&usb3_phy1>; 2410 phy-names = "usb2-phy", "usb3-phy"; 2411 snps,gfladj-refclk-lpm-sel-quirk; 2412 snps,parkmode-disable-ss-quirk; 2413 }; 2414 }; 2415 2416 dsp: dsp@3b6e8000 { 2417 compatible = "fsl,imx8mp-dsp"; 2418 reg = <0x3b6e8000 0x88000>; 2419 mbox-names = "txdb0", "txdb1", 2420 "rxdb0", "rxdb1"; 2421 mboxes = <&mu2 2 0>, <&mu2 2 1>, 2422 <&mu2 3 0>, <&mu2 3 1>; 2423 memory-region = <&dsp_reserved>; 2424 status = "disabled"; 2425 }; 2426 }; 2427}; 2428