1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
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>
15 #include "imx8mp-pinfunc.h"
18 interrupt-parent = <&gic>;
52 compatible = "arm,cortex-a53";
54 clock-latency = <61036>;
55 clocks = <&clk IMX8MP_CLK_ARM>;
56 enable-method = "psci";
57 i-cache-size = <0x8000>;
58 i-cache-line-size = <64>;
60 d-cache-size = <0x8000>;
61 d-cache-line-size = <64>;
63 next-level-cache = <&A53_L2>;
64 nvmem-cells = <&cpu_speed_grade>;
65 nvmem-cell-names = "speed_grade";
66 operating-points-v2 = <&a53_opp_table>;
72 compatible = "arm,cortex-a53";
74 clock-latency = <61036>;
75 clocks = <&clk IMX8MP_CLK_ARM>;
76 enable-method = "psci";
77 i-cache-size = <0x8000>;
78 i-cache-line-size = <64>;
80 d-cache-size = <0x8000>;
81 d-cache-line-size = <64>;
83 next-level-cache = <&A53_L2>;
84 operating-points-v2 = <&a53_opp_table>;
90 compatible = "arm,cortex-a53";
92 clock-latency = <61036>;
93 clocks = <&clk IMX8MP_CLK_ARM>;
94 enable-method = "psci";
95 i-cache-size = <0x8000>;
96 i-cache-line-size = <64>;
98 d-cache-size = <0x8000>;
99 d-cache-line-size = <64>;
100 d-cache-sets = <128>;
101 next-level-cache = <&A53_L2>;
102 operating-points-v2 = <&a53_opp_table>;
103 #cooling-cells = <2>;
108 compatible = "arm,cortex-a53";
110 clock-latency = <61036>;
111 clocks = <&clk IMX8MP_CLK_ARM>;
112 enable-method = "psci";
113 i-cache-size = <0x8000>;
114 i-cache-line-size = <64>;
115 i-cache-sets = <256>;
116 d-cache-size = <0x8000>;
117 d-cache-line-size = <64>;
118 d-cache-sets = <128>;
119 next-level-cache = <&A53_L2>;
120 operating-points-v2 = <&a53_opp_table>;
121 #cooling-cells = <2>;
125 compatible = "cache";
128 cache-size = <0x80000>;
129 cache-line-size = <64>;
134 a53_opp_table: opp-table {
135 compatible = "operating-points-v2";
139 opp-hz = /bits/ 64 <1200000000>;
140 opp-microvolt = <850000>;
141 opp-supported-hw = <0x8a0>, <0x7>;
142 clock-latency-ns = <150000>;
147 opp-hz = /bits/ 64 <1600000000>;
148 opp-microvolt = <950000>;
149 opp-supported-hw = <0xa0>, <0x7>;
150 clock-latency-ns = <150000>;
155 opp-hz = /bits/ 64 <1800000000>;
156 opp-microvolt = <1000000>;
157 opp-supported-hw = <0x20>, <0x3>;
158 clock-latency-ns = <150000>;
163 osc_32k: clock-osc-32k {
164 compatible = "fixed-clock";
166 clock-frequency = <32768>;
167 clock-output-names = "osc_32k";
170 osc_24m: clock-osc-24m {
171 compatible = "fixed-clock";
173 clock-frequency = <24000000>;
174 clock-output-names = "osc_24m";
177 clk_ext1: clock-ext1 {
178 compatible = "fixed-clock";
180 clock-frequency = <133000000>;
181 clock-output-names = "clk_ext1";
184 clk_ext2: clock-ext2 {
185 compatible = "fixed-clock";
187 clock-frequency = <133000000>;
188 clock-output-names = "clk_ext2";
191 clk_ext3: clock-ext3 {
192 compatible = "fixed-clock";
194 clock-frequency = <133000000>;
195 clock-output-names = "clk_ext3";
198 clk_ext4: clock-ext4 {
199 compatible = "fixed-clock";
201 clock-frequency = <133000000>;
202 clock-output-names = "clk_ext4";
206 #address-cells = <2>;
210 dsp_reserved: dsp@92400000 {
211 reg = <0 0x92400000 0 0x2000000>;
217 compatible = "arm,cortex-a53-pmu";
218 interrupts = <GIC_PPI 7
219 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
223 compatible = "arm,psci-1.0";
229 polling-delay-passive = <250>;
230 polling-delay = <2000>;
231 thermal-sensors = <&tmu 0>;
234 temperature = <85000>;
240 temperature = <95000>;
248 trip = <&cpu_alert0>;
250 <&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
251 <&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
252 <&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
253 <&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
259 polling-delay-passive = <250>;
260 polling-delay = <2000>;
261 thermal-sensors = <&tmu 1>;
264 temperature = <85000>;
270 temperature = <95000>;
278 trip = <&soc_alert0>;
280 <&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
281 <&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
282 <&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
283 <&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
290 compatible = "arm,armv8-timer";
291 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
292 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
293 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
294 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
295 clock-frequency = <8000000>;
296 arm,no-tick-in-suspend;
300 compatible = "fsl,imx8mp-soc", "simple-bus";
301 #address-cells = <1>;
303 ranges = <0x0 0x0 0x0 0x3e000000>;
304 nvmem-cells = <&imx8mp_uid>;
305 nvmem-cell-names = "soc_unique_id";
308 compatible = "arm,coresight-etm4x", "arm,primecell";
309 reg = <0x28440000 0x1000>;
311 clocks = <&clk IMX8MP_CLK_MAIN_AXI>;
312 clock-names = "apb_pclk";
316 etm0_out_port: endpoint {
317 remote-endpoint = <&ca_funnel_in_port0>;
324 compatible = "arm,coresight-etm4x", "arm,primecell";
325 reg = <0x28540000 0x1000>;
327 clocks = <&clk IMX8MP_CLK_MAIN_AXI>;
328 clock-names = "apb_pclk";
332 etm1_out_port: endpoint {
333 remote-endpoint = <&ca_funnel_in_port1>;
340 compatible = "arm,coresight-etm4x", "arm,primecell";
341 reg = <0x28640000 0x1000>;
343 clocks = <&clk IMX8MP_CLK_MAIN_AXI>;
344 clock-names = "apb_pclk";
348 etm2_out_port: endpoint {
349 remote-endpoint = <&ca_funnel_in_port2>;
356 compatible = "arm,coresight-etm4x", "arm,primecell";
357 reg = <0x28740000 0x1000>;
359 clocks = <&clk IMX8MP_CLK_MAIN_AXI>;
360 clock-names = "apb_pclk";
364 etm3_out_port: endpoint {
365 remote-endpoint = <&ca_funnel_in_port3>;
373 * non-configurable funnel don't show up on the AMBA
374 * bus. As such no need to add "arm,primecell".
376 compatible = "arm,coresight-static-funnel";
379 #address-cells = <1>;
385 ca_funnel_in_port0: endpoint {
386 remote-endpoint = <&etm0_out_port>;
393 ca_funnel_in_port1: endpoint {
394 remote-endpoint = <&etm1_out_port>;
401 ca_funnel_in_port2: endpoint {
402 remote-endpoint = <&etm2_out_port>;
409 ca_funnel_in_port3: endpoint {
410 remote-endpoint = <&etm3_out_port>;
417 ca_funnel_out_port0: endpoint {
418 remote-endpoint = <&hugo_funnel_in_port0>;
425 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
426 reg = <0x28c03000 0x1000>;
427 clocks = <&clk IMX8MP_CLK_MAIN_AXI>;
428 clock-names = "apb_pclk";
431 #address-cells = <1>;
437 hugo_funnel_in_port0: endpoint {
438 remote-endpoint = <&ca_funnel_out_port0>;
445 hugo_funnel_in_port1: endpoint {
453 hugo_funnel_in_port2: endpoint {
457 /* the other input ports are not connect to anything */
462 hugo_funnel_out_port0: endpoint {
463 remote-endpoint = <&etf_in_port>;
470 compatible = "arm,coresight-tmc", "arm,primecell";
471 reg = <0x28c04000 0x1000>;
472 clocks = <&clk IMX8MP_CLK_MAIN_AXI>;
473 clock-names = "apb_pclk";
477 etf_in_port: endpoint {
478 remote-endpoint = <&hugo_funnel_out_port0>;
485 etf_out_port: endpoint {
486 remote-endpoint = <&etr_in_port>;
493 compatible = "arm,coresight-tmc", "arm,primecell";
494 reg = <0x28c06000 0x1000>;
495 clocks = <&clk IMX8MP_CLK_MAIN_AXI>;
496 clock-names = "apb_pclk";
500 etr_in_port: endpoint {
501 remote-endpoint = <&etf_out_port>;
507 aips1: bus@30000000 {
508 compatible = "fsl,aips-bus", "simple-bus";
509 reg = <0x30000000 0x400000>;
510 #address-cells = <1>;
514 gpio1: gpio@30200000 {
515 compatible = "fsl,imx8mp-gpio", "fsl,imx35-gpio";
516 reg = <0x30200000 0x10000>;
517 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>,
518 <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
519 clocks = <&clk IMX8MP_CLK_GPIO1_ROOT>;
522 interrupt-controller;
523 #interrupt-cells = <2>;
524 gpio-ranges = <&iomuxc 0 5 30>;
527 gpio2: gpio@30210000 {
528 compatible = "fsl,imx8mp-gpio", "fsl,imx35-gpio";
529 reg = <0x30210000 0x10000>;
530 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
531 <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
532 clocks = <&clk IMX8MP_CLK_GPIO2_ROOT>;
535 interrupt-controller;
536 #interrupt-cells = <2>;
537 gpio-ranges = <&iomuxc 0 35 21>;
540 gpio3: gpio@30220000 {
541 compatible = "fsl,imx8mp-gpio", "fsl,imx35-gpio";
542 reg = <0x30220000 0x10000>;
543 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
544 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
545 clocks = <&clk IMX8MP_CLK_GPIO3_ROOT>;
548 interrupt-controller;
549 #interrupt-cells = <2>;
550 gpio-ranges = <&iomuxc 0 56 26>, <&iomuxc 26 144 4>;
553 gpio4: gpio@30230000 {
554 compatible = "fsl,imx8mp-gpio", "fsl,imx35-gpio";
555 reg = <0x30230000 0x10000>;
556 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
557 <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
558 clocks = <&clk IMX8MP_CLK_GPIO4_ROOT>;
561 interrupt-controller;
562 #interrupt-cells = <2>;
563 gpio-ranges = <&iomuxc 0 82 32>;
566 gpio5: gpio@30240000 {
567 compatible = "fsl,imx8mp-gpio", "fsl,imx35-gpio";
568 reg = <0x30240000 0x10000>;
569 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
570 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
571 clocks = <&clk IMX8MP_CLK_GPIO5_ROOT>;
574 interrupt-controller;
575 #interrupt-cells = <2>;
576 gpio-ranges = <&iomuxc 0 114 30>;
580 compatible = "fsl,imx8mp-tmu";
581 reg = <0x30260000 0x10000>;
582 clocks = <&clk IMX8MP_CLK_TSENSOR_ROOT>;
583 nvmem-cells = <&tmu_calib>;
584 nvmem-cell-names = "calib";
585 #thermal-sensor-cells = <1>;
588 wdog1: watchdog@30280000 {
589 compatible = "fsl,imx8mp-wdt", "fsl,imx21-wdt";
590 reg = <0x30280000 0x10000>;
591 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
592 clocks = <&clk IMX8MP_CLK_WDOG1_ROOT>;
596 wdog2: watchdog@30290000 {
597 compatible = "fsl,imx8mp-wdt", "fsl,imx21-wdt";
598 reg = <0x30290000 0x10000>;
599 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
600 clocks = <&clk IMX8MP_CLK_WDOG2_ROOT>;
604 wdog3: watchdog@302a0000 {
605 compatible = "fsl,imx8mp-wdt", "fsl,imx21-wdt";
606 reg = <0x302a0000 0x10000>;
607 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
608 clocks = <&clk IMX8MP_CLK_WDOG3_ROOT>;
612 gpt1: timer@302d0000 {
613 compatible = "fsl,imx8mp-gpt", "fsl,imx6dl-gpt";
614 reg = <0x302d0000 0x10000>;
615 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
616 clocks = <&clk IMX8MP_CLK_GPT1_ROOT>, <&clk IMX8MP_CLK_GPT1>;
617 clock-names = "ipg", "per";
620 gpt2: timer@302e0000 {
621 compatible = "fsl,imx8mp-gpt", "fsl,imx6dl-gpt";
622 reg = <0x302e0000 0x10000>;
623 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
624 clocks = <&clk IMX8MP_CLK_GPT2_ROOT>, <&clk IMX8MP_CLK_GPT2>;
625 clock-names = "ipg", "per";
628 gpt3: timer@302f0000 {
629 compatible = "fsl,imx8mp-gpt", "fsl,imx6dl-gpt";
630 reg = <0x302f0000 0x10000>;
631 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
632 clocks = <&clk IMX8MP_CLK_GPT3_ROOT>, <&clk IMX8MP_CLK_GPT3>;
633 clock-names = "ipg", "per";
636 iomuxc: pinctrl@30330000 {
637 compatible = "fsl,imx8mp-iomuxc";
638 reg = <0x30330000 0x10000>;
641 gpr: syscon@30340000 {
642 compatible = "fsl,imx8mp-iomuxc-gpr", "syscon";
643 reg = <0x30340000 0x10000>;
646 ocotp: efuse@30350000 {
647 compatible = "fsl,imx8mp-ocotp", "fsl,imx8mm-ocotp", "syscon";
648 reg = <0x30350000 0x10000>;
649 clocks = <&clk IMX8MP_CLK_OCOTP_ROOT>;
650 /* For nvmem subnodes */
651 #address-cells = <1>;
655 * The register address below maps to the MX8M
656 * Fusemap Description Table entries this way.
660 * Fuse Address = (ADDR * 4) + 0x400
661 * Note that if SIZE is greater than 4, then
662 * each subsequent fuse is located at offset
663 * +0x10 in Fusemap Description Table (e.g.
664 * reg = <0x8 0x8> describes fuses 0x420 and
667 imx8mp_uid: unique-id@8 { /* 0x420-0x430 */
671 cpu_speed_grade: speed-grade@10 { /* 0x440 */
675 eth_mac1: mac-address@90 { /* 0x640 */
679 eth_mac2: mac-address@96 { /* 0x658 */
683 tmu_calib: calib@264 { /* 0xd90-0xdc0 */
688 anatop: clock-controller@30360000 {
689 compatible = "fsl,imx8mp-anatop", "fsl,imx8mm-anatop";
690 reg = <0x30360000 0x10000>;
694 snvs: snvs@30370000 {
695 compatible = "fsl,sec-v4.0-mon","syscon", "simple-mfd";
696 reg = <0x30370000 0x10000>;
698 snvs_rtc: snvs-rtc-lp {
699 compatible = "fsl,sec-v4.0-mon-rtc-lp";
702 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
703 <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
704 clocks = <&clk IMX8MP_CLK_SNVS_ROOT>;
705 clock-names = "snvs-rtc";
708 snvs_pwrkey: snvs-powerkey {
709 compatible = "fsl,sec-v4.0-pwrkey";
711 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
712 clocks = <&clk IMX8MP_CLK_SNVS_ROOT>;
713 clock-names = "snvs-pwrkey";
714 linux,keycode = <KEY_POWER>;
719 snvs_lpgpr: snvs-lpgpr {
720 compatible = "fsl,imx8mp-snvs-lpgpr",
721 "fsl,imx7d-snvs-lpgpr";
725 clk: clock-controller@30380000 {
726 compatible = "fsl,imx8mp-ccm";
727 reg = <0x30380000 0x10000>;
729 clocks = <&osc_32k>, <&osc_24m>, <&clk_ext1>, <&clk_ext2>,
730 <&clk_ext3>, <&clk_ext4>;
731 clock-names = "osc_32k", "osc_24m", "clk_ext1", "clk_ext2",
732 "clk_ext3", "clk_ext4";
733 assigned-clocks = <&clk IMX8MP_CLK_A53_SRC>,
734 <&clk IMX8MP_CLK_A53_CORE>,
735 <&clk IMX8MP_CLK_NOC>,
736 <&clk IMX8MP_CLK_NOC_IO>,
737 <&clk IMX8MP_CLK_GIC>;
738 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>,
739 <&clk IMX8MP_ARM_PLL_OUT>,
740 <&clk IMX8MP_SYS_PLL2_1000M>,
741 <&clk IMX8MP_SYS_PLL1_800M>,
742 <&clk IMX8MP_SYS_PLL2_500M>;
743 assigned-clock-rates = <0>, <0>,
749 src: reset-controller@30390000 {
750 compatible = "fsl,imx8mp-src", "syscon";
751 reg = <0x30390000 0x10000>;
752 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
757 compatible = "fsl,imx8mp-gpc";
758 reg = <0x303a0000 0x1000>;
759 interrupt-parent = <&gic>;
760 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
761 interrupt-controller;
762 #interrupt-cells = <3>;
765 #address-cells = <1>;
768 pgc_mipi_phy1: power-domain@0 {
769 #power-domain-cells = <0>;
770 reg = <IMX8MP_POWER_DOMAIN_MIPI_PHY1>;
773 pgc_pcie_phy: power-domain@1 {
774 #power-domain-cells = <0>;
775 reg = <IMX8MP_POWER_DOMAIN_PCIE_PHY>;
778 pgc_usb1_phy: power-domain@2 {
779 #power-domain-cells = <0>;
780 reg = <IMX8MP_POWER_DOMAIN_USB1_PHY>;
783 pgc_usb2_phy: power-domain@3 {
784 #power-domain-cells = <0>;
785 reg = <IMX8MP_POWER_DOMAIN_USB2_PHY>;
788 pgc_audio: power-domain@5 {
789 #power-domain-cells = <0>;
790 reg = <IMX8MP_POWER_DOMAIN_AUDIOMIX>;
791 clocks = <&clk IMX8MP_CLK_AUDIO_ROOT>,
792 <&clk IMX8MP_CLK_AUDIO_AXI>;
793 assigned-clocks = <&clk IMX8MP_CLK_AUDIO_AHB>,
794 <&clk IMX8MP_CLK_AUDIO_AXI_SRC>;
795 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>,
796 <&clk IMX8MP_SYS_PLL1_800M>;
797 assigned-clock-rates = <400000000>,
801 pgc_gpu2d: power-domain@6 {
802 #power-domain-cells = <0>;
803 reg = <IMX8MP_POWER_DOMAIN_GPU2D>;
804 clocks = <&clk IMX8MP_CLK_GPU2D_ROOT>;
805 power-domains = <&pgc_gpumix>;
808 pgc_gpumix: power-domain@7 {
809 #power-domain-cells = <0>;
810 reg = <IMX8MP_POWER_DOMAIN_GPUMIX>;
811 clocks = <&clk IMX8MP_CLK_GPU_ROOT>,
812 <&clk IMX8MP_CLK_GPU_AHB>;
813 assigned-clocks = <&clk IMX8MP_CLK_GPU_AXI>,
814 <&clk IMX8MP_CLK_GPU_AHB>;
815 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>,
816 <&clk IMX8MP_SYS_PLL1_800M>;
817 assigned-clock-rates = <800000000>, <400000000>;
820 pgc_gpu3d: power-domain@9 {
821 #power-domain-cells = <0>;
822 reg = <IMX8MP_POWER_DOMAIN_GPU3D>;
823 clocks = <&clk IMX8MP_CLK_GPU3D_ROOT>,
824 <&clk IMX8MP_CLK_GPU3D_SHADER_CORE>;
825 power-domains = <&pgc_gpumix>;
828 pgc_mediamix: power-domain@10 {
829 #power-domain-cells = <0>;
830 reg = <IMX8MP_POWER_DOMAIN_MEDIAMIX>;
831 clocks = <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
832 <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
835 pgc_mipi_phy2: power-domain@16 {
836 #power-domain-cells = <0>;
837 reg = <IMX8MP_POWER_DOMAIN_MIPI_PHY2>;
840 pgc_hsiomix: power-domain@17 {
841 #power-domain-cells = <0>;
842 reg = <IMX8MP_POWER_DOMAIN_HSIOMIX>;
843 clocks = <&clk IMX8MP_CLK_HSIO_AXI>,
844 <&clk IMX8MP_CLK_HSIO_ROOT>;
845 assigned-clocks = <&clk IMX8MP_CLK_HSIO_AXI>;
846 assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>;
847 assigned-clock-rates = <500000000>;
850 pgc_ispdwp: power-domain@18 {
851 #power-domain-cells = <0>;
852 reg = <IMX8MP_POWER_DOMAIN_MEDIAMIX_ISPDWP>;
853 clocks = <&clk IMX8MP_CLK_MEDIA_ISP_ROOT>;
856 pgc_vpumix: power-domain@19 {
857 #power-domain-cells = <0>;
858 reg = <IMX8MP_POWER_DOMAIN_VPUMIX>;
859 clocks = <&clk IMX8MP_CLK_VPU_ROOT>;
862 pgc_vpu_g1: power-domain@20 {
863 #power-domain-cells = <0>;
864 power-domains = <&pgc_vpumix>;
865 reg = <IMX8MP_POWER_DOMAIN_VPU_G1>;
866 clocks = <&clk IMX8MP_CLK_VPU_G1_ROOT>;
869 pgc_vpu_g2: power-domain@21 {
870 #power-domain-cells = <0>;
871 power-domains = <&pgc_vpumix>;
872 reg = <IMX8MP_POWER_DOMAIN_VPU_G2>;
873 clocks = <&clk IMX8MP_CLK_VPU_G2_ROOT>;
876 pgc_vpu_vc8000e: power-domain@22 {
877 #power-domain-cells = <0>;
878 power-domains = <&pgc_vpumix>;
879 reg = <IMX8MP_POWER_DOMAIN_VPU_VC8000E>;
880 clocks = <&clk IMX8MP_CLK_VPU_VC8KE_ROOT>;
883 pgc_mlmix: power-domain@24 {
884 #power-domain-cells = <0>;
885 reg = <IMX8MP_POWER_DOMAIN_MLMIX>;
886 clocks = <&clk IMX8MP_CLK_ML_AXI>,
887 <&clk IMX8MP_CLK_ML_AHB>,
888 <&clk IMX8MP_CLK_NPU_ROOT>;
894 aips2: bus@30400000 {
895 compatible = "fsl,aips-bus", "simple-bus";
896 reg = <0x30400000 0x400000>;
897 #address-cells = <1>;
902 compatible = "fsl,imx8mp-pwm", "fsl,imx27-pwm";
903 reg = <0x30660000 0x10000>;
904 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
905 clocks = <&clk IMX8MP_CLK_PWM1_ROOT>,
906 <&clk IMX8MP_CLK_PWM1_ROOT>;
907 clock-names = "ipg", "per";
913 compatible = "fsl,imx8mp-pwm", "fsl,imx27-pwm";
914 reg = <0x30670000 0x10000>;
915 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
916 clocks = <&clk IMX8MP_CLK_PWM2_ROOT>,
917 <&clk IMX8MP_CLK_PWM2_ROOT>;
918 clock-names = "ipg", "per";
924 compatible = "fsl,imx8mp-pwm", "fsl,imx27-pwm";
925 reg = <0x30680000 0x10000>;
926 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
927 clocks = <&clk IMX8MP_CLK_PWM3_ROOT>,
928 <&clk IMX8MP_CLK_PWM3_ROOT>;
929 clock-names = "ipg", "per";
935 compatible = "fsl,imx8mp-pwm", "fsl,imx27-pwm";
936 reg = <0x30690000 0x10000>;
937 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
938 clocks = <&clk IMX8MP_CLK_PWM4_ROOT>,
939 <&clk IMX8MP_CLK_PWM4_ROOT>;
940 clock-names = "ipg", "per";
945 system_counter: timer@306a0000 {
946 compatible = "nxp,sysctr-timer";
947 reg = <0x306a0000 0x20000>;
948 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
953 gpt6: timer@306e0000 {
954 compatible = "fsl,imx8mp-gpt", "fsl,imx6dl-gpt";
955 reg = <0x306e0000 0x10000>;
956 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
957 clocks = <&clk IMX8MP_CLK_GPT6_ROOT>, <&clk IMX8MP_CLK_GPT6>;
958 clock-names = "ipg", "per";
961 gpt5: timer@306f0000 {
962 compatible = "fsl,imx8mp-gpt", "fsl,imx6dl-gpt";
963 reg = <0x306f0000 0x10000>;
964 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
965 clocks = <&clk IMX8MP_CLK_GPT5_ROOT>, <&clk IMX8MP_CLK_GPT5>;
966 clock-names = "ipg", "per";
969 gpt4: timer@30700000 {
970 compatible = "fsl,imx8mp-gpt", "fsl,imx6dl-gpt";
971 reg = <0x30700000 0x10000>;
972 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
973 clocks = <&clk IMX8MP_CLK_GPT4_ROOT>, <&clk IMX8MP_CLK_GPT4>;
974 clock-names = "ipg", "per";
978 aips3: bus@30800000 {
979 compatible = "fsl,aips-bus", "simple-bus";
980 reg = <0x30800000 0x400000>;
981 #address-cells = <1>;
986 compatible = "fsl,spba-bus", "simple-bus";
987 reg = <0x30800000 0x100000>;
988 #address-cells = <1>;
992 ecspi1: spi@30820000 {
993 #address-cells = <1>;
995 compatible = "fsl,imx8mp-ecspi", "fsl,imx6ul-ecspi";
996 reg = <0x30820000 0x10000>;
997 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
998 clocks = <&clk IMX8MP_CLK_ECSPI1_ROOT>,
999 <&clk IMX8MP_CLK_ECSPI1_ROOT>;
1000 clock-names = "ipg", "per";
1001 assigned-clock-rates = <80000000>;
1002 assigned-clocks = <&clk IMX8MP_CLK_ECSPI1>;
1003 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>;
1004 dmas = <&sdma1 0 7 1>, <&sdma1 1 7 2>;
1005 dma-names = "rx", "tx";
1006 status = "disabled";
1009 ecspi2: spi@30830000 {
1010 #address-cells = <1>;
1012 compatible = "fsl,imx8mp-ecspi", "fsl,imx6ul-ecspi";
1013 reg = <0x30830000 0x10000>;
1014 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
1015 clocks = <&clk IMX8MP_CLK_ECSPI2_ROOT>,
1016 <&clk IMX8MP_CLK_ECSPI2_ROOT>;
1017 clock-names = "ipg", "per";
1018 assigned-clock-rates = <80000000>;
1019 assigned-clocks = <&clk IMX8MP_CLK_ECSPI2>;
1020 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>;
1021 dmas = <&sdma1 2 7 1>, <&sdma1 3 7 2>;
1022 dma-names = "rx", "tx";
1023 status = "disabled";
1026 ecspi3: spi@30840000 {
1027 #address-cells = <1>;
1029 compatible = "fsl,imx8mp-ecspi", "fsl,imx6ul-ecspi";
1030 reg = <0x30840000 0x10000>;
1031 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
1032 clocks = <&clk IMX8MP_CLK_ECSPI3_ROOT>,
1033 <&clk IMX8MP_CLK_ECSPI3_ROOT>;
1034 clock-names = "ipg", "per";
1035 assigned-clock-rates = <80000000>;
1036 assigned-clocks = <&clk IMX8MP_CLK_ECSPI3>;
1037 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>;
1038 dmas = <&sdma1 4 7 1>, <&sdma1 5 7 2>;
1039 dma-names = "rx", "tx";
1040 status = "disabled";
1043 uart1: serial@30860000 {
1044 compatible = "fsl,imx8mp-uart", "fsl,imx6q-uart";
1045 reg = <0x30860000 0x10000>;
1046 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
1047 clocks = <&clk IMX8MP_CLK_UART1_ROOT>,
1048 <&clk IMX8MP_CLK_UART1_ROOT>;
1049 clock-names = "ipg", "per";
1050 dmas = <&sdma1 22 4 0>, <&sdma1 23 4 0>;
1051 dma-names = "rx", "tx";
1052 status = "disabled";
1055 uart3: serial@30880000 {
1056 compatible = "fsl,imx8mp-uart", "fsl,imx6q-uart";
1057 reg = <0x30880000 0x10000>;
1058 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
1059 clocks = <&clk IMX8MP_CLK_UART3_ROOT>,
1060 <&clk IMX8MP_CLK_UART3_ROOT>;
1061 clock-names = "ipg", "per";
1062 dmas = <&sdma1 26 4 0>, <&sdma1 27 4 0>;
1063 dma-names = "rx", "tx";
1064 status = "disabled";
1067 uart2: serial@30890000 {
1068 compatible = "fsl,imx8mp-uart", "fsl,imx6q-uart";
1069 reg = <0x30890000 0x10000>;
1070 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
1071 clocks = <&clk IMX8MP_CLK_UART2_ROOT>,
1072 <&clk IMX8MP_CLK_UART2_ROOT>;
1073 clock-names = "ipg", "per";
1074 dmas = <&sdma1 24 4 0>, <&sdma1 25 4 0>;
1075 dma-names = "rx", "tx";
1076 status = "disabled";
1079 flexcan1: can@308c0000 {
1080 compatible = "fsl,imx8mp-flexcan";
1081 reg = <0x308c0000 0x10000>;
1082 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
1083 clocks = <&clk IMX8MP_CLK_IPG_ROOT>,
1084 <&clk IMX8MP_CLK_CAN1_ROOT>;
1085 clock-names = "ipg", "per";
1086 assigned-clocks = <&clk IMX8MP_CLK_CAN1>;
1087 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_40M>;
1088 assigned-clock-rates = <40000000>;
1089 fsl,clk-source = /bits/ 8 <0>;
1090 fsl,stop-mode = <&gpr 0x10 4>;
1091 status = "disabled";
1094 flexcan2: can@308d0000 {
1095 compatible = "fsl,imx8mp-flexcan";
1096 reg = <0x308d0000 0x10000>;
1097 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
1098 clocks = <&clk IMX8MP_CLK_IPG_ROOT>,
1099 <&clk IMX8MP_CLK_CAN2_ROOT>;
1100 clock-names = "ipg", "per";
1101 assigned-clocks = <&clk IMX8MP_CLK_CAN2>;
1102 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_40M>;
1103 assigned-clock-rates = <40000000>;
1104 fsl,clk-source = /bits/ 8 <0>;
1105 fsl,stop-mode = <&gpr 0x10 5>;
1106 status = "disabled";
1110 crypto: crypto@30900000 {
1111 compatible = "fsl,sec-v4.0";
1112 #address-cells = <1>;
1114 reg = <0x30900000 0x40000>;
1115 ranges = <0 0x30900000 0x40000>;
1116 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
1117 clocks = <&clk IMX8MP_CLK_AHB>,
1118 <&clk IMX8MP_CLK_IPG_ROOT>;
1119 clock-names = "aclk", "ipg";
1122 compatible = "fsl,sec-v4.0-job-ring";
1123 reg = <0x1000 0x1000>;
1124 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
1125 status = "disabled";
1129 compatible = "fsl,sec-v4.0-job-ring";
1130 reg = <0x2000 0x1000>;
1131 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
1135 compatible = "fsl,sec-v4.0-job-ring";
1136 reg = <0x3000 0x1000>;
1137 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
1141 i2c1: i2c@30a20000 {
1142 compatible = "fsl,imx8mp-i2c", "fsl,imx21-i2c";
1143 #address-cells = <1>;
1145 reg = <0x30a20000 0x10000>;
1146 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
1147 clocks = <&clk IMX8MP_CLK_I2C1_ROOT>;
1148 status = "disabled";
1151 i2c2: i2c@30a30000 {
1152 compatible = "fsl,imx8mp-i2c", "fsl,imx21-i2c";
1153 #address-cells = <1>;
1155 reg = <0x30a30000 0x10000>;
1156 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
1157 clocks = <&clk IMX8MP_CLK_I2C2_ROOT>;
1158 status = "disabled";
1161 i2c3: i2c@30a40000 {
1162 compatible = "fsl,imx8mp-i2c", "fsl,imx21-i2c";
1163 #address-cells = <1>;
1165 reg = <0x30a40000 0x10000>;
1166 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
1167 clocks = <&clk IMX8MP_CLK_I2C3_ROOT>;
1168 status = "disabled";
1171 i2c4: i2c@30a50000 {
1172 compatible = "fsl,imx8mp-i2c", "fsl,imx21-i2c";
1173 #address-cells = <1>;
1175 reg = <0x30a50000 0x10000>;
1176 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
1177 clocks = <&clk IMX8MP_CLK_I2C4_ROOT>;
1178 status = "disabled";
1181 uart4: serial@30a60000 {
1182 compatible = "fsl,imx8mp-uart", "fsl,imx6q-uart";
1183 reg = <0x30a60000 0x10000>;
1184 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
1185 clocks = <&clk IMX8MP_CLK_UART4_ROOT>,
1186 <&clk IMX8MP_CLK_UART4_ROOT>;
1187 clock-names = "ipg", "per";
1188 dmas = <&sdma1 28 4 0>, <&sdma1 29 4 0>;
1189 dma-names = "rx", "tx";
1190 status = "disabled";
1193 mu: mailbox@30aa0000 {
1194 compatible = "fsl,imx8mp-mu", "fsl,imx6sx-mu";
1195 reg = <0x30aa0000 0x10000>;
1196 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
1197 clocks = <&clk IMX8MP_CLK_MU_ROOT>;
1201 mu2: mailbox@30e60000 {
1202 compatible = "fsl,imx8mp-mu", "fsl,imx6sx-mu";
1203 reg = <0x30e60000 0x10000>;
1204 interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
1206 status = "disabled";
1209 i2c5: i2c@30ad0000 {
1210 compatible = "fsl,imx8mp-i2c", "fsl,imx21-i2c";
1211 #address-cells = <1>;
1213 reg = <0x30ad0000 0x10000>;
1214 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
1215 clocks = <&clk IMX8MP_CLK_I2C5_ROOT>;
1216 status = "disabled";
1219 i2c6: i2c@30ae0000 {
1220 compatible = "fsl,imx8mp-i2c", "fsl,imx21-i2c";
1221 #address-cells = <1>;
1223 reg = <0x30ae0000 0x10000>;
1224 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
1225 clocks = <&clk IMX8MP_CLK_I2C6_ROOT>;
1226 status = "disabled";
1229 usdhc1: mmc@30b40000 {
1230 compatible = "fsl,imx8mp-usdhc", "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc";
1231 reg = <0x30b40000 0x10000>;
1232 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
1233 clocks = <&clk IMX8MP_CLK_DUMMY>,
1234 <&clk IMX8MP_CLK_NAND_USDHC_BUS>,
1235 <&clk IMX8MP_CLK_USDHC1_ROOT>;
1236 clock-names = "ipg", "ahb", "per";
1237 fsl,tuning-start-tap = <20>;
1238 fsl,tuning-step = <2>;
1240 status = "disabled";
1243 usdhc2: mmc@30b50000 {
1244 compatible = "fsl,imx8mp-usdhc", "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc";
1245 reg = <0x30b50000 0x10000>;
1246 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
1247 clocks = <&clk IMX8MP_CLK_DUMMY>,
1248 <&clk IMX8MP_CLK_NAND_USDHC_BUS>,
1249 <&clk IMX8MP_CLK_USDHC2_ROOT>;
1250 clock-names = "ipg", "ahb", "per";
1251 fsl,tuning-start-tap = <20>;
1252 fsl,tuning-step = <2>;
1254 status = "disabled";
1257 usdhc3: mmc@30b60000 {
1258 compatible = "fsl,imx8mp-usdhc", "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc";
1259 reg = <0x30b60000 0x10000>;
1260 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
1261 clocks = <&clk IMX8MP_CLK_DUMMY>,
1262 <&clk IMX8MP_CLK_NAND_USDHC_BUS>,
1263 <&clk IMX8MP_CLK_USDHC3_ROOT>;
1264 clock-names = "ipg", "ahb", "per";
1265 fsl,tuning-start-tap = <20>;
1266 fsl,tuning-step = <2>;
1268 status = "disabled";
1271 flexspi: spi@30bb0000 {
1272 compatible = "nxp,imx8mp-fspi";
1273 reg = <0x30bb0000 0x10000>, <0x8000000 0x10000000>;
1274 reg-names = "fspi_base", "fspi_mmap";
1275 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
1276 clocks = <&clk IMX8MP_CLK_QSPI_ROOT>,
1277 <&clk IMX8MP_CLK_QSPI_ROOT>;
1278 clock-names = "fspi_en", "fspi";
1279 assigned-clock-rates = <80000000>;
1280 assigned-clocks = <&clk IMX8MP_CLK_QSPI>;
1281 #address-cells = <1>;
1283 status = "disabled";
1286 sdma1: dma-controller@30bd0000 {
1287 compatible = "fsl,imx8mp-sdma", "fsl,imx8mq-sdma";
1288 reg = <0x30bd0000 0x10000>;
1289 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
1290 clocks = <&clk IMX8MP_CLK_SDMA1_ROOT>,
1291 <&clk IMX8MP_CLK_AHB>;
1292 clock-names = "ipg", "ahb";
1294 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
1297 fec: ethernet@30be0000 {
1298 compatible = "fsl,imx8mp-fec", "fsl,imx8mq-fec", "fsl,imx6sx-fec";
1299 reg = <0x30be0000 0x10000>;
1300 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
1301 <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
1302 <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
1303 <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
1304 clocks = <&clk IMX8MP_CLK_ENET1_ROOT>,
1305 <&clk IMX8MP_CLK_SIM_ENET_ROOT>,
1306 <&clk IMX8MP_CLK_ENET_TIMER>,
1307 <&clk IMX8MP_CLK_ENET_REF>,
1308 <&clk IMX8MP_CLK_ENET_PHY_REF>;
1309 clock-names = "ipg", "ahb", "ptp",
1310 "enet_clk_ref", "enet_out";
1311 assigned-clocks = <&clk IMX8MP_CLK_ENET_AXI>,
1312 <&clk IMX8MP_CLK_ENET_TIMER>,
1313 <&clk IMX8MP_CLK_ENET_REF>,
1314 <&clk IMX8MP_CLK_ENET_PHY_REF>;
1315 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_266M>,
1316 <&clk IMX8MP_SYS_PLL2_100M>,
1317 <&clk IMX8MP_SYS_PLL2_125M>,
1318 <&clk IMX8MP_SYS_PLL2_50M>;
1319 assigned-clock-rates = <0>, <100000000>, <125000000>, <0>;
1320 fsl,num-tx-queues = <3>;
1321 fsl,num-rx-queues = <3>;
1322 nvmem-cells = <ð_mac1>;
1323 nvmem-cell-names = "mac-address";
1324 fsl,stop-mode = <&gpr 0x10 3>;
1325 status = "disabled";
1328 eqos: ethernet@30bf0000 {
1329 compatible = "nxp,imx8mp-dwmac-eqos", "snps,dwmac-5.10a";
1330 reg = <0x30bf0000 0x10000>;
1331 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
1332 <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
1333 interrupt-names = "macirq", "eth_wake_irq";
1334 clocks = <&clk IMX8MP_CLK_ENET_QOS_ROOT>,
1335 <&clk IMX8MP_CLK_QOS_ENET_ROOT>,
1336 <&clk IMX8MP_CLK_ENET_QOS_TIMER>,
1337 <&clk IMX8MP_CLK_ENET_QOS>;
1338 clock-names = "stmmaceth", "pclk", "ptp_ref", "tx";
1339 assigned-clocks = <&clk IMX8MP_CLK_ENET_AXI>,
1340 <&clk IMX8MP_CLK_ENET_QOS_TIMER>,
1341 <&clk IMX8MP_CLK_ENET_QOS>;
1342 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_266M>,
1343 <&clk IMX8MP_SYS_PLL2_100M>,
1344 <&clk IMX8MP_SYS_PLL2_125M>;
1345 assigned-clock-rates = <0>, <100000000>, <125000000>;
1346 nvmem-cells = <ð_mac2>;
1347 nvmem-cell-names = "mac-address";
1348 intf_mode = <&gpr 0x4>;
1349 status = "disabled";
1353 aips5: bus@30c00000 {
1354 compatible = "fsl,aips-bus", "simple-bus";
1355 reg = <0x30c00000 0x400000>;
1356 #address-cells = <1>;
1361 compatible = "fsl,spba-bus", "simple-bus";
1362 reg = <0x30c00000 0x100000>;
1363 #address-cells = <1>;
1367 sai1: sai@30c10000 {
1368 compatible = "fsl,imx8mp-sai", "fsl,imx8mq-sai";
1369 reg = <0x30c10000 0x10000>;
1370 #sound-dai-cells = <0>;
1371 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_IPG>,
1372 <&clk IMX8MP_CLK_DUMMY>,
1373 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>,
1374 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK2>,
1375 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK3>;
1376 clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
1377 dmas = <&sdma2 0 2 0>, <&sdma2 1 2 0>;
1378 dma-names = "rx", "tx";
1379 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
1380 status = "disabled";
1383 sai2: sai@30c20000 {
1384 compatible = "fsl,imx8mp-sai", "fsl,imx8mq-sai";
1385 reg = <0x30c20000 0x10000>;
1386 #sound-dai-cells = <0>;
1387 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI2_IPG>,
1388 <&clk IMX8MP_CLK_DUMMY>,
1389 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI2_MCLK1>,
1390 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI2_MCLK2>,
1391 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI2_MCLK3>;
1392 clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
1393 dmas = <&sdma2 2 2 0>, <&sdma2 3 2 0>;
1394 dma-names = "rx", "tx";
1395 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1396 status = "disabled";
1399 sai3: sai@30c30000 {
1400 compatible = "fsl,imx8mp-sai", "fsl,imx8mq-sai";
1401 reg = <0x30c30000 0x10000>;
1402 #sound-dai-cells = <0>;
1403 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI3_IPG>,
1404 <&clk IMX8MP_CLK_DUMMY>,
1405 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI3_MCLK1>,
1406 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI3_MCLK2>,
1407 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI3_MCLK3>;
1408 clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
1409 dmas = <&sdma2 4 2 0>, <&sdma2 5 2 0>;
1410 dma-names = "rx", "tx";
1411 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
1412 status = "disabled";
1415 sai5: sai@30c50000 {
1416 compatible = "fsl,imx8mp-sai", "fsl,imx8mq-sai";
1417 reg = <0x30c50000 0x10000>;
1418 #sound-dai-cells = <0>;
1419 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI5_IPG>,
1420 <&clk IMX8MP_CLK_DUMMY>,
1421 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI5_MCLK1>,
1422 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI5_MCLK2>,
1423 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI5_MCLK3>;
1424 clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
1425 dmas = <&sdma2 8 2 0>, <&sdma2 9 2 0>;
1426 dma-names = "rx", "tx";
1427 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
1428 status = "disabled";
1431 sai6: sai@30c60000 {
1432 compatible = "fsl,imx8mp-sai", "fsl,imx8mq-sai";
1433 reg = <0x30c60000 0x10000>;
1434 #sound-dai-cells = <0>;
1435 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI6_IPG>,
1436 <&clk IMX8MP_CLK_DUMMY>,
1437 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI6_MCLK1>,
1438 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI6_MCLK2>,
1439 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI6_MCLK3>;
1440 clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
1441 dmas = <&sdma2 10 2 0>, <&sdma2 11 2 0>;
1442 dma-names = "rx", "tx";
1443 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
1444 status = "disabled";
1447 sai7: sai@30c80000 {
1448 compatible = "fsl,imx8mp-sai", "fsl,imx8mq-sai";
1449 reg = <0x30c80000 0x10000>;
1450 #sound-dai-cells = <0>;
1451 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI7_IPG>,
1452 <&clk IMX8MP_CLK_DUMMY>,
1453 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI7_MCLK1>,
1454 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI7_MCLK2>,
1455 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI7_MCLK3>;
1456 clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
1457 dmas = <&sdma2 12 2 0>, <&sdma2 13 2 0>;
1458 dma-names = "rx", "tx";
1459 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
1460 status = "disabled";
1464 sdma3: dma-controller@30e00000 {
1465 compatible = "fsl,imx8mp-sdma", "fsl,imx8mq-sdma";
1466 reg = <0x30e00000 0x10000>;
1468 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SDMA3_ROOT>,
1469 <&clk IMX8MP_CLK_AUDIO_ROOT>;
1470 clock-names = "ipg", "ahb";
1471 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
1472 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
1475 sdma2: dma-controller@30e10000 {
1476 compatible = "fsl,imx8mp-sdma", "fsl,imx8mq-sdma";
1477 reg = <0x30e10000 0x10000>;
1479 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SDMA2_ROOT>,
1480 <&clk IMX8MP_CLK_AUDIO_ROOT>;
1481 clock-names = "ipg", "ahb";
1482 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
1483 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
1486 audio_blk_ctrl: clock-controller@30e20000 {
1487 compatible = "fsl,imx8mp-audio-blk-ctrl";
1488 reg = <0x30e20000 0x10000>;
1490 clocks = <&clk IMX8MP_CLK_AUDIO_ROOT>,
1491 <&clk IMX8MP_CLK_SAI1>,
1492 <&clk IMX8MP_CLK_SAI2>,
1493 <&clk IMX8MP_CLK_SAI3>,
1494 <&clk IMX8MP_CLK_SAI5>,
1495 <&clk IMX8MP_CLK_SAI6>,
1496 <&clk IMX8MP_CLK_SAI7>;
1497 clock-names = "ahb",
1498 "sai1", "sai2", "sai3",
1499 "sai5", "sai6", "sai7";
1500 power-domains = <&pgc_audio>;
1504 noc: interconnect@32700000 {
1505 compatible = "fsl,imx8mp-noc", "fsl,imx8m-noc";
1506 reg = <0x32700000 0x100000>;
1507 clocks = <&clk IMX8MP_CLK_NOC>;
1508 #interconnect-cells = <1>;
1509 operating-points-v2 = <&noc_opp_table>;
1511 noc_opp_table: opp-table {
1512 compatible = "operating-points-v2";
1515 opp-hz = /bits/ 64 <200000000>;
1519 opp-hz = /bits/ 64 <1000000000>;
1524 aips4: bus@32c00000 {
1525 compatible = "fsl,aips-bus", "simple-bus";
1526 reg = <0x32c00000 0x400000>;
1527 #address-cells = <1>;
1531 isi_0: isi@32e00000 {
1532 compatible = "fsl,imx8mp-isi";
1533 reg = <0x32e00000 0x4000>;
1534 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
1535 <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
1536 clocks = <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
1537 <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
1538 clock-names = "axi", "apb";
1539 fsl,blk-ctrl = <&media_blk_ctrl>;
1540 power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_ISI>;
1541 status = "disabled";
1544 #address-cells = <1>;
1550 isi_in_0: endpoint {
1551 remote-endpoint = <&mipi_csi_0_out>;
1558 isi_in_1: endpoint {
1559 remote-endpoint = <&mipi_csi_1_out>;
1565 dewarp: dwe@32e30000 {
1566 compatible = "nxp,imx8mp-dw100";
1567 reg = <0x32e30000 0x10000>;
1568 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
1569 clocks = <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
1570 <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
1571 clock-names = "axi", "ahb";
1572 power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_DWE>;
1575 mipi_csi_0: csi@32e40000 {
1576 compatible = "fsl,imx8mp-mipi-csi2", "fsl,imx8mm-mipi-csi2";
1577 reg = <0x32e40000 0x10000>;
1578 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
1579 clock-frequency = <500000000>;
1580 clocks = <&clk IMX8MP_CLK_MEDIA_APB_ROOT>,
1581 <&clk IMX8MP_CLK_MEDIA_CAM1_PIX_ROOT>,
1582 <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF_ROOT>,
1583 <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>;
1584 clock-names = "pclk", "wrap", "phy", "axi";
1585 assigned-clocks = <&clk IMX8MP_CLK_MEDIA_CAM1_PIX>;
1586 assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_1000M>;
1587 assigned-clock-rates = <500000000>;
1588 power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_MIPI_CSI2_1>;
1589 status = "disabled";
1592 #address-cells = <1>;
1602 mipi_csi_0_out: endpoint {
1603 remote-endpoint = <&isi_in_0>;
1609 mipi_csi_1: csi@32e50000 {
1610 compatible = "fsl,imx8mp-mipi-csi2", "fsl,imx8mm-mipi-csi2";
1611 reg = <0x32e50000 0x10000>;
1612 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
1613 clock-frequency = <266000000>;
1614 clocks = <&clk IMX8MP_CLK_MEDIA_APB_ROOT>,
1615 <&clk IMX8MP_CLK_MEDIA_CAM2_PIX_ROOT>,
1616 <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF_ROOT>,
1617 <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>;
1618 clock-names = "pclk", "wrap", "phy", "axi";
1619 assigned-clocks = <&clk IMX8MP_CLK_MEDIA_CAM2_PIX>;
1620 assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_1000M>;
1621 assigned-clock-rates = <266000000>;
1622 power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_MIPI_CSI2_2>;
1623 status = "disabled";
1626 #address-cells = <1>;
1636 mipi_csi_1_out: endpoint {
1637 remote-endpoint = <&isi_in_1>;
1643 mipi_dsi: dsi@32e60000 {
1644 compatible = "fsl,imx8mp-mipi-dsim";
1645 reg = <0x32e60000 0x400>;
1646 clocks = <&clk IMX8MP_CLK_MEDIA_APB_ROOT>,
1647 <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF>;
1648 clock-names = "bus_clk", "sclk_mipi";
1649 assigned-clocks = <&clk IMX8MP_CLK_MEDIA_APB>,
1650 <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF>;
1651 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>,
1652 <&clk IMX8MP_CLK_24M>;
1653 assigned-clock-rates = <200000000>, <24000000>;
1654 samsung,pll-clock-frequency = <24000000>;
1655 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
1656 power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_MIPI_DSI_1>;
1657 status = "disabled";
1660 #address-cells = <1>;
1666 dsim_from_lcdif1: endpoint {
1667 remote-endpoint = <&lcdif1_to_dsim>;
1673 lcdif1: display-controller@32e80000 {
1674 compatible = "fsl,imx8mp-lcdif";
1675 reg = <0x32e80000 0x10000>;
1676 clocks = <&clk IMX8MP_CLK_MEDIA_DISP1_PIX_ROOT>,
1677 <&clk IMX8MP_CLK_MEDIA_APB_ROOT>,
1678 <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>;
1679 clock-names = "pix", "axi", "disp_axi";
1680 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
1681 power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_LCDIF_1>;
1682 status = "disabled";
1685 lcdif1_to_dsim: endpoint {
1686 remote-endpoint = <&dsim_from_lcdif1>;
1691 lcdif2: display-controller@32e90000 {
1692 compatible = "fsl,imx8mp-lcdif";
1693 reg = <0x32e90000 0x10000>;
1694 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
1695 clocks = <&clk IMX8MP_CLK_MEDIA_DISP2_PIX_ROOT>,
1696 <&clk IMX8MP_CLK_MEDIA_APB_ROOT>,
1697 <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>;
1698 clock-names = "pix", "axi", "disp_axi";
1699 power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_LCDIF_2>;
1700 status = "disabled";
1703 lcdif2_to_ldb: endpoint {
1704 remote-endpoint = <&ldb_from_lcdif2>;
1709 media_blk_ctrl: blk-ctrl@32ec0000 {
1710 compatible = "fsl,imx8mp-media-blk-ctrl",
1712 reg = <0x32ec0000 0x10000>;
1713 #address-cells = <1>;
1715 power-domains = <&pgc_mediamix>,
1725 power-domain-names = "bus", "mipi-dsi1", "mipi-csi1",
1726 "lcdif1", "isi", "mipi-csi2",
1727 "lcdif2", "isp", "dwe",
1730 <&noc IMX8MP_ICM_LCDIF_RD &noc IMX8MP_ICN_MEDIA>,
1731 <&noc IMX8MP_ICM_LCDIF_WR &noc IMX8MP_ICN_MEDIA>,
1732 <&noc IMX8MP_ICM_ISI0 &noc IMX8MP_ICN_MEDIA>,
1733 <&noc IMX8MP_ICM_ISI1 &noc IMX8MP_ICN_MEDIA>,
1734 <&noc IMX8MP_ICM_ISI2 &noc IMX8MP_ICN_MEDIA>,
1735 <&noc IMX8MP_ICM_ISP0 &noc IMX8MP_ICN_MEDIA>,
1736 <&noc IMX8MP_ICM_ISP1 &noc IMX8MP_ICN_MEDIA>,
1737 <&noc IMX8MP_ICM_DWE &noc IMX8MP_ICN_MEDIA>;
1738 interconnect-names = "lcdif-rd", "lcdif-wr", "isi0",
1739 "isi1", "isi2", "isp0", "isp1",
1741 clocks = <&clk IMX8MP_CLK_MEDIA_APB_ROOT>,
1742 <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
1743 <&clk IMX8MP_CLK_MEDIA_CAM1_PIX_ROOT>,
1744 <&clk IMX8MP_CLK_MEDIA_CAM2_PIX_ROOT>,
1745 <&clk IMX8MP_CLK_MEDIA_DISP1_PIX_ROOT>,
1746 <&clk IMX8MP_CLK_MEDIA_DISP2_PIX_ROOT>,
1747 <&clk IMX8MP_CLK_MEDIA_ISP_ROOT>,
1748 <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF_ROOT>;
1749 clock-names = "apb", "axi", "cam1", "cam2",
1750 "disp1", "disp2", "isp", "phy";
1752 assigned-clocks = <&clk IMX8MP_CLK_MEDIA_AXI>,
1753 <&clk IMX8MP_CLK_MEDIA_APB>,
1754 <&clk IMX8MP_CLK_MEDIA_DISP1_PIX>,
1755 <&clk IMX8MP_CLK_MEDIA_DISP2_PIX>,
1756 <&clk IMX8MP_VIDEO_PLL1>;
1757 assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_1000M>,
1758 <&clk IMX8MP_SYS_PLL1_800M>,
1759 <&clk IMX8MP_VIDEO_PLL1_OUT>,
1760 <&clk IMX8MP_VIDEO_PLL1_OUT>;
1761 assigned-clock-rates = <500000000>, <200000000>,
1762 <0>, <0>, <1039500000>;
1763 #power-domain-cells = <1>;
1765 lvds_bridge: bridge@5c {
1766 compatible = "fsl,imx8mp-ldb";
1767 reg = <0x5c 0x4>, <0x128 0x4>;
1768 reg-names = "ldb", "lvds";
1769 clocks = <&clk IMX8MP_CLK_MEDIA_LDB>;
1770 clock-names = "ldb";
1771 assigned-clocks = <&clk IMX8MP_CLK_MEDIA_LDB>;
1772 assigned-clock-parents = <&clk IMX8MP_VIDEO_PLL1_OUT>;
1773 status = "disabled";
1776 #address-cells = <1>;
1782 ldb_from_lcdif2: endpoint {
1783 remote-endpoint = <&lcdif2_to_ldb>;
1790 ldb_lvds_ch0: endpoint {
1797 ldb_lvds_ch1: endpoint {
1804 pcie_phy: pcie-phy@32f00000 {
1805 compatible = "fsl,imx8mp-pcie-phy";
1806 reg = <0x32f00000 0x10000>;
1807 resets = <&src IMX8MP_RESET_PCIEPHY>,
1808 <&src IMX8MP_RESET_PCIEPHY_PERST>;
1809 reset-names = "pciephy", "perst";
1810 power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_PCIE_PHY>;
1812 status = "disabled";
1815 hsio_blk_ctrl: blk-ctrl@32f10000 {
1816 compatible = "fsl,imx8mp-hsio-blk-ctrl", "syscon";
1817 reg = <0x32f10000 0x24>;
1818 clocks = <&clk IMX8MP_CLK_USB_ROOT>,
1819 <&clk IMX8MP_CLK_PCIE_ROOT>;
1820 clock-names = "usb", "pcie";
1821 power-domains = <&pgc_hsiomix>, <&pgc_hsiomix>,
1822 <&pgc_usb1_phy>, <&pgc_usb2_phy>,
1823 <&pgc_hsiomix>, <&pgc_pcie_phy>;
1824 power-domain-names = "bus", "usb", "usb-phy1",
1825 "usb-phy2", "pcie", "pcie-phy";
1826 interconnects = <&noc IMX8MP_ICM_NOC_PCIE &noc IMX8MP_ICN_HSIO>,
1827 <&noc IMX8MP_ICM_USB1 &noc IMX8MP_ICN_HSIO>,
1828 <&noc IMX8MP_ICM_USB2 &noc IMX8MP_ICN_HSIO>,
1829 <&noc IMX8MP_ICM_PCIE &noc IMX8MP_ICN_HSIO>;
1830 interconnect-names = "noc-pcie", "usb1", "usb2", "pcie";
1831 #power-domain-cells = <1>;
1836 pcie: pcie@33800000 {
1837 compatible = "fsl,imx8mp-pcie";
1838 reg = <0x33800000 0x400000>, <0x1ff00000 0x80000>;
1839 reg-names = "dbi", "config";
1840 clocks = <&clk IMX8MP_CLK_HSIO_ROOT>,
1841 <&clk IMX8MP_CLK_HSIO_AXI>,
1842 <&clk IMX8MP_CLK_PCIE_ROOT>;
1843 clock-names = "pcie", "pcie_bus", "pcie_aux";
1844 assigned-clocks = <&clk IMX8MP_CLK_PCIE_AUX>;
1845 assigned-clock-rates = <10000000>;
1846 assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_50M>;
1847 #address-cells = <3>;
1849 device_type = "pci";
1850 bus-range = <0x00 0xff>;
1851 ranges = <0x81000000 0 0x00000000 0x1ff80000 0 0x00010000>, /* downstream I/O 64KB */
1852 <0x82000000 0 0x18000000 0x18000000 0 0x07f00000>; /* non-prefetchable memory */
1855 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
1856 interrupt-names = "msi";
1857 #interrupt-cells = <1>;
1858 interrupt-map-mask = <0 0 0 0x7>;
1859 interrupt-map = <0 0 0 1 &gic GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
1860 <0 0 0 2 &gic GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
1861 <0 0 0 3 &gic GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
1862 <0 0 0 4 &gic GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
1863 fsl,max-link-speed = <3>;
1864 linux,pci-domain = <0>;
1865 power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_PCIE>;
1866 resets = <&src IMX8MP_RESET_PCIE_CTRL_APPS_EN>,
1867 <&src IMX8MP_RESET_PCIE_CTRL_APPS_TURNOFF>;
1868 reset-names = "apps", "turnoff";
1870 phy-names = "pcie-phy";
1871 status = "disabled";
1874 pcie_ep: pcie-ep@33800000 {
1875 compatible = "fsl,imx8mp-pcie-ep";
1876 reg = <0x33800000 0x000400000>, <0x18000000 0x08000000>;
1877 reg-names = "dbi", "addr_space";
1878 clocks = <&clk IMX8MP_CLK_HSIO_ROOT>,
1879 <&clk IMX8MP_CLK_HSIO_AXI>,
1880 <&clk IMX8MP_CLK_PCIE_ROOT>;
1881 clock-names = "pcie", "pcie_bus", "pcie_aux";
1882 assigned-clocks = <&clk IMX8MP_CLK_PCIE_AUX>;
1883 assigned-clock-rates = <10000000>;
1884 assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_50M>;
1886 interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; /* eDMA */
1887 interrupt-names = "dma";
1888 fsl,max-link-speed = <3>;
1889 power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_PCIE>;
1890 resets = <&src IMX8MP_RESET_PCIE_CTRL_APPS_EN>,
1891 <&src IMX8MP_RESET_PCIE_CTRL_APPS_TURNOFF>;
1892 reset-names = "apps", "turnoff";
1894 phy-names = "pcie-phy";
1895 num-ib-windows = <4>;
1896 num-ob-windows = <4>;
1897 status = "disabled";
1900 gpu3d: gpu@38000000 {
1901 compatible = "vivante,gc";
1902 reg = <0x38000000 0x8000>;
1903 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
1904 clocks = <&clk IMX8MP_CLK_GPU3D_ROOT>,
1905 <&clk IMX8MP_CLK_GPU3D_SHADER_CORE>,
1906 <&clk IMX8MP_CLK_GPU_ROOT>,
1907 <&clk IMX8MP_CLK_GPU_AHB>;
1908 clock-names = "core", "shader", "bus", "reg";
1909 assigned-clocks = <&clk IMX8MP_CLK_GPU3D_CORE>,
1910 <&clk IMX8MP_CLK_GPU3D_SHADER_CORE>;
1911 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>,
1912 <&clk IMX8MP_SYS_PLL1_800M>;
1913 assigned-clock-rates = <800000000>, <800000000>;
1914 power-domains = <&pgc_gpu3d>;
1917 gpu2d: gpu@38008000 {
1918 compatible = "vivante,gc";
1919 reg = <0x38008000 0x8000>;
1920 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
1921 clocks = <&clk IMX8MP_CLK_GPU2D_ROOT>,
1922 <&clk IMX8MP_CLK_GPU_ROOT>,
1923 <&clk IMX8MP_CLK_GPU_AHB>;
1924 clock-names = "core", "bus", "reg";
1925 assigned-clocks = <&clk IMX8MP_CLK_GPU2D_CORE>;
1926 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>;
1927 assigned-clock-rates = <800000000>;
1928 power-domains = <&pgc_gpu2d>;
1931 vpu_g1: video-codec@38300000 {
1932 compatible = "nxp,imx8mm-vpu-g1";
1933 reg = <0x38300000 0x10000>;
1934 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
1935 clocks = <&clk IMX8MP_CLK_VPU_G1_ROOT>;
1936 assigned-clocks = <&clk IMX8MP_CLK_VPU_G1>;
1937 assigned-clock-parents = <&clk IMX8MP_VPU_PLL_OUT>;
1938 assigned-clock-rates = <600000000>;
1939 power-domains = <&vpumix_blk_ctrl IMX8MP_VPUBLK_PD_G1>;
1942 vpu_g2: video-codec@38310000 {
1943 compatible = "nxp,imx8mq-vpu-g2";
1944 reg = <0x38310000 0x10000>;
1945 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
1946 clocks = <&clk IMX8MP_CLK_VPU_G2_ROOT>;
1947 assigned-clocks = <&clk IMX8MP_CLK_VPU_G2>;
1948 assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_1000M>;
1949 assigned-clock-rates = <500000000>;
1950 power-domains = <&vpumix_blk_ctrl IMX8MP_VPUBLK_PD_G2>;
1953 vpumix_blk_ctrl: blk-ctrl@38330000 {
1954 compatible = "fsl,imx8mp-vpu-blk-ctrl", "syscon";
1955 reg = <0x38330000 0x100>;
1956 #power-domain-cells = <1>;
1957 power-domains = <&pgc_vpumix>, <&pgc_vpu_g1>,
1958 <&pgc_vpu_g2>, <&pgc_vpu_vc8000e>;
1959 power-domain-names = "bus", "g1", "g2", "vc8000e";
1960 clocks = <&clk IMX8MP_CLK_VPU_G1_ROOT>,
1961 <&clk IMX8MP_CLK_VPU_G2_ROOT>,
1962 <&clk IMX8MP_CLK_VPU_VC8KE_ROOT>;
1963 clock-names = "g1", "g2", "vc8000e";
1964 assigned-clocks = <&clk IMX8MP_CLK_VPU_BUS>, <&clk IMX8MP_VPU_PLL>;
1965 assigned-clock-parents = <&clk IMX8MP_VPU_PLL_OUT>;
1966 assigned-clock-rates = <600000000>, <600000000>;
1967 interconnects = <&noc IMX8MP_ICM_VPU_G1 &noc IMX8MP_ICN_VIDEO>,
1968 <&noc IMX8MP_ICM_VPU_G2 &noc IMX8MP_ICN_VIDEO>,
1969 <&noc IMX8MP_ICM_VPU_H1 &noc IMX8MP_ICN_VIDEO>;
1970 interconnect-names = "g1", "g2", "vc8000e";
1973 gic: interrupt-controller@38800000 {
1974 compatible = "arm,gic-v3";
1975 reg = <0x38800000 0x10000>,
1976 <0x38880000 0xc0000>;
1977 #interrupt-cells = <3>;
1978 interrupt-controller;
1979 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
1980 interrupt-parent = <&gic>;
1983 edacmc: memory-controller@3d400000 {
1984 compatible = "snps,ddrc-3.80a";
1985 reg = <0x3d400000 0x400000>;
1986 interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
1990 compatible = "fsl,imx8mp-ddr-pmu", "fsl,imx8m-ddr-pmu";
1991 reg = <0x3d800000 0x400000>;
1992 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1995 usb3_phy0: usb-phy@381f0040 {
1996 compatible = "fsl,imx8mp-usb-phy";
1997 reg = <0x381f0040 0x40>;
1998 clocks = <&clk IMX8MP_CLK_USB_PHY_ROOT>;
1999 clock-names = "phy";
2000 assigned-clocks = <&clk IMX8MP_CLK_USB_PHY_REF>;
2001 assigned-clock-parents = <&clk IMX8MP_CLK_24M>;
2002 power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_USB_PHY1>;
2004 status = "disabled";
2007 usb3_0: usb@32f10100 {
2008 compatible = "fsl,imx8mp-dwc3";
2009 reg = <0x32f10100 0x8>,
2011 clocks = <&clk IMX8MP_CLK_HSIO_ROOT>,
2012 <&clk IMX8MP_CLK_USB_SUSP>;
2013 clock-names = "hsio", "suspend";
2014 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
2015 power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_USB>;
2016 #address-cells = <1>;
2018 dma-ranges = <0x40000000 0x40000000 0xc0000000>;
2020 status = "disabled";
2022 usb_dwc3_0: usb@38100000 {
2023 compatible = "snps,dwc3";
2024 reg = <0x38100000 0x10000>;
2025 clocks = <&clk IMX8MP_CLK_USB_ROOT>,
2026 <&clk IMX8MP_CLK_USB_CORE_REF>,
2027 <&clk IMX8MP_CLK_USB_SUSP>;
2028 clock-names = "bus_early", "ref", "suspend";
2029 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
2030 phys = <&usb3_phy0>, <&usb3_phy0>;
2031 phy-names = "usb2-phy", "usb3-phy";
2032 snps,gfladj-refclk-lpm-sel-quirk;
2037 usb3_phy1: usb-phy@382f0040 {
2038 compatible = "fsl,imx8mp-usb-phy";
2039 reg = <0x382f0040 0x40>;
2040 clocks = <&clk IMX8MP_CLK_USB_PHY_ROOT>;
2041 clock-names = "phy";
2042 assigned-clocks = <&clk IMX8MP_CLK_USB_PHY_REF>;
2043 assigned-clock-parents = <&clk IMX8MP_CLK_24M>;
2044 power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_USB_PHY2>;
2046 status = "disabled";
2049 usb3_1: usb@32f10108 {
2050 compatible = "fsl,imx8mp-dwc3";
2051 reg = <0x32f10108 0x8>,
2053 clocks = <&clk IMX8MP_CLK_HSIO_ROOT>,
2054 <&clk IMX8MP_CLK_USB_SUSP>;
2055 clock-names = "hsio", "suspend";
2056 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
2057 power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_USB>;
2058 #address-cells = <1>;
2060 dma-ranges = <0x40000000 0x40000000 0xc0000000>;
2062 status = "disabled";
2064 usb_dwc3_1: usb@38200000 {
2065 compatible = "snps,dwc3";
2066 reg = <0x38200000 0x10000>;
2067 clocks = <&clk IMX8MP_CLK_USB_ROOT>,
2068 <&clk IMX8MP_CLK_USB_CORE_REF>,
2069 <&clk IMX8MP_CLK_USB_SUSP>;
2070 clock-names = "bus_early", "ref", "suspend";
2071 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
2072 phys = <&usb3_phy1>, <&usb3_phy1>;
2073 phy-names = "usb2-phy", "usb3-phy";
2074 snps,gfladj-refclk-lpm-sel-quirk;
2079 compatible = "fsl,imx8mp-dsp";
2080 reg = <0x3b6e8000 0x88000>;
2081 mbox-names = "txdb0", "txdb1",
2083 mboxes = <&mu2 2 0>, <&mu2 2 1>,
2084 <&mu2 3 0>, <&mu2 3 1>;
2085 memory-region = <&dsp_reserved>;
2086 status = "disabled";