blob: c26431589051577412a46abd55bf2de5b1f71542 [file] [log] [blame]
Ludovic Barre8471a202018-02-26 16:35:40 +01001// 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>
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +01007#include <dt-bindings/clock/stm32mp1-clks.h>
Gabriel Fernandezbde22822018-05-02 14:14:44 +02008#include <dt-bindings/reset/stm32mp1-resets.h>
Ludovic Barre8471a202018-02-26 16:35:40 +01009
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 {
32 compatible = "arm,psci";
33 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 };
51
52 intc: interrupt-controller@a0021000 {
53 compatible = "arm,cortex-a7-gic";
54 #interrupt-cells = <3>;
55 interrupt-controller;
56 reg = <0xa0021000 0x1000>,
57 <0xa0022000 0x2000>;
58 };
59
60 timer {
61 compatible = "arm,armv7-timer";
62 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
63 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
64 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
65 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
66 interrupt-parent = <&intc>;
67 };
68
69 clocks {
70 clk_hse: clk-hse {
71 #clock-cells = <0>;
72 compatible = "fixed-clock";
73 clock-frequency = <24000000>;
74 };
75
Ludovic Barre8471a202018-02-26 16:35:40 +010076 clk_hsi: clk-hsi {
77 #clock-cells = <0>;
78 compatible = "fixed-clock";
79 clock-frequency = <64000000>;
80 };
81
82 clk_lse: clk-lse {
83 #clock-cells = <0>;
84 compatible = "fixed-clock";
85 clock-frequency = <32768>;
86 };
87
88 clk_lsi: clk-lsi {
89 #clock-cells = <0>;
90 compatible = "fixed-clock";
91 clock-frequency = <32000>;
92 };
93
94 clk_csi: clk-csi {
95 #clock-cells = <0>;
96 compatible = "fixed-clock";
97 clock-frequency = <4000000>;
98 };
Ludovic Barre8471a202018-02-26 16:35:40 +010099 };
100
101 soc {
102 compatible = "simple-bus";
103 #address-cells = <1>;
104 #size-cells = <1>;
105 interrupt-parent = <&intc>;
106 ranges;
107
Fabrice Gasnier61fc2112018-04-17 15:45:00 +0200108 timers2: timer@40000000 {
109 #address-cells = <1>;
110 #size-cells = <0>;
111 compatible = "st,stm32-timers";
112 reg = <0x40000000 0x400>;
113 clocks = <&rcc TIM2_K>;
114 clock-names = "int";
115 status = "disabled";
116
117 pwm {
118 compatible = "st,stm32-pwm";
119 status = "disabled";
120 };
121
122 timer@1 {
123 compatible = "st,stm32h7-timer-trigger";
124 reg = <1>;
125 status = "disabled";
126 };
127 };
128
129 timers3: timer@40001000 {
130 #address-cells = <1>;
131 #size-cells = <0>;
132 compatible = "st,stm32-timers";
133 reg = <0x40001000 0x400>;
134 clocks = <&rcc TIM3_K>;
135 clock-names = "int";
136 status = "disabled";
137
138 pwm {
139 compatible = "st,stm32-pwm";
140 status = "disabled";
141 };
142
143 timer@2 {
144 compatible = "st,stm32h7-timer-trigger";
145 reg = <2>;
146 status = "disabled";
147 };
148 };
149
150 timers4: timer@40002000 {
151 #address-cells = <1>;
152 #size-cells = <0>;
153 compatible = "st,stm32-timers";
154 reg = <0x40002000 0x400>;
155 clocks = <&rcc TIM4_K>;
156 clock-names = "int";
157 status = "disabled";
158
159 pwm {
160 compatible = "st,stm32-pwm";
161 status = "disabled";
162 };
163
164 timer@3 {
165 compatible = "st,stm32h7-timer-trigger";
166 reg = <3>;
167 status = "disabled";
168 };
169 };
170
171 timers5: timer@40003000 {
172 #address-cells = <1>;
173 #size-cells = <0>;
174 compatible = "st,stm32-timers";
175 reg = <0x40003000 0x400>;
176 clocks = <&rcc TIM5_K>;
177 clock-names = "int";
178 status = "disabled";
179
180 pwm {
181 compatible = "st,stm32-pwm";
182 status = "disabled";
183 };
184
185 timer@4 {
186 compatible = "st,stm32h7-timer-trigger";
187 reg = <4>;
188 status = "disabled";
189 };
190 };
191
192 timers6: timer@40004000 {
193 #address-cells = <1>;
194 #size-cells = <0>;
195 compatible = "st,stm32-timers";
196 reg = <0x40004000 0x400>;
197 clocks = <&rcc TIM6_K>;
198 clock-names = "int";
199 status = "disabled";
200
201 timer@5 {
202 compatible = "st,stm32h7-timer-trigger";
203 reg = <5>;
204 status = "disabled";
205 };
206 };
207
208 timers7: timer@40005000 {
209 #address-cells = <1>;
210 #size-cells = <0>;
211 compatible = "st,stm32-timers";
212 reg = <0x40005000 0x400>;
213 clocks = <&rcc TIM7_K>;
214 clock-names = "int";
215 status = "disabled";
216
217 timer@6 {
218 compatible = "st,stm32h7-timer-trigger";
219 reg = <6>;
220 status = "disabled";
221 };
222 };
223
224 timers12: timer@40006000 {
225 #address-cells = <1>;
226 #size-cells = <0>;
227 compatible = "st,stm32-timers";
228 reg = <0x40006000 0x400>;
229 clocks = <&rcc TIM12_K>;
230 clock-names = "int";
231 status = "disabled";
232
233 pwm {
234 compatible = "st,stm32-pwm";
235 status = "disabled";
236 };
237
238 timer@11 {
239 compatible = "st,stm32h7-timer-trigger";
240 reg = <11>;
241 status = "disabled";
242 };
243 };
244
245 timers13: timer@40007000 {
246 #address-cells = <1>;
247 #size-cells = <0>;
248 compatible = "st,stm32-timers";
249 reg = <0x40007000 0x400>;
250 clocks = <&rcc TIM13_K>;
251 clock-names = "int";
252 status = "disabled";
253
254 pwm {
255 compatible = "st,stm32-pwm";
256 status = "disabled";
257 };
258
259 timer@12 {
260 compatible = "st,stm32h7-timer-trigger";
261 reg = <12>;
262 status = "disabled";
263 };
264 };
265
266 timers14: timer@40008000 {
267 #address-cells = <1>;
268 #size-cells = <0>;
269 compatible = "st,stm32-timers";
270 reg = <0x40008000 0x400>;
271 clocks = <&rcc TIM14_K>;
272 clock-names = "int";
273 status = "disabled";
274
275 pwm {
276 compatible = "st,stm32-pwm";
277 status = "disabled";
278 };
279
280 timer@13 {
281 compatible = "st,stm32h7-timer-trigger";
282 reg = <13>;
283 status = "disabled";
284 };
285 };
286
Fabrice Gasnier966ed872018-05-02 13:53:38 +0200287 lptimer1: timer@40009000 {
288 #address-cells = <1>;
289 #size-cells = <0>;
290 compatible = "st,stm32-lptimer";
291 reg = <0x40009000 0x400>;
292 clocks = <&rcc LPTIM1_K>;
293 clock-names = "mux";
294 status = "disabled";
295
296 pwm {
297 compatible = "st,stm32-pwm-lp";
298 #pwm-cells = <3>;
299 status = "disabled";
300 };
301
302 trigger@0 {
303 compatible = "st,stm32-lptimer-trigger";
304 reg = <0>;
305 status = "disabled";
306 };
307
308 counter {
309 compatible = "st,stm32-lptimer-counter";
310 status = "disabled";
311 };
312 };
313
Ludovic Barre8471a202018-02-26 16:35:40 +0100314 usart2: serial@4000e000 {
315 compatible = "st,stm32h7-uart";
316 reg = <0x4000e000 0x400>;
317 interrupts = <GIC_SPI 38 IRQ_TYPE_NONE>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100318 clocks = <&rcc USART2_K>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100319 status = "disabled";
320 };
321
322 usart3: serial@4000f000 {
323 compatible = "st,stm32h7-uart";
324 reg = <0x4000f000 0x400>;
325 interrupts = <GIC_SPI 39 IRQ_TYPE_NONE>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100326 clocks = <&rcc USART3_K>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100327 status = "disabled";
328 };
329
330 uart4: serial@40010000 {
331 compatible = "st,stm32h7-uart";
332 reg = <0x40010000 0x400>;
333 interrupts = <GIC_SPI 52 IRQ_TYPE_NONE>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100334 clocks = <&rcc UART4_K>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100335 status = "disabled";
336 };
337
338 uart5: serial@40011000 {
339 compatible = "st,stm32h7-uart";
340 reg = <0x40011000 0x400>;
341 interrupts = <GIC_SPI 53 IRQ_TYPE_NONE>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100342 clocks = <&rcc UART5_K>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100343 status = "disabled";
344 };
345
Fabrice Gasnierda6cddc2018-04-18 17:46:00 +0200346 dac: dac@40017000 {
347 compatible = "st,stm32h7-dac-core";
348 reg = <0x40017000 0x400>;
349 clocks = <&rcc DAC12>;
350 clock-names = "pclk";
351 #address-cells = <1>;
352 #size-cells = <0>;
353 status = "disabled";
354
355 dac1: dac@1 {
356 compatible = "st,stm32-dac";
357 #io-channels-cells = <1>;
358 reg = <1>;
359 status = "disabled";
360 };
361
362 dac2: dac@2 {
363 compatible = "st,stm32-dac";
364 #io-channels-cells = <1>;
365 reg = <2>;
366 status = "disabled";
367 };
368 };
369
Ludovic Barre8471a202018-02-26 16:35:40 +0100370 uart7: serial@40018000 {
371 compatible = "st,stm32h7-uart";
372 reg = <0x40018000 0x400>;
373 interrupts = <GIC_SPI 82 IRQ_TYPE_NONE>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100374 clocks = <&rcc UART7_K>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100375 status = "disabled";
376 };
377
378 uart8: serial@40019000 {
379 compatible = "st,stm32h7-uart";
380 reg = <0x40019000 0x400>;
381 interrupts = <GIC_SPI 83 IRQ_TYPE_NONE>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100382 clocks = <&rcc UART8_K>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100383 status = "disabled";
384 };
385
Fabrice Gasnier61fc2112018-04-17 15:45:00 +0200386 timers1: timer@44000000 {
387 #address-cells = <1>;
388 #size-cells = <0>;
389 compatible = "st,stm32-timers";
390 reg = <0x44000000 0x400>;
391 clocks = <&rcc TIM1_K>;
392 clock-names = "int";
393 status = "disabled";
394
395 pwm {
396 compatible = "st,stm32-pwm";
397 status = "disabled";
398 };
399
400 timer@0 {
401 compatible = "st,stm32h7-timer-trigger";
402 reg = <0>;
403 status = "disabled";
404 };
405 };
406
407 timers8: timer@44001000 {
408 #address-cells = <1>;
409 #size-cells = <0>;
410 compatible = "st,stm32-timers";
411 reg = <0x44001000 0x400>;
412 clocks = <&rcc TIM8_K>;
413 clock-names = "int";
414 status = "disabled";
415
416 pwm {
417 compatible = "st,stm32-pwm";
418 status = "disabled";
419 };
420
421 timer@7 {
422 compatible = "st,stm32h7-timer-trigger";
423 reg = <7>;
424 status = "disabled";
425 };
426 };
427
Ludovic Barre8471a202018-02-26 16:35:40 +0100428 usart6: serial@44003000 {
429 compatible = "st,stm32h7-uart";
430 reg = <0x44003000 0x400>;
431 interrupts = <GIC_SPI 71 IRQ_TYPE_NONE>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100432 clocks = <&rcc USART6_K>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100433 status = "disabled";
434 };
435
Fabrice Gasnier61fc2112018-04-17 15:45:00 +0200436 timers15: timer@44006000 {
437 #address-cells = <1>;
438 #size-cells = <0>;
439 compatible = "st,stm32-timers";
440 reg = <0x44006000 0x400>;
441 clocks = <&rcc TIM15_K>;
442 clock-names = "int";
443 status = "disabled";
444
445 pwm {
446 compatible = "st,stm32-pwm";
447 status = "disabled";
448 };
449
450 timer@14 {
451 compatible = "st,stm32h7-timer-trigger";
452 reg = <14>;
453 status = "disabled";
454 };
455 };
456
457 timers16: timer@44007000 {
458 #address-cells = <1>;
459 #size-cells = <0>;
460 compatible = "st,stm32-timers";
461 reg = <0x44007000 0x400>;
462 clocks = <&rcc TIM16_K>;
463 clock-names = "int";
464 status = "disabled";
465
466 pwm {
467 compatible = "st,stm32-pwm";
468 status = "disabled";
469 };
470 timer@15 {
471 compatible = "st,stm32h7-timer-trigger";
472 reg = <15>;
473 status = "disabled";
474 };
475 };
476
477 timers17: timer@44008000 {
478 #address-cells = <1>;
479 #size-cells = <0>;
480 compatible = "st,stm32-timers";
481 reg = <0x44008000 0x400>;
482 clocks = <&rcc TIM17_K>;
483 clock-names = "int";
484 status = "disabled";
485
486 pwm {
487 compatible = "st,stm32-pwm";
488 status = "disabled";
489 };
490
491 timer@16 {
492 compatible = "st,stm32h7-timer-trigger";
493 reg = <16>;
494 status = "disabled";
495 };
496 };
497
Pierre-Yves MORDRETea1c4042018-04-20 11:14:00 +0200498 dma1: dma@48000000 {
499 compatible = "st,stm32-dma";
500 reg = <0x48000000 0x400>;
501 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
502 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
503 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
504 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
505 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
506 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
507 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
508 <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
509 clocks = <&rcc DMA1>;
510 #dma-cells = <4>;
511 st,mem2mem;
Pierre-Yves MORDRET1cffb562018-04-20 11:14:00 +0200512 dma-requests = <8>;
Pierre-Yves MORDRETea1c4042018-04-20 11:14:00 +0200513 };
514
515 dma2: dma@48001000 {
516 compatible = "st,stm32-dma";
517 reg = <0x48001000 0x400>;
518 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
519 <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
520 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
521 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
522 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
523 <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
524 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
525 <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
526 clocks = <&rcc DMA2>;
527 #dma-cells = <4>;
528 st,mem2mem;
Pierre-Yves MORDRET1cffb562018-04-20 11:14:00 +0200529 dma-requests = <8>;
530 };
531
532 dmamux1: dma-router@48002000 {
533 compatible = "st,stm32h7-dmamux";
534 reg = <0x48002000 0x1c>;
535 #dma-cells = <3>;
536 dma-requests = <128>;
537 dma-masters = <&dma1 &dma2>;
538 dma-channels = <16>;
539 clocks = <&rcc DMAMUX>;
Pierre-Yves MORDRETea1c4042018-04-20 11:14:00 +0200540 };
541
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100542 rcc: rcc@50000000 {
543 compatible = "st,stm32mp1-rcc", "syscon";
544 reg = <0x50000000 0x1000>;
545 #clock-cells = <1>;
546 #reset-cells = <1>;
547 };
548
Fabrice Gasnier966ed872018-05-02 13:53:38 +0200549 lptimer2: timer@50021000 {
550 #address-cells = <1>;
551 #size-cells = <0>;
552 compatible = "st,stm32-lptimer";
553 reg = <0x50021000 0x400>;
554 clocks = <&rcc LPTIM2_K>;
555 clock-names = "mux";
556 status = "disabled";
557
558 pwm {
559 compatible = "st,stm32-pwm-lp";
560 #pwm-cells = <3>;
561 status = "disabled";
562 };
563
564 trigger@1 {
565 compatible = "st,stm32-lptimer-trigger";
566 reg = <1>;
567 status = "disabled";
568 };
569
570 counter {
571 compatible = "st,stm32-lptimer-counter";
572 status = "disabled";
573 };
574 };
575
576 lptimer3: timer@50022000 {
577 #address-cells = <1>;
578 #size-cells = <0>;
579 compatible = "st,stm32-lptimer";
580 reg = <0x50022000 0x400>;
581 clocks = <&rcc LPTIM3_K>;
582 clock-names = "mux";
583 status = "disabled";
584
585 pwm {
586 compatible = "st,stm32-pwm-lp";
587 #pwm-cells = <3>;
588 status = "disabled";
589 };
590
591 trigger@2 {
592 compatible = "st,stm32-lptimer-trigger";
593 reg = <2>;
594 status = "disabled";
595 };
596 };
597
598 lptimer4: timer@50023000 {
599 compatible = "st,stm32-lptimer";
600 reg = <0x50023000 0x400>;
601 clocks = <&rcc LPTIM4_K>;
602 clock-names = "mux";
603 status = "disabled";
604
605 pwm {
606 compatible = "st,stm32-pwm-lp";
607 #pwm-cells = <3>;
608 status = "disabled";
609 };
610 };
611
612 lptimer5: timer@50024000 {
613 compatible = "st,stm32-lptimer";
614 reg = <0x50024000 0x400>;
615 clocks = <&rcc LPTIM5_K>;
616 clock-names = "mux";
617 status = "disabled";
618
619 pwm {
620 compatible = "st,stm32-pwm-lp";
621 #pwm-cells = <3>;
622 status = "disabled";
623 };
624 };
625
Fabrice Gasnier9f790af2018-04-18 09:47:00 +0200626 vrefbuf: vrefbuf@50025000 {
627 compatible = "st,stm32-vrefbuf";
628 reg = <0x50025000 0x8>;
629 regulator-min-microvolt = <1500000>;
630 regulator-max-microvolt = <2500000>;
631 clocks = <&rcc VREF>;
632 status = "disabled";
633 };
634
Lionel Debievefc9962c2018-04-23 17:19:00 +0200635 cryp1: cryp@54001000 {
636 compatible = "st,stm32mp1-cryp";
637 reg = <0x54001000 0x400>;
638 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
639 clocks = <&rcc CRYP1>;
640 resets = <&rcc CRYP1_R>;
641 status = "disabled";
642 };
643
Lionel Debieve6973f0a2018-04-23 17:19:00 +0200644 rng1: rng@54003000 {
645 compatible = "st,stm32-rng";
646 reg = <0x54003000 0x400>;
647 clocks = <&rcc RNG1_K>;
648 resets = <&rcc RNG1_R>;
649 status = "disabled";
650 };
651
Pierre-Yves MORDRET8ecf9102018-04-20 11:15:00 +0200652 mdma1: dma@58000000 {
653 compatible = "st,stm32h7-mdma";
654 reg = <0x58000000 0x1000>;
655 interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
656 clocks = <&rcc MDMA>;
657 #dma-cells = <5>;
658 dma-channels = <32>;
659 dma-requests = <48>;
660 };
661
Ludovic Barre8471a202018-02-26 16:35:40 +0100662 usart1: serial@5c000000 {
663 compatible = "st,stm32h7-uart";
664 reg = <0x5c000000 0x400>;
665 interrupts = <GIC_SPI 37 IRQ_TYPE_NONE>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100666 clocks = <&rcc USART1_K>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100667 status = "disabled";
668 };
669 };
670};