1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
3 * Copyright (C) STMicroelectronics 2021 - All Rights Reserved
4 * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
6 #include <dt-bindings/interrupt-controller/arm-gic.h>
7 #include <dt-bindings/clock/stm32mp13-clks.h>
8 #include <dt-bindings/reset/stm32mp13-resets.h>
19 compatible = "arm,cortex-a7";
26 compatible = "arm,cortex-a7-pmu";
27 interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
28 interrupt-affinity = <&cpu0>;
29 interrupt-parent = <&intc>;
35 compatible = "linaro,optee-tz";
36 interrupt-parent = <&intc>;
37 interrupts = <GIC_PPI 15 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
41 compatible = "linaro,scmi-optee";
44 linaro,optee-channel-id = <0>;
46 scmi_clk: protocol@14 {
51 scmi_reset: protocol@16 {
56 scmi_voltd: protocol@17 {
59 scmi_regu: regulators {
63 scmi_reg11: regulator@0 {
64 reg = <VOLTD_SCMI_REG11>;
65 regulator-name = "reg11";
67 scmi_reg18: regulator@1 {
68 reg = <VOLTD_SCMI_REG18>;
69 regulator-name = "reg18";
71 scmi_usb33: regulator@2 {
72 reg = <VOLTD_SCMI_USB33>;
73 regulator-name = "usb33";
80 intc: interrupt-controller@a0021000 {
81 compatible = "arm,cortex-a7-gic";
82 #interrupt-cells = <3>;
84 reg = <0xa0021000 0x1000>,
89 compatible = "arm,psci-1.0";
94 compatible = "arm,armv7-timer";
95 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
96 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
97 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
98 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
99 interrupt-parent = <&intc>;
104 compatible = "simple-bus";
105 #address-cells = <1>;
107 interrupt-parent = <&intc>;
110 timers2: timer@40000000 {
111 #address-cells = <1>;
113 compatible = "st,stm32-timers";
114 reg = <0x40000000 0x400>;
115 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
116 interrupt-names = "global";
117 clocks = <&rcc TIM2_K>;
119 dmas = <&dmamux1 18 0x400 0x1>,
120 <&dmamux1 19 0x400 0x1>,
121 <&dmamux1 20 0x400 0x1>,
122 <&dmamux1 21 0x400 0x1>,
123 <&dmamux1 22 0x400 0x1>;
124 dma-names = "ch1", "ch2", "ch3", "ch4", "up";
128 compatible = "st,stm32-pwm";
134 compatible = "st,stm32h7-timer-trigger";
140 compatible = "st,stm32-timer-counter";
145 timers3: timer@40001000 {
146 #address-cells = <1>;
148 compatible = "st,stm32-timers";
149 reg = <0x40001000 0x400>;
150 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
151 interrupt-names = "global";
152 clocks = <&rcc TIM3_K>;
154 dmas = <&dmamux1 23 0x400 0x1>,
155 <&dmamux1 24 0x400 0x1>,
156 <&dmamux1 25 0x400 0x1>,
157 <&dmamux1 26 0x400 0x1>,
158 <&dmamux1 27 0x400 0x1>,
159 <&dmamux1 28 0x400 0x1>;
160 dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
164 compatible = "st,stm32-pwm";
170 compatible = "st,stm32h7-timer-trigger";
176 compatible = "st,stm32-timer-counter";
181 timers4: timer@40002000 {
182 #address-cells = <1>;
184 compatible = "st,stm32-timers";
185 reg = <0x40002000 0x400>;
186 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
187 interrupt-names = "global";
188 clocks = <&rcc TIM4_K>;
190 dmas = <&dmamux1 29 0x400 0x1>,
191 <&dmamux1 30 0x400 0x1>,
192 <&dmamux1 31 0x400 0x1>,
193 <&dmamux1 32 0x400 0x1>;
194 dma-names = "ch1", "ch2", "ch3", "up";
198 compatible = "st,stm32-pwm";
204 compatible = "st,stm32h7-timer-trigger";
210 compatible = "st,stm32-timer-counter";
215 timers5: timer@40003000 {
216 #address-cells = <1>;
218 compatible = "st,stm32-timers";
219 reg = <0x40003000 0x400>;
220 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
221 interrupt-names = "global";
222 clocks = <&rcc TIM5_K>;
224 dmas = <&dmamux1 55 0x400 0x1>,
225 <&dmamux1 56 0x400 0x1>,
226 <&dmamux1 57 0x400 0x1>,
227 <&dmamux1 58 0x400 0x1>,
228 <&dmamux1 59 0x400 0x1>,
229 <&dmamux1 60 0x400 0x1>;
230 dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
234 compatible = "st,stm32-pwm";
240 compatible = "st,stm32h7-timer-trigger";
246 compatible = "st,stm32-timer-counter";
251 timers6: timer@40004000 {
252 #address-cells = <1>;
254 compatible = "st,stm32-timers";
255 reg = <0x40004000 0x400>;
256 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
257 interrupt-names = "global";
258 clocks = <&rcc TIM6_K>;
260 dmas = <&dmamux1 69 0x400 0x1>;
265 compatible = "st,stm32h7-timer-trigger";
271 timers7: timer@40005000 {
272 #address-cells = <1>;
274 compatible = "st,stm32-timers";
275 reg = <0x40005000 0x400>;
276 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
277 interrupt-names = "global";
278 clocks = <&rcc TIM7_K>;
280 dmas = <&dmamux1 70 0x400 0x1>;
285 compatible = "st,stm32h7-timer-trigger";
291 lptimer1: timer@40009000 {
292 #address-cells = <1>;
294 compatible = "st,stm32-lptimer";
295 reg = <0x40009000 0x400>;
296 interrupts-extended = <&exti 47 IRQ_TYPE_LEVEL_HIGH>;
297 clocks = <&rcc LPTIM1_K>;
303 compatible = "st,stm32-pwm-lp";
309 compatible = "st,stm32-lptimer-trigger";
315 compatible = "st,stm32-lptimer-counter";
320 compatible = "st,stm32-lptimer-timer";
325 i2s2: audio-controller@4000b000 {
326 compatible = "st,stm32h7-i2s";
327 reg = <0x4000b000 0x400>;
328 #sound-dai-cells = <0>;
329 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
330 dmas = <&dmamux1 39 0x400 0x01>,
331 <&dmamux1 40 0x400 0x01>;
332 dma-names = "rx", "tx";
337 compatible = "st,stm32h7-spi";
338 reg = <0x4000b000 0x400>;
339 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
340 clocks = <&rcc SPI2_K>;
341 resets = <&rcc SPI2_R>;
342 #address-cells = <1>;
344 dmas = <&dmamux1 39 0x400 0x01>,
345 <&dmamux1 40 0x400 0x01>;
346 dma-names = "rx", "tx";
350 i2s3: audio-controller@4000c000 {
351 compatible = "st,stm32h7-i2s";
352 reg = <0x4000c000 0x400>;
353 #sound-dai-cells = <0>;
354 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
355 dmas = <&dmamux1 61 0x400 0x01>,
356 <&dmamux1 62 0x400 0x01>;
357 dma-names = "rx", "tx";
362 compatible = "st,stm32h7-spi";
363 reg = <0x4000c000 0x400>;
364 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
365 clocks = <&rcc SPI3_K>;
366 resets = <&rcc SPI3_R>;
367 #address-cells = <1>;
369 dmas = <&dmamux1 61 0x400 0x01>,
370 <&dmamux1 62 0x400 0x01>;
371 dma-names = "rx", "tx";
375 spdifrx: audio-controller@4000d000 {
376 compatible = "st,stm32h7-spdifrx";
377 reg = <0x4000d000 0x400>;
378 #sound-dai-cells = <0>;
379 clocks = <&rcc SPDIF_K>;
380 clock-names = "kclk";
381 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
382 dmas = <&dmamux1 93 0x400 0x01>,
383 <&dmamux1 94 0x400 0x01>;
384 dma-names = "rx", "rx-ctrl";
388 usart3: serial@4000f000 {
389 compatible = "st,stm32h7-uart";
390 reg = <0x4000f000 0x400>;
391 interrupts-extended = <&exti 28 IRQ_TYPE_LEVEL_HIGH>;
392 clocks = <&rcc USART3_K>;
393 resets = <&rcc USART3_R>;
395 dmas = <&dmamux1 45 0x400 0x5>,
396 <&dmamux1 46 0x400 0x1>;
397 dma-names = "rx", "tx";
401 uart4: serial@40010000 {
402 compatible = "st,stm32h7-uart";
403 reg = <0x40010000 0x400>;
404 interrupts-extended = <&exti 30 IRQ_TYPE_LEVEL_HIGH>;
405 clocks = <&rcc UART4_K>;
406 resets = <&rcc UART4_R>;
408 dmas = <&dmamux1 63 0x400 0x5>,
409 <&dmamux1 64 0x400 0x1>;
410 dma-names = "rx", "tx";
414 uart5: serial@40011000 {
415 compatible = "st,stm32h7-uart";
416 reg = <0x40011000 0x400>;
417 interrupts-extended = <&exti 31 IRQ_TYPE_LEVEL_HIGH>;
418 clocks = <&rcc UART5_K>;
419 resets = <&rcc UART5_R>;
421 dmas = <&dmamux1 65 0x400 0x5>,
422 <&dmamux1 66 0x400 0x1>;
423 dma-names = "rx", "tx";
428 compatible = "st,stm32mp13-i2c";
429 reg = <0x40012000 0x400>;
430 interrupt-names = "event", "error";
431 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
432 <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
433 clocks = <&rcc I2C1_K>;
434 resets = <&rcc I2C1_R>;
435 #address-cells = <1>;
437 dmas = <&dmamux1 33 0x400 0x1>,
438 <&dmamux1 34 0x400 0x1>;
439 dma-names = "rx", "tx";
440 st,syscfg-fmp = <&syscfg 0x4 0x1>;
446 compatible = "st,stm32mp13-i2c";
447 reg = <0x40013000 0x400>;
448 interrupt-names = "event", "error";
449 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
450 <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
451 clocks = <&rcc I2C2_K>;
452 resets = <&rcc I2C2_R>;
453 #address-cells = <1>;
455 dmas = <&dmamux1 35 0x400 0x1>,
456 <&dmamux1 36 0x400 0x1>;
457 dma-names = "rx", "tx";
458 st,syscfg-fmp = <&syscfg 0x4 0x2>;
463 uart7: serial@40018000 {
464 compatible = "st,stm32h7-uart";
465 reg = <0x40018000 0x400>;
466 interrupts-extended = <&exti 32 IRQ_TYPE_LEVEL_HIGH>;
467 clocks = <&rcc UART7_K>;
468 resets = <&rcc UART7_R>;
470 dmas = <&dmamux1 79 0x400 0x5>,
471 <&dmamux1 80 0x400 0x1>;
472 dma-names = "rx", "tx";
476 uart8: serial@40019000 {
477 compatible = "st,stm32h7-uart";
478 reg = <0x40019000 0x400>;
479 interrupts-extended = <&exti 33 IRQ_TYPE_LEVEL_HIGH>;
480 clocks = <&rcc UART8_K>;
481 resets = <&rcc UART8_R>;
483 dmas = <&dmamux1 81 0x400 0x5>,
484 <&dmamux1 82 0x400 0x1>;
485 dma-names = "rx", "tx";
489 timers1: timer@44000000 {
490 #address-cells = <1>;
492 compatible = "st,stm32-timers";
493 reg = <0x44000000 0x400>;
494 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
495 <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
496 <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
497 <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
498 interrupt-names = "brk", "up", "trg-com", "cc";
499 clocks = <&rcc TIM1_K>;
501 dmas = <&dmamux1 11 0x400 0x1>,
502 <&dmamux1 12 0x400 0x1>,
503 <&dmamux1 13 0x400 0x1>,
504 <&dmamux1 14 0x400 0x1>,
505 <&dmamux1 15 0x400 0x1>,
506 <&dmamux1 16 0x400 0x1>,
507 <&dmamux1 17 0x400 0x1>;
508 dma-names = "ch1", "ch2", "ch3", "ch4",
513 compatible = "st,stm32-pwm";
519 compatible = "st,stm32h7-timer-trigger";
525 compatible = "st,stm32-timer-counter";
530 timers8: timer@44001000 {
531 #address-cells = <1>;
533 compatible = "st,stm32-timers";
534 reg = <0x44001000 0x400>;
535 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
536 <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
537 <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>,
538 <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
539 interrupt-names = "brk", "up", "trg-com", "cc";
540 clocks = <&rcc TIM8_K>;
542 dmas = <&dmamux1 47 0x400 0x1>,
543 <&dmamux1 48 0x400 0x1>,
544 <&dmamux1 49 0x400 0x1>,
545 <&dmamux1 50 0x400 0x1>,
546 <&dmamux1 51 0x400 0x1>,
547 <&dmamux1 52 0x400 0x1>,
548 <&dmamux1 53 0x400 0x1>;
549 dma-names = "ch1", "ch2", "ch3", "ch4",
554 compatible = "st,stm32-pwm";
560 compatible = "st,stm32h7-timer-trigger";
566 compatible = "st,stm32-timer-counter";
571 usart6: serial@44003000 {
572 compatible = "st,stm32h7-uart";
573 reg = <0x44003000 0x400>;
574 interrupts-extended = <&exti 29 IRQ_TYPE_LEVEL_HIGH>;
575 clocks = <&rcc USART6_K>;
576 resets = <&rcc USART6_R>;
578 dmas = <&dmamux1 71 0x400 0x5>,
579 <&dmamux1 72 0x400 0x1>;
580 dma-names = "rx", "tx";
584 i2s1: audio-controller@44004000 {
585 compatible = "st,stm32h7-i2s";
586 reg = <0x44004000 0x400>;
587 #sound-dai-cells = <0>;
588 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
589 dmas = <&dmamux1 37 0x400 0x01>,
590 <&dmamux1 38 0x400 0x01>;
591 dma-names = "rx", "tx";
596 compatible = "st,stm32h7-spi";
597 reg = <0x44004000 0x400>;
598 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
599 clocks = <&rcc SPI1_K>;
600 resets = <&rcc SPI1_R>;
601 #address-cells = <1>;
603 dmas = <&dmamux1 37 0x400 0x01>,
604 <&dmamux1 38 0x400 0x01>;
605 dma-names = "rx", "tx";
610 compatible = "st,stm32h7-sai";
611 reg = <0x4400a000 0x4>, <0x4400a3f0 0x10>;
612 ranges = <0 0x4400a000 0x400>;
613 #address-cells = <1>;
615 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
616 resets = <&rcc SAI1_R>;
619 sai1a: audio-controller@4400a004 {
620 compatible = "st,stm32-sai-sub-a";
622 #sound-dai-cells = <0>;
623 clocks = <&rcc SAI1_K>;
624 clock-names = "sai_ck";
625 dmas = <&dmamux1 87 0x400 0x01>;
629 sai1b: audio-controller@4400a024 {
630 compatible = "st,stm32-sai-sub-b";
632 #sound-dai-cells = <0>;
633 clocks = <&rcc SAI1_K>;
634 clock-names = "sai_ck";
635 dmas = <&dmamux1 88 0x400 0x01>;
641 compatible = "st,stm32h7-sai";
642 reg = <0x4400b000 0x4>, <0x4400b3f0 0x10>;
643 ranges = <0 0x4400b000 0x400>;
644 #address-cells = <1>;
646 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
647 resets = <&rcc SAI2_R>;
650 sai2a: audio-controller@4400b004 {
651 compatible = "st,stm32-sai-sub-a";
653 #sound-dai-cells = <0>;
654 clocks = <&rcc SAI2_K>;
655 clock-names = "sai_ck";
656 dmas = <&dmamux1 89 0x400 0x01>;
660 sai2b: audio-controller@4400b024 {
661 compatible = "st,stm32-sai-sub-b";
663 #sound-dai-cells = <0>;
664 clocks = <&rcc SAI2_K>;
665 clock-names = "sai_ck";
666 dmas = <&dmamux1 90 0x400 0x01>;
671 dfsdm: dfsdm@4400d000 {
672 compatible = "st,stm32mp1-dfsdm";
673 reg = <0x4400d000 0x800>;
674 clocks = <&rcc DFSDM_K>;
675 clock-names = "dfsdm";
676 #address-cells = <1>;
681 compatible = "st,stm32-dfsdm-adc";
683 #io-channel-cells = <1>;
684 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
685 dmas = <&dmamux1 101 0x400 0x01>;
691 compatible = "st,stm32-dfsdm-adc";
693 #io-channel-cells = <1>;
694 interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
695 dmas = <&dmamux1 102 0x400 0x01>;
701 dma1: dma-controller@48000000 {
702 compatible = "st,stm32-dma";
703 reg = <0x48000000 0x400>;
704 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
705 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
706 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
707 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
708 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
709 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
710 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
711 <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
712 clocks = <&rcc DMA1>;
713 resets = <&rcc DMA1_R>;
719 dma2: dma-controller@48001000 {
720 compatible = "st,stm32-dma";
721 reg = <0x48001000 0x400>;
722 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
723 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
724 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
725 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
726 <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>,
727 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
728 <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
729 <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
730 clocks = <&rcc DMA2>;
731 resets = <&rcc DMA2_R>;
737 dmamux1: dma-router@48002000 {
738 compatible = "st,stm32h7-dmamux";
739 reg = <0x48002000 0x40>;
740 clocks = <&rcc DMAMUX1>;
741 resets = <&rcc DMAMUX1_R>;
743 dma-masters = <&dma1 &dma2>;
744 dma-requests = <128>;
748 adc_2: adc@48004000 {
749 compatible = "st,stm32mp13-adc-core";
750 reg = <0x48004000 0x400>;
751 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
752 clocks = <&rcc ADC2>, <&rcc ADC2_K>;
753 clock-names = "bus", "adc";
754 interrupt-controller;
755 #interrupt-cells = <1>;
756 #address-cells = <1>;
761 compatible = "st,stm32mp13-adc";
762 #io-channel-cells = <1>;
763 #address-cells = <1>;
766 interrupt-parent = <&adc_2>;
768 dmas = <&dmamux1 10 0x400 0x80000001>;
791 usbotg_hs: usb@49000000 {
792 compatible = "st,stm32mp15-hsotg", "snps,dwc2";
793 reg = <0x49000000 0x40000>;
794 clocks = <&rcc USBO_K>;
796 resets = <&rcc USBO_R>;
797 reset-names = "dwc2";
798 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
799 g-rx-fifo-size = <512>;
800 g-np-tx-fifo-size = <32>;
801 g-tx-fifo-size = <256 16 16 16 16 16 16 16>;
804 usb33d-supply = <&scmi_usb33>;
808 usart1: serial@4c000000 {
809 compatible = "st,stm32h7-uart";
810 reg = <0x4c000000 0x400>;
811 interrupts-extended = <&exti 26 IRQ_TYPE_LEVEL_HIGH>;
812 clocks = <&rcc USART1_K>;
813 resets = <&rcc USART1_R>;
815 dmas = <&dmamux1 41 0x400 0x5>,
816 <&dmamux1 42 0x400 0x1>;
817 dma-names = "rx", "tx";
821 usart2: serial@4c001000 {
822 compatible = "st,stm32h7-uart";
823 reg = <0x4c001000 0x400>;
824 interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>;
825 clocks = <&rcc USART2_K>;
826 resets = <&rcc USART2_R>;
828 dmas = <&dmamux1 43 0x400 0x5>,
829 <&dmamux1 44 0x400 0x1>;
830 dma-names = "rx", "tx";
834 i2s4: audio-controller@4c002000 {
835 compatible = "st,stm32h7-i2s";
836 reg = <0x4c002000 0x400>;
837 #sound-dai-cells = <0>;
838 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
839 dmas = <&dmamux1 83 0x400 0x01>,
840 <&dmamux1 84 0x400 0x01>;
841 dma-names = "rx", "tx";
846 compatible = "st,stm32h7-spi";
847 reg = <0x4c002000 0x400>;
848 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
849 clocks = <&rcc SPI4_K>;
850 resets = <&rcc SPI4_R>;
851 #address-cells = <1>;
853 dmas = <&dmamux1 83 0x400 0x01>,
854 <&dmamux1 84 0x400 0x01>;
855 dma-names = "rx", "tx";
860 compatible = "st,stm32h7-spi";
861 reg = <0x4c003000 0x400>;
862 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
863 clocks = <&rcc SPI5_K>;
864 resets = <&rcc SPI5_R>;
865 #address-cells = <1>;
867 dmas = <&dmamux1 85 0x400 0x01>,
868 <&dmamux1 86 0x400 0x01>;
869 dma-names = "rx", "tx";
874 compatible = "st,stm32mp13-i2c";
875 reg = <0x4c004000 0x400>;
876 interrupt-names = "event", "error";
877 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
878 <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
879 clocks = <&rcc I2C3_K>;
880 resets = <&rcc I2C3_R>;
881 #address-cells = <1>;
883 dmas = <&dmamux1 73 0x400 0x1>,
884 <&dmamux1 74 0x400 0x1>;
885 dma-names = "rx", "tx";
886 st,syscfg-fmp = <&syscfg 0x4 0x4>;
892 compatible = "st,stm32mp13-i2c";
893 reg = <0x4c005000 0x400>;
894 interrupt-names = "event", "error";
895 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
896 <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
897 clocks = <&rcc I2C4_K>;
898 resets = <&rcc I2C4_R>;
899 #address-cells = <1>;
901 dmas = <&dmamux1 75 0x400 0x1>,
902 <&dmamux1 76 0x400 0x1>;
903 dma-names = "rx", "tx";
904 st,syscfg-fmp = <&syscfg 0x4 0x8>;
910 compatible = "st,stm32mp13-i2c";
911 reg = <0x4c006000 0x400>;
912 interrupt-names = "event", "error";
913 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
914 <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
915 clocks = <&rcc I2C5_K>;
916 resets = <&rcc I2C5_R>;
917 #address-cells = <1>;
919 dmas = <&dmamux1 115 0x400 0x1>,
920 <&dmamux1 116 0x400 0x1>;
921 dma-names = "rx", "tx";
922 st,syscfg-fmp = <&syscfg 0x4 0x10>;
927 timers12: timer@4c007000 {
928 #address-cells = <1>;
930 compatible = "st,stm32-timers";
931 reg = <0x4c007000 0x400>;
932 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
933 interrupt-names = "global";
934 clocks = <&rcc TIM12_K>;
939 compatible = "st,stm32-pwm";
945 compatible = "st,stm32h7-timer-trigger";
951 timers13: timer@4c008000 {
952 #address-cells = <1>;
954 compatible = "st,stm32-timers";
955 reg = <0x4c008000 0x400>;
956 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
957 interrupt-names = "global";
958 clocks = <&rcc TIM13_K>;
963 compatible = "st,stm32-pwm";
969 compatible = "st,stm32h7-timer-trigger";
975 timers14: timer@4c009000 {
976 #address-cells = <1>;
978 compatible = "st,stm32-timers";
979 reg = <0x4c009000 0x400>;
980 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
981 interrupt-names = "global";
982 clocks = <&rcc TIM14_K>;
987 compatible = "st,stm32-pwm";
993 compatible = "st,stm32h7-timer-trigger";
999 timers15: timer@4c00a000 {
1000 #address-cells = <1>;
1002 compatible = "st,stm32-timers";
1003 reg = <0x4c00a000 0x400>;
1004 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
1005 interrupt-names = "global";
1006 clocks = <&rcc TIM15_K>;
1007 clock-names = "int";
1008 dmas = <&dmamux1 105 0x400 0x1>,
1009 <&dmamux1 106 0x400 0x1>,
1010 <&dmamux1 107 0x400 0x1>,
1011 <&dmamux1 108 0x400 0x1>;
1012 dma-names = "ch1", "up", "trig", "com";
1013 status = "disabled";
1016 compatible = "st,stm32-pwm";
1018 status = "disabled";
1022 compatible = "st,stm32h7-timer-trigger";
1024 status = "disabled";
1028 timers16: timer@4c00b000 {
1029 #address-cells = <1>;
1031 compatible = "st,stm32-timers";
1032 reg = <0x4c00b000 0x400>;
1033 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
1034 interrupt-names = "global";
1035 clocks = <&rcc TIM16_K>;
1036 clock-names = "int";
1037 dmas = <&dmamux1 109 0x400 0x1>,
1038 <&dmamux1 110 0x400 0x1>;
1039 dma-names = "ch1", "up";
1040 status = "disabled";
1043 compatible = "st,stm32-pwm";
1045 status = "disabled";
1049 compatible = "st,stm32h7-timer-trigger";
1051 status = "disabled";
1055 timers17: timer@4c00c000 {
1056 #address-cells = <1>;
1058 compatible = "st,stm32-timers";
1059 reg = <0x4c00c000 0x400>;
1060 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
1061 interrupt-names = "global";
1062 clocks = <&rcc TIM17_K>;
1063 clock-names = "int";
1064 dmas = <&dmamux1 111 0x400 0x1>,
1065 <&dmamux1 112 0x400 0x1>;
1066 dma-names = "ch1", "up";
1067 status = "disabled";
1070 compatible = "st,stm32-pwm";
1072 status = "disabled";
1076 compatible = "st,stm32h7-timer-trigger";
1078 status = "disabled";
1083 compatible = "st,stm32mp13-rcc", "syscon";
1084 reg = <0x50000000 0x1000>;
1087 clock-names = "hse", "hsi", "csi", "lse", "lsi";
1088 clocks = <&scmi_clk CK_SCMI_HSE>,
1089 <&scmi_clk CK_SCMI_HSI>,
1090 <&scmi_clk CK_SCMI_CSI>,
1091 <&scmi_clk CK_SCMI_LSE>,
1092 <&scmi_clk CK_SCMI_LSI>;
1095 exti: interrupt-controller@5000d000 {
1096 compatible = "st,stm32mp13-exti", "syscon";
1097 interrupt-controller;
1098 #interrupt-cells = <2>;
1099 reg = <0x5000d000 0x400>;
1102 syscfg: syscon@50020000 {
1103 compatible = "st,stm32mp157-syscfg", "syscon";
1104 reg = <0x50020000 0x400>;
1105 clocks = <&rcc SYSCFG>;
1108 lptimer2: timer@50021000 {
1109 #address-cells = <1>;
1111 compatible = "st,stm32-lptimer";
1112 reg = <0x50021000 0x400>;
1113 interrupts-extended = <&exti 48 IRQ_TYPE_LEVEL_HIGH>;
1114 clocks = <&rcc LPTIM2_K>;
1115 clock-names = "mux";
1117 status = "disabled";
1120 compatible = "st,stm32-pwm-lp";
1122 status = "disabled";
1126 compatible = "st,stm32-lptimer-trigger";
1128 status = "disabled";
1132 compatible = "st,stm32-lptimer-counter";
1133 status = "disabled";
1137 compatible = "st,stm32-lptimer-timer";
1138 status = "disabled";
1142 lptimer3: timer@50022000 {
1143 #address-cells = <1>;
1145 compatible = "st,stm32-lptimer";
1146 reg = <0x50022000 0x400>;
1147 interrupts-extended = <&exti 50 IRQ_TYPE_LEVEL_HIGH>;
1148 clocks = <&rcc LPTIM3_K>;
1149 clock-names = "mux";
1151 status = "disabled";
1154 compatible = "st,stm32-pwm-lp";
1156 status = "disabled";
1160 compatible = "st,stm32-lptimer-trigger";
1162 status = "disabled";
1166 compatible = "st,stm32-lptimer-timer";
1167 status = "disabled";
1171 lptimer4: timer@50023000 {
1172 compatible = "st,stm32-lptimer";
1173 reg = <0x50023000 0x400>;
1174 interrupts-extended = <&exti 52 IRQ_TYPE_LEVEL_HIGH>;
1175 clocks = <&rcc LPTIM4_K>;
1176 clock-names = "mux";
1178 status = "disabled";
1181 compatible = "st,stm32-pwm-lp";
1183 status = "disabled";
1187 compatible = "st,stm32-lptimer-timer";
1188 status = "disabled";
1192 lptimer5: timer@50024000 {
1193 compatible = "st,stm32-lptimer";
1194 reg = <0x50024000 0x400>;
1195 interrupts-extended = <&exti 53 IRQ_TYPE_LEVEL_HIGH>;
1196 clocks = <&rcc LPTIM5_K>;
1197 clock-names = "mux";
1199 status = "disabled";
1202 compatible = "st,stm32-pwm-lp";
1204 status = "disabled";
1208 compatible = "st,stm32-lptimer-timer";
1209 status = "disabled";
1213 hash: hash@54003000 {
1214 compatible = "st,stm32mp13-hash";
1215 reg = <0x54003000 0x400>;
1216 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
1217 clocks = <&rcc HASH1>;
1218 resets = <&rcc HASH1_R>;
1219 dmas = <&mdma 30 0x2 0x1000a02 0x0 0x0>;
1221 status = "disabled";
1225 compatible = "st,stm32mp13-rng";
1226 reg = <0x54004000 0x400>;
1227 clocks = <&rcc RNG1_K>;
1228 resets = <&rcc RNG1_R>;
1229 status = "disabled";
1232 mdma: dma-controller@58000000 {
1233 compatible = "st,stm32h7-mdma";
1234 reg = <0x58000000 0x1000>;
1235 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
1236 clocks = <&rcc MDMA>;
1238 dma-channels = <32>;
1239 dma-requests = <48>;
1242 fmc: memory-controller@58002000 {
1243 compatible = "st,stm32mp1-fmc2-ebi";
1244 reg = <0x58002000 0x1000>;
1245 ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */
1246 <1 0 0x64000000 0x04000000>, /* EBI CS 2 */
1247 <2 0 0x68000000 0x04000000>, /* EBI CS 3 */
1248 <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */
1249 <4 0 0x80000000 0x10000000>; /* NAND */
1250 #address-cells = <2>;
1252 clocks = <&rcc FMC_K>;
1253 resets = <&rcc FMC_R>;
1254 status = "disabled";
1256 nand-controller@4,0 {
1257 compatible = "st,stm32mp1-fmc2-nfc";
1258 reg = <4 0x00000000 0x1000>,
1259 <4 0x08010000 0x1000>,
1260 <4 0x08020000 0x1000>,
1261 <4 0x01000000 0x1000>,
1262 <4 0x09010000 0x1000>,
1263 <4 0x09020000 0x1000>;
1264 #address-cells = <1>;
1266 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
1267 dmas = <&mdma 24 0x2 0x12000a02 0x0 0x0>,
1268 <&mdma 24 0x2 0x12000a08 0x0 0x0>,
1269 <&mdma 25 0x2 0x12000a0a 0x0 0x0>;
1270 dma-names = "tx", "rx", "ecc";
1271 status = "disabled";
1275 qspi: spi@58003000 {
1276 compatible = "st,stm32f469-qspi";
1277 reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
1278 reg-names = "qspi", "qspi_mm";
1279 #address-cells = <1>;
1281 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
1282 dmas = <&mdma 26 0x2 0x10100002 0x0 0x0>,
1283 <&mdma 26 0x2 0x10100008 0x0 0x0>;
1284 dma-names = "tx", "rx";
1285 clocks = <&rcc QSPI_K>;
1286 resets = <&rcc QSPI_R>;
1287 status = "disabled";
1290 sdmmc1: mmc@58005000 {
1291 compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
1292 arm,primecell-periphid = <0x20253180>;
1293 reg = <0x58005000 0x1000>, <0x58006000 0x1000>;
1294 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
1295 clocks = <&rcc SDMMC1_K>;
1296 clock-names = "apb_pclk";
1297 resets = <&rcc SDMMC1_R>;
1300 max-frequency = <130000000>;
1301 status = "disabled";
1304 sdmmc2: mmc@58007000 {
1305 compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
1306 arm,primecell-periphid = <0x20253180>;
1307 reg = <0x58007000 0x1000>, <0x58008000 0x1000>;
1308 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
1309 clocks = <&rcc SDMMC2_K>;
1310 clock-names = "apb_pclk";
1311 resets = <&rcc SDMMC2_R>;
1314 max-frequency = <130000000>;
1315 status = "disabled";
1318 crc1: crc@58009000 {
1319 compatible = "st,stm32f7-crc";
1320 reg = <0x58009000 0x400>;
1321 clocks = <&rcc CRC1>;
1322 status = "disabled";
1325 usbh_ohci: usb@5800c000 {
1326 compatible = "generic-ohci";
1327 reg = <0x5800c000 0x1000>;
1328 clocks = <&usbphyc>, <&rcc USBH>;
1329 resets = <&rcc USBH_R>;
1330 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
1331 status = "disabled";
1334 usbh_ehci: usb@5800d000 {
1335 compatible = "generic-ehci";
1336 reg = <0x5800d000 0x1000>;
1337 clocks = <&usbphyc>, <&rcc USBH>;
1338 resets = <&rcc USBH_R>;
1339 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
1340 companion = <&usbh_ohci>;
1341 status = "disabled";
1344 iwdg2: watchdog@5a002000 {
1345 compatible = "st,stm32mp1-iwdg";
1346 reg = <0x5a002000 0x400>;
1347 clocks = <&rcc IWDG2>, <&scmi_clk CK_SCMI_LSI>;
1348 clock-names = "pclk", "lsi";
1349 status = "disabled";
1352 usbphyc: usbphyc@5a006000 {
1353 #address-cells = <1>;
1356 compatible = "st,stm32mp1-usbphyc";
1357 reg = <0x5a006000 0x1000>;
1358 clocks = <&rcc USBPHY_K>;
1359 resets = <&rcc USBPHY_R>;
1360 vdda1v1-supply = <&scmi_reg11>;
1361 vdda1v8-supply = <&scmi_reg18>;
1362 status = "disabled";
1364 usbphyc_port0: usb-phy@0 {
1369 usbphyc_port1: usb-phy@1 {
1376 compatible = "st,stm32mp1-rtc";
1377 reg = <0x5c004000 0x400>;
1378 interrupts-extended = <&exti 19 IRQ_TYPE_LEVEL_HIGH>;
1379 clocks = <&scmi_clk CK_SCMI_RTCAPB>,
1380 <&scmi_clk CK_SCMI_RTC>;
1381 clock-names = "pclk", "rtc_ck";
1382 status = "disabled";
1385 bsec: efuse@5c005000 {
1386 compatible = "st,stm32mp13-bsec";
1387 reg = <0x5c005000 0x400>;
1388 #address-cells = <1>;
1391 part_number_otp: part_number_otp@4 {
1404 * Break node order to solve dependency probe issue between
1407 pinctrl: pinctrl@50002000 {
1408 #address-cells = <1>;
1410 compatible = "st,stm32mp135-pinctrl";
1411 ranges = <0 0x50002000 0x8400>;
1412 interrupt-parent = <&exti>;
1413 st,syscfg = <&exti 0x60 0xff>;
1415 gpioa: gpio@50002000 {
1418 interrupt-controller;
1419 #interrupt-cells = <2>;
1421 clocks = <&rcc GPIOA>;
1422 st,bank-name = "GPIOA";
1424 gpio-ranges = <&pinctrl 0 0 16>;
1427 gpiob: gpio@50003000 {
1430 interrupt-controller;
1431 #interrupt-cells = <2>;
1432 reg = <0x1000 0x400>;
1433 clocks = <&rcc GPIOB>;
1434 st,bank-name = "GPIOB";
1436 gpio-ranges = <&pinctrl 0 16 16>;
1439 gpioc: gpio@50004000 {
1442 interrupt-controller;
1443 #interrupt-cells = <2>;
1444 reg = <0x2000 0x400>;
1445 clocks = <&rcc GPIOC>;
1446 st,bank-name = "GPIOC";
1448 gpio-ranges = <&pinctrl 0 32 16>;
1451 gpiod: gpio@50005000 {
1454 interrupt-controller;
1455 #interrupt-cells = <2>;
1456 reg = <0x3000 0x400>;
1457 clocks = <&rcc GPIOD>;
1458 st,bank-name = "GPIOD";
1460 gpio-ranges = <&pinctrl 0 48 16>;
1463 gpioe: gpio@50006000 {
1466 interrupt-controller;
1467 #interrupt-cells = <2>;
1468 reg = <0x4000 0x400>;
1469 clocks = <&rcc GPIOE>;
1470 st,bank-name = "GPIOE";
1472 gpio-ranges = <&pinctrl 0 64 16>;
1475 gpiof: gpio@50007000 {
1478 interrupt-controller;
1479 #interrupt-cells = <2>;
1480 reg = <0x5000 0x400>;
1481 clocks = <&rcc GPIOF>;
1482 st,bank-name = "GPIOF";
1484 gpio-ranges = <&pinctrl 0 80 16>;
1487 gpiog: gpio@50008000 {
1490 interrupt-controller;
1491 #interrupt-cells = <2>;
1492 reg = <0x6000 0x400>;
1493 clocks = <&rcc GPIOG>;
1494 st,bank-name = "GPIOG";
1496 gpio-ranges = <&pinctrl 0 96 16>;
1499 gpioh: gpio@50009000 {
1502 interrupt-controller;
1503 #interrupt-cells = <2>;
1504 reg = <0x7000 0x400>;
1505 clocks = <&rcc GPIOH>;
1506 st,bank-name = "GPIOH";
1508 gpio-ranges = <&pinctrl 0 112 15>;
1511 gpioi: gpio@5000a000 {
1514 interrupt-controller;
1515 #interrupt-cells = <2>;
1516 reg = <0x8000 0x400>;
1517 clocks = <&rcc GPIOI>;
1518 st,bank-name = "GPIOI";
1520 gpio-ranges = <&pinctrl 0 128 8>;