blob: 21d11be328c098d932094fe15b73cf6705fefbcf [file] [log] [blame]
Patrick Delaunay50599142018-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 Delaunaydf0d20a2020-04-30 15:52:46 +020020 clock-frequency = <650000000>;
Patrick Delaunay50599142018-07-09 15:17:19 +020021 device_type = "cpu";
22 reg = <0>;
Patrick Delaunay0e20c1f2020-05-25 12:19:42 +020023 operating-points-v2 = <&cpu0_opp_table>;
24 nvmem-cells = <&part_number_otp>;
25 nvmem-cell-names = "part_number";
Patrick Delaunay50599142018-07-09 15:17:19 +020026 };
Patrick Delaunay50599142018-07-09 15:17:19 +020027 };
28
Patrick Delaunay0e20c1f2020-05-25 12:19:42 +020029 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>;
41 };
42 };
43
Patrick Delaunay6d397052021-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 Delaunay50599142018-07-09 15:17:19 +020051 psci {
Patrick Delaunay632341f2019-02-04 11:26:21 +010052 compatible = "arm,psci-1.0";
Patrick Delaunay50599142018-07-09 15:17:19 +020053 method = "smc";
Patrick Delaunay50599142018-07-09 15:17:19 +020054 };
55
Patrick Delaunay50599142018-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 Delaunay6f182192022-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 Delaunay50599142018-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 Delaunaya3705302019-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 Delaunay8c6e6132019-11-06 16:16:33 +0100130 booster: regulator-booster {
131 compatible = "st,stm32mp1-booster";
132 st,syscfg = <&syscfg>;
133 status = "disabled";
134 };
135
Patrick Delaunay50599142018-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>;
Patrick Delaunayd9db4cb2022-12-14 16:25:01 +0100148 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
149 interrupt-names = "global";
Patrick Delaunay50599142018-07-09 15:17:19 +0200150 clocks = <&rcc TIM2_K>;
151 clock-names = "int";
Patrick Delaunaya3705302019-07-11 11:15:28 +0200152 dmas = <&dmamux1 18 0x400 0x1>,
153 <&dmamux1 19 0x400 0x1>,
154 <&dmamux1 20 0x400 0x1>,
155 <&dmamux1 21 0x400 0x1>,
156 <&dmamux1 22 0x400 0x1>;
157 dma-names = "ch1", "ch2", "ch3", "ch4", "up";
Patrick Delaunay50599142018-07-09 15:17:19 +0200158 status = "disabled";
159
160 pwm {
161 compatible = "st,stm32-pwm";
Patrick Delaunay8c6e6132019-11-06 16:16:33 +0100162 #pwm-cells = <3>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200163 status = "disabled";
164 };
165
166 timer@1 {
167 compatible = "st,stm32h7-timer-trigger";
168 reg = <1>;
169 status = "disabled";
170 };
Patrick Delaunay48c5e902020-03-06 17:54:41 +0100171
172 counter {
173 compatible = "st,stm32-timer-counter";
174 status = "disabled";
175 };
Patrick Delaunay50599142018-07-09 15:17:19 +0200176 };
177
178 timers3: timer@40001000 {
179 #address-cells = <1>;
180 #size-cells = <0>;
181 compatible = "st,stm32-timers";
182 reg = <0x40001000 0x400>;
Patrick Delaunayd9db4cb2022-12-14 16:25:01 +0100183 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
184 interrupt-names = "global";
Patrick Delaunay50599142018-07-09 15:17:19 +0200185 clocks = <&rcc TIM3_K>;
186 clock-names = "int";
Patrick Delaunaya3705302019-07-11 11:15:28 +0200187 dmas = <&dmamux1 23 0x400 0x1>,
188 <&dmamux1 24 0x400 0x1>,
189 <&dmamux1 25 0x400 0x1>,
190 <&dmamux1 26 0x400 0x1>,
191 <&dmamux1 27 0x400 0x1>,
192 <&dmamux1 28 0x400 0x1>;
193 dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
Patrick Delaunay50599142018-07-09 15:17:19 +0200194 status = "disabled";
195
196 pwm {
197 compatible = "st,stm32-pwm";
Patrick Delaunay8c6e6132019-11-06 16:16:33 +0100198 #pwm-cells = <3>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200199 status = "disabled";
200 };
201
202 timer@2 {
203 compatible = "st,stm32h7-timer-trigger";
204 reg = <2>;
205 status = "disabled";
206 };
Patrick Delaunay48c5e902020-03-06 17:54:41 +0100207
208 counter {
209 compatible = "st,stm32-timer-counter";
210 status = "disabled";
211 };
Patrick Delaunay50599142018-07-09 15:17:19 +0200212 };
213
214 timers4: timer@40002000 {
215 #address-cells = <1>;
216 #size-cells = <0>;
217 compatible = "st,stm32-timers";
218 reg = <0x40002000 0x400>;
Patrick Delaunayd9db4cb2022-12-14 16:25:01 +0100219 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
220 interrupt-names = "global";
Patrick Delaunay50599142018-07-09 15:17:19 +0200221 clocks = <&rcc TIM4_K>;
222 clock-names = "int";
Patrick Delaunaya3705302019-07-11 11:15:28 +0200223 dmas = <&dmamux1 29 0x400 0x1>,
224 <&dmamux1 30 0x400 0x1>,
225 <&dmamux1 31 0x400 0x1>,
226 <&dmamux1 32 0x400 0x1>;
227 dma-names = "ch1", "ch2", "ch3", "ch4";
Patrick Delaunay50599142018-07-09 15:17:19 +0200228 status = "disabled";
229
230 pwm {
231 compatible = "st,stm32-pwm";
Patrick Delaunay8c6e6132019-11-06 16:16:33 +0100232 #pwm-cells = <3>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200233 status = "disabled";
234 };
235
236 timer@3 {
237 compatible = "st,stm32h7-timer-trigger";
238 reg = <3>;
239 status = "disabled";
240 };
Patrick Delaunay48c5e902020-03-06 17:54:41 +0100241
242 counter {
243 compatible = "st,stm32-timer-counter";
244 status = "disabled";
245 };
Patrick Delaunay50599142018-07-09 15:17:19 +0200246 };
247
248 timers5: timer@40003000 {
249 #address-cells = <1>;
250 #size-cells = <0>;
251 compatible = "st,stm32-timers";
252 reg = <0x40003000 0x400>;
Patrick Delaunayd9db4cb2022-12-14 16:25:01 +0100253 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
254 interrupt-names = "global";
Patrick Delaunay50599142018-07-09 15:17:19 +0200255 clocks = <&rcc TIM5_K>;
256 clock-names = "int";
Patrick Delaunaya3705302019-07-11 11:15:28 +0200257 dmas = <&dmamux1 55 0x400 0x1>,
258 <&dmamux1 56 0x400 0x1>,
259 <&dmamux1 57 0x400 0x1>,
260 <&dmamux1 58 0x400 0x1>,
261 <&dmamux1 59 0x400 0x1>,
262 <&dmamux1 60 0x400 0x1>;
263 dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
Patrick Delaunay50599142018-07-09 15:17:19 +0200264 status = "disabled";
265
266 pwm {
267 compatible = "st,stm32-pwm";
Patrick Delaunay8c6e6132019-11-06 16:16:33 +0100268 #pwm-cells = <3>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200269 status = "disabled";
270 };
271
272 timer@4 {
273 compatible = "st,stm32h7-timer-trigger";
274 reg = <4>;
275 status = "disabled";
276 };
Patrick Delaunay48c5e902020-03-06 17:54:41 +0100277
278 counter {
279 compatible = "st,stm32-timer-counter";
280 status = "disabled";
281 };
Patrick Delaunay50599142018-07-09 15:17:19 +0200282 };
283
284 timers6: timer@40004000 {
285 #address-cells = <1>;
286 #size-cells = <0>;
287 compatible = "st,stm32-timers";
288 reg = <0x40004000 0x400>;
Patrick Delaunayd9db4cb2022-12-14 16:25:01 +0100289 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
290 interrupt-names = "global";
Patrick Delaunay50599142018-07-09 15:17:19 +0200291 clocks = <&rcc TIM6_K>;
292 clock-names = "int";
Patrick Delaunaya3705302019-07-11 11:15:28 +0200293 dmas = <&dmamux1 69 0x400 0x1>;
294 dma-names = "up";
Patrick Delaunay50599142018-07-09 15:17:19 +0200295 status = "disabled";
296
297 timer@5 {
298 compatible = "st,stm32h7-timer-trigger";
299 reg = <5>;
300 status = "disabled";
301 };
302 };
303
304 timers7: timer@40005000 {
305 #address-cells = <1>;
306 #size-cells = <0>;
307 compatible = "st,stm32-timers";
308 reg = <0x40005000 0x400>;
Patrick Delaunayd9db4cb2022-12-14 16:25:01 +0100309 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
310 interrupt-names = "global";
Patrick Delaunay50599142018-07-09 15:17:19 +0200311 clocks = <&rcc TIM7_K>;
312 clock-names = "int";
Patrick Delaunaya3705302019-07-11 11:15:28 +0200313 dmas = <&dmamux1 70 0x400 0x1>;
314 dma-names = "up";
Patrick Delaunay50599142018-07-09 15:17:19 +0200315 status = "disabled";
316
317 timer@6 {
318 compatible = "st,stm32h7-timer-trigger";
319 reg = <6>;
320 status = "disabled";
321 };
322 };
323
324 timers12: timer@40006000 {
325 #address-cells = <1>;
326 #size-cells = <0>;
327 compatible = "st,stm32-timers";
328 reg = <0x40006000 0x400>;
Patrick Delaunayd9db4cb2022-12-14 16:25:01 +0100329 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
330 interrupt-names = "global";
Patrick Delaunay50599142018-07-09 15:17:19 +0200331 clocks = <&rcc TIM12_K>;
332 clock-names = "int";
333 status = "disabled";
334
335 pwm {
336 compatible = "st,stm32-pwm";
Patrick Delaunay8c6e6132019-11-06 16:16:33 +0100337 #pwm-cells = <3>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200338 status = "disabled";
339 };
340
341 timer@11 {
342 compatible = "st,stm32h7-timer-trigger";
343 reg = <11>;
344 status = "disabled";
345 };
346 };
347
348 timers13: timer@40007000 {
349 #address-cells = <1>;
350 #size-cells = <0>;
351 compatible = "st,stm32-timers";
352 reg = <0x40007000 0x400>;
Patrick Delaunayd9db4cb2022-12-14 16:25:01 +0100353 interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
354 interrupt-names = "global";
Patrick Delaunay50599142018-07-09 15:17:19 +0200355 clocks = <&rcc TIM13_K>;
356 clock-names = "int";
357 status = "disabled";
358
359 pwm {
360 compatible = "st,stm32-pwm";
Patrick Delaunay8c6e6132019-11-06 16:16:33 +0100361 #pwm-cells = <3>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200362 status = "disabled";
363 };
364
365 timer@12 {
366 compatible = "st,stm32h7-timer-trigger";
367 reg = <12>;
368 status = "disabled";
369 };
370 };
371
372 timers14: timer@40008000 {
373 #address-cells = <1>;
374 #size-cells = <0>;
375 compatible = "st,stm32-timers";
376 reg = <0x40008000 0x400>;
Patrick Delaunayd9db4cb2022-12-14 16:25:01 +0100377 interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
378 interrupt-names = "global";
Patrick Delaunay50599142018-07-09 15:17:19 +0200379 clocks = <&rcc TIM14_K>;
380 clock-names = "int";
381 status = "disabled";
382
383 pwm {
384 compatible = "st,stm32-pwm";
Patrick Delaunay8c6e6132019-11-06 16:16:33 +0100385 #pwm-cells = <3>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200386 status = "disabled";
387 };
388
389 timer@13 {
390 compatible = "st,stm32h7-timer-trigger";
391 reg = <13>;
392 status = "disabled";
393 };
394 };
395
396 lptimer1: timer@40009000 {
397 #address-cells = <1>;
398 #size-cells = <0>;
399 compatible = "st,stm32-lptimer";
400 reg = <0x40009000 0x400>;
Patrick Delaunay6d397052021-01-11 12:33:36 +0100401 interrupts-extended = <&exti 47 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200402 clocks = <&rcc LPTIM1_K>;
403 clock-names = "mux";
Patrick Delaunay6d397052021-01-11 12:33:36 +0100404 wakeup-source;
Patrick Delaunay50599142018-07-09 15:17:19 +0200405 status = "disabled";
406
407 pwm {
408 compatible = "st,stm32-pwm-lp";
409 #pwm-cells = <3>;
410 status = "disabled";
411 };
412
413 trigger@0 {
414 compatible = "st,stm32-lptimer-trigger";
415 reg = <0>;
416 status = "disabled";
417 };
418
419 counter {
420 compatible = "st,stm32-lptimer-counter";
421 status = "disabled";
422 };
423 };
424
Patrice Chotard00442d02019-02-12 16:50:38 +0100425 spi2: spi@4000b000 {
426 #address-cells = <1>;
427 #size-cells = <0>;
428 compatible = "st,stm32h7-spi";
429 reg = <0x4000b000 0x400>;
430 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
431 clocks = <&rcc SPI2_K>;
432 resets = <&rcc SPI2_R>;
433 dmas = <&dmamux1 39 0x400 0x05>,
434 <&dmamux1 40 0x400 0x05>;
435 dma-names = "rx", "tx";
436 status = "disabled";
437 };
438
Patrick Delaunay708cae72019-07-30 19:16:12 +0200439 i2s2: audio-controller@4000b000 {
440 compatible = "st,stm32h7-i2s";
441 #sound-dai-cells = <0>;
442 reg = <0x4000b000 0x400>;
443 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
444 dmas = <&dmamux1 39 0x400 0x01>,
445 <&dmamux1 40 0x400 0x01>;
446 dma-names = "rx", "tx";
447 status = "disabled";
448 };
449
Patrice Chotard00442d02019-02-12 16:50:38 +0100450 spi3: spi@4000c000 {
451 #address-cells = <1>;
452 #size-cells = <0>;
453 compatible = "st,stm32h7-spi";
454 reg = <0x4000c000 0x400>;
455 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
456 clocks = <&rcc SPI3_K>;
457 resets = <&rcc SPI3_R>;
458 dmas = <&dmamux1 61 0x400 0x05>,
459 <&dmamux1 62 0x400 0x05>;
460 dma-names = "rx", "tx";
461 status = "disabled";
462 };
463
Patrick Delaunay708cae72019-07-30 19:16:12 +0200464 i2s3: audio-controller@4000c000 {
465 compatible = "st,stm32h7-i2s";
466 #sound-dai-cells = <0>;
467 reg = <0x4000c000 0x400>;
468 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
469 dmas = <&dmamux1 61 0x400 0x01>,
470 <&dmamux1 62 0x400 0x01>;
471 dma-names = "rx", "tx";
472 status = "disabled";
473 };
474
Patrick Delaunaya3705302019-07-11 11:15:28 +0200475 spdifrx: audio-controller@4000d000 {
476 compatible = "st,stm32h7-spdifrx";
477 #sound-dai-cells = <0>;
478 reg = <0x4000d000 0x400>;
479 clocks = <&rcc SPDIF_K>;
480 clock-names = "kclk";
481 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
482 dmas = <&dmamux1 93 0x400 0x01>,
483 <&dmamux1 94 0x400 0x01>;
484 dma-names = "rx", "rx-ctrl";
485 status = "disabled";
486 };
487
Patrick Delaunay50599142018-07-09 15:17:19 +0200488 usart2: serial@4000e000 {
489 compatible = "st,stm32h7-uart";
490 reg = <0x4000e000 0x400>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200491 interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200492 clocks = <&rcc USART2_K>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200493 wakeup-source;
Patrick Delaunay6f182192022-04-26 15:38:05 +0200494 dmas = <&dmamux1 43 0x400 0x15>,
495 <&dmamux1 44 0x400 0x11>;
496 dma-names = "rx", "tx";
Patrick Delaunay50599142018-07-09 15:17:19 +0200497 status = "disabled";
498 };
499
500 usart3: serial@4000f000 {
501 compatible = "st,stm32h7-uart";
502 reg = <0x4000f000 0x400>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200503 interrupts-extended = <&exti 28 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200504 clocks = <&rcc USART3_K>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200505 wakeup-source;
Patrick Delaunay6f182192022-04-26 15:38:05 +0200506 dmas = <&dmamux1 45 0x400 0x15>,
507 <&dmamux1 46 0x400 0x11>;
508 dma-names = "rx", "tx";
Patrick Delaunay50599142018-07-09 15:17:19 +0200509 status = "disabled";
510 };
511
512 uart4: serial@40010000 {
513 compatible = "st,stm32h7-uart";
514 reg = <0x40010000 0x400>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200515 interrupts-extended = <&exti 30 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200516 clocks = <&rcc UART4_K>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200517 wakeup-source;
Patrick Delaunay6f182192022-04-26 15:38:05 +0200518 dmas = <&dmamux1 63 0x400 0x15>,
519 <&dmamux1 64 0x400 0x11>;
520 dma-names = "rx", "tx";
Patrick Delaunay50599142018-07-09 15:17:19 +0200521 status = "disabled";
522 };
523
524 uart5: serial@40011000 {
525 compatible = "st,stm32h7-uart";
526 reg = <0x40011000 0x400>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200527 interrupts-extended = <&exti 31 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200528 clocks = <&rcc UART5_K>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200529 wakeup-source;
Patrick Delaunay6f182192022-04-26 15:38:05 +0200530 dmas = <&dmamux1 65 0x400 0x15>,
531 <&dmamux1 66 0x400 0x11>;
532 dma-names = "rx", "tx";
Patrick Delaunay50599142018-07-09 15:17:19 +0200533 status = "disabled";
534 };
535
536 i2c1: i2c@40012000 {
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +0200537 compatible = "st,stm32mp15-i2c";
Patrick Delaunay50599142018-07-09 15:17:19 +0200538 reg = <0x40012000 0x400>;
539 interrupt-names = "event", "error";
540 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
541 <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
542 clocks = <&rcc I2C1_K>;
543 resets = <&rcc I2C1_R>;
544 #address-cells = <1>;
545 #size-cells = <0>;
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +0200546 st,syscfg-fmp = <&syscfg 0x4 0x1>;
Patrick Delaunaydf0d20a2020-04-30 15:52:46 +0200547 wakeup-source;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200548 i2c-analog-filter;
Patrick Delaunay50599142018-07-09 15:17:19 +0200549 status = "disabled";
550 };
551
552 i2c2: i2c@40013000 {
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +0200553 compatible = "st,stm32mp15-i2c";
Patrick Delaunay50599142018-07-09 15:17:19 +0200554 reg = <0x40013000 0x400>;
555 interrupt-names = "event", "error";
556 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
557 <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
558 clocks = <&rcc I2C2_K>;
559 resets = <&rcc I2C2_R>;
560 #address-cells = <1>;
561 #size-cells = <0>;
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +0200562 st,syscfg-fmp = <&syscfg 0x4 0x2>;
Patrick Delaunaydf0d20a2020-04-30 15:52:46 +0200563 wakeup-source;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200564 i2c-analog-filter;
Patrick Delaunay50599142018-07-09 15:17:19 +0200565 status = "disabled";
566 };
567
568 i2c3: i2c@40014000 {
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +0200569 compatible = "st,stm32mp15-i2c";
Patrick Delaunay50599142018-07-09 15:17:19 +0200570 reg = <0x40014000 0x400>;
571 interrupt-names = "event", "error";
572 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
573 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
574 clocks = <&rcc I2C3_K>;
575 resets = <&rcc I2C3_R>;
576 #address-cells = <1>;
577 #size-cells = <0>;
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +0200578 st,syscfg-fmp = <&syscfg 0x4 0x4>;
Patrick Delaunaydf0d20a2020-04-30 15:52:46 +0200579 wakeup-source;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200580 i2c-analog-filter;
Patrick Delaunay50599142018-07-09 15:17:19 +0200581 status = "disabled";
582 };
583
584 i2c5: i2c@40015000 {
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +0200585 compatible = "st,stm32mp15-i2c";
Patrick Delaunay50599142018-07-09 15:17:19 +0200586 reg = <0x40015000 0x400>;
587 interrupt-names = "event", "error";
588 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
589 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
590 clocks = <&rcc I2C5_K>;
591 resets = <&rcc I2C5_R>;
592 #address-cells = <1>;
593 #size-cells = <0>;
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +0200594 st,syscfg-fmp = <&syscfg 0x4 0x10>;
Patrick Delaunaydf0d20a2020-04-30 15:52:46 +0200595 wakeup-source;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200596 i2c-analog-filter;
Patrick Delaunay50599142018-07-09 15:17:19 +0200597 status = "disabled";
598 };
599
600 cec: cec@40016000 {
601 compatible = "st,stm32-cec";
602 reg = <0x40016000 0x400>;
603 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunaye25cbd42022-07-05 16:55:54 +0200604 clocks = <&rcc CEC_K>, <&rcc CEC>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200605 clock-names = "cec", "hdmi-cec";
606 status = "disabled";
607 };
608
609 dac: dac@40017000 {
610 compatible = "st,stm32h7-dac-core";
611 reg = <0x40017000 0x400>;
612 clocks = <&rcc DAC12>;
613 clock-names = "pclk";
614 #address-cells = <1>;
615 #size-cells = <0>;
616 status = "disabled";
617
618 dac1: dac@1 {
619 compatible = "st,stm32-dac";
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +0200620 #io-channel-cells = <1>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200621 reg = <1>;
622 status = "disabled";
623 };
624
625 dac2: dac@2 {
626 compatible = "st,stm32-dac";
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +0200627 #io-channel-cells = <1>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200628 reg = <2>;
629 status = "disabled";
630 };
631 };
632
633 uart7: serial@40018000 {
634 compatible = "st,stm32h7-uart";
635 reg = <0x40018000 0x400>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200636 interrupts-extended = <&exti 32 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200637 clocks = <&rcc UART7_K>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200638 wakeup-source;
Patrick Delaunay6f182192022-04-26 15:38:05 +0200639 dmas = <&dmamux1 79 0x400 0x15>,
640 <&dmamux1 80 0x400 0x11>;
641 dma-names = "rx", "tx";
Patrick Delaunay50599142018-07-09 15:17:19 +0200642 status = "disabled";
643 };
644
645 uart8: serial@40019000 {
646 compatible = "st,stm32h7-uart";
647 reg = <0x40019000 0x400>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200648 interrupts-extended = <&exti 33 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200649 clocks = <&rcc UART8_K>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200650 wakeup-source;
Patrick Delaunay6f182192022-04-26 15:38:05 +0200651 dmas = <&dmamux1 81 0x400 0x15>,
652 <&dmamux1 82 0x400 0x11>;
653 dma-names = "rx", "tx";
Patrick Delaunay50599142018-07-09 15:17:19 +0200654 status = "disabled";
655 };
656
657 timers1: timer@44000000 {
658 #address-cells = <1>;
659 #size-cells = <0>;
660 compatible = "st,stm32-timers";
661 reg = <0x44000000 0x400>;
Patrick Delaunayd9db4cb2022-12-14 16:25:01 +0100662 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
663 <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
664 <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
665 <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
666 interrupt-names = "brk", "up", "trg-com", "cc";
Patrick Delaunay50599142018-07-09 15:17:19 +0200667 clocks = <&rcc TIM1_K>;
668 clock-names = "int";
Patrick Delaunaya3705302019-07-11 11:15:28 +0200669 dmas = <&dmamux1 11 0x400 0x1>,
670 <&dmamux1 12 0x400 0x1>,
671 <&dmamux1 13 0x400 0x1>,
672 <&dmamux1 14 0x400 0x1>,
673 <&dmamux1 15 0x400 0x1>,
674 <&dmamux1 16 0x400 0x1>,
675 <&dmamux1 17 0x400 0x1>;
676 dma-names = "ch1", "ch2", "ch3", "ch4",
677 "up", "trig", "com";
Patrick Delaunay50599142018-07-09 15:17:19 +0200678 status = "disabled";
679
680 pwm {
681 compatible = "st,stm32-pwm";
Patrick Delaunay8c6e6132019-11-06 16:16:33 +0100682 #pwm-cells = <3>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200683 status = "disabled";
684 };
685
686 timer@0 {
687 compatible = "st,stm32h7-timer-trigger";
688 reg = <0>;
689 status = "disabled";
690 };
Patrick Delaunay48c5e902020-03-06 17:54:41 +0100691
692 counter {
693 compatible = "st,stm32-timer-counter";
694 status = "disabled";
695 };
Patrick Delaunay50599142018-07-09 15:17:19 +0200696 };
697
698 timers8: timer@44001000 {
699 #address-cells = <1>;
700 #size-cells = <0>;
701 compatible = "st,stm32-timers";
702 reg = <0x44001000 0x400>;
Patrick Delaunayd9db4cb2022-12-14 16:25:01 +0100703 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
704 <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
705 <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
706 <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
707 interrupt-names = "brk", "up", "trg-com", "cc";
Patrick Delaunay50599142018-07-09 15:17:19 +0200708 clocks = <&rcc TIM8_K>;
709 clock-names = "int";
Patrick Delaunaya3705302019-07-11 11:15:28 +0200710 dmas = <&dmamux1 47 0x400 0x1>,
711 <&dmamux1 48 0x400 0x1>,
712 <&dmamux1 49 0x400 0x1>,
713 <&dmamux1 50 0x400 0x1>,
714 <&dmamux1 51 0x400 0x1>,
715 <&dmamux1 52 0x400 0x1>,
716 <&dmamux1 53 0x400 0x1>;
717 dma-names = "ch1", "ch2", "ch3", "ch4",
718 "up", "trig", "com";
Patrick Delaunay50599142018-07-09 15:17:19 +0200719 status = "disabled";
720
721 pwm {
722 compatible = "st,stm32-pwm";
Patrick Delaunay8c6e6132019-11-06 16:16:33 +0100723 #pwm-cells = <3>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200724 status = "disabled";
725 };
726
727 timer@7 {
728 compatible = "st,stm32h7-timer-trigger";
729 reg = <7>;
730 status = "disabled";
731 };
Patrick Delaunay48c5e902020-03-06 17:54:41 +0100732
733 counter {
734 compatible = "st,stm32-timer-counter";
735 status = "disabled";
736 };
Patrick Delaunay50599142018-07-09 15:17:19 +0200737 };
738
739 usart6: serial@44003000 {
740 compatible = "st,stm32h7-uart";
741 reg = <0x44003000 0x400>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200742 interrupts-extended = <&exti 29 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200743 clocks = <&rcc USART6_K>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200744 wakeup-source;
Patrick Delaunay6f182192022-04-26 15:38:05 +0200745 dmas = <&dmamux1 71 0x400 0x15>,
746 <&dmamux1 72 0x400 0x11>;
747 dma-names = "rx", "tx";
Patrick Delaunay50599142018-07-09 15:17:19 +0200748 status = "disabled";
749 };
750
Patrice Chotard00442d02019-02-12 16:50:38 +0100751 spi1: spi@44004000 {
752 #address-cells = <1>;
753 #size-cells = <0>;
754 compatible = "st,stm32h7-spi";
755 reg = <0x44004000 0x400>;
756 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
757 clocks = <&rcc SPI1_K>;
758 resets = <&rcc SPI1_R>;
759 dmas = <&dmamux1 37 0x400 0x05>,
760 <&dmamux1 38 0x400 0x05>;
761 dma-names = "rx", "tx";
762 status = "disabled";
763 };
764
Patrick Delaunay708cae72019-07-30 19:16:12 +0200765 i2s1: audio-controller@44004000 {
766 compatible = "st,stm32h7-i2s";
767 #sound-dai-cells = <0>;
768 reg = <0x44004000 0x400>;
769 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
770 dmas = <&dmamux1 37 0x400 0x01>,
771 <&dmamux1 38 0x400 0x01>;
772 dma-names = "rx", "tx";
773 status = "disabled";
774 };
775
Patrice Chotard00442d02019-02-12 16:50:38 +0100776 spi4: spi@44005000 {
777 #address-cells = <1>;
778 #size-cells = <0>;
779 compatible = "st,stm32h7-spi";
780 reg = <0x44005000 0x400>;
781 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
782 clocks = <&rcc SPI4_K>;
783 resets = <&rcc SPI4_R>;
784 dmas = <&dmamux1 83 0x400 0x05>,
785 <&dmamux1 84 0x400 0x05>;
786 dma-names = "rx", "tx";
787 status = "disabled";
788 };
789
Patrick Delaunay50599142018-07-09 15:17:19 +0200790 timers15: timer@44006000 {
791 #address-cells = <1>;
792 #size-cells = <0>;
793 compatible = "st,stm32-timers";
794 reg = <0x44006000 0x400>;
Patrick Delaunayd9db4cb2022-12-14 16:25:01 +0100795 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
796 interrupt-names = "global";
Patrick Delaunay50599142018-07-09 15:17:19 +0200797 clocks = <&rcc TIM15_K>;
798 clock-names = "int";
Patrick Delaunaya3705302019-07-11 11:15:28 +0200799 dmas = <&dmamux1 105 0x400 0x1>,
800 <&dmamux1 106 0x400 0x1>,
801 <&dmamux1 107 0x400 0x1>,
802 <&dmamux1 108 0x400 0x1>;
803 dma-names = "ch1", "up", "trig", "com";
Patrick Delaunay50599142018-07-09 15:17:19 +0200804 status = "disabled";
805
806 pwm {
807 compatible = "st,stm32-pwm";
Patrick Delaunay8c6e6132019-11-06 16:16:33 +0100808 #pwm-cells = <3>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200809 status = "disabled";
810 };
811
812 timer@14 {
813 compatible = "st,stm32h7-timer-trigger";
814 reg = <14>;
815 status = "disabled";
816 };
817 };
818
819 timers16: timer@44007000 {
820 #address-cells = <1>;
821 #size-cells = <0>;
822 compatible = "st,stm32-timers";
823 reg = <0x44007000 0x400>;
Patrick Delaunayd9db4cb2022-12-14 16:25:01 +0100824 interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
825 interrupt-names = "global";
Patrick Delaunay50599142018-07-09 15:17:19 +0200826 clocks = <&rcc TIM16_K>;
827 clock-names = "int";
Patrick Delaunaya3705302019-07-11 11:15:28 +0200828 dmas = <&dmamux1 109 0x400 0x1>,
829 <&dmamux1 110 0x400 0x1>;
830 dma-names = "ch1", "up";
Patrick Delaunay50599142018-07-09 15:17:19 +0200831 status = "disabled";
832
833 pwm {
834 compatible = "st,stm32-pwm";
Patrick Delaunay8c6e6132019-11-06 16:16:33 +0100835 #pwm-cells = <3>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200836 status = "disabled";
837 };
838 timer@15 {
839 compatible = "st,stm32h7-timer-trigger";
840 reg = <15>;
841 status = "disabled";
842 };
843 };
844
845 timers17: timer@44008000 {
846 #address-cells = <1>;
847 #size-cells = <0>;
848 compatible = "st,stm32-timers";
849 reg = <0x44008000 0x400>;
Patrick Delaunayd9db4cb2022-12-14 16:25:01 +0100850 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
851 interrupt-names = "global";
Patrick Delaunay50599142018-07-09 15:17:19 +0200852 clocks = <&rcc TIM17_K>;
853 clock-names = "int";
Patrick Delaunaya3705302019-07-11 11:15:28 +0200854 dmas = <&dmamux1 111 0x400 0x1>,
855 <&dmamux1 112 0x400 0x1>;
856 dma-names = "ch1", "up";
Patrick Delaunay50599142018-07-09 15:17:19 +0200857 status = "disabled";
858
859 pwm {
860 compatible = "st,stm32-pwm";
Patrick Delaunay8c6e6132019-11-06 16:16:33 +0100861 #pwm-cells = <3>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200862 status = "disabled";
863 };
864
865 timer@16 {
866 compatible = "st,stm32h7-timer-trigger";
867 reg = <16>;
868 status = "disabled";
869 };
Patrice Chotard00442d02019-02-12 16:50:38 +0100870 };
871
872 spi5: spi@44009000 {
873 #address-cells = <1>;
874 #size-cells = <0>;
875 compatible = "st,stm32h7-spi";
876 reg = <0x44009000 0x400>;
877 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
878 clocks = <&rcc SPI5_K>;
879 resets = <&rcc SPI5_R>;
880 dmas = <&dmamux1 85 0x400 0x05>,
881 <&dmamux1 86 0x400 0x05>;
882 dma-names = "rx", "tx";
883 status = "disabled";
Patrick Delaunay708cae72019-07-30 19:16:12 +0200884 };
885
886 sai1: sai@4400a000 {
887 compatible = "st,stm32h7-sai";
888 #address-cells = <1>;
889 #size-cells = <1>;
890 ranges = <0 0x4400a000 0x400>;
891 reg = <0x4400a000 0x4>, <0x4400a3f0 0x10>;
892 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
893 resets = <&rcc SAI1_R>;
894 status = "disabled";
895
896 sai1a: audio-controller@4400a004 {
897 #sound-dai-cells = <0>;
898
899 compatible = "st,stm32-sai-sub-a";
Patrick Delaunay37868aa2021-12-17 16:30:22 +0100900 reg = <0x4 0x20>;
Patrick Delaunay708cae72019-07-30 19:16:12 +0200901 clocks = <&rcc SAI1_K>;
902 clock-names = "sai_ck";
903 dmas = <&dmamux1 87 0x400 0x01>;
904 status = "disabled";
905 };
906
907 sai1b: audio-controller@4400a024 {
908 #sound-dai-cells = <0>;
909 compatible = "st,stm32-sai-sub-b";
Patrick Delaunay37868aa2021-12-17 16:30:22 +0100910 reg = <0x24 0x20>;
Patrick Delaunay708cae72019-07-30 19:16:12 +0200911 clocks = <&rcc SAI1_K>;
912 clock-names = "sai_ck";
913 dmas = <&dmamux1 88 0x400 0x01>;
914 status = "disabled";
915 };
916 };
917
918 sai2: sai@4400b000 {
919 compatible = "st,stm32h7-sai";
920 #address-cells = <1>;
921 #size-cells = <1>;
922 ranges = <0 0x4400b000 0x400>;
923 reg = <0x4400b000 0x4>, <0x4400b3f0 0x10>;
924 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
925 resets = <&rcc SAI2_R>;
926 status = "disabled";
927
928 sai2a: audio-controller@4400b004 {
929 #sound-dai-cells = <0>;
930 compatible = "st,stm32-sai-sub-a";
Patrick Delaunay37868aa2021-12-17 16:30:22 +0100931 reg = <0x4 0x20>;
Patrick Delaunay708cae72019-07-30 19:16:12 +0200932 clocks = <&rcc SAI2_K>;
933 clock-names = "sai_ck";
934 dmas = <&dmamux1 89 0x400 0x01>;
935 status = "disabled";
936 };
937
938 sai2b: audio-controller@4400b024 {
939 #sound-dai-cells = <0>;
940 compatible = "st,stm32-sai-sub-b";
Patrick Delaunay37868aa2021-12-17 16:30:22 +0100941 reg = <0x24 0x20>;
Patrick Delaunay708cae72019-07-30 19:16:12 +0200942 clocks = <&rcc SAI2_K>;
943 clock-names = "sai_ck";
944 dmas = <&dmamux1 90 0x400 0x01>;
945 status = "disabled";
946 };
947 };
948
949 sai3: sai@4400c000 {
950 compatible = "st,stm32h7-sai";
951 #address-cells = <1>;
952 #size-cells = <1>;
953 ranges = <0 0x4400c000 0x400>;
954 reg = <0x4400c000 0x4>, <0x4400c3f0 0x10>;
955 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
956 resets = <&rcc SAI3_R>;
957 status = "disabled";
958
959 sai3a: audio-controller@4400c004 {
960 #sound-dai-cells = <0>;
961 compatible = "st,stm32-sai-sub-a";
Patrick Delaunay37868aa2021-12-17 16:30:22 +0100962 reg = <0x04 0x20>;
Patrick Delaunay708cae72019-07-30 19:16:12 +0200963 clocks = <&rcc SAI3_K>;
964 clock-names = "sai_ck";
965 dmas = <&dmamux1 113 0x400 0x01>;
966 status = "disabled";
967 };
968
969 sai3b: audio-controller@4400c024 {
970 #sound-dai-cells = <0>;
971 compatible = "st,stm32-sai-sub-b";
Patrick Delaunay37868aa2021-12-17 16:30:22 +0100972 reg = <0x24 0x20>;
Patrick Delaunay708cae72019-07-30 19:16:12 +0200973 clocks = <&rcc SAI3_K>;
974 clock-names = "sai_ck";
975 dmas = <&dmamux1 114 0x400 0x01>;
976 status = "disabled";
977 };
Patrice Chotard00442d02019-02-12 16:50:38 +0100978 };
979
980 dfsdm: dfsdm@4400d000 {
981 compatible = "st,stm32mp1-dfsdm";
982 reg = <0x4400d000 0x800>;
983 clocks = <&rcc DFSDM_K>;
984 clock-names = "dfsdm";
985 #address-cells = <1>;
986 #size-cells = <0>;
987 status = "disabled";
988
989 dfsdm0: filter@0 {
990 compatible = "st,stm32-dfsdm-adc";
991 #io-channel-cells = <1>;
992 reg = <0>;
993 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
994 dmas = <&dmamux1 101 0x400 0x01>;
995 dma-names = "rx";
996 status = "disabled";
997 };
998
999 dfsdm1: filter@1 {
1000 compatible = "st,stm32-dfsdm-adc";
1001 #io-channel-cells = <1>;
1002 reg = <1>;
1003 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
1004 dmas = <&dmamux1 102 0x400 0x01>;
1005 dma-names = "rx";
1006 status = "disabled";
1007 };
1008
1009 dfsdm2: filter@2 {
1010 compatible = "st,stm32-dfsdm-adc";
1011 #io-channel-cells = <1>;
1012 reg = <2>;
1013 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
1014 dmas = <&dmamux1 103 0x400 0x01>;
1015 dma-names = "rx";
1016 status = "disabled";
1017 };
1018
1019 dfsdm3: filter@3 {
1020 compatible = "st,stm32-dfsdm-adc";
1021 #io-channel-cells = <1>;
1022 reg = <3>;
1023 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
1024 dmas = <&dmamux1 104 0x400 0x01>;
1025 dma-names = "rx";
1026 status = "disabled";
1027 };
1028
1029 dfsdm4: filter@4 {
1030 compatible = "st,stm32-dfsdm-adc";
1031 #io-channel-cells = <1>;
1032 reg = <4>;
1033 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
1034 dmas = <&dmamux1 91 0x400 0x01>;
1035 dma-names = "rx";
1036 status = "disabled";
1037 };
1038
1039 dfsdm5: filter@5 {
1040 compatible = "st,stm32-dfsdm-adc";
1041 #io-channel-cells = <1>;
1042 reg = <5>;
1043 interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
1044 dmas = <&dmamux1 92 0x400 0x01>;
1045 dma-names = "rx";
1046 status = "disabled";
1047 };
Patrick Delaunay50599142018-07-09 15:17:19 +02001048 };
1049
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001050 dma1: dma-controller@48000000 {
Patrick Delaunay50599142018-07-09 15:17:19 +02001051 compatible = "st,stm32-dma";
1052 reg = <0x48000000 0x400>;
1053 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
1054 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
1055 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
1056 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
1057 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
1058 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
1059 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
1060 <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
1061 clocks = <&rcc DMA1>;
Patrick Delaunaydf0d20a2020-04-30 15:52:46 +02001062 resets = <&rcc DMA1_R>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001063 #dma-cells = <4>;
1064 st,mem2mem;
1065 dma-requests = <8>;
1066 };
1067
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001068 dma2: dma-controller@48001000 {
Patrick Delaunay50599142018-07-09 15:17:19 +02001069 compatible = "st,stm32-dma";
1070 reg = <0x48001000 0x400>;
1071 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
1072 <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
1073 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
1074 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
1075 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
1076 <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
1077 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
1078 <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
1079 clocks = <&rcc DMA2>;
Patrick Delaunaydf0d20a2020-04-30 15:52:46 +02001080 resets = <&rcc DMA2_R>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001081 #dma-cells = <4>;
1082 st,mem2mem;
1083 dma-requests = <8>;
1084 };
1085
1086 dmamux1: dma-router@48002000 {
1087 compatible = "st,stm32h7-dmamux";
Patrick Delaunay6d397052021-01-11 12:33:36 +01001088 reg = <0x48002000 0x40>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001089 #dma-cells = <3>;
1090 dma-requests = <128>;
1091 dma-masters = <&dma1 &dma2>;
1092 dma-channels = <16>;
1093 clocks = <&rcc DMAMUX>;
Patrick Delaunaydf0d20a2020-04-30 15:52:46 +02001094 resets = <&rcc DMAMUX_R>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001095 };
1096
Patrice Chotardb5c87a42018-08-06 09:54:04 +02001097 adc: adc@48003000 {
1098 compatible = "st,stm32mp1-adc-core";
1099 reg = <0x48003000 0x400>;
1100 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
1101 <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
1102 clocks = <&rcc ADC12>, <&rcc ADC12_K>;
1103 clock-names = "bus", "adc";
1104 interrupt-controller;
Patrick Delaunay8c6e6132019-11-06 16:16:33 +01001105 st,syscfg = <&syscfg>;
Patrice Chotardb5c87a42018-08-06 09:54:04 +02001106 #interrupt-cells = <1>;
1107 #address-cells = <1>;
1108 #size-cells = <0>;
1109 status = "disabled";
1110
1111 adc1: adc@0 {
1112 compatible = "st,stm32mp1-adc";
1113 #io-channel-cells = <1>;
1114 reg = <0x0>;
1115 interrupt-parent = <&adc>;
1116 interrupts = <0>;
Patrice Chotard00442d02019-02-12 16:50:38 +01001117 dmas = <&dmamux1 9 0x400 0x01>;
1118 dma-names = "rx";
Patrice Chotardb5c87a42018-08-06 09:54:04 +02001119 status = "disabled";
1120 };
1121
1122 adc2: adc@100 {
1123 compatible = "st,stm32mp1-adc";
1124 #io-channel-cells = <1>;
1125 reg = <0x100>;
1126 interrupt-parent = <&adc>;
1127 interrupts = <1>;
Patrice Chotard00442d02019-02-12 16:50:38 +01001128 dmas = <&dmamux1 10 0x400 0x01>;
1129 dma-names = "rx";
Patrice Chotardb5c87a42018-08-06 09:54:04 +02001130 status = "disabled";
1131 };
1132 };
1133
Patrick Delaunaye48a0d42021-06-29 12:01:07 +02001134 sdmmc3: mmc@48004000 {
Patrick Delaunay6f182192022-04-26 15:38:05 +02001135 compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
Patrick Delaunay6d397052021-01-11 12:33:36 +01001136 arm,primecell-periphid = <0x00253180>;
Patrick Delaunaya3705302019-07-11 11:15:28 +02001137 reg = <0x48004000 0x400>;
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001138 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001139 clocks = <&rcc SDMMC3_K>;
Patrick Delaunaya3705302019-07-11 11:15:28 +02001140 clock-names = "apb_pclk";
Patrick Delaunay50599142018-07-09 15:17:19 +02001141 resets = <&rcc SDMMC3_R>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001142 cap-sd-highspeed;
1143 cap-mmc-highspeed;
1144 max-frequency = <120000000>;
1145 status = "disabled";
1146 };
1147
Patrice Chotard18cb6f52018-08-10 17:12:11 +02001148 usbotg_hs: usb-otg@49000000 {
Patrick Delaunaydf0d20a2020-04-30 15:52:46 +02001149 compatible = "st,stm32mp15-hsotg", "snps,dwc2";
Patrice Chotard18cb6f52018-08-10 17:12:11 +02001150 reg = <0x49000000 0x10000>;
Patrick Delaunay4597d262023-07-10 10:38:45 +02001151 clocks = <&rcc USBO_K>, <&usbphyc>;
1152 clock-names = "otg", "utmi";
Patrice Chotard18cb6f52018-08-10 17:12:11 +02001153 resets = <&rcc USBO_R>;
1154 reset-names = "dwc2";
1155 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay6d397052021-01-11 12:33:36 +01001156 g-rx-fifo-size = <512>;
Patrice Chotard18cb6f52018-08-10 17:12:11 +02001157 g-np-tx-fifo-size = <32>;
Patrick Delaunay6d397052021-01-11 12:33:36 +01001158 g-tx-fifo-size = <256 16 16 16 16 16 16 16>;
Patrice Chotard18cb6f52018-08-10 17:12:11 +02001159 dr_mode = "otg";
Patrick Delaunay37868aa2021-12-17 16:30:22 +01001160 otg-rev = <0x200>;
Patrick Delaunay6ba88cd2019-03-29 15:42:11 +01001161 usb33d-supply = <&usb33>;
Patrice Chotard18cb6f52018-08-10 17:12:11 +02001162 status = "disabled";
1163 };
1164
Benjamin Gaignard77611122018-11-27 13:49:52 +01001165 hwspinlock: hwspinlock@4c000000 {
1166 compatible = "st,stm32-hwspinlock";
1167 #hwlock-cells = <1>;
1168 reg = <0x4c000000 0x400>;
1169 clocks = <&rcc HSEM>;
1170 clock-names = "hwspinlock";
Benjamin Gaignard77611122018-11-27 13:49:52 +01001171 };
1172
Fabien Dessennec2a97d32019-05-14 11:20:37 +02001173 ipcc: mailbox@4c001000 {
1174 compatible = "st,stm32mp1-ipcc";
1175 #mbox-cells = <1>;
1176 reg = <0x4c001000 0x400>;
1177 st,proc-id = <0>;
1178 interrupts-extended =
Patrick Delaunay75785d42022-09-07 13:42:23 +02001179 <&exti 61 1>,
1180 <&intc GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
1181 interrupt-names = "rx", "tx";
Fabien Dessennec2a97d32019-05-14 11:20:37 +02001182 clocks = <&rcc IPCC>;
Patrick Delaunaya3705302019-07-11 11:15:28 +02001183 wakeup-source;
Fabien Dessennec2a97d32019-05-14 11:20:37 +02001184 status = "disabled";
1185 };
1186
Patrick Delaunay708cae72019-07-30 19:16:12 +02001187 dcmi: dcmi@4c006000 {
1188 compatible = "st,stm32-dcmi";
1189 reg = <0x4c006000 0x400>;
1190 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
1191 resets = <&rcc CAMITF_R>;
1192 clocks = <&rcc DCMI>;
1193 clock-names = "mclk";
Patrick Delaunay6d397052021-01-11 12:33:36 +01001194 dmas = <&dmamux1 75 0x400 0x01>;
Patrick Delaunay708cae72019-07-30 19:16:12 +02001195 dma-names = "tx";
1196 status = "disabled";
1197 };
1198
Patrick Delaunay50599142018-07-09 15:17:19 +02001199 rcc: rcc@50000000 {
1200 compatible = "st,stm32mp1-rcc", "syscon";
1201 reg = <0x50000000 0x1000>;
1202 #clock-cells = <1>;
1203 #reset-cells = <1>;
Etienne Carriere212d3aa2021-02-24 11:19:41 +01001204
1205 clock-names = "hse", "hsi", "csi", "lse", "lsi";
1206 clocks = <&clk_hse>, <&clk_hsi>, <&clk_csi>,
1207 <&clk_lse>, <&clk_lsi>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001208 };
1209
Patrick Delaunay900494d2020-01-28 10:10:59 +01001210 pwr_regulators: pwr@50001000 {
1211 compatible = "st,stm32mp1,pwr-reg";
1212 reg = <0x50001000 0x10>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001213
Patrick Delaunay900494d2020-01-28 10:10:59 +01001214 reg11: reg11 {
1215 regulator-name = "reg11";
1216 regulator-min-microvolt = <1100000>;
1217 regulator-max-microvolt = <1100000>;
1218 };
Patrick Delaunay50599142018-07-09 15:17:19 +02001219
Patrick Delaunay900494d2020-01-28 10:10:59 +01001220 reg18: reg18 {
1221 regulator-name = "reg18";
1222 regulator-min-microvolt = <1800000>;
1223 regulator-max-microvolt = <1800000>;
1224 };
Patrick Delaunay50599142018-07-09 15:17:19 +02001225
Patrick Delaunay900494d2020-01-28 10:10:59 +01001226 usb33: usb33 {
1227 regulator-name = "usb33";
1228 regulator-min-microvolt = <3300000>;
1229 regulator-max-microvolt = <3300000>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001230 };
1231 };
1232
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +02001233 pwr_mcu: pwr_mcu@50001014 {
Patrick Delaunay551efca2020-09-16 10:01:32 +02001234 compatible = "st,stm32mp151-pwr-mcu", "syscon";
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +02001235 reg = <0x50001014 0x4>;
1236 };
1237
Patrick Delaunay50599142018-07-09 15:17:19 +02001238 exti: interrupt-controller@5000d000 {
1239 compatible = "st,stm32mp1-exti", "syscon";
1240 interrupt-controller;
1241 #interrupt-cells = <2>;
1242 reg = <0x5000d000 0x400>;
1243 };
1244
Patrice Chotard00442d02019-02-12 16:50:38 +01001245 syscfg: syscon@50020000 {
Patrick Delaunay63ae49e2019-02-27 17:01:23 +01001246 compatible = "st,stm32mp157-syscfg", "syscon";
Patrick Delaunay50599142018-07-09 15:17:19 +02001247 reg = <0x50020000 0x400>;
Patrick Delaunaya3705302019-07-11 11:15:28 +02001248 clocks = <&rcc SYSCFG>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001249 };
1250
1251 lptimer2: timer@50021000 {
1252 #address-cells = <1>;
1253 #size-cells = <0>;
1254 compatible = "st,stm32-lptimer";
1255 reg = <0x50021000 0x400>;
Patrick Delaunay6d397052021-01-11 12:33:36 +01001256 interrupts-extended = <&exti 48 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001257 clocks = <&rcc LPTIM2_K>;
1258 clock-names = "mux";
Patrick Delaunay6d397052021-01-11 12:33:36 +01001259 wakeup-source;
Patrick Delaunay50599142018-07-09 15:17:19 +02001260 status = "disabled";
1261
1262 pwm {
1263 compatible = "st,stm32-pwm-lp";
1264 #pwm-cells = <3>;
1265 status = "disabled";
1266 };
1267
1268 trigger@1 {
1269 compatible = "st,stm32-lptimer-trigger";
1270 reg = <1>;
1271 status = "disabled";
1272 };
1273
1274 counter {
1275 compatible = "st,stm32-lptimer-counter";
1276 status = "disabled";
1277 };
1278 };
1279
1280 lptimer3: timer@50022000 {
1281 #address-cells = <1>;
1282 #size-cells = <0>;
1283 compatible = "st,stm32-lptimer";
1284 reg = <0x50022000 0x400>;
Patrick Delaunay6d397052021-01-11 12:33:36 +01001285 interrupts-extended = <&exti 50 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001286 clocks = <&rcc LPTIM3_K>;
1287 clock-names = "mux";
Patrick Delaunay6d397052021-01-11 12:33:36 +01001288 wakeup-source;
Patrick Delaunay50599142018-07-09 15:17:19 +02001289 status = "disabled";
1290
1291 pwm {
1292 compatible = "st,stm32-pwm-lp";
1293 #pwm-cells = <3>;
1294 status = "disabled";
1295 };
1296
1297 trigger@2 {
1298 compatible = "st,stm32-lptimer-trigger";
1299 reg = <2>;
1300 status = "disabled";
1301 };
1302 };
1303
1304 lptimer4: timer@50023000 {
1305 compatible = "st,stm32-lptimer";
1306 reg = <0x50023000 0x400>;
Patrick Delaunay6d397052021-01-11 12:33:36 +01001307 interrupts-extended = <&exti 52 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001308 clocks = <&rcc LPTIM4_K>;
1309 clock-names = "mux";
Patrick Delaunay6d397052021-01-11 12:33:36 +01001310 wakeup-source;
Patrick Delaunay50599142018-07-09 15:17:19 +02001311 status = "disabled";
1312
1313 pwm {
1314 compatible = "st,stm32-pwm-lp";
1315 #pwm-cells = <3>;
1316 status = "disabled";
1317 };
1318 };
1319
1320 lptimer5: timer@50024000 {
1321 compatible = "st,stm32-lptimer";
1322 reg = <0x50024000 0x400>;
Patrick Delaunay6d397052021-01-11 12:33:36 +01001323 interrupts-extended = <&exti 53 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001324 clocks = <&rcc LPTIM5_K>;
1325 clock-names = "mux";
Patrick Delaunay6d397052021-01-11 12:33:36 +01001326 wakeup-source;
Patrick Delaunay50599142018-07-09 15:17:19 +02001327 status = "disabled";
1328
1329 pwm {
1330 compatible = "st,stm32-pwm-lp";
1331 #pwm-cells = <3>;
1332 status = "disabled";
1333 };
1334 };
1335
1336 vrefbuf: vrefbuf@50025000 {
1337 compatible = "st,stm32-vrefbuf";
1338 reg = <0x50025000 0x8>;
1339 regulator-min-microvolt = <1500000>;
1340 regulator-max-microvolt = <2500000>;
1341 clocks = <&rcc VREF>;
1342 status = "disabled";
Patrick Delaunay708cae72019-07-30 19:16:12 +02001343 };
1344
1345 sai4: sai@50027000 {
1346 compatible = "st,stm32h7-sai";
1347 #address-cells = <1>;
1348 #size-cells = <1>;
1349 ranges = <0 0x50027000 0x400>;
1350 reg = <0x50027000 0x4>, <0x500273f0 0x10>;
1351 interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
1352 resets = <&rcc SAI4_R>;
1353 status = "disabled";
1354
1355 sai4a: audio-controller@50027004 {
1356 #sound-dai-cells = <0>;
1357 compatible = "st,stm32-sai-sub-a";
Patrick Delaunay37868aa2021-12-17 16:30:22 +01001358 reg = <0x04 0x20>;
Patrick Delaunay708cae72019-07-30 19:16:12 +02001359 clocks = <&rcc SAI4_K>;
1360 clock-names = "sai_ck";
1361 dmas = <&dmamux1 99 0x400 0x01>;
1362 status = "disabled";
1363 };
1364
1365 sai4b: audio-controller@50027024 {
1366 #sound-dai-cells = <0>;
1367 compatible = "st,stm32-sai-sub-b";
Patrick Delaunay37868aa2021-12-17 16:30:22 +01001368 reg = <0x24 0x20>;
Patrick Delaunay708cae72019-07-30 19:16:12 +02001369 clocks = <&rcc SAI4_K>;
1370 clock-names = "sai_ck";
1371 dmas = <&dmamux1 100 0x400 0x01>;
1372 status = "disabled";
1373 };
Patrick Delaunay50599142018-07-09 15:17:19 +02001374 };
1375
Patrick Delaunaya3705302019-07-11 11:15:28 +02001376 dts: thermal@50028000 {
1377 compatible = "st,stm32-thermal";
1378 reg = <0x50028000 0x100>;
1379 interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
1380 clocks = <&rcc TMPSENS>;
1381 clock-names = "pclk";
1382 #thermal-sensor-cells = <0>;
1383 status = "disabled";
1384 };
1385
Patrice Chotard00442d02019-02-12 16:50:38 +01001386 hash1: hash@54002000 {
1387 compatible = "st,stm32f756-hash";
1388 reg = <0x54002000 0x400>;
1389 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
1390 clocks = <&rcc HASH1>;
1391 resets = <&rcc HASH1_R>;
Patrick Delaunay6d397052021-01-11 12:33:36 +01001392 dmas = <&mdma1 31 0x2 0x1000A02 0x0 0x0>;
Patrice Chotard00442d02019-02-12 16:50:38 +01001393 dma-names = "in";
1394 dma-maxburst = <2>;
1395 status = "disabled";
1396 };
1397
Patrick Delaunay50599142018-07-09 15:17:19 +02001398 rng1: rng@54003000 {
1399 compatible = "st,stm32-rng";
1400 reg = <0x54003000 0x400>;
1401 clocks = <&rcc RNG1_K>;
1402 resets = <&rcc RNG1_R>;
1403 status = "disabled";
1404 };
1405
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001406 mdma1: dma-controller@58000000 {
Patrick Delaunay50599142018-07-09 15:17:19 +02001407 compatible = "st,stm32h7-mdma";
1408 reg = <0x58000000 0x1000>;
1409 interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
1410 clocks = <&rcc MDMA>;
Patrick Delaunaydf0d20a2020-04-30 15:52:46 +02001411 resets = <&rcc MDMA_R>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001412 #dma-cells = <5>;
1413 dma-channels = <32>;
1414 dma-requests = <48>;
1415 };
1416
Christophe Kerello45326d82020-07-31 09:53:44 +02001417 fmc: memory-controller@58002000 {
1418 #address-cells = <2>;
1419 #size-cells = <1>;
1420 compatible = "st,stm32mp1-fmc2-ebi";
1421 reg = <0x58002000 0x1000>;
Patrick Delaunaye0188ac2019-04-08 15:30:52 +02001422 clocks = <&rcc FMC_K>;
1423 resets = <&rcc FMC_R>;
1424 status = "disabled";
Christophe Kerello45326d82020-07-31 09:53:44 +02001425
1426 ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */
1427 <1 0 0x64000000 0x04000000>, /* EBI CS 2 */
1428 <2 0 0x68000000 0x04000000>, /* EBI CS 3 */
1429 <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */
1430 <4 0 0x80000000 0x10000000>; /* NAND */
1431
1432 nand-controller@4,0 {
1433 #address-cells = <1>;
1434 #size-cells = <0>;
1435 compatible = "st,stm32mp1-fmc2-nfc";
1436 reg = <4 0x00000000 0x1000>,
1437 <4 0x08010000 0x1000>,
1438 <4 0x08020000 0x1000>,
1439 <4 0x01000000 0x1000>,
1440 <4 0x09010000 0x1000>,
1441 <4 0x09020000 0x1000>;
1442 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
1443 dmas = <&mdma1 20 0x2 0x12000a02 0x0 0x0>,
1444 <&mdma1 20 0x2 0x12000a08 0x0 0x0>,
1445 <&mdma1 21 0x2 0x12000a0a 0x0 0x0>;
1446 dma-names = "tx", "rx", "ecc";
1447 status = "disabled";
1448 };
Patrick Delaunaye0188ac2019-04-08 15:30:52 +02001449 };
1450
Patrice Chotard00442d02019-02-12 16:50:38 +01001451 qspi: spi@58003000 {
Patrick Delaunay50599142018-07-09 15:17:19 +02001452 compatible = "st,stm32f469-qspi";
1453 reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
1454 reg-names = "qspi", "qspi_mm";
1455 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunayb22fa9d2021-07-27 12:15:12 +02001456 dmas = <&mdma1 22 0x2 0x10100002 0x0 0x0>,
1457 <&mdma1 22 0x2 0x10100008 0x0 0x0>;
Patrick Delaunay8c6e6132019-11-06 16:16:33 +01001458 dma-names = "tx", "rx";
Patrick Delaunay50599142018-07-09 15:17:19 +02001459 clocks = <&rcc QSPI_K>;
1460 resets = <&rcc QSPI_R>;
Patrick Delaunay551efca2020-09-16 10:01:32 +02001461 #address-cells = <1>;
1462 #size-cells = <0>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001463 status = "disabled";
1464 };
1465
Patrick Delaunaye48a0d42021-06-29 12:01:07 +02001466 sdmmc1: mmc@58005000 {
Patrick Delaunay6f182192022-04-26 15:38:05 +02001467 compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
Patrick Delaunay6d397052021-01-11 12:33:36 +01001468 arm,primecell-periphid = <0x00253180>;
Patrick Delaunaya3705302019-07-11 11:15:28 +02001469 reg = <0x58005000 0x1000>;
1470 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001471 clocks = <&rcc SDMMC1_K>;
Patrick Delaunaya3705302019-07-11 11:15:28 +02001472 clock-names = "apb_pclk";
Patrick Delaunay50599142018-07-09 15:17:19 +02001473 resets = <&rcc SDMMC1_R>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001474 cap-sd-highspeed;
1475 cap-mmc-highspeed;
1476 max-frequency = <120000000>;
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001477 status = "disabled";
Patrick Delaunay50599142018-07-09 15:17:19 +02001478 };
1479
Patrick Delaunaye48a0d42021-06-29 12:01:07 +02001480 sdmmc2: mmc@58007000 {
Patrick Delaunay6f182192022-04-26 15:38:05 +02001481 compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
Patrick Delaunay6d397052021-01-11 12:33:36 +01001482 arm,primecell-periphid = <0x00253180>;
Patrick Delaunaya3705302019-07-11 11:15:28 +02001483 reg = <0x58007000 0x1000>;
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001484 interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001485 clocks = <&rcc SDMMC2_K>;
Patrick Delaunaya3705302019-07-11 11:15:28 +02001486 clock-names = "apb_pclk";
Patrick Delaunay50599142018-07-09 15:17:19 +02001487 resets = <&rcc SDMMC2_R>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001488 cap-sd-highspeed;
1489 cap-mmc-highspeed;
1490 max-frequency = <120000000>;
1491 status = "disabled";
1492 };
1493
1494 crc1: crc@58009000 {
1495 compatible = "st,stm32f7-crc";
1496 reg = <0x58009000 0x400>;
1497 clocks = <&rcc CRC1>;
1498 status = "disabled";
1499 };
1500
Patrice Chotard00442d02019-02-12 16:50:38 +01001501 ethernet0: ethernet@5800a000 {
1502 compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a";
1503 reg = <0x5800a000 0x2000>;
1504 reg-names = "stmmaceth";
Patrick Delaunaya3705302019-07-11 11:15:28 +02001505 interrupts-extended = <&intc GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
1506 interrupt-names = "macirq";
Patrice Chotard00442d02019-02-12 16:50:38 +01001507 clock-names = "stmmaceth",
1508 "mac-clk-tx",
1509 "mac-clk-rx",
Marek Vasuta375b262020-01-10 01:28:38 +01001510 "eth-ck",
Patrick Delaunaye48a0d42021-06-29 12:01:07 +02001511 "ptp_ref",
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +02001512 "ethstp";
Patrice Chotard00442d02019-02-12 16:50:38 +01001513 clocks = <&rcc ETHMAC>,
1514 <&rcc ETHTX>,
1515 <&rcc ETHRX>,
Marek Vasuta375b262020-01-10 01:28:38 +01001516 <&rcc ETHCK_K>,
Patrick Delaunaye48a0d42021-06-29 12:01:07 +02001517 <&rcc ETHPTP_K>,
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +02001518 <&rcc ETHSTP>;
Patrice Chotard00442d02019-02-12 16:50:38 +01001519 st,syscon = <&syscfg 0x4>;
1520 snps,mixed-burst;
1521 snps,pbl = <2>;
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001522 snps,en-tx-lpi-clockgating;
Patrice Chotard00442d02019-02-12 16:50:38 +01001523 snps,axi-config = <&stmmac_axi_config_0>;
1524 snps,tso;
1525 status = "disabled";
Patrick Delaunayb22fa9d2021-07-27 12:15:12 +02001526
1527 stmmac_axi_config_0: stmmac-axi-config {
1528 snps,wr_osr_lmt = <0x7>;
1529 snps,rd_osr_lmt = <0x7>;
1530 snps,blen = <0 0 0 0 16 8 4>;
1531 };
Patrice Chotard00442d02019-02-12 16:50:38 +01001532 };
1533
Patrick Delaunay6d397052021-01-11 12:33:36 +01001534 usbh_ohci: usb@5800c000 {
Patrick Delaunay50599142018-07-09 15:17:19 +02001535 compatible = "generic-ohci";
1536 reg = <0x5800c000 0x1000>;
Patrick Delaunaye25cbd42022-07-05 16:55:54 +02001537 clocks = <&usbphyc>, <&rcc USBH>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001538 resets = <&rcc USBH_R>;
1539 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
1540 status = "disabled";
1541 };
1542
Patrick Delaunay6d397052021-01-11 12:33:36 +01001543 usbh_ehci: usb@5800d000 {
Patrick Delaunay50599142018-07-09 15:17:19 +02001544 compatible = "generic-ehci";
1545 reg = <0x5800d000 0x1000>;
Patrick Delaunaye25cbd42022-07-05 16:55:54 +02001546 clocks = <&usbphyc>, <&rcc USBH>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001547 resets = <&rcc USBH_R>;
1548 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
1549 companion = <&usbh_ohci>;
1550 status = "disabled";
1551 };
1552
Patrick Delaunay50599142018-07-09 15:17:19 +02001553 ltdc: display-controller@5a001000 {
1554 compatible = "st,stm32-ltdc";
1555 reg = <0x5a001000 0x400>;
1556 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
1557 <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1558 clocks = <&rcc LTDC_PX>;
1559 clock-names = "lcd";
1560 resets = <&rcc LTDC_R>;
1561 status = "disabled";
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +02001562
1563 port {
1564 #address-cells = <1>;
1565 #size-cells = <0>;
1566 };
Patrick Delaunay50599142018-07-09 15:17:19 +02001567 };
1568
Patrice Chotard00442d02019-02-12 16:50:38 +01001569 iwdg2: watchdog@5a002000 {
1570 compatible = "st,stm32mp1-iwdg";
1571 reg = <0x5a002000 0x400>;
1572 clocks = <&rcc IWDG2>, <&rcc CK_LSI>;
1573 clock-names = "pclk", "lsi";
1574 status = "disabled";
1575 };
1576
Patrick Delaunay50599142018-07-09 15:17:19 +02001577 usbphyc: usbphyc@5a006000 {
1578 #address-cells = <1>;
1579 #size-cells = <0>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +02001580 #clock-cells = <0>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001581 compatible = "st,stm32mp1-usbphyc";
1582 reg = <0x5a006000 0x1000>;
1583 clocks = <&rcc USBPHY_K>;
1584 resets = <&rcc USBPHY_R>;
Patrick Delaunay6ba88cd2019-03-29 15:42:11 +01001585 vdda1v1-supply = <&reg11>;
1586 vdda1v8-supply = <&reg18>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001587 status = "disabled";
1588
1589 usbphyc_port0: usb-phy@0 {
1590 #phy-cells = <0>;
1591 reg = <0>;
1592 };
1593
1594 usbphyc_port1: usb-phy@1 {
1595 #phy-cells = <1>;
1596 reg = <1>;
1597 };
1598 };
1599
1600 usart1: serial@5c000000 {
1601 compatible = "st,stm32h7-uart";
1602 reg = <0x5c000000 0x400>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +02001603 interrupts-extended = <&exti 26 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001604 clocks = <&rcc USART1_K>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +02001605 wakeup-source;
Patrick Delaunay50599142018-07-09 15:17:19 +02001606 status = "disabled";
1607 };
1608
Patrice Chotard00442d02019-02-12 16:50:38 +01001609 spi6: spi@5c001000 {
1610 #address-cells = <1>;
1611 #size-cells = <0>;
1612 compatible = "st,stm32h7-spi";
1613 reg = <0x5c001000 0x400>;
1614 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
1615 clocks = <&rcc SPI6_K>;
1616 resets = <&rcc SPI6_R>;
1617 dmas = <&mdma1 34 0x0 0x40008 0x0 0x0>,
1618 <&mdma1 35 0x0 0x40002 0x0 0x0>;
1619 dma-names = "rx", "tx";
1620 status = "disabled";
1621 };
1622
Patrick Delaunay50599142018-07-09 15:17:19 +02001623 i2c4: i2c@5c002000 {
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +02001624 compatible = "st,stm32mp15-i2c";
Patrick Delaunay50599142018-07-09 15:17:19 +02001625 reg = <0x5c002000 0x400>;
1626 interrupt-names = "event", "error";
1627 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
1628 <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1629 clocks = <&rcc I2C4_K>;
1630 resets = <&rcc I2C4_R>;
1631 #address-cells = <1>;
1632 #size-cells = <0>;
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +02001633 st,syscfg-fmp = <&syscfg 0x4 0x8>;
Patrick Delaunaydf0d20a2020-04-30 15:52:46 +02001634 wakeup-source;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +02001635 i2c-analog-filter;
Patrick Delaunay50599142018-07-09 15:17:19 +02001636 status = "disabled";
1637 };
1638
Patrice Chotard00442d02019-02-12 16:50:38 +01001639 rtc: rtc@5c004000 {
1640 compatible = "st,stm32mp1-rtc";
1641 reg = <0x5c004000 0x400>;
1642 clocks = <&rcc RTCAPB>, <&rcc RTC>;
1643 clock-names = "pclk", "rtc_ck";
Patrick Delaunay6f182192022-04-26 15:38:05 +02001644 interrupts-extended = <&exti 19 IRQ_TYPE_LEVEL_HIGH>;
Patrice Chotard00442d02019-02-12 16:50:38 +01001645 status = "disabled";
1646 };
1647
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001648 bsec: efuse@5c005000 {
Patrick Delaunaybdd71362019-02-27 17:01:27 +01001649 compatible = "st,stm32mp15-bsec";
1650 reg = <0x5c005000 0x400>;
1651 #address-cells = <1>;
1652 #size-cells = <1>;
Patrick Delaunay0e20c1f2020-05-25 12:19:42 +02001653 part_number_otp: part_number_otp@4 {
1654 reg = <0x4 0x1>;
1655 };
Patrick Delaunaya3705302019-07-11 11:15:28 +02001656 ts_cal1: calib@5c {
1657 reg = <0x5c 0x2>;
1658 };
1659 ts_cal2: calib@5e {
1660 reg = <0x5e 0x2>;
1661 };
Patrick Delaunaybdd71362019-02-27 17:01:27 +01001662 };
1663
Patrick Delaunay50599142018-07-09 15:17:19 +02001664 i2c6: i2c@5c009000 {
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +02001665 compatible = "st,stm32mp15-i2c";
Patrick Delaunay50599142018-07-09 15:17:19 +02001666 reg = <0x5c009000 0x400>;
1667 interrupt-names = "event", "error";
1668 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
1669 <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
1670 clocks = <&rcc I2C6_K>;
1671 resets = <&rcc I2C6_R>;
1672 #address-cells = <1>;
1673 #size-cells = <0>;
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +02001674 st,syscfg-fmp = <&syscfg 0x4 0x20>;
Patrick Delaunaydf0d20a2020-04-30 15:52:46 +02001675 wakeup-source;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +02001676 i2c-analog-filter;
Patrick Delaunay50599142018-07-09 15:17:19 +02001677 status = "disabled";
1678 };
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001679
Patrick Delaunay6d397052021-01-11 12:33:36 +01001680 tamp: tamp@5c00a000 {
1681 compatible = "st,stm32-tamp", "syscon", "simple-mfd";
1682 reg = <0x5c00a000 0x400>;
1683 };
1684
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001685 /*
1686 * Break node order to solve dependency probe issue between
1687 * pinctrl and exti.
1688 */
Patrick Delaunaye25cbd42022-07-05 16:55:54 +02001689 pinctrl: pinctrl@50002000 {
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001690 #address-cells = <1>;
1691 #size-cells = <1>;
1692 compatible = "st,stm32mp157-pinctrl";
1693 ranges = <0 0x50002000 0xa400>;
1694 interrupt-parent = <&exti>;
1695 st,syscfg = <&exti 0x60 0xff>;
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001696
1697 gpioa: gpio@50002000 {
1698 gpio-controller;
1699 #gpio-cells = <2>;
1700 interrupt-controller;
1701 #interrupt-cells = <2>;
1702 reg = <0x0 0x400>;
1703 clocks = <&rcc GPIOA>;
1704 st,bank-name = "GPIOA";
1705 status = "disabled";
1706 };
1707
1708 gpiob: gpio@50003000 {
1709 gpio-controller;
1710 #gpio-cells = <2>;
1711 interrupt-controller;
1712 #interrupt-cells = <2>;
1713 reg = <0x1000 0x400>;
1714 clocks = <&rcc GPIOB>;
1715 st,bank-name = "GPIOB";
1716 status = "disabled";
1717 };
1718
1719 gpioc: gpio@50004000 {
1720 gpio-controller;
1721 #gpio-cells = <2>;
1722 interrupt-controller;
1723 #interrupt-cells = <2>;
1724 reg = <0x2000 0x400>;
1725 clocks = <&rcc GPIOC>;
1726 st,bank-name = "GPIOC";
1727 status = "disabled";
1728 };
1729
1730 gpiod: gpio@50005000 {
1731 gpio-controller;
1732 #gpio-cells = <2>;
1733 interrupt-controller;
1734 #interrupt-cells = <2>;
1735 reg = <0x3000 0x400>;
1736 clocks = <&rcc GPIOD>;
1737 st,bank-name = "GPIOD";
1738 status = "disabled";
1739 };
1740
1741 gpioe: gpio@50006000 {
1742 gpio-controller;
1743 #gpio-cells = <2>;
1744 interrupt-controller;
1745 #interrupt-cells = <2>;
1746 reg = <0x4000 0x400>;
1747 clocks = <&rcc GPIOE>;
1748 st,bank-name = "GPIOE";
1749 status = "disabled";
1750 };
1751
1752 gpiof: gpio@50007000 {
1753 gpio-controller;
1754 #gpio-cells = <2>;
1755 interrupt-controller;
1756 #interrupt-cells = <2>;
1757 reg = <0x5000 0x400>;
1758 clocks = <&rcc GPIOF>;
1759 st,bank-name = "GPIOF";
1760 status = "disabled";
1761 };
1762
1763 gpiog: gpio@50008000 {
1764 gpio-controller;
1765 #gpio-cells = <2>;
1766 interrupt-controller;
1767 #interrupt-cells = <2>;
1768 reg = <0x6000 0x400>;
1769 clocks = <&rcc GPIOG>;
1770 st,bank-name = "GPIOG";
1771 status = "disabled";
1772 };
1773
1774 gpioh: gpio@50009000 {
1775 gpio-controller;
1776 #gpio-cells = <2>;
1777 interrupt-controller;
1778 #interrupt-cells = <2>;
1779 reg = <0x7000 0x400>;
1780 clocks = <&rcc GPIOH>;
1781 st,bank-name = "GPIOH";
1782 status = "disabled";
1783 };
1784
1785 gpioi: gpio@5000a000 {
1786 gpio-controller;
1787 #gpio-cells = <2>;
1788 interrupt-controller;
1789 #interrupt-cells = <2>;
1790 reg = <0x8000 0x400>;
1791 clocks = <&rcc GPIOI>;
1792 st,bank-name = "GPIOI";
1793 status = "disabled";
1794 };
1795
1796 gpioj: gpio@5000b000 {
1797 gpio-controller;
1798 #gpio-cells = <2>;
1799 interrupt-controller;
1800 #interrupt-cells = <2>;
1801 reg = <0x9000 0x400>;
1802 clocks = <&rcc GPIOJ>;
1803 st,bank-name = "GPIOJ";
1804 status = "disabled";
1805 };
1806
1807 gpiok: gpio@5000c000 {
1808 gpio-controller;
1809 #gpio-cells = <2>;
1810 interrupt-controller;
1811 #interrupt-cells = <2>;
1812 reg = <0xa000 0x400>;
1813 clocks = <&rcc GPIOK>;
1814 st,bank-name = "GPIOK";
1815 status = "disabled";
1816 };
1817 };
1818
Patrick Delaunaye25cbd42022-07-05 16:55:54 +02001819 pinctrl_z: pinctrl@54004000 {
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001820 #address-cells = <1>;
1821 #size-cells = <1>;
1822 compatible = "st,stm32mp157-z-pinctrl";
1823 ranges = <0 0x54004000 0x400>;
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001824 interrupt-parent = <&exti>;
1825 st,syscfg = <&exti 0x60 0xff>;
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001826
1827 gpioz: gpio@54004000 {
1828 gpio-controller;
1829 #gpio-cells = <2>;
1830 interrupt-controller;
1831 #interrupt-cells = <2>;
1832 reg = <0 0x400>;
1833 clocks = <&rcc GPIOZ>;
1834 st,bank-name = "GPIOZ";
1835 st,bank-ioport = <11>;
1836 status = "disabled";
1837 };
1838 };
Patrick Delaunay50599142018-07-09 15:17:19 +02001839 };
Patrick Delaunay26c24b42019-08-02 15:07:18 +02001840
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001841 mlahb: ahb {
1842 compatible = "st,mlahb", "simple-bus";
Patrick Delaunay26c24b42019-08-02 15:07:18 +02001843 #address-cells = <1>;
1844 #size-cells = <1>;
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001845 ranges;
Patrick Delaunay26c24b42019-08-02 15:07:18 +02001846 dma-ranges = <0x00000000 0x38000000 0x10000>,
1847 <0x10000000 0x10000000 0x60000>,
1848 <0x30000000 0x30000000 0x60000>;
1849
1850 m4_rproc: m4@10000000 {
1851 compatible = "st,stm32mp1-m4";
1852 reg = <0x10000000 0x40000>,
1853 <0x30000000 0x40000>,
1854 <0x38000000 0x10000>;
1855 resets = <&rcc MCU_R>;
1856 st,syscfg-holdboot = <&rcc 0x10C 0x1>;
1857 st,syscfg-tz = <&rcc 0x000 0x1>;
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +02001858 st,syscfg-pdds = <&pwr_mcu 0x0 0x1>;
Patrick Delaunay6d397052021-01-11 12:33:36 +01001859 st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>;
1860 st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>;
Patrick Delaunay26c24b42019-08-02 15:07:18 +02001861 status = "disabled";
1862 };
1863 };
Patrick Delaunay50599142018-07-09 15:17:19 +02001864};