blob: 7eb4bee31cfcacc08d1bcc2f75d440286c9302fb [file] [log] [blame]
Patrick Delaunaya6743132018-07-09 15:17:19 +02001// 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 device_type = "cpu";
21 reg = <0>;
22 };
23
24 cpu1: cpu@1 {
25 compatible = "arm,cortex-a7";
26 device_type = "cpu";
27 reg = <1>;
28 };
29 };
30
31 psci {
Patrick Delaunayc8a66682019-02-04 11:26:21 +010032 compatible = "arm,psci-1.0";
Patrick Delaunaya6743132018-07-09 15:17:19 +020033 method = "smc";
34 cpu_off = <0x84000002>;
35 cpu_on = <0x84000003>;
36 };
37
38 aliases {
39 gpio0 = &gpioa;
40 gpio1 = &gpiob;
41 gpio2 = &gpioc;
42 gpio3 = &gpiod;
43 gpio4 = &gpioe;
44 gpio5 = &gpiof;
45 gpio6 = &gpiog;
46 gpio7 = &gpioh;
47 gpio8 = &gpioi;
48 gpio9 = &gpioj;
49 gpio10 = &gpiok;
50 serial0 = &usart1;
51 serial1 = &usart2;
52 serial2 = &usart3;
53 serial3 = &uart4;
54 serial4 = &uart5;
55 serial5 = &usart6;
56 serial6 = &uart7;
57 serial7 = &uart8;
58 };
59
60 intc: interrupt-controller@a0021000 {
61 compatible = "arm,cortex-a7-gic";
62 #interrupt-cells = <3>;
63 interrupt-controller;
64 reg = <0xa0021000 0x1000>,
65 <0xa0022000 0x2000>;
66 };
67
68 timer {
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>;
75 };
76
77 clocks {
78 clk_hse: clk-hse {
79 #clock-cells = <0>;
80 compatible = "fixed-clock";
81 clock-frequency = <24000000>;
82 };
83
84 clk_hsi: clk-hsi {
85 #clock-cells = <0>;
86 compatible = "fixed-clock";
87 clock-frequency = <64000000>;
88 };
89
90 clk_lse: clk-lse {
91 #clock-cells = <0>;
92 compatible = "fixed-clock";
93 clock-frequency = <32768>;
94 };
95
96 clk_lsi: clk-lsi {
97 #clock-cells = <0>;
98 compatible = "fixed-clock";
99 clock-frequency = <32000>;
100 };
101
102 clk_csi: clk-csi {
103 #clock-cells = <0>;
104 compatible = "fixed-clock";
105 clock-frequency = <4000000>;
106 };
107 };
108
109 soc {
110 compatible = "simple-bus";
111 #address-cells = <1>;
112 #size-cells = <1>;
113 interrupt-parent = <&intc>;
114 ranges;
115
116 timers2: timer@40000000 {
117 #address-cells = <1>;
118 #size-cells = <0>;
119 compatible = "st,stm32-timers";
120 reg = <0x40000000 0x400>;
121 clocks = <&rcc TIM2_K>;
122 clock-names = "int";
123 status = "disabled";
124
125 pwm {
126 compatible = "st,stm32-pwm";
127 status = "disabled";
128 };
129
130 timer@1 {
131 compatible = "st,stm32h7-timer-trigger";
132 reg = <1>;
133 status = "disabled";
134 };
135 };
136
137 timers3: timer@40001000 {
138 #address-cells = <1>;
139 #size-cells = <0>;
140 compatible = "st,stm32-timers";
141 reg = <0x40001000 0x400>;
142 clocks = <&rcc TIM3_K>;
143 clock-names = "int";
144 status = "disabled";
145
146 pwm {
147 compatible = "st,stm32-pwm";
148 status = "disabled";
149 };
150
151 timer@2 {
152 compatible = "st,stm32h7-timer-trigger";
153 reg = <2>;
154 status = "disabled";
155 };
156 };
157
158 timers4: timer@40002000 {
159 #address-cells = <1>;
160 #size-cells = <0>;
161 compatible = "st,stm32-timers";
162 reg = <0x40002000 0x400>;
163 clocks = <&rcc TIM4_K>;
164 clock-names = "int";
165 status = "disabled";
166
167 pwm {
168 compatible = "st,stm32-pwm";
169 status = "disabled";
170 };
171
172 timer@3 {
173 compatible = "st,stm32h7-timer-trigger";
174 reg = <3>;
175 status = "disabled";
176 };
177 };
178
179 timers5: timer@40003000 {
180 #address-cells = <1>;
181 #size-cells = <0>;
182 compatible = "st,stm32-timers";
183 reg = <0x40003000 0x400>;
184 clocks = <&rcc TIM5_K>;
185 clock-names = "int";
186 status = "disabled";
187
188 pwm {
189 compatible = "st,stm32-pwm";
190 status = "disabled";
191 };
192
193 timer@4 {
194 compatible = "st,stm32h7-timer-trigger";
195 reg = <4>;
196 status = "disabled";
197 };
198 };
199
200 timers6: timer@40004000 {
201 #address-cells = <1>;
202 #size-cells = <0>;
203 compatible = "st,stm32-timers";
204 reg = <0x40004000 0x400>;
205 clocks = <&rcc TIM6_K>;
206 clock-names = "int";
207 status = "disabled";
208
209 timer@5 {
210 compatible = "st,stm32h7-timer-trigger";
211 reg = <5>;
212 status = "disabled";
213 };
214 };
215
216 timers7: timer@40005000 {
217 #address-cells = <1>;
218 #size-cells = <0>;
219 compatible = "st,stm32-timers";
220 reg = <0x40005000 0x400>;
221 clocks = <&rcc TIM7_K>;
222 clock-names = "int";
223 status = "disabled";
224
225 timer@6 {
226 compatible = "st,stm32h7-timer-trigger";
227 reg = <6>;
228 status = "disabled";
229 };
230 };
231
232 timers12: timer@40006000 {
233 #address-cells = <1>;
234 #size-cells = <0>;
235 compatible = "st,stm32-timers";
236 reg = <0x40006000 0x400>;
237 clocks = <&rcc TIM12_K>;
238 clock-names = "int";
239 status = "disabled";
240
241 pwm {
242 compatible = "st,stm32-pwm";
243 status = "disabled";
244 };
245
246 timer@11 {
247 compatible = "st,stm32h7-timer-trigger";
248 reg = <11>;
249 status = "disabled";
250 };
251 };
252
253 timers13: timer@40007000 {
254 #address-cells = <1>;
255 #size-cells = <0>;
256 compatible = "st,stm32-timers";
257 reg = <0x40007000 0x400>;
258 clocks = <&rcc TIM13_K>;
259 clock-names = "int";
260 status = "disabled";
261
262 pwm {
263 compatible = "st,stm32-pwm";
264 status = "disabled";
265 };
266
267 timer@12 {
268 compatible = "st,stm32h7-timer-trigger";
269 reg = <12>;
270 status = "disabled";
271 };
272 };
273
274 timers14: timer@40008000 {
275 #address-cells = <1>;
276 #size-cells = <0>;
277 compatible = "st,stm32-timers";
278 reg = <0x40008000 0x400>;
279 clocks = <&rcc TIM14_K>;
280 clock-names = "int";
281 status = "disabled";
282
283 pwm {
284 compatible = "st,stm32-pwm";
285 status = "disabled";
286 };
287
288 timer@13 {
289 compatible = "st,stm32h7-timer-trigger";
290 reg = <13>;
291 status = "disabled";
292 };
293 };
294
295 lptimer1: timer@40009000 {
296 #address-cells = <1>;
297 #size-cells = <0>;
298 compatible = "st,stm32-lptimer";
299 reg = <0x40009000 0x400>;
300 clocks = <&rcc LPTIM1_K>;
301 clock-names = "mux";
302 status = "disabled";
303
304 pwm {
305 compatible = "st,stm32-pwm-lp";
306 #pwm-cells = <3>;
307 status = "disabled";
308 };
309
310 trigger@0 {
311 compatible = "st,stm32-lptimer-trigger";
312 reg = <0>;
313 status = "disabled";
314 };
315
316 counter {
317 compatible = "st,stm32-lptimer-counter";
318 status = "disabled";
319 };
320 };
321
Patrice Chotard23661602019-02-12 16:50:38 +0100322 spi2: spi@4000b000 {
323 #address-cells = <1>;
324 #size-cells = <0>;
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";
333 status = "disabled";
334 };
335
336 spi3: spi@4000c000 {
337 #address-cells = <1>;
338 #size-cells = <0>;
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";
347 status = "disabled";
348 };
349
Patrick Delaunaya6743132018-07-09 15:17:19 +0200350 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>;
355 status = "disabled";
356 };
357
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>;
363 status = "disabled";
364 };
365
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>;
371 status = "disabled";
372 };
373
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>;
379 status = "disabled";
380 };
381
382 i2c1: i2c@40012000 {
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>;
391 #size-cells = <0>;
392 status = "disabled";
393 };
394
395 i2c2: i2c@40013000 {
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>;
404 #size-cells = <0>;
405 status = "disabled";
406 };
407
408 i2c3: i2c@40014000 {
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>;
417 #size-cells = <0>;
418 status = "disabled";
419 };
420
421 i2c5: i2c@40015000 {
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>;
430 #size-cells = <0>;
431 status = "disabled";
432 };
433
434 cec: cec@40016000 {
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";
440 status = "disabled";
441 };
442
443 dac: dac@40017000 {
444 compatible = "st,stm32h7-dac-core";
445 reg = <0x40017000 0x400>;
446 clocks = <&rcc DAC12>;
447 clock-names = "pclk";
448 #address-cells = <1>;
449 #size-cells = <0>;
450 status = "disabled";
451
452 dac1: dac@1 {
453 compatible = "st,stm32-dac";
454 #io-channels-cells = <1>;
455 reg = <1>;
456 status = "disabled";
457 };
458
459 dac2: dac@2 {
460 compatible = "st,stm32-dac";
461 #io-channels-cells = <1>;
462 reg = <2>;
463 status = "disabled";
464 };
465 };
466
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>;
472 status = "disabled";
473 };
474
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>;
480 status = "disabled";
481 };
482
483 timers1: timer@44000000 {
484 #address-cells = <1>;
485 #size-cells = <0>;
486 compatible = "st,stm32-timers";
487 reg = <0x44000000 0x400>;
488 clocks = <&rcc TIM1_K>;
489 clock-names = "int";
490 status = "disabled";
491
492 pwm {
493 compatible = "st,stm32-pwm";
494 status = "disabled";
495 };
496
497 timer@0 {
498 compatible = "st,stm32h7-timer-trigger";
499 reg = <0>;
500 status = "disabled";
501 };
502 };
503
504 timers8: timer@44001000 {
505 #address-cells = <1>;
506 #size-cells = <0>;
507 compatible = "st,stm32-timers";
508 reg = <0x44001000 0x400>;
509 clocks = <&rcc TIM8_K>;
510 clock-names = "int";
511 status = "disabled";
512
513 pwm {
514 compatible = "st,stm32-pwm";
515 status = "disabled";
516 };
517
518 timer@7 {
519 compatible = "st,stm32h7-timer-trigger";
520 reg = <7>;
521 status = "disabled";
522 };
523 };
524
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>;
530 status = "disabled";
531 };
532
Patrice Chotard23661602019-02-12 16:50:38 +0100533 spi1: spi@44004000 {
534 #address-cells = <1>;
535 #size-cells = <0>;
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";
544 status = "disabled";
545 };
546
547 spi4: spi@44005000 {
548 #address-cells = <1>;
549 #size-cells = <0>;
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";
558 status = "disabled";
559 };
560
Patrick Delaunaya6743132018-07-09 15:17:19 +0200561 timers15: timer@44006000 {
562 #address-cells = <1>;
563 #size-cells = <0>;
564 compatible = "st,stm32-timers";
565 reg = <0x44006000 0x400>;
566 clocks = <&rcc TIM15_K>;
567 clock-names = "int";
568 status = "disabled";
569
570 pwm {
571 compatible = "st,stm32-pwm";
572 status = "disabled";
573 };
574
575 timer@14 {
576 compatible = "st,stm32h7-timer-trigger";
577 reg = <14>;
578 status = "disabled";
579 };
580 };
581
582 timers16: timer@44007000 {
583 #address-cells = <1>;
584 #size-cells = <0>;
585 compatible = "st,stm32-timers";
586 reg = <0x44007000 0x400>;
587 clocks = <&rcc TIM16_K>;
588 clock-names = "int";
589 status = "disabled";
590
591 pwm {
592 compatible = "st,stm32-pwm";
593 status = "disabled";
594 };
595 timer@15 {
596 compatible = "st,stm32h7-timer-trigger";
597 reg = <15>;
598 status = "disabled";
599 };
600 };
601
602 timers17: timer@44008000 {
603 #address-cells = <1>;
604 #size-cells = <0>;
605 compatible = "st,stm32-timers";
606 reg = <0x44008000 0x400>;
607 clocks = <&rcc TIM17_K>;
608 clock-names = "int";
609 status = "disabled";
610
611 pwm {
612 compatible = "st,stm32-pwm";
613 status = "disabled";
614 };
615
616 timer@16 {
617 compatible = "st,stm32h7-timer-trigger";
618 reg = <16>;
619 status = "disabled";
620 };
621 };
622
Patrice Chotard23661602019-02-12 16:50:38 +0100623 spi5: spi@44009000 {
624 #address-cells = <1>;
625 #size-cells = <0>;
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";
634 status = "disabled";
635 };
636
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>;
643 #size-cells = <0>;
644 status = "disabled";
645
646 dfsdm0: filter@0 {
647 compatible = "st,stm32-dfsdm-adc";
648 #io-channel-cells = <1>;
649 reg = <0>;
650 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
651 dmas = <&dmamux1 101 0x400 0x01>;
652 dma-names = "rx";
653 status = "disabled";
654 };
655
656 dfsdm1: filter@1 {
657 compatible = "st,stm32-dfsdm-adc";
658 #io-channel-cells = <1>;
659 reg = <1>;
660 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
661 dmas = <&dmamux1 102 0x400 0x01>;
662 dma-names = "rx";
663 status = "disabled";
664 };
665
666 dfsdm2: filter@2 {
667 compatible = "st,stm32-dfsdm-adc";
668 #io-channel-cells = <1>;
669 reg = <2>;
670 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
671 dmas = <&dmamux1 103 0x400 0x01>;
672 dma-names = "rx";
673 status = "disabled";
674 };
675
676 dfsdm3: filter@3 {
677 compatible = "st,stm32-dfsdm-adc";
678 #io-channel-cells = <1>;
679 reg = <3>;
680 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
681 dmas = <&dmamux1 104 0x400 0x01>;
682 dma-names = "rx";
683 status = "disabled";
684 };
685
686 dfsdm4: filter@4 {
687 compatible = "st,stm32-dfsdm-adc";
688 #io-channel-cells = <1>;
689 reg = <4>;
690 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
691 dmas = <&dmamux1 91 0x400 0x01>;
692 dma-names = "rx";
693 status = "disabled";
694 };
695
696 dfsdm5: filter@5 {
697 compatible = "st,stm32-dfsdm-adc";
698 #io-channel-cells = <1>;
699 reg = <5>;
700 interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
701 dmas = <&dmamux1 92 0x400 0x01>;
702 dma-names = "rx";
703 status = "disabled";
704 };
705 };
706
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>;
717 status = "disabled";
718 };
719
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>;
730 status = "disabled";
731 };
732
Patrick Delaunaya6743132018-07-09 15:17:19 +0200733 dma1: dma@48000000 {
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>;
745 #dma-cells = <4>;
746 st,mem2mem;
747 dma-requests = <8>;
748 };
749
750 dma2: dma@48001000 {
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>;
762 #dma-cells = <4>;
763 st,mem2mem;
764 dma-requests = <8>;
765 };
766
767 dmamux1: dma-router@48002000 {
768 compatible = "st,stm32h7-dmamux";
769 reg = <0x48002000 0x1c>;
770 #dma-cells = <3>;
771 dma-requests = <128>;
772 dma-masters = <&dma1 &dma2>;
773 dma-channels = <16>;
774 clocks = <&rcc DMAMUX>;
775 };
776
Patrice Chotard638ee5a2018-08-06 09:54:04 +0200777 adc: adc@48003000 {
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>;
787 #size-cells = <0>;
788 status = "disabled";
789
790 adc1: adc@0 {
791 compatible = "st,stm32mp1-adc";
792 #io-channel-cells = <1>;
793 reg = <0x0>;
794 interrupt-parent = <&adc>;
795 interrupts = <0>;
Patrice Chotard23661602019-02-12 16:50:38 +0100796 dmas = <&dmamux1 9 0x400 0x01>;
797 dma-names = "rx";
Patrice Chotard638ee5a2018-08-06 09:54:04 +0200798 status = "disabled";
799 };
800
801 adc2: adc@100 {
802 compatible = "st,stm32mp1-adc";
803 #io-channel-cells = <1>;
804 reg = <0x100>;
805 interrupt-parent = <&adc>;
806 interrupts = <1>;
Patrice Chotard23661602019-02-12 16:50:38 +0100807 dmas = <&dmamux1 10 0x400 0x01>;
808 dma-names = "rx";
Patrice Chotard638ee5a2018-08-06 09:54:04 +0200809 status = "disabled";
810 };
811 };
812
Patrick Delaunaya6743132018-07-09 15:17:19 +0200813 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>;
820 st,idma = <1>;
821 cap-sd-highspeed;
822 cap-mmc-highspeed;
823 max-frequency = <120000000>;
824 status = "disabled";
825 };
826
Patrice Chotard8e9c94d2018-08-10 17:12:11 +0200827 usbotg_hs: usb-otg@49000000 {
Patrice Chotard23661602019-02-12 16:50:38 +0100828 compatible = "snps,dwc2";
Patrice Chotard8e9c94d2018-08-10 17:12:11 +0200829 reg = <0x49000000 0x10000>;
830 clocks = <&rcc USBO_K>;
831 clock-names = "otg";
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>;
838 dr_mode = "otg";
Patrice Chotard8e9c94d2018-08-10 17:12:11 +0200839 status = "disabled";
840 };
841
Benjamin Gaignard9119f542018-11-27 13:49:52 +0100842 hwspinlock: hwspinlock@4c000000 {
843 compatible = "st,stm32-hwspinlock";
844 #hwlock-cells = <1>;
845 reg = <0x4c000000 0x400>;
846 clocks = <&rcc HSEM>;
847 clock-names = "hwspinlock";
848 status = "disabled";
849 };
850
Patrick Delaunaya6743132018-07-09 15:17:19 +0200851 rcc: rcc@50000000 {
852 compatible = "st,stm32mp1-rcc", "syscon";
853 reg = <0x50000000 0x1000>;
854 #clock-cells = <1>;
855 #reset-cells = <1>;
856 };
857
858 rcc_reboot: rcc-reboot@50000000 {
859 compatible = "syscon-reboot";
860 regmap = <&rcc>;
861 offset = <0x404>;
862 mask = <0x1>;
863 };
864
865 pwr: pwr@50001000 {
866 compatible = "st,stm32mp1-pwr", "st,stm32-pwr", "syscon", "simple-mfd";
867 reg = <0x50001000 0x400>;
868 system-power-controller;
869 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
870 st,sysrcc = <&rcc>;
871 clocks = <&rcc PLL2_R>;
872 clock-names = "phyclk";
873
874 pwr-regulators@c {
875 compatible = "st,stm32mp1,pwr-reg";
876 st,tzcr = <&rcc 0x0 0x1>;
877
878 reg11: reg11 {
879 regulator-name = "reg11";
880 regulator-min-microvolt = <1100000>;
881 regulator-max-microvolt = <1100000>;
882 };
883
884 reg18: reg18 {
885 regulator-name = "reg18";
886 regulator-min-microvolt = <1800000>;
887 regulator-max-microvolt = <1800000>;
888 };
889
890 usb33: usb33 {
891 regulator-name = "usb33";
892 regulator-min-microvolt = <3300000>;
893 regulator-max-microvolt = <3300000>;
894 };
895 };
896 };
897
898 exti: interrupt-controller@5000d000 {
899 compatible = "st,stm32mp1-exti", "syscon";
900 interrupt-controller;
901 #interrupt-cells = <2>;
902 reg = <0x5000d000 0x400>;
903 };
904
Patrice Chotard23661602019-02-12 16:50:38 +0100905 syscfg: syscon@50020000 {
Patrick Delaunay6c09eb92019-02-27 17:01:23 +0100906 compatible = "st,stm32mp157-syscfg", "syscon";
Patrick Delaunaya6743132018-07-09 15:17:19 +0200907 reg = <0x50020000 0x400>;
908 };
909
910 lptimer2: timer@50021000 {
911 #address-cells = <1>;
912 #size-cells = <0>;
913 compatible = "st,stm32-lptimer";
914 reg = <0x50021000 0x400>;
915 clocks = <&rcc LPTIM2_K>;
916 clock-names = "mux";
917 status = "disabled";
918
919 pwm {
920 compatible = "st,stm32-pwm-lp";
921 #pwm-cells = <3>;
922 status = "disabled";
923 };
924
925 trigger@1 {
926 compatible = "st,stm32-lptimer-trigger";
927 reg = <1>;
928 status = "disabled";
929 };
930
931 counter {
932 compatible = "st,stm32-lptimer-counter";
933 status = "disabled";
934 };
935 };
936
937 lptimer3: timer@50022000 {
938 #address-cells = <1>;
939 #size-cells = <0>;
940 compatible = "st,stm32-lptimer";
941 reg = <0x50022000 0x400>;
942 clocks = <&rcc LPTIM3_K>;
943 clock-names = "mux";
944 status = "disabled";
945
946 pwm {
947 compatible = "st,stm32-pwm-lp";
948 #pwm-cells = <3>;
949 status = "disabled";
950 };
951
952 trigger@2 {
953 compatible = "st,stm32-lptimer-trigger";
954 reg = <2>;
955 status = "disabled";
956 };
957 };
958
959 lptimer4: timer@50023000 {
960 compatible = "st,stm32-lptimer";
961 reg = <0x50023000 0x400>;
962 clocks = <&rcc LPTIM4_K>;
963 clock-names = "mux";
964 status = "disabled";
965
966 pwm {
967 compatible = "st,stm32-pwm-lp";
968 #pwm-cells = <3>;
969 status = "disabled";
970 };
971 };
972
973 lptimer5: timer@50024000 {
974 compatible = "st,stm32-lptimer";
975 reg = <0x50024000 0x400>;
976 clocks = <&rcc LPTIM5_K>;
977 clock-names = "mux";
978 status = "disabled";
979
980 pwm {
981 compatible = "st,stm32-pwm-lp";
982 #pwm-cells = <3>;
983 status = "disabled";
984 };
985 };
986
987 vrefbuf: vrefbuf@50025000 {
988 compatible = "st,stm32-vrefbuf";
989 reg = <0x50025000 0x8>;
990 regulator-min-microvolt = <1500000>;
991 regulator-max-microvolt = <2500000>;
992 clocks = <&rcc VREF>;
993 status = "disabled";
994 };
995
996 cryp1: cryp@54001000 {
997 compatible = "st,stm32mp1-cryp";
998 reg = <0x54001000 0x400>;
999 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
1000 clocks = <&rcc CRYP1>;
1001 resets = <&rcc CRYP1_R>;
1002 status = "disabled";
1003 };
1004
Patrice Chotard23661602019-02-12 16:50:38 +01001005 hash1: hash@54002000 {
1006 compatible = "st,stm32f756-hash";
1007 reg = <0x54002000 0x400>;
1008 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
1009 clocks = <&rcc HASH1>;
1010 resets = <&rcc HASH1_R>;
1011 dmas = <&mdma1 31 0x10 0x1000A02 0x0 0x0>;
1012 dma-names = "in";
1013 dma-maxburst = <2>;
1014 status = "disabled";
1015 };
1016
Patrick Delaunaya6743132018-07-09 15:17:19 +02001017 rng1: rng@54003000 {
1018 compatible = "st,stm32-rng";
1019 reg = <0x54003000 0x400>;
1020 clocks = <&rcc RNG1_K>;
1021 resets = <&rcc RNG1_R>;
1022 status = "disabled";
1023 };
1024
1025 mdma1: dma@58000000 {
1026 compatible = "st,stm32h7-mdma";
1027 reg = <0x58000000 0x1000>;
1028 interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
1029 clocks = <&rcc MDMA>;
1030 #dma-cells = <5>;
1031 dma-channels = <32>;
1032 dma-requests = <48>;
1033 };
1034
Patrice Chotard23661602019-02-12 16:50:38 +01001035 qspi: spi@58003000 {
Patrick Delaunaya6743132018-07-09 15:17:19 +02001036 compatible = "st,stm32f469-qspi";
1037 reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
1038 reg-names = "qspi", "qspi_mm";
1039 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
1040 clocks = <&rcc QSPI_K>;
1041 resets = <&rcc QSPI_R>;
1042 status = "disabled";
1043 };
1044
1045 sdmmc1: sdmmc@58005000 {
1046 compatible = "st,stm32-sdmmc2";
1047 reg = <0x58005000 0x1000>, <0x58006000 0x1000>;
1048 reg-names = "sdmmc", "delay";
1049 clocks = <&rcc SDMMC1_K>;
1050 resets = <&rcc SDMMC1_R>;
1051 st,idma = <1>;
1052 cap-sd-highspeed;
1053 cap-mmc-highspeed;
1054 max-frequency = <120000000>;
1055 status = "disabled";
1056 };
1057
1058 sdmmc2: sdmmc@58007000 {
1059 compatible = "st,stm32-sdmmc2";
1060 reg = <0x58007000 0x1000>, <0x58008000 0x1000>;
1061 reg-names = "sdmmc", "delay";
1062 interrupts = <GIC_SPI 124 IRQ_TYPE_NONE>;
1063 clocks = <&rcc SDMMC2_K>;
1064 resets = <&rcc SDMMC2_R>;
1065 st,idma = <1>;
1066 cap-sd-highspeed;
1067 cap-mmc-highspeed;
1068 max-frequency = <120000000>;
1069 status = "disabled";
1070 };
1071
1072 crc1: crc@58009000 {
1073 compatible = "st,stm32f7-crc";
1074 reg = <0x58009000 0x400>;
1075 clocks = <&rcc CRC1>;
1076 status = "disabled";
1077 };
1078
Patrice Chotard23661602019-02-12 16:50:38 +01001079 stmmac_axi_config_0: stmmac-axi-config {
1080 snps,wr_osr_lmt = <0x7>;
1081 snps,rd_osr_lmt = <0x7>;
1082 snps,blen = <0 0 0 0 16 8 4>;
1083 };
1084
1085 ethernet0: ethernet@5800a000 {
1086 compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a";
1087 reg = <0x5800a000 0x2000>;
1088 reg-names = "stmmaceth";
1089 interrupts-extended = <&intc GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
1090 interrupt-names = "macirq";
1091 clock-names = "stmmaceth",
1092 "mac-clk-tx",
1093 "mac-clk-rx",
1094 "ethstp",
1095 "syscfg-clk";
1096 clocks = <&rcc ETHMAC>,
1097 <&rcc ETHTX>,
1098 <&rcc ETHRX>,
1099 <&rcc ETHSTP>,
1100 <&rcc SYSCFG>;
1101 st,syscon = <&syscfg 0x4>;
1102 snps,mixed-burst;
1103 snps,pbl = <2>;
1104 snps,axi-config = <&stmmac_axi_config_0>;
1105 snps,tso;
1106 status = "disabled";
1107 };
1108
Patrick Delaunaya6743132018-07-09 15:17:19 +02001109 usbh_ohci: usbh-ohci@5800c000 {
1110 compatible = "generic-ohci";
1111 reg = <0x5800c000 0x1000>;
1112 clocks = <&rcc USBH>;
1113 resets = <&rcc USBH_R>;
1114 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
1115 status = "disabled";
1116 };
1117
1118 usbh_ehci: usbh-ehci@5800d000 {
1119 compatible = "generic-ehci";
1120 reg = <0x5800d000 0x1000>;
1121 clocks = <&rcc USBH>;
1122 resets = <&rcc USBH_R>;
1123 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
1124 companion = <&usbh_ohci>;
1125 status = "disabled";
1126 };
1127
1128 dsi: dsi@5a000000 {
1129 compatible = "st,stm32-dsi";
1130 reg = <0x5a000000 0x800>;
1131 clocks = <&rcc DSI_K>, <&clk_hse>, <&rcc DSI_PX>;
1132 clock-names = "pclk", "ref", "px_clk";
1133 resets = <&rcc DSI_R>;
1134 reset-names = "apb";
1135 status = "disabled";
1136 };
1137
1138 ltdc: display-controller@5a001000 {
1139 compatible = "st,stm32-ltdc";
1140 reg = <0x5a001000 0x400>;
1141 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
1142 <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1143 clocks = <&rcc LTDC_PX>;
1144 clock-names = "lcd";
1145 resets = <&rcc LTDC_R>;
1146 status = "disabled";
1147 };
1148
Patrice Chotard23661602019-02-12 16:50:38 +01001149 iwdg2: watchdog@5a002000 {
1150 compatible = "st,stm32mp1-iwdg";
1151 reg = <0x5a002000 0x400>;
1152 clocks = <&rcc IWDG2>, <&rcc CK_LSI>;
1153 clock-names = "pclk", "lsi";
1154 status = "disabled";
1155 };
1156
Patrick Delaunaya6743132018-07-09 15:17:19 +02001157 usbphyc: usbphyc@5a006000 {
1158 #address-cells = <1>;
1159 #size-cells = <0>;
1160 compatible = "st,stm32mp1-usbphyc";
1161 reg = <0x5a006000 0x1000>;
1162 clocks = <&rcc USBPHY_K>;
1163 resets = <&rcc USBPHY_R>;
1164 status = "disabled";
1165
1166 usbphyc_port0: usb-phy@0 {
1167 #phy-cells = <0>;
1168 reg = <0>;
1169 };
1170
1171 usbphyc_port1: usb-phy@1 {
1172 #phy-cells = <1>;
1173 reg = <1>;
1174 };
1175 };
1176
1177 usart1: serial@5c000000 {
1178 compatible = "st,stm32h7-uart";
1179 reg = <0x5c000000 0x400>;
1180 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
1181 clocks = <&rcc USART1_K>;
1182 status = "disabled";
1183 };
1184
Patrice Chotard23661602019-02-12 16:50:38 +01001185 spi6: spi@5c001000 {
1186 #address-cells = <1>;
1187 #size-cells = <0>;
1188 compatible = "st,stm32h7-spi";
1189 reg = <0x5c001000 0x400>;
1190 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
1191 clocks = <&rcc SPI6_K>;
1192 resets = <&rcc SPI6_R>;
1193 dmas = <&mdma1 34 0x0 0x40008 0x0 0x0>,
1194 <&mdma1 35 0x0 0x40002 0x0 0x0>;
1195 dma-names = "rx", "tx";
1196 status = "disabled";
1197 };
1198
Patrick Delaunaya6743132018-07-09 15:17:19 +02001199 i2c4: i2c@5c002000 {
1200 compatible = "st,stm32f7-i2c";
1201 reg = <0x5c002000 0x400>;
1202 interrupt-names = "event", "error";
1203 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
1204 <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1205 clocks = <&rcc I2C4_K>;
1206 resets = <&rcc I2C4_R>;
1207 #address-cells = <1>;
1208 #size-cells = <0>;
1209 status = "disabled";
1210 };
1211
Patrice Chotard23661602019-02-12 16:50:38 +01001212 rtc: rtc@5c004000 {
1213 compatible = "st,stm32mp1-rtc";
1214 reg = <0x5c004000 0x400>;
1215 clocks = <&rcc RTCAPB>, <&rcc RTC>;
1216 clock-names = "pclk", "rtc_ck";
1217 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
1218 status = "disabled";
1219 };
1220
Patrick Delaunaybfe1f082019-02-27 17:01:27 +01001221 bsec: nvmem@5c005000 {
1222 compatible = "st,stm32mp15-bsec";
1223 reg = <0x5c005000 0x400>;
1224 #address-cells = <1>;
1225 #size-cells = <1>;
1226 };
1227
Patrick Delaunaya6743132018-07-09 15:17:19 +02001228 i2c6: i2c@5c009000 {
1229 compatible = "st,stm32f7-i2c";
1230 reg = <0x5c009000 0x400>;
1231 interrupt-names = "event", "error";
1232 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
1233 <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
1234 clocks = <&rcc I2C6_K>;
1235 resets = <&rcc I2C6_R>;
1236 #address-cells = <1>;
1237 #size-cells = <0>;
1238 status = "disabled";
1239 };
1240 };
1241};