Loading...
Note: File does not exist in v4.17.
1// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2/*
3 * Copyright (C) STMicroelectronics 2017 - All Rights Reserved
4 * Author: Ludovic Barre <ludovic.barre@st.com> for STMicroelectronics.
5 */
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>
9
10/ {
11 #address-cells = <1>;
12 #size-cells = <1>;
13
14 cpus {
15 #address-cells = <1>;
16 #size-cells = <0>;
17
18 cpu0: cpu@0 {
19 compatible = "arm,cortex-a7";
20 clock-frequency = <650000000>;
21 device_type = "cpu";
22 reg = <0>;
23 };
24 };
25
26 arm-pmu {
27 compatible = "arm,cortex-a7-pmu";
28 interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
29 interrupt-affinity = <&cpu0>;
30 interrupt-parent = <&intc>;
31 };
32
33 psci {
34 compatible = "arm,psci-1.0";
35 method = "smc";
36 };
37
38 intc: interrupt-controller@a0021000 {
39 compatible = "arm,cortex-a7-gic";
40 #interrupt-cells = <3>;
41 interrupt-controller;
42 reg = <0xa0021000 0x1000>,
43 <0xa0022000 0x2000>;
44 };
45
46 timer {
47 compatible = "arm,armv7-timer";
48 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
49 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
50 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
51 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
52 interrupt-parent = <&intc>;
53 };
54
55 clocks {
56 clk_hse: clk-hse {
57 #clock-cells = <0>;
58 compatible = "fixed-clock";
59 clock-frequency = <24000000>;
60 };
61
62 clk_hsi: clk-hsi {
63 #clock-cells = <0>;
64 compatible = "fixed-clock";
65 clock-frequency = <64000000>;
66 };
67
68 clk_lse: clk-lse {
69 #clock-cells = <0>;
70 compatible = "fixed-clock";
71 clock-frequency = <32768>;
72 };
73
74 clk_lsi: clk-lsi {
75 #clock-cells = <0>;
76 compatible = "fixed-clock";
77 clock-frequency = <32000>;
78 };
79
80 clk_csi: clk-csi {
81 #clock-cells = <0>;
82 compatible = "fixed-clock";
83 clock-frequency = <4000000>;
84 };
85 };
86
87 thermal-zones {
88 cpu_thermal: cpu-thermal {
89 polling-delay-passive = <0>;
90 polling-delay = <0>;
91 thermal-sensors = <&dts>;
92
93 trips {
94 cpu_alert1: cpu-alert1 {
95 temperature = <85000>;
96 hysteresis = <0>;
97 type = "passive";
98 };
99
100 cpu-crit {
101 temperature = <120000>;
102 hysteresis = <0>;
103 type = "critical";
104 };
105 };
106
107 cooling-maps {
108 };
109 };
110 };
111
112 booster: regulator-booster {
113 compatible = "st,stm32mp1-booster";
114 st,syscfg = <&syscfg>;
115 status = "disabled";
116 };
117
118 soc {
119 compatible = "simple-bus";
120 #address-cells = <1>;
121 #size-cells = <1>;
122 interrupt-parent = <&intc>;
123 ranges;
124
125 timers2: timer@40000000 {
126 #address-cells = <1>;
127 #size-cells = <0>;
128 compatible = "st,stm32-timers";
129 reg = <0x40000000 0x400>;
130 clocks = <&rcc TIM2_K>;
131 clock-names = "int";
132 dmas = <&dmamux1 18 0x400 0x1>,
133 <&dmamux1 19 0x400 0x1>,
134 <&dmamux1 20 0x400 0x1>,
135 <&dmamux1 21 0x400 0x1>,
136 <&dmamux1 22 0x400 0x1>;
137 dma-names = "ch1", "ch2", "ch3", "ch4", "up";
138 status = "disabled";
139
140 pwm {
141 compatible = "st,stm32-pwm";
142 #pwm-cells = <3>;
143 status = "disabled";
144 };
145
146 timer@1 {
147 compatible = "st,stm32h7-timer-trigger";
148 reg = <1>;
149 status = "disabled";
150 };
151
152 counter {
153 compatible = "st,stm32-timer-counter";
154 status = "disabled";
155 };
156 };
157
158 timers3: timer@40001000 {
159 #address-cells = <1>;
160 #size-cells = <0>;
161 compatible = "st,stm32-timers";
162 reg = <0x40001000 0x400>;
163 clocks = <&rcc TIM3_K>;
164 clock-names = "int";
165 dmas = <&dmamux1 23 0x400 0x1>,
166 <&dmamux1 24 0x400 0x1>,
167 <&dmamux1 25 0x400 0x1>,
168 <&dmamux1 26 0x400 0x1>,
169 <&dmamux1 27 0x400 0x1>,
170 <&dmamux1 28 0x400 0x1>;
171 dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
172 status = "disabled";
173
174 pwm {
175 compatible = "st,stm32-pwm";
176 #pwm-cells = <3>;
177 status = "disabled";
178 };
179
180 timer@2 {
181 compatible = "st,stm32h7-timer-trigger";
182 reg = <2>;
183 status = "disabled";
184 };
185
186 counter {
187 compatible = "st,stm32-timer-counter";
188 status = "disabled";
189 };
190 };
191
192 timers4: timer@40002000 {
193 #address-cells = <1>;
194 #size-cells = <0>;
195 compatible = "st,stm32-timers";
196 reg = <0x40002000 0x400>;
197 clocks = <&rcc TIM4_K>;
198 clock-names = "int";
199 dmas = <&dmamux1 29 0x400 0x1>,
200 <&dmamux1 30 0x400 0x1>,
201 <&dmamux1 31 0x400 0x1>,
202 <&dmamux1 32 0x400 0x1>;
203 dma-names = "ch1", "ch2", "ch3", "ch4";
204 status = "disabled";
205
206 pwm {
207 compatible = "st,stm32-pwm";
208 #pwm-cells = <3>;
209 status = "disabled";
210 };
211
212 timer@3 {
213 compatible = "st,stm32h7-timer-trigger";
214 reg = <3>;
215 status = "disabled";
216 };
217
218 counter {
219 compatible = "st,stm32-timer-counter";
220 status = "disabled";
221 };
222 };
223
224 timers5: timer@40003000 {
225 #address-cells = <1>;
226 #size-cells = <0>;
227 compatible = "st,stm32-timers";
228 reg = <0x40003000 0x400>;
229 clocks = <&rcc TIM5_K>;
230 clock-names = "int";
231 dmas = <&dmamux1 55 0x400 0x1>,
232 <&dmamux1 56 0x400 0x1>,
233 <&dmamux1 57 0x400 0x1>,
234 <&dmamux1 58 0x400 0x1>,
235 <&dmamux1 59 0x400 0x1>,
236 <&dmamux1 60 0x400 0x1>;
237 dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
238 status = "disabled";
239
240 pwm {
241 compatible = "st,stm32-pwm";
242 #pwm-cells = <3>;
243 status = "disabled";
244 };
245
246 timer@4 {
247 compatible = "st,stm32h7-timer-trigger";
248 reg = <4>;
249 status = "disabled";
250 };
251
252 counter {
253 compatible = "st,stm32-timer-counter";
254 status = "disabled";
255 };
256 };
257
258 timers6: timer@40004000 {
259 #address-cells = <1>;
260 #size-cells = <0>;
261 compatible = "st,stm32-timers";
262 reg = <0x40004000 0x400>;
263 clocks = <&rcc TIM6_K>;
264 clock-names = "int";
265 dmas = <&dmamux1 69 0x400 0x1>;
266 dma-names = "up";
267 status = "disabled";
268
269 timer@5 {
270 compatible = "st,stm32h7-timer-trigger";
271 reg = <5>;
272 status = "disabled";
273 };
274 };
275
276 timers7: timer@40005000 {
277 #address-cells = <1>;
278 #size-cells = <0>;
279 compatible = "st,stm32-timers";
280 reg = <0x40005000 0x400>;
281 clocks = <&rcc TIM7_K>;
282 clock-names = "int";
283 dmas = <&dmamux1 70 0x400 0x1>;
284 dma-names = "up";
285 status = "disabled";
286
287 timer@6 {
288 compatible = "st,stm32h7-timer-trigger";
289 reg = <6>;
290 status = "disabled";
291 };
292 };
293
294 timers12: timer@40006000 {
295 #address-cells = <1>;
296 #size-cells = <0>;
297 compatible = "st,stm32-timers";
298 reg = <0x40006000 0x400>;
299 clocks = <&rcc TIM12_K>;
300 clock-names = "int";
301 status = "disabled";
302
303 pwm {
304 compatible = "st,stm32-pwm";
305 #pwm-cells = <3>;
306 status = "disabled";
307 };
308
309 timer@11 {
310 compatible = "st,stm32h7-timer-trigger";
311 reg = <11>;
312 status = "disabled";
313 };
314 };
315
316 timers13: timer@40007000 {
317 #address-cells = <1>;
318 #size-cells = <0>;
319 compatible = "st,stm32-timers";
320 reg = <0x40007000 0x400>;
321 clocks = <&rcc TIM13_K>;
322 clock-names = "int";
323 status = "disabled";
324
325 pwm {
326 compatible = "st,stm32-pwm";
327 #pwm-cells = <3>;
328 status = "disabled";
329 };
330
331 timer@12 {
332 compatible = "st,stm32h7-timer-trigger";
333 reg = <12>;
334 status = "disabled";
335 };
336 };
337
338 timers14: timer@40008000 {
339 #address-cells = <1>;
340 #size-cells = <0>;
341 compatible = "st,stm32-timers";
342 reg = <0x40008000 0x400>;
343 clocks = <&rcc TIM14_K>;
344 clock-names = "int";
345 status = "disabled";
346
347 pwm {
348 compatible = "st,stm32-pwm";
349 #pwm-cells = <3>;
350 status = "disabled";
351 };
352
353 timer@13 {
354 compatible = "st,stm32h7-timer-trigger";
355 reg = <13>;
356 status = "disabled";
357 };
358 };
359
360 lptimer1: timer@40009000 {
361 #address-cells = <1>;
362 #size-cells = <0>;
363 compatible = "st,stm32-lptimer";
364 reg = <0x40009000 0x400>;
365 interrupts-extended = <&exti 47 IRQ_TYPE_LEVEL_HIGH>;
366 clocks = <&rcc LPTIM1_K>;
367 clock-names = "mux";
368 wakeup-source;
369 status = "disabled";
370
371 pwm {
372 compatible = "st,stm32-pwm-lp";
373 #pwm-cells = <3>;
374 status = "disabled";
375 };
376
377 trigger@0 {
378 compatible = "st,stm32-lptimer-trigger";
379 reg = <0>;
380 status = "disabled";
381 };
382
383 counter {
384 compatible = "st,stm32-lptimer-counter";
385 status = "disabled";
386 };
387 };
388
389 spi2: spi@4000b000 {
390 #address-cells = <1>;
391 #size-cells = <0>;
392 compatible = "st,stm32h7-spi";
393 reg = <0x4000b000 0x400>;
394 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
395 clocks = <&rcc SPI2_K>;
396 resets = <&rcc SPI2_R>;
397 dmas = <&dmamux1 39 0x400 0x05>,
398 <&dmamux1 40 0x400 0x05>;
399 dma-names = "rx", "tx";
400 status = "disabled";
401 };
402
403 i2s2: audio-controller@4000b000 {
404 compatible = "st,stm32h7-i2s";
405 #sound-dai-cells = <0>;
406 reg = <0x4000b000 0x400>;
407 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
408 dmas = <&dmamux1 39 0x400 0x01>,
409 <&dmamux1 40 0x400 0x01>;
410 dma-names = "rx", "tx";
411 status = "disabled";
412 };
413
414 spi3: spi@4000c000 {
415 #address-cells = <1>;
416 #size-cells = <0>;
417 compatible = "st,stm32h7-spi";
418 reg = <0x4000c000 0x400>;
419 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
420 clocks = <&rcc SPI3_K>;
421 resets = <&rcc SPI3_R>;
422 dmas = <&dmamux1 61 0x400 0x05>,
423 <&dmamux1 62 0x400 0x05>;
424 dma-names = "rx", "tx";
425 status = "disabled";
426 };
427
428 i2s3: audio-controller@4000c000 {
429 compatible = "st,stm32h7-i2s";
430 #sound-dai-cells = <0>;
431 reg = <0x4000c000 0x400>;
432 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
433 dmas = <&dmamux1 61 0x400 0x01>,
434 <&dmamux1 62 0x400 0x01>;
435 dma-names = "rx", "tx";
436 status = "disabled";
437 };
438
439 spdifrx: audio-controller@4000d000 {
440 compatible = "st,stm32h7-spdifrx";
441 #sound-dai-cells = <0>;
442 reg = <0x4000d000 0x400>;
443 clocks = <&rcc SPDIF_K>;
444 clock-names = "kclk";
445 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
446 dmas = <&dmamux1 93 0x400 0x01>,
447 <&dmamux1 94 0x400 0x01>;
448 dma-names = "rx", "rx-ctrl";
449 status = "disabled";
450 };
451
452 usart2: serial@4000e000 {
453 compatible = "st,stm32h7-uart";
454 reg = <0x4000e000 0x400>;
455 interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>;
456 clocks = <&rcc USART2_K>;
457 wakeup-source;
458 status = "disabled";
459 };
460
461 usart3: serial@4000f000 {
462 compatible = "st,stm32h7-uart";
463 reg = <0x4000f000 0x400>;
464 interrupts-extended = <&exti 28 IRQ_TYPE_LEVEL_HIGH>;
465 clocks = <&rcc USART3_K>;
466 wakeup-source;
467 status = "disabled";
468 };
469
470 uart4: serial@40010000 {
471 compatible = "st,stm32h7-uart";
472 reg = <0x40010000 0x400>;
473 interrupts-extended = <&exti 30 IRQ_TYPE_LEVEL_HIGH>;
474 clocks = <&rcc UART4_K>;
475 wakeup-source;
476 status = "disabled";
477 };
478
479 uart5: serial@40011000 {
480 compatible = "st,stm32h7-uart";
481 reg = <0x40011000 0x400>;
482 interrupts-extended = <&exti 31 IRQ_TYPE_LEVEL_HIGH>;
483 clocks = <&rcc UART5_K>;
484 wakeup-source;
485 status = "disabled";
486 };
487
488 i2c1: i2c@40012000 {
489 compatible = "st,stm32mp15-i2c";
490 reg = <0x40012000 0x400>;
491 interrupt-names = "event", "error";
492 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
493 <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
494 clocks = <&rcc I2C1_K>;
495 resets = <&rcc I2C1_R>;
496 #address-cells = <1>;
497 #size-cells = <0>;
498 st,syscfg-fmp = <&syscfg 0x4 0x1>;
499 wakeup-source;
500 i2c-analog-filter;
501 status = "disabled";
502 };
503
504 i2c2: i2c@40013000 {
505 compatible = "st,stm32mp15-i2c";
506 reg = <0x40013000 0x400>;
507 interrupt-names = "event", "error";
508 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
509 <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
510 clocks = <&rcc I2C2_K>;
511 resets = <&rcc I2C2_R>;
512 #address-cells = <1>;
513 #size-cells = <0>;
514 st,syscfg-fmp = <&syscfg 0x4 0x2>;
515 wakeup-source;
516 i2c-analog-filter;
517 status = "disabled";
518 };
519
520 i2c3: i2c@40014000 {
521 compatible = "st,stm32mp15-i2c";
522 reg = <0x40014000 0x400>;
523 interrupt-names = "event", "error";
524 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
525 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
526 clocks = <&rcc I2C3_K>;
527 resets = <&rcc I2C3_R>;
528 #address-cells = <1>;
529 #size-cells = <0>;
530 st,syscfg-fmp = <&syscfg 0x4 0x4>;
531 wakeup-source;
532 i2c-analog-filter;
533 status = "disabled";
534 };
535
536 i2c5: i2c@40015000 {
537 compatible = "st,stm32mp15-i2c";
538 reg = <0x40015000 0x400>;
539 interrupt-names = "event", "error";
540 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
541 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
542 clocks = <&rcc I2C5_K>;
543 resets = <&rcc I2C5_R>;
544 #address-cells = <1>;
545 #size-cells = <0>;
546 st,syscfg-fmp = <&syscfg 0x4 0x10>;
547 wakeup-source;
548 i2c-analog-filter;
549 status = "disabled";
550 };
551
552 cec: cec@40016000 {
553 compatible = "st,stm32-cec";
554 reg = <0x40016000 0x400>;
555 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
556 clocks = <&rcc CEC_K>, <&clk_lse>;
557 clock-names = "cec", "hdmi-cec";
558 status = "disabled";
559 };
560
561 dac: dac@40017000 {
562 compatible = "st,stm32h7-dac-core";
563 reg = <0x40017000 0x400>;
564 clocks = <&rcc DAC12>;
565 clock-names = "pclk";
566 #address-cells = <1>;
567 #size-cells = <0>;
568 status = "disabled";
569
570 dac1: dac@1 {
571 compatible = "st,stm32-dac";
572 #io-channel-cells = <1>;
573 reg = <1>;
574 status = "disabled";
575 };
576
577 dac2: dac@2 {
578 compatible = "st,stm32-dac";
579 #io-channel-cells = <1>;
580 reg = <2>;
581 status = "disabled";
582 };
583 };
584
585 uart7: serial@40018000 {
586 compatible = "st,stm32h7-uart";
587 reg = <0x40018000 0x400>;
588 interrupts-extended = <&exti 32 IRQ_TYPE_LEVEL_HIGH>;
589 clocks = <&rcc UART7_K>;
590 wakeup-source;
591 status = "disabled";
592 };
593
594 uart8: serial@40019000 {
595 compatible = "st,stm32h7-uart";
596 reg = <0x40019000 0x400>;
597 interrupts-extended = <&exti 33 IRQ_TYPE_LEVEL_HIGH>;
598 clocks = <&rcc UART8_K>;
599 wakeup-source;
600 status = "disabled";
601 };
602
603 timers1: timer@44000000 {
604 #address-cells = <1>;
605 #size-cells = <0>;
606 compatible = "st,stm32-timers";
607 reg = <0x44000000 0x400>;
608 clocks = <&rcc TIM1_K>;
609 clock-names = "int";
610 dmas = <&dmamux1 11 0x400 0x1>,
611 <&dmamux1 12 0x400 0x1>,
612 <&dmamux1 13 0x400 0x1>,
613 <&dmamux1 14 0x400 0x1>,
614 <&dmamux1 15 0x400 0x1>,
615 <&dmamux1 16 0x400 0x1>,
616 <&dmamux1 17 0x400 0x1>;
617 dma-names = "ch1", "ch2", "ch3", "ch4",
618 "up", "trig", "com";
619 status = "disabled";
620
621 pwm {
622 compatible = "st,stm32-pwm";
623 #pwm-cells = <3>;
624 status = "disabled";
625 };
626
627 timer@0 {
628 compatible = "st,stm32h7-timer-trigger";
629 reg = <0>;
630 status = "disabled";
631 };
632
633 counter {
634 compatible = "st,stm32-timer-counter";
635 status = "disabled";
636 };
637 };
638
639 timers8: timer@44001000 {
640 #address-cells = <1>;
641 #size-cells = <0>;
642 compatible = "st,stm32-timers";
643 reg = <0x44001000 0x400>;
644 clocks = <&rcc TIM8_K>;
645 clock-names = "int";
646 dmas = <&dmamux1 47 0x400 0x1>,
647 <&dmamux1 48 0x400 0x1>,
648 <&dmamux1 49 0x400 0x1>,
649 <&dmamux1 50 0x400 0x1>,
650 <&dmamux1 51 0x400 0x1>,
651 <&dmamux1 52 0x400 0x1>,
652 <&dmamux1 53 0x400 0x1>;
653 dma-names = "ch1", "ch2", "ch3", "ch4",
654 "up", "trig", "com";
655 status = "disabled";
656
657 pwm {
658 compatible = "st,stm32-pwm";
659 #pwm-cells = <3>;
660 status = "disabled";
661 };
662
663 timer@7 {
664 compatible = "st,stm32h7-timer-trigger";
665 reg = <7>;
666 status = "disabled";
667 };
668
669 counter {
670 compatible = "st,stm32-timer-counter";
671 status = "disabled";
672 };
673 };
674
675 usart6: serial@44003000 {
676 compatible = "st,stm32h7-uart";
677 reg = <0x44003000 0x400>;
678 interrupts-extended = <&exti 29 IRQ_TYPE_LEVEL_HIGH>;
679 clocks = <&rcc USART6_K>;
680 wakeup-source;
681 status = "disabled";
682 };
683
684 spi1: spi@44004000 {
685 #address-cells = <1>;
686 #size-cells = <0>;
687 compatible = "st,stm32h7-spi";
688 reg = <0x44004000 0x400>;
689 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
690 clocks = <&rcc SPI1_K>;
691 resets = <&rcc SPI1_R>;
692 dmas = <&dmamux1 37 0x400 0x05>,
693 <&dmamux1 38 0x400 0x05>;
694 dma-names = "rx", "tx";
695 status = "disabled";
696 };
697
698 i2s1: audio-controller@44004000 {
699 compatible = "st,stm32h7-i2s";
700 #sound-dai-cells = <0>;
701 reg = <0x44004000 0x400>;
702 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
703 dmas = <&dmamux1 37 0x400 0x01>,
704 <&dmamux1 38 0x400 0x01>;
705 dma-names = "rx", "tx";
706 status = "disabled";
707 };
708
709 spi4: spi@44005000 {
710 #address-cells = <1>;
711 #size-cells = <0>;
712 compatible = "st,stm32h7-spi";
713 reg = <0x44005000 0x400>;
714 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
715 clocks = <&rcc SPI4_K>;
716 resets = <&rcc SPI4_R>;
717 dmas = <&dmamux1 83 0x400 0x05>,
718 <&dmamux1 84 0x400 0x05>;
719 dma-names = "rx", "tx";
720 status = "disabled";
721 };
722
723 timers15: timer@44006000 {
724 #address-cells = <1>;
725 #size-cells = <0>;
726 compatible = "st,stm32-timers";
727 reg = <0x44006000 0x400>;
728 clocks = <&rcc TIM15_K>;
729 clock-names = "int";
730 dmas = <&dmamux1 105 0x400 0x1>,
731 <&dmamux1 106 0x400 0x1>,
732 <&dmamux1 107 0x400 0x1>,
733 <&dmamux1 108 0x400 0x1>;
734 dma-names = "ch1", "up", "trig", "com";
735 status = "disabled";
736
737 pwm {
738 compatible = "st,stm32-pwm";
739 #pwm-cells = <3>;
740 status = "disabled";
741 };
742
743 timer@14 {
744 compatible = "st,stm32h7-timer-trigger";
745 reg = <14>;
746 status = "disabled";
747 };
748 };
749
750 timers16: timer@44007000 {
751 #address-cells = <1>;
752 #size-cells = <0>;
753 compatible = "st,stm32-timers";
754 reg = <0x44007000 0x400>;
755 clocks = <&rcc TIM16_K>;
756 clock-names = "int";
757 dmas = <&dmamux1 109 0x400 0x1>,
758 <&dmamux1 110 0x400 0x1>;
759 dma-names = "ch1", "up";
760 status = "disabled";
761
762 pwm {
763 compatible = "st,stm32-pwm";
764 #pwm-cells = <3>;
765 status = "disabled";
766 };
767 timer@15 {
768 compatible = "st,stm32h7-timer-trigger";
769 reg = <15>;
770 status = "disabled";
771 };
772 };
773
774 timers17: timer@44008000 {
775 #address-cells = <1>;
776 #size-cells = <0>;
777 compatible = "st,stm32-timers";
778 reg = <0x44008000 0x400>;
779 clocks = <&rcc TIM17_K>;
780 clock-names = "int";
781 dmas = <&dmamux1 111 0x400 0x1>,
782 <&dmamux1 112 0x400 0x1>;
783 dma-names = "ch1", "up";
784 status = "disabled";
785
786 pwm {
787 compatible = "st,stm32-pwm";
788 #pwm-cells = <3>;
789 status = "disabled";
790 };
791
792 timer@16 {
793 compatible = "st,stm32h7-timer-trigger";
794 reg = <16>;
795 status = "disabled";
796 };
797 };
798
799 spi5: spi@44009000 {
800 #address-cells = <1>;
801 #size-cells = <0>;
802 compatible = "st,stm32h7-spi";
803 reg = <0x44009000 0x400>;
804 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
805 clocks = <&rcc SPI5_K>;
806 resets = <&rcc SPI5_R>;
807 dmas = <&dmamux1 85 0x400 0x05>,
808 <&dmamux1 86 0x400 0x05>;
809 dma-names = "rx", "tx";
810 status = "disabled";
811 };
812
813 sai1: sai@4400a000 {
814 compatible = "st,stm32h7-sai";
815 #address-cells = <1>;
816 #size-cells = <1>;
817 ranges = <0 0x4400a000 0x400>;
818 reg = <0x4400a000 0x4>, <0x4400a3f0 0x10>;
819 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
820 resets = <&rcc SAI1_R>;
821 status = "disabled";
822
823 sai1a: audio-controller@4400a004 {
824 #sound-dai-cells = <0>;
825
826 compatible = "st,stm32-sai-sub-a";
827 reg = <0x4 0x1c>;
828 clocks = <&rcc SAI1_K>;
829 clock-names = "sai_ck";
830 dmas = <&dmamux1 87 0x400 0x01>;
831 status = "disabled";
832 };
833
834 sai1b: audio-controller@4400a024 {
835 #sound-dai-cells = <0>;
836 compatible = "st,stm32-sai-sub-b";
837 reg = <0x24 0x1c>;
838 clocks = <&rcc SAI1_K>;
839 clock-names = "sai_ck";
840 dmas = <&dmamux1 88 0x400 0x01>;
841 status = "disabled";
842 };
843 };
844
845 sai2: sai@4400b000 {
846 compatible = "st,stm32h7-sai";
847 #address-cells = <1>;
848 #size-cells = <1>;
849 ranges = <0 0x4400b000 0x400>;
850 reg = <0x4400b000 0x4>, <0x4400b3f0 0x10>;
851 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
852 resets = <&rcc SAI2_R>;
853 status = "disabled";
854
855 sai2a: audio-controller@4400b004 {
856 #sound-dai-cells = <0>;
857 compatible = "st,stm32-sai-sub-a";
858 reg = <0x4 0x1c>;
859 clocks = <&rcc SAI2_K>;
860 clock-names = "sai_ck";
861 dmas = <&dmamux1 89 0x400 0x01>;
862 status = "disabled";
863 };
864
865 sai2b: audio-controller@4400b024 {
866 #sound-dai-cells = <0>;
867 compatible = "st,stm32-sai-sub-b";
868 reg = <0x24 0x1c>;
869 clocks = <&rcc SAI2_K>;
870 clock-names = "sai_ck";
871 dmas = <&dmamux1 90 0x400 0x01>;
872 status = "disabled";
873 };
874 };
875
876 sai3: sai@4400c000 {
877 compatible = "st,stm32h7-sai";
878 #address-cells = <1>;
879 #size-cells = <1>;
880 ranges = <0 0x4400c000 0x400>;
881 reg = <0x4400c000 0x4>, <0x4400c3f0 0x10>;
882 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
883 resets = <&rcc SAI3_R>;
884 status = "disabled";
885
886 sai3a: audio-controller@4400c004 {
887 #sound-dai-cells = <0>;
888 compatible = "st,stm32-sai-sub-a";
889 reg = <0x04 0x1c>;
890 clocks = <&rcc SAI3_K>;
891 clock-names = "sai_ck";
892 dmas = <&dmamux1 113 0x400 0x01>;
893 status = "disabled";
894 };
895
896 sai3b: audio-controller@4400c024 {
897 #sound-dai-cells = <0>;
898 compatible = "st,stm32-sai-sub-b";
899 reg = <0x24 0x1c>;
900 clocks = <&rcc SAI3_K>;
901 clock-names = "sai_ck";
902 dmas = <&dmamux1 114 0x400 0x01>;
903 status = "disabled";
904 };
905 };
906
907 dfsdm: dfsdm@4400d000 {
908 compatible = "st,stm32mp1-dfsdm";
909 reg = <0x4400d000 0x800>;
910 clocks = <&rcc DFSDM_K>;
911 clock-names = "dfsdm";
912 #address-cells = <1>;
913 #size-cells = <0>;
914 status = "disabled";
915
916 dfsdm0: filter@0 {
917 compatible = "st,stm32-dfsdm-adc";
918 #io-channel-cells = <1>;
919 reg = <0>;
920 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
921 dmas = <&dmamux1 101 0x400 0x01>;
922 dma-names = "rx";
923 status = "disabled";
924 };
925
926 dfsdm1: filter@1 {
927 compatible = "st,stm32-dfsdm-adc";
928 #io-channel-cells = <1>;
929 reg = <1>;
930 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
931 dmas = <&dmamux1 102 0x400 0x01>;
932 dma-names = "rx";
933 status = "disabled";
934 };
935
936 dfsdm2: filter@2 {
937 compatible = "st,stm32-dfsdm-adc";
938 #io-channel-cells = <1>;
939 reg = <2>;
940 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
941 dmas = <&dmamux1 103 0x400 0x01>;
942 dma-names = "rx";
943 status = "disabled";
944 };
945
946 dfsdm3: filter@3 {
947 compatible = "st,stm32-dfsdm-adc";
948 #io-channel-cells = <1>;
949 reg = <3>;
950 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
951 dmas = <&dmamux1 104 0x400 0x01>;
952 dma-names = "rx";
953 status = "disabled";
954 };
955
956 dfsdm4: filter@4 {
957 compatible = "st,stm32-dfsdm-adc";
958 #io-channel-cells = <1>;
959 reg = <4>;
960 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
961 dmas = <&dmamux1 91 0x400 0x01>;
962 dma-names = "rx";
963 status = "disabled";
964 };
965
966 dfsdm5: filter@5 {
967 compatible = "st,stm32-dfsdm-adc";
968 #io-channel-cells = <1>;
969 reg = <5>;
970 interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
971 dmas = <&dmamux1 92 0x400 0x01>;
972 dma-names = "rx";
973 status = "disabled";
974 };
975 };
976
977 dma1: dma-controller@48000000 {
978 compatible = "st,stm32-dma";
979 reg = <0x48000000 0x400>;
980 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
981 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
982 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
983 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
984 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
985 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
986 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
987 <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
988 clocks = <&rcc DMA1>;
989 resets = <&rcc DMA1_R>;
990 #dma-cells = <4>;
991 st,mem2mem;
992 dma-requests = <8>;
993 };
994
995 dma2: dma-controller@48001000 {
996 compatible = "st,stm32-dma";
997 reg = <0x48001000 0x400>;
998 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
999 <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
1000 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
1001 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
1002 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
1003 <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
1004 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
1005 <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
1006 clocks = <&rcc DMA2>;
1007 resets = <&rcc DMA2_R>;
1008 #dma-cells = <4>;
1009 st,mem2mem;
1010 dma-requests = <8>;
1011 };
1012
1013 dmamux1: dma-router@48002000 {
1014 compatible = "st,stm32h7-dmamux";
1015 reg = <0x48002000 0x40>;
1016 #dma-cells = <3>;
1017 dma-requests = <128>;
1018 dma-masters = <&dma1 &dma2>;
1019 dma-channels = <16>;
1020 clocks = <&rcc DMAMUX>;
1021 resets = <&rcc DMAMUX_R>;
1022 };
1023
1024 adc: adc@48003000 {
1025 compatible = "st,stm32mp1-adc-core";
1026 reg = <0x48003000 0x400>;
1027 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
1028 <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
1029 clocks = <&rcc ADC12>, <&rcc ADC12_K>;
1030 clock-names = "bus", "adc";
1031 interrupt-controller;
1032 st,syscfg = <&syscfg>;
1033 #interrupt-cells = <1>;
1034 #address-cells = <1>;
1035 #size-cells = <0>;
1036 status = "disabled";
1037
1038 adc1: adc@0 {
1039 compatible = "st,stm32mp1-adc";
1040 #io-channel-cells = <1>;
1041 reg = <0x0>;
1042 interrupt-parent = <&adc>;
1043 interrupts = <0>;
1044 dmas = <&dmamux1 9 0x400 0x01>;
1045 dma-names = "rx";
1046 status = "disabled";
1047 };
1048
1049 adc2: adc@100 {
1050 compatible = "st,stm32mp1-adc";
1051 #io-channel-cells = <1>;
1052 reg = <0x100>;
1053 interrupt-parent = <&adc>;
1054 interrupts = <1>;
1055 dmas = <&dmamux1 10 0x400 0x01>;
1056 dma-names = "rx";
1057 status = "disabled";
1058 };
1059 };
1060
1061 sdmmc3: mmc@48004000 {
1062 compatible = "arm,pl18x", "arm,primecell";
1063 arm,primecell-periphid = <0x00253180>;
1064 reg = <0x48004000 0x400>;
1065 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
1066 interrupt-names = "cmd_irq";
1067 clocks = <&rcc SDMMC3_K>;
1068 clock-names = "apb_pclk";
1069 resets = <&rcc SDMMC3_R>;
1070 cap-sd-highspeed;
1071 cap-mmc-highspeed;
1072 max-frequency = <120000000>;
1073 status = "disabled";
1074 };
1075
1076 usbotg_hs: usb-otg@49000000 {
1077 compatible = "st,stm32mp15-hsotg", "snps,dwc2";
1078 reg = <0x49000000 0x10000>;
1079 clocks = <&rcc USBO_K>;
1080 clock-names = "otg";
1081 resets = <&rcc USBO_R>;
1082 reset-names = "dwc2";
1083 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1084 g-rx-fifo-size = <512>;
1085 g-np-tx-fifo-size = <32>;
1086 g-tx-fifo-size = <256 16 16 16 16 16 16 16>;
1087 dr_mode = "otg";
1088 usb33d-supply = <&usb33>;
1089 status = "disabled";
1090 };
1091
1092 ipcc: mailbox@4c001000 {
1093 compatible = "st,stm32mp1-ipcc";
1094 #mbox-cells = <1>;
1095 reg = <0x4c001000 0x400>;
1096 st,proc-id = <0>;
1097 interrupts-extended =
1098 <&intc GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
1099 <&intc GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
1100 <&exti 61 1>;
1101 interrupt-names = "rx", "tx", "wakeup";
1102 clocks = <&rcc IPCC>;
1103 wakeup-source;
1104 status = "disabled";
1105 };
1106
1107 dcmi: dcmi@4c006000 {
1108 compatible = "st,stm32-dcmi";
1109 reg = <0x4c006000 0x400>;
1110 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
1111 resets = <&rcc CAMITF_R>;
1112 clocks = <&rcc DCMI>;
1113 clock-names = "mclk";
1114 dmas = <&dmamux1 75 0x400 0x01>;
1115 dma-names = "tx";
1116 status = "disabled";
1117 };
1118
1119 rcc: rcc@50000000 {
1120 compatible = "st,stm32mp1-rcc", "syscon";
1121 reg = <0x50000000 0x1000>;
1122 #clock-cells = <1>;
1123 #reset-cells = <1>;
1124 };
1125
1126 pwr_regulators: pwr@50001000 {
1127 compatible = "st,stm32mp1,pwr-reg";
1128 reg = <0x50001000 0x10>;
1129
1130 reg11: reg11 {
1131 regulator-name = "reg11";
1132 regulator-min-microvolt = <1100000>;
1133 regulator-max-microvolt = <1100000>;
1134 };
1135
1136 reg18: reg18 {
1137 regulator-name = "reg18";
1138 regulator-min-microvolt = <1800000>;
1139 regulator-max-microvolt = <1800000>;
1140 };
1141
1142 usb33: usb33 {
1143 regulator-name = "usb33";
1144 regulator-min-microvolt = <3300000>;
1145 regulator-max-microvolt = <3300000>;
1146 };
1147 };
1148
1149 pwr_mcu: pwr_mcu@50001014 {
1150 compatible = "st,stm32mp151-pwr-mcu", "syscon";
1151 reg = <0x50001014 0x4>;
1152 };
1153
1154 exti: interrupt-controller@5000d000 {
1155 compatible = "st,stm32mp1-exti", "syscon";
1156 interrupt-controller;
1157 #interrupt-cells = <2>;
1158 reg = <0x5000d000 0x400>;
1159 };
1160
1161 syscfg: syscon@50020000 {
1162 compatible = "st,stm32mp157-syscfg", "syscon";
1163 reg = <0x50020000 0x400>;
1164 clocks = <&rcc SYSCFG>;
1165 };
1166
1167 lptimer2: timer@50021000 {
1168 #address-cells = <1>;
1169 #size-cells = <0>;
1170 compatible = "st,stm32-lptimer";
1171 reg = <0x50021000 0x400>;
1172 interrupts-extended = <&exti 48 IRQ_TYPE_LEVEL_HIGH>;
1173 clocks = <&rcc LPTIM2_K>;
1174 clock-names = "mux";
1175 wakeup-source;
1176 status = "disabled";
1177
1178 pwm {
1179 compatible = "st,stm32-pwm-lp";
1180 #pwm-cells = <3>;
1181 status = "disabled";
1182 };
1183
1184 trigger@1 {
1185 compatible = "st,stm32-lptimer-trigger";
1186 reg = <1>;
1187 status = "disabled";
1188 };
1189
1190 counter {
1191 compatible = "st,stm32-lptimer-counter";
1192 status = "disabled";
1193 };
1194 };
1195
1196 lptimer3: timer@50022000 {
1197 #address-cells = <1>;
1198 #size-cells = <0>;
1199 compatible = "st,stm32-lptimer";
1200 reg = <0x50022000 0x400>;
1201 interrupts-extended = <&exti 50 IRQ_TYPE_LEVEL_HIGH>;
1202 clocks = <&rcc LPTIM3_K>;
1203 clock-names = "mux";
1204 wakeup-source;
1205 status = "disabled";
1206
1207 pwm {
1208 compatible = "st,stm32-pwm-lp";
1209 #pwm-cells = <3>;
1210 status = "disabled";
1211 };
1212
1213 trigger@2 {
1214 compatible = "st,stm32-lptimer-trigger";
1215 reg = <2>;
1216 status = "disabled";
1217 };
1218 };
1219
1220 lptimer4: timer@50023000 {
1221 compatible = "st,stm32-lptimer";
1222 reg = <0x50023000 0x400>;
1223 interrupts-extended = <&exti 52 IRQ_TYPE_LEVEL_HIGH>;
1224 clocks = <&rcc LPTIM4_K>;
1225 clock-names = "mux";
1226 wakeup-source;
1227 status = "disabled";
1228
1229 pwm {
1230 compatible = "st,stm32-pwm-lp";
1231 #pwm-cells = <3>;
1232 status = "disabled";
1233 };
1234 };
1235
1236 lptimer5: timer@50024000 {
1237 compatible = "st,stm32-lptimer";
1238 reg = <0x50024000 0x400>;
1239 interrupts-extended = <&exti 53 IRQ_TYPE_LEVEL_HIGH>;
1240 clocks = <&rcc LPTIM5_K>;
1241 clock-names = "mux";
1242 wakeup-source;
1243 status = "disabled";
1244
1245 pwm {
1246 compatible = "st,stm32-pwm-lp";
1247 #pwm-cells = <3>;
1248 status = "disabled";
1249 };
1250 };
1251
1252 vrefbuf: vrefbuf@50025000 {
1253 compatible = "st,stm32-vrefbuf";
1254 reg = <0x50025000 0x8>;
1255 regulator-min-microvolt = <1500000>;
1256 regulator-max-microvolt = <2500000>;
1257 clocks = <&rcc VREF>;
1258 status = "disabled";
1259 };
1260
1261 sai4: sai@50027000 {
1262 compatible = "st,stm32h7-sai";
1263 #address-cells = <1>;
1264 #size-cells = <1>;
1265 ranges = <0 0x50027000 0x400>;
1266 reg = <0x50027000 0x4>, <0x500273f0 0x10>;
1267 interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
1268 resets = <&rcc SAI4_R>;
1269 status = "disabled";
1270
1271 sai4a: audio-controller@50027004 {
1272 #sound-dai-cells = <0>;
1273 compatible = "st,stm32-sai-sub-a";
1274 reg = <0x04 0x1c>;
1275 clocks = <&rcc SAI4_K>;
1276 clock-names = "sai_ck";
1277 dmas = <&dmamux1 99 0x400 0x01>;
1278 status = "disabled";
1279 };
1280
1281 sai4b: audio-controller@50027024 {
1282 #sound-dai-cells = <0>;
1283 compatible = "st,stm32-sai-sub-b";
1284 reg = <0x24 0x1c>;
1285 clocks = <&rcc SAI4_K>;
1286 clock-names = "sai_ck";
1287 dmas = <&dmamux1 100 0x400 0x01>;
1288 status = "disabled";
1289 };
1290 };
1291
1292 dts: thermal@50028000 {
1293 compatible = "st,stm32-thermal";
1294 reg = <0x50028000 0x100>;
1295 interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
1296 clocks = <&rcc TMPSENS>;
1297 clock-names = "pclk";
1298 #thermal-sensor-cells = <0>;
1299 status = "disabled";
1300 };
1301
1302 hash1: hash@54002000 {
1303 compatible = "st,stm32f756-hash";
1304 reg = <0x54002000 0x400>;
1305 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
1306 clocks = <&rcc HASH1>;
1307 resets = <&rcc HASH1_R>;
1308 dmas = <&mdma1 31 0x2 0x1000A02 0x0 0x0>;
1309 dma-names = "in";
1310 dma-maxburst = <2>;
1311 status = "disabled";
1312 };
1313
1314 rng1: rng@54003000 {
1315 compatible = "st,stm32-rng";
1316 reg = <0x54003000 0x400>;
1317 clocks = <&rcc RNG1_K>;
1318 resets = <&rcc RNG1_R>;
1319 status = "disabled";
1320 };
1321
1322 mdma1: dma-controller@58000000 {
1323 compatible = "st,stm32h7-mdma";
1324 reg = <0x58000000 0x1000>;
1325 interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
1326 clocks = <&rcc MDMA>;
1327 resets = <&rcc MDMA_R>;
1328 #dma-cells = <5>;
1329 dma-channels = <32>;
1330 dma-requests = <48>;
1331 };
1332
1333 fmc: memory-controller@58002000 {
1334 #address-cells = <2>;
1335 #size-cells = <1>;
1336 compatible = "st,stm32mp1-fmc2-ebi";
1337 reg = <0x58002000 0x1000>;
1338 clocks = <&rcc FMC_K>;
1339 resets = <&rcc FMC_R>;
1340 status = "disabled";
1341
1342 ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */
1343 <1 0 0x64000000 0x04000000>, /* EBI CS 2 */
1344 <2 0 0x68000000 0x04000000>, /* EBI CS 3 */
1345 <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */
1346 <4 0 0x80000000 0x10000000>; /* NAND */
1347
1348 nand-controller@4,0 {
1349 #address-cells = <1>;
1350 #size-cells = <0>;
1351 compatible = "st,stm32mp1-fmc2-nfc";
1352 reg = <4 0x00000000 0x1000>,
1353 <4 0x08010000 0x1000>,
1354 <4 0x08020000 0x1000>,
1355 <4 0x01000000 0x1000>,
1356 <4 0x09010000 0x1000>,
1357 <4 0x09020000 0x1000>;
1358 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
1359 dmas = <&mdma1 20 0x2 0x12000a02 0x0 0x0>,
1360 <&mdma1 20 0x2 0x12000a08 0x0 0x0>,
1361 <&mdma1 21 0x2 0x12000a0a 0x0 0x0>;
1362 dma-names = "tx", "rx", "ecc";
1363 status = "disabled";
1364 };
1365 };
1366
1367 qspi: spi@58003000 {
1368 compatible = "st,stm32f469-qspi";
1369 reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
1370 reg-names = "qspi", "qspi_mm";
1371 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
1372 dmas = <&mdma1 22 0x2 0x10100002 0x0 0x0>,
1373 <&mdma1 22 0x2 0x10100008 0x0 0x0>;
1374 dma-names = "tx", "rx";
1375 clocks = <&rcc QSPI_K>;
1376 resets = <&rcc QSPI_R>;
1377 #address-cells = <1>;
1378 #size-cells = <0>;
1379 status = "disabled";
1380 };
1381
1382 sdmmc1: mmc@58005000 {
1383 compatible = "arm,pl18x", "arm,primecell";
1384 arm,primecell-periphid = <0x00253180>;
1385 reg = <0x58005000 0x1000>;
1386 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
1387 interrupt-names = "cmd_irq";
1388 clocks = <&rcc SDMMC1_K>;
1389 clock-names = "apb_pclk";
1390 resets = <&rcc SDMMC1_R>;
1391 cap-sd-highspeed;
1392 cap-mmc-highspeed;
1393 max-frequency = <120000000>;
1394 status = "disabled";
1395 };
1396
1397 sdmmc2: mmc@58007000 {
1398 compatible = "arm,pl18x", "arm,primecell";
1399 arm,primecell-periphid = <0x00253180>;
1400 reg = <0x58007000 0x1000>;
1401 interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
1402 interrupt-names = "cmd_irq";
1403 clocks = <&rcc SDMMC2_K>;
1404 clock-names = "apb_pclk";
1405 resets = <&rcc SDMMC2_R>;
1406 cap-sd-highspeed;
1407 cap-mmc-highspeed;
1408 max-frequency = <120000000>;
1409 status = "disabled";
1410 };
1411
1412 crc1: crc@58009000 {
1413 compatible = "st,stm32f7-crc";
1414 reg = <0x58009000 0x400>;
1415 clocks = <&rcc CRC1>;
1416 status = "disabled";
1417 };
1418
1419 ethernet0: ethernet@5800a000 {
1420 compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a";
1421 reg = <0x5800a000 0x2000>;
1422 reg-names = "stmmaceth";
1423 interrupts-extended = <&intc GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
1424 interrupt-names = "macirq";
1425 clock-names = "stmmaceth",
1426 "mac-clk-tx",
1427 "mac-clk-rx",
1428 "eth-ck",
1429 "ptp_ref",
1430 "ethstp";
1431 clocks = <&rcc ETHMAC>,
1432 <&rcc ETHTX>,
1433 <&rcc ETHRX>,
1434 <&rcc ETHCK_K>,
1435 <&rcc ETHPTP_K>,
1436 <&rcc ETHSTP>;
1437 st,syscon = <&syscfg 0x4>;
1438 snps,mixed-burst;
1439 snps,pbl = <2>;
1440 snps,en-tx-lpi-clockgating;
1441 snps,axi-config = <&stmmac_axi_config_0>;
1442 snps,tso;
1443 status = "disabled";
1444
1445 stmmac_axi_config_0: stmmac-axi-config {
1446 snps,wr_osr_lmt = <0x7>;
1447 snps,rd_osr_lmt = <0x7>;
1448 snps,blen = <0 0 0 0 16 8 4>;
1449 };
1450 };
1451
1452 usbh_ohci: usb@5800c000 {
1453 compatible = "generic-ohci";
1454 reg = <0x5800c000 0x1000>;
1455 clocks = <&rcc USBH>;
1456 resets = <&rcc USBH_R>;
1457 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
1458 status = "disabled";
1459 };
1460
1461 usbh_ehci: usb@5800d000 {
1462 compatible = "generic-ehci";
1463 reg = <0x5800d000 0x1000>;
1464 clocks = <&rcc USBH>;
1465 resets = <&rcc USBH_R>;
1466 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
1467 companion = <&usbh_ohci>;
1468 status = "disabled";
1469 };
1470
1471 ltdc: display-controller@5a001000 {
1472 compatible = "st,stm32-ltdc";
1473 reg = <0x5a001000 0x400>;
1474 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
1475 <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1476 clocks = <&rcc LTDC_PX>;
1477 clock-names = "lcd";
1478 resets = <&rcc LTDC_R>;
1479 status = "disabled";
1480
1481 port {
1482 #address-cells = <1>;
1483 #size-cells = <0>;
1484 };
1485 };
1486
1487 iwdg2: watchdog@5a002000 {
1488 compatible = "st,stm32mp1-iwdg";
1489 reg = <0x5a002000 0x400>;
1490 clocks = <&rcc IWDG2>, <&rcc CK_LSI>;
1491 clock-names = "pclk", "lsi";
1492 status = "disabled";
1493 };
1494
1495 usbphyc: usbphyc@5a006000 {
1496 #address-cells = <1>;
1497 #size-cells = <0>;
1498 #clock-cells = <0>;
1499 compatible = "st,stm32mp1-usbphyc";
1500 reg = <0x5a006000 0x1000>;
1501 clocks = <&rcc USBPHY_K>;
1502 resets = <&rcc USBPHY_R>;
1503 vdda1v1-supply = <®11>;
1504 vdda1v8-supply = <®18>;
1505 status = "disabled";
1506
1507 usbphyc_port0: usb-phy@0 {
1508 #phy-cells = <0>;
1509 reg = <0>;
1510 };
1511
1512 usbphyc_port1: usb-phy@1 {
1513 #phy-cells = <1>;
1514 reg = <1>;
1515 };
1516 };
1517
1518 usart1: serial@5c000000 {
1519 compatible = "st,stm32h7-uart";
1520 reg = <0x5c000000 0x400>;
1521 interrupts-extended = <&exti 26 IRQ_TYPE_LEVEL_HIGH>;
1522 clocks = <&rcc USART1_K>;
1523 wakeup-source;
1524 status = "disabled";
1525 };
1526
1527 spi6: spi@5c001000 {
1528 #address-cells = <1>;
1529 #size-cells = <0>;
1530 compatible = "st,stm32h7-spi";
1531 reg = <0x5c001000 0x400>;
1532 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
1533 clocks = <&rcc SPI6_K>;
1534 resets = <&rcc SPI6_R>;
1535 dmas = <&mdma1 34 0x0 0x40008 0x0 0x0>,
1536 <&mdma1 35 0x0 0x40002 0x0 0x0>;
1537 dma-names = "rx", "tx";
1538 status = "disabled";
1539 };
1540
1541 i2c4: i2c@5c002000 {
1542 compatible = "st,stm32mp15-i2c";
1543 reg = <0x5c002000 0x400>;
1544 interrupt-names = "event", "error";
1545 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
1546 <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1547 clocks = <&rcc I2C4_K>;
1548 resets = <&rcc I2C4_R>;
1549 #address-cells = <1>;
1550 #size-cells = <0>;
1551 st,syscfg-fmp = <&syscfg 0x4 0x8>;
1552 wakeup-source;
1553 i2c-analog-filter;
1554 status = "disabled";
1555 };
1556
1557 rtc: rtc@5c004000 {
1558 compatible = "st,stm32mp1-rtc";
1559 reg = <0x5c004000 0x400>;
1560 clocks = <&rcc RTCAPB>, <&rcc RTC>;
1561 clock-names = "pclk", "rtc_ck";
1562 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
1563 status = "disabled";
1564 };
1565
1566 bsec: efuse@5c005000 {
1567 compatible = "st,stm32mp15-bsec";
1568 reg = <0x5c005000 0x400>;
1569 #address-cells = <1>;
1570 #size-cells = <1>;
1571 ts_cal1: calib@5c {
1572 reg = <0x5c 0x2>;
1573 };
1574 ts_cal2: calib@5e {
1575 reg = <0x5e 0x2>;
1576 };
1577 };
1578
1579 i2c6: i2c@5c009000 {
1580 compatible = "st,stm32mp15-i2c";
1581 reg = <0x5c009000 0x400>;
1582 interrupt-names = "event", "error";
1583 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
1584 <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
1585 clocks = <&rcc I2C6_K>;
1586 resets = <&rcc I2C6_R>;
1587 #address-cells = <1>;
1588 #size-cells = <0>;
1589 st,syscfg-fmp = <&syscfg 0x4 0x20>;
1590 wakeup-source;
1591 i2c-analog-filter;
1592 status = "disabled";
1593 };
1594
1595 tamp: tamp@5c00a000 {
1596 compatible = "st,stm32-tamp", "syscon", "simple-mfd";
1597 reg = <0x5c00a000 0x400>;
1598 };
1599
1600 /*
1601 * Break node order to solve dependency probe issue between
1602 * pinctrl and exti.
1603 */
1604 pinctrl: pin-controller@50002000 {
1605 #address-cells = <1>;
1606 #size-cells = <1>;
1607 compatible = "st,stm32mp157-pinctrl";
1608 ranges = <0 0x50002000 0xa400>;
1609 interrupt-parent = <&exti>;
1610 st,syscfg = <&exti 0x60 0xff>;
1611 pins-are-numbered;
1612
1613 gpioa: gpio@50002000 {
1614 gpio-controller;
1615 #gpio-cells = <2>;
1616 interrupt-controller;
1617 #interrupt-cells = <2>;
1618 reg = <0x0 0x400>;
1619 clocks = <&rcc GPIOA>;
1620 st,bank-name = "GPIOA";
1621 status = "disabled";
1622 };
1623
1624 gpiob: gpio@50003000 {
1625 gpio-controller;
1626 #gpio-cells = <2>;
1627 interrupt-controller;
1628 #interrupt-cells = <2>;
1629 reg = <0x1000 0x400>;
1630 clocks = <&rcc GPIOB>;
1631 st,bank-name = "GPIOB";
1632 status = "disabled";
1633 };
1634
1635 gpioc: gpio@50004000 {
1636 gpio-controller;
1637 #gpio-cells = <2>;
1638 interrupt-controller;
1639 #interrupt-cells = <2>;
1640 reg = <0x2000 0x400>;
1641 clocks = <&rcc GPIOC>;
1642 st,bank-name = "GPIOC";
1643 status = "disabled";
1644 };
1645
1646 gpiod: gpio@50005000 {
1647 gpio-controller;
1648 #gpio-cells = <2>;
1649 interrupt-controller;
1650 #interrupt-cells = <2>;
1651 reg = <0x3000 0x400>;
1652 clocks = <&rcc GPIOD>;
1653 st,bank-name = "GPIOD";
1654 status = "disabled";
1655 };
1656
1657 gpioe: gpio@50006000 {
1658 gpio-controller;
1659 #gpio-cells = <2>;
1660 interrupt-controller;
1661 #interrupt-cells = <2>;
1662 reg = <0x4000 0x400>;
1663 clocks = <&rcc GPIOE>;
1664 st,bank-name = "GPIOE";
1665 status = "disabled";
1666 };
1667
1668 gpiof: gpio@50007000 {
1669 gpio-controller;
1670 #gpio-cells = <2>;
1671 interrupt-controller;
1672 #interrupt-cells = <2>;
1673 reg = <0x5000 0x400>;
1674 clocks = <&rcc GPIOF>;
1675 st,bank-name = "GPIOF";
1676 status = "disabled";
1677 };
1678
1679 gpiog: gpio@50008000 {
1680 gpio-controller;
1681 #gpio-cells = <2>;
1682 interrupt-controller;
1683 #interrupt-cells = <2>;
1684 reg = <0x6000 0x400>;
1685 clocks = <&rcc GPIOG>;
1686 st,bank-name = "GPIOG";
1687 status = "disabled";
1688 };
1689
1690 gpioh: gpio@50009000 {
1691 gpio-controller;
1692 #gpio-cells = <2>;
1693 interrupt-controller;
1694 #interrupt-cells = <2>;
1695 reg = <0x7000 0x400>;
1696 clocks = <&rcc GPIOH>;
1697 st,bank-name = "GPIOH";
1698 status = "disabled";
1699 };
1700
1701 gpioi: gpio@5000a000 {
1702 gpio-controller;
1703 #gpio-cells = <2>;
1704 interrupt-controller;
1705 #interrupt-cells = <2>;
1706 reg = <0x8000 0x400>;
1707 clocks = <&rcc GPIOI>;
1708 st,bank-name = "GPIOI";
1709 status = "disabled";
1710 };
1711
1712 gpioj: gpio@5000b000 {
1713 gpio-controller;
1714 #gpio-cells = <2>;
1715 interrupt-controller;
1716 #interrupt-cells = <2>;
1717 reg = <0x9000 0x400>;
1718 clocks = <&rcc GPIOJ>;
1719 st,bank-name = "GPIOJ";
1720 status = "disabled";
1721 };
1722
1723 gpiok: gpio@5000c000 {
1724 gpio-controller;
1725 #gpio-cells = <2>;
1726 interrupt-controller;
1727 #interrupt-cells = <2>;
1728 reg = <0xa000 0x400>;
1729 clocks = <&rcc GPIOK>;
1730 st,bank-name = "GPIOK";
1731 status = "disabled";
1732 };
1733 };
1734
1735 pinctrl_z: pin-controller-z@54004000 {
1736 #address-cells = <1>;
1737 #size-cells = <1>;
1738 compatible = "st,stm32mp157-z-pinctrl";
1739 ranges = <0 0x54004000 0x400>;
1740 pins-are-numbered;
1741 interrupt-parent = <&exti>;
1742 st,syscfg = <&exti 0x60 0xff>;
1743
1744 gpioz: gpio@54004000 {
1745 gpio-controller;
1746 #gpio-cells = <2>;
1747 interrupt-controller;
1748 #interrupt-cells = <2>;
1749 reg = <0 0x400>;
1750 clocks = <&rcc GPIOZ>;
1751 st,bank-name = "GPIOZ";
1752 st,bank-ioport = <11>;
1753 status = "disabled";
1754 };
1755 };
1756 };
1757
1758 mlahb: ahb {
1759 compatible = "st,mlahb", "simple-bus";
1760 #address-cells = <1>;
1761 #size-cells = <1>;
1762 ranges;
1763 dma-ranges = <0x00000000 0x38000000 0x10000>,
1764 <0x10000000 0x10000000 0x60000>,
1765 <0x30000000 0x30000000 0x60000>;
1766
1767 m4_rproc: m4@10000000 {
1768 compatible = "st,stm32mp1-m4";
1769 reg = <0x10000000 0x40000>,
1770 <0x30000000 0x40000>,
1771 <0x38000000 0x10000>;
1772 resets = <&rcc MCU_R>;
1773 st,syscfg-holdboot = <&rcc 0x10C 0x1>;
1774 st,syscfg-tz = <&rcc 0x000 0x1>;
1775 st,syscfg-pdds = <&pwr_mcu 0x0 0x1>;
1776 st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>;
1777 st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>;
1778 status = "disabled";
1779 };
1780 };
1781};