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";
25 compatible = "arm,cortex-a7";
32 compatible = "arm,psci-1.0";
34 cpu_off = <0x84000002>;
35 cpu_on = <0x84000003>;
60 intc: interrupt-controller@a0021000 {
61 compatible = "arm,cortex-a7-gic";
62 #interrupt-cells = <3>;
64 reg = <0xa0021000 0x1000>,
69 compatible = "arm,armv7-timer";
70 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
71 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
72 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
73 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
74 interrupt-parent = <&intc>;
80 compatible = "fixed-clock";
81 clock-frequency = <24000000>;
86 compatible = "fixed-clock";
87 clock-frequency = <64000000>;
92 compatible = "fixed-clock";
93 clock-frequency = <32768>;
98 compatible = "fixed-clock";
99 clock-frequency = <32000>;
104 compatible = "fixed-clock";
105 clock-frequency = <4000000>;
110 compatible = "simple-bus";
111 #address-cells = <1>;
113 interrupt-parent = <&intc>;
116 timers2: timer@40000000 {
117 #address-cells = <1>;
119 compatible = "st,stm32-timers";
120 reg = <0x40000000 0x400>;
121 clocks = <&rcc TIM2_K>;
126 compatible = "st,stm32-pwm";
131 compatible = "st,stm32h7-timer-trigger";
137 timers3: timer@40001000 {
138 #address-cells = <1>;
140 compatible = "st,stm32-timers";
141 reg = <0x40001000 0x400>;
142 clocks = <&rcc TIM3_K>;
147 compatible = "st,stm32-pwm";
152 compatible = "st,stm32h7-timer-trigger";
158 timers4: timer@40002000 {
159 #address-cells = <1>;
161 compatible = "st,stm32-timers";
162 reg = <0x40002000 0x400>;
163 clocks = <&rcc TIM4_K>;
168 compatible = "st,stm32-pwm";
173 compatible = "st,stm32h7-timer-trigger";
179 timers5: timer@40003000 {
180 #address-cells = <1>;
182 compatible = "st,stm32-timers";
183 reg = <0x40003000 0x400>;
184 clocks = <&rcc TIM5_K>;
189 compatible = "st,stm32-pwm";
194 compatible = "st,stm32h7-timer-trigger";
200 timers6: timer@40004000 {
201 #address-cells = <1>;
203 compatible = "st,stm32-timers";
204 reg = <0x40004000 0x400>;
205 clocks = <&rcc TIM6_K>;
210 compatible = "st,stm32h7-timer-trigger";
216 timers7: timer@40005000 {
217 #address-cells = <1>;
219 compatible = "st,stm32-timers";
220 reg = <0x40005000 0x400>;
221 clocks = <&rcc TIM7_K>;
226 compatible = "st,stm32h7-timer-trigger";
232 timers12: timer@40006000 {
233 #address-cells = <1>;
235 compatible = "st,stm32-timers";
236 reg = <0x40006000 0x400>;
237 clocks = <&rcc TIM12_K>;
242 compatible = "st,stm32-pwm";
247 compatible = "st,stm32h7-timer-trigger";
253 timers13: timer@40007000 {
254 #address-cells = <1>;
256 compatible = "st,stm32-timers";
257 reg = <0x40007000 0x400>;
258 clocks = <&rcc TIM13_K>;
263 compatible = "st,stm32-pwm";
268 compatible = "st,stm32h7-timer-trigger";
274 timers14: timer@40008000 {
275 #address-cells = <1>;
277 compatible = "st,stm32-timers";
278 reg = <0x40008000 0x400>;
279 clocks = <&rcc TIM14_K>;
284 compatible = "st,stm32-pwm";
289 compatible = "st,stm32h7-timer-trigger";
295 lptimer1: timer@40009000 {
296 #address-cells = <1>;
298 compatible = "st,stm32-lptimer";
299 reg = <0x40009000 0x400>;
300 clocks = <&rcc LPTIM1_K>;
305 compatible = "st,stm32-pwm-lp";
311 compatible = "st,stm32-lptimer-trigger";
317 compatible = "st,stm32-lptimer-counter";
323 #address-cells = <1>;
325 compatible = "st,stm32h7-spi";
326 reg = <0x4000b000 0x400>;
327 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
328 clocks = <&rcc SPI2_K>;
329 resets = <&rcc SPI2_R>;
330 dmas = <&dmamux1 39 0x400 0x05>,
331 <&dmamux1 40 0x400 0x05>;
332 dma-names = "rx", "tx";
337 #address-cells = <1>;
339 compatible = "st,stm32h7-spi";
340 reg = <0x4000c000 0x400>;
341 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
342 clocks = <&rcc SPI3_K>;
343 resets = <&rcc SPI3_R>;
344 dmas = <&dmamux1 61 0x400 0x05>,
345 <&dmamux1 62 0x400 0x05>;
346 dma-names = "rx", "tx";
350 usart2: serial@4000e000 {
351 compatible = "st,stm32h7-uart";
352 reg = <0x4000e000 0x400>;
353 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
354 clocks = <&rcc USART2_K>;
358 usart3: serial@4000f000 {
359 compatible = "st,stm32h7-uart";
360 reg = <0x4000f000 0x400>;
361 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
362 clocks = <&rcc USART3_K>;
366 uart4: serial@40010000 {
367 compatible = "st,stm32h7-uart";
368 reg = <0x40010000 0x400>;
369 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
370 clocks = <&rcc UART4_K>;
374 uart5: serial@40011000 {
375 compatible = "st,stm32h7-uart";
376 reg = <0x40011000 0x400>;
377 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
378 clocks = <&rcc UART5_K>;
383 compatible = "st,stm32f7-i2c";
384 reg = <0x40012000 0x400>;
385 interrupt-names = "event", "error";
386 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
387 <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
388 clocks = <&rcc I2C1_K>;
389 resets = <&rcc I2C1_R>;
390 #address-cells = <1>;
396 compatible = "st,stm32f7-i2c";
397 reg = <0x40013000 0x400>;
398 interrupt-names = "event", "error";
399 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
400 <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
401 clocks = <&rcc I2C2_K>;
402 resets = <&rcc I2C2_R>;
403 #address-cells = <1>;
409 compatible = "st,stm32f7-i2c";
410 reg = <0x40014000 0x400>;
411 interrupt-names = "event", "error";
412 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
413 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
414 clocks = <&rcc I2C3_K>;
415 resets = <&rcc I2C3_R>;
416 #address-cells = <1>;
422 compatible = "st,stm32f7-i2c";
423 reg = <0x40015000 0x400>;
424 interrupt-names = "event", "error";
425 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
426 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
427 clocks = <&rcc I2C5_K>;
428 resets = <&rcc I2C5_R>;
429 #address-cells = <1>;
435 compatible = "st,stm32-cec";
436 reg = <0x40016000 0x400>;
437 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
438 clocks = <&rcc CEC_K>, <&clk_lse>;
439 clock-names = "cec", "hdmi-cec";
444 compatible = "st,stm32h7-dac-core";
445 reg = <0x40017000 0x400>;
446 clocks = <&rcc DAC12>;
447 clock-names = "pclk";
448 #address-cells = <1>;
453 compatible = "st,stm32-dac";
454 #io-channels-cells = <1>;
460 compatible = "st,stm32-dac";
461 #io-channels-cells = <1>;
467 uart7: serial@40018000 {
468 compatible = "st,stm32h7-uart";
469 reg = <0x40018000 0x400>;
470 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
471 clocks = <&rcc UART7_K>;
475 uart8: serial@40019000 {
476 compatible = "st,stm32h7-uart";
477 reg = <0x40019000 0x400>;
478 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
479 clocks = <&rcc UART8_K>;
483 timers1: timer@44000000 {
484 #address-cells = <1>;
486 compatible = "st,stm32-timers";
487 reg = <0x44000000 0x400>;
488 clocks = <&rcc TIM1_K>;
493 compatible = "st,stm32-pwm";
498 compatible = "st,stm32h7-timer-trigger";
504 timers8: timer@44001000 {
505 #address-cells = <1>;
507 compatible = "st,stm32-timers";
508 reg = <0x44001000 0x400>;
509 clocks = <&rcc TIM8_K>;
514 compatible = "st,stm32-pwm";
519 compatible = "st,stm32h7-timer-trigger";
525 usart6: serial@44003000 {
526 compatible = "st,stm32h7-uart";
527 reg = <0x44003000 0x400>;
528 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
529 clocks = <&rcc USART6_K>;
534 #address-cells = <1>;
536 compatible = "st,stm32h7-spi";
537 reg = <0x44004000 0x400>;
538 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
539 clocks = <&rcc SPI1_K>;
540 resets = <&rcc SPI1_R>;
541 dmas = <&dmamux1 37 0x400 0x05>,
542 <&dmamux1 38 0x400 0x05>;
543 dma-names = "rx", "tx";
548 #address-cells = <1>;
550 compatible = "st,stm32h7-spi";
551 reg = <0x44005000 0x400>;
552 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
553 clocks = <&rcc SPI4_K>;
554 resets = <&rcc SPI4_R>;
555 dmas = <&dmamux1 83 0x400 0x05>,
556 <&dmamux1 84 0x400 0x05>;
557 dma-names = "rx", "tx";
561 timers15: timer@44006000 {
562 #address-cells = <1>;
564 compatible = "st,stm32-timers";
565 reg = <0x44006000 0x400>;
566 clocks = <&rcc TIM15_K>;
571 compatible = "st,stm32-pwm";
576 compatible = "st,stm32h7-timer-trigger";
582 timers16: timer@44007000 {
583 #address-cells = <1>;
585 compatible = "st,stm32-timers";
586 reg = <0x44007000 0x400>;
587 clocks = <&rcc TIM16_K>;
592 compatible = "st,stm32-pwm";
596 compatible = "st,stm32h7-timer-trigger";
602 timers17: timer@44008000 {
603 #address-cells = <1>;
605 compatible = "st,stm32-timers";
606 reg = <0x44008000 0x400>;
607 clocks = <&rcc TIM17_K>;
612 compatible = "st,stm32-pwm";
617 compatible = "st,stm32h7-timer-trigger";
624 #address-cells = <1>;
626 compatible = "st,stm32h7-spi";
627 reg = <0x44009000 0x400>;
628 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
629 clocks = <&rcc SPI5_K>;
630 resets = <&rcc SPI5_R>;
631 dmas = <&dmamux1 85 0x400 0x05>,
632 <&dmamux1 86 0x400 0x05>;
633 dma-names = "rx", "tx";
637 dfsdm: dfsdm@4400d000 {
638 compatible = "st,stm32mp1-dfsdm";
639 reg = <0x4400d000 0x800>;
640 clocks = <&rcc DFSDM_K>;
641 clock-names = "dfsdm";
642 #address-cells = <1>;
647 compatible = "st,stm32-dfsdm-adc";
648 #io-channel-cells = <1>;
650 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
651 dmas = <&dmamux1 101 0x400 0x01>;
657 compatible = "st,stm32-dfsdm-adc";
658 #io-channel-cells = <1>;
660 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
661 dmas = <&dmamux1 102 0x400 0x01>;
667 compatible = "st,stm32-dfsdm-adc";
668 #io-channel-cells = <1>;
670 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
671 dmas = <&dmamux1 103 0x400 0x01>;
677 compatible = "st,stm32-dfsdm-adc";
678 #io-channel-cells = <1>;
680 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
681 dmas = <&dmamux1 104 0x400 0x01>;
687 compatible = "st,stm32-dfsdm-adc";
688 #io-channel-cells = <1>;
690 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
691 dmas = <&dmamux1 91 0x400 0x01>;
697 compatible = "st,stm32-dfsdm-adc";
698 #io-channel-cells = <1>;
700 interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
701 dmas = <&dmamux1 92 0x400 0x01>;
707 m_can1: can@4400e000 {
708 compatible = "bosch,m_can";
709 reg = <0x4400e000 0x400>, <0x44011000 0x2800>;
710 reg-names = "m_can", "message_ram";
711 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
712 <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
713 interrupt-names = "int0", "int1";
714 clocks = <&rcc CK_HSE>, <&rcc FDCAN_K>;
715 clock-names = "hclk", "cclk";
716 bosch,mram-cfg = <0x0 0 0 32 0 0 2 2>;
720 m_can2: can@4400f000 {
721 compatible = "bosch,m_can";
722 reg = <0x4400f000 0x400>, <0x44011000 0x2800>;
723 reg-names = "m_can", "message_ram";
724 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
725 <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
726 interrupt-names = "int0", "int1";
727 clocks = <&rcc CK_HSE>, <&rcc FDCAN_K>;
728 clock-names = "hclk", "cclk";
729 bosch,mram-cfg = <0x0 0 0 32 0 0 2 2>;
734 compatible = "st,stm32-dma";
735 reg = <0x48000000 0x400>;
736 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
737 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
738 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
739 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
740 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
741 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
742 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
743 <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
744 clocks = <&rcc DMA1>;
751 compatible = "st,stm32-dma";
752 reg = <0x48001000 0x400>;
753 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
754 <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
755 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
756 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
757 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
758 <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
759 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
760 <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
761 clocks = <&rcc DMA2>;
767 dmamux1: dma-router@48002000 {
768 compatible = "st,stm32h7-dmamux";
769 reg = <0x48002000 0x1c>;
771 dma-requests = <128>;
772 dma-masters = <&dma1 &dma2>;
774 clocks = <&rcc DMAMUX>;
778 compatible = "st,stm32mp1-adc-core";
779 reg = <0x48003000 0x400>;
780 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
781 <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
782 clocks = <&rcc ADC12>, <&rcc ADC12_K>;
783 clock-names = "bus", "adc";
784 interrupt-controller;
785 #interrupt-cells = <1>;
786 #address-cells = <1>;
791 compatible = "st,stm32mp1-adc";
792 #io-channel-cells = <1>;
794 interrupt-parent = <&adc>;
796 dmas = <&dmamux1 9 0x400 0x01>;
802 compatible = "st,stm32mp1-adc";
803 #io-channel-cells = <1>;
805 interrupt-parent = <&adc>;
807 dmas = <&dmamux1 10 0x400 0x01>;
813 sdmmc3: sdmmc@48004000 {
814 compatible = "st,stm32-sdmmc2";
815 reg = <0x48004000 0x400>, <0x48005000 0x400>;
816 reg-names = "sdmmc", "delay";
817 interrupts = <GIC_SPI 137 IRQ_TYPE_NONE>;
818 clocks = <&rcc SDMMC3_K>;
819 resets = <&rcc SDMMC3_R>;
823 max-frequency = <120000000>;
827 usbotg_hs: usb-otg@49000000 {
828 compatible = "st,stm32mp1-hsotg", "snps,dwc2";
829 reg = <0x49000000 0x10000>;
830 clocks = <&rcc USBO_K>;
832 resets = <&rcc USBO_R>;
833 reset-names = "dwc2";
834 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
835 g-rx-fifo-size = <256>;
836 g-np-tx-fifo-size = <32>;
837 g-tx-fifo-size = <128 128 64 64 64 64 32 32>;
839 usb33d-supply = <&usb33>;
843 hwspinlock: hwspinlock@4c000000 {
844 compatible = "st,stm32-hwspinlock";
846 reg = <0x4c000000 0x400>;
847 clocks = <&rcc HSEM>;
848 clock-names = "hwspinlock";
852 ipcc: mailbox@4c001000 {
853 compatible = "st,stm32mp1-ipcc";
855 reg = <0x4c001000 0x400>;
857 interrupts-extended =
858 <&intc GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
859 <&intc GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
860 interrupt-names = "rx", "tx";
861 clocks = <&rcc IPCC>;
866 compatible = "st,stm32mp1-rcc", "syscon";
867 reg = <0x50000000 0x1000>;
872 rcc_reboot: rcc-reboot@50000000 {
873 compatible = "syscon-reboot";
880 compatible = "st,stm32mp1-pwr", "st,stm32-pwr", "syscon", "simple-mfd";
881 reg = <0x50001000 0x400>;
882 system-power-controller;
883 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
885 clocks = <&rcc PLL2_R>;
886 clock-names = "phyclk";
889 compatible = "st,stm32mp1,pwr-reg";
890 st,tzcr = <&rcc 0x0 0x1>;
893 regulator-name = "reg11";
894 regulator-min-microvolt = <1100000>;
895 regulator-max-microvolt = <1100000>;
899 regulator-name = "reg18";
900 regulator-min-microvolt = <1800000>;
901 regulator-max-microvolt = <1800000>;
905 regulator-name = "usb33";
906 regulator-min-microvolt = <3300000>;
907 regulator-max-microvolt = <3300000>;
912 exti: interrupt-controller@5000d000 {
913 compatible = "st,stm32mp1-exti", "syscon";
914 interrupt-controller;
915 #interrupt-cells = <2>;
916 reg = <0x5000d000 0x400>;
919 syscfg: syscon@50020000 {
920 compatible = "st,stm32mp157-syscfg", "syscon";
921 reg = <0x50020000 0x400>;
924 lptimer2: timer@50021000 {
925 #address-cells = <1>;
927 compatible = "st,stm32-lptimer";
928 reg = <0x50021000 0x400>;
929 clocks = <&rcc LPTIM2_K>;
934 compatible = "st,stm32-pwm-lp";
940 compatible = "st,stm32-lptimer-trigger";
946 compatible = "st,stm32-lptimer-counter";
951 lptimer3: timer@50022000 {
952 #address-cells = <1>;
954 compatible = "st,stm32-lptimer";
955 reg = <0x50022000 0x400>;
956 clocks = <&rcc LPTIM3_K>;
961 compatible = "st,stm32-pwm-lp";
967 compatible = "st,stm32-lptimer-trigger";
973 lptimer4: timer@50023000 {
974 compatible = "st,stm32-lptimer";
975 reg = <0x50023000 0x400>;
976 clocks = <&rcc LPTIM4_K>;
981 compatible = "st,stm32-pwm-lp";
987 lptimer5: timer@50024000 {
988 compatible = "st,stm32-lptimer";
989 reg = <0x50024000 0x400>;
990 clocks = <&rcc LPTIM5_K>;
995 compatible = "st,stm32-pwm-lp";
1001 vrefbuf: vrefbuf@50025000 {
1002 compatible = "st,stm32-vrefbuf";
1003 reg = <0x50025000 0x8>;
1004 regulator-min-microvolt = <1500000>;
1005 regulator-max-microvolt = <2500000>;
1006 clocks = <&rcc VREF>;
1007 status = "disabled";
1010 cryp1: cryp@54001000 {
1011 compatible = "st,stm32mp1-cryp";
1012 reg = <0x54001000 0x400>;
1013 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
1014 clocks = <&rcc CRYP1>;
1015 resets = <&rcc CRYP1_R>;
1016 status = "disabled";
1019 hash1: hash@54002000 {
1020 compatible = "st,stm32f756-hash";
1021 reg = <0x54002000 0x400>;
1022 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
1023 clocks = <&rcc HASH1>;
1024 resets = <&rcc HASH1_R>;
1025 dmas = <&mdma1 31 0x10 0x1000A02 0x0 0x0>;
1028 status = "disabled";
1031 rng1: rng@54003000 {
1032 compatible = "st,stm32-rng";
1033 reg = <0x54003000 0x400>;
1034 clocks = <&rcc RNG1_K>;
1035 resets = <&rcc RNG1_R>;
1036 status = "disabled";
1039 mdma1: dma@58000000 {
1040 compatible = "st,stm32h7-mdma";
1041 reg = <0x58000000 0x1000>;
1042 interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
1043 clocks = <&rcc MDMA>;
1045 dma-channels = <32>;
1046 dma-requests = <48>;
1049 fmc: nand-controller@58002000 {
1050 compatible = "st,stm32mp15-fmc2";
1051 reg = <0x58002000 0x1000>,
1052 <0x80000000 0x1000>,
1053 <0x88010000 0x1000>,
1054 <0x88020000 0x1000>,
1055 <0x81000000 0x1000>,
1056 <0x89010000 0x1000>,
1057 <0x89020000 0x1000>;
1058 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
1059 clocks = <&rcc FMC_K>;
1060 resets = <&rcc FMC_R>;
1061 status = "disabled";
1064 qspi: spi@58003000 {
1065 compatible = "st,stm32f469-qspi";
1066 reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
1067 reg-names = "qspi", "qspi_mm";
1068 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
1069 clocks = <&rcc QSPI_K>;
1070 resets = <&rcc QSPI_R>;
1071 status = "disabled";
1074 sdmmc1: sdmmc@58005000 {
1075 compatible = "st,stm32-sdmmc2";
1076 reg = <0x58005000 0x1000>, <0x58006000 0x1000>;
1077 reg-names = "sdmmc", "delay";
1078 clocks = <&rcc SDMMC1_K>;
1079 resets = <&rcc SDMMC1_R>;
1083 max-frequency = <120000000>;
1084 status = "disabled";
1087 sdmmc2: sdmmc@58007000 {
1088 compatible = "st,stm32-sdmmc2";
1089 reg = <0x58007000 0x1000>, <0x58008000 0x1000>;
1090 reg-names = "sdmmc", "delay";
1091 interrupts = <GIC_SPI 124 IRQ_TYPE_NONE>;
1092 clocks = <&rcc SDMMC2_K>;
1093 resets = <&rcc SDMMC2_R>;
1097 max-frequency = <120000000>;
1098 status = "disabled";
1101 crc1: crc@58009000 {
1102 compatible = "st,stm32f7-crc";
1103 reg = <0x58009000 0x400>;
1104 clocks = <&rcc CRC1>;
1105 status = "disabled";
1108 stmmac_axi_config_0: stmmac-axi-config {
1109 snps,wr_osr_lmt = <0x7>;
1110 snps,rd_osr_lmt = <0x7>;
1111 snps,blen = <0 0 0 0 16 8 4>;
1114 ethernet0: ethernet@5800a000 {
1115 compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a";
1116 reg = <0x5800a000 0x2000>;
1117 reg-names = "stmmaceth";
1118 interrupts-extended =
1119 <&intc GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>,
1120 <&intc GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>,
1122 interrupt-names = "macirq",
1125 clock-names = "stmmaceth",
1129 clocks = <&rcc ETHMAC>,
1133 st,syscon = <&syscfg 0x4>;
1136 snps,en-tx-lpi-clockgating;
1137 snps,axi-config = <&stmmac_axi_config_0>;
1139 status = "disabled";
1142 usbh_ohci: usbh-ohci@5800c000 {
1143 compatible = "generic-ohci";
1144 reg = <0x5800c000 0x1000>;
1145 clocks = <&rcc USBH>;
1146 resets = <&rcc USBH_R>;
1147 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
1148 status = "disabled";
1151 usbh_ehci: usbh-ehci@5800d000 {
1152 compatible = "generic-ehci";
1153 reg = <0x5800d000 0x1000>;
1154 clocks = <&rcc USBH>;
1155 resets = <&rcc USBH_R>;
1156 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
1157 companion = <&usbh_ohci>;
1158 status = "disabled";
1162 compatible = "st,stm32-dsi";
1163 reg = <0x5a000000 0x800>;
1164 clocks = <&rcc DSI_K>, <&clk_hse>, <&rcc DSI_PX>;
1165 clock-names = "pclk", "ref", "px_clk";
1166 resets = <&rcc DSI_R>;
1167 reset-names = "apb";
1168 status = "disabled";
1171 ltdc: display-controller@5a001000 {
1172 compatible = "st,stm32-ltdc";
1173 reg = <0x5a001000 0x400>;
1174 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
1175 <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1176 clocks = <&rcc LTDC_PX>;
1177 clock-names = "lcd";
1178 resets = <&rcc LTDC_R>;
1179 status = "disabled";
1182 iwdg2: watchdog@5a002000 {
1183 compatible = "st,stm32mp1-iwdg";
1184 reg = <0x5a002000 0x400>;
1185 clocks = <&rcc IWDG2>, <&rcc CK_LSI>;
1186 clock-names = "pclk", "lsi";
1187 status = "disabled";
1190 usbphyc: usbphyc@5a006000 {
1191 #address-cells = <1>;
1193 compatible = "st,stm32mp1-usbphyc";
1194 reg = <0x5a006000 0x1000>;
1195 clocks = <&rcc USBPHY_K>;
1196 resets = <&rcc USBPHY_R>;
1197 vdda1v1-supply = <®11>;
1198 vdda1v8-supply = <®18>;
1199 status = "disabled";
1201 usbphyc_port0: usb-phy@0 {
1206 usbphyc_port1: usb-phy@1 {
1212 usart1: serial@5c000000 {
1213 compatible = "st,stm32h7-uart";
1214 reg = <0x5c000000 0x400>;
1215 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
1216 clocks = <&rcc USART1_K>;
1217 status = "disabled";
1220 spi6: spi@5c001000 {
1221 #address-cells = <1>;
1223 compatible = "st,stm32h7-spi";
1224 reg = <0x5c001000 0x400>;
1225 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
1226 clocks = <&rcc SPI6_K>;
1227 resets = <&rcc SPI6_R>;
1228 dmas = <&mdma1 34 0x0 0x40008 0x0 0x0>,
1229 <&mdma1 35 0x0 0x40002 0x0 0x0>;
1230 dma-names = "rx", "tx";
1231 status = "disabled";
1234 i2c4: i2c@5c002000 {
1235 compatible = "st,stm32f7-i2c";
1236 reg = <0x5c002000 0x400>;
1237 interrupt-names = "event", "error";
1238 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
1239 <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1240 clocks = <&rcc I2C4_K>;
1241 resets = <&rcc I2C4_R>;
1242 #address-cells = <1>;
1244 status = "disabled";
1248 compatible = "st,stm32mp1-rtc";
1249 reg = <0x5c004000 0x400>;
1250 clocks = <&rcc RTCAPB>, <&rcc RTC>;
1251 clock-names = "pclk", "rtc_ck";
1252 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
1253 status = "disabled";
1256 bsec: nvmem@5c005000 {
1257 compatible = "st,stm32mp15-bsec";
1258 reg = <0x5c005000 0x400>;
1259 #address-cells = <1>;
1263 i2c6: i2c@5c009000 {
1264 compatible = "st,stm32f7-i2c";
1265 reg = <0x5c009000 0x400>;
1266 interrupt-names = "event", "error";
1267 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
1268 <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
1269 clocks = <&rcc I2C6_K>;
1270 resets = <&rcc I2C6_R>;
1271 #address-cells = <1>;
1273 status = "disabled";