1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
3 * Copyright (C) STMicroelectronics 2017 - All Rights Reserved
4 * Author: Ludovic Barre <ludovic.barre@st.com> for STMicroelectronics.
6 #include <dt-bindings/interrupt-controller/arm-gic.h>
7 #include <dt-bindings/clock/stm32mp1-clks.h>
8 #include <dt-bindings/reset/stm32mp1-resets.h>
19 compatible = "arm,cortex-a7";
26 compatible = "arm,psci";
28 cpu_off = <0x84000002>;
29 cpu_on = <0x84000003>;
32 intc: interrupt-controller@a0021000 {
33 compatible = "arm,cortex-a7-gic";
34 #interrupt-cells = <3>;
36 reg = <0xa0021000 0x1000>,
41 compatible = "arm,armv7-timer";
42 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
43 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
44 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
45 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
46 interrupt-parent = <&intc>;
52 compatible = "fixed-clock";
53 clock-frequency = <24000000>;
58 compatible = "fixed-clock";
59 clock-frequency = <64000000>;
64 compatible = "fixed-clock";
65 clock-frequency = <32768>;
70 compatible = "fixed-clock";
71 clock-frequency = <32000>;
76 compatible = "fixed-clock";
77 clock-frequency = <4000000>;
82 cpu_thermal: cpu-thermal {
83 polling-delay-passive = <0>;
85 thermal-sensors = <&dts>;
88 cpu_alert1: cpu-alert1 {
89 temperature = <85000>;
95 temperature = <120000>;
106 booster: regulator-booster {
107 compatible = "st,stm32mp1-booster";
108 st,syscfg = <&syscfg>;
113 compatible = "simple-bus";
114 #address-cells = <1>;
116 interrupt-parent = <&intc>;
119 timers2: timer@40000000 {
120 #address-cells = <1>;
122 compatible = "st,stm32-timers";
123 reg = <0x40000000 0x400>;
124 clocks = <&rcc TIM2_K>;
126 dmas = <&dmamux1 18 0x400 0x1>,
127 <&dmamux1 19 0x400 0x1>,
128 <&dmamux1 20 0x400 0x1>,
129 <&dmamux1 21 0x400 0x1>,
130 <&dmamux1 22 0x400 0x1>;
131 dma-names = "ch1", "ch2", "ch3", "ch4", "up";
135 compatible = "st,stm32-pwm";
141 compatible = "st,stm32h7-timer-trigger";
147 compatible = "st,stm32-timer-counter";
152 timers3: timer@40001000 {
153 #address-cells = <1>;
155 compatible = "st,stm32-timers";
156 reg = <0x40001000 0x400>;
157 clocks = <&rcc TIM3_K>;
159 dmas = <&dmamux1 23 0x400 0x1>,
160 <&dmamux1 24 0x400 0x1>,
161 <&dmamux1 25 0x400 0x1>,
162 <&dmamux1 26 0x400 0x1>,
163 <&dmamux1 27 0x400 0x1>,
164 <&dmamux1 28 0x400 0x1>;
165 dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
169 compatible = "st,stm32-pwm";
175 compatible = "st,stm32h7-timer-trigger";
181 compatible = "st,stm32-timer-counter";
186 timers4: timer@40002000 {
187 #address-cells = <1>;
189 compatible = "st,stm32-timers";
190 reg = <0x40002000 0x400>;
191 clocks = <&rcc TIM4_K>;
193 dmas = <&dmamux1 29 0x400 0x1>,
194 <&dmamux1 30 0x400 0x1>,
195 <&dmamux1 31 0x400 0x1>,
196 <&dmamux1 32 0x400 0x1>;
197 dma-names = "ch1", "ch2", "ch3", "ch4";
201 compatible = "st,stm32-pwm";
207 compatible = "st,stm32h7-timer-trigger";
213 compatible = "st,stm32-timer-counter";
218 timers5: timer@40003000 {
219 #address-cells = <1>;
221 compatible = "st,stm32-timers";
222 reg = <0x40003000 0x400>;
223 clocks = <&rcc TIM5_K>;
225 dmas = <&dmamux1 55 0x400 0x1>,
226 <&dmamux1 56 0x400 0x1>,
227 <&dmamux1 57 0x400 0x1>,
228 <&dmamux1 58 0x400 0x1>,
229 <&dmamux1 59 0x400 0x1>,
230 <&dmamux1 60 0x400 0x1>;
231 dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
235 compatible = "st,stm32-pwm";
241 compatible = "st,stm32h7-timer-trigger";
247 compatible = "st,stm32-timer-counter";
252 timers6: timer@40004000 {
253 #address-cells = <1>;
255 compatible = "st,stm32-timers";
256 reg = <0x40004000 0x400>;
257 clocks = <&rcc TIM6_K>;
259 dmas = <&dmamux1 69 0x400 0x1>;
264 compatible = "st,stm32h7-timer-trigger";
270 timers7: timer@40005000 {
271 #address-cells = <1>;
273 compatible = "st,stm32-timers";
274 reg = <0x40005000 0x400>;
275 clocks = <&rcc TIM7_K>;
277 dmas = <&dmamux1 70 0x400 0x1>;
282 compatible = "st,stm32h7-timer-trigger";
288 timers12: timer@40006000 {
289 #address-cells = <1>;
291 compatible = "st,stm32-timers";
292 reg = <0x40006000 0x400>;
293 clocks = <&rcc TIM12_K>;
298 compatible = "st,stm32-pwm";
304 compatible = "st,stm32h7-timer-trigger";
310 timers13: timer@40007000 {
311 #address-cells = <1>;
313 compatible = "st,stm32-timers";
314 reg = <0x40007000 0x400>;
315 clocks = <&rcc TIM13_K>;
320 compatible = "st,stm32-pwm";
326 compatible = "st,stm32h7-timer-trigger";
332 timers14: timer@40008000 {
333 #address-cells = <1>;
335 compatible = "st,stm32-timers";
336 reg = <0x40008000 0x400>;
337 clocks = <&rcc TIM14_K>;
342 compatible = "st,stm32-pwm";
348 compatible = "st,stm32h7-timer-trigger";
354 lptimer1: timer@40009000 {
355 #address-cells = <1>;
357 compatible = "st,stm32-lptimer";
358 reg = <0x40009000 0x400>;
359 clocks = <&rcc LPTIM1_K>;
364 compatible = "st,stm32-pwm-lp";
370 compatible = "st,stm32-lptimer-trigger";
376 compatible = "st,stm32-lptimer-counter";
382 #address-cells = <1>;
384 compatible = "st,stm32h7-spi";
385 reg = <0x4000b000 0x400>;
386 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
387 clocks = <&rcc SPI2_K>;
388 resets = <&rcc SPI2_R>;
389 dmas = <&dmamux1 39 0x400 0x05>,
390 <&dmamux1 40 0x400 0x05>;
391 dma-names = "rx", "tx";
395 i2s2: audio-controller@4000b000 {
396 compatible = "st,stm32h7-i2s";
397 #sound-dai-cells = <0>;
398 reg = <0x4000b000 0x400>;
399 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
400 dmas = <&dmamux1 39 0x400 0x01>,
401 <&dmamux1 40 0x400 0x01>;
402 dma-names = "rx", "tx";
407 #address-cells = <1>;
409 compatible = "st,stm32h7-spi";
410 reg = <0x4000c000 0x400>;
411 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
412 clocks = <&rcc SPI3_K>;
413 resets = <&rcc SPI3_R>;
414 dmas = <&dmamux1 61 0x400 0x05>,
415 <&dmamux1 62 0x400 0x05>;
416 dma-names = "rx", "tx";
420 i2s3: audio-controller@4000c000 {
421 compatible = "st,stm32h7-i2s";
422 #sound-dai-cells = <0>;
423 reg = <0x4000c000 0x400>;
424 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
425 dmas = <&dmamux1 61 0x400 0x01>,
426 <&dmamux1 62 0x400 0x01>;
427 dma-names = "rx", "tx";
431 spdifrx: audio-controller@4000d000 {
432 compatible = "st,stm32h7-spdifrx";
433 #sound-dai-cells = <0>;
434 reg = <0x4000d000 0x400>;
435 clocks = <&rcc SPDIF_K>;
436 clock-names = "kclk";
437 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
438 dmas = <&dmamux1 93 0x400 0x01>,
439 <&dmamux1 94 0x400 0x01>;
440 dma-names = "rx", "rx-ctrl";
444 usart2: serial@4000e000 {
445 compatible = "st,stm32h7-uart";
446 reg = <0x4000e000 0x400>;
447 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
448 clocks = <&rcc USART2_K>;
452 usart3: serial@4000f000 {
453 compatible = "st,stm32h7-uart";
454 reg = <0x4000f000 0x400>;
455 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
456 clocks = <&rcc USART3_K>;
460 uart4: serial@40010000 {
461 compatible = "st,stm32h7-uart";
462 reg = <0x40010000 0x400>;
463 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
464 clocks = <&rcc UART4_K>;
468 uart5: serial@40011000 {
469 compatible = "st,stm32h7-uart";
470 reg = <0x40011000 0x400>;
471 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
472 clocks = <&rcc UART5_K>;
477 compatible = "st,stm32f7-i2c";
478 reg = <0x40012000 0x400>;
479 interrupt-names = "event", "error";
480 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
481 <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
482 clocks = <&rcc I2C1_K>;
483 resets = <&rcc I2C1_R>;
484 #address-cells = <1>;
490 compatible = "st,stm32f7-i2c";
491 reg = <0x40013000 0x400>;
492 interrupt-names = "event", "error";
493 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
494 <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
495 clocks = <&rcc I2C2_K>;
496 resets = <&rcc I2C2_R>;
497 #address-cells = <1>;
503 compatible = "st,stm32f7-i2c";
504 reg = <0x40014000 0x400>;
505 interrupt-names = "event", "error";
506 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
507 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
508 clocks = <&rcc I2C3_K>;
509 resets = <&rcc I2C3_R>;
510 #address-cells = <1>;
516 compatible = "st,stm32f7-i2c";
517 reg = <0x40015000 0x400>;
518 interrupt-names = "event", "error";
519 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
520 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
521 clocks = <&rcc I2C5_K>;
522 resets = <&rcc I2C5_R>;
523 #address-cells = <1>;
529 compatible = "st,stm32-cec";
530 reg = <0x40016000 0x400>;
531 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
532 clocks = <&rcc CEC_K>, <&clk_lse>;
533 clock-names = "cec", "hdmi-cec";
538 compatible = "st,stm32h7-dac-core";
539 reg = <0x40017000 0x400>;
540 clocks = <&rcc DAC12>;
541 clock-names = "pclk";
542 #address-cells = <1>;
547 compatible = "st,stm32-dac";
548 #io-channels-cells = <1>;
554 compatible = "st,stm32-dac";
555 #io-channels-cells = <1>;
561 uart7: serial@40018000 {
562 compatible = "st,stm32h7-uart";
563 reg = <0x40018000 0x400>;
564 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
565 clocks = <&rcc UART7_K>;
569 uart8: serial@40019000 {
570 compatible = "st,stm32h7-uart";
571 reg = <0x40019000 0x400>;
572 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
573 clocks = <&rcc UART8_K>;
577 timers1: timer@44000000 {
578 #address-cells = <1>;
580 compatible = "st,stm32-timers";
581 reg = <0x44000000 0x400>;
582 clocks = <&rcc TIM1_K>;
584 dmas = <&dmamux1 11 0x400 0x1>,
585 <&dmamux1 12 0x400 0x1>,
586 <&dmamux1 13 0x400 0x1>,
587 <&dmamux1 14 0x400 0x1>,
588 <&dmamux1 15 0x400 0x1>,
589 <&dmamux1 16 0x400 0x1>,
590 <&dmamux1 17 0x400 0x1>;
591 dma-names = "ch1", "ch2", "ch3", "ch4",
596 compatible = "st,stm32-pwm";
602 compatible = "st,stm32h7-timer-trigger";
608 compatible = "st,stm32-timer-counter";
613 timers8: timer@44001000 {
614 #address-cells = <1>;
616 compatible = "st,stm32-timers";
617 reg = <0x44001000 0x400>;
618 clocks = <&rcc TIM8_K>;
620 dmas = <&dmamux1 47 0x400 0x1>,
621 <&dmamux1 48 0x400 0x1>,
622 <&dmamux1 49 0x400 0x1>,
623 <&dmamux1 50 0x400 0x1>,
624 <&dmamux1 51 0x400 0x1>,
625 <&dmamux1 52 0x400 0x1>,
626 <&dmamux1 53 0x400 0x1>;
627 dma-names = "ch1", "ch2", "ch3", "ch4",
632 compatible = "st,stm32-pwm";
638 compatible = "st,stm32h7-timer-trigger";
644 compatible = "st,stm32-timer-counter";
649 usart6: serial@44003000 {
650 compatible = "st,stm32h7-uart";
651 reg = <0x44003000 0x400>;
652 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
653 clocks = <&rcc USART6_K>;
658 #address-cells = <1>;
660 compatible = "st,stm32h7-spi";
661 reg = <0x44004000 0x400>;
662 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
663 clocks = <&rcc SPI1_K>;
664 resets = <&rcc SPI1_R>;
665 dmas = <&dmamux1 37 0x400 0x05>,
666 <&dmamux1 38 0x400 0x05>;
667 dma-names = "rx", "tx";
671 i2s1: audio-controller@44004000 {
672 compatible = "st,stm32h7-i2s";
673 #sound-dai-cells = <0>;
674 reg = <0x44004000 0x400>;
675 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
676 dmas = <&dmamux1 37 0x400 0x01>,
677 <&dmamux1 38 0x400 0x01>;
678 dma-names = "rx", "tx";
683 #address-cells = <1>;
685 compatible = "st,stm32h7-spi";
686 reg = <0x44005000 0x400>;
687 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
688 clocks = <&rcc SPI4_K>;
689 resets = <&rcc SPI4_R>;
690 dmas = <&dmamux1 83 0x400 0x05>,
691 <&dmamux1 84 0x400 0x05>;
692 dma-names = "rx", "tx";
696 timers15: timer@44006000 {
697 #address-cells = <1>;
699 compatible = "st,stm32-timers";
700 reg = <0x44006000 0x400>;
701 clocks = <&rcc TIM15_K>;
703 dmas = <&dmamux1 105 0x400 0x1>,
704 <&dmamux1 106 0x400 0x1>,
705 <&dmamux1 107 0x400 0x1>,
706 <&dmamux1 108 0x400 0x1>;
707 dma-names = "ch1", "up", "trig", "com";
711 compatible = "st,stm32-pwm";
717 compatible = "st,stm32h7-timer-trigger";
723 timers16: timer@44007000 {
724 #address-cells = <1>;
726 compatible = "st,stm32-timers";
727 reg = <0x44007000 0x400>;
728 clocks = <&rcc TIM16_K>;
730 dmas = <&dmamux1 109 0x400 0x1>,
731 <&dmamux1 110 0x400 0x1>;
732 dma-names = "ch1", "up";
736 compatible = "st,stm32-pwm";
741 compatible = "st,stm32h7-timer-trigger";
747 timers17: timer@44008000 {
748 #address-cells = <1>;
750 compatible = "st,stm32-timers";
751 reg = <0x44008000 0x400>;
752 clocks = <&rcc TIM17_K>;
754 dmas = <&dmamux1 111 0x400 0x1>,
755 <&dmamux1 112 0x400 0x1>;
756 dma-names = "ch1", "up";
760 compatible = "st,stm32-pwm";
766 compatible = "st,stm32h7-timer-trigger";
773 #address-cells = <1>;
775 compatible = "st,stm32h7-spi";
776 reg = <0x44009000 0x400>;
777 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
778 clocks = <&rcc SPI5_K>;
779 resets = <&rcc SPI5_R>;
780 dmas = <&dmamux1 85 0x400 0x05>,
781 <&dmamux1 86 0x400 0x05>;
782 dma-names = "rx", "tx";
787 compatible = "st,stm32h7-sai";
788 #address-cells = <1>;
790 ranges = <0 0x4400a000 0x400>;
791 reg = <0x4400a000 0x4>, <0x4400a3f0 0x10>;
792 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
793 resets = <&rcc SAI1_R>;
796 sai1a: audio-controller@4400a004 {
797 #sound-dai-cells = <0>;
799 compatible = "st,stm32-sai-sub-a";
801 clocks = <&rcc SAI1_K>;
802 clock-names = "sai_ck";
803 dmas = <&dmamux1 87 0x400 0x01>;
807 sai1b: audio-controller@4400a024 {
808 #sound-dai-cells = <0>;
809 compatible = "st,stm32-sai-sub-b";
811 clocks = <&rcc SAI1_K>;
812 clock-names = "sai_ck";
813 dmas = <&dmamux1 88 0x400 0x01>;
819 compatible = "st,stm32h7-sai";
820 #address-cells = <1>;
822 ranges = <0 0x4400b000 0x400>;
823 reg = <0x4400b000 0x4>, <0x4400b3f0 0x10>;
824 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
825 resets = <&rcc SAI2_R>;
828 sai2a: audio-controller@4400b004 {
829 #sound-dai-cells = <0>;
830 compatible = "st,stm32-sai-sub-a";
832 clocks = <&rcc SAI2_K>;
833 clock-names = "sai_ck";
834 dmas = <&dmamux1 89 0x400 0x01>;
838 sai2b: audio-controller@4400b024 {
839 #sound-dai-cells = <0>;
840 compatible = "st,stm32-sai-sub-b";
842 clocks = <&rcc SAI2_K>;
843 clock-names = "sai_ck";
844 dmas = <&dmamux1 90 0x400 0x01>;
850 compatible = "st,stm32h7-sai";
851 #address-cells = <1>;
853 ranges = <0 0x4400c000 0x400>;
854 reg = <0x4400c000 0x4>, <0x4400c3f0 0x10>;
855 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
856 resets = <&rcc SAI3_R>;
859 sai3a: audio-controller@4400c004 {
860 #sound-dai-cells = <0>;
861 compatible = "st,stm32-sai-sub-a";
863 clocks = <&rcc SAI3_K>;
864 clock-names = "sai_ck";
865 dmas = <&dmamux1 113 0x400 0x01>;
869 sai3b: audio-controller@4400c024 {
870 #sound-dai-cells = <0>;
871 compatible = "st,stm32-sai-sub-b";
873 clocks = <&rcc SAI3_K>;
874 clock-names = "sai_ck";
875 dmas = <&dmamux1 114 0x400 0x01>;
880 dfsdm: dfsdm@4400d000 {
881 compatible = "st,stm32mp1-dfsdm";
882 reg = <0x4400d000 0x800>;
883 clocks = <&rcc DFSDM_K>;
884 clock-names = "dfsdm";
885 #address-cells = <1>;
890 compatible = "st,stm32-dfsdm-adc";
891 #io-channel-cells = <1>;
893 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
894 dmas = <&dmamux1 101 0x400 0x01>;
900 compatible = "st,stm32-dfsdm-adc";
901 #io-channel-cells = <1>;
903 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
904 dmas = <&dmamux1 102 0x400 0x01>;
910 compatible = "st,stm32-dfsdm-adc";
911 #io-channel-cells = <1>;
913 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
914 dmas = <&dmamux1 103 0x400 0x01>;
920 compatible = "st,stm32-dfsdm-adc";
921 #io-channel-cells = <1>;
923 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
924 dmas = <&dmamux1 104 0x400 0x01>;
930 compatible = "st,stm32-dfsdm-adc";
931 #io-channel-cells = <1>;
933 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
934 dmas = <&dmamux1 91 0x400 0x01>;
940 compatible = "st,stm32-dfsdm-adc";
941 #io-channel-cells = <1>;
943 interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
944 dmas = <&dmamux1 92 0x400 0x01>;
950 dma1: dma-controller@48000000 {
951 compatible = "st,stm32-dma";
952 reg = <0x48000000 0x400>;
953 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
954 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
955 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
956 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
957 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
958 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
959 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
960 <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
961 clocks = <&rcc DMA1>;
967 dma2: dma-controller@48001000 {
968 compatible = "st,stm32-dma";
969 reg = <0x48001000 0x400>;
970 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
971 <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
972 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
973 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
974 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
975 <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
976 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
977 <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
978 clocks = <&rcc DMA2>;
984 dmamux1: dma-router@48002000 {
985 compatible = "st,stm32h7-dmamux";
986 reg = <0x48002000 0x1c>;
988 dma-requests = <128>;
989 dma-masters = <&dma1 &dma2>;
991 clocks = <&rcc DMAMUX>;
995 compatible = "st,stm32mp1-adc-core";
996 reg = <0x48003000 0x400>;
997 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
998 <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
999 clocks = <&rcc ADC12>, <&rcc ADC12_K>;
1000 clock-names = "bus", "adc";
1001 interrupt-controller;
1002 st,syscfg = <&syscfg>;
1003 #interrupt-cells = <1>;
1004 #address-cells = <1>;
1006 status = "disabled";
1009 compatible = "st,stm32mp1-adc";
1010 #io-channel-cells = <1>;
1012 interrupt-parent = <&adc>;
1014 dmas = <&dmamux1 9 0x400 0x01>;
1016 status = "disabled";
1020 compatible = "st,stm32mp1-adc";
1021 #io-channel-cells = <1>;
1023 interrupt-parent = <&adc>;
1025 dmas = <&dmamux1 10 0x400 0x01>;
1027 status = "disabled";
1031 sdmmc3: sdmmc@48004000 {
1032 compatible = "arm,pl18x", "arm,primecell";
1033 arm,primecell-periphid = <0x10153180>;
1034 reg = <0x48004000 0x400>;
1035 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
1036 interrupt-names = "cmd_irq";
1037 clocks = <&rcc SDMMC3_K>;
1038 clock-names = "apb_pclk";
1039 resets = <&rcc SDMMC3_R>;
1042 max-frequency = <120000000>;
1043 status = "disabled";
1046 usbotg_hs: usb-otg@49000000 {
1047 compatible = "snps,dwc2";
1048 reg = <0x49000000 0x10000>;
1049 clocks = <&rcc USBO_K>;
1050 clock-names = "otg";
1051 resets = <&rcc USBO_R>;
1052 reset-names = "dwc2";
1053 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1054 g-rx-fifo-size = <256>;
1055 g-np-tx-fifo-size = <32>;
1056 g-tx-fifo-size = <128 128 64 64 64 64 32 32>;
1058 status = "disabled";
1061 ipcc: mailbox@4c001000 {
1062 compatible = "st,stm32mp1-ipcc";
1064 reg = <0x4c001000 0x400>;
1066 interrupts-extended =
1067 <&intc GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
1068 <&intc GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
1070 interrupt-names = "rx", "tx", "wakeup";
1071 clocks = <&rcc IPCC>;
1073 status = "disabled";
1076 dcmi: dcmi@4c006000 {
1077 compatible = "st,stm32-dcmi";
1078 reg = <0x4c006000 0x400>;
1079 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
1080 resets = <&rcc CAMITF_R>;
1081 clocks = <&rcc DCMI>;
1082 clock-names = "mclk";
1083 dmas = <&dmamux1 75 0x400 0x0d>;
1085 status = "disabled";
1089 compatible = "st,stm32mp1-rcc", "syscon";
1090 reg = <0x50000000 0x1000>;
1095 pwr_regulators: pwr@50001000 {
1096 compatible = "st,stm32mp1,pwr-reg";
1097 reg = <0x50001000 0x10>;
1100 regulator-name = "reg11";
1101 regulator-min-microvolt = <1100000>;
1102 regulator-max-microvolt = <1100000>;
1106 regulator-name = "reg18";
1107 regulator-min-microvolt = <1800000>;
1108 regulator-max-microvolt = <1800000>;
1112 regulator-name = "usb33";
1113 regulator-min-microvolt = <3300000>;
1114 regulator-max-microvolt = <3300000>;
1118 exti: interrupt-controller@5000d000 {
1119 compatible = "st,stm32mp1-exti", "syscon";
1120 interrupt-controller;
1121 #interrupt-cells = <2>;
1122 reg = <0x5000d000 0x400>;
1125 syscfg: syscon@50020000 {
1126 compatible = "st,stm32mp157-syscfg", "syscon";
1127 reg = <0x50020000 0x400>;
1128 clocks = <&rcc SYSCFG>;
1131 lptimer2: timer@50021000 {
1132 #address-cells = <1>;
1134 compatible = "st,stm32-lptimer";
1135 reg = <0x50021000 0x400>;
1136 clocks = <&rcc LPTIM2_K>;
1137 clock-names = "mux";
1138 status = "disabled";
1141 compatible = "st,stm32-pwm-lp";
1143 status = "disabled";
1147 compatible = "st,stm32-lptimer-trigger";
1149 status = "disabled";
1153 compatible = "st,stm32-lptimer-counter";
1154 status = "disabled";
1158 lptimer3: timer@50022000 {
1159 #address-cells = <1>;
1161 compatible = "st,stm32-lptimer";
1162 reg = <0x50022000 0x400>;
1163 clocks = <&rcc LPTIM3_K>;
1164 clock-names = "mux";
1165 status = "disabled";
1168 compatible = "st,stm32-pwm-lp";
1170 status = "disabled";
1174 compatible = "st,stm32-lptimer-trigger";
1176 status = "disabled";
1180 lptimer4: timer@50023000 {
1181 compatible = "st,stm32-lptimer";
1182 reg = <0x50023000 0x400>;
1183 clocks = <&rcc LPTIM4_K>;
1184 clock-names = "mux";
1185 status = "disabled";
1188 compatible = "st,stm32-pwm-lp";
1190 status = "disabled";
1194 lptimer5: timer@50024000 {
1195 compatible = "st,stm32-lptimer";
1196 reg = <0x50024000 0x400>;
1197 clocks = <&rcc LPTIM5_K>;
1198 clock-names = "mux";
1199 status = "disabled";
1202 compatible = "st,stm32-pwm-lp";
1204 status = "disabled";
1208 vrefbuf: vrefbuf@50025000 {
1209 compatible = "st,stm32-vrefbuf";
1210 reg = <0x50025000 0x8>;
1211 regulator-min-microvolt = <1500000>;
1212 regulator-max-microvolt = <2500000>;
1213 clocks = <&rcc VREF>;
1214 status = "disabled";
1217 sai4: sai@50027000 {
1218 compatible = "st,stm32h7-sai";
1219 #address-cells = <1>;
1221 ranges = <0 0x50027000 0x400>;
1222 reg = <0x50027000 0x4>, <0x500273f0 0x10>;
1223 interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
1224 resets = <&rcc SAI4_R>;
1225 status = "disabled";
1227 sai4a: audio-controller@50027004 {
1228 #sound-dai-cells = <0>;
1229 compatible = "st,stm32-sai-sub-a";
1231 clocks = <&rcc SAI4_K>;
1232 clock-names = "sai_ck";
1233 dmas = <&dmamux1 99 0x400 0x01>;
1234 status = "disabled";
1237 sai4b: audio-controller@50027024 {
1238 #sound-dai-cells = <0>;
1239 compatible = "st,stm32-sai-sub-b";
1241 clocks = <&rcc SAI4_K>;
1242 clock-names = "sai_ck";
1243 dmas = <&dmamux1 100 0x400 0x01>;
1244 status = "disabled";
1248 dts: thermal@50028000 {
1249 compatible = "st,stm32-thermal";
1250 reg = <0x50028000 0x100>;
1251 interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
1252 clocks = <&rcc TMPSENS>;
1253 clock-names = "pclk";
1254 #thermal-sensor-cells = <0>;
1255 status = "disabled";
1258 hash1: hash@54002000 {
1259 compatible = "st,stm32f756-hash";
1260 reg = <0x54002000 0x400>;
1261 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
1262 clocks = <&rcc HASH1>;
1263 resets = <&rcc HASH1_R>;
1264 dmas = <&mdma1 31 0x10 0x1000A02 0x0 0x0>;
1267 status = "disabled";
1270 rng1: rng@54003000 {
1271 compatible = "st,stm32-rng";
1272 reg = <0x54003000 0x400>;
1273 clocks = <&rcc RNG1_K>;
1274 resets = <&rcc RNG1_R>;
1275 status = "disabled";
1278 mdma1: dma-controller@58000000 {
1279 compatible = "st,stm32h7-mdma";
1280 reg = <0x58000000 0x1000>;
1281 interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
1282 clocks = <&rcc MDMA>;
1284 dma-channels = <32>;
1285 dma-requests = <48>;
1288 fmc: nand-controller@58002000 {
1289 compatible = "st,stm32mp15-fmc2";
1290 reg = <0x58002000 0x1000>,
1291 <0x80000000 0x1000>,
1292 <0x88010000 0x1000>,
1293 <0x88020000 0x1000>,
1294 <0x81000000 0x1000>,
1295 <0x89010000 0x1000>,
1296 <0x89020000 0x1000>;
1297 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
1298 dmas = <&mdma1 20 0x10 0x12000a02 0x0 0x0>,
1299 <&mdma1 20 0x10 0x12000a08 0x0 0x0>,
1300 <&mdma1 21 0x10 0x12000a0a 0x0 0x0>;
1301 dma-names = "tx", "rx", "ecc";
1302 clocks = <&rcc FMC_K>;
1303 resets = <&rcc FMC_R>;
1304 status = "disabled";
1307 qspi: spi@58003000 {
1308 compatible = "st,stm32f469-qspi";
1309 reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
1310 reg-names = "qspi", "qspi_mm";
1311 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
1312 dmas = <&mdma1 22 0x10 0x100002 0x0 0x0>,
1313 <&mdma1 22 0x10 0x100008 0x0 0x0>;
1314 dma-names = "tx", "rx";
1315 clocks = <&rcc QSPI_K>;
1316 resets = <&rcc QSPI_R>;
1317 status = "disabled";
1320 sdmmc1: sdmmc@58005000 {
1321 compatible = "arm,pl18x", "arm,primecell";
1322 arm,primecell-periphid = <0x10153180>;
1323 reg = <0x58005000 0x1000>;
1324 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
1325 interrupt-names = "cmd_irq";
1326 clocks = <&rcc SDMMC1_K>;
1327 clock-names = "apb_pclk";
1328 resets = <&rcc SDMMC1_R>;
1331 max-frequency = <120000000>;
1332 status = "disabled";
1335 sdmmc2: sdmmc@58007000 {
1336 compatible = "arm,pl18x", "arm,primecell";
1337 arm,primecell-periphid = <0x10153180>;
1338 reg = <0x58007000 0x1000>;
1339 interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
1340 interrupt-names = "cmd_irq";
1341 clocks = <&rcc SDMMC2_K>;
1342 clock-names = "apb_pclk";
1343 resets = <&rcc SDMMC2_R>;
1346 max-frequency = <120000000>;
1347 status = "disabled";
1350 crc1: crc@58009000 {
1351 compatible = "st,stm32f7-crc";
1352 reg = <0x58009000 0x400>;
1353 clocks = <&rcc CRC1>;
1354 status = "disabled";
1357 stmmac_axi_config_0: stmmac-axi-config {
1358 snps,wr_osr_lmt = <0x7>;
1359 snps,rd_osr_lmt = <0x7>;
1360 snps,blen = <0 0 0 0 16 8 4>;
1363 ethernet0: ethernet@5800a000 {
1364 compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a";
1365 reg = <0x5800a000 0x2000>;
1366 reg-names = "stmmaceth";
1367 interrupts-extended = <&intc GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
1368 interrupt-names = "macirq";
1369 clock-names = "stmmaceth",
1373 clocks = <&rcc ETHMAC>,
1377 st,syscon = <&syscfg 0x4>;
1380 snps,en-tx-lpi-clockgating;
1381 snps,axi-config = <&stmmac_axi_config_0>;
1383 status = "disabled";
1386 usbh_ohci: usbh-ohci@5800c000 {
1387 compatible = "generic-ohci";
1388 reg = <0x5800c000 0x1000>;
1389 clocks = <&rcc USBH>;
1390 resets = <&rcc USBH_R>;
1391 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
1392 status = "disabled";
1395 usbh_ehci: usbh-ehci@5800d000 {
1396 compatible = "generic-ehci";
1397 reg = <0x5800d000 0x1000>;
1398 clocks = <&rcc USBH>;
1399 resets = <&rcc USBH_R>;
1400 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
1401 companion = <&usbh_ohci>;
1402 status = "disabled";
1405 ltdc: display-controller@5a001000 {
1406 compatible = "st,stm32-ltdc";
1407 reg = <0x5a001000 0x400>;
1408 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
1409 <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1410 clocks = <&rcc LTDC_PX>;
1411 clock-names = "lcd";
1412 resets = <&rcc LTDC_R>;
1413 status = "disabled";
1416 iwdg2: watchdog@5a002000 {
1417 compatible = "st,stm32mp1-iwdg";
1418 reg = <0x5a002000 0x400>;
1419 clocks = <&rcc IWDG2>, <&rcc CK_LSI>;
1420 clock-names = "pclk", "lsi";
1421 status = "disabled";
1424 usbphyc: usbphyc@5a006000 {
1425 #address-cells = <1>;
1427 compatible = "st,stm32mp1-usbphyc";
1428 reg = <0x5a006000 0x1000>;
1429 clocks = <&rcc USBPHY_K>;
1430 resets = <&rcc USBPHY_R>;
1431 status = "disabled";
1433 usbphyc_port0: usb-phy@0 {
1438 usbphyc_port1: usb-phy@1 {
1444 usart1: serial@5c000000 {
1445 compatible = "st,stm32h7-uart";
1446 reg = <0x5c000000 0x400>;
1447 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
1448 clocks = <&rcc USART1_K>;
1449 status = "disabled";
1452 spi6: spi@5c001000 {
1453 #address-cells = <1>;
1455 compatible = "st,stm32h7-spi";
1456 reg = <0x5c001000 0x400>;
1457 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
1458 clocks = <&rcc SPI6_K>;
1459 resets = <&rcc SPI6_R>;
1460 dmas = <&mdma1 34 0x0 0x40008 0x0 0x0>,
1461 <&mdma1 35 0x0 0x40002 0x0 0x0>;
1462 dma-names = "rx", "tx";
1463 status = "disabled";
1466 i2c4: i2c@5c002000 {
1467 compatible = "st,stm32f7-i2c";
1468 reg = <0x5c002000 0x400>;
1469 interrupt-names = "event", "error";
1470 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
1471 <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1472 clocks = <&rcc I2C4_K>;
1473 resets = <&rcc I2C4_R>;
1474 #address-cells = <1>;
1476 status = "disabled";
1480 compatible = "st,stm32mp1-rtc";
1481 reg = <0x5c004000 0x400>;
1482 clocks = <&rcc RTCAPB>, <&rcc RTC>;
1483 clock-names = "pclk", "rtc_ck";
1484 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
1485 status = "disabled";
1488 bsec: efuse@5c005000 {
1489 compatible = "st,stm32mp15-bsec";
1490 reg = <0x5c005000 0x400>;
1491 #address-cells = <1>;
1501 i2c6: i2c@5c009000 {
1502 compatible = "st,stm32f7-i2c";
1503 reg = <0x5c009000 0x400>;
1504 interrupt-names = "event", "error";
1505 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
1506 <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
1507 clocks = <&rcc I2C6_K>;
1508 resets = <&rcc I2C6_R>;
1509 #address-cells = <1>;
1511 status = "disabled";
1515 * Break node order to solve dependency probe issue between
1518 pinctrl: pin-controller@50002000 {
1519 #address-cells = <1>;
1521 compatible = "st,stm32mp157-pinctrl";
1522 ranges = <0 0x50002000 0xa400>;
1523 interrupt-parent = <&exti>;
1524 st,syscfg = <&exti 0x60 0xff>;
1527 gpioa: gpio@50002000 {
1530 interrupt-controller;
1531 #interrupt-cells = <2>;
1533 clocks = <&rcc GPIOA>;
1534 st,bank-name = "GPIOA";
1535 status = "disabled";
1538 gpiob: gpio@50003000 {
1541 interrupt-controller;
1542 #interrupt-cells = <2>;
1543 reg = <0x1000 0x400>;
1544 clocks = <&rcc GPIOB>;
1545 st,bank-name = "GPIOB";
1546 status = "disabled";
1549 gpioc: gpio@50004000 {
1552 interrupt-controller;
1553 #interrupt-cells = <2>;
1554 reg = <0x2000 0x400>;
1555 clocks = <&rcc GPIOC>;
1556 st,bank-name = "GPIOC";
1557 status = "disabled";
1560 gpiod: gpio@50005000 {
1563 interrupt-controller;
1564 #interrupt-cells = <2>;
1565 reg = <0x3000 0x400>;
1566 clocks = <&rcc GPIOD>;
1567 st,bank-name = "GPIOD";
1568 status = "disabled";
1571 gpioe: gpio@50006000 {
1574 interrupt-controller;
1575 #interrupt-cells = <2>;
1576 reg = <0x4000 0x400>;
1577 clocks = <&rcc GPIOE>;
1578 st,bank-name = "GPIOE";
1579 status = "disabled";
1582 gpiof: gpio@50007000 {
1585 interrupt-controller;
1586 #interrupt-cells = <2>;
1587 reg = <0x5000 0x400>;
1588 clocks = <&rcc GPIOF>;
1589 st,bank-name = "GPIOF";
1590 status = "disabled";
1593 gpiog: gpio@50008000 {
1596 interrupt-controller;
1597 #interrupt-cells = <2>;
1598 reg = <0x6000 0x400>;
1599 clocks = <&rcc GPIOG>;
1600 st,bank-name = "GPIOG";
1601 status = "disabled";
1604 gpioh: gpio@50009000 {
1607 interrupt-controller;
1608 #interrupt-cells = <2>;
1609 reg = <0x7000 0x400>;
1610 clocks = <&rcc GPIOH>;
1611 st,bank-name = "GPIOH";
1612 status = "disabled";
1615 gpioi: gpio@5000a000 {
1618 interrupt-controller;
1619 #interrupt-cells = <2>;
1620 reg = <0x8000 0x400>;
1621 clocks = <&rcc GPIOI>;
1622 st,bank-name = "GPIOI";
1623 status = "disabled";
1626 gpioj: gpio@5000b000 {
1629 interrupt-controller;
1630 #interrupt-cells = <2>;
1631 reg = <0x9000 0x400>;
1632 clocks = <&rcc GPIOJ>;
1633 st,bank-name = "GPIOJ";
1634 status = "disabled";
1637 gpiok: gpio@5000c000 {
1640 interrupt-controller;
1641 #interrupt-cells = <2>;
1642 reg = <0xa000 0x400>;
1643 clocks = <&rcc GPIOK>;
1644 st,bank-name = "GPIOK";
1645 status = "disabled";
1649 pinctrl_z: pin-controller-z@54004000 {
1650 #address-cells = <1>;
1652 compatible = "st,stm32mp157-z-pinctrl";
1653 ranges = <0 0x54004000 0x400>;
1655 interrupt-parent = <&exti>;
1656 st,syscfg = <&exti 0x60 0xff>;
1658 gpioz: gpio@54004000 {
1661 interrupt-controller;
1662 #interrupt-cells = <2>;
1664 clocks = <&rcc GPIOZ>;
1665 st,bank-name = "GPIOZ";
1666 st,bank-ioport = <11>;
1667 status = "disabled";
1673 compatible = "st,mlahb", "simple-bus";
1674 #address-cells = <1>;
1677 dma-ranges = <0x00000000 0x38000000 0x10000>,
1678 <0x10000000 0x10000000 0x60000>,
1679 <0x30000000 0x30000000 0x60000>;
1681 m4_rproc: m4@10000000 {
1682 compatible = "st,stm32mp1-m4";
1683 reg = <0x10000000 0x40000>,
1684 <0x30000000 0x40000>,
1685 <0x38000000 0x10000>;
1686 resets = <&rcc MCU_R>;
1687 st,syscfg-holdboot = <&rcc 0x10C 0x1>;
1688 st,syscfg-tz = <&rcc 0x000 0x1>;
1689 status = "disabled";