blob: 90c5c72c87ab7e7c7ac74b297922f080cb5ab7c1 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// 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";
20 clock-frequency = <650000000>;
21 device_type = "cpu";
22 reg = <0>;
23 };
24 };
25
26 arm-pmu {
27 compatible = "arm,cortex-a7-pmu";
28 interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
29 interrupt-affinity = <&cpu0>;
30 interrupt-parent = <&intc>;
31 };
32
33 psci {
34 compatible = "arm,psci-1.0";
35 method = "smc";
36 };
37
38 intc: interrupt-controller@a0021000 {
39 compatible = "arm,cortex-a7-gic";
40 #interrupt-cells = <3>;
41 interrupt-controller;
42 reg = <0xa0021000 0x1000>,
43 <0xa0022000 0x2000>;
44 };
45
46 timer {
47 compatible = "arm,armv7-timer";
48 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
49 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
50 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
51 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
52 interrupt-parent = <&intc>;
53 };
54
55 clocks {
56 clk_hse: clk-hse {
57 #clock-cells = <0>;
58 compatible = "fixed-clock";
59 clock-frequency = <24000000>;
60 };
61
62 clk_hsi: clk-hsi {
63 #clock-cells = <0>;
64 compatible = "fixed-clock";
65 clock-frequency = <64000000>;
66 };
67
68 clk_lse: clk-lse {
69 #clock-cells = <0>;
70 compatible = "fixed-clock";
71 clock-frequency = <32768>;
72 };
73
74 clk_lsi: clk-lsi {
75 #clock-cells = <0>;
76 compatible = "fixed-clock";
77 clock-frequency = <32000>;
78 };
79
80 clk_csi: clk-csi {
81 #clock-cells = <0>;
82 compatible = "fixed-clock";
83 clock-frequency = <4000000>;
84 };
85 };
86
87 thermal-zones {
88 cpu_thermal: cpu-thermal {
89 polling-delay-passive = <0>;
90 polling-delay = <0>;
91 thermal-sensors = <&dts>;
92
93 trips {
94 cpu_alert1: cpu-alert1 {
95 temperature = <85000>;
96 hysteresis = <0>;
97 type = "passive";
98 };
99
100 cpu-crit {
101 temperature = <120000>;
102 hysteresis = <0>;
103 type = "critical";
104 };
105 };
106
107 cooling-maps {
108 };
109 };
110 };
111
112 booster: regulator-booster {
113 compatible = "st,stm32mp1-booster";
114 st,syscfg = <&syscfg>;
115 status = "disabled";
116 };
117
118 soc {
119 compatible = "simple-bus";
120 #address-cells = <1>;
121 #size-cells = <1>;
122 interrupt-parent = <&intc>;
123 ranges;
124
Tom Rini762f85b2024-07-20 11:15:10 -0600125 ipcc: mailbox@4c001000 {
126 compatible = "st,stm32mp1-ipcc";
127 #mbox-cells = <1>;
128 reg = <0x4c001000 0x400>;
129 st,proc-id = <0>;
130 interrupts-extended =
131 <&exti 61 1>,
132 <&intc GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
133 interrupt-names = "rx", "tx";
134 clocks = <&rcc IPCC>;
135 wakeup-source;
Tom Rini53633a82024-02-29 12:33:36 -0500136 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -0600137 };
Tom Rini53633a82024-02-29 12:33:36 -0500138
Tom Rini762f85b2024-07-20 11:15:10 -0600139 rcc: rcc@50000000 {
140 compatible = "st,stm32mp1-rcc", "syscon";
141 reg = <0x50000000 0x1000>;
142 #clock-cells = <1>;
143 #reset-cells = <1>;
Tom Rini53633a82024-02-29 12:33:36 -0500144 };
145
Tom Rini762f85b2024-07-20 11:15:10 -0600146 pwr_regulators: pwr@50001000 {
147 compatible = "st,stm32mp1,pwr-reg";
148 reg = <0x50001000 0x10>;
Tom Rini53633a82024-02-29 12:33:36 -0500149
Tom Rini762f85b2024-07-20 11:15:10 -0600150 reg11: reg11 {
151 regulator-name = "reg11";
152 regulator-min-microvolt = <1100000>;
153 regulator-max-microvolt = <1100000>;
Tom Rini53633a82024-02-29 12:33:36 -0500154 };
155
Tom Rini762f85b2024-07-20 11:15:10 -0600156 reg18: reg18 {
157 regulator-name = "reg18";
158 regulator-min-microvolt = <1800000>;
159 regulator-max-microvolt = <1800000>;
Tom Rini53633a82024-02-29 12:33:36 -0500160 };
161
Tom Rini762f85b2024-07-20 11:15:10 -0600162 usb33: usb33 {
163 regulator-name = "usb33";
164 regulator-min-microvolt = <3300000>;
165 regulator-max-microvolt = <3300000>;
Tom Rini53633a82024-02-29 12:33:36 -0500166 };
167 };
168
Tom Rini762f85b2024-07-20 11:15:10 -0600169 pwr_mcu: pwr_mcu@50001014 {
170 compatible = "st,stm32mp151-pwr-mcu", "syscon";
171 reg = <0x50001014 0x4>;
172 };
Tom Rini53633a82024-02-29 12:33:36 -0500173
Tom Rini762f85b2024-07-20 11:15:10 -0600174 exti: interrupt-controller@5000d000 {
175 compatible = "st,stm32mp1-exti", "syscon";
176 interrupt-controller;
177 #interrupt-cells = <2>;
178 reg = <0x5000d000 0x400>;
179 interrupts-extended =
180 <&intc GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, /* EXTI_0 */
181 <&intc GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
182 <&intc GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
183 <&intc GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
184 <&intc GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
185 <&intc GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>,
186 <&intc GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>,
187 <&intc GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
188 <&intc GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
189 <&intc GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
190 <&intc GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, /* EXTI_10 */
191 <&intc GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
192 <&intc GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
193 <&intc GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
194 <&intc GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
195 <&intc GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
196 <&intc GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
197 <0>,
198 <0>,
199 <&intc GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
200 <0>, /* EXTI_20 */
201 <&intc GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
202 <&intc GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
203 <&intc GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
204 <&intc GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
205 <&intc GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
206 <&intc GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
207 <&intc GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
208 <&intc GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
209 <&intc GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
210 <&intc GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, /* EXTI_30 */
211 <&intc GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
212 <&intc GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>,
213 <&intc GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>,
214 <0>,
215 <0>,
216 <0>,
217 <0>,
218 <0>,
219 <0>,
220 <0>, /* EXTI_40 */
221 <0>,
222 <0>,
223 <0>,
224 <0>,
225 <0>,
226 <&intc GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>,
227 <&intc GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
228 <&intc GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
229 <0>,
230 <&intc GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>, /* EXTI_50 */
231 <0>,
232 <&intc GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
233 <&intc GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
234 <&intc GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
235 <0>,
236 <0>,
237 <0>,
238 <0>,
239 <0>,
240 <0>, /* EXTI_60 */
241 <&intc GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
242 <0>,
243 <0>,
244 <0>,
245 <&intc GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
246 <0>,
247 <0>,
248 <&intc GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
249 <0>,
250 <&intc GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>, /* EXTI_70 */
251 <0>,
252 <0>,
253 <&intc GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>;
254 };
Tom Rini53633a82024-02-29 12:33:36 -0500255
Tom Rini762f85b2024-07-20 11:15:10 -0600256 syscfg: syscon@50020000 {
257 compatible = "st,stm32mp157-syscfg", "syscon";
258 reg = <0x50020000 0x400>;
259 clocks = <&rcc SYSCFG>;
Tom Rini53633a82024-02-29 12:33:36 -0500260 };
261
Tom Rini762f85b2024-07-20 11:15:10 -0600262 dts: thermal@50028000 {
263 compatible = "st,stm32-thermal";
264 reg = <0x50028000 0x100>;
265 interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
266 clocks = <&rcc TMPSENS>;
267 clock-names = "pclk";
268 #thermal-sensor-cells = <0>;
Tom Rini53633a82024-02-29 12:33:36 -0500269 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -0600270 };
Tom Rini53633a82024-02-29 12:33:36 -0500271
Tom Rini762f85b2024-07-20 11:15:10 -0600272 mdma1: dma-controller@58000000 {
273 compatible = "st,stm32h7-mdma";
274 reg = <0x58000000 0x1000>;
275 interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
276 clocks = <&rcc MDMA>;
277 resets = <&rcc MDMA_R>;
278 #dma-cells = <5>;
279 dma-channels = <32>;
280 dma-requests = <48>;
Tom Rini53633a82024-02-29 12:33:36 -0500281 };
282
Tom Rini762f85b2024-07-20 11:15:10 -0600283 sdmmc1: mmc@58005000 {
284 compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
285 arm,primecell-periphid = <0x00253180>;
286 reg = <0x58005000 0x1000>;
287 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
288 clocks = <&rcc SDMMC1_K>;
289 clock-names = "apb_pclk";
290 resets = <&rcc SDMMC1_R>;
291 cap-sd-highspeed;
292 cap-mmc-highspeed;
293 max-frequency = <120000000>;
Tom Rini53633a82024-02-29 12:33:36 -0500294 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -0600295 };
Tom Rini53633a82024-02-29 12:33:36 -0500296
Tom Rini762f85b2024-07-20 11:15:10 -0600297 sdmmc2: mmc@58007000 {
298 compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
299 arm,primecell-periphid = <0x00253180>;
300 reg = <0x58007000 0x1000>;
301 interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
302 clocks = <&rcc SDMMC2_K>;
303 clock-names = "apb_pclk";
304 resets = <&rcc SDMMC2_R>;
305 cap-sd-highspeed;
306 cap-mmc-highspeed;
307 max-frequency = <120000000>;
308 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -0500309 };
310
Tom Rini762f85b2024-07-20 11:15:10 -0600311 crc1: crc@58009000 {
312 compatible = "st,stm32f7-crc";
313 reg = <0x58009000 0x400>;
314 clocks = <&rcc CRC1>;
Tom Rini53633a82024-02-29 12:33:36 -0500315 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -0600316 };
Tom Rini53633a82024-02-29 12:33:36 -0500317
Tom Rini762f85b2024-07-20 11:15:10 -0600318 usbh_ohci: usb@5800c000 {
319 compatible = "generic-ohci";
320 reg = <0x5800c000 0x1000>;
321 clocks = <&usbphyc>, <&rcc USBH>;
322 resets = <&rcc USBH_R>;
323 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
324 phys = <&usbphyc_port0>;
325 phy-names = "usb";
326 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -0500327 };
328
Tom Rini762f85b2024-07-20 11:15:10 -0600329 usbh_ehci: usb@5800d000 {
330 compatible = "generic-ehci";
331 reg = <0x5800d000 0x1000>;
332 clocks = <&usbphyc>, <&rcc USBH>;
333 resets = <&rcc USBH_R>;
334 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
335 companion = <&usbh_ohci>;
336 phys = <&usbphyc_port0>;
337 phy-names = "usb";
Tom Rini53633a82024-02-29 12:33:36 -0500338 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -0600339 };
Tom Rini53633a82024-02-29 12:33:36 -0500340
Tom Rini762f85b2024-07-20 11:15:10 -0600341 ltdc: display-controller@5a001000 {
342 compatible = "st,stm32-ltdc";
343 reg = <0x5a001000 0x400>;
344 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
345 <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
346 clocks = <&rcc LTDC_PX>;
347 clock-names = "lcd";
348 resets = <&rcc LTDC_R>;
349 status = "disabled";
350 };
Tom Rini53633a82024-02-29 12:33:36 -0500351
Tom Rini762f85b2024-07-20 11:15:10 -0600352 iwdg2: watchdog@5a002000 {
353 compatible = "st,stm32mp1-iwdg";
354 reg = <0x5a002000 0x400>;
355 clocks = <&rcc IWDG2>, <&rcc CK_LSI>;
356 clock-names = "pclk", "lsi";
357 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -0500358 };
359
Tom Rini762f85b2024-07-20 11:15:10 -0600360 usbphyc: usbphyc@5a006000 {
Tom Rini53633a82024-02-29 12:33:36 -0500361 #address-cells = <1>;
362 #size-cells = <0>;
Tom Rini762f85b2024-07-20 11:15:10 -0600363 #clock-cells = <0>;
364 compatible = "st,stm32mp1-usbphyc";
365 reg = <0x5a006000 0x1000>;
366 clocks = <&rcc USBPHY_K>;
367 resets = <&rcc USBPHY_R>;
368 vdda1v1-supply = <&reg11>;
369 vdda1v8-supply = <&reg18>;
Tom Rini53633a82024-02-29 12:33:36 -0500370 status = "disabled";
371
Tom Rini762f85b2024-07-20 11:15:10 -0600372 usbphyc_port0: usb-phy@0 {
373 #phy-cells = <0>;
374 reg = <0>;
Tom Rini53633a82024-02-29 12:33:36 -0500375 };
376
Tom Rini762f85b2024-07-20 11:15:10 -0600377 usbphyc_port1: usb-phy@1 {
378 #phy-cells = <1>;
379 reg = <1>;
Tom Rini53633a82024-02-29 12:33:36 -0500380 };
381 };
382
Tom Rini762f85b2024-07-20 11:15:10 -0600383 rtc: rtc@5c004000 {
384 compatible = "st,stm32mp1-rtc";
385 reg = <0x5c004000 0x400>;
386 clocks = <&rcc RTCAPB>, <&rcc RTC>;
387 clock-names = "pclk", "rtc_ck";
388 interrupts-extended = <&exti 19 IRQ_TYPE_LEVEL_HIGH>;
Tom Rini53633a82024-02-29 12:33:36 -0500389 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -0600390 };
Tom Rini53633a82024-02-29 12:33:36 -0500391
Tom Rini762f85b2024-07-20 11:15:10 -0600392 bsec: efuse@5c005000 {
393 compatible = "st,stm32mp15-bsec";
394 reg = <0x5c005000 0x400>;
395 #address-cells = <1>;
396 #size-cells = <1>;
397 part_number_otp: part-number-otp@4 {
398 reg = <0x4 0x1>;
Tom Rini53633a82024-02-29 12:33:36 -0500399 };
Tom Rini762f85b2024-07-20 11:15:10 -0600400 vrefint: vrefin-cal@52 {
401 reg = <0x52 0x2>;
402 };
403 ts_cal1: calib@5c {
404 reg = <0x5c 0x2>;
405 };
406 ts_cal2: calib@5e {
407 reg = <0x5e 0x2>;
Tom Rini53633a82024-02-29 12:33:36 -0500408 };
409 };
410
Tom Rini762f85b2024-07-20 11:15:10 -0600411 etzpc: bus@5c007000 {
412 compatible = "st,stm32-etzpc", "simple-bus";
413 reg = <0x5c007000 0x400>;
Tom Rini53633a82024-02-29 12:33:36 -0500414 #address-cells = <1>;
Tom Rini762f85b2024-07-20 11:15:10 -0600415 #size-cells = <1>;
416 #access-controller-cells = <1>;
417 ranges;
Tom Rini53633a82024-02-29 12:33:36 -0500418
Tom Rini762f85b2024-07-20 11:15:10 -0600419 timers2: timer@40000000 {
420 #address-cells = <1>;
421 #size-cells = <0>;
422 compatible = "st,stm32-timers";
423 reg = <0x40000000 0x400>;
424 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
425 interrupt-names = "global";
426 clocks = <&rcc TIM2_K>;
427 clock-names = "int";
428 dmas = <&dmamux1 18 0x400 0x1>,
429 <&dmamux1 19 0x400 0x1>,
430 <&dmamux1 20 0x400 0x1>,
431 <&dmamux1 21 0x400 0x1>,
432 <&dmamux1 22 0x400 0x1>;
433 dma-names = "ch1", "ch2", "ch3", "ch4", "up";
434 access-controllers = <&etzpc 16>;
Tom Rini53633a82024-02-29 12:33:36 -0500435 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -0600436
437 pwm {
438 compatible = "st,stm32-pwm";
439 #pwm-cells = <3>;
440 status = "disabled";
441 };
442
443 timer@1 {
444 compatible = "st,stm32h7-timer-trigger";
445 reg = <1>;
446 status = "disabled";
447 };
448
449 counter {
450 compatible = "st,stm32-timer-counter";
451 status = "disabled";
452 };
Tom Rini53633a82024-02-29 12:33:36 -0500453 };
454
Tom Rini762f85b2024-07-20 11:15:10 -0600455 timers3: timer@40001000 {
456 #address-cells = <1>;
457 #size-cells = <0>;
458 compatible = "st,stm32-timers";
459 reg = <0x40001000 0x400>;
460 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
461 interrupt-names = "global";
462 clocks = <&rcc TIM3_K>;
463 clock-names = "int";
464 dmas = <&dmamux1 23 0x400 0x1>,
465 <&dmamux1 24 0x400 0x1>,
466 <&dmamux1 25 0x400 0x1>,
467 <&dmamux1 26 0x400 0x1>,
468 <&dmamux1 27 0x400 0x1>,
469 <&dmamux1 28 0x400 0x1>;
470 dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
471 access-controllers = <&etzpc 17>;
Tom Rini53633a82024-02-29 12:33:36 -0500472 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -0600473
474 pwm {
475 compatible = "st,stm32-pwm";
476 #pwm-cells = <3>;
477 status = "disabled";
478 };
479
480 timer@2 {
481 compatible = "st,stm32h7-timer-trigger";
482 reg = <2>;
483 status = "disabled";
484 };
485
486 counter {
487 compatible = "st,stm32-timer-counter";
488 status = "disabled";
489 };
Tom Rini53633a82024-02-29 12:33:36 -0500490 };
491
Tom Rini762f85b2024-07-20 11:15:10 -0600492 timers4: timer@40002000 {
493 #address-cells = <1>;
494 #size-cells = <0>;
495 compatible = "st,stm32-timers";
496 reg = <0x40002000 0x400>;
497 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
498 interrupt-names = "global";
499 clocks = <&rcc TIM4_K>;
500 clock-names = "int";
501 dmas = <&dmamux1 29 0x400 0x1>,
502 <&dmamux1 30 0x400 0x1>,
503 <&dmamux1 31 0x400 0x1>,
504 <&dmamux1 32 0x400 0x1>;
505 dma-names = "ch1", "ch2", "ch3", "ch4";
506 access-controllers = <&etzpc 18>;
Tom Rini53633a82024-02-29 12:33:36 -0500507 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -0500508
Tom Rini762f85b2024-07-20 11:15:10 -0600509 pwm {
510 compatible = "st,stm32-pwm";
511 #pwm-cells = <3>;
512 status = "disabled";
513 };
Tom Rini53633a82024-02-29 12:33:36 -0500514
Tom Rini762f85b2024-07-20 11:15:10 -0600515 timer@3 {
516 compatible = "st,stm32h7-timer-trigger";
517 reg = <3>;
518 status = "disabled";
519 };
Tom Rini53633a82024-02-29 12:33:36 -0500520
Tom Rini762f85b2024-07-20 11:15:10 -0600521 counter {
522 compatible = "st,stm32-timer-counter";
523 status = "disabled";
524 };
525 };
Tom Rini53633a82024-02-29 12:33:36 -0500526
Tom Rini762f85b2024-07-20 11:15:10 -0600527 timers5: timer@40003000 {
528 #address-cells = <1>;
529 #size-cells = <0>;
530 compatible = "st,stm32-timers";
531 reg = <0x40003000 0x400>;
532 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
533 interrupt-names = "global";
534 clocks = <&rcc TIM5_K>;
535 clock-names = "int";
536 dmas = <&dmamux1 55 0x400 0x1>,
537 <&dmamux1 56 0x400 0x1>,
538 <&dmamux1 57 0x400 0x1>,
539 <&dmamux1 58 0x400 0x1>,
540 <&dmamux1 59 0x400 0x1>,
541 <&dmamux1 60 0x400 0x1>;
542 dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
543 access-controllers = <&etzpc 19>;
544 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -0500545
Tom Rini762f85b2024-07-20 11:15:10 -0600546 pwm {
547 compatible = "st,stm32-pwm";
548 #pwm-cells = <3>;
549 status = "disabled";
550 };
Tom Rini53633a82024-02-29 12:33:36 -0500551
Tom Rini762f85b2024-07-20 11:15:10 -0600552 timer@4 {
553 compatible = "st,stm32h7-timer-trigger";
554 reg = <4>;
555 status = "disabled";
556 };
Tom Rini53633a82024-02-29 12:33:36 -0500557
Tom Rini762f85b2024-07-20 11:15:10 -0600558 counter {
559 compatible = "st,stm32-timer-counter";
560 status = "disabled";
561 };
562 };
Tom Rini53633a82024-02-29 12:33:36 -0500563
Tom Rini762f85b2024-07-20 11:15:10 -0600564 timers6: timer@40004000 {
565 #address-cells = <1>;
566 #size-cells = <0>;
567 compatible = "st,stm32-timers";
568 reg = <0x40004000 0x400>;
569 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
570 interrupt-names = "global";
571 clocks = <&rcc TIM6_K>;
572 clock-names = "int";
573 dmas = <&dmamux1 69 0x400 0x1>;
574 dma-names = "up";
575 access-controllers = <&etzpc 20>;
576 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -0500577
Tom Rini762f85b2024-07-20 11:15:10 -0600578 timer@5 {
579 compatible = "st,stm32h7-timer-trigger";
580 reg = <5>;
581 status = "disabled";
582 };
583 };
Tom Rini53633a82024-02-29 12:33:36 -0500584
Tom Rini762f85b2024-07-20 11:15:10 -0600585 timers7: timer@40005000 {
586 #address-cells = <1>;
587 #size-cells = <0>;
588 compatible = "st,stm32-timers";
589 reg = <0x40005000 0x400>;
590 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
591 interrupt-names = "global";
592 clocks = <&rcc TIM7_K>;
593 clock-names = "int";
594 dmas = <&dmamux1 70 0x400 0x1>;
595 dma-names = "up";
596 access-controllers = <&etzpc 21>;
597 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -0500598
Tom Rini762f85b2024-07-20 11:15:10 -0600599 timer@6 {
600 compatible = "st,stm32h7-timer-trigger";
601 reg = <6>;
602 status = "disabled";
603 };
604 };
Tom Rini53633a82024-02-29 12:33:36 -0500605
Tom Rini762f85b2024-07-20 11:15:10 -0600606 timers12: timer@40006000 {
607 #address-cells = <1>;
608 #size-cells = <0>;
609 compatible = "st,stm32-timers";
610 reg = <0x40006000 0x400>;
611 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
612 interrupt-names = "global";
613 clocks = <&rcc TIM12_K>;
614 clock-names = "int";
615 access-controllers = <&etzpc 22>;
616 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -0500617
Tom Rini762f85b2024-07-20 11:15:10 -0600618 pwm {
619 compatible = "st,stm32-pwm";
620 #pwm-cells = <3>;
621 status = "disabled";
622 };
Tom Rini53633a82024-02-29 12:33:36 -0500623
Tom Rini762f85b2024-07-20 11:15:10 -0600624 timer@11 {
625 compatible = "st,stm32h7-timer-trigger";
626 reg = <11>;
627 status = "disabled";
628 };
629 };
Tom Rini53633a82024-02-29 12:33:36 -0500630
Tom Rini762f85b2024-07-20 11:15:10 -0600631 timers13: timer@40007000 {
632 #address-cells = <1>;
633 #size-cells = <0>;
634 compatible = "st,stm32-timers";
635 reg = <0x40007000 0x400>;
636 interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
637 interrupt-names = "global";
638 clocks = <&rcc TIM13_K>;
639 clock-names = "int";
640 access-controllers = <&etzpc 23>;
Tom Rini53633a82024-02-29 12:33:36 -0500641 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -0600642
643 pwm {
644 compatible = "st,stm32-pwm";
645 #pwm-cells = <3>;
646 status = "disabled";
647 };
648
649 timer@12 {
650 compatible = "st,stm32h7-timer-trigger";
651 reg = <12>;
652 status = "disabled";
653 };
Tom Rini53633a82024-02-29 12:33:36 -0500654 };
655
Tom Rini762f85b2024-07-20 11:15:10 -0600656 timers14: timer@40008000 {
657 #address-cells = <1>;
658 #size-cells = <0>;
659 compatible = "st,stm32-timers";
660 reg = <0x40008000 0x400>;
661 interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
662 interrupt-names = "global";
663 clocks = <&rcc TIM14_K>;
664 clock-names = "int";
665 access-controllers = <&etzpc 24>;
Tom Rini53633a82024-02-29 12:33:36 -0500666 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -0600667
668 pwm {
669 compatible = "st,stm32-pwm";
670 #pwm-cells = <3>;
671 status = "disabled";
672 };
673
674 timer@13 {
675 compatible = "st,stm32h7-timer-trigger";
676 reg = <13>;
677 status = "disabled";
678 };
Tom Rini53633a82024-02-29 12:33:36 -0500679 };
Tom Rini53633a82024-02-29 12:33:36 -0500680
Tom Rini762f85b2024-07-20 11:15:10 -0600681 lptimer1: timer@40009000 {
682 #address-cells = <1>;
683 #size-cells = <0>;
684 compatible = "st,stm32-lptimer";
685 reg = <0x40009000 0x400>;
686 interrupts-extended = <&exti 47 IRQ_TYPE_LEVEL_HIGH>;
687 clocks = <&rcc LPTIM1_K>;
688 clock-names = "mux";
689 wakeup-source;
690 access-controllers = <&etzpc 25>;
691 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -0500692
Tom Rini762f85b2024-07-20 11:15:10 -0600693 pwm {
694 compatible = "st,stm32-pwm-lp";
695 #pwm-cells = <3>;
696 status = "disabled";
697 };
Tom Rini53633a82024-02-29 12:33:36 -0500698
Tom Rini762f85b2024-07-20 11:15:10 -0600699 trigger@0 {
700 compatible = "st,stm32-lptimer-trigger";
701 reg = <0>;
702 status = "disabled";
703 };
Tom Rini53633a82024-02-29 12:33:36 -0500704
Tom Rini762f85b2024-07-20 11:15:10 -0600705 counter {
706 compatible = "st,stm32-lptimer-counter";
707 status = "disabled";
708 };
Tom Rini53633a82024-02-29 12:33:36 -0500709 };
710
Tom Rini762f85b2024-07-20 11:15:10 -0600711 i2s2: audio-controller@4000b000 {
712 compatible = "st,stm32h7-i2s";
713 #sound-dai-cells = <0>;
714 reg = <0x4000b000 0x400>;
715 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
716 dmas = <&dmamux1 39 0x400 0x01>,
717 <&dmamux1 40 0x400 0x01>;
718 dma-names = "rx", "tx";
719 access-controllers = <&etzpc 27>;
Tom Rini53633a82024-02-29 12:33:36 -0500720 status = "disabled";
721 };
722
Tom Rini762f85b2024-07-20 11:15:10 -0600723 spi2: spi@4000b000 {
724 #address-cells = <1>;
725 #size-cells = <0>;
726 compatible = "st,stm32h7-spi";
727 reg = <0x4000b000 0x400>;
728 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
729 clocks = <&rcc SPI2_K>;
730 resets = <&rcc SPI2_R>;
731 dmas = <&dmamux1 39 0x400 0x05>,
732 <&dmamux1 40 0x400 0x05>;
733 dma-names = "rx", "tx";
734 access-controllers = <&etzpc 27>;
Tom Rini53633a82024-02-29 12:33:36 -0500735 status = "disabled";
736 };
Tom Rini53633a82024-02-29 12:33:36 -0500737
Tom Rini762f85b2024-07-20 11:15:10 -0600738 i2s3: audio-controller@4000c000 {
739 compatible = "st,stm32h7-i2s";
740 #sound-dai-cells = <0>;
741 reg = <0x4000c000 0x400>;
742 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
743 dmas = <&dmamux1 61 0x400 0x01>,
744 <&dmamux1 62 0x400 0x01>;
745 dma-names = "rx", "tx";
746 access-controllers = <&etzpc 28>;
Tom Rini53633a82024-02-29 12:33:36 -0500747 status = "disabled";
748 };
749
Tom Rini762f85b2024-07-20 11:15:10 -0600750 spi3: spi@4000c000 {
751 #address-cells = <1>;
752 #size-cells = <0>;
753 compatible = "st,stm32h7-spi";
754 reg = <0x4000c000 0x400>;
755 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
756 clocks = <&rcc SPI3_K>;
757 resets = <&rcc SPI3_R>;
758 dmas = <&dmamux1 61 0x400 0x05>,
759 <&dmamux1 62 0x400 0x05>;
760 dma-names = "rx", "tx";
761 access-controllers = <&etzpc 28>;
Tom Rini53633a82024-02-29 12:33:36 -0500762 status = "disabled";
763 };
764
Tom Rini762f85b2024-07-20 11:15:10 -0600765 spdifrx: audio-controller@4000d000 {
766 compatible = "st,stm32h7-spdifrx";
767 #sound-dai-cells = <0>;
768 reg = <0x4000d000 0x400>;
769 clocks = <&rcc SPDIF_K>;
770 clock-names = "kclk";
771 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
772 dmas = <&dmamux1 93 0x400 0x01>,
773 <&dmamux1 94 0x400 0x01>;
774 dma-names = "rx", "rx-ctrl";
775 access-controllers = <&etzpc 29>;
Tom Rini53633a82024-02-29 12:33:36 -0500776 status = "disabled";
777 };
Tom Rini53633a82024-02-29 12:33:36 -0500778
Tom Rini762f85b2024-07-20 11:15:10 -0600779 usart2: serial@4000e000 {
780 compatible = "st,stm32h7-uart";
781 reg = <0x4000e000 0x400>;
782 interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>;
783 clocks = <&rcc USART2_K>;
784 wakeup-source;
785 dmas = <&dmamux1 43 0x400 0x15>,
786 <&dmamux1 44 0x400 0x11>;
787 dma-names = "rx", "tx";
788 access-controllers = <&etzpc 30>;
789 status = "disabled";
790 };
Tom Rini53633a82024-02-29 12:33:36 -0500791
Tom Rini762f85b2024-07-20 11:15:10 -0600792 usart3: serial@4000f000 {
793 compatible = "st,stm32h7-uart";
794 reg = <0x4000f000 0x400>;
795 interrupts-extended = <&exti 28 IRQ_TYPE_LEVEL_HIGH>;
796 clocks = <&rcc USART3_K>;
797 wakeup-source;
798 dmas = <&dmamux1 45 0x400 0x15>,
799 <&dmamux1 46 0x400 0x11>;
800 dma-names = "rx", "tx";
801 access-controllers = <&etzpc 31>;
Tom Rini53633a82024-02-29 12:33:36 -0500802 status = "disabled";
803 };
804
Tom Rini762f85b2024-07-20 11:15:10 -0600805 uart4: serial@40010000 {
806 compatible = "st,stm32h7-uart";
807 reg = <0x40010000 0x400>;
808 interrupts-extended = <&exti 30 IRQ_TYPE_LEVEL_HIGH>;
809 clocks = <&rcc UART4_K>;
810 wakeup-source;
811 dmas = <&dmamux1 63 0x400 0x15>,
812 <&dmamux1 64 0x400 0x11>;
813 dma-names = "rx", "tx";
814 access-controllers = <&etzpc 32>;
Tom Rini53633a82024-02-29 12:33:36 -0500815 status = "disabled";
816 };
Tom Rini53633a82024-02-29 12:33:36 -0500817
Tom Rini762f85b2024-07-20 11:15:10 -0600818 uart5: serial@40011000 {
819 compatible = "st,stm32h7-uart";
820 reg = <0x40011000 0x400>;
821 interrupts-extended = <&exti 31 IRQ_TYPE_LEVEL_HIGH>;
822 clocks = <&rcc UART5_K>;
823 wakeup-source;
824 dmas = <&dmamux1 65 0x400 0x15>,
825 <&dmamux1 66 0x400 0x11>;
826 dma-names = "rx", "tx";
827 access-controllers = <&etzpc 33>;
828 status = "disabled";
829 };
Tom Rini53633a82024-02-29 12:33:36 -0500830
Tom Rini762f85b2024-07-20 11:15:10 -0600831 i2c1: i2c@40012000 {
832 compatible = "st,stm32mp15-i2c";
833 reg = <0x40012000 0x400>;
834 interrupt-names = "event", "error";
835 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
836 <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
837 clocks = <&rcc I2C1_K>;
838 resets = <&rcc I2C1_R>;
839 #address-cells = <1>;
840 #size-cells = <0>;
841 st,syscfg-fmp = <&syscfg 0x4 0x1>;
842 wakeup-source;
843 i2c-analog-filter;
844 access-controllers = <&etzpc 34>;
Tom Rini53633a82024-02-29 12:33:36 -0500845 status = "disabled";
846 };
Tom Rini762f85b2024-07-20 11:15:10 -0600847
848 i2c2: i2c@40013000 {
849 compatible = "st,stm32mp15-i2c";
850 reg = <0x40013000 0x400>;
851 interrupt-names = "event", "error";
852 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
853 <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
854 clocks = <&rcc I2C2_K>;
855 resets = <&rcc I2C2_R>;
856 #address-cells = <1>;
857 #size-cells = <0>;
858 st,syscfg-fmp = <&syscfg 0x4 0x2>;
859 wakeup-source;
860 i2c-analog-filter;
861 access-controllers = <&etzpc 35>;
Tom Rini53633a82024-02-29 12:33:36 -0500862 status = "disabled";
863 };
Tom Rini53633a82024-02-29 12:33:36 -0500864
Tom Rini762f85b2024-07-20 11:15:10 -0600865 i2c3: i2c@40014000 {
866 compatible = "st,stm32mp15-i2c";
867 reg = <0x40014000 0x400>;
868 interrupt-names = "event", "error";
869 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
870 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
871 clocks = <&rcc I2C3_K>;
872 resets = <&rcc I2C3_R>;
873 #address-cells = <1>;
874 #size-cells = <0>;
875 st,syscfg-fmp = <&syscfg 0x4 0x4>;
876 wakeup-source;
877 i2c-analog-filter;
878 access-controllers = <&etzpc 36>;
879 status = "disabled";
880 };
Tom Rini53633a82024-02-29 12:33:36 -0500881
Tom Rini762f85b2024-07-20 11:15:10 -0600882 i2c5: i2c@40015000 {
883 compatible = "st,stm32mp15-i2c";
884 reg = <0x40015000 0x400>;
885 interrupt-names = "event", "error";
886 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
887 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
888 clocks = <&rcc I2C5_K>;
889 resets = <&rcc I2C5_R>;
890 #address-cells = <1>;
891 #size-cells = <0>;
892 st,syscfg-fmp = <&syscfg 0x4 0x10>;
893 wakeup-source;
894 i2c-analog-filter;
895 access-controllers = <&etzpc 37>;
Tom Rini53633a82024-02-29 12:33:36 -0500896 status = "disabled";
897 };
898
Tom Rini762f85b2024-07-20 11:15:10 -0600899 cec: cec@40016000 {
900 compatible = "st,stm32-cec";
901 reg = <0x40016000 0x400>;
902 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
903 clocks = <&rcc CEC_K>, <&rcc CEC>;
904 clock-names = "cec", "hdmi-cec";
905 access-controllers = <&etzpc 38>;
Tom Rini53633a82024-02-29 12:33:36 -0500906 status = "disabled";
907 };
Tom Rini53633a82024-02-29 12:33:36 -0500908
Tom Rini762f85b2024-07-20 11:15:10 -0600909 dac: dac@40017000 {
910 compatible = "st,stm32h7-dac-core";
911 reg = <0x40017000 0x400>;
912 clocks = <&rcc DAC12>;
913 clock-names = "pclk";
914 #address-cells = <1>;
915 #size-cells = <0>;
916 access-controllers = <&etzpc 39>;
917 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -0500918
Tom Rini762f85b2024-07-20 11:15:10 -0600919 dac1: dac@1 {
920 compatible = "st,stm32-dac";
921 #io-channel-cells = <1>;
922 reg = <1>;
923 status = "disabled";
924 };
Tom Rini53633a82024-02-29 12:33:36 -0500925
Tom Rini762f85b2024-07-20 11:15:10 -0600926 dac2: dac@2 {
927 compatible = "st,stm32-dac";
928 #io-channel-cells = <1>;
929 reg = <2>;
930 status = "disabled";
931 };
932 };
Tom Rini53633a82024-02-29 12:33:36 -0500933
Tom Rini762f85b2024-07-20 11:15:10 -0600934 uart7: serial@40018000 {
935 compatible = "st,stm32h7-uart";
936 reg = <0x40018000 0x400>;
937 interrupts-extended = <&exti 32 IRQ_TYPE_LEVEL_HIGH>;
938 clocks = <&rcc UART7_K>;
939 wakeup-source;
940 dmas = <&dmamux1 79 0x400 0x15>,
941 <&dmamux1 80 0x400 0x11>;
942 dma-names = "rx", "tx";
943 access-controllers = <&etzpc 40>;
Tom Rini53633a82024-02-29 12:33:36 -0500944 status = "disabled";
945 };
946
Tom Rini762f85b2024-07-20 11:15:10 -0600947 uart8: serial@40019000 {
948 compatible = "st,stm32h7-uart";
949 reg = <0x40019000 0x400>;
950 interrupts-extended = <&exti 33 IRQ_TYPE_LEVEL_HIGH>;
951 clocks = <&rcc UART8_K>;
952 wakeup-source;
953 dmas = <&dmamux1 81 0x400 0x15>,
954 <&dmamux1 82 0x400 0x11>;
955 dma-names = "rx", "tx";
956 access-controllers = <&etzpc 41>;
Tom Rini53633a82024-02-29 12:33:36 -0500957 status = "disabled";
958 };
Tom Rini53633a82024-02-29 12:33:36 -0500959
Tom Rini762f85b2024-07-20 11:15:10 -0600960 timers1: timer@44000000 {
961 #address-cells = <1>;
962 #size-cells = <0>;
963 compatible = "st,stm32-timers";
964 reg = <0x44000000 0x400>;
965 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
966 <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
967 <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
968 <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
969 interrupt-names = "brk", "up", "trg-com", "cc";
970 clocks = <&rcc TIM1_K>;
971 clock-names = "int";
972 dmas = <&dmamux1 11 0x400 0x1>,
973 <&dmamux1 12 0x400 0x1>,
974 <&dmamux1 13 0x400 0x1>,
975 <&dmamux1 14 0x400 0x1>,
976 <&dmamux1 15 0x400 0x1>,
977 <&dmamux1 16 0x400 0x1>,
978 <&dmamux1 17 0x400 0x1>;
979 dma-names = "ch1", "ch2", "ch3", "ch4",
980 "up", "trig", "com";
981 access-controllers = <&etzpc 48>;
Tom Rini53633a82024-02-29 12:33:36 -0500982 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -0600983
984 pwm {
985 compatible = "st,stm32-pwm";
986 #pwm-cells = <3>;
987 status = "disabled";
988 };
989
990 timer@0 {
991 compatible = "st,stm32h7-timer-trigger";
992 reg = <0>;
993 status = "disabled";
994 };
995
996 counter {
997 compatible = "st,stm32-timer-counter";
998 status = "disabled";
999 };
Tom Rini53633a82024-02-29 12:33:36 -05001000 };
1001
Tom Rini762f85b2024-07-20 11:15:10 -06001002 timers8: timer@44001000 {
1003 #address-cells = <1>;
1004 #size-cells = <0>;
1005 compatible = "st,stm32-timers";
1006 reg = <0x44001000 0x400>;
1007 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
1008 <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
1009 <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
1010 <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
1011 interrupt-names = "brk", "up", "trg-com", "cc";
1012 clocks = <&rcc TIM8_K>;
1013 clock-names = "int";
1014 dmas = <&dmamux1 47 0x400 0x1>,
1015 <&dmamux1 48 0x400 0x1>,
1016 <&dmamux1 49 0x400 0x1>,
1017 <&dmamux1 50 0x400 0x1>,
1018 <&dmamux1 51 0x400 0x1>,
1019 <&dmamux1 52 0x400 0x1>,
1020 <&dmamux1 53 0x400 0x1>;
1021 dma-names = "ch1", "ch2", "ch3", "ch4",
1022 "up", "trig", "com";
1023 access-controllers = <&etzpc 49>;
Tom Rini53633a82024-02-29 12:33:36 -05001024 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -05001025
Tom Rini762f85b2024-07-20 11:15:10 -06001026 pwm {
1027 compatible = "st,stm32-pwm";
1028 #pwm-cells = <3>;
1029 status = "disabled";
1030 };
Tom Rini53633a82024-02-29 12:33:36 -05001031
Tom Rini762f85b2024-07-20 11:15:10 -06001032 timer@7 {
1033 compatible = "st,stm32h7-timer-trigger";
1034 reg = <7>;
1035 status = "disabled";
1036 };
1037
1038 counter {
1039 compatible = "st,stm32-timer-counter";
1040 status = "disabled";
1041 };
1042 };
1043
1044 usart6: serial@44003000 {
1045 compatible = "st,stm32h7-uart";
1046 reg = <0x44003000 0x400>;
1047 interrupts-extended = <&exti 29 IRQ_TYPE_LEVEL_HIGH>;
1048 clocks = <&rcc USART6_K>;
1049 wakeup-source;
1050 dmas = <&dmamux1 71 0x400 0x15>,
1051 <&dmamux1 72 0x400 0x11>;
1052 dma-names = "rx", "tx";
1053 access-controllers = <&etzpc 51>;
Tom Rini53633a82024-02-29 12:33:36 -05001054 status = "disabled";
1055 };
1056
Tom Rini762f85b2024-07-20 11:15:10 -06001057 i2s1: audio-controller@44004000 {
1058 compatible = "st,stm32h7-i2s";
Tom Rini53633a82024-02-29 12:33:36 -05001059 #sound-dai-cells = <0>;
Tom Rini762f85b2024-07-20 11:15:10 -06001060 reg = <0x44004000 0x400>;
1061 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
1062 dmas = <&dmamux1 37 0x400 0x01>,
1063 <&dmamux1 38 0x400 0x01>;
1064 dma-names = "rx", "tx";
1065 access-controllers = <&etzpc 52>;
Tom Rini53633a82024-02-29 12:33:36 -05001066 status = "disabled";
1067 };
Tom Rini53633a82024-02-29 12:33:36 -05001068
Tom Rini762f85b2024-07-20 11:15:10 -06001069 spi1: spi@44004000 {
1070 #address-cells = <1>;
1071 #size-cells = <0>;
1072 compatible = "st,stm32h7-spi";
1073 reg = <0x44004000 0x400>;
1074 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
1075 clocks = <&rcc SPI1_K>;
1076 resets = <&rcc SPI1_R>;
1077 dmas = <&dmamux1 37 0x400 0x05>,
1078 <&dmamux1 38 0x400 0x05>;
1079 dma-names = "rx", "tx";
1080 access-controllers = <&etzpc 52>;
Tom Rini53633a82024-02-29 12:33:36 -05001081 status = "disabled";
1082 };
1083
Tom Rini762f85b2024-07-20 11:15:10 -06001084 spi4: spi@44005000 {
1085 #address-cells = <1>;
1086 #size-cells = <0>;
1087 compatible = "st,stm32h7-spi";
1088 reg = <0x44005000 0x400>;
1089 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
1090 clocks = <&rcc SPI4_K>;
1091 resets = <&rcc SPI4_R>;
1092 dmas = <&dmamux1 83 0x400 0x05>,
1093 <&dmamux1 84 0x400 0x05>;
1094 dma-names = "rx", "tx";
1095 access-controllers = <&etzpc 53>;
Tom Rini53633a82024-02-29 12:33:36 -05001096 status = "disabled";
1097 };
1098
Tom Rini762f85b2024-07-20 11:15:10 -06001099 timers15: timer@44006000 {
1100 #address-cells = <1>;
1101 #size-cells = <0>;
1102 compatible = "st,stm32-timers";
1103 reg = <0x44006000 0x400>;
1104 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
1105 interrupt-names = "global";
1106 clocks = <&rcc TIM15_K>;
1107 clock-names = "int";
1108 dmas = <&dmamux1 105 0x400 0x1>,
1109 <&dmamux1 106 0x400 0x1>,
1110 <&dmamux1 107 0x400 0x1>,
1111 <&dmamux1 108 0x400 0x1>;
1112 dma-names = "ch1", "up", "trig", "com";
1113 access-controllers = <&etzpc 54>;
Tom Rini53633a82024-02-29 12:33:36 -05001114 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -06001115
1116 pwm {
1117 compatible = "st,stm32-pwm";
1118 #pwm-cells = <3>;
1119 status = "disabled";
1120 };
1121
1122 timer@14 {
1123 compatible = "st,stm32h7-timer-trigger";
1124 reg = <14>;
1125 status = "disabled";
1126 };
Tom Rini53633a82024-02-29 12:33:36 -05001127 };
1128
Tom Rini762f85b2024-07-20 11:15:10 -06001129 timers16: timer@44007000 {
1130 #address-cells = <1>;
1131 #size-cells = <0>;
1132 compatible = "st,stm32-timers";
1133 reg = <0x44007000 0x400>;
1134 interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
1135 interrupt-names = "global";
1136 clocks = <&rcc TIM16_K>;
1137 clock-names = "int";
1138 dmas = <&dmamux1 109 0x400 0x1>,
1139 <&dmamux1 110 0x400 0x1>;
1140 dma-names = "ch1", "up";
1141 access-controllers = <&etzpc 55>;
Tom Rini53633a82024-02-29 12:33:36 -05001142 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -06001143
1144 pwm {
1145 compatible = "st,stm32-pwm";
1146 #pwm-cells = <3>;
1147 status = "disabled";
1148 };
1149 timer@15 {
1150 compatible = "st,stm32h7-timer-trigger";
1151 reg = <15>;
1152 status = "disabled";
1153 };
Tom Rini53633a82024-02-29 12:33:36 -05001154 };
1155
Tom Rini762f85b2024-07-20 11:15:10 -06001156 timers17: timer@44008000 {
1157 #address-cells = <1>;
1158 #size-cells = <0>;
1159 compatible = "st,stm32-timers";
1160 reg = <0x44008000 0x400>;
1161 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
1162 interrupt-names = "global";
1163 clocks = <&rcc TIM17_K>;
1164 clock-names = "int";
1165 dmas = <&dmamux1 111 0x400 0x1>,
1166 <&dmamux1 112 0x400 0x1>;
1167 dma-names = "ch1", "up";
1168 access-controllers = <&etzpc 56>;
Tom Rini53633a82024-02-29 12:33:36 -05001169 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -06001170
1171 pwm {
1172 compatible = "st,stm32-pwm";
1173 #pwm-cells = <3>;
1174 status = "disabled";
1175 };
1176
1177 timer@16 {
1178 compatible = "st,stm32h7-timer-trigger";
1179 reg = <16>;
1180 status = "disabled";
1181 };
Tom Rini53633a82024-02-29 12:33:36 -05001182 };
1183
Tom Rini762f85b2024-07-20 11:15:10 -06001184 spi5: spi@44009000 {
1185 #address-cells = <1>;
1186 #size-cells = <0>;
1187 compatible = "st,stm32h7-spi";
1188 reg = <0x44009000 0x400>;
1189 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
1190 clocks = <&rcc SPI5_K>;
1191 resets = <&rcc SPI5_R>;
1192 dmas = <&dmamux1 85 0x400 0x05>,
1193 <&dmamux1 86 0x400 0x05>;
1194 dma-names = "rx", "tx";
1195 access-controllers = <&etzpc 57>;
Tom Rini53633a82024-02-29 12:33:36 -05001196 status = "disabled";
1197 };
Tom Rini53633a82024-02-29 12:33:36 -05001198
Tom Rini762f85b2024-07-20 11:15:10 -06001199 sai1: sai@4400a000 {
1200 compatible = "st,stm32h7-sai";
1201 #address-cells = <1>;
1202 #size-cells = <1>;
1203 ranges = <0 0x4400a000 0x400>;
1204 reg = <0x4400a000 0x4>, <0x4400a3f0 0x10>;
1205 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
1206 resets = <&rcc SAI1_R>;
1207 access-controllers = <&etzpc 58>;
1208 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -05001209
Tom Rini762f85b2024-07-20 11:15:10 -06001210 sai1a: audio-controller@4400a004 {
1211 #sound-dai-cells = <0>;
Tom Rini53633a82024-02-29 12:33:36 -05001212
Tom Rini762f85b2024-07-20 11:15:10 -06001213 compatible = "st,stm32-sai-sub-a";
1214 reg = <0x4 0x20>;
1215 clocks = <&rcc SAI1_K>;
1216 clock-names = "sai_ck";
1217 dmas = <&dmamux1 87 0x400 0x01>;
1218 status = "disabled";
1219 };
Tom Rini53633a82024-02-29 12:33:36 -05001220
Tom Rini762f85b2024-07-20 11:15:10 -06001221 sai1b: audio-controller@4400a024 {
1222 #sound-dai-cells = <0>;
1223 compatible = "st,stm32-sai-sub-b";
1224 reg = <0x24 0x20>;
1225 clocks = <&rcc SAI1_K>;
1226 clock-names = "sai_ck";
1227 dmas = <&dmamux1 88 0x400 0x01>;
1228 status = "disabled";
1229 };
1230 };
Tom Rini53633a82024-02-29 12:33:36 -05001231
Tom Rini762f85b2024-07-20 11:15:10 -06001232 sai2: sai@4400b000 {
1233 compatible = "st,stm32h7-sai";
Tom Rini53633a82024-02-29 12:33:36 -05001234 #address-cells = <1>;
Tom Rini762f85b2024-07-20 11:15:10 -06001235 #size-cells = <1>;
1236 ranges = <0 0x4400b000 0x400>;
1237 reg = <0x4400b000 0x4>, <0x4400b3f0 0x10>;
1238 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
1239 resets = <&rcc SAI2_R>;
1240 access-controllers = <&etzpc 59>;
Tom Rini53633a82024-02-29 12:33:36 -05001241 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -06001242
1243 sai2a: audio-controller@4400b004 {
1244 #sound-dai-cells = <0>;
1245 compatible = "st,stm32-sai-sub-a";
1246 reg = <0x4 0x20>;
1247 clocks = <&rcc SAI2_K>;
1248 clock-names = "sai_ck";
1249 dmas = <&dmamux1 89 0x400 0x01>;
1250 status = "disabled";
1251 };
1252
1253 sai2b: audio-controller@4400b024 {
1254 #sound-dai-cells = <0>;
1255 compatible = "st,stm32-sai-sub-b";
1256 reg = <0x24 0x20>;
1257 clocks = <&rcc SAI2_K>;
1258 clock-names = "sai_ck";
1259 dmas = <&dmamux1 90 0x400 0x01>;
1260 status = "disabled";
1261 };
Tom Rini53633a82024-02-29 12:33:36 -05001262 };
1263
Tom Rini762f85b2024-07-20 11:15:10 -06001264 sai3: sai@4400c000 {
1265 compatible = "st,stm32h7-sai";
Tom Rini53633a82024-02-29 12:33:36 -05001266 #address-cells = <1>;
Tom Rini762f85b2024-07-20 11:15:10 -06001267 #size-cells = <1>;
1268 ranges = <0 0x4400c000 0x400>;
1269 reg = <0x4400c000 0x4>, <0x4400c3f0 0x10>;
1270 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
1271 resets = <&rcc SAI3_R>;
1272 access-controllers = <&etzpc 60>;
Tom Rini53633a82024-02-29 12:33:36 -05001273 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -06001274
1275 sai3a: audio-controller@4400c004 {
1276 #sound-dai-cells = <0>;
1277 compatible = "st,stm32-sai-sub-a";
1278 reg = <0x04 0x20>;
1279 clocks = <&rcc SAI3_K>;
1280 clock-names = "sai_ck";
1281 dmas = <&dmamux1 113 0x400 0x01>;
1282 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -05001283 };
Tom Rini762f85b2024-07-20 11:15:10 -06001284
1285 sai3b: audio-controller@4400c024 {
1286 #sound-dai-cells = <0>;
1287 compatible = "st,stm32-sai-sub-b";
1288 reg = <0x24 0x20>;
1289 clocks = <&rcc SAI3_K>;
1290 clock-names = "sai_ck";
1291 dmas = <&dmamux1 114 0x400 0x01>;
1292 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -05001293 };
1294 };
Tom Rini53633a82024-02-29 12:33:36 -05001295
Tom Rini762f85b2024-07-20 11:15:10 -06001296 dfsdm: dfsdm@4400d000 {
1297 compatible = "st,stm32mp1-dfsdm";
1298 reg = <0x4400d000 0x800>;
1299 clocks = <&rcc DFSDM_K>;
1300 clock-names = "dfsdm";
1301 #address-cells = <1>;
1302 #size-cells = <0>;
1303 access-controllers = <&etzpc 61>;
1304 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -05001305
Tom Rini762f85b2024-07-20 11:15:10 -06001306 dfsdm0: filter@0 {
1307 compatible = "st,stm32-dfsdm-adc";
1308 #io-channel-cells = <1>;
1309 reg = <0>;
1310 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
1311 dmas = <&dmamux1 101 0x400 0x01>;
1312 dma-names = "rx";
1313 status = "disabled";
1314 };
Tom Rini53633a82024-02-29 12:33:36 -05001315
Tom Rini762f85b2024-07-20 11:15:10 -06001316 dfsdm1: filter@1 {
1317 compatible = "st,stm32-dfsdm-adc";
1318 #io-channel-cells = <1>;
1319 reg = <1>;
1320 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
1321 dmas = <&dmamux1 102 0x400 0x01>;
1322 dma-names = "rx";
1323 status = "disabled";
1324 };
Tom Rini53633a82024-02-29 12:33:36 -05001325
Tom Rini762f85b2024-07-20 11:15:10 -06001326 dfsdm2: filter@2 {
1327 compatible = "st,stm32-dfsdm-adc";
1328 #io-channel-cells = <1>;
1329 reg = <2>;
1330 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
1331 dmas = <&dmamux1 103 0x400 0x01>;
1332 dma-names = "rx";
1333 status = "disabled";
1334 };
Tom Rini53633a82024-02-29 12:33:36 -05001335
Tom Rini762f85b2024-07-20 11:15:10 -06001336 dfsdm3: filter@3 {
1337 compatible = "st,stm32-dfsdm-adc";
1338 #io-channel-cells = <1>;
1339 reg = <3>;
1340 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
1341 dmas = <&dmamux1 104 0x400 0x01>;
1342 dma-names = "rx";
1343 status = "disabled";
1344 };
Tom Rini53633a82024-02-29 12:33:36 -05001345
Tom Rini762f85b2024-07-20 11:15:10 -06001346 dfsdm4: filter@4 {
1347 compatible = "st,stm32-dfsdm-adc";
1348 #io-channel-cells = <1>;
1349 reg = <4>;
1350 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
1351 dmas = <&dmamux1 91 0x400 0x01>;
1352 dma-names = "rx";
1353 status = "disabled";
1354 };
Tom Rini53633a82024-02-29 12:33:36 -05001355
Tom Rini762f85b2024-07-20 11:15:10 -06001356 dfsdm5: filter@5 {
1357 compatible = "st,stm32-dfsdm-adc";
1358 #io-channel-cells = <1>;
1359 reg = <5>;
1360 interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
1361 dmas = <&dmamux1 92 0x400 0x01>;
1362 dma-names = "rx";
1363 status = "disabled";
1364 };
Tom Rini53633a82024-02-29 12:33:36 -05001365 };
1366
Tom Rini762f85b2024-07-20 11:15:10 -06001367 dma1: dma-controller@48000000 {
1368 compatible = "st,stm32-dma";
1369 reg = <0x48000000 0x400>;
1370 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
1371 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
1372 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
1373 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
1374 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
1375 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
1376 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
1377 <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
1378 clocks = <&rcc DMA1>;
1379 resets = <&rcc DMA1_R>;
1380 #dma-cells = <4>;
1381 st,mem2mem;
1382 dma-requests = <8>;
1383 access-controllers = <&etzpc 88>;
Tom Rini53633a82024-02-29 12:33:36 -05001384 };
1385
Tom Rini762f85b2024-07-20 11:15:10 -06001386 dma2: dma-controller@48001000 {
1387 compatible = "st,stm32-dma";
1388 reg = <0x48001000 0x400>;
1389 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
1390 <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
1391 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
1392 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
1393 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
1394 <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
1395 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
1396 <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
1397 clocks = <&rcc DMA2>;
1398 resets = <&rcc DMA2_R>;
1399 #dma-cells = <4>;
1400 st,mem2mem;
1401 dma-requests = <8>;
1402 access-controllers = <&etzpc 89>;
Tom Rini53633a82024-02-29 12:33:36 -05001403 };
Tom Rini53633a82024-02-29 12:33:36 -05001404
Tom Rini762f85b2024-07-20 11:15:10 -06001405 dmamux1: dma-router@48002000 {
1406 compatible = "st,stm32h7-dmamux";
1407 reg = <0x48002000 0x40>;
1408 #dma-cells = <3>;
1409 dma-requests = <128>;
1410 dma-masters = <&dma1 &dma2>;
1411 dma-channels = <16>;
1412 clocks = <&rcc DMAMUX>;
1413 resets = <&rcc DMAMUX_R>;
1414 access-controllers = <&etzpc 90>;
1415 };
Tom Rini53633a82024-02-29 12:33:36 -05001416
Tom Rini762f85b2024-07-20 11:15:10 -06001417 adc: adc@48003000 {
1418 compatible = "st,stm32mp1-adc-core";
1419 reg = <0x48003000 0x400>;
1420 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
1421 <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
1422 clocks = <&rcc ADC12>, <&rcc ADC12_K>;
1423 clock-names = "bus", "adc";
1424 interrupt-controller;
1425 st,syscfg = <&syscfg>;
1426 #interrupt-cells = <1>;
1427 #address-cells = <1>;
1428 #size-cells = <0>;
1429 access-controllers = <&etzpc 72>;
1430 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -05001431
Tom Rini762f85b2024-07-20 11:15:10 -06001432 adc1: adc@0 {
1433 compatible = "st,stm32mp1-adc";
1434 #io-channel-cells = <1>;
1435 #address-cells = <1>;
1436 #size-cells = <0>;
1437 reg = <0x0>;
1438 interrupt-parent = <&adc>;
1439 interrupts = <0>;
1440 dmas = <&dmamux1 9 0x400 0x01>;
1441 dma-names = "rx";
1442 status = "disabled";
1443 };
Tom Rini53633a82024-02-29 12:33:36 -05001444
Tom Rini762f85b2024-07-20 11:15:10 -06001445 adc2: adc@100 {
1446 compatible = "st,stm32mp1-adc";
1447 #io-channel-cells = <1>;
1448 #address-cells = <1>;
1449 #size-cells = <0>;
1450 reg = <0x100>;
1451 interrupt-parent = <&adc>;
1452 interrupts = <1>;
1453 dmas = <&dmamux1 10 0x400 0x01>;
1454 dma-names = "rx";
1455 nvmem-cells = <&vrefint>;
1456 nvmem-cell-names = "vrefint";
1457 status = "disabled";
1458 channel@13 {
1459 reg = <13>;
1460 label = "vrefint";
1461 };
1462 channel@14 {
1463 reg = <14>;
1464 label = "vddcore";
1465 };
1466 };
1467 };
Tom Rini53633a82024-02-29 12:33:36 -05001468
Tom Rini762f85b2024-07-20 11:15:10 -06001469 sdmmc3: mmc@48004000 {
1470 compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
1471 arm,primecell-periphid = <0x00253180>;
1472 reg = <0x48004000 0x400>;
1473 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
1474 clocks = <&rcc SDMMC3_K>;
1475 clock-names = "apb_pclk";
1476 resets = <&rcc SDMMC3_R>;
1477 cap-sd-highspeed;
1478 cap-mmc-highspeed;
1479 max-frequency = <120000000>;
1480 access-controllers = <&etzpc 86>;
Tom Rini53633a82024-02-29 12:33:36 -05001481 status = "disabled";
1482 };
1483
Tom Rini762f85b2024-07-20 11:15:10 -06001484 usbotg_hs: usb-otg@49000000 {
1485 compatible = "st,stm32mp15-hsotg", "snps,dwc2";
1486 reg = <0x49000000 0x10000>;
1487 clocks = <&rcc USBO_K>, <&usbphyc>;
1488 clock-names = "otg", "utmi";
1489 resets = <&rcc USBO_R>;
1490 reset-names = "dwc2";
1491 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1492 g-rx-fifo-size = <512>;
1493 g-np-tx-fifo-size = <32>;
1494 g-tx-fifo-size = <256 16 16 16 16 16 16 16>;
1495 dr_mode = "otg";
1496 otg-rev = <0x200>;
1497 usb33d-supply = <&usb33>;
1498 access-controllers = <&etzpc 85>;
Tom Rini53633a82024-02-29 12:33:36 -05001499 status = "disabled";
1500 };
1501
Tom Rini762f85b2024-07-20 11:15:10 -06001502 dcmi: dcmi@4c006000 {
1503 compatible = "st,stm32-dcmi";
1504 reg = <0x4c006000 0x400>;
1505 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
1506 resets = <&rcc CAMITF_R>;
1507 clocks = <&rcc DCMI>;
1508 clock-names = "mclk";
1509 dmas = <&dmamux1 75 0x400 0x01>;
1510 dma-names = "tx";
1511 access-controllers = <&etzpc 70>;
Tom Rini53633a82024-02-29 12:33:36 -05001512 status = "disabled";
1513 };
Tom Rini53633a82024-02-29 12:33:36 -05001514
Tom Rini762f85b2024-07-20 11:15:10 -06001515 lptimer2: timer@50021000 {
1516 #address-cells = <1>;
1517 #size-cells = <0>;
1518 compatible = "st,stm32-lptimer";
1519 reg = <0x50021000 0x400>;
1520 interrupts-extended = <&exti 48 IRQ_TYPE_LEVEL_HIGH>;
1521 clocks = <&rcc LPTIM2_K>;
1522 clock-names = "mux";
1523 wakeup-source;
1524 access-controllers = <&etzpc 64>;
Tom Rini53633a82024-02-29 12:33:36 -05001525 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -06001526
1527 pwm {
1528 compatible = "st,stm32-pwm-lp";
1529 #pwm-cells = <3>;
1530 status = "disabled";
1531 };
1532
1533 trigger@1 {
1534 compatible = "st,stm32-lptimer-trigger";
1535 reg = <1>;
1536 status = "disabled";
1537 };
1538
1539 counter {
1540 compatible = "st,stm32-lptimer-counter";
1541 status = "disabled";
1542 };
Tom Rini53633a82024-02-29 12:33:36 -05001543 };
1544
Tom Rini762f85b2024-07-20 11:15:10 -06001545 lptimer3: timer@50022000 {
1546 #address-cells = <1>;
1547 #size-cells = <0>;
1548 compatible = "st,stm32-lptimer";
1549 reg = <0x50022000 0x400>;
1550 interrupts-extended = <&exti 50 IRQ_TYPE_LEVEL_HIGH>;
1551 clocks = <&rcc LPTIM3_K>;
1552 clock-names = "mux";
1553 wakeup-source;
1554 access-controllers = <&etzpc 65>;
Tom Rini53633a82024-02-29 12:33:36 -05001555 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -05001556
Tom Rini762f85b2024-07-20 11:15:10 -06001557 pwm {
1558 compatible = "st,stm32-pwm-lp";
1559 #pwm-cells = <3>;
1560 status = "disabled";
1561 };
Tom Rini53633a82024-02-29 12:33:36 -05001562
Tom Rini762f85b2024-07-20 11:15:10 -06001563 trigger@2 {
1564 compatible = "st,stm32-lptimer-trigger";
1565 reg = <2>;
1566 status = "disabled";
1567 };
Tom Rini53633a82024-02-29 12:33:36 -05001568 };
Tom Rini53633a82024-02-29 12:33:36 -05001569
Tom Rini762f85b2024-07-20 11:15:10 -06001570 lptimer4: timer@50023000 {
1571 compatible = "st,stm32-lptimer";
1572 reg = <0x50023000 0x400>;
1573 interrupts-extended = <&exti 52 IRQ_TYPE_LEVEL_HIGH>;
1574 clocks = <&rcc LPTIM4_K>;
1575 clock-names = "mux";
1576 wakeup-source;
1577 access-controllers = <&etzpc 66>;
Tom Rini53633a82024-02-29 12:33:36 -05001578 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -06001579
1580 pwm {
1581 compatible = "st,stm32-pwm-lp";
1582 #pwm-cells = <3>;
1583 status = "disabled";
1584 };
Tom Rini53633a82024-02-29 12:33:36 -05001585 };
Tom Rini53633a82024-02-29 12:33:36 -05001586
Tom Rini762f85b2024-07-20 11:15:10 -06001587 lptimer5: timer@50024000 {
1588 compatible = "st,stm32-lptimer";
1589 reg = <0x50024000 0x400>;
1590 interrupts-extended = <&exti 53 IRQ_TYPE_LEVEL_HIGH>;
1591 clocks = <&rcc LPTIM5_K>;
1592 clock-names = "mux";
1593 wakeup-source;
1594 access-controllers = <&etzpc 67>;
1595 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -05001596
Tom Rini762f85b2024-07-20 11:15:10 -06001597 pwm {
1598 compatible = "st,stm32-pwm-lp";
1599 #pwm-cells = <3>;
1600 status = "disabled";
1601 };
1602 };
Tom Rini53633a82024-02-29 12:33:36 -05001603
Tom Rini762f85b2024-07-20 11:15:10 -06001604 vrefbuf: vrefbuf@50025000 {
1605 compatible = "st,stm32-vrefbuf";
1606 reg = <0x50025000 0x8>;
1607 regulator-min-microvolt = <1500000>;
1608 regulator-max-microvolt = <2500000>;
1609 clocks = <&rcc VREF>;
1610 access-controllers = <&etzpc 69>;
Tom Rini53633a82024-02-29 12:33:36 -05001611 status = "disabled";
1612 };
1613
Tom Rini762f85b2024-07-20 11:15:10 -06001614 sai4: sai@50027000 {
1615 compatible = "st,stm32h7-sai";
1616 #address-cells = <1>;
1617 #size-cells = <1>;
1618 ranges = <0 0x50027000 0x400>;
1619 reg = <0x50027000 0x4>, <0x500273f0 0x10>;
1620 interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
1621 resets = <&rcc SAI4_R>;
1622 access-controllers = <&etzpc 68>;
Tom Rini53633a82024-02-29 12:33:36 -05001623 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -05001624
Tom Rini762f85b2024-07-20 11:15:10 -06001625 sai4a: audio-controller@50027004 {
1626 #sound-dai-cells = <0>;
1627 compatible = "st,stm32-sai-sub-a";
1628 reg = <0x04 0x20>;
1629 clocks = <&rcc SAI4_K>;
1630 clock-names = "sai_ck";
1631 dmas = <&dmamux1 99 0x400 0x01>;
1632 status = "disabled";
1633 };
Tom Rini53633a82024-02-29 12:33:36 -05001634
Tom Rini762f85b2024-07-20 11:15:10 -06001635 sai4b: audio-controller@50027024 {
1636 #sound-dai-cells = <0>;
1637 compatible = "st,stm32-sai-sub-b";
1638 reg = <0x24 0x20>;
1639 clocks = <&rcc SAI4_K>;
1640 clock-names = "sai_ck";
1641 dmas = <&dmamux1 100 0x400 0x01>;
1642 status = "disabled";
1643 };
1644 };
Tom Rini53633a82024-02-29 12:33:36 -05001645
Tom Rini762f85b2024-07-20 11:15:10 -06001646 hash1: hash@54002000 {
1647 compatible = "st,stm32f756-hash";
1648 reg = <0x54002000 0x400>;
1649 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
1650 clocks = <&rcc HASH1>;
1651 resets = <&rcc HASH1_R>;
1652 dmas = <&mdma1 31 0x2 0x1000A02 0x0 0x0>;
1653 dma-names = "in";
1654 dma-maxburst = <2>;
1655 access-controllers = <&etzpc 8>;
1656 status = "disabled";
1657 };
Tom Rini53633a82024-02-29 12:33:36 -05001658
Tom Rini762f85b2024-07-20 11:15:10 -06001659 rng1: rng@54003000 {
1660 compatible = "st,stm32-rng";
1661 reg = <0x54003000 0x400>;
1662 clocks = <&rcc RNG1_K>;
1663 resets = <&rcc RNG1_R>;
1664 access-controllers = <&etzpc 7>;
1665 status = "disabled";
1666 };
Tom Rini53633a82024-02-29 12:33:36 -05001667
Tom Rini762f85b2024-07-20 11:15:10 -06001668 fmc: memory-controller@58002000 {
1669 #address-cells = <2>;
1670 #size-cells = <1>;
1671 compatible = "st,stm32mp1-fmc2-ebi";
1672 reg = <0x58002000 0x1000>;
1673 clocks = <&rcc FMC_K>;
1674 resets = <&rcc FMC_R>;
1675 access-controllers = <&etzpc 91>;
1676 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -05001677
Tom Rini762f85b2024-07-20 11:15:10 -06001678 ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */
1679 <1 0 0x64000000 0x04000000>, /* EBI CS 2 */
1680 <2 0 0x68000000 0x04000000>, /* EBI CS 3 */
1681 <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */
1682 <4 0 0x80000000 0x10000000>; /* NAND */
Tom Rini53633a82024-02-29 12:33:36 -05001683
Tom Rini762f85b2024-07-20 11:15:10 -06001684 nand-controller@4,0 {
1685 #address-cells = <1>;
1686 #size-cells = <0>;
1687 compatible = "st,stm32mp1-fmc2-nfc";
1688 reg = <4 0x00000000 0x1000>,
1689 <4 0x08010000 0x1000>,
1690 <4 0x08020000 0x1000>,
1691 <4 0x01000000 0x1000>,
1692 <4 0x09010000 0x1000>,
1693 <4 0x09020000 0x1000>;
1694 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
1695 dmas = <&mdma1 20 0x2 0x12000a02 0x0 0x0>,
1696 <&mdma1 20 0x2 0x12000a08 0x0 0x0>,
1697 <&mdma1 21 0x2 0x12000a0a 0x0 0x0>;
1698 dma-names = "tx", "rx", "ecc";
1699 status = "disabled";
1700 };
1701 };
1702
1703 qspi: spi@58003000 {
1704 compatible = "st,stm32f469-qspi";
1705 reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
1706 reg-names = "qspi", "qspi_mm";
1707 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
1708 dmas = <&mdma1 22 0x2 0x10100002 0x0 0x0>,
1709 <&mdma1 22 0x2 0x10100008 0x0 0x0>;
1710 dma-names = "tx", "rx";
1711 clocks = <&rcc QSPI_K>;
1712 resets = <&rcc QSPI_R>;
Tom Rini53633a82024-02-29 12:33:36 -05001713 #address-cells = <1>;
1714 #size-cells = <0>;
Tom Rini762f85b2024-07-20 11:15:10 -06001715 access-controllers = <&etzpc 92>;
Tom Rini53633a82024-02-29 12:33:36 -05001716 status = "disabled";
1717 };
Tom Rini53633a82024-02-29 12:33:36 -05001718
Tom Rini762f85b2024-07-20 11:15:10 -06001719 ethernet0: ethernet@5800a000 {
1720 compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a";
1721 reg = <0x5800a000 0x2000>;
1722 reg-names = "stmmaceth";
1723 interrupts-extended = <&intc GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
1724 interrupt-names = "macirq";
1725 clock-names = "stmmaceth",
1726 "mac-clk-tx",
1727 "mac-clk-rx",
1728 "eth-ck",
1729 "ptp_ref",
1730 "ethstp";
1731 clocks = <&rcc ETHMAC>,
1732 <&rcc ETHTX>,
1733 <&rcc ETHRX>,
1734 <&rcc ETHCK_K>,
1735 <&rcc ETHPTP_K>,
1736 <&rcc ETHSTP>;
1737 st,syscon = <&syscfg 0x4>;
1738 snps,mixed-burst;
1739 snps,pbl = <2>;
1740 snps,en-tx-lpi-clockgating;
1741 snps,axi-config = <&stmmac_axi_config_0>;
1742 snps,tso;
1743 access-controllers = <&etzpc 94>;
1744 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -05001745
Tom Rini762f85b2024-07-20 11:15:10 -06001746 stmmac_axi_config_0: stmmac-axi-config {
1747 snps,wr_osr_lmt = <0x7>;
1748 snps,rd_osr_lmt = <0x7>;
1749 snps,blen = <0 0 0 0 16 8 4>;
1750 };
Tom Rini53633a82024-02-29 12:33:36 -05001751 };
Tom Rini53633a82024-02-29 12:33:36 -05001752
Tom Rini762f85b2024-07-20 11:15:10 -06001753 usart1: serial@5c000000 {
1754 compatible = "st,stm32h7-uart";
1755 reg = <0x5c000000 0x400>;
1756 interrupts-extended = <&exti 26 IRQ_TYPE_LEVEL_HIGH>;
1757 clocks = <&rcc USART1_K>;
1758 wakeup-source;
1759 access-controllers = <&etzpc 3>;
1760 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -05001761 };
1762
Tom Rini762f85b2024-07-20 11:15:10 -06001763 spi6: spi@5c001000 {
1764 #address-cells = <1>;
1765 #size-cells = <0>;
1766 compatible = "st,stm32h7-spi";
1767 reg = <0x5c001000 0x400>;
1768 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
1769 clocks = <&rcc SPI6_K>;
1770 resets = <&rcc SPI6_R>;
1771 dmas = <&mdma1 34 0x0 0x40008 0x0 0x0>,
1772 <&mdma1 35 0x0 0x40002 0x0 0x0>;
1773 access-controllers = <&etzpc 4>;
1774 dma-names = "rx", "tx";
1775 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -05001776 };
Tom Rini53633a82024-02-29 12:33:36 -05001777
Tom Rini762f85b2024-07-20 11:15:10 -06001778 i2c4: i2c@5c002000 {
1779 compatible = "st,stm32mp15-i2c";
1780 reg = <0x5c002000 0x400>;
1781 interrupt-names = "event", "error";
1782 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
1783 <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1784 clocks = <&rcc I2C4_K>;
1785 resets = <&rcc I2C4_R>;
1786 #address-cells = <1>;
1787 #size-cells = <0>;
1788 st,syscfg-fmp = <&syscfg 0x4 0x8>;
1789 wakeup-source;
1790 i2c-analog-filter;
1791 access-controllers = <&etzpc 5>;
1792 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -05001793 };
Tom Rini53633a82024-02-29 12:33:36 -05001794
Tom Rini762f85b2024-07-20 11:15:10 -06001795 i2c6: i2c@5c009000 {
1796 compatible = "st,stm32mp15-i2c";
1797 reg = <0x5c009000 0x400>;
1798 interrupt-names = "event", "error";
1799 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
1800 <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
1801 clocks = <&rcc I2C6_K>;
1802 resets = <&rcc I2C6_R>;
1803 #address-cells = <1>;
1804 #size-cells = <0>;
1805 st,syscfg-fmp = <&syscfg 0x4 0x20>;
1806 wakeup-source;
1807 i2c-analog-filter;
1808 access-controllers = <&etzpc 12>;
1809 status = "disabled";
1810 };
Tom Rini53633a82024-02-29 12:33:36 -05001811 };
1812
1813 tamp: tamp@5c00a000 {
1814 compatible = "st,stm32-tamp", "syscon", "simple-mfd";
1815 reg = <0x5c00a000 0x400>;
1816 };
1817
1818 /*
1819 * Break node order to solve dependency probe issue between
1820 * pinctrl and exti.
1821 */
1822 pinctrl: pinctrl@50002000 {
1823 #address-cells = <1>;
1824 #size-cells = <1>;
1825 compatible = "st,stm32mp157-pinctrl";
1826 ranges = <0 0x50002000 0xa400>;
1827 interrupt-parent = <&exti>;
1828 st,syscfg = <&exti 0x60 0xff>;
1829
1830 gpioa: gpio@50002000 {
1831 gpio-controller;
1832 #gpio-cells = <2>;
1833 interrupt-controller;
1834 #interrupt-cells = <2>;
1835 reg = <0x0 0x400>;
1836 clocks = <&rcc GPIOA>;
1837 st,bank-name = "GPIOA";
1838 status = "disabled";
1839 };
1840
1841 gpiob: gpio@50003000 {
1842 gpio-controller;
1843 #gpio-cells = <2>;
1844 interrupt-controller;
1845 #interrupt-cells = <2>;
1846 reg = <0x1000 0x400>;
1847 clocks = <&rcc GPIOB>;
1848 st,bank-name = "GPIOB";
1849 status = "disabled";
1850 };
1851
1852 gpioc: gpio@50004000 {
1853 gpio-controller;
1854 #gpio-cells = <2>;
1855 interrupt-controller;
1856 #interrupt-cells = <2>;
1857 reg = <0x2000 0x400>;
1858 clocks = <&rcc GPIOC>;
1859 st,bank-name = "GPIOC";
1860 status = "disabled";
1861 };
1862
1863 gpiod: gpio@50005000 {
1864 gpio-controller;
1865 #gpio-cells = <2>;
1866 interrupt-controller;
1867 #interrupt-cells = <2>;
1868 reg = <0x3000 0x400>;
1869 clocks = <&rcc GPIOD>;
1870 st,bank-name = "GPIOD";
1871 status = "disabled";
1872 };
1873
1874 gpioe: gpio@50006000 {
1875 gpio-controller;
1876 #gpio-cells = <2>;
1877 interrupt-controller;
1878 #interrupt-cells = <2>;
1879 reg = <0x4000 0x400>;
1880 clocks = <&rcc GPIOE>;
1881 st,bank-name = "GPIOE";
1882 status = "disabled";
1883 };
1884
1885 gpiof: gpio@50007000 {
1886 gpio-controller;
1887 #gpio-cells = <2>;
1888 interrupt-controller;
1889 #interrupt-cells = <2>;
1890 reg = <0x5000 0x400>;
1891 clocks = <&rcc GPIOF>;
1892 st,bank-name = "GPIOF";
1893 status = "disabled";
1894 };
1895
1896 gpiog: gpio@50008000 {
1897 gpio-controller;
1898 #gpio-cells = <2>;
1899 interrupt-controller;
1900 #interrupt-cells = <2>;
1901 reg = <0x6000 0x400>;
1902 clocks = <&rcc GPIOG>;
1903 st,bank-name = "GPIOG";
1904 status = "disabled";
1905 };
1906
1907 gpioh: gpio@50009000 {
1908 gpio-controller;
1909 #gpio-cells = <2>;
1910 interrupt-controller;
1911 #interrupt-cells = <2>;
1912 reg = <0x7000 0x400>;
1913 clocks = <&rcc GPIOH>;
1914 st,bank-name = "GPIOH";
1915 status = "disabled";
1916 };
1917
1918 gpioi: gpio@5000a000 {
1919 gpio-controller;
1920 #gpio-cells = <2>;
1921 interrupt-controller;
1922 #interrupt-cells = <2>;
1923 reg = <0x8000 0x400>;
1924 clocks = <&rcc GPIOI>;
1925 st,bank-name = "GPIOI";
1926 status = "disabled";
1927 };
1928
1929 gpioj: gpio@5000b000 {
1930 gpio-controller;
1931 #gpio-cells = <2>;
1932 interrupt-controller;
1933 #interrupt-cells = <2>;
1934 reg = <0x9000 0x400>;
1935 clocks = <&rcc GPIOJ>;
1936 st,bank-name = "GPIOJ";
1937 status = "disabled";
1938 };
1939
1940 gpiok: gpio@5000c000 {
1941 gpio-controller;
1942 #gpio-cells = <2>;
1943 interrupt-controller;
1944 #interrupt-cells = <2>;
1945 reg = <0xa000 0x400>;
1946 clocks = <&rcc GPIOK>;
1947 st,bank-name = "GPIOK";
1948 status = "disabled";
1949 };
1950 };
1951
1952 pinctrl_z: pinctrl@54004000 {
1953 #address-cells = <1>;
1954 #size-cells = <1>;
1955 compatible = "st,stm32mp157-z-pinctrl";
1956 ranges = <0 0x54004000 0x400>;
1957 interrupt-parent = <&exti>;
1958 st,syscfg = <&exti 0x60 0xff>;
1959
1960 gpioz: gpio@54004000 {
1961 gpio-controller;
1962 #gpio-cells = <2>;
1963 interrupt-controller;
1964 #interrupt-cells = <2>;
1965 reg = <0 0x400>;
1966 clocks = <&rcc GPIOZ>;
1967 st,bank-name = "GPIOZ";
1968 st,bank-ioport = <11>;
1969 status = "disabled";
1970 };
1971 };
1972 };
1973
1974 mlahb: ahb {
1975 compatible = "st,mlahb", "simple-bus";
1976 #address-cells = <1>;
1977 #size-cells = <1>;
1978 ranges;
1979 dma-ranges = <0x00000000 0x38000000 0x10000>,
1980 <0x10000000 0x10000000 0x60000>,
1981 <0x30000000 0x30000000 0x60000>;
1982
1983 m4_rproc: m4@10000000 {
1984 compatible = "st,stm32mp1-m4";
1985 reg = <0x10000000 0x40000>,
1986 <0x30000000 0x40000>,
1987 <0x38000000 0x10000>;
1988 resets = <&rcc MCU_R>;
1989 reset-names = "mcu_rst";
1990 st,syscfg-holdboot = <&rcc 0x10C 0x1>;
1991 st,syscfg-pdds = <&pwr_mcu 0x0 0x1>;
1992 st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>;
1993 st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>;
1994 status = "disabled";
1995 };
1996 };
1997};