blob: 8bf1c17f8cefb6b368c40c4376a7ad918c8fde10 [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
Ludovic Barre8471a202018-02-26 16:35:40 +010038 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
Ludovic Barre8471a202018-02-26 16:35:40 +010062 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 };
Ludovic Barre8471a202018-02-26 16:35:40 +010085 };
86
87 soc {
88 compatible = "simple-bus";
89 #address-cells = <1>;
90 #size-cells = <1>;
91 interrupt-parent = <&intc>;
92 ranges;
93
Fabrice Gasnier61fc2112018-04-17 15:45:00 +020094 timers2: timer@40000000 {
95 #address-cells = <1>;
96 #size-cells = <0>;
97 compatible = "st,stm32-timers";
98 reg = <0x40000000 0x400>;
99 clocks = <&rcc TIM2_K>;
100 clock-names = "int";
101 status = "disabled";
102
103 pwm {
104 compatible = "st,stm32-pwm";
105 status = "disabled";
106 };
107
108 timer@1 {
109 compatible = "st,stm32h7-timer-trigger";
110 reg = <1>;
111 status = "disabled";
112 };
113 };
114
115 timers3: timer@40001000 {
116 #address-cells = <1>;
117 #size-cells = <0>;
118 compatible = "st,stm32-timers";
119 reg = <0x40001000 0x400>;
120 clocks = <&rcc TIM3_K>;
121 clock-names = "int";
122 status = "disabled";
123
124 pwm {
125 compatible = "st,stm32-pwm";
126 status = "disabled";
127 };
128
129 timer@2 {
130 compatible = "st,stm32h7-timer-trigger";
131 reg = <2>;
132 status = "disabled";
133 };
134 };
135
136 timers4: timer@40002000 {
137 #address-cells = <1>;
138 #size-cells = <0>;
139 compatible = "st,stm32-timers";
140 reg = <0x40002000 0x400>;
141 clocks = <&rcc TIM4_K>;
142 clock-names = "int";
143 status = "disabled";
144
145 pwm {
146 compatible = "st,stm32-pwm";
147 status = "disabled";
148 };
149
150 timer@3 {
151 compatible = "st,stm32h7-timer-trigger";
152 reg = <3>;
153 status = "disabled";
154 };
155 };
156
157 timers5: timer@40003000 {
158 #address-cells = <1>;
159 #size-cells = <0>;
160 compatible = "st,stm32-timers";
161 reg = <0x40003000 0x400>;
162 clocks = <&rcc TIM5_K>;
163 clock-names = "int";
164 status = "disabled";
165
166 pwm {
167 compatible = "st,stm32-pwm";
168 status = "disabled";
169 };
170
171 timer@4 {
172 compatible = "st,stm32h7-timer-trigger";
173 reg = <4>;
174 status = "disabled";
175 };
176 };
177
178 timers6: timer@40004000 {
179 #address-cells = <1>;
180 #size-cells = <0>;
181 compatible = "st,stm32-timers";
182 reg = <0x40004000 0x400>;
183 clocks = <&rcc TIM6_K>;
184 clock-names = "int";
185 status = "disabled";
186
187 timer@5 {
188 compatible = "st,stm32h7-timer-trigger";
189 reg = <5>;
190 status = "disabled";
191 };
192 };
193
194 timers7: timer@40005000 {
195 #address-cells = <1>;
196 #size-cells = <0>;
197 compatible = "st,stm32-timers";
198 reg = <0x40005000 0x400>;
199 clocks = <&rcc TIM7_K>;
200 clock-names = "int";
201 status = "disabled";
202
203 timer@6 {
204 compatible = "st,stm32h7-timer-trigger";
205 reg = <6>;
206 status = "disabled";
207 };
208 };
209
210 timers12: timer@40006000 {
211 #address-cells = <1>;
212 #size-cells = <0>;
213 compatible = "st,stm32-timers";
214 reg = <0x40006000 0x400>;
215 clocks = <&rcc TIM12_K>;
216 clock-names = "int";
217 status = "disabled";
218
219 pwm {
220 compatible = "st,stm32-pwm";
221 status = "disabled";
222 };
223
224 timer@11 {
225 compatible = "st,stm32h7-timer-trigger";
226 reg = <11>;
227 status = "disabled";
228 };
229 };
230
231 timers13: timer@40007000 {
232 #address-cells = <1>;
233 #size-cells = <0>;
234 compatible = "st,stm32-timers";
235 reg = <0x40007000 0x400>;
236 clocks = <&rcc TIM13_K>;
237 clock-names = "int";
238 status = "disabled";
239
240 pwm {
241 compatible = "st,stm32-pwm";
242 status = "disabled";
243 };
244
245 timer@12 {
246 compatible = "st,stm32h7-timer-trigger";
247 reg = <12>;
248 status = "disabled";
249 };
250 };
251
252 timers14: timer@40008000 {
253 #address-cells = <1>;
254 #size-cells = <0>;
255 compatible = "st,stm32-timers";
256 reg = <0x40008000 0x400>;
257 clocks = <&rcc TIM14_K>;
258 clock-names = "int";
259 status = "disabled";
260
261 pwm {
262 compatible = "st,stm32-pwm";
263 status = "disabled";
264 };
265
266 timer@13 {
267 compatible = "st,stm32h7-timer-trigger";
268 reg = <13>;
269 status = "disabled";
270 };
271 };
272
Fabrice Gasnier966ed872018-05-02 13:53:38 +0200273 lptimer1: timer@40009000 {
274 #address-cells = <1>;
275 #size-cells = <0>;
276 compatible = "st,stm32-lptimer";
277 reg = <0x40009000 0x400>;
278 clocks = <&rcc LPTIM1_K>;
279 clock-names = "mux";
280 status = "disabled";
281
282 pwm {
283 compatible = "st,stm32-pwm-lp";
284 #pwm-cells = <3>;
285 status = "disabled";
286 };
287
288 trigger@0 {
289 compatible = "st,stm32-lptimer-trigger";
290 reg = <0>;
291 status = "disabled";
292 };
293
294 counter {
295 compatible = "st,stm32-lptimer-counter";
296 status = "disabled";
297 };
298 };
299
Amelie Delaunaydc3f8c82018-06-26 14:54:07 +0200300 spi2: spi@4000b000 {
301 #address-cells = <1>;
302 #size-cells = <0>;
303 compatible = "st,stm32h7-spi";
304 reg = <0x4000b000 0x400>;
305 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
306 clocks = <&rcc SPI2_K>;
307 resets = <&rcc SPI2_R>;
308 dmas = <&dmamux1 39 0x400 0x05>,
309 <&dmamux1 40 0x400 0x05>;
310 dma-names = "rx", "tx";
311 status = "disabled";
312 };
313
314 spi3: spi@4000c000 {
315 #address-cells = <1>;
316 #size-cells = <0>;
317 compatible = "st,stm32h7-spi";
318 reg = <0x4000c000 0x400>;
319 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
320 clocks = <&rcc SPI3_K>;
321 resets = <&rcc SPI3_R>;
322 dmas = <&dmamux1 61 0x400 0x05>,
323 <&dmamux1 62 0x400 0x05>;
324 dma-names = "rx", "tx";
325 status = "disabled";
326 };
327
Ludovic Barre8471a202018-02-26 16:35:40 +0100328 usart2: serial@4000e000 {
329 compatible = "st,stm32h7-uart";
330 reg = <0x4000e000 0x400>;
Alexandre Torgue2ff04d02018-05-03 15:28:28 +0200331 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100332 clocks = <&rcc USART2_K>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100333 status = "disabled";
334 };
335
336 usart3: serial@4000f000 {
337 compatible = "st,stm32h7-uart";
338 reg = <0x4000f000 0x400>;
Alexandre Torgue2ff04d02018-05-03 15:28:28 +0200339 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100340 clocks = <&rcc USART3_K>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100341 status = "disabled";
342 };
343
344 uart4: serial@40010000 {
345 compatible = "st,stm32h7-uart";
346 reg = <0x40010000 0x400>;
Alexandre Torgue2ff04d02018-05-03 15:28:28 +0200347 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100348 clocks = <&rcc UART4_K>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100349 status = "disabled";
350 };
351
352 uart5: serial@40011000 {
353 compatible = "st,stm32h7-uart";
354 reg = <0x40011000 0x400>;
Alexandre Torgue2ff04d02018-05-03 15:28:28 +0200355 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100356 clocks = <&rcc UART5_K>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100357 status = "disabled";
358 };
359
Pierre-Yves MORDRETd126e862018-04-23 11:48:00 +0200360 i2c1: i2c@40012000 {
361 compatible = "st,stm32f7-i2c";
362 reg = <0x40012000 0x400>;
363 interrupt-names = "event", "error";
364 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
365 <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
366 clocks = <&rcc I2C1_K>;
367 resets = <&rcc I2C1_R>;
368 #address-cells = <1>;
369 #size-cells = <0>;
370 status = "disabled";
371 };
372
373 i2c2: i2c@40013000 {
374 compatible = "st,stm32f7-i2c";
375 reg = <0x40013000 0x400>;
376 interrupt-names = "event", "error";
377 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
378 <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
379 clocks = <&rcc I2C2_K>;
380 resets = <&rcc I2C2_R>;
381 #address-cells = <1>;
382 #size-cells = <0>;
383 status = "disabled";
384 };
385
386 i2c3: i2c@40014000 {
387 compatible = "st,stm32f7-i2c";
388 reg = <0x40014000 0x400>;
389 interrupt-names = "event", "error";
390 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
391 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
392 clocks = <&rcc I2C3_K>;
393 resets = <&rcc I2C3_R>;
394 #address-cells = <1>;
395 #size-cells = <0>;
396 status = "disabled";
397 };
398
399 i2c5: i2c@40015000 {
400 compatible = "st,stm32f7-i2c";
401 reg = <0x40015000 0x400>;
402 interrupt-names = "event", "error";
403 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
404 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
405 clocks = <&rcc I2C5_K>;
406 resets = <&rcc I2C5_R>;
407 #address-cells = <1>;
408 #size-cells = <0>;
409 status = "disabled";
410 };
411
yannick fertre066f3712018-04-24 09:54:00 +0200412 cec: cec@40016000 {
413 compatible = "st,stm32-cec";
414 reg = <0x40016000 0x400>;
415 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
416 clocks = <&rcc CEC_K>, <&clk_lse>;
417 clock-names = "cec", "hdmi-cec";
418 status = "disabled";
419 };
420
Fabrice Gasnierda6cddc2018-04-18 17:46:00 +0200421 dac: dac@40017000 {
422 compatible = "st,stm32h7-dac-core";
423 reg = <0x40017000 0x400>;
424 clocks = <&rcc DAC12>;
425 clock-names = "pclk";
426 #address-cells = <1>;
427 #size-cells = <0>;
428 status = "disabled";
429
430 dac1: dac@1 {
431 compatible = "st,stm32-dac";
432 #io-channels-cells = <1>;
433 reg = <1>;
434 status = "disabled";
435 };
436
437 dac2: dac@2 {
438 compatible = "st,stm32-dac";
439 #io-channels-cells = <1>;
440 reg = <2>;
441 status = "disabled";
442 };
443 };
444
Ludovic Barre8471a202018-02-26 16:35:40 +0100445 uart7: serial@40018000 {
446 compatible = "st,stm32h7-uart";
447 reg = <0x40018000 0x400>;
Alexandre Torgue2ff04d02018-05-03 15:28:28 +0200448 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100449 clocks = <&rcc UART7_K>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100450 status = "disabled";
451 };
452
453 uart8: serial@40019000 {
454 compatible = "st,stm32h7-uart";
455 reg = <0x40019000 0x400>;
Alexandre Torgue2ff04d02018-05-03 15:28:28 +0200456 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100457 clocks = <&rcc UART8_K>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100458 status = "disabled";
459 };
460
Fabrice Gasnier61fc2112018-04-17 15:45:00 +0200461 timers1: timer@44000000 {
462 #address-cells = <1>;
463 #size-cells = <0>;
464 compatible = "st,stm32-timers";
465 reg = <0x44000000 0x400>;
466 clocks = <&rcc TIM1_K>;
467 clock-names = "int";
468 status = "disabled";
469
470 pwm {
471 compatible = "st,stm32-pwm";
472 status = "disabled";
473 };
474
475 timer@0 {
476 compatible = "st,stm32h7-timer-trigger";
477 reg = <0>;
478 status = "disabled";
479 };
480 };
481
482 timers8: timer@44001000 {
483 #address-cells = <1>;
484 #size-cells = <0>;
485 compatible = "st,stm32-timers";
486 reg = <0x44001000 0x400>;
487 clocks = <&rcc TIM8_K>;
488 clock-names = "int";
489 status = "disabled";
490
491 pwm {
492 compatible = "st,stm32-pwm";
493 status = "disabled";
494 };
495
496 timer@7 {
497 compatible = "st,stm32h7-timer-trigger";
498 reg = <7>;
499 status = "disabled";
500 };
501 };
502
Ludovic Barre8471a202018-02-26 16:35:40 +0100503 usart6: serial@44003000 {
504 compatible = "st,stm32h7-uart";
505 reg = <0x44003000 0x400>;
Alexandre Torgue2ff04d02018-05-03 15:28:28 +0200506 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100507 clocks = <&rcc USART6_K>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100508 status = "disabled";
509 };
510
Amelie Delaunaydc3f8c82018-06-26 14:54:07 +0200511 spi1: spi@44004000 {
512 #address-cells = <1>;
513 #size-cells = <0>;
514 compatible = "st,stm32h7-spi";
515 reg = <0x44004000 0x400>;
516 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
517 clocks = <&rcc SPI1_K>;
518 resets = <&rcc SPI1_R>;
519 dmas = <&dmamux1 37 0x400 0x05>,
520 <&dmamux1 38 0x400 0x05>;
521 dma-names = "rx", "tx";
522 status = "disabled";
523 };
524
525 spi4: spi@44005000 {
526 #address-cells = <1>;
527 #size-cells = <0>;
528 compatible = "st,stm32h7-spi";
529 reg = <0x44005000 0x400>;
530 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
531 clocks = <&rcc SPI4_K>;
532 resets = <&rcc SPI4_R>;
533 dmas = <&dmamux1 83 0x400 0x05>,
534 <&dmamux1 84 0x400 0x05>;
535 dma-names = "rx", "tx";
536 status = "disabled";
537 };
538
Fabrice Gasnier61fc2112018-04-17 15:45:00 +0200539 timers15: timer@44006000 {
540 #address-cells = <1>;
541 #size-cells = <0>;
542 compatible = "st,stm32-timers";
543 reg = <0x44006000 0x400>;
544 clocks = <&rcc TIM15_K>;
545 clock-names = "int";
546 status = "disabled";
547
548 pwm {
549 compatible = "st,stm32-pwm";
550 status = "disabled";
551 };
552
553 timer@14 {
554 compatible = "st,stm32h7-timer-trigger";
555 reg = <14>;
556 status = "disabled";
557 };
558 };
559
560 timers16: timer@44007000 {
561 #address-cells = <1>;
562 #size-cells = <0>;
563 compatible = "st,stm32-timers";
564 reg = <0x44007000 0x400>;
565 clocks = <&rcc TIM16_K>;
566 clock-names = "int";
567 status = "disabled";
568
569 pwm {
570 compatible = "st,stm32-pwm";
571 status = "disabled";
572 };
573 timer@15 {
574 compatible = "st,stm32h7-timer-trigger";
575 reg = <15>;
576 status = "disabled";
577 };
578 };
579
580 timers17: timer@44008000 {
581 #address-cells = <1>;
582 #size-cells = <0>;
583 compatible = "st,stm32-timers";
584 reg = <0x44008000 0x400>;
585 clocks = <&rcc TIM17_K>;
586 clock-names = "int";
587 status = "disabled";
588
589 pwm {
590 compatible = "st,stm32-pwm";
591 status = "disabled";
592 };
593
594 timer@16 {
595 compatible = "st,stm32h7-timer-trigger";
596 reg = <16>;
597 status = "disabled";
598 };
599 };
600
Amelie Delaunaydc3f8c82018-06-26 14:54:07 +0200601 spi5: spi@44009000 {
602 #address-cells = <1>;
603 #size-cells = <0>;
604 compatible = "st,stm32h7-spi";
605 reg = <0x44009000 0x400>;
606 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
607 clocks = <&rcc SPI5_K>;
608 resets = <&rcc SPI5_R>;
609 dmas = <&dmamux1 85 0x400 0x05>,
610 <&dmamux1 86 0x400 0x05>;
611 dma-names = "rx", "tx";
612 status = "disabled";
613 };
614
Fabrice Gasnier7beba562018-05-23 11:30:00 +0200615 dfsdm: dfsdm@4400d000 {
616 compatible = "st,stm32mp1-dfsdm";
617 reg = <0x4400d000 0x800>;
618 clocks = <&rcc DFSDM_K>;
619 clock-names = "dfsdm";
620 #address-cells = <1>;
621 #size-cells = <0>;
622 status = "disabled";
623
624 dfsdm0: filter@0 {
625 compatible = "st,stm32-dfsdm-adc";
626 #io-channel-cells = <1>;
627 reg = <0>;
628 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
629 dmas = <&dmamux1 101 0x400 0x01>;
630 dma-names = "rx";
631 status = "disabled";
632 };
633
634 dfsdm1: filter@1 {
635 compatible = "st,stm32-dfsdm-adc";
636 #io-channel-cells = <1>;
637 reg = <1>;
638 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
639 dmas = <&dmamux1 102 0x400 0x01>;
640 dma-names = "rx";
641 status = "disabled";
642 };
643
644 dfsdm2: filter@2 {
645 compatible = "st,stm32-dfsdm-adc";
646 #io-channel-cells = <1>;
647 reg = <2>;
648 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
649 dmas = <&dmamux1 103 0x400 0x01>;
650 dma-names = "rx";
651 status = "disabled";
652 };
653
654 dfsdm3: filter@3 {
655 compatible = "st,stm32-dfsdm-adc";
656 #io-channel-cells = <1>;
657 reg = <3>;
658 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
659 dmas = <&dmamux1 104 0x400 0x01>;
660 dma-names = "rx";
661 status = "disabled";
662 };
663
664 dfsdm4: filter@4 {
665 compatible = "st,stm32-dfsdm-adc";
666 #io-channel-cells = <1>;
667 reg = <4>;
668 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
669 dmas = <&dmamux1 91 0x400 0x01>;
670 dma-names = "rx";
671 status = "disabled";
672 };
673
674 dfsdm5: filter@5 {
675 compatible = "st,stm32-dfsdm-adc";
676 #io-channel-cells = <1>;
677 reg = <5>;
678 interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
679 dmas = <&dmamux1 92 0x400 0x01>;
680 dma-names = "rx";
681 status = "disabled";
682 };
683 };
684
Erwan Le Rayc322d962018-05-15 14:23:00 +0200685 m_can1: can@4400e000 {
686 compatible = "bosch,m_can";
687 reg = <0x4400e000 0x400>, <0x44011000 0x2800>;
688 reg-names = "m_can", "message_ram";
689 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
690 <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
691 interrupt-names = "int0", "int1";
692 clocks = <&rcc CK_HSE>, <&rcc FDCAN_K>;
693 clock-names = "hclk", "cclk";
694 bosch,mram-cfg = <0x0 0 0 32 0 0 2 2>;
695 status = "disabled";
696 };
697
698 m_can2: can@4400f000 {
699 compatible = "bosch,m_can";
700 reg = <0x4400f000 0x400>, <0x44011000 0x2800>;
701 reg-names = "m_can", "message_ram";
702 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
703 <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
704 interrupt-names = "int0", "int1";
705 clocks = <&rcc CK_HSE>, <&rcc FDCAN_K>;
706 clock-names = "hclk", "cclk";
707 bosch,mram-cfg = <0x0 0 0 32 0 0 2 2>;
708 status = "disabled";
709 };
710
Pierre-Yves MORDRETea1c4042018-04-20 11:14:00 +0200711 dma1: dma@48000000 {
712 compatible = "st,stm32-dma";
713 reg = <0x48000000 0x400>;
714 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
715 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
716 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
717 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
718 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
719 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
720 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
721 <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
722 clocks = <&rcc DMA1>;
723 #dma-cells = <4>;
724 st,mem2mem;
Pierre-Yves MORDRET1cffb562018-04-20 11:14:00 +0200725 dma-requests = <8>;
Pierre-Yves MORDRETea1c4042018-04-20 11:14:00 +0200726 };
727
728 dma2: dma@48001000 {
729 compatible = "st,stm32-dma";
730 reg = <0x48001000 0x400>;
731 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
732 <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
733 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
734 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
735 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
736 <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
737 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
738 <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
739 clocks = <&rcc DMA2>;
740 #dma-cells = <4>;
741 st,mem2mem;
Pierre-Yves MORDRET1cffb562018-04-20 11:14:00 +0200742 dma-requests = <8>;
743 };
744
745 dmamux1: dma-router@48002000 {
746 compatible = "st,stm32h7-dmamux";
747 reg = <0x48002000 0x1c>;
748 #dma-cells = <3>;
749 dma-requests = <128>;
750 dma-masters = <&dma1 &dma2>;
751 dma-channels = <16>;
752 clocks = <&rcc DMAMUX>;
Pierre-Yves MORDRETea1c4042018-04-20 11:14:00 +0200753 };
754
Fabrice Gasnier2dca78992018-05-22 17:45:00 +0200755 adc: adc@48003000 {
756 compatible = "st,stm32mp1-adc-core";
757 reg = <0x48003000 0x400>;
758 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
759 <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
760 clocks = <&rcc ADC12>, <&rcc ADC12_K>;
761 clock-names = "bus", "adc";
762 interrupt-controller;
763 #interrupt-cells = <1>;
764 #address-cells = <1>;
765 #size-cells = <0>;
766 status = "disabled";
767
768 adc1: adc@0 {
769 compatible = "st,stm32mp1-adc";
770 #io-channel-cells = <1>;
771 reg = <0x0>;
772 interrupt-parent = <&adc>;
773 interrupts = <0>;
774 dmas = <&dmamux1 9 0x400 0x01>;
775 dma-names = "rx";
776 status = "disabled";
777 };
778
779 adc2: adc@100 {
780 compatible = "st,stm32mp1-adc";
781 #io-channel-cells = <1>;
782 reg = <0x100>;
783 interrupt-parent = <&adc>;
784 interrupts = <1>;
785 dmas = <&dmamux1 10 0x400 0x01>;
786 dma-names = "rx";
787 status = "disabled";
788 };
789 };
790
Amelie Delaunaye2c205a2018-05-17 17:47:00 +0200791 usbotg_hs: usb-otg@49000000 {
792 compatible = "snps,dwc2";
793 reg = <0x49000000 0x10000>;
794 clocks = <&rcc USBO_K>;
795 clock-names = "otg";
796 resets = <&rcc USBO_R>;
797 reset-names = "dwc2";
798 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
799 g-rx-fifo-size = <256>;
800 g-np-tx-fifo-size = <32>;
801 g-tx-fifo-size = <128 128 64 64 64 64 32 32>;
802 dr_mode = "otg";
803 status = "disabled";
804 };
805
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100806 rcc: rcc@50000000 {
807 compatible = "st,stm32mp1-rcc", "syscon";
808 reg = <0x50000000 0x1000>;
809 #clock-cells = <1>;
810 #reset-cells = <1>;
811 };
812
Ludovic Barre5f0e9d22018-04-26 18:18:33 +0200813 exti: interrupt-controller@5000d000 {
814 compatible = "st,stm32mp1-exti", "syscon";
815 interrupt-controller;
816 #interrupt-cells = <2>;
817 reg = <0x5000d000 0x400>;
818 };
819
Christophe Roullier06944a52018-05-23 17:47:00 +0200820 syscfg: syscon@50020000 {
821 compatible = "st,stm32mp157-syscfg", "syscon";
822 reg = <0x50020000 0x400>;
823 };
824
Fabrice Gasnier966ed872018-05-02 13:53:38 +0200825 lptimer2: timer@50021000 {
826 #address-cells = <1>;
827 #size-cells = <0>;
828 compatible = "st,stm32-lptimer";
829 reg = <0x50021000 0x400>;
830 clocks = <&rcc LPTIM2_K>;
831 clock-names = "mux";
832 status = "disabled";
833
834 pwm {
835 compatible = "st,stm32-pwm-lp";
836 #pwm-cells = <3>;
837 status = "disabled";
838 };
839
840 trigger@1 {
841 compatible = "st,stm32-lptimer-trigger";
842 reg = <1>;
843 status = "disabled";
844 };
845
846 counter {
847 compatible = "st,stm32-lptimer-counter";
848 status = "disabled";
849 };
850 };
851
852 lptimer3: timer@50022000 {
853 #address-cells = <1>;
854 #size-cells = <0>;
855 compatible = "st,stm32-lptimer";
856 reg = <0x50022000 0x400>;
857 clocks = <&rcc LPTIM3_K>;
858 clock-names = "mux";
859 status = "disabled";
860
861 pwm {
862 compatible = "st,stm32-pwm-lp";
863 #pwm-cells = <3>;
864 status = "disabled";
865 };
866
867 trigger@2 {
868 compatible = "st,stm32-lptimer-trigger";
869 reg = <2>;
870 status = "disabled";
871 };
872 };
873
874 lptimer4: timer@50023000 {
875 compatible = "st,stm32-lptimer";
876 reg = <0x50023000 0x400>;
877 clocks = <&rcc LPTIM4_K>;
878 clock-names = "mux";
879 status = "disabled";
880
881 pwm {
882 compatible = "st,stm32-pwm-lp";
883 #pwm-cells = <3>;
884 status = "disabled";
885 };
886 };
887
888 lptimer5: timer@50024000 {
889 compatible = "st,stm32-lptimer";
890 reg = <0x50024000 0x400>;
891 clocks = <&rcc LPTIM5_K>;
892 clock-names = "mux";
893 status = "disabled";
894
895 pwm {
896 compatible = "st,stm32-pwm-lp";
897 #pwm-cells = <3>;
898 status = "disabled";
899 };
900 };
901
Fabrice Gasnier9f790af2018-04-18 09:47:00 +0200902 vrefbuf: vrefbuf@50025000 {
903 compatible = "st,stm32-vrefbuf";
904 reg = <0x50025000 0x8>;
905 regulator-min-microvolt = <1500000>;
906 regulator-max-microvolt = <2500000>;
907 clocks = <&rcc VREF>;
908 status = "disabled";
909 };
910
Lionel Debievefc9962c2018-04-23 17:19:00 +0200911 cryp1: cryp@54001000 {
912 compatible = "st,stm32mp1-cryp";
913 reg = <0x54001000 0x400>;
914 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
915 clocks = <&rcc CRYP1>;
916 resets = <&rcc CRYP1_R>;
917 status = "disabled";
918 };
919
Lionel Debieve1e726a42018-05-14 12:00:00 +0200920 hash1: hash@54002000 {
921 compatible = "st,stm32f756-hash";
922 reg = <0x54002000 0x400>;
923 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
924 clocks = <&rcc HASH1>;
925 resets = <&rcc HASH1_R>;
Alexandre Torgue00a6a842018-09-20 18:34:17 +0200926 dmas = <&mdma1 31 0x10 0x1000A02 0x0 0x0>;
Lionel Debieve1e726a42018-05-14 12:00:00 +0200927 dma-names = "in";
928 dma-maxburst = <2>;
929 status = "disabled";
930 };
931
Lionel Debieve6973f0a2018-04-23 17:19:00 +0200932 rng1: rng@54003000 {
933 compatible = "st,stm32-rng";
934 reg = <0x54003000 0x400>;
935 clocks = <&rcc RNG1_K>;
936 resets = <&rcc RNG1_R>;
937 status = "disabled";
938 };
939
Pierre-Yves MORDRET8ecf9102018-04-20 11:15:00 +0200940 mdma1: dma@58000000 {
941 compatible = "st,stm32h7-mdma";
942 reg = <0x58000000 0x1000>;
943 interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
944 clocks = <&rcc MDMA>;
945 #dma-cells = <5>;
946 dma-channels = <32>;
947 dma-requests = <48>;
948 };
949
Rob Herring1ba23b12018-09-21 14:25:41 +0200950 qspi: spi@58003000 {
Ludovic Barrec38928d2018-04-30 09:11:00 +0200951 compatible = "st,stm32f469-qspi";
952 reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
953 reg-names = "qspi", "qspi_mm";
954 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
955 clocks = <&rcc QSPI_K>;
956 resets = <&rcc QSPI_R>;
957 status = "disabled";
958 };
959
Lionel Debieve8b2820a2018-04-23 17:19:00 +0200960 crc1: crc@58009000 {
961 compatible = "st,stm32f7-crc";
962 reg = <0x58009000 0x400>;
963 clocks = <&rcc CRC1>;
964 status = "disabled";
965 };
966
Christophe Roullier7c045e82018-06-26 18:24:26 +0200967 stmmac_axi_config_0: stmmac-axi-config {
968 snps,wr_osr_lmt = <0x7>;
969 snps,rd_osr_lmt = <0x7>;
970 snps,blen = <0 0 0 0 16 8 4>;
971 };
972
973 ethernet0: ethernet@5800a000 {
974 compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a";
975 reg = <0x5800a000 0x2000>;
976 reg-names = "stmmaceth";
977 interrupts-extended = <&intc GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
978 interrupt-names = "macirq";
979 clock-names = "stmmaceth",
980 "mac-clk-tx",
981 "mac-clk-rx",
982 "ethstp",
983 "syscfg-clk";
984 clocks = <&rcc ETHMAC>,
985 <&rcc ETHTX>,
986 <&rcc ETHRX>,
987 <&rcc ETHSTP>,
988 <&rcc SYSCFG>;
989 st,syscon = <&syscfg 0x4>;
990 snps,mixed-burst;
991 snps,pbl = <2>;
992 snps,axi-config = <&stmmac_axi_config_0>;
993 snps,tso;
994 status = "disabled";
995 };
996
Amelie Delaunay949a0c02018-04-24 13:24:00 +0200997 usbh_ohci: usbh-ohci@5800c000 {
998 compatible = "generic-ohci";
999 reg = <0x5800c000 0x1000>;
1000 clocks = <&rcc USBH>;
1001 resets = <&rcc USBH_R>;
1002 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
1003 status = "disabled";
1004 };
1005
1006 usbh_ehci: usbh-ehci@5800d000 {
1007 compatible = "generic-ehci";
1008 reg = <0x5800d000 0x1000>;
1009 clocks = <&rcc USBH>;
1010 resets = <&rcc USBH_R>;
1011 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
1012 companion = <&usbh_ohci>;
1013 status = "disabled";
1014 };
1015
yannick fertre9d603e42018-04-24 09:54:00 +02001016 dsi: dsi@5a000000 {
1017 compatible = "st,stm32-dsi";
1018 reg = <0x5a000000 0x800>;
1019 clocks = <&rcc DSI_K>, <&clk_hse>, <&rcc DSI_PX>;
1020 clock-names = "pclk", "ref", "px_clk";
1021 resets = <&rcc DSI_R>;
1022 reset-names = "apb";
1023 status = "disabled";
1024 };
1025
yannick fertre570cae62018-04-24 09:54:00 +02001026 ltdc: display-controller@5a001000 {
1027 compatible = "st,stm32-ltdc";
1028 reg = <0x5a001000 0x400>;
1029 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
1030 <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1031 clocks = <&rcc LTDC_PX>;
1032 clock-names = "lcd";
1033 resets = <&rcc LTDC_R>;
1034 status = "disabled";
1035 };
1036
Ludovic Barre5f0f3ba2018-06-25 17:43:00 +02001037 iwdg2: watchdog@5a002000 {
1038 compatible = "st,stm32mp1-iwdg";
1039 reg = <0x5a002000 0x400>;
1040 clocks = <&rcc IWDG2>, <&rcc CK_LSI>;
1041 clock-names = "pclk", "lsi";
1042 status = "disabled";
1043 };
1044
Amelie Delaunay3c004362018-04-24 11:41:00 +02001045 usbphyc: usbphyc@5a006000 {
1046 #address-cells = <1>;
1047 #size-cells = <0>;
1048 compatible = "st,stm32mp1-usbphyc";
1049 reg = <0x5a006000 0x1000>;
1050 clocks = <&rcc USBPHY_K>;
1051 resets = <&rcc USBPHY_R>;
1052 status = "disabled";
1053
1054 usbphyc_port0: usb-phy@0 {
1055 #phy-cells = <0>;
1056 reg = <0>;
1057 };
1058
1059 usbphyc_port1: usb-phy@1 {
1060 #phy-cells = <1>;
1061 reg = <1>;
1062 };
1063 };
1064
Ludovic Barre8471a202018-02-26 16:35:40 +01001065 usart1: serial@5c000000 {
1066 compatible = "st,stm32h7-uart";
1067 reg = <0x5c000000 0x400>;
Alexandre Torgue2ff04d02018-05-03 15:28:28 +02001068 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +01001069 clocks = <&rcc USART1_K>;
Ludovic Barre8471a202018-02-26 16:35:40 +01001070 status = "disabled";
1071 };
Pierre-Yves MORDRETd126e862018-04-23 11:48:00 +02001072
Amelie Delaunaydc3f8c82018-06-26 14:54:07 +02001073 spi6: spi@5c001000 {
1074 #address-cells = <1>;
1075 #size-cells = <0>;
1076 compatible = "st,stm32h7-spi";
1077 reg = <0x5c001000 0x400>;
1078 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
1079 clocks = <&rcc SPI6_K>;
1080 resets = <&rcc SPI6_R>;
Amelie Delaunay082dc552018-09-20 18:34:16 +02001081 dmas = <&mdma1 34 0x0 0x40008 0x0 0x0>,
1082 <&mdma1 35 0x0 0x40002 0x0 0x0>;
Amelie Delaunaydc3f8c82018-06-26 14:54:07 +02001083 dma-names = "rx", "tx";
1084 status = "disabled";
1085 };
1086
Pierre-Yves MORDRETd126e862018-04-23 11:48:00 +02001087 i2c4: i2c@5c002000 {
1088 compatible = "st,stm32f7-i2c";
1089 reg = <0x5c002000 0x400>;
1090 interrupt-names = "event", "error";
1091 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
1092 <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1093 clocks = <&rcc I2C4_K>;
1094 resets = <&rcc I2C4_R>;
1095 #address-cells = <1>;
1096 #size-cells = <0>;
1097 status = "disabled";
1098 };
1099
Amelie Delaunay84991632018-05-17 14:07:00 +02001100 rtc: rtc@5c004000 {
1101 compatible = "st,stm32mp1-rtc";
1102 reg = <0x5c004000 0x400>;
1103 clocks = <&rcc RTCAPB>, <&rcc RTC>;
1104 clock-names = "pclk", "rtc_ck";
1105 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
1106 status = "disabled";
1107 };
1108
Pierre-Yves MORDRETd126e862018-04-23 11:48:00 +02001109 i2c6: i2c@5c009000 {
1110 compatible = "st,stm32f7-i2c";
1111 reg = <0x5c009000 0x400>;
1112 interrupt-names = "event", "error";
1113 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
1114 <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
1115 clocks = <&rcc I2C6_K>;
1116 resets = <&rcc I2C6_R>;
1117 #address-cells = <1>;
1118 #size-cells = <0>;
Ludovic Barre8471a202018-02-26 16:35:40 +01001119 status = "disabled";
1120 };
1121 };
1122};