blob: d94ba25472679e37d1374c13104c2fd1a0a4139e [file] [log] [blame]
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2/*
3 * Copyright (C) STMicroelectronics 2021 - All Rights Reserved
4 * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
5 */
6#include <dt-bindings/interrupt-controller/arm-gic.h>
Gabriel Fernandez80998802022-11-24 11:36:05 +01007#include <dt-bindings/clock/stm32mp13-clks.h>
8#include <dt-bindings/reset/stm32mp13-resets.h>
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02009
10/ {
11 #address-cells = <1>;
12 #size-cells = <1>;
13
14 cpus {
15 #address-cells = <1>;
16 #size-cells = <0>;
17
18 cpu0: cpu@0 {
19 compatible = "arm,cortex-a7";
20 device_type = "cpu";
21 reg = <0>;
22 };
23 };
24
25 arm-pmu {
26 compatible = "arm,cortex-a7-pmu";
27 interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
28 interrupt-affinity = <&cpu0>;
29 interrupt-parent = <&intc>;
30 };
31
Patrick Delaunayabf20ae2022-07-06 18:20:24 +020032 firmware {
Patrick Delaunay75785d42022-09-07 13:42:23 +020033 optee {
Patrick Delaunayabf20ae2022-07-06 18:20:24 +020034 method = "smc";
35 compatible = "linaro,optee-tz";
36 };
Patrick Delaunayad09d082022-07-06 18:20:25 +020037
38 scmi: scmi {
39 compatible = "linaro,scmi-optee";
40 #address-cells = <1>;
41 #size-cells = <0>;
42 linaro,optee-channel-id = <0>;
43 shmem = <&scmi_shm>;
44
45 scmi_clk: protocol@14 {
46 reg = <0x14>;
47 #clock-cells = <1>;
48 };
49
50 scmi_reset: protocol@16 {
51 reg = <0x16>;
52 #reset-cells = <1>;
53 };
54 };
Patrick Delaunayabf20ae2022-07-06 18:20:24 +020055 };
56
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +020057 intc: interrupt-controller@a0021000 {
58 compatible = "arm,cortex-a7-gic";
59 #interrupt-cells = <3>;
60 interrupt-controller;
61 reg = <0xa0021000 0x1000>,
62 <0xa0022000 0x2000>;
63 };
64
65 psci {
66 compatible = "arm,psci-1.0";
67 method = "smc";
68 };
69
70 timer {
71 compatible = "arm,armv7-timer";
72 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
73 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
74 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
75 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
76 interrupt-parent = <&intc>;
77 always-on;
78 };
79
Patrick Delaunay7f2cba42023-04-24 16:21:10 +020080 /* PWR 1v1, 1v8 and 3v3 regulators defined as fixed, waiting for SCMI */
81 reg11: reg11 {
82 compatible = "regulator-fixed";
83 regulator-name = "reg11";
84 regulator-min-microvolt = <1100000>;
85 regulator-max-microvolt = <1100000>;
86 };
87
88 reg18: reg18 {
89 compatible = "regulator-fixed";
90 regulator-name = "reg18";
91 regulator-min-microvolt = <1800000>;
92 regulator-max-microvolt = <1800000>;
93 };
94
95 usb33: usb33 {
96 compatible = "regulator-fixed";
97 regulator-name = "usb33";
98 regulator-min-microvolt = <3300000>;
99 regulator-max-microvolt = <3300000>;
100 };
101
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +0200102 soc {
103 compatible = "simple-bus";
104 #address-cells = <1>;
105 #size-cells = <1>;
106 interrupt-parent = <&intc>;
107 ranges;
108
Patrick Delaunay75785d42022-09-07 13:42:23 +0200109 scmi_sram: sram@2ffff000 {
110 compatible = "mmio-sram";
111 reg = <0x2ffff000 0x1000>;
112 #address-cells = <1>;
113 #size-cells = <1>;
114 ranges = <0 0x2ffff000 0x1000>;
115
116 scmi_shm: scmi-sram@0 {
117 compatible = "arm,scmi-shmem";
118 reg = <0 0x80>;
119 };
120 };
121
Patrick Delaunay7f2cba42023-04-24 16:21:10 +0200122 timers2: timer@40000000 {
123 #address-cells = <1>;
124 #size-cells = <0>;
125 compatible = "st,stm32-timers";
126 reg = <0x40000000 0x400>;
127 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
128 interrupt-names = "global";
129 clocks = <&rcc TIM2_K>;
130 clock-names = "int";
131 dmas = <&dmamux1 18 0x400 0x1>,
132 <&dmamux1 19 0x400 0x1>,
133 <&dmamux1 20 0x400 0x1>,
134 <&dmamux1 21 0x400 0x1>,
135 <&dmamux1 22 0x400 0x1>;
136 dma-names = "ch1", "ch2", "ch3", "ch4", "up";
137 status = "disabled";
138
139 pwm {
140 compatible = "st,stm32-pwm";
141 #pwm-cells = <3>;
142 status = "disabled";
143 };
144
145 timer@1 {
146 compatible = "st,stm32h7-timer-trigger";
147 reg = <1>;
148 status = "disabled";
149 };
150
151 counter {
152 compatible = "st,stm32-timer-counter";
153 status = "disabled";
154 };
155 };
156
157 timers3: timer@40001000 {
158 #address-cells = <1>;
159 #size-cells = <0>;
160 compatible = "st,stm32-timers";
161 reg = <0x40001000 0x400>;
162 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
163 interrupt-names = "global";
164 clocks = <&rcc TIM3_K>;
165 clock-names = "int";
166 dmas = <&dmamux1 23 0x400 0x1>,
167 <&dmamux1 24 0x400 0x1>,
168 <&dmamux1 25 0x400 0x1>,
169 <&dmamux1 26 0x400 0x1>,
170 <&dmamux1 27 0x400 0x1>,
171 <&dmamux1 28 0x400 0x1>;
172 dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
173 status = "disabled";
174
175 pwm {
176 compatible = "st,stm32-pwm";
177 #pwm-cells = <3>;
178 status = "disabled";
179 };
180
181 timer@2 {
182 compatible = "st,stm32h7-timer-trigger";
183 reg = <2>;
184 status = "disabled";
185 };
186
187 counter {
188 compatible = "st,stm32-timer-counter";
189 status = "disabled";
190 };
191 };
192
193 timers4: timer@40002000 {
194 #address-cells = <1>;
195 #size-cells = <0>;
196 compatible = "st,stm32-timers";
197 reg = <0x40002000 0x400>;
198 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
199 interrupt-names = "global";
200 clocks = <&rcc TIM4_K>;
201 clock-names = "int";
202 dmas = <&dmamux1 29 0x400 0x1>,
203 <&dmamux1 30 0x400 0x1>,
204 <&dmamux1 31 0x400 0x1>,
205 <&dmamux1 32 0x400 0x1>;
206 dma-names = "ch1", "ch2", "ch3", "up";
207 status = "disabled";
208
209 pwm {
210 compatible = "st,stm32-pwm";
211 #pwm-cells = <3>;
212 status = "disabled";
213 };
214
215 timer@3 {
216 compatible = "st,stm32h7-timer-trigger";
217 reg = <3>;
218 status = "disabled";
219 };
220
221 counter {
222 compatible = "st,stm32-timer-counter";
223 status = "disabled";
224 };
225 };
226
227 timers5: timer@40003000 {
228 #address-cells = <1>;
229 #size-cells = <0>;
230 compatible = "st,stm32-timers";
231 reg = <0x40003000 0x400>;
232 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
233 interrupt-names = "global";
234 clocks = <&rcc TIM5_K>;
235 clock-names = "int";
236 dmas = <&dmamux1 55 0x400 0x1>,
237 <&dmamux1 56 0x400 0x1>,
238 <&dmamux1 57 0x400 0x1>,
239 <&dmamux1 58 0x400 0x1>,
240 <&dmamux1 59 0x400 0x1>,
241 <&dmamux1 60 0x400 0x1>;
242 dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
243 status = "disabled";
244
245 pwm {
246 compatible = "st,stm32-pwm";
247 #pwm-cells = <3>;
248 status = "disabled";
249 };
250
251 timer@4 {
252 compatible = "st,stm32h7-timer-trigger";
253 reg = <4>;
254 status = "disabled";
255 };
256
257 counter {
258 compatible = "st,stm32-timer-counter";
259 status = "disabled";
260 };
261 };
262
263 timers6: timer@40004000 {
264 #address-cells = <1>;
265 #size-cells = <0>;
266 compatible = "st,stm32-timers";
267 reg = <0x40004000 0x400>;
268 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
269 interrupt-names = "global";
270 clocks = <&rcc TIM6_K>;
271 clock-names = "int";
272 dmas = <&dmamux1 69 0x400 0x1>;
273 dma-names = "up";
274 status = "disabled";
275
276 timer@5 {
277 compatible = "st,stm32h7-timer-trigger";
278 reg = <5>;
279 status = "disabled";
280 };
281 };
282
283 timers7: timer@40005000 {
284 #address-cells = <1>;
285 #size-cells = <0>;
286 compatible = "st,stm32-timers";
287 reg = <0x40005000 0x400>;
288 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
289 interrupt-names = "global";
290 clocks = <&rcc TIM7_K>;
291 clock-names = "int";
292 dmas = <&dmamux1 70 0x400 0x1>;
293 dma-names = "up";
294 status = "disabled";
295
296 timer@6 {
297 compatible = "st,stm32h7-timer-trigger";
298 reg = <6>;
299 status = "disabled";
300 };
301 };
302
303 lptimer1: timer@40009000 {
304 #address-cells = <1>;
305 #size-cells = <0>;
306 compatible = "st,stm32-lptimer";
307 reg = <0x40009000 0x400>;
308 interrupts-extended = <&exti 47 IRQ_TYPE_LEVEL_HIGH>;
309 clocks = <&rcc LPTIM1_K>;
310 clock-names = "mux";
311 wakeup-source;
312 status = "disabled";
313
314 pwm {
315 compatible = "st,stm32-pwm-lp";
316 #pwm-cells = <3>;
317 status = "disabled";
318 };
319
320 trigger@0 {
321 compatible = "st,stm32-lptimer-trigger";
322 reg = <0>;
323 status = "disabled";
324 };
325
326 counter {
327 compatible = "st,stm32-lptimer-counter";
328 status = "disabled";
329 };
330
331 timer {
332 compatible = "st,stm32-lptimer-timer";
333 status = "disabled";
334 };
335 };
336
337 i2s2: audio-controller@4000b000 {
338 compatible = "st,stm32h7-i2s";
339 reg = <0x4000b000 0x400>;
340 #sound-dai-cells = <0>;
341 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
342 dmas = <&dmamux1 39 0x400 0x01>,
343 <&dmamux1 40 0x400 0x01>;
344 dma-names = "rx", "tx";
345 status = "disabled";
346 };
347
348 spi2: spi@4000b000 {
349 compatible = "st,stm32h7-spi";
350 reg = <0x4000b000 0x400>;
351 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
352 clocks = <&rcc SPI2_K>;
353 resets = <&rcc SPI2_R>;
354 #address-cells = <1>;
355 #size-cells = <0>;
356 dmas = <&dmamux1 39 0x400 0x01>,
357 <&dmamux1 40 0x400 0x01>;
358 dma-names = "rx", "tx";
359 status = "disabled";
360 };
361
362 i2s3: audio-controller@4000c000 {
363 compatible = "st,stm32h7-i2s";
364 reg = <0x4000c000 0x400>;
365 #sound-dai-cells = <0>;
366 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
367 dmas = <&dmamux1 61 0x400 0x01>,
368 <&dmamux1 62 0x400 0x01>;
369 dma-names = "rx", "tx";
370 status = "disabled";
371 };
372
373 spi3: spi@4000c000 {
374 compatible = "st,stm32h7-spi";
375 reg = <0x4000c000 0x400>;
376 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
377 clocks = <&rcc SPI3_K>;
378 resets = <&rcc SPI3_R>;
379 #address-cells = <1>;
380 #size-cells = <0>;
381 dmas = <&dmamux1 61 0x400 0x01>,
382 <&dmamux1 62 0x400 0x01>;
383 dma-names = "rx", "tx";
384 status = "disabled";
385 };
386
387 spdifrx: audio-controller@4000d000 {
388 compatible = "st,stm32h7-spdifrx";
389 reg = <0x4000d000 0x400>;
390 #sound-dai-cells = <0>;
391 clocks = <&rcc SPDIF_K>;
392 clock-names = "kclk";
393 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
394 dmas = <&dmamux1 93 0x400 0x01>,
395 <&dmamux1 94 0x400 0x01>;
396 dma-names = "rx", "rx-ctrl";
397 status = "disabled";
398 };
399
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +0200400 uart4: serial@40010000 {
401 compatible = "st,stm32h7-uart";
402 reg = <0x40010000 0x400>;
403 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
Gabriel Fernandez80998802022-11-24 11:36:05 +0100404 clocks = <&rcc UART4_K>;
405 resets = <&rcc UART4_R>;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +0200406 status = "disabled";
Patrick Delaunay7f2cba42023-04-24 16:21:10 +0200407 };
408
409 i2c1: i2c@40012000 {
410 compatible = "st,stm32mp13-i2c";
411 reg = <0x40012000 0x400>;
412 interrupt-names = "event", "error";
413 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
414 <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
415 clocks = <&rcc I2C1_K>;
416 resets = <&rcc I2C1_R>;
417 #address-cells = <1>;
418 #size-cells = <0>;
419 dmas = <&dmamux1 33 0x400 0x1>,
420 <&dmamux1 34 0x400 0x1>;
421 dma-names = "rx", "tx";
422 st,syscfg-fmp = <&syscfg 0x4 0x1>;
423 i2c-analog-filter;
424 status = "disabled";
425 };
426
427 i2c2: i2c@40013000 {
428 compatible = "st,stm32mp13-i2c";
429 reg = <0x40013000 0x400>;
430 interrupt-names = "event", "error";
431 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
432 <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
433 clocks = <&rcc I2C2_K>;
434 resets = <&rcc I2C2_R>;
435 #address-cells = <1>;
436 #size-cells = <0>;
437 dmas = <&dmamux1 35 0x400 0x1>,
438 <&dmamux1 36 0x400 0x1>;
439 dma-names = "rx", "tx";
440 st,syscfg-fmp = <&syscfg 0x4 0x2>;
441 i2c-analog-filter;
442 status = "disabled";
443 };
444
445 timers1: timer@44000000 {
446 #address-cells = <1>;
447 #size-cells = <0>;
448 compatible = "st,stm32-timers";
449 reg = <0x44000000 0x400>;
450 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
451 <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
452 <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
453 <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
454 interrupt-names = "brk", "up", "trg-com", "cc";
455 clocks = <&rcc TIM1_K>;
456 clock-names = "int";
457 dmas = <&dmamux1 11 0x400 0x1>,
458 <&dmamux1 12 0x400 0x1>,
459 <&dmamux1 13 0x400 0x1>,
460 <&dmamux1 14 0x400 0x1>,
461 <&dmamux1 15 0x400 0x1>,
462 <&dmamux1 16 0x400 0x1>,
463 <&dmamux1 17 0x400 0x1>;
464 dma-names = "ch1", "ch2", "ch3", "ch4",
465 "up", "trig", "com";
466 status = "disabled";
467
468 pwm {
469 compatible = "st,stm32-pwm";
470 #pwm-cells = <3>;
471 status = "disabled";
472 };
473
474 timer@0 {
475 compatible = "st,stm32h7-timer-trigger";
476 reg = <0>;
477 status = "disabled";
478 };
479
480 counter {
481 compatible = "st,stm32-timer-counter";
482 status = "disabled";
483 };
484 };
485
486 timers8: timer@44001000 {
487 #address-cells = <1>;
488 #size-cells = <0>;
489 compatible = "st,stm32-timers";
490 reg = <0x44001000 0x400>;
491 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
492 <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
493 <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>,
494 <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
495 interrupt-names = "brk", "up", "trg-com", "cc";
496 clocks = <&rcc TIM8_K>;
497 clock-names = "int";
498 dmas = <&dmamux1 47 0x400 0x1>,
499 <&dmamux1 48 0x400 0x1>,
500 <&dmamux1 49 0x400 0x1>,
501 <&dmamux1 50 0x400 0x1>,
502 <&dmamux1 51 0x400 0x1>,
503 <&dmamux1 52 0x400 0x1>,
504 <&dmamux1 53 0x400 0x1>;
505 dma-names = "ch1", "ch2", "ch3", "ch4",
506 "up", "trig", "com";
507 status = "disabled";
508
509 pwm {
510 compatible = "st,stm32-pwm";
511 #pwm-cells = <3>;
512 status = "disabled";
513 };
514
515 timer@7 {
516 compatible = "st,stm32h7-timer-trigger";
517 reg = <7>;
518 status = "disabled";
519 };
520
521 counter {
522 compatible = "st,stm32-timer-counter";
523 status = "disabled";
524 };
525 };
526
527 i2s1: audio-controller@44004000 {
528 compatible = "st,stm32h7-i2s";
529 reg = <0x44004000 0x400>;
530 #sound-dai-cells = <0>;
531 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
532 dmas = <&dmamux1 37 0x400 0x01>,
533 <&dmamux1 38 0x400 0x01>;
534 dma-names = "rx", "tx";
535 status = "disabled";
536 };
537
538 spi1: spi@44004000 {
539 compatible = "st,stm32h7-spi";
540 reg = <0x44004000 0x400>;
541 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
542 clocks = <&rcc SPI1_K>;
543 resets = <&rcc SPI1_R>;
544 #address-cells = <1>;
545 #size-cells = <0>;
546 dmas = <&dmamux1 37 0x400 0x01>,
547 <&dmamux1 38 0x400 0x01>;
548 dma-names = "rx", "tx";
549 status = "disabled";
550 };
551
552 sai1: sai@4400a000 {
553 compatible = "st,stm32h7-sai";
554 reg = <0x4400a000 0x4>, <0x4400a3f0 0x10>;
555 ranges = <0 0x4400a000 0x400>;
556 #address-cells = <1>;
557 #size-cells = <1>;
558 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
559 resets = <&rcc SAI1_R>;
560 status = "disabled";
561
562 sai1a: audio-controller@4400a004 {
563 compatible = "st,stm32-sai-sub-a";
564 reg = <0x4 0x20>;
565 #sound-dai-cells = <0>;
566 clocks = <&rcc SAI1_K>;
567 clock-names = "sai_ck";
568 dmas = <&dmamux1 87 0x400 0x01>;
569 status = "disabled";
570 };
571
572 sai1b: audio-controller@4400a024 {
573 compatible = "st,stm32-sai-sub-b";
574 reg = <0x24 0x20>;
575 #sound-dai-cells = <0>;
576 clocks = <&rcc SAI1_K>;
577 clock-names = "sai_ck";
578 dmas = <&dmamux1 88 0x400 0x01>;
579 status = "disabled";
580 };
581 };
582
583 sai2: sai@4400b000 {
584 compatible = "st,stm32h7-sai";
585 reg = <0x4400b000 0x4>, <0x4400b3f0 0x10>;
586 ranges = <0 0x4400b000 0x400>;
587 #address-cells = <1>;
588 #size-cells = <1>;
589 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
590 resets = <&rcc SAI2_R>;
591 status = "disabled";
592
593 sai2a: audio-controller@4400b004 {
594 compatible = "st,stm32-sai-sub-a";
595 reg = <0x4 0x20>;
596 #sound-dai-cells = <0>;
597 clocks = <&rcc SAI2_K>;
598 clock-names = "sai_ck";
599 dmas = <&dmamux1 89 0x400 0x01>;
600 status = "disabled";
601 };
602
603 sai2b: audio-controller@4400b024 {
604 compatible = "st,stm32-sai-sub-b";
605 reg = <0x24 0x20>;
606 #sound-dai-cells = <0>;
607 clocks = <&rcc SAI2_K>;
608 clock-names = "sai_ck";
609 dmas = <&dmamux1 90 0x400 0x01>;
610 status = "disabled";
611 };
612 };
613
614 dfsdm: dfsdm@4400d000 {
615 compatible = "st,stm32mp1-dfsdm";
616 reg = <0x4400d000 0x800>;
617 clocks = <&rcc DFSDM_K>;
618 clock-names = "dfsdm";
619 #address-cells = <1>;
620 #size-cells = <0>;
621 status = "disabled";
622
623 dfsdm0: filter@0 {
624 compatible = "st,stm32-dfsdm-adc";
625 reg = <0>;
626 #io-channel-cells = <1>;
627 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
628 dmas = <&dmamux1 101 0x400 0x01>;
629 dma-names = "rx";
630 status = "disabled";
631 };
632
633 dfsdm1: filter@1 {
634 compatible = "st,stm32-dfsdm-adc";
635 reg = <1>;
636 #io-channel-cells = <1>;
637 interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
638 dmas = <&dmamux1 102 0x400 0x01>;
639 dma-names = "rx";
640 status = "disabled";
641 };
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +0200642 };
643
644 dma1: dma-controller@48000000 {
645 compatible = "st,stm32-dma";
646 reg = <0x48000000 0x400>;
647 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
648 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
649 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
650 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
651 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
652 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
653 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
654 <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
Gabriel Fernandez80998802022-11-24 11:36:05 +0100655 clocks = <&rcc DMA1>;
656 resets = <&rcc DMA1_R>;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +0200657 #dma-cells = <4>;
658 st,mem2mem;
659 dma-requests = <8>;
660 };
661
662 dma2: dma-controller@48001000 {
663 compatible = "st,stm32-dma";
664 reg = <0x48001000 0x400>;
665 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
666 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
667 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
668 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
669 <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>,
670 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
671 <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
672 <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
Gabriel Fernandez80998802022-11-24 11:36:05 +0100673 clocks = <&rcc DMA2>;
674 resets = <&rcc DMA2_R>;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +0200675 #dma-cells = <4>;
676 st,mem2mem;
677 dma-requests = <8>;
678 };
679
680 dmamux1: dma-router@48002000 {
681 compatible = "st,stm32h7-dmamux";
682 reg = <0x48002000 0x40>;
Gabriel Fernandez80998802022-11-24 11:36:05 +0100683 clocks = <&rcc DMAMUX1>;
684 resets = <&rcc DMAMUX1_R>;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +0200685 #dma-cells = <3>;
686 dma-masters = <&dma1 &dma2>;
687 dma-requests = <128>;
688 dma-channels = <16>;
689 };
690
Patrick Delaunay7f2cba42023-04-24 16:21:10 +0200691 adc_2: adc@48004000 {
692 compatible = "st,stm32mp13-adc-core";
693 reg = <0x48004000 0x400>;
694 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
695 clocks = <&rcc ADC2>, <&rcc ADC2_K>;
696 clock-names = "bus", "adc";
697 interrupt-controller;
698 #interrupt-cells = <1>;
699 #address-cells = <1>;
700 #size-cells = <0>;
701 status = "disabled";
702
703 adc2: adc@0 {
704 compatible = "st,stm32mp13-adc";
705 #io-channel-cells = <1>;
706 #address-cells = <1>;
707 #size-cells = <0>;
708 reg = <0x0>;
709 interrupt-parent = <&adc_2>;
710 interrupts = <0>;
711 dmas = <&dmamux1 10 0x400 0x80000001>;
712 dma-names = "rx";
713 status = "disabled";
714
715 channel@13 {
716 reg = <13>;
717 label = "vrefint";
718 };
719 channel@14 {
720 reg = <14>;
721 label = "vddcore";
722 };
723 channel@16 {
724 reg = <16>;
725 label = "vddcpu";
726 };
727 channel@17 {
728 reg = <17>;
729 label = "vddq_ddr";
730 };
731 };
732 };
733
734 usbotg_hs: usb@49000000 {
735 compatible = "st,stm32mp15-hsotg", "snps,dwc2";
736 reg = <0x49000000 0x40000>;
737 clocks = <&rcc USBO_K>;
738 clock-names = "otg";
739 resets = <&rcc USBO_R>;
740 reset-names = "dwc2";
741 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
742 g-rx-fifo-size = <512>;
743 g-np-tx-fifo-size = <32>;
744 g-tx-fifo-size = <256 16 16 16 16 16 16 16>;
745 dr_mode = "otg";
746 otg-rev = <0x200>;
747 usb33d-supply = <&usb33>;
748 status = "disabled";
749 };
750
751 i2s4: audio-controller@4c002000 {
752 compatible = "st,stm32h7-i2s";
753 reg = <0x4c002000 0x400>;
754 #sound-dai-cells = <0>;
755 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
756 dmas = <&dmamux1 83 0x400 0x01>,
757 <&dmamux1 84 0x400 0x01>;
758 dma-names = "rx", "tx";
759 status = "disabled";
760 };
761
762 spi4: spi@4c002000 {
763 compatible = "st,stm32h7-spi";
764 reg = <0x4c002000 0x400>;
765 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
766 clocks = <&rcc SPI4_K>;
767 resets = <&rcc SPI4_R>;
768 #address-cells = <1>;
769 #size-cells = <0>;
770 dmas = <&dmamux1 83 0x400 0x01>,
771 <&dmamux1 84 0x400 0x01>;
772 dma-names = "rx", "tx";
773 status = "disabled";
774 };
775
776 spi5: spi@4c003000 {
777 compatible = "st,stm32h7-spi";
778 reg = <0x4c003000 0x400>;
779 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
780 clocks = <&rcc SPI5_K>;
781 resets = <&rcc SPI5_R>;
782 #address-cells = <1>;
783 #size-cells = <0>;
784 dmas = <&dmamux1 85 0x400 0x01>,
785 <&dmamux1 86 0x400 0x01>;
786 dma-names = "rx", "tx";
787 status = "disabled";
788 };
789
790 i2c3: i2c@4c004000 {
791 compatible = "st,stm32mp13-i2c";
792 reg = <0x4c004000 0x400>;
793 interrupt-names = "event", "error";
794 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
795 <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
796 clocks = <&rcc I2C3_K>;
797 resets = <&rcc I2C3_R>;
798 #address-cells = <1>;
799 #size-cells = <0>;
800 dmas = <&dmamux1 73 0x400 0x1>,
801 <&dmamux1 74 0x400 0x1>;
802 dma-names = "rx", "tx";
803 st,syscfg-fmp = <&syscfg 0x4 0x4>;
804 i2c-analog-filter;
805 status = "disabled";
806 };
807
808 i2c4: i2c@4c005000 {
809 compatible = "st,stm32mp13-i2c";
810 reg = <0x4c005000 0x400>;
811 interrupt-names = "event", "error";
812 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
813 <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
814 clocks = <&rcc I2C4_K>;
815 resets = <&rcc I2C4_R>;
816 #address-cells = <1>;
817 #size-cells = <0>;
818 dmas = <&dmamux1 75 0x400 0x1>,
819 <&dmamux1 76 0x400 0x1>;
820 dma-names = "rx", "tx";
821 st,syscfg-fmp = <&syscfg 0x4 0x8>;
822 i2c-analog-filter;
823 status = "disabled";
824 };
825
826 i2c5: i2c@4c006000 {
827 compatible = "st,stm32mp13-i2c";
828 reg = <0x4c006000 0x400>;
829 interrupt-names = "event", "error";
830 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
831 <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
832 clocks = <&rcc I2C5_K>;
833 resets = <&rcc I2C5_R>;
834 #address-cells = <1>;
835 #size-cells = <0>;
836 dmas = <&dmamux1 115 0x400 0x1>,
837 <&dmamux1 116 0x400 0x1>;
838 dma-names = "rx", "tx";
839 st,syscfg-fmp = <&syscfg 0x4 0x10>;
840 i2c-analog-filter;
841 status = "disabled";
842 };
843
844 timers12: timer@4c007000 {
845 #address-cells = <1>;
846 #size-cells = <0>;
847 compatible = "st,stm32-timers";
848 reg = <0x4c007000 0x400>;
849 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
850 interrupt-names = "global";
851 clocks = <&rcc TIM12_K>;
852 clock-names = "int";
853 status = "disabled";
854
855 pwm {
856 compatible = "st,stm32-pwm";
857 #pwm-cells = <3>;
858 status = "disabled";
859 };
860
861 timer@11 {
862 compatible = "st,stm32h7-timer-trigger";
863 reg = <11>;
864 status = "disabled";
865 };
866 };
867
868 timers13: timer@4c008000 {
869 #address-cells = <1>;
870 #size-cells = <0>;
871 compatible = "st,stm32-timers";
872 reg = <0x4c008000 0x400>;
873 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
874 interrupt-names = "global";
875 clocks = <&rcc TIM13_K>;
876 clock-names = "int";
877 status = "disabled";
878
879 pwm {
880 compatible = "st,stm32-pwm";
881 #pwm-cells = <3>;
882 status = "disabled";
883 };
884
885 timer@12 {
886 compatible = "st,stm32h7-timer-trigger";
887 reg = <12>;
888 status = "disabled";
889 };
890 };
891
892 timers14: timer@4c009000 {
893 #address-cells = <1>;
894 #size-cells = <0>;
895 compatible = "st,stm32-timers";
896 reg = <0x4c009000 0x400>;
897 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
898 interrupt-names = "global";
899 clocks = <&rcc TIM14_K>;
900 clock-names = "int";
901 status = "disabled";
902
903 pwm {
904 compatible = "st,stm32-pwm";
905 #pwm-cells = <3>;
906 status = "disabled";
907 };
908
909 timer@13 {
910 compatible = "st,stm32h7-timer-trigger";
911 reg = <13>;
912 status = "disabled";
913 };
914 };
915
916 timers15: timer@4c00a000 {
917 #address-cells = <1>;
918 #size-cells = <0>;
919 compatible = "st,stm32-timers";
920 reg = <0x4c00a000 0x400>;
921 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
922 interrupt-names = "global";
923 clocks = <&rcc TIM15_K>;
924 clock-names = "int";
925 dmas = <&dmamux1 105 0x400 0x1>,
926 <&dmamux1 106 0x400 0x1>,
927 <&dmamux1 107 0x400 0x1>,
928 <&dmamux1 108 0x400 0x1>;
929 dma-names = "ch1", "up", "trig", "com";
930 status = "disabled";
931
932 pwm {
933 compatible = "st,stm32-pwm";
934 #pwm-cells = <3>;
935 status = "disabled";
936 };
937
938 timer@14 {
939 compatible = "st,stm32h7-timer-trigger";
940 reg = <14>;
941 status = "disabled";
942 };
943 };
944
945 timers16: timer@4c00b000 {
946 #address-cells = <1>;
947 #size-cells = <0>;
948 compatible = "st,stm32-timers";
949 reg = <0x4c00b000 0x400>;
950 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
951 interrupt-names = "global";
952 clocks = <&rcc TIM16_K>;
953 clock-names = "int";
954 dmas = <&dmamux1 109 0x400 0x1>,
955 <&dmamux1 110 0x400 0x1>;
956 dma-names = "ch1", "up";
957 status = "disabled";
958
959 pwm {
960 compatible = "st,stm32-pwm";
961 #pwm-cells = <3>;
962 status = "disabled";
963 };
964
965 timer@15 {
966 compatible = "st,stm32h7-timer-trigger";
967 reg = <15>;
968 status = "disabled";
969 };
970 };
971
972 timers17: timer@4c00c000 {
973 #address-cells = <1>;
974 #size-cells = <0>;
975 compatible = "st,stm32-timers";
976 reg = <0x4c00c000 0x400>;
977 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
978 interrupt-names = "global";
979 clocks = <&rcc TIM17_K>;
980 clock-names = "int";
981 dmas = <&dmamux1 111 0x400 0x1>,
982 <&dmamux1 112 0x400 0x1>;
983 dma-names = "ch1", "up";
984 status = "disabled";
985
986 pwm {
987 compatible = "st,stm32-pwm";
988 #pwm-cells = <3>;
989 status = "disabled";
990 };
991
992 timer@16 {
993 compatible = "st,stm32h7-timer-trigger";
994 reg = <16>;
995 status = "disabled";
996 };
997 };
998
Gabriel Fernandez80998802022-11-24 11:36:05 +0100999 rcc: rcc@50000000 {
1000 compatible = "st,stm32mp13-rcc", "syscon";
1001 reg = <0x50000000 0x1000>;
1002 #clock-cells = <1>;
1003 #reset-cells = <1>;
1004 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
1005
1006 clock-names = "hse", "hsi", "csi", "lse", "lsi";
1007 clocks = <&scmi_clk CK_SCMI_HSE>,
1008 <&scmi_clk CK_SCMI_HSI>,
1009 <&scmi_clk CK_SCMI_CSI>,
1010 <&scmi_clk CK_SCMI_LSE>,
1011 <&scmi_clk CK_SCMI_LSI>;
1012 };
1013
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001014 exti: interrupt-controller@5000d000 {
1015 compatible = "st,stm32mp13-exti", "syscon";
1016 interrupt-controller;
1017 #interrupt-cells = <2>;
1018 reg = <0x5000d000 0x400>;
1019 };
1020
1021 syscfg: syscon@50020000 {
1022 compatible = "st,stm32mp157-syscfg", "syscon";
1023 reg = <0x50020000 0x400>;
Gabriel Fernandez80998802022-11-24 11:36:05 +01001024 clocks = <&rcc SYSCFG>;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001025 };
1026
Patrick Delaunay7f2cba42023-04-24 16:21:10 +02001027 lptimer2: timer@50021000 {
1028 #address-cells = <1>;
1029 #size-cells = <0>;
1030 compatible = "st,stm32-lptimer";
1031 reg = <0x50021000 0x400>;
1032 interrupts-extended = <&exti 48 IRQ_TYPE_LEVEL_HIGH>;
1033 clocks = <&rcc LPTIM2_K>;
1034 clock-names = "mux";
1035 wakeup-source;
1036 status = "disabled";
1037
1038 pwm {
1039 compatible = "st,stm32-pwm-lp";
1040 #pwm-cells = <3>;
1041 status = "disabled";
1042 };
1043
1044 trigger@1 {
1045 compatible = "st,stm32-lptimer-trigger";
1046 reg = <1>;
1047 status = "disabled";
1048 };
1049
1050 counter {
1051 compatible = "st,stm32-lptimer-counter";
1052 status = "disabled";
1053 };
1054
1055 timer {
1056 compatible = "st,stm32-lptimer-timer";
1057 status = "disabled";
1058 };
1059 };
1060
1061 lptimer3: timer@50022000 {
1062 #address-cells = <1>;
1063 #size-cells = <0>;
1064 compatible = "st,stm32-lptimer";
1065 reg = <0x50022000 0x400>;
1066 interrupts-extended = <&exti 50 IRQ_TYPE_LEVEL_HIGH>;
1067 clocks = <&rcc LPTIM3_K>;
1068 clock-names = "mux";
1069 wakeup-source;
1070 status = "disabled";
1071
1072 pwm {
1073 compatible = "st,stm32-pwm-lp";
1074 #pwm-cells = <3>;
1075 status = "disabled";
1076 };
1077
1078 trigger@2 {
1079 compatible = "st,stm32-lptimer-trigger";
1080 reg = <2>;
1081 status = "disabled";
1082 };
1083
1084 timer {
1085 compatible = "st,stm32-lptimer-timer";
1086 status = "disabled";
1087 };
1088 };
1089
1090 lptimer4: timer@50023000 {
1091 compatible = "st,stm32-lptimer";
1092 reg = <0x50023000 0x400>;
1093 interrupts-extended = <&exti 52 IRQ_TYPE_LEVEL_HIGH>;
1094 clocks = <&rcc LPTIM4_K>;
1095 clock-names = "mux";
1096 wakeup-source;
1097 status = "disabled";
1098
1099 pwm {
1100 compatible = "st,stm32-pwm-lp";
1101 #pwm-cells = <3>;
1102 status = "disabled";
1103 };
1104
1105 timer {
1106 compatible = "st,stm32-lptimer-timer";
1107 status = "disabled";
1108 };
1109 };
1110
1111 lptimer5: timer@50024000 {
1112 compatible = "st,stm32-lptimer";
1113 reg = <0x50024000 0x400>;
1114 interrupts-extended = <&exti 53 IRQ_TYPE_LEVEL_HIGH>;
1115 clocks = <&rcc LPTIM5_K>;
1116 clock-names = "mux";
1117 wakeup-source;
1118 status = "disabled";
1119
1120 pwm {
1121 compatible = "st,stm32-pwm-lp";
1122 #pwm-cells = <3>;
1123 status = "disabled";
1124 };
1125
1126 timer {
1127 compatible = "st,stm32-lptimer-timer";
1128 status = "disabled";
1129 };
1130 };
1131
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001132 mdma: dma-controller@58000000 {
1133 compatible = "st,stm32h7-mdma";
1134 reg = <0x58000000 0x1000>;
1135 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
Gabriel Fernandez80998802022-11-24 11:36:05 +01001136 clocks = <&rcc MDMA>;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001137 #dma-cells = <5>;
1138 dma-channels = <32>;
1139 dma-requests = <48>;
1140 };
1141
Christophe Kerello52e21092023-03-30 11:26:17 +02001142 fmc: memory-controller@58002000 {
1143 compatible = "st,stm32mp1-fmc2-ebi";
1144 reg = <0x58002000 0x1000>;
1145 ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */
1146 <1 0 0x64000000 0x04000000>, /* EBI CS 2 */
1147 <2 0 0x68000000 0x04000000>, /* EBI CS 3 */
1148 <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */
1149 <4 0 0x80000000 0x10000000>; /* NAND */
1150 #address-cells = <2>;
1151 #size-cells = <1>;
1152 clocks = <&rcc FMC_K>;
1153 resets = <&rcc FMC_R>;
1154 status = "disabled";
1155
1156 nand-controller@4,0 {
1157 compatible = "st,stm32mp1-fmc2-nfc";
1158 reg = <4 0x00000000 0x1000>,
1159 <4 0x08010000 0x1000>,
1160 <4 0x08020000 0x1000>,
1161 <4 0x01000000 0x1000>,
1162 <4 0x09010000 0x1000>,
1163 <4 0x09020000 0x1000>;
1164 #address-cells = <1>;
1165 #size-cells = <0>;
1166 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
1167 dmas = <&mdma 24 0x2 0x12000a02 0x0 0x0>,
1168 <&mdma 24 0x2 0x12000a08 0x0 0x0>,
1169 <&mdma 25 0x2 0x12000a0a 0x0 0x0>;
1170 dma-names = "tx", "rx", "ecc";
1171 status = "disabled";
1172 };
1173 };
1174
Patrice Chotard5901a6b2023-04-03 08:04:11 +02001175 qspi: spi@58003000 {
1176 compatible = "st,stm32f469-qspi";
1177 reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
1178 reg-names = "qspi", "qspi_mm";
1179 #address-cells = <1>;
1180 #size-cells = <0>;
1181 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
1182 dmas = <&mdma 26 0x2 0x10100002 0x0 0x0>,
1183 <&mdma 26 0x2 0x10100008 0x0 0x0>;
1184 dma-names = "tx", "rx";
1185 clocks = <&rcc QSPI_K>;
1186 resets = <&rcc QSPI_R>;
1187 status = "disabled";
1188 };
1189
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001190 sdmmc1: mmc@58005000 {
1191 compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
1192 arm,primecell-periphid = <0x20253180>;
1193 reg = <0x58005000 0x1000>, <0x58006000 0x1000>;
1194 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
Gabriel Fernandez80998802022-11-24 11:36:05 +01001195 clocks = <&rcc SDMMC1_K>;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001196 clock-names = "apb_pclk";
Gabriel Fernandez80998802022-11-24 11:36:05 +01001197 resets = <&rcc SDMMC1_R>;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001198 cap-sd-highspeed;
1199 cap-mmc-highspeed;
1200 max-frequency = <130000000>;
1201 status = "disabled";
1202 };
1203
1204 sdmmc2: mmc@58007000 {
1205 compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
1206 arm,primecell-periphid = <0x20253180>;
1207 reg = <0x58007000 0x1000>, <0x58008000 0x1000>;
1208 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
Gabriel Fernandez80998802022-11-24 11:36:05 +01001209 clocks = <&rcc SDMMC2_K>;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001210 clock-names = "apb_pclk";
Gabriel Fernandez80998802022-11-24 11:36:05 +01001211 resets = <&rcc SDMMC2_R>;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001212 cap-sd-highspeed;
1213 cap-mmc-highspeed;
1214 max-frequency = <130000000>;
1215 status = "disabled";
1216 };
1217
Patrick Delaunay7f2cba42023-04-24 16:21:10 +02001218 usbh_ohci: usb@5800c000 {
1219 compatible = "generic-ohci";
1220 reg = <0x5800c000 0x1000>;
1221 clocks = <&usbphyc>, <&rcc USBH>;
1222 resets = <&rcc USBH_R>;
1223 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
1224 status = "disabled";
1225 };
1226
1227 usbh_ehci: usb@5800d000 {
1228 compatible = "generic-ehci";
1229 reg = <0x5800d000 0x1000>;
1230 clocks = <&usbphyc>, <&rcc USBH>;
1231 resets = <&rcc USBH_R>;
1232 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
1233 companion = <&usbh_ohci>;
1234 status = "disabled";
1235 };
1236
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001237 iwdg2: watchdog@5a002000 {
1238 compatible = "st,stm32mp1-iwdg";
1239 reg = <0x5a002000 0x400>;
Gabriel Fernandez80998802022-11-24 11:36:05 +01001240 clocks = <&rcc IWDG2>, <&scmi_clk CK_SCMI_LSI>;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001241 clock-names = "pclk", "lsi";
1242 status = "disabled";
1243 };
1244
Patrick Delaunay7f2cba42023-04-24 16:21:10 +02001245 usbphyc: usbphyc@5a006000 {
1246 #address-cells = <1>;
1247 #size-cells = <0>;
1248 #clock-cells = <0>;
1249 compatible = "st,stm32mp1-usbphyc";
1250 reg = <0x5a006000 0x1000>;
1251 clocks = <&rcc USBPHY_K>;
1252 resets = <&rcc USBPHY_R>;
1253 vdda1v1-supply = <&reg11>;
1254 vdda1v8-supply = <&reg18>;
1255 status = "disabled";
1256
1257 usbphyc_port0: usb-phy@0 {
1258 #phy-cells = <0>;
1259 reg = <0>;
1260 };
1261
1262 usbphyc_port1: usb-phy@1 {
1263 #phy-cells = <1>;
1264 reg = <1>;
1265 };
1266 };
1267
Patrick Delaunay53dfe692022-06-30 10:20:17 +02001268 rtc: rtc@5c004000 {
1269 compatible = "st,stm32mp1-rtc";
1270 reg = <0x5c004000 0x400>;
1271 interrupts-extended = <&exti 19 IRQ_TYPE_LEVEL_HIGH>;
Gabriel Fernandez80998802022-11-24 11:36:05 +01001272 clocks = <&scmi_clk CK_SCMI_RTCAPB>,
1273 <&scmi_clk CK_SCMI_RTC>;
Patrick Delaunay53dfe692022-06-30 10:20:17 +02001274 clock-names = "pclk", "rtc_ck";
1275 status = "disabled";
1276 };
1277
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001278 bsec: efuse@5c005000 {
1279 compatible = "st,stm32mp13-bsec";
1280 reg = <0x5c005000 0x400>;
1281 #address-cells = <1>;
1282 #size-cells = <1>;
1283
1284 part_number_otp: part_number_otp@4 {
1285 reg = <0x4 0x2>;
Patrick Delaunay7f2cba42023-04-24 16:21:10 +02001286 bits = <0 12>;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001287 };
1288 ts_cal1: calib@5c {
1289 reg = <0x5c 0x2>;
1290 };
1291 ts_cal2: calib@5e {
1292 reg = <0x5e 0x2>;
1293 };
1294 };
1295
1296 /*
1297 * Break node order to solve dependency probe issue between
1298 * pinctrl and exti.
1299 */
Patrick Delaunay53dfe692022-06-30 10:20:17 +02001300 pinctrl: pinctrl@50002000 {
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001301 #address-cells = <1>;
1302 #size-cells = <1>;
1303 compatible = "st,stm32mp135-pinctrl";
1304 ranges = <0 0x50002000 0x8400>;
Patrick Delaunay53dfe692022-06-30 10:20:17 +02001305 interrupt-parent = <&exti>;
1306 st,syscfg = <&exti 0x60 0xff>;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001307
1308 gpioa: gpio@50002000 {
1309 gpio-controller;
1310 #gpio-cells = <2>;
1311 interrupt-controller;
1312 #interrupt-cells = <2>;
1313 reg = <0x0 0x400>;
Gabriel Fernandez80998802022-11-24 11:36:05 +01001314 clocks = <&rcc GPIOA>;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001315 st,bank-name = "GPIOA";
1316 ngpios = <16>;
1317 gpio-ranges = <&pinctrl 0 0 16>;
1318 };
1319
1320 gpiob: gpio@50003000 {
1321 gpio-controller;
1322 #gpio-cells = <2>;
1323 interrupt-controller;
1324 #interrupt-cells = <2>;
1325 reg = <0x1000 0x400>;
Gabriel Fernandez80998802022-11-24 11:36:05 +01001326 clocks = <&rcc GPIOB>;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001327 st,bank-name = "GPIOB";
1328 ngpios = <16>;
1329 gpio-ranges = <&pinctrl 0 16 16>;
1330 };
1331
1332 gpioc: gpio@50004000 {
1333 gpio-controller;
1334 #gpio-cells = <2>;
1335 interrupt-controller;
1336 #interrupt-cells = <2>;
1337 reg = <0x2000 0x400>;
Gabriel Fernandez80998802022-11-24 11:36:05 +01001338 clocks = <&rcc GPIOC>;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001339 st,bank-name = "GPIOC";
1340 ngpios = <16>;
1341 gpio-ranges = <&pinctrl 0 32 16>;
1342 };
1343
1344 gpiod: gpio@50005000 {
1345 gpio-controller;
1346 #gpio-cells = <2>;
1347 interrupt-controller;
1348 #interrupt-cells = <2>;
1349 reg = <0x3000 0x400>;
Gabriel Fernandez80998802022-11-24 11:36:05 +01001350 clocks = <&rcc GPIOD>;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001351 st,bank-name = "GPIOD";
1352 ngpios = <16>;
1353 gpio-ranges = <&pinctrl 0 48 16>;
1354 };
1355
1356 gpioe: gpio@50006000 {
1357 gpio-controller;
1358 #gpio-cells = <2>;
1359 interrupt-controller;
1360 #interrupt-cells = <2>;
1361 reg = <0x4000 0x400>;
Gabriel Fernandez80998802022-11-24 11:36:05 +01001362 clocks = <&rcc GPIOE>;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001363 st,bank-name = "GPIOE";
1364 ngpios = <16>;
1365 gpio-ranges = <&pinctrl 0 64 16>;
1366 };
1367
1368 gpiof: gpio@50007000 {
1369 gpio-controller;
1370 #gpio-cells = <2>;
1371 interrupt-controller;
1372 #interrupt-cells = <2>;
1373 reg = <0x5000 0x400>;
Gabriel Fernandez80998802022-11-24 11:36:05 +01001374 clocks = <&rcc GPIOF>;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001375 st,bank-name = "GPIOF";
1376 ngpios = <16>;
1377 gpio-ranges = <&pinctrl 0 80 16>;
1378 };
1379
1380 gpiog: gpio@50008000 {
1381 gpio-controller;
1382 #gpio-cells = <2>;
1383 interrupt-controller;
1384 #interrupt-cells = <2>;
1385 reg = <0x6000 0x400>;
Gabriel Fernandez80998802022-11-24 11:36:05 +01001386 clocks = <&rcc GPIOG>;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001387 st,bank-name = "GPIOG";
1388 ngpios = <16>;
1389 gpio-ranges = <&pinctrl 0 96 16>;
1390 };
1391
1392 gpioh: gpio@50009000 {
1393 gpio-controller;
1394 #gpio-cells = <2>;
1395 interrupt-controller;
1396 #interrupt-cells = <2>;
1397 reg = <0x7000 0x400>;
Gabriel Fernandez80998802022-11-24 11:36:05 +01001398 clocks = <&rcc GPIOH>;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001399 st,bank-name = "GPIOH";
1400 ngpios = <15>;
1401 gpio-ranges = <&pinctrl 0 112 15>;
1402 };
1403
1404 gpioi: gpio@5000a000 {
1405 gpio-controller;
1406 #gpio-cells = <2>;
1407 interrupt-controller;
1408 #interrupt-cells = <2>;
1409 reg = <0x8000 0x400>;
Gabriel Fernandez80998802022-11-24 11:36:05 +01001410 clocks = <&rcc GPIOI>;
Patrick Delaunay8e34fbb2022-05-20 18:24:39 +02001411 st,bank-name = "GPIOI";
1412 ngpios = <8>;
1413 gpio-ranges = <&pinctrl 0 128 8>;
1414 };
1415 };
1416 };
1417};