blob: 518383020b68fd640acad834e4f64562e8557a0a [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
Amelie Delaunaydc3f8c82018-06-26 14:54:07 +0200314 spi2: spi@4000b000 {
315 #address-cells = <1>;
316 #size-cells = <0>;
317 compatible = "st,stm32h7-spi";
318 reg = <0x4000b000 0x400>;
319 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
320 clocks = <&rcc SPI2_K>;
321 resets = <&rcc SPI2_R>;
322 dmas = <&dmamux1 39 0x400 0x05>,
323 <&dmamux1 40 0x400 0x05>;
324 dma-names = "rx", "tx";
325 status = "disabled";
326 };
327
328 spi3: spi@4000c000 {
329 #address-cells = <1>;
330 #size-cells = <0>;
331 compatible = "st,stm32h7-spi";
332 reg = <0x4000c000 0x400>;
333 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
334 clocks = <&rcc SPI3_K>;
335 resets = <&rcc SPI3_R>;
336 dmas = <&dmamux1 61 0x400 0x05>,
337 <&dmamux1 62 0x400 0x05>;
338 dma-names = "rx", "tx";
339 status = "disabled";
340 };
341
Ludovic Barre8471a202018-02-26 16:35:40 +0100342 usart2: serial@4000e000 {
343 compatible = "st,stm32h7-uart";
344 reg = <0x4000e000 0x400>;
Alexandre Torgue2ff04d02018-05-03 15:28:28 +0200345 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100346 clocks = <&rcc USART2_K>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100347 status = "disabled";
348 };
349
350 usart3: serial@4000f000 {
351 compatible = "st,stm32h7-uart";
352 reg = <0x4000f000 0x400>;
Alexandre Torgue2ff04d02018-05-03 15:28:28 +0200353 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100354 clocks = <&rcc USART3_K>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100355 status = "disabled";
356 };
357
358 uart4: serial@40010000 {
359 compatible = "st,stm32h7-uart";
360 reg = <0x40010000 0x400>;
Alexandre Torgue2ff04d02018-05-03 15:28:28 +0200361 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100362 clocks = <&rcc UART4_K>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100363 status = "disabled";
364 };
365
366 uart5: serial@40011000 {
367 compatible = "st,stm32h7-uart";
368 reg = <0x40011000 0x400>;
Alexandre Torgue2ff04d02018-05-03 15:28:28 +0200369 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100370 clocks = <&rcc UART5_K>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100371 status = "disabled";
372 };
373
Pierre-Yves MORDRETd126e862018-04-23 11:48:00 +0200374 i2c1: i2c@40012000 {
375 compatible = "st,stm32f7-i2c";
376 reg = <0x40012000 0x400>;
377 interrupt-names = "event", "error";
378 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
379 <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
380 clocks = <&rcc I2C1_K>;
381 resets = <&rcc I2C1_R>;
382 #address-cells = <1>;
383 #size-cells = <0>;
384 status = "disabled";
385 };
386
387 i2c2: i2c@40013000 {
388 compatible = "st,stm32f7-i2c";
389 reg = <0x40013000 0x400>;
390 interrupt-names = "event", "error";
391 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
392 <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
393 clocks = <&rcc I2C2_K>;
394 resets = <&rcc I2C2_R>;
395 #address-cells = <1>;
396 #size-cells = <0>;
397 status = "disabled";
398 };
399
400 i2c3: i2c@40014000 {
401 compatible = "st,stm32f7-i2c";
402 reg = <0x40014000 0x400>;
403 interrupt-names = "event", "error";
404 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
405 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
406 clocks = <&rcc I2C3_K>;
407 resets = <&rcc I2C3_R>;
408 #address-cells = <1>;
409 #size-cells = <0>;
410 status = "disabled";
411 };
412
413 i2c5: i2c@40015000 {
414 compatible = "st,stm32f7-i2c";
415 reg = <0x40015000 0x400>;
416 interrupt-names = "event", "error";
417 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
418 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
419 clocks = <&rcc I2C5_K>;
420 resets = <&rcc I2C5_R>;
421 #address-cells = <1>;
422 #size-cells = <0>;
423 status = "disabled";
424 };
425
yannick fertre066f3712018-04-24 09:54:00 +0200426 cec: cec@40016000 {
427 compatible = "st,stm32-cec";
428 reg = <0x40016000 0x400>;
429 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
430 clocks = <&rcc CEC_K>, <&clk_lse>;
431 clock-names = "cec", "hdmi-cec";
432 status = "disabled";
433 };
434
Fabrice Gasnierda6cddc2018-04-18 17:46:00 +0200435 dac: dac@40017000 {
436 compatible = "st,stm32h7-dac-core";
437 reg = <0x40017000 0x400>;
438 clocks = <&rcc DAC12>;
439 clock-names = "pclk";
440 #address-cells = <1>;
441 #size-cells = <0>;
442 status = "disabled";
443
444 dac1: dac@1 {
445 compatible = "st,stm32-dac";
446 #io-channels-cells = <1>;
447 reg = <1>;
448 status = "disabled";
449 };
450
451 dac2: dac@2 {
452 compatible = "st,stm32-dac";
453 #io-channels-cells = <1>;
454 reg = <2>;
455 status = "disabled";
456 };
457 };
458
Ludovic Barre8471a202018-02-26 16:35:40 +0100459 uart7: serial@40018000 {
460 compatible = "st,stm32h7-uart";
461 reg = <0x40018000 0x400>;
Alexandre Torgue2ff04d02018-05-03 15:28:28 +0200462 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100463 clocks = <&rcc UART7_K>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100464 status = "disabled";
465 };
466
467 uart8: serial@40019000 {
468 compatible = "st,stm32h7-uart";
469 reg = <0x40019000 0x400>;
Alexandre Torgue2ff04d02018-05-03 15:28:28 +0200470 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100471 clocks = <&rcc UART8_K>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100472 status = "disabled";
473 };
474
Fabrice Gasnier61fc2112018-04-17 15:45:00 +0200475 timers1: timer@44000000 {
476 #address-cells = <1>;
477 #size-cells = <0>;
478 compatible = "st,stm32-timers";
479 reg = <0x44000000 0x400>;
480 clocks = <&rcc TIM1_K>;
481 clock-names = "int";
482 status = "disabled";
483
484 pwm {
485 compatible = "st,stm32-pwm";
486 status = "disabled";
487 };
488
489 timer@0 {
490 compatible = "st,stm32h7-timer-trigger";
491 reg = <0>;
492 status = "disabled";
493 };
494 };
495
496 timers8: timer@44001000 {
497 #address-cells = <1>;
498 #size-cells = <0>;
499 compatible = "st,stm32-timers";
500 reg = <0x44001000 0x400>;
501 clocks = <&rcc TIM8_K>;
502 clock-names = "int";
503 status = "disabled";
504
505 pwm {
506 compatible = "st,stm32-pwm";
507 status = "disabled";
508 };
509
510 timer@7 {
511 compatible = "st,stm32h7-timer-trigger";
512 reg = <7>;
513 status = "disabled";
514 };
515 };
516
Ludovic Barre8471a202018-02-26 16:35:40 +0100517 usart6: serial@44003000 {
518 compatible = "st,stm32h7-uart";
519 reg = <0x44003000 0x400>;
Alexandre Torgue2ff04d02018-05-03 15:28:28 +0200520 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100521 clocks = <&rcc USART6_K>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100522 status = "disabled";
523 };
524
Amelie Delaunaydc3f8c82018-06-26 14:54:07 +0200525 spi1: spi@44004000 {
526 #address-cells = <1>;
527 #size-cells = <0>;
528 compatible = "st,stm32h7-spi";
529 reg = <0x44004000 0x400>;
530 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
531 clocks = <&rcc SPI1_K>;
532 resets = <&rcc SPI1_R>;
533 dmas = <&dmamux1 37 0x400 0x05>,
534 <&dmamux1 38 0x400 0x05>;
535 dma-names = "rx", "tx";
536 status = "disabled";
537 };
538
539 spi4: spi@44005000 {
540 #address-cells = <1>;
541 #size-cells = <0>;
542 compatible = "st,stm32h7-spi";
543 reg = <0x44005000 0x400>;
544 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
545 clocks = <&rcc SPI4_K>;
546 resets = <&rcc SPI4_R>;
547 dmas = <&dmamux1 83 0x400 0x05>,
548 <&dmamux1 84 0x400 0x05>;
549 dma-names = "rx", "tx";
550 status = "disabled";
551 };
552
Fabrice Gasnier61fc2112018-04-17 15:45:00 +0200553 timers15: timer@44006000 {
554 #address-cells = <1>;
555 #size-cells = <0>;
556 compatible = "st,stm32-timers";
557 reg = <0x44006000 0x400>;
558 clocks = <&rcc TIM15_K>;
559 clock-names = "int";
560 status = "disabled";
561
562 pwm {
563 compatible = "st,stm32-pwm";
564 status = "disabled";
565 };
566
567 timer@14 {
568 compatible = "st,stm32h7-timer-trigger";
569 reg = <14>;
570 status = "disabled";
571 };
572 };
573
574 timers16: timer@44007000 {
575 #address-cells = <1>;
576 #size-cells = <0>;
577 compatible = "st,stm32-timers";
578 reg = <0x44007000 0x400>;
579 clocks = <&rcc TIM16_K>;
580 clock-names = "int";
581 status = "disabled";
582
583 pwm {
584 compatible = "st,stm32-pwm";
585 status = "disabled";
586 };
587 timer@15 {
588 compatible = "st,stm32h7-timer-trigger";
589 reg = <15>;
590 status = "disabled";
591 };
592 };
593
594 timers17: timer@44008000 {
595 #address-cells = <1>;
596 #size-cells = <0>;
597 compatible = "st,stm32-timers";
598 reg = <0x44008000 0x400>;
599 clocks = <&rcc TIM17_K>;
600 clock-names = "int";
601 status = "disabled";
602
603 pwm {
604 compatible = "st,stm32-pwm";
605 status = "disabled";
606 };
607
608 timer@16 {
609 compatible = "st,stm32h7-timer-trigger";
610 reg = <16>;
611 status = "disabled";
612 };
613 };
614
Amelie Delaunaydc3f8c82018-06-26 14:54:07 +0200615 spi5: spi@44009000 {
616 #address-cells = <1>;
617 #size-cells = <0>;
618 compatible = "st,stm32h7-spi";
619 reg = <0x44009000 0x400>;
620 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
621 clocks = <&rcc SPI5_K>;
622 resets = <&rcc SPI5_R>;
623 dmas = <&dmamux1 85 0x400 0x05>,
624 <&dmamux1 86 0x400 0x05>;
625 dma-names = "rx", "tx";
626 status = "disabled";
627 };
628
Fabrice Gasnier7beba562018-05-23 11:30:00 +0200629 dfsdm: dfsdm@4400d000 {
630 compatible = "st,stm32mp1-dfsdm";
631 reg = <0x4400d000 0x800>;
632 clocks = <&rcc DFSDM_K>;
633 clock-names = "dfsdm";
634 #address-cells = <1>;
635 #size-cells = <0>;
636 status = "disabled";
637
638 dfsdm0: filter@0 {
639 compatible = "st,stm32-dfsdm-adc";
640 #io-channel-cells = <1>;
641 reg = <0>;
642 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
643 dmas = <&dmamux1 101 0x400 0x01>;
644 dma-names = "rx";
645 status = "disabled";
646 };
647
648 dfsdm1: filter@1 {
649 compatible = "st,stm32-dfsdm-adc";
650 #io-channel-cells = <1>;
651 reg = <1>;
652 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
653 dmas = <&dmamux1 102 0x400 0x01>;
654 dma-names = "rx";
655 status = "disabled";
656 };
657
658 dfsdm2: filter@2 {
659 compatible = "st,stm32-dfsdm-adc";
660 #io-channel-cells = <1>;
661 reg = <2>;
662 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
663 dmas = <&dmamux1 103 0x400 0x01>;
664 dma-names = "rx";
665 status = "disabled";
666 };
667
668 dfsdm3: filter@3 {
669 compatible = "st,stm32-dfsdm-adc";
670 #io-channel-cells = <1>;
671 reg = <3>;
672 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
673 dmas = <&dmamux1 104 0x400 0x01>;
674 dma-names = "rx";
675 status = "disabled";
676 };
677
678 dfsdm4: filter@4 {
679 compatible = "st,stm32-dfsdm-adc";
680 #io-channel-cells = <1>;
681 reg = <4>;
682 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
683 dmas = <&dmamux1 91 0x400 0x01>;
684 dma-names = "rx";
685 status = "disabled";
686 };
687
688 dfsdm5: filter@5 {
689 compatible = "st,stm32-dfsdm-adc";
690 #io-channel-cells = <1>;
691 reg = <5>;
692 interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
693 dmas = <&dmamux1 92 0x400 0x01>;
694 dma-names = "rx";
695 status = "disabled";
696 };
697 };
698
Erwan Le Rayc322d962018-05-15 14:23:00 +0200699 m_can1: can@4400e000 {
700 compatible = "bosch,m_can";
701 reg = <0x4400e000 0x400>, <0x44011000 0x2800>;
702 reg-names = "m_can", "message_ram";
703 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
704 <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
705 interrupt-names = "int0", "int1";
706 clocks = <&rcc CK_HSE>, <&rcc FDCAN_K>;
707 clock-names = "hclk", "cclk";
708 bosch,mram-cfg = <0x0 0 0 32 0 0 2 2>;
709 status = "disabled";
710 };
711
712 m_can2: can@4400f000 {
713 compatible = "bosch,m_can";
714 reg = <0x4400f000 0x400>, <0x44011000 0x2800>;
715 reg-names = "m_can", "message_ram";
716 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
717 <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
718 interrupt-names = "int0", "int1";
719 clocks = <&rcc CK_HSE>, <&rcc FDCAN_K>;
720 clock-names = "hclk", "cclk";
721 bosch,mram-cfg = <0x0 0 0 32 0 0 2 2>;
722 status = "disabled";
723 };
724
Pierre-Yves MORDRETea1c4042018-04-20 11:14:00 +0200725 dma1: dma@48000000 {
726 compatible = "st,stm32-dma";
727 reg = <0x48000000 0x400>;
728 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
729 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
730 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
731 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
732 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
733 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
734 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
735 <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
736 clocks = <&rcc DMA1>;
737 #dma-cells = <4>;
738 st,mem2mem;
Pierre-Yves MORDRET1cffb562018-04-20 11:14:00 +0200739 dma-requests = <8>;
Pierre-Yves MORDRETea1c4042018-04-20 11:14:00 +0200740 };
741
742 dma2: dma@48001000 {
743 compatible = "st,stm32-dma";
744 reg = <0x48001000 0x400>;
745 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
746 <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
747 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
748 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
749 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
750 <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
751 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
752 <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
753 clocks = <&rcc DMA2>;
754 #dma-cells = <4>;
755 st,mem2mem;
Pierre-Yves MORDRET1cffb562018-04-20 11:14:00 +0200756 dma-requests = <8>;
757 };
758
759 dmamux1: dma-router@48002000 {
760 compatible = "st,stm32h7-dmamux";
761 reg = <0x48002000 0x1c>;
762 #dma-cells = <3>;
763 dma-requests = <128>;
764 dma-masters = <&dma1 &dma2>;
765 dma-channels = <16>;
766 clocks = <&rcc DMAMUX>;
Pierre-Yves MORDRETea1c4042018-04-20 11:14:00 +0200767 };
768
Fabrice Gasnier2dca78992018-05-22 17:45:00 +0200769 adc: adc@48003000 {
770 compatible = "st,stm32mp1-adc-core";
771 reg = <0x48003000 0x400>;
772 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
773 <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
774 clocks = <&rcc ADC12>, <&rcc ADC12_K>;
775 clock-names = "bus", "adc";
776 interrupt-controller;
777 #interrupt-cells = <1>;
778 #address-cells = <1>;
779 #size-cells = <0>;
780 status = "disabled";
781
782 adc1: adc@0 {
783 compatible = "st,stm32mp1-adc";
784 #io-channel-cells = <1>;
785 reg = <0x0>;
786 interrupt-parent = <&adc>;
787 interrupts = <0>;
788 dmas = <&dmamux1 9 0x400 0x01>;
789 dma-names = "rx";
790 status = "disabled";
791 };
792
793 adc2: adc@100 {
794 compatible = "st,stm32mp1-adc";
795 #io-channel-cells = <1>;
796 reg = <0x100>;
797 interrupt-parent = <&adc>;
798 interrupts = <1>;
799 dmas = <&dmamux1 10 0x400 0x01>;
800 dma-names = "rx";
801 status = "disabled";
802 };
803 };
804
Amelie Delaunaye2c205a2018-05-17 17:47:00 +0200805 usbotg_hs: usb-otg@49000000 {
806 compatible = "snps,dwc2";
807 reg = <0x49000000 0x10000>;
808 clocks = <&rcc USBO_K>;
809 clock-names = "otg";
810 resets = <&rcc USBO_R>;
811 reset-names = "dwc2";
812 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
813 g-rx-fifo-size = <256>;
814 g-np-tx-fifo-size = <32>;
815 g-tx-fifo-size = <128 128 64 64 64 64 32 32>;
816 dr_mode = "otg";
817 status = "disabled";
818 };
819
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100820 rcc: rcc@50000000 {
821 compatible = "st,stm32mp1-rcc", "syscon";
822 reg = <0x50000000 0x1000>;
823 #clock-cells = <1>;
824 #reset-cells = <1>;
825 };
826
Ludovic Barre5f0e9d22018-04-26 18:18:33 +0200827 exti: interrupt-controller@5000d000 {
828 compatible = "st,stm32mp1-exti", "syscon";
829 interrupt-controller;
830 #interrupt-cells = <2>;
831 reg = <0x5000d000 0x400>;
832 };
833
Fabrice Gasnier966ed872018-05-02 13:53:38 +0200834 lptimer2: timer@50021000 {
835 #address-cells = <1>;
836 #size-cells = <0>;
837 compatible = "st,stm32-lptimer";
838 reg = <0x50021000 0x400>;
839 clocks = <&rcc LPTIM2_K>;
840 clock-names = "mux";
841 status = "disabled";
842
843 pwm {
844 compatible = "st,stm32-pwm-lp";
845 #pwm-cells = <3>;
846 status = "disabled";
847 };
848
849 trigger@1 {
850 compatible = "st,stm32-lptimer-trigger";
851 reg = <1>;
852 status = "disabled";
853 };
854
855 counter {
856 compatible = "st,stm32-lptimer-counter";
857 status = "disabled";
858 };
859 };
860
861 lptimer3: timer@50022000 {
862 #address-cells = <1>;
863 #size-cells = <0>;
864 compatible = "st,stm32-lptimer";
865 reg = <0x50022000 0x400>;
866 clocks = <&rcc LPTIM3_K>;
867 clock-names = "mux";
868 status = "disabled";
869
870 pwm {
871 compatible = "st,stm32-pwm-lp";
872 #pwm-cells = <3>;
873 status = "disabled";
874 };
875
876 trigger@2 {
877 compatible = "st,stm32-lptimer-trigger";
878 reg = <2>;
879 status = "disabled";
880 };
881 };
882
883 lptimer4: timer@50023000 {
884 compatible = "st,stm32-lptimer";
885 reg = <0x50023000 0x400>;
886 clocks = <&rcc LPTIM4_K>;
887 clock-names = "mux";
888 status = "disabled";
889
890 pwm {
891 compatible = "st,stm32-pwm-lp";
892 #pwm-cells = <3>;
893 status = "disabled";
894 };
895 };
896
897 lptimer5: timer@50024000 {
898 compatible = "st,stm32-lptimer";
899 reg = <0x50024000 0x400>;
900 clocks = <&rcc LPTIM5_K>;
901 clock-names = "mux";
902 status = "disabled";
903
904 pwm {
905 compatible = "st,stm32-pwm-lp";
906 #pwm-cells = <3>;
907 status = "disabled";
908 };
909 };
910
Fabrice Gasnier9f790af2018-04-18 09:47:00 +0200911 vrefbuf: vrefbuf@50025000 {
912 compatible = "st,stm32-vrefbuf";
913 reg = <0x50025000 0x8>;
914 regulator-min-microvolt = <1500000>;
915 regulator-max-microvolt = <2500000>;
916 clocks = <&rcc VREF>;
917 status = "disabled";
918 };
919
Lionel Debievefc9962c2018-04-23 17:19:00 +0200920 cryp1: cryp@54001000 {
921 compatible = "st,stm32mp1-cryp";
922 reg = <0x54001000 0x400>;
923 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
924 clocks = <&rcc CRYP1>;
925 resets = <&rcc CRYP1_R>;
926 status = "disabled";
927 };
928
Lionel Debieve1e726a42018-05-14 12:00:00 +0200929 hash1: hash@54002000 {
930 compatible = "st,stm32f756-hash";
931 reg = <0x54002000 0x400>;
932 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
933 clocks = <&rcc HASH1>;
934 resets = <&rcc HASH1_R>;
935 dmas = <&mdma1 31 0x10 0x1000A02 0x0 0x0 0x0>;
936 dma-names = "in";
937 dma-maxburst = <2>;
938 status = "disabled";
939 };
940
Lionel Debieve6973f0a2018-04-23 17:19:00 +0200941 rng1: rng@54003000 {
942 compatible = "st,stm32-rng";
943 reg = <0x54003000 0x400>;
944 clocks = <&rcc RNG1_K>;
945 resets = <&rcc RNG1_R>;
946 status = "disabled";
947 };
948
Pierre-Yves MORDRET8ecf9102018-04-20 11:15:00 +0200949 mdma1: dma@58000000 {
950 compatible = "st,stm32h7-mdma";
951 reg = <0x58000000 0x1000>;
952 interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
953 clocks = <&rcc MDMA>;
954 #dma-cells = <5>;
955 dma-channels = <32>;
956 dma-requests = <48>;
957 };
958
Ludovic Barrec38928d2018-04-30 09:11:00 +0200959 qspi: qspi@58003000 {
960 compatible = "st,stm32f469-qspi";
961 reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
962 reg-names = "qspi", "qspi_mm";
963 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
964 clocks = <&rcc QSPI_K>;
965 resets = <&rcc QSPI_R>;
966 status = "disabled";
967 };
968
Lionel Debieve8b2820a2018-04-23 17:19:00 +0200969 crc1: crc@58009000 {
970 compatible = "st,stm32f7-crc";
971 reg = <0x58009000 0x400>;
972 clocks = <&rcc CRC1>;
973 status = "disabled";
974 };
975
Amelie Delaunay949a0c02018-04-24 13:24:00 +0200976 usbh_ohci: usbh-ohci@5800c000 {
977 compatible = "generic-ohci";
978 reg = <0x5800c000 0x1000>;
979 clocks = <&rcc USBH>;
980 resets = <&rcc USBH_R>;
981 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
982 status = "disabled";
983 };
984
985 usbh_ehci: usbh-ehci@5800d000 {
986 compatible = "generic-ehci";
987 reg = <0x5800d000 0x1000>;
988 clocks = <&rcc USBH>;
989 resets = <&rcc USBH_R>;
990 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
991 companion = <&usbh_ohci>;
992 status = "disabled";
993 };
994
yannick fertre9d603e42018-04-24 09:54:00 +0200995 dsi: dsi@5a000000 {
996 compatible = "st,stm32-dsi";
997 reg = <0x5a000000 0x800>;
998 clocks = <&rcc DSI_K>, <&clk_hse>, <&rcc DSI_PX>;
999 clock-names = "pclk", "ref", "px_clk";
1000 resets = <&rcc DSI_R>;
1001 reset-names = "apb";
1002 status = "disabled";
1003 };
1004
yannick fertre570cae62018-04-24 09:54:00 +02001005 ltdc: display-controller@5a001000 {
1006 compatible = "st,stm32-ltdc";
1007 reg = <0x5a001000 0x400>;
1008 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
1009 <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1010 clocks = <&rcc LTDC_PX>;
1011 clock-names = "lcd";
1012 resets = <&rcc LTDC_R>;
1013 status = "disabled";
1014 };
1015
Amelie Delaunay3c004362018-04-24 11:41:00 +02001016 usbphyc: usbphyc@5a006000 {
1017 #address-cells = <1>;
1018 #size-cells = <0>;
1019 compatible = "st,stm32mp1-usbphyc";
1020 reg = <0x5a006000 0x1000>;
1021 clocks = <&rcc USBPHY_K>;
1022 resets = <&rcc USBPHY_R>;
1023 status = "disabled";
1024
1025 usbphyc_port0: usb-phy@0 {
1026 #phy-cells = <0>;
1027 reg = <0>;
1028 };
1029
1030 usbphyc_port1: usb-phy@1 {
1031 #phy-cells = <1>;
1032 reg = <1>;
1033 };
1034 };
1035
Ludovic Barre8471a202018-02-26 16:35:40 +01001036 usart1: serial@5c000000 {
1037 compatible = "st,stm32h7-uart";
1038 reg = <0x5c000000 0x400>;
Alexandre Torgue2ff04d02018-05-03 15:28:28 +02001039 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +01001040 clocks = <&rcc USART1_K>;
Ludovic Barre8471a202018-02-26 16:35:40 +01001041 status = "disabled";
1042 };
Pierre-Yves MORDRETd126e862018-04-23 11:48:00 +02001043
Amelie Delaunaydc3f8c82018-06-26 14:54:07 +02001044 spi6: spi@5c001000 {
1045 #address-cells = <1>;
1046 #size-cells = <0>;
1047 compatible = "st,stm32h7-spi";
1048 reg = <0x5c001000 0x400>;
1049 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
1050 clocks = <&rcc SPI6_K>;
1051 resets = <&rcc SPI6_R>;
1052 dmas = <&mdma1 34 0x0 0x40008 0x0 0x0 0>,
1053 <&mdma1 35 0x0 0x40002 0x0 0x0 0>;
1054 dma-names = "rx", "tx";
1055 status = "disabled";
1056 };
1057
Pierre-Yves MORDRETd126e862018-04-23 11:48:00 +02001058 i2c4: i2c@5c002000 {
1059 compatible = "st,stm32f7-i2c";
1060 reg = <0x5c002000 0x400>;
1061 interrupt-names = "event", "error";
1062 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
1063 <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1064 clocks = <&rcc I2C4_K>;
1065 resets = <&rcc I2C4_R>;
1066 #address-cells = <1>;
1067 #size-cells = <0>;
1068 status = "disabled";
1069 };
1070
Amelie Delaunay84991632018-05-17 14:07:00 +02001071 rtc: rtc@5c004000 {
1072 compatible = "st,stm32mp1-rtc";
1073 reg = <0x5c004000 0x400>;
1074 clocks = <&rcc RTCAPB>, <&rcc RTC>;
1075 clock-names = "pclk", "rtc_ck";
1076 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
1077 status = "disabled";
1078 };
1079
Pierre-Yves MORDRETd126e862018-04-23 11:48:00 +02001080 i2c6: i2c@5c009000 {
1081 compatible = "st,stm32f7-i2c";
1082 reg = <0x5c009000 0x400>;
1083 interrupt-names = "event", "error";
1084 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
1085 <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
1086 clocks = <&rcc I2C6_K>;
1087 resets = <&rcc I2C6_R>;
1088 #address-cells = <1>;
1089 #size-cells = <0>;
Ludovic Barre8471a202018-02-26 16:35:40 +01001090 status = "disabled";
1091 };
1092 };
1093};