blob: 5a2be0075861e892d05495b7e90d6f4ed7c430aa [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";
66 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
67 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
68 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
69 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
70 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>;
148 clocks = <&rcc TIM2_K>;
149 clock-names = "int";
Patrick Delaunaya3705302019-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 Delaunay50599142018-07-09 15:17:19 +0200156 status = "disabled";
157
158 pwm {
159 compatible = "st,stm32-pwm";
Patrick Delaunay8c6e6132019-11-06 16:16:33 +0100160 #pwm-cells = <3>;
Patrick Delaunay50599142018-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 Delaunay48c5e902020-03-06 17:54:41 +0100169
170 counter {
171 compatible = "st,stm32-timer-counter";
172 status = "disabled";
173 };
Patrick Delaunay50599142018-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 Delaunaya3705302019-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 Delaunay50599142018-07-09 15:17:19 +0200190 status = "disabled";
191
192 pwm {
193 compatible = "st,stm32-pwm";
Patrick Delaunay8c6e6132019-11-06 16:16:33 +0100194 #pwm-cells = <3>;
Patrick Delaunay50599142018-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 Delaunay48c5e902020-03-06 17:54:41 +0100203
204 counter {
205 compatible = "st,stm32-timer-counter";
206 status = "disabled";
207 };
Patrick Delaunay50599142018-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 Delaunaya3705302019-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 Delaunay50599142018-07-09 15:17:19 +0200222 status = "disabled";
223
224 pwm {
225 compatible = "st,stm32-pwm";
Patrick Delaunay8c6e6132019-11-06 16:16:33 +0100226 #pwm-cells = <3>;
Patrick Delaunay50599142018-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 Delaunay48c5e902020-03-06 17:54:41 +0100235
236 counter {
237 compatible = "st,stm32-timer-counter";
238 status = "disabled";
239 };
Patrick Delaunay50599142018-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 Delaunaya3705302019-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 Delaunay50599142018-07-09 15:17:19 +0200256 status = "disabled";
257
258 pwm {
259 compatible = "st,stm32-pwm";
Patrick Delaunay8c6e6132019-11-06 16:16:33 +0100260 #pwm-cells = <3>;
Patrick Delaunay50599142018-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 Delaunay48c5e902020-03-06 17:54:41 +0100269
270 counter {
271 compatible = "st,stm32-timer-counter";
272 status = "disabled";
273 };
Patrick Delaunay50599142018-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 Delaunaya3705302019-07-11 11:15:28 +0200283 dmas = <&dmamux1 69 0x400 0x1>;
284 dma-names = "up";
Patrick Delaunay50599142018-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 Delaunaya3705302019-07-11 11:15:28 +0200301 dmas = <&dmamux1 70 0x400 0x1>;
302 dma-names = "up";
Patrick Delaunay50599142018-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 Delaunay8c6e6132019-11-06 16:16:33 +0100323 #pwm-cells = <3>;
Patrick Delaunay50599142018-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 Delaunay8c6e6132019-11-06 16:16:33 +0100345 #pwm-cells = <3>;
Patrick Delaunay50599142018-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 Delaunay8c6e6132019-11-06 16:16:33 +0100367 #pwm-cells = <3>;
Patrick Delaunay50599142018-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 Delaunay6d397052021-01-11 12:33:36 +0100383 interrupts-extended = <&exti 47 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200384 clocks = <&rcc LPTIM1_K>;
385 clock-names = "mux";
Patrick Delaunay6d397052021-01-11 12:33:36 +0100386 wakeup-source;
Patrick Delaunay50599142018-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 Chotard00442d02019-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 Delaunay708cae72019-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 Chotard00442d02019-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 Delaunay708cae72019-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 Delaunaya3705302019-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 Delaunay50599142018-07-09 15:17:19 +0200470 usart2: serial@4000e000 {
471 compatible = "st,stm32h7-uart";
472 reg = <0x4000e000 0x400>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200473 interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200474 clocks = <&rcc USART2_K>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200475 wakeup-source;
Patrick Delaunay50599142018-07-09 15:17:19 +0200476 status = "disabled";
477 };
478
479 usart3: serial@4000f000 {
480 compatible = "st,stm32h7-uart";
481 reg = <0x4000f000 0x400>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200482 interrupts-extended = <&exti 28 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200483 clocks = <&rcc USART3_K>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200484 wakeup-source;
Patrick Delaunay50599142018-07-09 15:17:19 +0200485 status = "disabled";
486 };
487
488 uart4: serial@40010000 {
489 compatible = "st,stm32h7-uart";
490 reg = <0x40010000 0x400>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200491 interrupts-extended = <&exti 30 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200492 clocks = <&rcc UART4_K>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200493 wakeup-source;
Patrick Delaunay50599142018-07-09 15:17:19 +0200494 status = "disabled";
495 };
496
497 uart5: serial@40011000 {
498 compatible = "st,stm32h7-uart";
499 reg = <0x40011000 0x400>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200500 interrupts-extended = <&exti 31 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200501 clocks = <&rcc UART5_K>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200502 wakeup-source;
Patrick Delaunay50599142018-07-09 15:17:19 +0200503 status = "disabled";
504 };
505
506 i2c1: i2c@40012000 {
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +0200507 compatible = "st,stm32mp15-i2c";
Patrick Delaunay50599142018-07-09 15:17:19 +0200508 reg = <0x40012000 0x400>;
509 interrupt-names = "event", "error";
510 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
511 <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
512 clocks = <&rcc I2C1_K>;
513 resets = <&rcc I2C1_R>;
514 #address-cells = <1>;
515 #size-cells = <0>;
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +0200516 st,syscfg-fmp = <&syscfg 0x4 0x1>;
Patrick Delaunaydf0d20a2020-04-30 15:52:46 +0200517 wakeup-source;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200518 i2c-analog-filter;
Patrick Delaunay50599142018-07-09 15:17:19 +0200519 status = "disabled";
520 };
521
522 i2c2: i2c@40013000 {
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +0200523 compatible = "st,stm32mp15-i2c";
Patrick Delaunay50599142018-07-09 15:17:19 +0200524 reg = <0x40013000 0x400>;
525 interrupt-names = "event", "error";
526 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
527 <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
528 clocks = <&rcc I2C2_K>;
529 resets = <&rcc I2C2_R>;
530 #address-cells = <1>;
531 #size-cells = <0>;
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +0200532 st,syscfg-fmp = <&syscfg 0x4 0x2>;
Patrick Delaunaydf0d20a2020-04-30 15:52:46 +0200533 wakeup-source;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200534 i2c-analog-filter;
Patrick Delaunay50599142018-07-09 15:17:19 +0200535 status = "disabled";
536 };
537
538 i2c3: i2c@40014000 {
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +0200539 compatible = "st,stm32mp15-i2c";
Patrick Delaunay50599142018-07-09 15:17:19 +0200540 reg = <0x40014000 0x400>;
541 interrupt-names = "event", "error";
542 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
543 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
544 clocks = <&rcc I2C3_K>;
545 resets = <&rcc I2C3_R>;
546 #address-cells = <1>;
547 #size-cells = <0>;
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +0200548 st,syscfg-fmp = <&syscfg 0x4 0x4>;
Patrick Delaunaydf0d20a2020-04-30 15:52:46 +0200549 wakeup-source;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200550 i2c-analog-filter;
Patrick Delaunay50599142018-07-09 15:17:19 +0200551 status = "disabled";
552 };
553
554 i2c5: i2c@40015000 {
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +0200555 compatible = "st,stm32mp15-i2c";
Patrick Delaunay50599142018-07-09 15:17:19 +0200556 reg = <0x40015000 0x400>;
557 interrupt-names = "event", "error";
558 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
559 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
560 clocks = <&rcc I2C5_K>;
561 resets = <&rcc I2C5_R>;
562 #address-cells = <1>;
563 #size-cells = <0>;
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +0200564 st,syscfg-fmp = <&syscfg 0x4 0x10>;
Patrick Delaunaydf0d20a2020-04-30 15:52:46 +0200565 wakeup-source;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200566 i2c-analog-filter;
Patrick Delaunay50599142018-07-09 15:17:19 +0200567 status = "disabled";
568 };
569
570 cec: cec@40016000 {
571 compatible = "st,stm32-cec";
572 reg = <0x40016000 0x400>;
573 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
574 clocks = <&rcc CEC_K>, <&clk_lse>;
575 clock-names = "cec", "hdmi-cec";
576 status = "disabled";
577 };
578
579 dac: dac@40017000 {
580 compatible = "st,stm32h7-dac-core";
581 reg = <0x40017000 0x400>;
582 clocks = <&rcc DAC12>;
583 clock-names = "pclk";
584 #address-cells = <1>;
585 #size-cells = <0>;
586 status = "disabled";
587
588 dac1: dac@1 {
589 compatible = "st,stm32-dac";
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +0200590 #io-channel-cells = <1>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200591 reg = <1>;
592 status = "disabled";
593 };
594
595 dac2: dac@2 {
596 compatible = "st,stm32-dac";
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +0200597 #io-channel-cells = <1>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200598 reg = <2>;
599 status = "disabled";
600 };
601 };
602
603 uart7: serial@40018000 {
604 compatible = "st,stm32h7-uart";
605 reg = <0x40018000 0x400>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200606 interrupts-extended = <&exti 32 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200607 clocks = <&rcc UART7_K>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200608 wakeup-source;
Patrick Delaunay50599142018-07-09 15:17:19 +0200609 status = "disabled";
610 };
611
612 uart8: serial@40019000 {
613 compatible = "st,stm32h7-uart";
614 reg = <0x40019000 0x400>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200615 interrupts-extended = <&exti 33 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200616 clocks = <&rcc UART8_K>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200617 wakeup-source;
Patrick Delaunay50599142018-07-09 15:17:19 +0200618 status = "disabled";
619 };
620
621 timers1: timer@44000000 {
622 #address-cells = <1>;
623 #size-cells = <0>;
624 compatible = "st,stm32-timers";
625 reg = <0x44000000 0x400>;
626 clocks = <&rcc TIM1_K>;
627 clock-names = "int";
Patrick Delaunaya3705302019-07-11 11:15:28 +0200628 dmas = <&dmamux1 11 0x400 0x1>,
629 <&dmamux1 12 0x400 0x1>,
630 <&dmamux1 13 0x400 0x1>,
631 <&dmamux1 14 0x400 0x1>,
632 <&dmamux1 15 0x400 0x1>,
633 <&dmamux1 16 0x400 0x1>,
634 <&dmamux1 17 0x400 0x1>;
635 dma-names = "ch1", "ch2", "ch3", "ch4",
636 "up", "trig", "com";
Patrick Delaunay50599142018-07-09 15:17:19 +0200637 status = "disabled";
638
639 pwm {
640 compatible = "st,stm32-pwm";
Patrick Delaunay8c6e6132019-11-06 16:16:33 +0100641 #pwm-cells = <3>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200642 status = "disabled";
643 };
644
645 timer@0 {
646 compatible = "st,stm32h7-timer-trigger";
647 reg = <0>;
648 status = "disabled";
649 };
Patrick Delaunay48c5e902020-03-06 17:54:41 +0100650
651 counter {
652 compatible = "st,stm32-timer-counter";
653 status = "disabled";
654 };
Patrick Delaunay50599142018-07-09 15:17:19 +0200655 };
656
657 timers8: timer@44001000 {
658 #address-cells = <1>;
659 #size-cells = <0>;
660 compatible = "st,stm32-timers";
661 reg = <0x44001000 0x400>;
662 clocks = <&rcc TIM8_K>;
663 clock-names = "int";
Patrick Delaunaya3705302019-07-11 11:15:28 +0200664 dmas = <&dmamux1 47 0x400 0x1>,
665 <&dmamux1 48 0x400 0x1>,
666 <&dmamux1 49 0x400 0x1>,
667 <&dmamux1 50 0x400 0x1>,
668 <&dmamux1 51 0x400 0x1>,
669 <&dmamux1 52 0x400 0x1>,
670 <&dmamux1 53 0x400 0x1>;
671 dma-names = "ch1", "ch2", "ch3", "ch4",
672 "up", "trig", "com";
Patrick Delaunay50599142018-07-09 15:17:19 +0200673 status = "disabled";
674
675 pwm {
676 compatible = "st,stm32-pwm";
Patrick Delaunay8c6e6132019-11-06 16:16:33 +0100677 #pwm-cells = <3>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200678 status = "disabled";
679 };
680
681 timer@7 {
682 compatible = "st,stm32h7-timer-trigger";
683 reg = <7>;
684 status = "disabled";
685 };
Patrick Delaunay48c5e902020-03-06 17:54:41 +0100686
687 counter {
688 compatible = "st,stm32-timer-counter";
689 status = "disabled";
690 };
Patrick Delaunay50599142018-07-09 15:17:19 +0200691 };
692
693 usart6: serial@44003000 {
694 compatible = "st,stm32h7-uart";
695 reg = <0x44003000 0x400>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200696 interrupts-extended = <&exti 29 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200697 clocks = <&rcc USART6_K>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +0200698 wakeup-source;
Patrick Delaunay50599142018-07-09 15:17:19 +0200699 status = "disabled";
700 };
701
Patrice Chotard00442d02019-02-12 16:50:38 +0100702 spi1: spi@44004000 {
703 #address-cells = <1>;
704 #size-cells = <0>;
705 compatible = "st,stm32h7-spi";
706 reg = <0x44004000 0x400>;
707 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
708 clocks = <&rcc SPI1_K>;
709 resets = <&rcc SPI1_R>;
710 dmas = <&dmamux1 37 0x400 0x05>,
711 <&dmamux1 38 0x400 0x05>;
712 dma-names = "rx", "tx";
713 status = "disabled";
714 };
715
Patrick Delaunay708cae72019-07-30 19:16:12 +0200716 i2s1: audio-controller@44004000 {
717 compatible = "st,stm32h7-i2s";
718 #sound-dai-cells = <0>;
719 reg = <0x44004000 0x400>;
720 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
721 dmas = <&dmamux1 37 0x400 0x01>,
722 <&dmamux1 38 0x400 0x01>;
723 dma-names = "rx", "tx";
724 status = "disabled";
725 };
726
Patrice Chotard00442d02019-02-12 16:50:38 +0100727 spi4: spi@44005000 {
728 #address-cells = <1>;
729 #size-cells = <0>;
730 compatible = "st,stm32h7-spi";
731 reg = <0x44005000 0x400>;
732 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
733 clocks = <&rcc SPI4_K>;
734 resets = <&rcc SPI4_R>;
735 dmas = <&dmamux1 83 0x400 0x05>,
736 <&dmamux1 84 0x400 0x05>;
737 dma-names = "rx", "tx";
738 status = "disabled";
739 };
740
Patrick Delaunay50599142018-07-09 15:17:19 +0200741 timers15: timer@44006000 {
742 #address-cells = <1>;
743 #size-cells = <0>;
744 compatible = "st,stm32-timers";
745 reg = <0x44006000 0x400>;
746 clocks = <&rcc TIM15_K>;
747 clock-names = "int";
Patrick Delaunaya3705302019-07-11 11:15:28 +0200748 dmas = <&dmamux1 105 0x400 0x1>,
749 <&dmamux1 106 0x400 0x1>,
750 <&dmamux1 107 0x400 0x1>,
751 <&dmamux1 108 0x400 0x1>;
752 dma-names = "ch1", "up", "trig", "com";
Patrick Delaunay50599142018-07-09 15:17:19 +0200753 status = "disabled";
754
755 pwm {
756 compatible = "st,stm32-pwm";
Patrick Delaunay8c6e6132019-11-06 16:16:33 +0100757 #pwm-cells = <3>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200758 status = "disabled";
759 };
760
761 timer@14 {
762 compatible = "st,stm32h7-timer-trigger";
763 reg = <14>;
764 status = "disabled";
765 };
766 };
767
768 timers16: timer@44007000 {
769 #address-cells = <1>;
770 #size-cells = <0>;
771 compatible = "st,stm32-timers";
772 reg = <0x44007000 0x400>;
773 clocks = <&rcc TIM16_K>;
774 clock-names = "int";
Patrick Delaunaya3705302019-07-11 11:15:28 +0200775 dmas = <&dmamux1 109 0x400 0x1>,
776 <&dmamux1 110 0x400 0x1>;
777 dma-names = "ch1", "up";
Patrick Delaunay50599142018-07-09 15:17:19 +0200778 status = "disabled";
779
780 pwm {
781 compatible = "st,stm32-pwm";
Patrick Delaunay8c6e6132019-11-06 16:16:33 +0100782 #pwm-cells = <3>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200783 status = "disabled";
784 };
785 timer@15 {
786 compatible = "st,stm32h7-timer-trigger";
787 reg = <15>;
788 status = "disabled";
789 };
790 };
791
792 timers17: timer@44008000 {
793 #address-cells = <1>;
794 #size-cells = <0>;
795 compatible = "st,stm32-timers";
796 reg = <0x44008000 0x400>;
797 clocks = <&rcc TIM17_K>;
798 clock-names = "int";
Patrick Delaunaya3705302019-07-11 11:15:28 +0200799 dmas = <&dmamux1 111 0x400 0x1>,
800 <&dmamux1 112 0x400 0x1>;
801 dma-names = "ch1", "up";
Patrick Delaunay50599142018-07-09 15:17:19 +0200802 status = "disabled";
803
804 pwm {
805 compatible = "st,stm32-pwm";
Patrick Delaunay8c6e6132019-11-06 16:16:33 +0100806 #pwm-cells = <3>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200807 status = "disabled";
808 };
809
810 timer@16 {
811 compatible = "st,stm32h7-timer-trigger";
812 reg = <16>;
813 status = "disabled";
814 };
Patrice Chotard00442d02019-02-12 16:50:38 +0100815 };
816
817 spi5: spi@44009000 {
818 #address-cells = <1>;
819 #size-cells = <0>;
820 compatible = "st,stm32h7-spi";
821 reg = <0x44009000 0x400>;
822 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
823 clocks = <&rcc SPI5_K>;
824 resets = <&rcc SPI5_R>;
825 dmas = <&dmamux1 85 0x400 0x05>,
826 <&dmamux1 86 0x400 0x05>;
827 dma-names = "rx", "tx";
828 status = "disabled";
Patrick Delaunay708cae72019-07-30 19:16:12 +0200829 };
830
831 sai1: sai@4400a000 {
832 compatible = "st,stm32h7-sai";
833 #address-cells = <1>;
834 #size-cells = <1>;
835 ranges = <0 0x4400a000 0x400>;
836 reg = <0x4400a000 0x4>, <0x4400a3f0 0x10>;
837 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
838 resets = <&rcc SAI1_R>;
839 status = "disabled";
840
841 sai1a: audio-controller@4400a004 {
842 #sound-dai-cells = <0>;
843
844 compatible = "st,stm32-sai-sub-a";
Patrick Delaunay37868aa2021-12-17 16:30:22 +0100845 reg = <0x4 0x20>;
Patrick Delaunay708cae72019-07-30 19:16:12 +0200846 clocks = <&rcc SAI1_K>;
847 clock-names = "sai_ck";
848 dmas = <&dmamux1 87 0x400 0x01>;
849 status = "disabled";
850 };
851
852 sai1b: audio-controller@4400a024 {
853 #sound-dai-cells = <0>;
854 compatible = "st,stm32-sai-sub-b";
Patrick Delaunay37868aa2021-12-17 16:30:22 +0100855 reg = <0x24 0x20>;
Patrick Delaunay708cae72019-07-30 19:16:12 +0200856 clocks = <&rcc SAI1_K>;
857 clock-names = "sai_ck";
858 dmas = <&dmamux1 88 0x400 0x01>;
859 status = "disabled";
860 };
861 };
862
863 sai2: sai@4400b000 {
864 compatible = "st,stm32h7-sai";
865 #address-cells = <1>;
866 #size-cells = <1>;
867 ranges = <0 0x4400b000 0x400>;
868 reg = <0x4400b000 0x4>, <0x4400b3f0 0x10>;
869 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
870 resets = <&rcc SAI2_R>;
871 status = "disabled";
872
873 sai2a: audio-controller@4400b004 {
874 #sound-dai-cells = <0>;
875 compatible = "st,stm32-sai-sub-a";
Patrick Delaunay37868aa2021-12-17 16:30:22 +0100876 reg = <0x4 0x20>;
Patrick Delaunay708cae72019-07-30 19:16:12 +0200877 clocks = <&rcc SAI2_K>;
878 clock-names = "sai_ck";
879 dmas = <&dmamux1 89 0x400 0x01>;
880 status = "disabled";
881 };
882
883 sai2b: audio-controller@4400b024 {
884 #sound-dai-cells = <0>;
885 compatible = "st,stm32-sai-sub-b";
Patrick Delaunay37868aa2021-12-17 16:30:22 +0100886 reg = <0x24 0x20>;
Patrick Delaunay708cae72019-07-30 19:16:12 +0200887 clocks = <&rcc SAI2_K>;
888 clock-names = "sai_ck";
889 dmas = <&dmamux1 90 0x400 0x01>;
890 status = "disabled";
891 };
892 };
893
894 sai3: sai@4400c000 {
895 compatible = "st,stm32h7-sai";
896 #address-cells = <1>;
897 #size-cells = <1>;
898 ranges = <0 0x4400c000 0x400>;
899 reg = <0x4400c000 0x4>, <0x4400c3f0 0x10>;
900 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
901 resets = <&rcc SAI3_R>;
902 status = "disabled";
903
904 sai3a: audio-controller@4400c004 {
905 #sound-dai-cells = <0>;
906 compatible = "st,stm32-sai-sub-a";
Patrick Delaunay37868aa2021-12-17 16:30:22 +0100907 reg = <0x04 0x20>;
Patrick Delaunay708cae72019-07-30 19:16:12 +0200908 clocks = <&rcc SAI3_K>;
909 clock-names = "sai_ck";
910 dmas = <&dmamux1 113 0x400 0x01>;
911 status = "disabled";
912 };
913
914 sai3b: audio-controller@4400c024 {
915 #sound-dai-cells = <0>;
916 compatible = "st,stm32-sai-sub-b";
Patrick Delaunay37868aa2021-12-17 16:30:22 +0100917 reg = <0x24 0x20>;
Patrick Delaunay708cae72019-07-30 19:16:12 +0200918 clocks = <&rcc SAI3_K>;
919 clock-names = "sai_ck";
920 dmas = <&dmamux1 114 0x400 0x01>;
921 status = "disabled";
922 };
Patrice Chotard00442d02019-02-12 16:50:38 +0100923 };
924
925 dfsdm: dfsdm@4400d000 {
926 compatible = "st,stm32mp1-dfsdm";
927 reg = <0x4400d000 0x800>;
928 clocks = <&rcc DFSDM_K>;
929 clock-names = "dfsdm";
930 #address-cells = <1>;
931 #size-cells = <0>;
932 status = "disabled";
933
934 dfsdm0: filter@0 {
935 compatible = "st,stm32-dfsdm-adc";
936 #io-channel-cells = <1>;
937 reg = <0>;
938 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
939 dmas = <&dmamux1 101 0x400 0x01>;
940 dma-names = "rx";
941 status = "disabled";
942 };
943
944 dfsdm1: filter@1 {
945 compatible = "st,stm32-dfsdm-adc";
946 #io-channel-cells = <1>;
947 reg = <1>;
948 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
949 dmas = <&dmamux1 102 0x400 0x01>;
950 dma-names = "rx";
951 status = "disabled";
952 };
953
954 dfsdm2: filter@2 {
955 compatible = "st,stm32-dfsdm-adc";
956 #io-channel-cells = <1>;
957 reg = <2>;
958 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
959 dmas = <&dmamux1 103 0x400 0x01>;
960 dma-names = "rx";
961 status = "disabled";
962 };
963
964 dfsdm3: filter@3 {
965 compatible = "st,stm32-dfsdm-adc";
966 #io-channel-cells = <1>;
967 reg = <3>;
968 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
969 dmas = <&dmamux1 104 0x400 0x01>;
970 dma-names = "rx";
971 status = "disabled";
972 };
973
974 dfsdm4: filter@4 {
975 compatible = "st,stm32-dfsdm-adc";
976 #io-channel-cells = <1>;
977 reg = <4>;
978 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
979 dmas = <&dmamux1 91 0x400 0x01>;
980 dma-names = "rx";
981 status = "disabled";
982 };
983
984 dfsdm5: filter@5 {
985 compatible = "st,stm32-dfsdm-adc";
986 #io-channel-cells = <1>;
987 reg = <5>;
988 interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
989 dmas = <&dmamux1 92 0x400 0x01>;
990 dma-names = "rx";
991 status = "disabled";
992 };
Patrick Delaunay50599142018-07-09 15:17:19 +0200993 };
994
Patrick Delaunay48c5e902020-03-06 17:54:41 +0100995 dma1: dma-controller@48000000 {
Patrick Delaunay50599142018-07-09 15:17:19 +0200996 compatible = "st,stm32-dma";
997 reg = <0x48000000 0x400>;
998 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
999 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
1000 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
1001 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
1002 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
1003 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
1004 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
1005 <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
1006 clocks = <&rcc DMA1>;
Patrick Delaunaydf0d20a2020-04-30 15:52:46 +02001007 resets = <&rcc DMA1_R>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001008 #dma-cells = <4>;
1009 st,mem2mem;
1010 dma-requests = <8>;
1011 };
1012
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001013 dma2: dma-controller@48001000 {
Patrick Delaunay50599142018-07-09 15:17:19 +02001014 compatible = "st,stm32-dma";
1015 reg = <0x48001000 0x400>;
1016 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
1017 <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
1018 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
1019 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
1020 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
1021 <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
1022 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
1023 <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
1024 clocks = <&rcc DMA2>;
Patrick Delaunaydf0d20a2020-04-30 15:52:46 +02001025 resets = <&rcc DMA2_R>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001026 #dma-cells = <4>;
1027 st,mem2mem;
1028 dma-requests = <8>;
1029 };
1030
1031 dmamux1: dma-router@48002000 {
1032 compatible = "st,stm32h7-dmamux";
Patrick Delaunay6d397052021-01-11 12:33:36 +01001033 reg = <0x48002000 0x40>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001034 #dma-cells = <3>;
1035 dma-requests = <128>;
1036 dma-masters = <&dma1 &dma2>;
1037 dma-channels = <16>;
1038 clocks = <&rcc DMAMUX>;
Patrick Delaunaydf0d20a2020-04-30 15:52:46 +02001039 resets = <&rcc DMAMUX_R>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001040 };
1041
Patrice Chotardb5c87a42018-08-06 09:54:04 +02001042 adc: adc@48003000 {
1043 compatible = "st,stm32mp1-adc-core";
1044 reg = <0x48003000 0x400>;
1045 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
1046 <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
1047 clocks = <&rcc ADC12>, <&rcc ADC12_K>;
1048 clock-names = "bus", "adc";
1049 interrupt-controller;
Patrick Delaunay8c6e6132019-11-06 16:16:33 +01001050 st,syscfg = <&syscfg>;
Patrice Chotardb5c87a42018-08-06 09:54:04 +02001051 #interrupt-cells = <1>;
1052 #address-cells = <1>;
1053 #size-cells = <0>;
1054 status = "disabled";
1055
1056 adc1: adc@0 {
1057 compatible = "st,stm32mp1-adc";
1058 #io-channel-cells = <1>;
1059 reg = <0x0>;
1060 interrupt-parent = <&adc>;
1061 interrupts = <0>;
Patrice Chotard00442d02019-02-12 16:50:38 +01001062 dmas = <&dmamux1 9 0x400 0x01>;
1063 dma-names = "rx";
Patrice Chotardb5c87a42018-08-06 09:54:04 +02001064 status = "disabled";
1065 };
1066
1067 adc2: adc@100 {
1068 compatible = "st,stm32mp1-adc";
1069 #io-channel-cells = <1>;
1070 reg = <0x100>;
1071 interrupt-parent = <&adc>;
1072 interrupts = <1>;
Patrice Chotard00442d02019-02-12 16:50:38 +01001073 dmas = <&dmamux1 10 0x400 0x01>;
1074 dma-names = "rx";
Patrice Chotardb5c87a42018-08-06 09:54:04 +02001075 status = "disabled";
1076 };
1077 };
1078
Patrick Delaunaye48a0d42021-06-29 12:01:07 +02001079 sdmmc3: mmc@48004000 {
Patrick Delaunaya3705302019-07-11 11:15:28 +02001080 compatible = "arm,pl18x", "arm,primecell";
Patrick Delaunay6d397052021-01-11 12:33:36 +01001081 arm,primecell-periphid = <0x00253180>;
Patrick Delaunaya3705302019-07-11 11:15:28 +02001082 reg = <0x48004000 0x400>;
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001083 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
1084 interrupt-names = "cmd_irq";
Patrick Delaunay50599142018-07-09 15:17:19 +02001085 clocks = <&rcc SDMMC3_K>;
Patrick Delaunaya3705302019-07-11 11:15:28 +02001086 clock-names = "apb_pclk";
Patrick Delaunay50599142018-07-09 15:17:19 +02001087 resets = <&rcc SDMMC3_R>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001088 cap-sd-highspeed;
1089 cap-mmc-highspeed;
1090 max-frequency = <120000000>;
1091 status = "disabled";
1092 };
1093
Patrice Chotard18cb6f52018-08-10 17:12:11 +02001094 usbotg_hs: usb-otg@49000000 {
Patrick Delaunaydf0d20a2020-04-30 15:52:46 +02001095 compatible = "st,stm32mp15-hsotg", "snps,dwc2";
Patrice Chotard18cb6f52018-08-10 17:12:11 +02001096 reg = <0x49000000 0x10000>;
1097 clocks = <&rcc USBO_K>;
1098 clock-names = "otg";
1099 resets = <&rcc USBO_R>;
1100 reset-names = "dwc2";
1101 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay6d397052021-01-11 12:33:36 +01001102 g-rx-fifo-size = <512>;
Patrice Chotard18cb6f52018-08-10 17:12:11 +02001103 g-np-tx-fifo-size = <32>;
Patrick Delaunay6d397052021-01-11 12:33:36 +01001104 g-tx-fifo-size = <256 16 16 16 16 16 16 16>;
Patrice Chotard18cb6f52018-08-10 17:12:11 +02001105 dr_mode = "otg";
Patrick Delaunay37868aa2021-12-17 16:30:22 +01001106 otg-rev = <0x200>;
Patrick Delaunay6ba88cd2019-03-29 15:42:11 +01001107 usb33d-supply = <&usb33>;
Patrice Chotard18cb6f52018-08-10 17:12:11 +02001108 status = "disabled";
1109 };
1110
Benjamin Gaignard77611122018-11-27 13:49:52 +01001111 hwspinlock: hwspinlock@4c000000 {
1112 compatible = "st,stm32-hwspinlock";
1113 #hwlock-cells = <1>;
1114 reg = <0x4c000000 0x400>;
1115 clocks = <&rcc HSEM>;
1116 clock-names = "hwspinlock";
Benjamin Gaignard77611122018-11-27 13:49:52 +01001117 };
1118
Fabien Dessennec2a97d32019-05-14 11:20:37 +02001119 ipcc: mailbox@4c001000 {
1120 compatible = "st,stm32mp1-ipcc";
1121 #mbox-cells = <1>;
1122 reg = <0x4c001000 0x400>;
1123 st,proc-id = <0>;
1124 interrupts-extended =
1125 <&intc GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
Patrick Delaunaya3705302019-07-11 11:15:28 +02001126 <&intc GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
1127 <&exti 61 1>;
1128 interrupt-names = "rx", "tx", "wakeup";
Fabien Dessennec2a97d32019-05-14 11:20:37 +02001129 clocks = <&rcc IPCC>;
Patrick Delaunaya3705302019-07-11 11:15:28 +02001130 wakeup-source;
Fabien Dessennec2a97d32019-05-14 11:20:37 +02001131 status = "disabled";
1132 };
1133
Patrick Delaunay708cae72019-07-30 19:16:12 +02001134 dcmi: dcmi@4c006000 {
1135 compatible = "st,stm32-dcmi";
1136 reg = <0x4c006000 0x400>;
1137 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
1138 resets = <&rcc CAMITF_R>;
1139 clocks = <&rcc DCMI>;
1140 clock-names = "mclk";
Patrick Delaunay6d397052021-01-11 12:33:36 +01001141 dmas = <&dmamux1 75 0x400 0x01>;
Patrick Delaunay708cae72019-07-30 19:16:12 +02001142 dma-names = "tx";
1143 status = "disabled";
1144 };
1145
Patrick Delaunay50599142018-07-09 15:17:19 +02001146 rcc: rcc@50000000 {
1147 compatible = "st,stm32mp1-rcc", "syscon";
1148 reg = <0x50000000 0x1000>;
1149 #clock-cells = <1>;
1150 #reset-cells = <1>;
Etienne Carriere212d3aa2021-02-24 11:19:41 +01001151
1152 clock-names = "hse", "hsi", "csi", "lse", "lsi";
1153 clocks = <&clk_hse>, <&clk_hsi>, <&clk_csi>,
1154 <&clk_lse>, <&clk_lsi>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001155 };
1156
Patrick Delaunay900494d2020-01-28 10:10:59 +01001157 pwr_regulators: pwr@50001000 {
1158 compatible = "st,stm32mp1,pwr-reg";
1159 reg = <0x50001000 0x10>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001160
Patrick Delaunay900494d2020-01-28 10:10:59 +01001161 reg11: reg11 {
1162 regulator-name = "reg11";
1163 regulator-min-microvolt = <1100000>;
1164 regulator-max-microvolt = <1100000>;
1165 };
Patrick Delaunay50599142018-07-09 15:17:19 +02001166
Patrick Delaunay900494d2020-01-28 10:10:59 +01001167 reg18: reg18 {
1168 regulator-name = "reg18";
1169 regulator-min-microvolt = <1800000>;
1170 regulator-max-microvolt = <1800000>;
1171 };
Patrick Delaunay50599142018-07-09 15:17:19 +02001172
Patrick Delaunay900494d2020-01-28 10:10:59 +01001173 usb33: usb33 {
1174 regulator-name = "usb33";
1175 regulator-min-microvolt = <3300000>;
1176 regulator-max-microvolt = <3300000>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001177 };
1178 };
1179
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +02001180 pwr_mcu: pwr_mcu@50001014 {
Patrick Delaunay551efca2020-09-16 10:01:32 +02001181 compatible = "st,stm32mp151-pwr-mcu", "syscon";
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +02001182 reg = <0x50001014 0x4>;
1183 };
1184
Patrick Delaunay50599142018-07-09 15:17:19 +02001185 exti: interrupt-controller@5000d000 {
1186 compatible = "st,stm32mp1-exti", "syscon";
1187 interrupt-controller;
1188 #interrupt-cells = <2>;
1189 reg = <0x5000d000 0x400>;
1190 };
1191
Patrice Chotard00442d02019-02-12 16:50:38 +01001192 syscfg: syscon@50020000 {
Patrick Delaunay63ae49e2019-02-27 17:01:23 +01001193 compatible = "st,stm32mp157-syscfg", "syscon";
Patrick Delaunay50599142018-07-09 15:17:19 +02001194 reg = <0x50020000 0x400>;
Patrick Delaunaya3705302019-07-11 11:15:28 +02001195 clocks = <&rcc SYSCFG>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001196 };
1197
1198 lptimer2: timer@50021000 {
1199 #address-cells = <1>;
1200 #size-cells = <0>;
1201 compatible = "st,stm32-lptimer";
1202 reg = <0x50021000 0x400>;
Patrick Delaunay6d397052021-01-11 12:33:36 +01001203 interrupts-extended = <&exti 48 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001204 clocks = <&rcc LPTIM2_K>;
1205 clock-names = "mux";
Patrick Delaunay6d397052021-01-11 12:33:36 +01001206 wakeup-source;
Patrick Delaunay50599142018-07-09 15:17:19 +02001207 status = "disabled";
1208
1209 pwm {
1210 compatible = "st,stm32-pwm-lp";
1211 #pwm-cells = <3>;
1212 status = "disabled";
1213 };
1214
1215 trigger@1 {
1216 compatible = "st,stm32-lptimer-trigger";
1217 reg = <1>;
1218 status = "disabled";
1219 };
1220
1221 counter {
1222 compatible = "st,stm32-lptimer-counter";
1223 status = "disabled";
1224 };
1225 };
1226
1227 lptimer3: timer@50022000 {
1228 #address-cells = <1>;
1229 #size-cells = <0>;
1230 compatible = "st,stm32-lptimer";
1231 reg = <0x50022000 0x400>;
Patrick Delaunay6d397052021-01-11 12:33:36 +01001232 interrupts-extended = <&exti 50 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001233 clocks = <&rcc LPTIM3_K>;
1234 clock-names = "mux";
Patrick Delaunay6d397052021-01-11 12:33:36 +01001235 wakeup-source;
Patrick Delaunay50599142018-07-09 15:17:19 +02001236 status = "disabled";
1237
1238 pwm {
1239 compatible = "st,stm32-pwm-lp";
1240 #pwm-cells = <3>;
1241 status = "disabled";
1242 };
1243
1244 trigger@2 {
1245 compatible = "st,stm32-lptimer-trigger";
1246 reg = <2>;
1247 status = "disabled";
1248 };
1249 };
1250
1251 lptimer4: timer@50023000 {
1252 compatible = "st,stm32-lptimer";
1253 reg = <0x50023000 0x400>;
Patrick Delaunay6d397052021-01-11 12:33:36 +01001254 interrupts-extended = <&exti 52 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001255 clocks = <&rcc LPTIM4_K>;
1256 clock-names = "mux";
Patrick Delaunay6d397052021-01-11 12:33:36 +01001257 wakeup-source;
Patrick Delaunay50599142018-07-09 15:17:19 +02001258 status = "disabled";
1259
1260 pwm {
1261 compatible = "st,stm32-pwm-lp";
1262 #pwm-cells = <3>;
1263 status = "disabled";
1264 };
1265 };
1266
1267 lptimer5: timer@50024000 {
1268 compatible = "st,stm32-lptimer";
1269 reg = <0x50024000 0x400>;
Patrick Delaunay6d397052021-01-11 12:33:36 +01001270 interrupts-extended = <&exti 53 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001271 clocks = <&rcc LPTIM5_K>;
1272 clock-names = "mux";
Patrick Delaunay6d397052021-01-11 12:33:36 +01001273 wakeup-source;
Patrick Delaunay50599142018-07-09 15:17:19 +02001274 status = "disabled";
1275
1276 pwm {
1277 compatible = "st,stm32-pwm-lp";
1278 #pwm-cells = <3>;
1279 status = "disabled";
1280 };
1281 };
1282
1283 vrefbuf: vrefbuf@50025000 {
1284 compatible = "st,stm32-vrefbuf";
1285 reg = <0x50025000 0x8>;
1286 regulator-min-microvolt = <1500000>;
1287 regulator-max-microvolt = <2500000>;
1288 clocks = <&rcc VREF>;
1289 status = "disabled";
Patrick Delaunay708cae72019-07-30 19:16:12 +02001290 };
1291
1292 sai4: sai@50027000 {
1293 compatible = "st,stm32h7-sai";
1294 #address-cells = <1>;
1295 #size-cells = <1>;
1296 ranges = <0 0x50027000 0x400>;
1297 reg = <0x50027000 0x4>, <0x500273f0 0x10>;
1298 interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
1299 resets = <&rcc SAI4_R>;
1300 status = "disabled";
1301
1302 sai4a: audio-controller@50027004 {
1303 #sound-dai-cells = <0>;
1304 compatible = "st,stm32-sai-sub-a";
Patrick Delaunay37868aa2021-12-17 16:30:22 +01001305 reg = <0x04 0x20>;
Patrick Delaunay708cae72019-07-30 19:16:12 +02001306 clocks = <&rcc SAI4_K>;
1307 clock-names = "sai_ck";
1308 dmas = <&dmamux1 99 0x400 0x01>;
1309 status = "disabled";
1310 };
1311
1312 sai4b: audio-controller@50027024 {
1313 #sound-dai-cells = <0>;
1314 compatible = "st,stm32-sai-sub-b";
Patrick Delaunay37868aa2021-12-17 16:30:22 +01001315 reg = <0x24 0x20>;
Patrick Delaunay708cae72019-07-30 19:16:12 +02001316 clocks = <&rcc SAI4_K>;
1317 clock-names = "sai_ck";
1318 dmas = <&dmamux1 100 0x400 0x01>;
1319 status = "disabled";
1320 };
Patrick Delaunay50599142018-07-09 15:17:19 +02001321 };
1322
Patrick Delaunaya3705302019-07-11 11:15:28 +02001323 dts: thermal@50028000 {
1324 compatible = "st,stm32-thermal";
1325 reg = <0x50028000 0x100>;
1326 interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
1327 clocks = <&rcc TMPSENS>;
1328 clock-names = "pclk";
1329 #thermal-sensor-cells = <0>;
1330 status = "disabled";
1331 };
1332
Patrice Chotard00442d02019-02-12 16:50:38 +01001333 hash1: hash@54002000 {
1334 compatible = "st,stm32f756-hash";
1335 reg = <0x54002000 0x400>;
1336 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
1337 clocks = <&rcc HASH1>;
1338 resets = <&rcc HASH1_R>;
Patrick Delaunay6d397052021-01-11 12:33:36 +01001339 dmas = <&mdma1 31 0x2 0x1000A02 0x0 0x0>;
Patrice Chotard00442d02019-02-12 16:50:38 +01001340 dma-names = "in";
1341 dma-maxburst = <2>;
1342 status = "disabled";
1343 };
1344
Patrick Delaunay50599142018-07-09 15:17:19 +02001345 rng1: rng@54003000 {
1346 compatible = "st,stm32-rng";
1347 reg = <0x54003000 0x400>;
1348 clocks = <&rcc RNG1_K>;
1349 resets = <&rcc RNG1_R>;
1350 status = "disabled";
1351 };
1352
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001353 mdma1: dma-controller@58000000 {
Patrick Delaunay50599142018-07-09 15:17:19 +02001354 compatible = "st,stm32h7-mdma";
1355 reg = <0x58000000 0x1000>;
1356 interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
1357 clocks = <&rcc MDMA>;
Patrick Delaunaydf0d20a2020-04-30 15:52:46 +02001358 resets = <&rcc MDMA_R>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001359 #dma-cells = <5>;
1360 dma-channels = <32>;
1361 dma-requests = <48>;
1362 };
1363
Christophe Kerello45326d82020-07-31 09:53:44 +02001364 fmc: memory-controller@58002000 {
1365 #address-cells = <2>;
1366 #size-cells = <1>;
1367 compatible = "st,stm32mp1-fmc2-ebi";
1368 reg = <0x58002000 0x1000>;
Patrick Delaunaye0188ac2019-04-08 15:30:52 +02001369 clocks = <&rcc FMC_K>;
1370 resets = <&rcc FMC_R>;
1371 status = "disabled";
Christophe Kerello45326d82020-07-31 09:53:44 +02001372
1373 ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */
1374 <1 0 0x64000000 0x04000000>, /* EBI CS 2 */
1375 <2 0 0x68000000 0x04000000>, /* EBI CS 3 */
1376 <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */
1377 <4 0 0x80000000 0x10000000>; /* NAND */
1378
1379 nand-controller@4,0 {
1380 #address-cells = <1>;
1381 #size-cells = <0>;
1382 compatible = "st,stm32mp1-fmc2-nfc";
1383 reg = <4 0x00000000 0x1000>,
1384 <4 0x08010000 0x1000>,
1385 <4 0x08020000 0x1000>,
1386 <4 0x01000000 0x1000>,
1387 <4 0x09010000 0x1000>,
1388 <4 0x09020000 0x1000>;
1389 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
1390 dmas = <&mdma1 20 0x2 0x12000a02 0x0 0x0>,
1391 <&mdma1 20 0x2 0x12000a08 0x0 0x0>,
1392 <&mdma1 21 0x2 0x12000a0a 0x0 0x0>;
1393 dma-names = "tx", "rx", "ecc";
1394 status = "disabled";
1395 };
Patrick Delaunaye0188ac2019-04-08 15:30:52 +02001396 };
1397
Patrice Chotard00442d02019-02-12 16:50:38 +01001398 qspi: spi@58003000 {
Patrick Delaunay50599142018-07-09 15:17:19 +02001399 compatible = "st,stm32f469-qspi";
1400 reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
1401 reg-names = "qspi", "qspi_mm";
1402 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunayb22fa9d2021-07-27 12:15:12 +02001403 dmas = <&mdma1 22 0x2 0x10100002 0x0 0x0>,
1404 <&mdma1 22 0x2 0x10100008 0x0 0x0>;
Patrick Delaunay8c6e6132019-11-06 16:16:33 +01001405 dma-names = "tx", "rx";
Patrick Delaunay50599142018-07-09 15:17:19 +02001406 clocks = <&rcc QSPI_K>;
1407 resets = <&rcc QSPI_R>;
Patrick Delaunay551efca2020-09-16 10:01:32 +02001408 #address-cells = <1>;
1409 #size-cells = <0>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001410 status = "disabled";
1411 };
1412
Patrick Delaunaye48a0d42021-06-29 12:01:07 +02001413 sdmmc1: mmc@58005000 {
Patrick Delaunaya3705302019-07-11 11:15:28 +02001414 compatible = "arm,pl18x", "arm,primecell";
Patrick Delaunay6d397052021-01-11 12:33:36 +01001415 arm,primecell-periphid = <0x00253180>;
Patrick Delaunaya3705302019-07-11 11:15:28 +02001416 reg = <0x58005000 0x1000>;
1417 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001418 interrupt-names = "cmd_irq";
Patrick Delaunay50599142018-07-09 15:17:19 +02001419 clocks = <&rcc SDMMC1_K>;
Patrick Delaunaya3705302019-07-11 11:15:28 +02001420 clock-names = "apb_pclk";
Patrick Delaunay50599142018-07-09 15:17:19 +02001421 resets = <&rcc SDMMC1_R>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001422 cap-sd-highspeed;
1423 cap-mmc-highspeed;
1424 max-frequency = <120000000>;
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001425 status = "disabled";
Patrick Delaunay50599142018-07-09 15:17:19 +02001426 };
1427
Patrick Delaunaye48a0d42021-06-29 12:01:07 +02001428 sdmmc2: mmc@58007000 {
Patrick Delaunaya3705302019-07-11 11:15:28 +02001429 compatible = "arm,pl18x", "arm,primecell";
Patrick Delaunay6d397052021-01-11 12:33:36 +01001430 arm,primecell-periphid = <0x00253180>;
Patrick Delaunaya3705302019-07-11 11:15:28 +02001431 reg = <0x58007000 0x1000>;
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001432 interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
1433 interrupt-names = "cmd_irq";
Patrick Delaunay50599142018-07-09 15:17:19 +02001434 clocks = <&rcc SDMMC2_K>;
Patrick Delaunaya3705302019-07-11 11:15:28 +02001435 clock-names = "apb_pclk";
Patrick Delaunay50599142018-07-09 15:17:19 +02001436 resets = <&rcc SDMMC2_R>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001437 cap-sd-highspeed;
1438 cap-mmc-highspeed;
1439 max-frequency = <120000000>;
1440 status = "disabled";
1441 };
1442
1443 crc1: crc@58009000 {
1444 compatible = "st,stm32f7-crc";
1445 reg = <0x58009000 0x400>;
1446 clocks = <&rcc CRC1>;
1447 status = "disabled";
1448 };
1449
Patrice Chotard00442d02019-02-12 16:50:38 +01001450 ethernet0: ethernet@5800a000 {
1451 compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a";
1452 reg = <0x5800a000 0x2000>;
1453 reg-names = "stmmaceth";
Patrick Delaunaya3705302019-07-11 11:15:28 +02001454 interrupts-extended = <&intc GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
1455 interrupt-names = "macirq";
Patrice Chotard00442d02019-02-12 16:50:38 +01001456 clock-names = "stmmaceth",
1457 "mac-clk-tx",
1458 "mac-clk-rx",
Marek Vasuta375b262020-01-10 01:28:38 +01001459 "eth-ck",
Patrick Delaunaye48a0d42021-06-29 12:01:07 +02001460 "ptp_ref",
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +02001461 "ethstp";
Patrice Chotard00442d02019-02-12 16:50:38 +01001462 clocks = <&rcc ETHMAC>,
1463 <&rcc ETHTX>,
1464 <&rcc ETHRX>,
Marek Vasuta375b262020-01-10 01:28:38 +01001465 <&rcc ETHCK_K>,
Patrick Delaunaye48a0d42021-06-29 12:01:07 +02001466 <&rcc ETHPTP_K>,
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +02001467 <&rcc ETHSTP>;
Patrice Chotard00442d02019-02-12 16:50:38 +01001468 st,syscon = <&syscfg 0x4>;
1469 snps,mixed-burst;
1470 snps,pbl = <2>;
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001471 snps,en-tx-lpi-clockgating;
Patrice Chotard00442d02019-02-12 16:50:38 +01001472 snps,axi-config = <&stmmac_axi_config_0>;
1473 snps,tso;
1474 status = "disabled";
Patrick Delaunayb22fa9d2021-07-27 12:15:12 +02001475
1476 stmmac_axi_config_0: stmmac-axi-config {
1477 snps,wr_osr_lmt = <0x7>;
1478 snps,rd_osr_lmt = <0x7>;
1479 snps,blen = <0 0 0 0 16 8 4>;
1480 };
Patrice Chotard00442d02019-02-12 16:50:38 +01001481 };
1482
Patrick Delaunay6d397052021-01-11 12:33:36 +01001483 usbh_ohci: usb@5800c000 {
Patrick Delaunay50599142018-07-09 15:17:19 +02001484 compatible = "generic-ohci";
1485 reg = <0x5800c000 0x1000>;
Patrick Delaunay37868aa2021-12-17 16:30:22 +01001486 clocks = <&rcc USBH>, <&usbphyc>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001487 resets = <&rcc USBH_R>;
1488 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
1489 status = "disabled";
1490 };
1491
Patrick Delaunay6d397052021-01-11 12:33:36 +01001492 usbh_ehci: usb@5800d000 {
Patrick Delaunay50599142018-07-09 15:17:19 +02001493 compatible = "generic-ehci";
1494 reg = <0x5800d000 0x1000>;
1495 clocks = <&rcc USBH>;
1496 resets = <&rcc USBH_R>;
1497 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
1498 companion = <&usbh_ohci>;
1499 status = "disabled";
1500 };
1501
Patrick Delaunay50599142018-07-09 15:17:19 +02001502 ltdc: display-controller@5a001000 {
1503 compatible = "st,stm32-ltdc";
1504 reg = <0x5a001000 0x400>;
1505 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
1506 <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1507 clocks = <&rcc LTDC_PX>;
1508 clock-names = "lcd";
1509 resets = <&rcc LTDC_R>;
1510 status = "disabled";
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +02001511
1512 port {
1513 #address-cells = <1>;
1514 #size-cells = <0>;
1515 };
Patrick Delaunay50599142018-07-09 15:17:19 +02001516 };
1517
Patrice Chotard00442d02019-02-12 16:50:38 +01001518 iwdg2: watchdog@5a002000 {
1519 compatible = "st,stm32mp1-iwdg";
1520 reg = <0x5a002000 0x400>;
1521 clocks = <&rcc IWDG2>, <&rcc CK_LSI>;
1522 clock-names = "pclk", "lsi";
1523 status = "disabled";
1524 };
1525
Patrick Delaunay50599142018-07-09 15:17:19 +02001526 usbphyc: usbphyc@5a006000 {
1527 #address-cells = <1>;
1528 #size-cells = <0>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +02001529 #clock-cells = <0>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001530 compatible = "st,stm32mp1-usbphyc";
1531 reg = <0x5a006000 0x1000>;
1532 clocks = <&rcc USBPHY_K>;
1533 resets = <&rcc USBPHY_R>;
Patrick Delaunay6ba88cd2019-03-29 15:42:11 +01001534 vdda1v1-supply = <&reg11>;
1535 vdda1v8-supply = <&reg18>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001536 status = "disabled";
1537
1538 usbphyc_port0: usb-phy@0 {
1539 #phy-cells = <0>;
1540 reg = <0>;
1541 };
1542
1543 usbphyc_port1: usb-phy@1 {
1544 #phy-cells = <1>;
1545 reg = <1>;
1546 };
1547 };
1548
1549 usart1: serial@5c000000 {
1550 compatible = "st,stm32h7-uart";
1551 reg = <0x5c000000 0x400>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +02001552 interrupts-extended = <&exti 26 IRQ_TYPE_LEVEL_HIGH>;
Patrick Delaunay50599142018-07-09 15:17:19 +02001553 clocks = <&rcc USART1_K>;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +02001554 wakeup-source;
Patrick Delaunay50599142018-07-09 15:17:19 +02001555 status = "disabled";
1556 };
1557
Patrice Chotard00442d02019-02-12 16:50:38 +01001558 spi6: spi@5c001000 {
1559 #address-cells = <1>;
1560 #size-cells = <0>;
1561 compatible = "st,stm32h7-spi";
1562 reg = <0x5c001000 0x400>;
1563 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
1564 clocks = <&rcc SPI6_K>;
1565 resets = <&rcc SPI6_R>;
1566 dmas = <&mdma1 34 0x0 0x40008 0x0 0x0>,
1567 <&mdma1 35 0x0 0x40002 0x0 0x0>;
1568 dma-names = "rx", "tx";
1569 status = "disabled";
1570 };
1571
Patrick Delaunay50599142018-07-09 15:17:19 +02001572 i2c4: i2c@5c002000 {
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +02001573 compatible = "st,stm32mp15-i2c";
Patrick Delaunay50599142018-07-09 15:17:19 +02001574 reg = <0x5c002000 0x400>;
1575 interrupt-names = "event", "error";
1576 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
1577 <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1578 clocks = <&rcc I2C4_K>;
1579 resets = <&rcc I2C4_R>;
1580 #address-cells = <1>;
1581 #size-cells = <0>;
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +02001582 st,syscfg-fmp = <&syscfg 0x4 0x8>;
Patrick Delaunaydf0d20a2020-04-30 15:52:46 +02001583 wakeup-source;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +02001584 i2c-analog-filter;
Patrick Delaunay50599142018-07-09 15:17:19 +02001585 status = "disabled";
1586 };
1587
Patrice Chotard00442d02019-02-12 16:50:38 +01001588 rtc: rtc@5c004000 {
1589 compatible = "st,stm32mp1-rtc";
1590 reg = <0x5c004000 0x400>;
1591 clocks = <&rcc RTCAPB>, <&rcc RTC>;
1592 clock-names = "pclk", "rtc_ck";
1593 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
1594 status = "disabled";
1595 };
1596
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001597 bsec: efuse@5c005000 {
Patrick Delaunaybdd71362019-02-27 17:01:27 +01001598 compatible = "st,stm32mp15-bsec";
1599 reg = <0x5c005000 0x400>;
1600 #address-cells = <1>;
1601 #size-cells = <1>;
Patrick Delaunay0e20c1f2020-05-25 12:19:42 +02001602 part_number_otp: part_number_otp@4 {
1603 reg = <0x4 0x1>;
1604 };
Patrick Delaunaya3705302019-07-11 11:15:28 +02001605 ts_cal1: calib@5c {
1606 reg = <0x5c 0x2>;
1607 };
1608 ts_cal2: calib@5e {
1609 reg = <0x5e 0x2>;
1610 };
Patrick Delaunaybdd71362019-02-27 17:01:27 +01001611 };
1612
Patrick Delaunay50599142018-07-09 15:17:19 +02001613 i2c6: i2c@5c009000 {
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +02001614 compatible = "st,stm32mp15-i2c";
Patrick Delaunay50599142018-07-09 15:17:19 +02001615 reg = <0x5c009000 0x400>;
1616 interrupt-names = "event", "error";
1617 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
1618 <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
1619 clocks = <&rcc I2C6_K>;
1620 resets = <&rcc I2C6_R>;
1621 #address-cells = <1>;
1622 #size-cells = <0>;
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +02001623 st,syscfg-fmp = <&syscfg 0x4 0x20>;
Patrick Delaunaydf0d20a2020-04-30 15:52:46 +02001624 wakeup-source;
Patrick Delaunaye48a0d42021-06-29 12:01:07 +02001625 i2c-analog-filter;
Patrick Delaunay50599142018-07-09 15:17:19 +02001626 status = "disabled";
1627 };
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001628
Patrick Delaunay6d397052021-01-11 12:33:36 +01001629 tamp: tamp@5c00a000 {
1630 compatible = "st,stm32-tamp", "syscon", "simple-mfd";
1631 reg = <0x5c00a000 0x400>;
1632 };
1633
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001634 /*
1635 * Break node order to solve dependency probe issue between
1636 * pinctrl and exti.
1637 */
1638 pinctrl: pin-controller@50002000 {
1639 #address-cells = <1>;
1640 #size-cells = <1>;
1641 compatible = "st,stm32mp157-pinctrl";
1642 ranges = <0 0x50002000 0xa400>;
1643 interrupt-parent = <&exti>;
1644 st,syscfg = <&exti 0x60 0xff>;
1645 hwlocks = <&hwspinlock 0>;
1646 pins-are-numbered;
1647
1648 gpioa: gpio@50002000 {
1649 gpio-controller;
1650 #gpio-cells = <2>;
1651 interrupt-controller;
1652 #interrupt-cells = <2>;
1653 reg = <0x0 0x400>;
1654 clocks = <&rcc GPIOA>;
1655 st,bank-name = "GPIOA";
1656 status = "disabled";
1657 };
1658
1659 gpiob: gpio@50003000 {
1660 gpio-controller;
1661 #gpio-cells = <2>;
1662 interrupt-controller;
1663 #interrupt-cells = <2>;
1664 reg = <0x1000 0x400>;
1665 clocks = <&rcc GPIOB>;
1666 st,bank-name = "GPIOB";
1667 status = "disabled";
1668 };
1669
1670 gpioc: gpio@50004000 {
1671 gpio-controller;
1672 #gpio-cells = <2>;
1673 interrupt-controller;
1674 #interrupt-cells = <2>;
1675 reg = <0x2000 0x400>;
1676 clocks = <&rcc GPIOC>;
1677 st,bank-name = "GPIOC";
1678 status = "disabled";
1679 };
1680
1681 gpiod: gpio@50005000 {
1682 gpio-controller;
1683 #gpio-cells = <2>;
1684 interrupt-controller;
1685 #interrupt-cells = <2>;
1686 reg = <0x3000 0x400>;
1687 clocks = <&rcc GPIOD>;
1688 st,bank-name = "GPIOD";
1689 status = "disabled";
1690 };
1691
1692 gpioe: gpio@50006000 {
1693 gpio-controller;
1694 #gpio-cells = <2>;
1695 interrupt-controller;
1696 #interrupt-cells = <2>;
1697 reg = <0x4000 0x400>;
1698 clocks = <&rcc GPIOE>;
1699 st,bank-name = "GPIOE";
1700 status = "disabled";
1701 };
1702
1703 gpiof: gpio@50007000 {
1704 gpio-controller;
1705 #gpio-cells = <2>;
1706 interrupt-controller;
1707 #interrupt-cells = <2>;
1708 reg = <0x5000 0x400>;
1709 clocks = <&rcc GPIOF>;
1710 st,bank-name = "GPIOF";
1711 status = "disabled";
1712 };
1713
1714 gpiog: gpio@50008000 {
1715 gpio-controller;
1716 #gpio-cells = <2>;
1717 interrupt-controller;
1718 #interrupt-cells = <2>;
1719 reg = <0x6000 0x400>;
1720 clocks = <&rcc GPIOG>;
1721 st,bank-name = "GPIOG";
1722 status = "disabled";
1723 };
1724
1725 gpioh: gpio@50009000 {
1726 gpio-controller;
1727 #gpio-cells = <2>;
1728 interrupt-controller;
1729 #interrupt-cells = <2>;
1730 reg = <0x7000 0x400>;
1731 clocks = <&rcc GPIOH>;
1732 st,bank-name = "GPIOH";
1733 status = "disabled";
1734 };
1735
1736 gpioi: gpio@5000a000 {
1737 gpio-controller;
1738 #gpio-cells = <2>;
1739 interrupt-controller;
1740 #interrupt-cells = <2>;
1741 reg = <0x8000 0x400>;
1742 clocks = <&rcc GPIOI>;
1743 st,bank-name = "GPIOI";
1744 status = "disabled";
1745 };
1746
1747 gpioj: gpio@5000b000 {
1748 gpio-controller;
1749 #gpio-cells = <2>;
1750 interrupt-controller;
1751 #interrupt-cells = <2>;
1752 reg = <0x9000 0x400>;
1753 clocks = <&rcc GPIOJ>;
1754 st,bank-name = "GPIOJ";
1755 status = "disabled";
1756 };
1757
1758 gpiok: gpio@5000c000 {
1759 gpio-controller;
1760 #gpio-cells = <2>;
1761 interrupt-controller;
1762 #interrupt-cells = <2>;
1763 reg = <0xa000 0x400>;
1764 clocks = <&rcc GPIOK>;
1765 st,bank-name = "GPIOK";
1766 status = "disabled";
1767 };
1768 };
1769
1770 pinctrl_z: pin-controller-z@54004000 {
1771 #address-cells = <1>;
1772 #size-cells = <1>;
1773 compatible = "st,stm32mp157-z-pinctrl";
1774 ranges = <0 0x54004000 0x400>;
1775 pins-are-numbered;
1776 interrupt-parent = <&exti>;
1777 st,syscfg = <&exti 0x60 0xff>;
1778 hwlocks = <&hwspinlock 0>;
1779
1780 gpioz: gpio@54004000 {
1781 gpio-controller;
1782 #gpio-cells = <2>;
1783 interrupt-controller;
1784 #interrupt-cells = <2>;
1785 reg = <0 0x400>;
1786 clocks = <&rcc GPIOZ>;
1787 st,bank-name = "GPIOZ";
1788 st,bank-ioport = <11>;
1789 status = "disabled";
1790 };
1791 };
Patrick Delaunay50599142018-07-09 15:17:19 +02001792 };
Patrick Delaunay26c24b42019-08-02 15:07:18 +02001793
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001794 mlahb: ahb {
1795 compatible = "st,mlahb", "simple-bus";
Patrick Delaunay26c24b42019-08-02 15:07:18 +02001796 #address-cells = <1>;
1797 #size-cells = <1>;
Patrick Delaunay48c5e902020-03-06 17:54:41 +01001798 ranges;
Patrick Delaunay26c24b42019-08-02 15:07:18 +02001799 dma-ranges = <0x00000000 0x38000000 0x10000>,
1800 <0x10000000 0x10000000 0x60000>,
1801 <0x30000000 0x30000000 0x60000>;
1802
1803 m4_rproc: m4@10000000 {
1804 compatible = "st,stm32mp1-m4";
1805 reg = <0x10000000 0x40000>,
1806 <0x30000000 0x40000>,
1807 <0x38000000 0x10000>;
1808 resets = <&rcc MCU_R>;
1809 st,syscfg-holdboot = <&rcc 0x10C 0x1>;
1810 st,syscfg-tz = <&rcc 0x000 0x1>;
Patrick Delaunaycdc2ca12020-07-06 13:26:53 +02001811 st,syscfg-pdds = <&pwr_mcu 0x0 0x1>;
Patrick Delaunay6d397052021-01-11 12:33:36 +01001812 st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>;
1813 st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>;
Patrick Delaunay26c24b42019-08-02 15:07:18 +02001814 status = "disabled";
1815 };
1816 };
Patrick Delaunay50599142018-07-09 15:17:19 +02001817};