blob: f0fb022fc63eb1e96930a5ce475b1dbfe7a9797a [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";
Patrick Delaunay1b28a5e2020-04-30 15:52:46 +020020 clock-frequency = <650000000>;
Patrick Delaunaya6743132018-07-09 15:17:19 +020021 device_type = "cpu";
22 reg = <0>;
Patrick Delaunay6f2e0ad2020-05-25 12:19:42 +020023 operating-points-v2 = <&cpu0_opp_table>;
24 nvmem-cells = <&part_number_otp>;
25 nvmem-cell-names = "part_number";
26 };
27 };
28
29 cpu0_opp_table: cpu0-opp-table {
30 compatible = "operating-points-v2";
31 opp-shared;
32 opp-650000000 {
33 opp-hz = /bits/ 64 <650000000>;
34 opp-microvolt = <1200000>;
35 opp-supported-hw = <0x1>;
36 };
37 opp-800000000 {
38 opp-hz = /bits/ 64 <800000000>;
39 opp-microvolt = <1350000>;
40 opp-supported-hw = <0x2>;
Patrick Delaunaya6743132018-07-09 15:17:19 +020041 };
Patrick Delaunaya6743132018-07-09 15:17:19 +020042 };
43
Patrick Delaunayf050e3f2021-01-11 12:33:36 +010044 arm-pmu {
45 compatible = "arm,cortex-a7-pmu";
46 interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
47 interrupt-affinity = <&cpu0>;
48 interrupt-parent = <&intc>;
49 };
50
Patrick Delaunaya6743132018-07-09 15:17:19 +020051 psci {
Patrick Delaunayc8a66682019-02-04 11:26:21 +010052 compatible = "arm,psci-1.0";
Patrick Delaunaya6743132018-07-09 15:17:19 +020053 method = "smc";
Patrick Delaunaya6743132018-07-09 15:17:19 +020054 };
55
Patrick Delaunaya6743132018-07-09 15:17:19 +020056 intc: interrupt-controller@a0021000 {
57 compatible = "arm,cortex-a7-gic";
58 #interrupt-cells = <3>;
59 interrupt-controller;
60 reg = <0xa0021000 0x1000>,
61 <0xa0022000 0x2000>;
62 };
63
64 timer {
65 compatible = "arm,armv7-timer";
Patrick Delaunay189ec2f2022-04-26 15:38:05 +020066 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
67 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
68 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
69 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
Patrick Delaunaya6743132018-07-09 15:17:19 +020070 interrupt-parent = <&intc>;
71 };
72
73 clocks {
74 clk_hse: clk-hse {
75 #clock-cells = <0>;
76 compatible = "fixed-clock";
77 clock-frequency = <24000000>;
78 };
79
80 clk_hsi: clk-hsi {
81 #clock-cells = <0>;
82 compatible = "fixed-clock";
83 clock-frequency = <64000000>;
84 };
85
86 clk_lse: clk-lse {
87 #clock-cells = <0>;
88 compatible = "fixed-clock";
89 clock-frequency = <32768>;
90 };
91
92 clk_lsi: clk-lsi {
93 #clock-cells = <0>;
94 compatible = "fixed-clock";
95 clock-frequency = <32000>;
96 };
97
98 clk_csi: clk-csi {
99 #clock-cells = <0>;
100 compatible = "fixed-clock";
101 clock-frequency = <4000000>;
102 };
103 };
104
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200105 thermal-zones {
106 cpu_thermal: cpu-thermal {
107 polling-delay-passive = <0>;
108 polling-delay = <0>;
109 thermal-sensors = <&dts>;
110
111 trips {
112 cpu_alert1: cpu-alert1 {
113 temperature = <85000>;
114 hysteresis = <0>;
115 type = "passive";
116 };
117
118 cpu-crit {
119 temperature = <120000>;
120 hysteresis = <0>;
121 type = "critical";
122 };
123 };
124
125 cooling-maps {
126 };
127 };
128 };
129
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100130 booster: regulator-booster {
131 compatible = "st,stm32mp1-booster";
132 st,syscfg = <&syscfg>;
133 status = "disabled";
134 };
135
Patrick Delaunaya6743132018-07-09 15:17:19 +0200136 soc {
137 compatible = "simple-bus";
138 #address-cells = <1>;
139 #size-cells = <1>;
140 interrupt-parent = <&intc>;
141 ranges;
142
143 timers2: timer@40000000 {
144 #address-cells = <1>;
145 #size-cells = <0>;
146 compatible = "st,stm32-timers";
147 reg = <0x40000000 0x400>;
148 clocks = <&rcc TIM2_K>;
149 clock-names = "int";
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200150 dmas = <&dmamux1 18 0x400 0x1>,
151 <&dmamux1 19 0x400 0x1>,
152 <&dmamux1 20 0x400 0x1>,
153 <&dmamux1 21 0x400 0x1>,
154 <&dmamux1 22 0x400 0x1>;
155 dma-names = "ch1", "ch2", "ch3", "ch4", "up";
Patrick Delaunaya6743132018-07-09 15:17:19 +0200156 status = "disabled";
157
158 pwm {
159 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100160 #pwm-cells = <3>;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200161 status = "disabled";
162 };
163
164 timer@1 {
165 compatible = "st,stm32h7-timer-trigger";
166 reg = <1>;
167 status = "disabled";
168 };
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +0100169
170 counter {
171 compatible = "st,stm32-timer-counter";
172 status = "disabled";
173 };
Patrick Delaunaya6743132018-07-09 15:17:19 +0200174 };
175
176 timers3: timer@40001000 {
177 #address-cells = <1>;
178 #size-cells = <0>;
179 compatible = "st,stm32-timers";
180 reg = <0x40001000 0x400>;
181 clocks = <&rcc TIM3_K>;
182 clock-names = "int";
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200183 dmas = <&dmamux1 23 0x400 0x1>,
184 <&dmamux1 24 0x400 0x1>,
185 <&dmamux1 25 0x400 0x1>,
186 <&dmamux1 26 0x400 0x1>,
187 <&dmamux1 27 0x400 0x1>,
188 <&dmamux1 28 0x400 0x1>;
189 dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
Patrick Delaunaya6743132018-07-09 15:17:19 +0200190 status = "disabled";
191
192 pwm {
193 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100194 #pwm-cells = <3>;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200195 status = "disabled";
196 };
197
198 timer@2 {
199 compatible = "st,stm32h7-timer-trigger";
200 reg = <2>;
201 status = "disabled";
202 };
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +0100203
204 counter {
205 compatible = "st,stm32-timer-counter";
206 status = "disabled";
207 };
Patrick Delaunaya6743132018-07-09 15:17:19 +0200208 };
209
210 timers4: timer@40002000 {
211 #address-cells = <1>;
212 #size-cells = <0>;
213 compatible = "st,stm32-timers";
214 reg = <0x40002000 0x400>;
215 clocks = <&rcc TIM4_K>;
216 clock-names = "int";
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200217 dmas = <&dmamux1 29 0x400 0x1>,
218 <&dmamux1 30 0x400 0x1>,
219 <&dmamux1 31 0x400 0x1>,
220 <&dmamux1 32 0x400 0x1>;
221 dma-names = "ch1", "ch2", "ch3", "ch4";
Patrick Delaunaya6743132018-07-09 15:17:19 +0200222 status = "disabled";
223
224 pwm {
225 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100226 #pwm-cells = <3>;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200227 status = "disabled";
228 };
229
230 timer@3 {
231 compatible = "st,stm32h7-timer-trigger";
232 reg = <3>;
233 status = "disabled";
234 };
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +0100235
236 counter {
237 compatible = "st,stm32-timer-counter";
238 status = "disabled";
239 };
Patrick Delaunaya6743132018-07-09 15:17:19 +0200240 };
241
242 timers5: timer@40003000 {
243 #address-cells = <1>;
244 #size-cells = <0>;
245 compatible = "st,stm32-timers";
246 reg = <0x40003000 0x400>;
247 clocks = <&rcc TIM5_K>;
248 clock-names = "int";
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200249 dmas = <&dmamux1 55 0x400 0x1>,
250 <&dmamux1 56 0x400 0x1>,
251 <&dmamux1 57 0x400 0x1>,
252 <&dmamux1 58 0x400 0x1>,
253 <&dmamux1 59 0x400 0x1>,
254 <&dmamux1 60 0x400 0x1>;
255 dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
Patrick Delaunaya6743132018-07-09 15:17:19 +0200256 status = "disabled";
257
258 pwm {
259 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100260 #pwm-cells = <3>;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200261 status = "disabled";
262 };
263
264 timer@4 {
265 compatible = "st,stm32h7-timer-trigger";
266 reg = <4>;
267 status = "disabled";
268 };
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +0100269
270 counter {
271 compatible = "st,stm32-timer-counter";
272 status = "disabled";
273 };
Patrick Delaunaya6743132018-07-09 15:17:19 +0200274 };
275
276 timers6: timer@40004000 {
277 #address-cells = <1>;
278 #size-cells = <0>;
279 compatible = "st,stm32-timers";
280 reg = <0x40004000 0x400>;
281 clocks = <&rcc TIM6_K>;
282 clock-names = "int";
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200283 dmas = <&dmamux1 69 0x400 0x1>;
284 dma-names = "up";
Patrick Delaunaya6743132018-07-09 15:17:19 +0200285 status = "disabled";
286
287 timer@5 {
288 compatible = "st,stm32h7-timer-trigger";
289 reg = <5>;
290 status = "disabled";
291 };
292 };
293
294 timers7: timer@40005000 {
295 #address-cells = <1>;
296 #size-cells = <0>;
297 compatible = "st,stm32-timers";
298 reg = <0x40005000 0x400>;
299 clocks = <&rcc TIM7_K>;
300 clock-names = "int";
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200301 dmas = <&dmamux1 70 0x400 0x1>;
302 dma-names = "up";
Patrick Delaunaya6743132018-07-09 15:17:19 +0200303 status = "disabled";
304
305 timer@6 {
306 compatible = "st,stm32h7-timer-trigger";
307 reg = <6>;
308 status = "disabled";
309 };
310 };
311
312 timers12: timer@40006000 {
313 #address-cells = <1>;
314 #size-cells = <0>;
315 compatible = "st,stm32-timers";
316 reg = <0x40006000 0x400>;
317 clocks = <&rcc TIM12_K>;
318 clock-names = "int";
319 status = "disabled";
320
321 pwm {
322 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100323 #pwm-cells = <3>;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200324 status = "disabled";
325 };
326
327 timer@11 {
328 compatible = "st,stm32h7-timer-trigger";
329 reg = <11>;
330 status = "disabled";
331 };
332 };
333
334 timers13: timer@40007000 {
335 #address-cells = <1>;
336 #size-cells = <0>;
337 compatible = "st,stm32-timers";
338 reg = <0x40007000 0x400>;
339 clocks = <&rcc TIM13_K>;
340 clock-names = "int";
341 status = "disabled";
342
343 pwm {
344 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100345 #pwm-cells = <3>;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200346 status = "disabled";
347 };
348
349 timer@12 {
350 compatible = "st,stm32h7-timer-trigger";
351 reg = <12>;
352 status = "disabled";
353 };
354 };
355
356 timers14: timer@40008000 {
357 #address-cells = <1>;
358 #size-cells = <0>;
359 compatible = "st,stm32-timers";
360 reg = <0x40008000 0x400>;
361 clocks = <&rcc TIM14_K>;
362 clock-names = "int";
363 status = "disabled";
364
365 pwm {
366 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100367 #pwm-cells = <3>;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200368 status = "disabled";
369 };
370
371 timer@13 {
372 compatible = "st,stm32h7-timer-trigger";
373 reg = <13>;
374 status = "disabled";
375 };
376 };
377
378 lptimer1: timer@40009000 {
379 #address-cells = <1>;
380 #size-cells = <0>;
381 compatible = "st,stm32-lptimer";
382 reg = <0x40009000 0x400>;
Patrick Delaunayf050e3f2021-01-11 12:33:36 +0100383 interrupts-extended = <&exti 47 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200384 clocks = <&rcc LPTIM1_K>;
385 clock-names = "mux";
Patrick Delaunayf050e3f2021-01-11 12:33:36 +0100386 wakeup-source;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200387 status = "disabled";
388
389 pwm {
390 compatible = "st,stm32-pwm-lp";
391 #pwm-cells = <3>;
392 status = "disabled";
393 };
394
395 trigger@0 {
396 compatible = "st,stm32-lptimer-trigger";
397 reg = <0>;
398 status = "disabled";
399 };
400
401 counter {
402 compatible = "st,stm32-lptimer-counter";
403 status = "disabled";
404 };
405 };
406
Patrice Chotard23661602019-02-12 16:50:38 +0100407 spi2: spi@4000b000 {
408 #address-cells = <1>;
409 #size-cells = <0>;
410 compatible = "st,stm32h7-spi";
411 reg = <0x4000b000 0x400>;
412 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
413 clocks = <&rcc SPI2_K>;
414 resets = <&rcc SPI2_R>;
415 dmas = <&dmamux1 39 0x400 0x05>,
416 <&dmamux1 40 0x400 0x05>;
417 dma-names = "rx", "tx";
418 status = "disabled";
419 };
420
Patrick Delaunayfe915332019-07-30 19:16:12 +0200421 i2s2: audio-controller@4000b000 {
422 compatible = "st,stm32h7-i2s";
423 #sound-dai-cells = <0>;
424 reg = <0x4000b000 0x400>;
425 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
426 dmas = <&dmamux1 39 0x400 0x01>,
427 <&dmamux1 40 0x400 0x01>;
428 dma-names = "rx", "tx";
429 status = "disabled";
430 };
431
Patrice Chotard23661602019-02-12 16:50:38 +0100432 spi3: spi@4000c000 {
433 #address-cells = <1>;
434 #size-cells = <0>;
435 compatible = "st,stm32h7-spi";
436 reg = <0x4000c000 0x400>;
437 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
438 clocks = <&rcc SPI3_K>;
439 resets = <&rcc SPI3_R>;
440 dmas = <&dmamux1 61 0x400 0x05>,
441 <&dmamux1 62 0x400 0x05>;
442 dma-names = "rx", "tx";
443 status = "disabled";
444 };
445
Patrick Delaunayfe915332019-07-30 19:16:12 +0200446 i2s3: audio-controller@4000c000 {
447 compatible = "st,stm32h7-i2s";
448 #sound-dai-cells = <0>;
449 reg = <0x4000c000 0x400>;
450 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
451 dmas = <&dmamux1 61 0x400 0x01>,
452 <&dmamux1 62 0x400 0x01>;
453 dma-names = "rx", "tx";
454 status = "disabled";
455 };
456
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200457 spdifrx: audio-controller@4000d000 {
458 compatible = "st,stm32h7-spdifrx";
459 #sound-dai-cells = <0>;
460 reg = <0x4000d000 0x400>;
461 clocks = <&rcc SPDIF_K>;
462 clock-names = "kclk";
463 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
464 dmas = <&dmamux1 93 0x400 0x01>,
465 <&dmamux1 94 0x400 0x01>;
466 dma-names = "rx", "rx-ctrl";
467 status = "disabled";
468 };
469
Patrick Delaunaya6743132018-07-09 15:17:19 +0200470 usart2: serial@4000e000 {
471 compatible = "st,stm32h7-uart";
472 reg = <0x4000e000 0x400>;
Patrick Delaunay7e549342021-06-29 12:01:07 +0200473 interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200474 clocks = <&rcc USART2_K>;
Patrick Delaunay7e549342021-06-29 12:01:07 +0200475 wakeup-source;
Patrick Delaunay189ec2f2022-04-26 15:38:05 +0200476 dmas = <&dmamux1 43 0x400 0x15>,
477 <&dmamux1 44 0x400 0x11>;
478 dma-names = "rx", "tx";
Patrick Delaunaya6743132018-07-09 15:17:19 +0200479 status = "disabled";
480 };
481
482 usart3: serial@4000f000 {
483 compatible = "st,stm32h7-uart";
484 reg = <0x4000f000 0x400>;
Patrick Delaunay7e549342021-06-29 12:01:07 +0200485 interrupts-extended = <&exti 28 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200486 clocks = <&rcc USART3_K>;
Patrick Delaunay7e549342021-06-29 12:01:07 +0200487 wakeup-source;
Patrick Delaunay189ec2f2022-04-26 15:38:05 +0200488 dmas = <&dmamux1 45 0x400 0x15>,
489 <&dmamux1 46 0x400 0x11>;
490 dma-names = "rx", "tx";
Patrick Delaunaya6743132018-07-09 15:17:19 +0200491 status = "disabled";
492 };
493
494 uart4: serial@40010000 {
495 compatible = "st,stm32h7-uart";
496 reg = <0x40010000 0x400>;
Patrick Delaunay7e549342021-06-29 12:01:07 +0200497 interrupts-extended = <&exti 30 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200498 clocks = <&rcc UART4_K>;
Patrick Delaunay7e549342021-06-29 12:01:07 +0200499 wakeup-source;
Patrick Delaunay189ec2f2022-04-26 15:38:05 +0200500 dmas = <&dmamux1 63 0x400 0x15>,
501 <&dmamux1 64 0x400 0x11>;
502 dma-names = "rx", "tx";
Patrick Delaunaya6743132018-07-09 15:17:19 +0200503 status = "disabled";
504 };
505
506 uart5: serial@40011000 {
507 compatible = "st,stm32h7-uart";
508 reg = <0x40011000 0x400>;
Patrick Delaunay7e549342021-06-29 12:01:07 +0200509 interrupts-extended = <&exti 31 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200510 clocks = <&rcc UART5_K>;
Patrick Delaunay7e549342021-06-29 12:01:07 +0200511 wakeup-source;
Patrick Delaunay189ec2f2022-04-26 15:38:05 +0200512 dmas = <&dmamux1 65 0x400 0x15>,
513 <&dmamux1 66 0x400 0x11>;
514 dma-names = "rx", "tx";
Patrick Delaunaya6743132018-07-09 15:17:19 +0200515 status = "disabled";
516 };
517
518 i2c1: i2c@40012000 {
Patrick Delaunay500327e2020-07-06 13:26:53 +0200519 compatible = "st,stm32mp15-i2c";
Patrick Delaunaya6743132018-07-09 15:17:19 +0200520 reg = <0x40012000 0x400>;
521 interrupt-names = "event", "error";
522 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
523 <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
524 clocks = <&rcc I2C1_K>;
525 resets = <&rcc I2C1_R>;
526 #address-cells = <1>;
527 #size-cells = <0>;
Patrick Delaunay500327e2020-07-06 13:26:53 +0200528 st,syscfg-fmp = <&syscfg 0x4 0x1>;
Patrick Delaunay1b28a5e2020-04-30 15:52:46 +0200529 wakeup-source;
Patrick Delaunay7e549342021-06-29 12:01:07 +0200530 i2c-analog-filter;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200531 status = "disabled";
532 };
533
534 i2c2: i2c@40013000 {
Patrick Delaunay500327e2020-07-06 13:26:53 +0200535 compatible = "st,stm32mp15-i2c";
Patrick Delaunaya6743132018-07-09 15:17:19 +0200536 reg = <0x40013000 0x400>;
537 interrupt-names = "event", "error";
538 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
539 <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
540 clocks = <&rcc I2C2_K>;
541 resets = <&rcc I2C2_R>;
542 #address-cells = <1>;
543 #size-cells = <0>;
Patrick Delaunay500327e2020-07-06 13:26:53 +0200544 st,syscfg-fmp = <&syscfg 0x4 0x2>;
Patrick Delaunay1b28a5e2020-04-30 15:52:46 +0200545 wakeup-source;
Patrick Delaunay7e549342021-06-29 12:01:07 +0200546 i2c-analog-filter;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200547 status = "disabled";
548 };
549
550 i2c3: i2c@40014000 {
Patrick Delaunay500327e2020-07-06 13:26:53 +0200551 compatible = "st,stm32mp15-i2c";
Patrick Delaunaya6743132018-07-09 15:17:19 +0200552 reg = <0x40014000 0x400>;
553 interrupt-names = "event", "error";
554 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
555 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
556 clocks = <&rcc I2C3_K>;
557 resets = <&rcc I2C3_R>;
558 #address-cells = <1>;
559 #size-cells = <0>;
Patrick Delaunay500327e2020-07-06 13:26:53 +0200560 st,syscfg-fmp = <&syscfg 0x4 0x4>;
Patrick Delaunay1b28a5e2020-04-30 15:52:46 +0200561 wakeup-source;
Patrick Delaunay7e549342021-06-29 12:01:07 +0200562 i2c-analog-filter;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200563 status = "disabled";
564 };
565
566 i2c5: i2c@40015000 {
Patrick Delaunay500327e2020-07-06 13:26:53 +0200567 compatible = "st,stm32mp15-i2c";
Patrick Delaunaya6743132018-07-09 15:17:19 +0200568 reg = <0x40015000 0x400>;
569 interrupt-names = "event", "error";
570 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
571 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
572 clocks = <&rcc I2C5_K>;
573 resets = <&rcc I2C5_R>;
574 #address-cells = <1>;
575 #size-cells = <0>;
Patrick Delaunay500327e2020-07-06 13:26:53 +0200576 st,syscfg-fmp = <&syscfg 0x4 0x10>;
Patrick Delaunay1b28a5e2020-04-30 15:52:46 +0200577 wakeup-source;
Patrick Delaunay7e549342021-06-29 12:01:07 +0200578 i2c-analog-filter;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200579 status = "disabled";
580 };
581
582 cec: cec@40016000 {
583 compatible = "st,stm32-cec";
584 reg = <0x40016000 0x400>;
585 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay69ef98b2022-07-05 16:55:54 +0200586 clocks = <&rcc CEC_K>, <&rcc CEC>;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200587 clock-names = "cec", "hdmi-cec";
588 status = "disabled";
589 };
590
591 dac: dac@40017000 {
592 compatible = "st,stm32h7-dac-core";
593 reg = <0x40017000 0x400>;
594 clocks = <&rcc DAC12>;
595 clock-names = "pclk";
596 #address-cells = <1>;
597 #size-cells = <0>;
598 status = "disabled";
599
600 dac1: dac@1 {
601 compatible = "st,stm32-dac";
Patrick Delaunay500327e2020-07-06 13:26:53 +0200602 #io-channel-cells = <1>;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200603 reg = <1>;
604 status = "disabled";
605 };
606
607 dac2: dac@2 {
608 compatible = "st,stm32-dac";
Patrick Delaunay500327e2020-07-06 13:26:53 +0200609 #io-channel-cells = <1>;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200610 reg = <2>;
611 status = "disabled";
612 };
613 };
614
615 uart7: serial@40018000 {
616 compatible = "st,stm32h7-uart";
617 reg = <0x40018000 0x400>;
Patrick Delaunay7e549342021-06-29 12:01:07 +0200618 interrupts-extended = <&exti 32 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200619 clocks = <&rcc UART7_K>;
Patrick Delaunay7e549342021-06-29 12:01:07 +0200620 wakeup-source;
Patrick Delaunay189ec2f2022-04-26 15:38:05 +0200621 dmas = <&dmamux1 79 0x400 0x15>,
622 <&dmamux1 80 0x400 0x11>;
623 dma-names = "rx", "tx";
Patrick Delaunaya6743132018-07-09 15:17:19 +0200624 status = "disabled";
625 };
626
627 uart8: serial@40019000 {
628 compatible = "st,stm32h7-uart";
629 reg = <0x40019000 0x400>;
Patrick Delaunay7e549342021-06-29 12:01:07 +0200630 interrupts-extended = <&exti 33 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200631 clocks = <&rcc UART8_K>;
Patrick Delaunay7e549342021-06-29 12:01:07 +0200632 wakeup-source;
Patrick Delaunay189ec2f2022-04-26 15:38:05 +0200633 dmas = <&dmamux1 81 0x400 0x15>,
634 <&dmamux1 82 0x400 0x11>;
635 dma-names = "rx", "tx";
Patrick Delaunaya6743132018-07-09 15:17:19 +0200636 status = "disabled";
637 };
638
639 timers1: timer@44000000 {
640 #address-cells = <1>;
641 #size-cells = <0>;
642 compatible = "st,stm32-timers";
643 reg = <0x44000000 0x400>;
644 clocks = <&rcc TIM1_K>;
645 clock-names = "int";
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200646 dmas = <&dmamux1 11 0x400 0x1>,
647 <&dmamux1 12 0x400 0x1>,
648 <&dmamux1 13 0x400 0x1>,
649 <&dmamux1 14 0x400 0x1>,
650 <&dmamux1 15 0x400 0x1>,
651 <&dmamux1 16 0x400 0x1>,
652 <&dmamux1 17 0x400 0x1>;
653 dma-names = "ch1", "ch2", "ch3", "ch4",
654 "up", "trig", "com";
Patrick Delaunaya6743132018-07-09 15:17:19 +0200655 status = "disabled";
656
657 pwm {
658 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100659 #pwm-cells = <3>;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200660 status = "disabled";
661 };
662
663 timer@0 {
664 compatible = "st,stm32h7-timer-trigger";
665 reg = <0>;
666 status = "disabled";
667 };
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +0100668
669 counter {
670 compatible = "st,stm32-timer-counter";
671 status = "disabled";
672 };
Patrick Delaunaya6743132018-07-09 15:17:19 +0200673 };
674
675 timers8: timer@44001000 {
676 #address-cells = <1>;
677 #size-cells = <0>;
678 compatible = "st,stm32-timers";
679 reg = <0x44001000 0x400>;
680 clocks = <&rcc TIM8_K>;
681 clock-names = "int";
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200682 dmas = <&dmamux1 47 0x400 0x1>,
683 <&dmamux1 48 0x400 0x1>,
684 <&dmamux1 49 0x400 0x1>,
685 <&dmamux1 50 0x400 0x1>,
686 <&dmamux1 51 0x400 0x1>,
687 <&dmamux1 52 0x400 0x1>,
688 <&dmamux1 53 0x400 0x1>;
689 dma-names = "ch1", "ch2", "ch3", "ch4",
690 "up", "trig", "com";
Patrick Delaunaya6743132018-07-09 15:17:19 +0200691 status = "disabled";
692
693 pwm {
694 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100695 #pwm-cells = <3>;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200696 status = "disabled";
697 };
698
699 timer@7 {
700 compatible = "st,stm32h7-timer-trigger";
701 reg = <7>;
702 status = "disabled";
703 };
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +0100704
705 counter {
706 compatible = "st,stm32-timer-counter";
707 status = "disabled";
708 };
Patrick Delaunaya6743132018-07-09 15:17:19 +0200709 };
710
711 usart6: serial@44003000 {
712 compatible = "st,stm32h7-uart";
713 reg = <0x44003000 0x400>;
Patrick Delaunay7e549342021-06-29 12:01:07 +0200714 interrupts-extended = <&exti 29 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200715 clocks = <&rcc USART6_K>;
Patrick Delaunay7e549342021-06-29 12:01:07 +0200716 wakeup-source;
Patrick Delaunay189ec2f2022-04-26 15:38:05 +0200717 dmas = <&dmamux1 71 0x400 0x15>,
718 <&dmamux1 72 0x400 0x11>;
719 dma-names = "rx", "tx";
Patrick Delaunaya6743132018-07-09 15:17:19 +0200720 status = "disabled";
721 };
722
Patrice Chotard23661602019-02-12 16:50:38 +0100723 spi1: spi@44004000 {
724 #address-cells = <1>;
725 #size-cells = <0>;
726 compatible = "st,stm32h7-spi";
727 reg = <0x44004000 0x400>;
728 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
729 clocks = <&rcc SPI1_K>;
730 resets = <&rcc SPI1_R>;
731 dmas = <&dmamux1 37 0x400 0x05>,
732 <&dmamux1 38 0x400 0x05>;
733 dma-names = "rx", "tx";
734 status = "disabled";
735 };
736
Patrick Delaunayfe915332019-07-30 19:16:12 +0200737 i2s1: audio-controller@44004000 {
738 compatible = "st,stm32h7-i2s";
739 #sound-dai-cells = <0>;
740 reg = <0x44004000 0x400>;
741 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
742 dmas = <&dmamux1 37 0x400 0x01>,
743 <&dmamux1 38 0x400 0x01>;
744 dma-names = "rx", "tx";
745 status = "disabled";
746 };
747
Patrice Chotard23661602019-02-12 16:50:38 +0100748 spi4: spi@44005000 {
749 #address-cells = <1>;
750 #size-cells = <0>;
751 compatible = "st,stm32h7-spi";
752 reg = <0x44005000 0x400>;
753 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
754 clocks = <&rcc SPI4_K>;
755 resets = <&rcc SPI4_R>;
756 dmas = <&dmamux1 83 0x400 0x05>,
757 <&dmamux1 84 0x400 0x05>;
758 dma-names = "rx", "tx";
759 status = "disabled";
760 };
761
Patrick Delaunaya6743132018-07-09 15:17:19 +0200762 timers15: timer@44006000 {
763 #address-cells = <1>;
764 #size-cells = <0>;
765 compatible = "st,stm32-timers";
766 reg = <0x44006000 0x400>;
767 clocks = <&rcc TIM15_K>;
768 clock-names = "int";
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200769 dmas = <&dmamux1 105 0x400 0x1>,
770 <&dmamux1 106 0x400 0x1>,
771 <&dmamux1 107 0x400 0x1>,
772 <&dmamux1 108 0x400 0x1>;
773 dma-names = "ch1", "up", "trig", "com";
Patrick Delaunaya6743132018-07-09 15:17:19 +0200774 status = "disabled";
775
776 pwm {
777 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100778 #pwm-cells = <3>;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200779 status = "disabled";
780 };
781
782 timer@14 {
783 compatible = "st,stm32h7-timer-trigger";
784 reg = <14>;
785 status = "disabled";
786 };
787 };
788
789 timers16: timer@44007000 {
790 #address-cells = <1>;
791 #size-cells = <0>;
792 compatible = "st,stm32-timers";
793 reg = <0x44007000 0x400>;
794 clocks = <&rcc TIM16_K>;
795 clock-names = "int";
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200796 dmas = <&dmamux1 109 0x400 0x1>,
797 <&dmamux1 110 0x400 0x1>;
798 dma-names = "ch1", "up";
Patrick Delaunaya6743132018-07-09 15:17:19 +0200799 status = "disabled";
800
801 pwm {
802 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100803 #pwm-cells = <3>;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200804 status = "disabled";
805 };
806 timer@15 {
807 compatible = "st,stm32h7-timer-trigger";
808 reg = <15>;
809 status = "disabled";
810 };
811 };
812
813 timers17: timer@44008000 {
814 #address-cells = <1>;
815 #size-cells = <0>;
816 compatible = "st,stm32-timers";
817 reg = <0x44008000 0x400>;
818 clocks = <&rcc TIM17_K>;
819 clock-names = "int";
Patrick Delaunay35a54d42019-07-11 11:15:28 +0200820 dmas = <&dmamux1 111 0x400 0x1>,
821 <&dmamux1 112 0x400 0x1>;
822 dma-names = "ch1", "up";
Patrick Delaunaya6743132018-07-09 15:17:19 +0200823 status = "disabled";
824
825 pwm {
826 compatible = "st,stm32-pwm";
Patrick Delaunay62d620c2019-11-06 16:16:33 +0100827 #pwm-cells = <3>;
Patrick Delaunaya6743132018-07-09 15:17:19 +0200828 status = "disabled";
829 };
830
831 timer@16 {
832 compatible = "st,stm32h7-timer-trigger";
833 reg = <16>;
834 status = "disabled";
835 };
836 };
837
Patrice Chotard23661602019-02-12 16:50:38 +0100838 spi5: spi@44009000 {
839 #address-cells = <1>;
840 #size-cells = <0>;
841 compatible = "st,stm32h7-spi";
842 reg = <0x44009000 0x400>;
843 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
844 clocks = <&rcc SPI5_K>;
845 resets = <&rcc SPI5_R>;
846 dmas = <&dmamux1 85 0x400 0x05>,
847 <&dmamux1 86 0x400 0x05>;
848 dma-names = "rx", "tx";
849 status = "disabled";
850 };
851
Patrick Delaunayfe915332019-07-30 19:16:12 +0200852 sai1: sai@4400a000 {
853 compatible = "st,stm32h7-sai";
854 #address-cells = <1>;
855 #size-cells = <1>;
856 ranges = <0 0x4400a000 0x400>;
857 reg = <0x4400a000 0x4>, <0x4400a3f0 0x10>;
858 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
859 resets = <&rcc SAI1_R>;
860 status = "disabled";
861
862 sai1a: audio-controller@4400a004 {
863 #sound-dai-cells = <0>;
864
865 compatible = "st,stm32-sai-sub-a";
Patrick Delaunaybd485f92021-12-17 16:30:22 +0100866 reg = <0x4 0x20>;
Patrick Delaunayfe915332019-07-30 19:16:12 +0200867 clocks = <&rcc SAI1_K>;
868 clock-names = "sai_ck";
869 dmas = <&dmamux1 87 0x400 0x01>;
870 status = "disabled";
871 };
872
873 sai1b: audio-controller@4400a024 {
874 #sound-dai-cells = <0>;
875 compatible = "st,stm32-sai-sub-b";
Patrick Delaunaybd485f92021-12-17 16:30:22 +0100876 reg = <0x24 0x20>;
Patrick Delaunayfe915332019-07-30 19:16:12 +0200877 clocks = <&rcc SAI1_K>;
878 clock-names = "sai_ck";
879 dmas = <&dmamux1 88 0x400 0x01>;
880 status = "disabled";
881 };
882 };
883
884 sai2: sai@4400b000 {
885 compatible = "st,stm32h7-sai";
886 #address-cells = <1>;
887 #size-cells = <1>;
888 ranges = <0 0x4400b000 0x400>;
889 reg = <0x4400b000 0x4>, <0x4400b3f0 0x10>;
890 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
891 resets = <&rcc SAI2_R>;
892 status = "disabled";
893
894 sai2a: audio-controller@4400b004 {
895 #sound-dai-cells = <0>;
896 compatible = "st,stm32-sai-sub-a";
Patrick Delaunaybd485f92021-12-17 16:30:22 +0100897 reg = <0x4 0x20>;
Patrick Delaunayfe915332019-07-30 19:16:12 +0200898 clocks = <&rcc SAI2_K>;
899 clock-names = "sai_ck";
900 dmas = <&dmamux1 89 0x400 0x01>;
901 status = "disabled";
902 };
903
904 sai2b: audio-controller@4400b024 {
905 #sound-dai-cells = <0>;
906 compatible = "st,stm32-sai-sub-b";
Patrick Delaunaybd485f92021-12-17 16:30:22 +0100907 reg = <0x24 0x20>;
Patrick Delaunayfe915332019-07-30 19:16:12 +0200908 clocks = <&rcc SAI2_K>;
909 clock-names = "sai_ck";
910 dmas = <&dmamux1 90 0x400 0x01>;
911 status = "disabled";
912 };
913 };
914
915 sai3: sai@4400c000 {
916 compatible = "st,stm32h7-sai";
917 #address-cells = <1>;
918 #size-cells = <1>;
919 ranges = <0 0x4400c000 0x400>;
920 reg = <0x4400c000 0x4>, <0x4400c3f0 0x10>;
921 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
922 resets = <&rcc SAI3_R>;
923 status = "disabled";
924
925 sai3a: audio-controller@4400c004 {
926 #sound-dai-cells = <0>;
927 compatible = "st,stm32-sai-sub-a";
Patrick Delaunaybd485f92021-12-17 16:30:22 +0100928 reg = <0x04 0x20>;
Patrick Delaunayfe915332019-07-30 19:16:12 +0200929 clocks = <&rcc SAI3_K>;
930 clock-names = "sai_ck";
931 dmas = <&dmamux1 113 0x400 0x01>;
932 status = "disabled";
933 };
934
935 sai3b: audio-controller@4400c024 {
936 #sound-dai-cells = <0>;
937 compatible = "st,stm32-sai-sub-b";
Patrick Delaunaybd485f92021-12-17 16:30:22 +0100938 reg = <0x24 0x20>;
Patrick Delaunayfe915332019-07-30 19:16:12 +0200939 clocks = <&rcc SAI3_K>;
940 clock-names = "sai_ck";
941 dmas = <&dmamux1 114 0x400 0x01>;
942 status = "disabled";
943 };
944 };
945
Patrice Chotard23661602019-02-12 16:50:38 +0100946 dfsdm: dfsdm@4400d000 {
947 compatible = "st,stm32mp1-dfsdm";
948 reg = <0x4400d000 0x800>;
949 clocks = <&rcc DFSDM_K>;
950 clock-names = "dfsdm";
951 #address-cells = <1>;
952 #size-cells = <0>;
953 status = "disabled";
954
955 dfsdm0: filter@0 {
956 compatible = "st,stm32-dfsdm-adc";
957 #io-channel-cells = <1>;
958 reg = <0>;
959 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
960 dmas = <&dmamux1 101 0x400 0x01>;
961 dma-names = "rx";
962 status = "disabled";
963 };
964
965 dfsdm1: filter@1 {
966 compatible = "st,stm32-dfsdm-adc";
967 #io-channel-cells = <1>;
968 reg = <1>;
969 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
970 dmas = <&dmamux1 102 0x400 0x01>;
971 dma-names = "rx";
972 status = "disabled";
973 };
974
975 dfsdm2: filter@2 {
976 compatible = "st,stm32-dfsdm-adc";
977 #io-channel-cells = <1>;
978 reg = <2>;
979 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
980 dmas = <&dmamux1 103 0x400 0x01>;
981 dma-names = "rx";
982 status = "disabled";
983 };
984
985 dfsdm3: filter@3 {
986 compatible = "st,stm32-dfsdm-adc";
987 #io-channel-cells = <1>;
988 reg = <3>;
989 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
990 dmas = <&dmamux1 104 0x400 0x01>;
991 dma-names = "rx";
992 status = "disabled";
993 };
994
995 dfsdm4: filter@4 {
996 compatible = "st,stm32-dfsdm-adc";
997 #io-channel-cells = <1>;
998 reg = <4>;
999 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
1000 dmas = <&dmamux1 91 0x400 0x01>;
1001 dma-names = "rx";
1002 status = "disabled";
1003 };
1004
1005 dfsdm5: filter@5 {
1006 compatible = "st,stm32-dfsdm-adc";
1007 #io-channel-cells = <1>;
1008 reg = <5>;
1009 interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
1010 dmas = <&dmamux1 92 0x400 0x01>;
1011 dma-names = "rx";
1012 status = "disabled";
1013 };
1014 };
1015
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +01001016 dma1: dma-controller@48000000 {
Patrick Delaunaya6743132018-07-09 15:17:19 +02001017 compatible = "st,stm32-dma";
1018 reg = <0x48000000 0x400>;
1019 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
1020 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
1021 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
1022 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
1023 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
1024 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
1025 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
1026 <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
1027 clocks = <&rcc DMA1>;
Patrick Delaunay1b28a5e2020-04-30 15:52:46 +02001028 resets = <&rcc DMA1_R>;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001029 #dma-cells = <4>;
1030 st,mem2mem;
1031 dma-requests = <8>;
1032 };
1033
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +01001034 dma2: dma-controller@48001000 {
Patrick Delaunaya6743132018-07-09 15:17:19 +02001035 compatible = "st,stm32-dma";
1036 reg = <0x48001000 0x400>;
1037 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
1038 <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
1039 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
1040 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
1041 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
1042 <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
1043 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
1044 <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
1045 clocks = <&rcc DMA2>;
Patrick Delaunay1b28a5e2020-04-30 15:52:46 +02001046 resets = <&rcc DMA2_R>;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001047 #dma-cells = <4>;
1048 st,mem2mem;
1049 dma-requests = <8>;
1050 };
1051
1052 dmamux1: dma-router@48002000 {
1053 compatible = "st,stm32h7-dmamux";
Patrick Delaunayf050e3f2021-01-11 12:33:36 +01001054 reg = <0x48002000 0x40>;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001055 #dma-cells = <3>;
1056 dma-requests = <128>;
1057 dma-masters = <&dma1 &dma2>;
1058 dma-channels = <16>;
1059 clocks = <&rcc DMAMUX>;
Patrick Delaunay1b28a5e2020-04-30 15:52:46 +02001060 resets = <&rcc DMAMUX_R>;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001061 };
1062
Patrice Chotard638ee5a2018-08-06 09:54:04 +02001063 adc: adc@48003000 {
1064 compatible = "st,stm32mp1-adc-core";
1065 reg = <0x48003000 0x400>;
1066 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
1067 <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
1068 clocks = <&rcc ADC12>, <&rcc ADC12_K>;
1069 clock-names = "bus", "adc";
1070 interrupt-controller;
Patrick Delaunay62d620c2019-11-06 16:16:33 +01001071 st,syscfg = <&syscfg>;
Patrice Chotard638ee5a2018-08-06 09:54:04 +02001072 #interrupt-cells = <1>;
1073 #address-cells = <1>;
1074 #size-cells = <0>;
1075 status = "disabled";
1076
1077 adc1: adc@0 {
1078 compatible = "st,stm32mp1-adc";
1079 #io-channel-cells = <1>;
1080 reg = <0x0>;
1081 interrupt-parent = <&adc>;
1082 interrupts = <0>;
Patrice Chotard23661602019-02-12 16:50:38 +01001083 dmas = <&dmamux1 9 0x400 0x01>;
1084 dma-names = "rx";
Patrice Chotard638ee5a2018-08-06 09:54:04 +02001085 status = "disabled";
1086 };
1087
1088 adc2: adc@100 {
1089 compatible = "st,stm32mp1-adc";
1090 #io-channel-cells = <1>;
1091 reg = <0x100>;
1092 interrupt-parent = <&adc>;
1093 interrupts = <1>;
Patrice Chotard23661602019-02-12 16:50:38 +01001094 dmas = <&dmamux1 10 0x400 0x01>;
1095 dma-names = "rx";
Patrice Chotard638ee5a2018-08-06 09:54:04 +02001096 status = "disabled";
1097 };
1098 };
1099
Patrick Delaunay7e549342021-06-29 12:01:07 +02001100 sdmmc3: mmc@48004000 {
Patrick Delaunay189ec2f2022-04-26 15:38:05 +02001101 compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
Patrick Delaunayf050e3f2021-01-11 12:33:36 +01001102 arm,primecell-periphid = <0x00253180>;
Patrick Delaunay35a54d42019-07-11 11:15:28 +02001103 reg = <0x48004000 0x400>;
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +01001104 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
1105 interrupt-names = "cmd_irq";
Patrick Delaunaya6743132018-07-09 15:17:19 +02001106 clocks = <&rcc SDMMC3_K>;
Patrick Delaunay35a54d42019-07-11 11:15:28 +02001107 clock-names = "apb_pclk";
Patrick Delaunaya6743132018-07-09 15:17:19 +02001108 resets = <&rcc SDMMC3_R>;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001109 cap-sd-highspeed;
1110 cap-mmc-highspeed;
1111 max-frequency = <120000000>;
1112 status = "disabled";
1113 };
1114
Patrice Chotard8e9c94d2018-08-10 17:12:11 +02001115 usbotg_hs: usb-otg@49000000 {
Patrick Delaunay1b28a5e2020-04-30 15:52:46 +02001116 compatible = "st,stm32mp15-hsotg", "snps,dwc2";
Patrice Chotard8e9c94d2018-08-10 17:12:11 +02001117 reg = <0x49000000 0x10000>;
1118 clocks = <&rcc USBO_K>;
1119 clock-names = "otg";
1120 resets = <&rcc USBO_R>;
1121 reset-names = "dwc2";
1122 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunayf050e3f2021-01-11 12:33:36 +01001123 g-rx-fifo-size = <512>;
Patrice Chotard8e9c94d2018-08-10 17:12:11 +02001124 g-np-tx-fifo-size = <32>;
Patrick Delaunayf050e3f2021-01-11 12:33:36 +01001125 g-tx-fifo-size = <256 16 16 16 16 16 16 16>;
Patrice Chotard8e9c94d2018-08-10 17:12:11 +02001126 dr_mode = "otg";
Patrick Delaunaybd485f92021-12-17 16:30:22 +01001127 otg-rev = <0x200>;
Patrick Delaunayc50151d2019-03-29 15:42:11 +01001128 usb33d-supply = <&usb33>;
Patrice Chotard8e9c94d2018-08-10 17:12:11 +02001129 status = "disabled";
1130 };
1131
Benjamin Gaignard9119f542018-11-27 13:49:52 +01001132 hwspinlock: hwspinlock@4c000000 {
1133 compatible = "st,stm32-hwspinlock";
1134 #hwlock-cells = <1>;
1135 reg = <0x4c000000 0x400>;
1136 clocks = <&rcc HSEM>;
1137 clock-names = "hwspinlock";
Benjamin Gaignard9119f542018-11-27 13:49:52 +01001138 };
1139
Fabien Dessenne1958dae2019-05-14 11:20:37 +02001140 ipcc: mailbox@4c001000 {
1141 compatible = "st,stm32mp1-ipcc";
1142 #mbox-cells = <1>;
1143 reg = <0x4c001000 0x400>;
1144 st,proc-id = <0>;
1145 interrupts-extended =
Patrick Delaunay152498d2022-09-07 13:42:23 +02001146 <&exti 61 1>,
1147 <&intc GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
1148 interrupt-names = "rx", "tx";
Fabien Dessenne1958dae2019-05-14 11:20:37 +02001149 clocks = <&rcc IPCC>;
Patrick Delaunay35a54d42019-07-11 11:15:28 +02001150 wakeup-source;
Fabien Dessenne1958dae2019-05-14 11:20:37 +02001151 status = "disabled";
1152 };
1153
Patrick Delaunayfe915332019-07-30 19:16:12 +02001154 dcmi: dcmi@4c006000 {
1155 compatible = "st,stm32-dcmi";
1156 reg = <0x4c006000 0x400>;
1157 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
1158 resets = <&rcc CAMITF_R>;
1159 clocks = <&rcc DCMI>;
1160 clock-names = "mclk";
Patrick Delaunayf050e3f2021-01-11 12:33:36 +01001161 dmas = <&dmamux1 75 0x400 0x01>;
Patrick Delaunayfe915332019-07-30 19:16:12 +02001162 dma-names = "tx";
1163 status = "disabled";
1164 };
1165
Patrick Delaunaya6743132018-07-09 15:17:19 +02001166 rcc: rcc@50000000 {
1167 compatible = "st,stm32mp1-rcc", "syscon";
1168 reg = <0x50000000 0x1000>;
1169 #clock-cells = <1>;
1170 #reset-cells = <1>;
Etienne Carriere3d152452021-02-24 11:19:41 +01001171
1172 clock-names = "hse", "hsi", "csi", "lse", "lsi";
1173 clocks = <&clk_hse>, <&clk_hsi>, <&clk_csi>,
1174 <&clk_lse>, <&clk_lsi>;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001175 };
1176
Patrick Delaunay7915b992020-01-28 10:10:59 +01001177 pwr_regulators: pwr@50001000 {
1178 compatible = "st,stm32mp1,pwr-reg";
1179 reg = <0x50001000 0x10>;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001180
Patrick Delaunay7915b992020-01-28 10:10:59 +01001181 reg11: reg11 {
1182 regulator-name = "reg11";
1183 regulator-min-microvolt = <1100000>;
1184 regulator-max-microvolt = <1100000>;
1185 };
Patrick Delaunaya6743132018-07-09 15:17:19 +02001186
Patrick Delaunay7915b992020-01-28 10:10:59 +01001187 reg18: reg18 {
1188 regulator-name = "reg18";
1189 regulator-min-microvolt = <1800000>;
1190 regulator-max-microvolt = <1800000>;
1191 };
Patrick Delaunaya6743132018-07-09 15:17:19 +02001192
Patrick Delaunay7915b992020-01-28 10:10:59 +01001193 usb33: usb33 {
1194 regulator-name = "usb33";
1195 regulator-min-microvolt = <3300000>;
1196 regulator-max-microvolt = <3300000>;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001197 };
1198 };
1199
Patrick Delaunay500327e2020-07-06 13:26:53 +02001200 pwr_mcu: pwr_mcu@50001014 {
Patrick Delaunay62f95af2020-09-16 10:01:32 +02001201 compatible = "st,stm32mp151-pwr-mcu", "syscon";
Patrick Delaunay500327e2020-07-06 13:26:53 +02001202 reg = <0x50001014 0x4>;
1203 };
1204
Patrick Delaunaya6743132018-07-09 15:17:19 +02001205 exti: interrupt-controller@5000d000 {
1206 compatible = "st,stm32mp1-exti", "syscon";
1207 interrupt-controller;
1208 #interrupt-cells = <2>;
1209 reg = <0x5000d000 0x400>;
1210 };
1211
Patrice Chotard23661602019-02-12 16:50:38 +01001212 syscfg: syscon@50020000 {
Patrick Delaunay6c09eb92019-02-27 17:01:23 +01001213 compatible = "st,stm32mp157-syscfg", "syscon";
Patrick Delaunaya6743132018-07-09 15:17:19 +02001214 reg = <0x50020000 0x400>;
Patrick Delaunay35a54d42019-07-11 11:15:28 +02001215 clocks = <&rcc SYSCFG>;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001216 };
1217
1218 lptimer2: timer@50021000 {
1219 #address-cells = <1>;
1220 #size-cells = <0>;
1221 compatible = "st,stm32-lptimer";
1222 reg = <0x50021000 0x400>;
Patrick Delaunayf050e3f2021-01-11 12:33:36 +01001223 interrupts-extended = <&exti 48 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001224 clocks = <&rcc LPTIM2_K>;
1225 clock-names = "mux";
Patrick Delaunayf050e3f2021-01-11 12:33:36 +01001226 wakeup-source;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001227 status = "disabled";
1228
1229 pwm {
1230 compatible = "st,stm32-pwm-lp";
1231 #pwm-cells = <3>;
1232 status = "disabled";
1233 };
1234
1235 trigger@1 {
1236 compatible = "st,stm32-lptimer-trigger";
1237 reg = <1>;
1238 status = "disabled";
1239 };
1240
1241 counter {
1242 compatible = "st,stm32-lptimer-counter";
1243 status = "disabled";
1244 };
1245 };
1246
1247 lptimer3: timer@50022000 {
1248 #address-cells = <1>;
1249 #size-cells = <0>;
1250 compatible = "st,stm32-lptimer";
1251 reg = <0x50022000 0x400>;
Patrick Delaunayf050e3f2021-01-11 12:33:36 +01001252 interrupts-extended = <&exti 50 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001253 clocks = <&rcc LPTIM3_K>;
1254 clock-names = "mux";
Patrick Delaunayf050e3f2021-01-11 12:33:36 +01001255 wakeup-source;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001256 status = "disabled";
1257
1258 pwm {
1259 compatible = "st,stm32-pwm-lp";
1260 #pwm-cells = <3>;
1261 status = "disabled";
1262 };
1263
1264 trigger@2 {
1265 compatible = "st,stm32-lptimer-trigger";
1266 reg = <2>;
1267 status = "disabled";
1268 };
1269 };
1270
1271 lptimer4: timer@50023000 {
1272 compatible = "st,stm32-lptimer";
1273 reg = <0x50023000 0x400>;
Patrick Delaunayf050e3f2021-01-11 12:33:36 +01001274 interrupts-extended = <&exti 52 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001275 clocks = <&rcc LPTIM4_K>;
1276 clock-names = "mux";
Patrick Delaunayf050e3f2021-01-11 12:33:36 +01001277 wakeup-source;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001278 status = "disabled";
1279
1280 pwm {
1281 compatible = "st,stm32-pwm-lp";
1282 #pwm-cells = <3>;
1283 status = "disabled";
1284 };
1285 };
1286
1287 lptimer5: timer@50024000 {
1288 compatible = "st,stm32-lptimer";
1289 reg = <0x50024000 0x400>;
Patrick Delaunayf050e3f2021-01-11 12:33:36 +01001290 interrupts-extended = <&exti 53 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001291 clocks = <&rcc LPTIM5_K>;
1292 clock-names = "mux";
Patrick Delaunayf050e3f2021-01-11 12:33:36 +01001293 wakeup-source;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001294 status = "disabled";
1295
1296 pwm {
1297 compatible = "st,stm32-pwm-lp";
1298 #pwm-cells = <3>;
1299 status = "disabled";
1300 };
1301 };
1302
1303 vrefbuf: vrefbuf@50025000 {
1304 compatible = "st,stm32-vrefbuf";
1305 reg = <0x50025000 0x8>;
1306 regulator-min-microvolt = <1500000>;
1307 regulator-max-microvolt = <2500000>;
1308 clocks = <&rcc VREF>;
1309 status = "disabled";
1310 };
1311
Patrick Delaunayfe915332019-07-30 19:16:12 +02001312 sai4: sai@50027000 {
1313 compatible = "st,stm32h7-sai";
1314 #address-cells = <1>;
1315 #size-cells = <1>;
1316 ranges = <0 0x50027000 0x400>;
1317 reg = <0x50027000 0x4>, <0x500273f0 0x10>;
1318 interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
1319 resets = <&rcc SAI4_R>;
1320 status = "disabled";
1321
1322 sai4a: audio-controller@50027004 {
1323 #sound-dai-cells = <0>;
1324 compatible = "st,stm32-sai-sub-a";
Patrick Delaunaybd485f92021-12-17 16:30:22 +01001325 reg = <0x04 0x20>;
Patrick Delaunayfe915332019-07-30 19:16:12 +02001326 clocks = <&rcc SAI4_K>;
1327 clock-names = "sai_ck";
1328 dmas = <&dmamux1 99 0x400 0x01>;
1329 status = "disabled";
1330 };
1331
1332 sai4b: audio-controller@50027024 {
1333 #sound-dai-cells = <0>;
1334 compatible = "st,stm32-sai-sub-b";
Patrick Delaunaybd485f92021-12-17 16:30:22 +01001335 reg = <0x24 0x20>;
Patrick Delaunayfe915332019-07-30 19:16:12 +02001336 clocks = <&rcc SAI4_K>;
1337 clock-names = "sai_ck";
1338 dmas = <&dmamux1 100 0x400 0x01>;
1339 status = "disabled";
1340 };
1341 };
1342
Patrick Delaunay35a54d42019-07-11 11:15:28 +02001343 dts: thermal@50028000 {
1344 compatible = "st,stm32-thermal";
1345 reg = <0x50028000 0x100>;
1346 interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
1347 clocks = <&rcc TMPSENS>;
1348 clock-names = "pclk";
1349 #thermal-sensor-cells = <0>;
1350 status = "disabled";
1351 };
1352
Patrice Chotard23661602019-02-12 16:50:38 +01001353 hash1: hash@54002000 {
1354 compatible = "st,stm32f756-hash";
1355 reg = <0x54002000 0x400>;
1356 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
1357 clocks = <&rcc HASH1>;
1358 resets = <&rcc HASH1_R>;
Patrick Delaunayf050e3f2021-01-11 12:33:36 +01001359 dmas = <&mdma1 31 0x2 0x1000A02 0x0 0x0>;
Patrice Chotard23661602019-02-12 16:50:38 +01001360 dma-names = "in";
1361 dma-maxburst = <2>;
1362 status = "disabled";
1363 };
1364
Patrick Delaunaya6743132018-07-09 15:17:19 +02001365 rng1: rng@54003000 {
1366 compatible = "st,stm32-rng";
1367 reg = <0x54003000 0x400>;
1368 clocks = <&rcc RNG1_K>;
1369 resets = <&rcc RNG1_R>;
1370 status = "disabled";
1371 };
1372
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +01001373 mdma1: dma-controller@58000000 {
Patrick Delaunaya6743132018-07-09 15:17:19 +02001374 compatible = "st,stm32h7-mdma";
1375 reg = <0x58000000 0x1000>;
1376 interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
1377 clocks = <&rcc MDMA>;
Patrick Delaunay1b28a5e2020-04-30 15:52:46 +02001378 resets = <&rcc MDMA_R>;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001379 #dma-cells = <5>;
1380 dma-channels = <32>;
1381 dma-requests = <48>;
1382 };
1383
Christophe Kerelloacdaae62020-07-31 09:53:44 +02001384 fmc: memory-controller@58002000 {
1385 #address-cells = <2>;
1386 #size-cells = <1>;
1387 compatible = "st,stm32mp1-fmc2-ebi";
1388 reg = <0x58002000 0x1000>;
Patrick Delaunayc4a739a2019-04-08 15:30:52 +02001389 clocks = <&rcc FMC_K>;
1390 resets = <&rcc FMC_R>;
1391 status = "disabled";
Christophe Kerelloacdaae62020-07-31 09:53:44 +02001392
1393 ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */
1394 <1 0 0x64000000 0x04000000>, /* EBI CS 2 */
1395 <2 0 0x68000000 0x04000000>, /* EBI CS 3 */
1396 <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */
1397 <4 0 0x80000000 0x10000000>; /* NAND */
1398
1399 nand-controller@4,0 {
1400 #address-cells = <1>;
1401 #size-cells = <0>;
1402 compatible = "st,stm32mp1-fmc2-nfc";
1403 reg = <4 0x00000000 0x1000>,
1404 <4 0x08010000 0x1000>,
1405 <4 0x08020000 0x1000>,
1406 <4 0x01000000 0x1000>,
1407 <4 0x09010000 0x1000>,
1408 <4 0x09020000 0x1000>;
1409 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
1410 dmas = <&mdma1 20 0x2 0x12000a02 0x0 0x0>,
1411 <&mdma1 20 0x2 0x12000a08 0x0 0x0>,
1412 <&mdma1 21 0x2 0x12000a0a 0x0 0x0>;
1413 dma-names = "tx", "rx", "ecc";
1414 status = "disabled";
1415 };
Patrick Delaunayc4a739a2019-04-08 15:30:52 +02001416 };
1417
Patrice Chotard23661602019-02-12 16:50:38 +01001418 qspi: spi@58003000 {
Patrick Delaunaya6743132018-07-09 15:17:19 +02001419 compatible = "st,stm32f469-qspi";
1420 reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
1421 reg-names = "qspi", "qspi_mm";
1422 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay2d4180b2021-07-27 12:15:12 +02001423 dmas = <&mdma1 22 0x2 0x10100002 0x0 0x0>,
1424 <&mdma1 22 0x2 0x10100008 0x0 0x0>;
Patrick Delaunay62d620c2019-11-06 16:16:33 +01001425 dma-names = "tx", "rx";
Patrick Delaunaya6743132018-07-09 15:17:19 +02001426 clocks = <&rcc QSPI_K>;
1427 resets = <&rcc QSPI_R>;
Patrick Delaunay62f95af2020-09-16 10:01:32 +02001428 #address-cells = <1>;
1429 #size-cells = <0>;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001430 status = "disabled";
1431 };
1432
Patrick Delaunay7e549342021-06-29 12:01:07 +02001433 sdmmc1: mmc@58005000 {
Patrick Delaunay189ec2f2022-04-26 15:38:05 +02001434 compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
Patrick Delaunayf050e3f2021-01-11 12:33:36 +01001435 arm,primecell-periphid = <0x00253180>;
Patrick Delaunay35a54d42019-07-11 11:15:28 +02001436 reg = <0x58005000 0x1000>;
1437 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +01001438 interrupt-names = "cmd_irq";
Patrick Delaunaya6743132018-07-09 15:17:19 +02001439 clocks = <&rcc SDMMC1_K>;
Patrick Delaunay35a54d42019-07-11 11:15:28 +02001440 clock-names = "apb_pclk";
Patrick Delaunaya6743132018-07-09 15:17:19 +02001441 resets = <&rcc SDMMC1_R>;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001442 cap-sd-highspeed;
1443 cap-mmc-highspeed;
1444 max-frequency = <120000000>;
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +01001445 status = "disabled";
Patrick Delaunaya6743132018-07-09 15:17:19 +02001446 };
1447
Patrick Delaunay7e549342021-06-29 12:01:07 +02001448 sdmmc2: mmc@58007000 {
Patrick Delaunay189ec2f2022-04-26 15:38:05 +02001449 compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
Patrick Delaunayf050e3f2021-01-11 12:33:36 +01001450 arm,primecell-periphid = <0x00253180>;
Patrick Delaunay35a54d42019-07-11 11:15:28 +02001451 reg = <0x58007000 0x1000>;
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +01001452 interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
1453 interrupt-names = "cmd_irq";
Patrick Delaunaya6743132018-07-09 15:17:19 +02001454 clocks = <&rcc SDMMC2_K>;
Patrick Delaunay35a54d42019-07-11 11:15:28 +02001455 clock-names = "apb_pclk";
Patrick Delaunaya6743132018-07-09 15:17:19 +02001456 resets = <&rcc SDMMC2_R>;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001457 cap-sd-highspeed;
1458 cap-mmc-highspeed;
1459 max-frequency = <120000000>;
1460 status = "disabled";
1461 };
1462
1463 crc1: crc@58009000 {
1464 compatible = "st,stm32f7-crc";
1465 reg = <0x58009000 0x400>;
1466 clocks = <&rcc CRC1>;
1467 status = "disabled";
1468 };
1469
Patrice Chotard23661602019-02-12 16:50:38 +01001470 ethernet0: ethernet@5800a000 {
1471 compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a";
1472 reg = <0x5800a000 0x2000>;
1473 reg-names = "stmmaceth";
Patrick Delaunay35a54d42019-07-11 11:15:28 +02001474 interrupts-extended = <&intc GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
1475 interrupt-names = "macirq";
Patrice Chotard23661602019-02-12 16:50:38 +01001476 clock-names = "stmmaceth",
1477 "mac-clk-tx",
1478 "mac-clk-rx",
Marek Vasutdb48e112020-01-10 01:28:38 +01001479 "eth-ck",
Patrick Delaunay7e549342021-06-29 12:01:07 +02001480 "ptp_ref",
Patrick Delaunay500327e2020-07-06 13:26:53 +02001481 "ethstp";
Patrice Chotard23661602019-02-12 16:50:38 +01001482 clocks = <&rcc ETHMAC>,
1483 <&rcc ETHTX>,
1484 <&rcc ETHRX>,
Marek Vasutdb48e112020-01-10 01:28:38 +01001485 <&rcc ETHCK_K>,
Patrick Delaunay7e549342021-06-29 12:01:07 +02001486 <&rcc ETHPTP_K>,
Patrick Delaunay500327e2020-07-06 13:26:53 +02001487 <&rcc ETHSTP>;
Patrice Chotard23661602019-02-12 16:50:38 +01001488 st,syscon = <&syscfg 0x4>;
1489 snps,mixed-burst;
1490 snps,pbl = <2>;
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +01001491 snps,en-tx-lpi-clockgating;
Patrice Chotard23661602019-02-12 16:50:38 +01001492 snps,axi-config = <&stmmac_axi_config_0>;
1493 snps,tso;
1494 status = "disabled";
Patrick Delaunay2d4180b2021-07-27 12:15:12 +02001495
1496 stmmac_axi_config_0: stmmac-axi-config {
1497 snps,wr_osr_lmt = <0x7>;
1498 snps,rd_osr_lmt = <0x7>;
1499 snps,blen = <0 0 0 0 16 8 4>;
1500 };
Patrice Chotard23661602019-02-12 16:50:38 +01001501 };
1502
Patrick Delaunayf050e3f2021-01-11 12:33:36 +01001503 usbh_ohci: usb@5800c000 {
Patrick Delaunaya6743132018-07-09 15:17:19 +02001504 compatible = "generic-ohci";
1505 reg = <0x5800c000 0x1000>;
Patrick Delaunay69ef98b2022-07-05 16:55:54 +02001506 clocks = <&usbphyc>, <&rcc USBH>;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001507 resets = <&rcc USBH_R>;
1508 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
1509 status = "disabled";
1510 };
1511
Patrick Delaunayf050e3f2021-01-11 12:33:36 +01001512 usbh_ehci: usb@5800d000 {
Patrick Delaunaya6743132018-07-09 15:17:19 +02001513 compatible = "generic-ehci";
1514 reg = <0x5800d000 0x1000>;
Patrick Delaunay69ef98b2022-07-05 16:55:54 +02001515 clocks = <&usbphyc>, <&rcc USBH>;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001516 resets = <&rcc USBH_R>;
1517 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
1518 companion = <&usbh_ohci>;
1519 status = "disabled";
1520 };
1521
Patrick Delaunaya6743132018-07-09 15:17:19 +02001522 ltdc: display-controller@5a001000 {
1523 compatible = "st,stm32-ltdc";
1524 reg = <0x5a001000 0x400>;
1525 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
1526 <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1527 clocks = <&rcc LTDC_PX>;
1528 clock-names = "lcd";
1529 resets = <&rcc LTDC_R>;
1530 status = "disabled";
Patrick Delaunay500327e2020-07-06 13:26:53 +02001531
1532 port {
1533 #address-cells = <1>;
1534 #size-cells = <0>;
1535 };
Patrick Delaunaya6743132018-07-09 15:17:19 +02001536 };
1537
Patrice Chotard23661602019-02-12 16:50:38 +01001538 iwdg2: watchdog@5a002000 {
1539 compatible = "st,stm32mp1-iwdg";
1540 reg = <0x5a002000 0x400>;
1541 clocks = <&rcc IWDG2>, <&rcc CK_LSI>;
1542 clock-names = "pclk", "lsi";
1543 status = "disabled";
1544 };
1545
Patrick Delaunaya6743132018-07-09 15:17:19 +02001546 usbphyc: usbphyc@5a006000 {
1547 #address-cells = <1>;
1548 #size-cells = <0>;
Patrick Delaunay7e549342021-06-29 12:01:07 +02001549 #clock-cells = <0>;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001550 compatible = "st,stm32mp1-usbphyc";
1551 reg = <0x5a006000 0x1000>;
1552 clocks = <&rcc USBPHY_K>;
1553 resets = <&rcc USBPHY_R>;
Patrick Delaunayc50151d2019-03-29 15:42:11 +01001554 vdda1v1-supply = <&reg11>;
1555 vdda1v8-supply = <&reg18>;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001556 status = "disabled";
1557
1558 usbphyc_port0: usb-phy@0 {
1559 #phy-cells = <0>;
1560 reg = <0>;
1561 };
1562
1563 usbphyc_port1: usb-phy@1 {
1564 #phy-cells = <1>;
1565 reg = <1>;
1566 };
1567 };
1568
1569 usart1: serial@5c000000 {
1570 compatible = "st,stm32h7-uart";
1571 reg = <0x5c000000 0x400>;
Patrick Delaunay7e549342021-06-29 12:01:07 +02001572 interrupts-extended = <&exti 26 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001573 clocks = <&rcc USART1_K>;
Patrick Delaunay7e549342021-06-29 12:01:07 +02001574 wakeup-source;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001575 status = "disabled";
1576 };
1577
Patrice Chotard23661602019-02-12 16:50:38 +01001578 spi6: spi@5c001000 {
1579 #address-cells = <1>;
1580 #size-cells = <0>;
1581 compatible = "st,stm32h7-spi";
1582 reg = <0x5c001000 0x400>;
1583 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
1584 clocks = <&rcc SPI6_K>;
1585 resets = <&rcc SPI6_R>;
1586 dmas = <&mdma1 34 0x0 0x40008 0x0 0x0>,
1587 <&mdma1 35 0x0 0x40002 0x0 0x0>;
1588 dma-names = "rx", "tx";
1589 status = "disabled";
1590 };
1591
Patrick Delaunaya6743132018-07-09 15:17:19 +02001592 i2c4: i2c@5c002000 {
Patrick Delaunay500327e2020-07-06 13:26:53 +02001593 compatible = "st,stm32mp15-i2c";
Patrick Delaunaya6743132018-07-09 15:17:19 +02001594 reg = <0x5c002000 0x400>;
1595 interrupt-names = "event", "error";
1596 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
1597 <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1598 clocks = <&rcc I2C4_K>;
1599 resets = <&rcc I2C4_R>;
1600 #address-cells = <1>;
1601 #size-cells = <0>;
Patrick Delaunay500327e2020-07-06 13:26:53 +02001602 st,syscfg-fmp = <&syscfg 0x4 0x8>;
Patrick Delaunay1b28a5e2020-04-30 15:52:46 +02001603 wakeup-source;
Patrick Delaunay7e549342021-06-29 12:01:07 +02001604 i2c-analog-filter;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001605 status = "disabled";
1606 };
1607
Patrice Chotard23661602019-02-12 16:50:38 +01001608 rtc: rtc@5c004000 {
1609 compatible = "st,stm32mp1-rtc";
1610 reg = <0x5c004000 0x400>;
1611 clocks = <&rcc RTCAPB>, <&rcc RTC>;
1612 clock-names = "pclk", "rtc_ck";
Patrick Delaunay189ec2f2022-04-26 15:38:05 +02001613 interrupts-extended = <&exti 19 IRQ_TYPE_LEVEL_HIGH>;
Patrice Chotard23661602019-02-12 16:50:38 +01001614 status = "disabled";
1615 };
1616
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +01001617 bsec: efuse@5c005000 {
Patrick Delaunaybfe1f082019-02-27 17:01:27 +01001618 compatible = "st,stm32mp15-bsec";
1619 reg = <0x5c005000 0x400>;
1620 #address-cells = <1>;
1621 #size-cells = <1>;
Patrick Delaunay6f2e0ad2020-05-25 12:19:42 +02001622 part_number_otp: part_number_otp@4 {
1623 reg = <0x4 0x1>;
1624 };
Patrick Delaunay35a54d42019-07-11 11:15:28 +02001625 ts_cal1: calib@5c {
1626 reg = <0x5c 0x2>;
1627 };
1628 ts_cal2: calib@5e {
1629 reg = <0x5e 0x2>;
1630 };
Patrick Delaunaybfe1f082019-02-27 17:01:27 +01001631 };
1632
Patrick Delaunaya6743132018-07-09 15:17:19 +02001633 i2c6: i2c@5c009000 {
Patrick Delaunay500327e2020-07-06 13:26:53 +02001634 compatible = "st,stm32mp15-i2c";
Patrick Delaunaya6743132018-07-09 15:17:19 +02001635 reg = <0x5c009000 0x400>;
1636 interrupt-names = "event", "error";
1637 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
1638 <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
1639 clocks = <&rcc I2C6_K>;
1640 resets = <&rcc I2C6_R>;
1641 #address-cells = <1>;
1642 #size-cells = <0>;
Patrick Delaunay500327e2020-07-06 13:26:53 +02001643 st,syscfg-fmp = <&syscfg 0x4 0x20>;
Patrick Delaunay1b28a5e2020-04-30 15:52:46 +02001644 wakeup-source;
Patrick Delaunay7e549342021-06-29 12:01:07 +02001645 i2c-analog-filter;
Patrick Delaunaya6743132018-07-09 15:17:19 +02001646 status = "disabled";
1647 };
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +01001648
Patrick Delaunayf050e3f2021-01-11 12:33:36 +01001649 tamp: tamp@5c00a000 {
1650 compatible = "st,stm32-tamp", "syscon", "simple-mfd";
1651 reg = <0x5c00a000 0x400>;
1652 };
1653
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +01001654 /*
1655 * Break node order to solve dependency probe issue between
1656 * pinctrl and exti.
1657 */
Patrick Delaunay69ef98b2022-07-05 16:55:54 +02001658 pinctrl: pinctrl@50002000 {
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +01001659 #address-cells = <1>;
1660 #size-cells = <1>;
1661 compatible = "st,stm32mp157-pinctrl";
1662 ranges = <0 0x50002000 0xa400>;
1663 interrupt-parent = <&exti>;
1664 st,syscfg = <&exti 0x60 0xff>;
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +01001665 pins-are-numbered;
1666
1667 gpioa: gpio@50002000 {
1668 gpio-controller;
1669 #gpio-cells = <2>;
1670 interrupt-controller;
1671 #interrupt-cells = <2>;
1672 reg = <0x0 0x400>;
1673 clocks = <&rcc GPIOA>;
1674 st,bank-name = "GPIOA";
1675 status = "disabled";
1676 };
1677
1678 gpiob: gpio@50003000 {
1679 gpio-controller;
1680 #gpio-cells = <2>;
1681 interrupt-controller;
1682 #interrupt-cells = <2>;
1683 reg = <0x1000 0x400>;
1684 clocks = <&rcc GPIOB>;
1685 st,bank-name = "GPIOB";
1686 status = "disabled";
1687 };
1688
1689 gpioc: gpio@50004000 {
1690 gpio-controller;
1691 #gpio-cells = <2>;
1692 interrupt-controller;
1693 #interrupt-cells = <2>;
1694 reg = <0x2000 0x400>;
1695 clocks = <&rcc GPIOC>;
1696 st,bank-name = "GPIOC";
1697 status = "disabled";
1698 };
1699
1700 gpiod: gpio@50005000 {
1701 gpio-controller;
1702 #gpio-cells = <2>;
1703 interrupt-controller;
1704 #interrupt-cells = <2>;
1705 reg = <0x3000 0x400>;
1706 clocks = <&rcc GPIOD>;
1707 st,bank-name = "GPIOD";
1708 status = "disabled";
1709 };
1710
1711 gpioe: gpio@50006000 {
1712 gpio-controller;
1713 #gpio-cells = <2>;
1714 interrupt-controller;
1715 #interrupt-cells = <2>;
1716 reg = <0x4000 0x400>;
1717 clocks = <&rcc GPIOE>;
1718 st,bank-name = "GPIOE";
1719 status = "disabled";
1720 };
1721
1722 gpiof: gpio@50007000 {
1723 gpio-controller;
1724 #gpio-cells = <2>;
1725 interrupt-controller;
1726 #interrupt-cells = <2>;
1727 reg = <0x5000 0x400>;
1728 clocks = <&rcc GPIOF>;
1729 st,bank-name = "GPIOF";
1730 status = "disabled";
1731 };
1732
1733 gpiog: gpio@50008000 {
1734 gpio-controller;
1735 #gpio-cells = <2>;
1736 interrupt-controller;
1737 #interrupt-cells = <2>;
1738 reg = <0x6000 0x400>;
1739 clocks = <&rcc GPIOG>;
1740 st,bank-name = "GPIOG";
1741 status = "disabled";
1742 };
1743
1744 gpioh: gpio@50009000 {
1745 gpio-controller;
1746 #gpio-cells = <2>;
1747 interrupt-controller;
1748 #interrupt-cells = <2>;
1749 reg = <0x7000 0x400>;
1750 clocks = <&rcc GPIOH>;
1751 st,bank-name = "GPIOH";
1752 status = "disabled";
1753 };
1754
1755 gpioi: gpio@5000a000 {
1756 gpio-controller;
1757 #gpio-cells = <2>;
1758 interrupt-controller;
1759 #interrupt-cells = <2>;
1760 reg = <0x8000 0x400>;
1761 clocks = <&rcc GPIOI>;
1762 st,bank-name = "GPIOI";
1763 status = "disabled";
1764 };
1765
1766 gpioj: gpio@5000b000 {
1767 gpio-controller;
1768 #gpio-cells = <2>;
1769 interrupt-controller;
1770 #interrupt-cells = <2>;
1771 reg = <0x9000 0x400>;
1772 clocks = <&rcc GPIOJ>;
1773 st,bank-name = "GPIOJ";
1774 status = "disabled";
1775 };
1776
1777 gpiok: gpio@5000c000 {
1778 gpio-controller;
1779 #gpio-cells = <2>;
1780 interrupt-controller;
1781 #interrupt-cells = <2>;
1782 reg = <0xa000 0x400>;
1783 clocks = <&rcc GPIOK>;
1784 st,bank-name = "GPIOK";
1785 status = "disabled";
1786 };
1787 };
1788
Patrick Delaunay69ef98b2022-07-05 16:55:54 +02001789 pinctrl_z: pinctrl@54004000 {
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +01001790 #address-cells = <1>;
1791 #size-cells = <1>;
1792 compatible = "st,stm32mp157-z-pinctrl";
1793 ranges = <0 0x54004000 0x400>;
1794 pins-are-numbered;
1795 interrupt-parent = <&exti>;
1796 st,syscfg = <&exti 0x60 0xff>;
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +01001797
1798 gpioz: gpio@54004000 {
1799 gpio-controller;
1800 #gpio-cells = <2>;
1801 interrupt-controller;
1802 #interrupt-cells = <2>;
1803 reg = <0 0x400>;
1804 clocks = <&rcc GPIOZ>;
1805 st,bank-name = "GPIOZ";
1806 st,bank-ioport = <11>;
1807 status = "disabled";
1808 };
1809 };
Patrick Delaunaya6743132018-07-09 15:17:19 +02001810 };
Patrick Delaunay5d2901a2019-08-02 15:07:18 +02001811
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +01001812 mlahb: ahb {
1813 compatible = "st,mlahb", "simple-bus";
Patrick Delaunay5d2901a2019-08-02 15:07:18 +02001814 #address-cells = <1>;
1815 #size-cells = <1>;
Patrick Delaunay1a4f57c2020-03-06 17:54:41 +01001816 ranges;
Patrick Delaunay5d2901a2019-08-02 15:07:18 +02001817 dma-ranges = <0x00000000 0x38000000 0x10000>,
1818 <0x10000000 0x10000000 0x60000>,
1819 <0x30000000 0x30000000 0x60000>;
1820
1821 m4_rproc: m4@10000000 {
1822 compatible = "st,stm32mp1-m4";
1823 reg = <0x10000000 0x40000>,
1824 <0x30000000 0x40000>,
1825 <0x38000000 0x10000>;
1826 resets = <&rcc MCU_R>;
1827 st,syscfg-holdboot = <&rcc 0x10C 0x1>;
1828 st,syscfg-tz = <&rcc 0x000 0x1>;
Patrick Delaunay500327e2020-07-06 13:26:53 +02001829 st,syscfg-pdds = <&pwr_mcu 0x0 0x1>;
Patrick Delaunayf050e3f2021-01-11 12:33:36 +01001830 st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>;
1831 st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>;
Patrick Delaunay5d2901a2019-08-02 15:07:18 +02001832 status = "disabled";
1833 };
1834 };
Patrick Delaunaya6743132018-07-09 15:17:19 +02001835};