Merge tag 'for-5.11/dm-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/device...
[linux-2.6-microblaze.git] / arch / arm / boot / dts / stm32mp151.dtsi
1 // 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(4) | IRQ_TYPE_LEVEL_LOW)>,
49                              <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
50                              <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
51                              <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | 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
125                 timers2: timer@40000000 {
126                         #address-cells = <1>;
127                         #size-cells = <0>;
128                         compatible = "st,stm32-timers";
129                         reg = <0x40000000 0x400>;
130                         clocks = <&rcc TIM2_K>;
131                         clock-names = "int";
132                         dmas = <&dmamux1 18 0x400 0x1>,
133                                <&dmamux1 19 0x400 0x1>,
134                                <&dmamux1 20 0x400 0x1>,
135                                <&dmamux1 21 0x400 0x1>,
136                                <&dmamux1 22 0x400 0x1>;
137                         dma-names = "ch1", "ch2", "ch3", "ch4", "up";
138                         status = "disabled";
139
140                         pwm {
141                                 compatible = "st,stm32-pwm";
142                                 #pwm-cells = <3>;
143                                 status = "disabled";
144                         };
145
146                         timer@1 {
147                                 compatible = "st,stm32h7-timer-trigger";
148                                 reg = <1>;
149                                 status = "disabled";
150                         };
151
152                         counter {
153                                 compatible = "st,stm32-timer-counter";
154                                 status = "disabled";
155                         };
156                 };
157
158                 timers3: timer@40001000 {
159                         #address-cells = <1>;
160                         #size-cells = <0>;
161                         compatible = "st,stm32-timers";
162                         reg = <0x40001000 0x400>;
163                         clocks = <&rcc TIM3_K>;
164                         clock-names = "int";
165                         dmas = <&dmamux1 23 0x400 0x1>,
166                                <&dmamux1 24 0x400 0x1>,
167                                <&dmamux1 25 0x400 0x1>,
168                                <&dmamux1 26 0x400 0x1>,
169                                <&dmamux1 27 0x400 0x1>,
170                                <&dmamux1 28 0x400 0x1>;
171                         dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
172                         status = "disabled";
173
174                         pwm {
175                                 compatible = "st,stm32-pwm";
176                                 #pwm-cells = <3>;
177                                 status = "disabled";
178                         };
179
180                         timer@2 {
181                                 compatible = "st,stm32h7-timer-trigger";
182                                 reg = <2>;
183                                 status = "disabled";
184                         };
185
186                         counter {
187                                 compatible = "st,stm32-timer-counter";
188                                 status = "disabled";
189                         };
190                 };
191
192                 timers4: timer@40002000 {
193                         #address-cells = <1>;
194                         #size-cells = <0>;
195                         compatible = "st,stm32-timers";
196                         reg = <0x40002000 0x400>;
197                         clocks = <&rcc TIM4_K>;
198                         clock-names = "int";
199                         dmas = <&dmamux1 29 0x400 0x1>,
200                                <&dmamux1 30 0x400 0x1>,
201                                <&dmamux1 31 0x400 0x1>,
202                                <&dmamux1 32 0x400 0x1>;
203                         dma-names = "ch1", "ch2", "ch3", "ch4";
204                         status = "disabled";
205
206                         pwm {
207                                 compatible = "st,stm32-pwm";
208                                 #pwm-cells = <3>;
209                                 status = "disabled";
210                         };
211
212                         timer@3 {
213                                 compatible = "st,stm32h7-timer-trigger";
214                                 reg = <3>;
215                                 status = "disabled";
216                         };
217
218                         counter {
219                                 compatible = "st,stm32-timer-counter";
220                                 status = "disabled";
221                         };
222                 };
223
224                 timers5: timer@40003000 {
225                         #address-cells = <1>;
226                         #size-cells = <0>;
227                         compatible = "st,stm32-timers";
228                         reg = <0x40003000 0x400>;
229                         clocks = <&rcc TIM5_K>;
230                         clock-names = "int";
231                         dmas = <&dmamux1 55 0x400 0x1>,
232                                <&dmamux1 56 0x400 0x1>,
233                                <&dmamux1 57 0x400 0x1>,
234                                <&dmamux1 58 0x400 0x1>,
235                                <&dmamux1 59 0x400 0x1>,
236                                <&dmamux1 60 0x400 0x1>;
237                         dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
238                         status = "disabled";
239
240                         pwm {
241                                 compatible = "st,stm32-pwm";
242                                 #pwm-cells = <3>;
243                                 status = "disabled";
244                         };
245
246                         timer@4 {
247                                 compatible = "st,stm32h7-timer-trigger";
248                                 reg = <4>;
249                                 status = "disabled";
250                         };
251
252                         counter {
253                                 compatible = "st,stm32-timer-counter";
254                                 status = "disabled";
255                         };
256                 };
257
258                 timers6: timer@40004000 {
259                         #address-cells = <1>;
260                         #size-cells = <0>;
261                         compatible = "st,stm32-timers";
262                         reg = <0x40004000 0x400>;
263                         clocks = <&rcc TIM6_K>;
264                         clock-names = "int";
265                         dmas = <&dmamux1 69 0x400 0x1>;
266                         dma-names = "up";
267                         status = "disabled";
268
269                         timer@5 {
270                                 compatible = "st,stm32h7-timer-trigger";
271                                 reg = <5>;
272                                 status = "disabled";
273                         };
274                 };
275
276                 timers7: timer@40005000 {
277                         #address-cells = <1>;
278                         #size-cells = <0>;
279                         compatible = "st,stm32-timers";
280                         reg = <0x40005000 0x400>;
281                         clocks = <&rcc TIM7_K>;
282                         clock-names = "int";
283                         dmas = <&dmamux1 70 0x400 0x1>;
284                         dma-names = "up";
285                         status = "disabled";
286
287                         timer@6 {
288                                 compatible = "st,stm32h7-timer-trigger";
289                                 reg = <6>;
290                                 status = "disabled";
291                         };
292                 };
293
294                 timers12: timer@40006000 {
295                         #address-cells = <1>;
296                         #size-cells = <0>;
297                         compatible = "st,stm32-timers";
298                         reg = <0x40006000 0x400>;
299                         clocks = <&rcc TIM12_K>;
300                         clock-names = "int";
301                         status = "disabled";
302
303                         pwm {
304                                 compatible = "st,stm32-pwm";
305                                 #pwm-cells = <3>;
306                                 status = "disabled";
307                         };
308
309                         timer@11 {
310                                 compatible = "st,stm32h7-timer-trigger";
311                                 reg = <11>;
312                                 status = "disabled";
313                         };
314                 };
315
316                 timers13: timer@40007000 {
317                         #address-cells = <1>;
318                         #size-cells = <0>;
319                         compatible = "st,stm32-timers";
320                         reg = <0x40007000 0x400>;
321                         clocks = <&rcc TIM13_K>;
322                         clock-names = "int";
323                         status = "disabled";
324
325                         pwm {
326                                 compatible = "st,stm32-pwm";
327                                 #pwm-cells = <3>;
328                                 status = "disabled";
329                         };
330
331                         timer@12 {
332                                 compatible = "st,stm32h7-timer-trigger";
333                                 reg = <12>;
334                                 status = "disabled";
335                         };
336                 };
337
338                 timers14: timer@40008000 {
339                         #address-cells = <1>;
340                         #size-cells = <0>;
341                         compatible = "st,stm32-timers";
342                         reg = <0x40008000 0x400>;
343                         clocks = <&rcc TIM14_K>;
344                         clock-names = "int";
345                         status = "disabled";
346
347                         pwm {
348                                 compatible = "st,stm32-pwm";
349                                 #pwm-cells = <3>;
350                                 status = "disabled";
351                         };
352
353                         timer@13 {
354                                 compatible = "st,stm32h7-timer-trigger";
355                                 reg = <13>;
356                                 status = "disabled";
357                         };
358                 };
359
360                 lptimer1: timer@40009000 {
361                         #address-cells = <1>;
362                         #size-cells = <0>;
363                         compatible = "st,stm32-lptimer";
364                         reg = <0x40009000 0x400>;
365                         interrupts-extended = <&exti 47 IRQ_TYPE_LEVEL_HIGH>;
366                         clocks = <&rcc LPTIM1_K>;
367                         clock-names = "mux";
368                         wakeup-source;
369                         status = "disabled";
370
371                         pwm {
372                                 compatible = "st,stm32-pwm-lp";
373                                 #pwm-cells = <3>;
374                                 status = "disabled";
375                         };
376
377                         trigger@0 {
378                                 compatible = "st,stm32-lptimer-trigger";
379                                 reg = <0>;
380                                 status = "disabled";
381                         };
382
383                         counter {
384                                 compatible = "st,stm32-lptimer-counter";
385                                 status = "disabled";
386                         };
387                 };
388
389                 spi2: spi@4000b000 {
390                         #address-cells = <1>;
391                         #size-cells = <0>;
392                         compatible = "st,stm32h7-spi";
393                         reg = <0x4000b000 0x400>;
394                         interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
395                         clocks = <&rcc SPI2_K>;
396                         resets = <&rcc SPI2_R>;
397                         dmas = <&dmamux1 39 0x400 0x05>,
398                                <&dmamux1 40 0x400 0x05>;
399                         dma-names = "rx", "tx";
400                         status = "disabled";
401                 };
402
403                 i2s2: audio-controller@4000b000 {
404                         compatible = "st,stm32h7-i2s";
405                         #sound-dai-cells = <0>;
406                         reg = <0x4000b000 0x400>;
407                         interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
408                         dmas = <&dmamux1 39 0x400 0x01>,
409                                <&dmamux1 40 0x400 0x01>;
410                         dma-names = "rx", "tx";
411                         status = "disabled";
412                 };
413
414                 spi3: spi@4000c000 {
415                         #address-cells = <1>;
416                         #size-cells = <0>;
417                         compatible = "st,stm32h7-spi";
418                         reg = <0x4000c000 0x400>;
419                         interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
420                         clocks = <&rcc SPI3_K>;
421                         resets = <&rcc SPI3_R>;
422                         dmas = <&dmamux1 61 0x400 0x05>,
423                                <&dmamux1 62 0x400 0x05>;
424                         dma-names = "rx", "tx";
425                         status = "disabled";
426                 };
427
428                 i2s3: audio-controller@4000c000 {
429                         compatible = "st,stm32h7-i2s";
430                         #sound-dai-cells = <0>;
431                         reg = <0x4000c000 0x400>;
432                         interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
433                         dmas = <&dmamux1 61 0x400 0x01>,
434                                <&dmamux1 62 0x400 0x01>;
435                         dma-names = "rx", "tx";
436                         status = "disabled";
437                 };
438
439                 spdifrx: audio-controller@4000d000 {
440                         compatible = "st,stm32h7-spdifrx";
441                         #sound-dai-cells = <0>;
442                         reg = <0x4000d000 0x400>;
443                         clocks = <&rcc SPDIF_K>;
444                         clock-names = "kclk";
445                         interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
446                         dmas = <&dmamux1 93 0x400 0x01>,
447                                <&dmamux1 94 0x400 0x01>;
448                         dma-names = "rx", "rx-ctrl";
449                         status = "disabled";
450                 };
451
452                 usart2: serial@4000e000 {
453                         compatible = "st,stm32h7-uart";
454                         reg = <0x4000e000 0x400>;
455                         interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
456                         clocks = <&rcc USART2_K>;
457                         status = "disabled";
458                 };
459
460                 usart3: serial@4000f000 {
461                         compatible = "st,stm32h7-uart";
462                         reg = <0x4000f000 0x400>;
463                         interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
464                         clocks = <&rcc USART3_K>;
465                         status = "disabled";
466                 };
467
468                 uart4: serial@40010000 {
469                         compatible = "st,stm32h7-uart";
470                         reg = <0x40010000 0x400>;
471                         interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
472                         clocks = <&rcc UART4_K>;
473                         status = "disabled";
474                 };
475
476                 uart5: serial@40011000 {
477                         compatible = "st,stm32h7-uart";
478                         reg = <0x40011000 0x400>;
479                         interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
480                         clocks = <&rcc UART5_K>;
481                         status = "disabled";
482                 };
483
484                 i2c1: i2c@40012000 {
485                         compatible = "st,stm32mp15-i2c";
486                         reg = <0x40012000 0x400>;
487                         interrupt-names = "event", "error";
488                         interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
489                                      <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
490                         clocks = <&rcc I2C1_K>;
491                         resets = <&rcc I2C1_R>;
492                         #address-cells = <1>;
493                         #size-cells = <0>;
494                         st,syscfg-fmp = <&syscfg 0x4 0x1>;
495                         wakeup-source;
496                         status = "disabled";
497                 };
498
499                 i2c2: i2c@40013000 {
500                         compatible = "st,stm32mp15-i2c";
501                         reg = <0x40013000 0x400>;
502                         interrupt-names = "event", "error";
503                         interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
504                                      <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
505                         clocks = <&rcc I2C2_K>;
506                         resets = <&rcc I2C2_R>;
507                         #address-cells = <1>;
508                         #size-cells = <0>;
509                         st,syscfg-fmp = <&syscfg 0x4 0x2>;
510                         wakeup-source;
511                         status = "disabled";
512                 };
513
514                 i2c3: i2c@40014000 {
515                         compatible = "st,stm32mp15-i2c";
516                         reg = <0x40014000 0x400>;
517                         interrupt-names = "event", "error";
518                         interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
519                                      <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
520                         clocks = <&rcc I2C3_K>;
521                         resets = <&rcc I2C3_R>;
522                         #address-cells = <1>;
523                         #size-cells = <0>;
524                         st,syscfg-fmp = <&syscfg 0x4 0x4>;
525                         wakeup-source;
526                         status = "disabled";
527                 };
528
529                 i2c5: i2c@40015000 {
530                         compatible = "st,stm32mp15-i2c";
531                         reg = <0x40015000 0x400>;
532                         interrupt-names = "event", "error";
533                         interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
534                                      <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
535                         clocks = <&rcc I2C5_K>;
536                         resets = <&rcc I2C5_R>;
537                         #address-cells = <1>;
538                         #size-cells = <0>;
539                         st,syscfg-fmp = <&syscfg 0x4 0x10>;
540                         wakeup-source;
541                         status = "disabled";
542                 };
543
544                 cec: cec@40016000 {
545                         compatible = "st,stm32-cec";
546                         reg = <0x40016000 0x400>;
547                         interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
548                         clocks = <&rcc CEC_K>, <&clk_lse>;
549                         clock-names = "cec", "hdmi-cec";
550                         status = "disabled";
551                 };
552
553                 dac: dac@40017000 {
554                         compatible = "st,stm32h7-dac-core";
555                         reg = <0x40017000 0x400>;
556                         clocks = <&rcc DAC12>;
557                         clock-names = "pclk";
558                         #address-cells = <1>;
559                         #size-cells = <0>;
560                         status = "disabled";
561
562                         dac1: dac@1 {
563                                 compatible = "st,stm32-dac";
564                                 #io-channel-cells = <1>;
565                                 reg = <1>;
566                                 status = "disabled";
567                         };
568
569                         dac2: dac@2 {
570                                 compatible = "st,stm32-dac";
571                                 #io-channel-cells = <1>;
572                                 reg = <2>;
573                                 status = "disabled";
574                         };
575                 };
576
577                 uart7: serial@40018000 {
578                         compatible = "st,stm32h7-uart";
579                         reg = <0x40018000 0x400>;
580                         interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
581                         clocks = <&rcc UART7_K>;
582                         status = "disabled";
583                 };
584
585                 uart8: serial@40019000 {
586                         compatible = "st,stm32h7-uart";
587                         reg = <0x40019000 0x400>;
588                         interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
589                         clocks = <&rcc UART8_K>;
590                         status = "disabled";
591                 };
592
593                 timers1: timer@44000000 {
594                         #address-cells = <1>;
595                         #size-cells = <0>;
596                         compatible = "st,stm32-timers";
597                         reg = <0x44000000 0x400>;
598                         clocks = <&rcc TIM1_K>;
599                         clock-names = "int";
600                         dmas = <&dmamux1 11 0x400 0x1>,
601                                <&dmamux1 12 0x400 0x1>,
602                                <&dmamux1 13 0x400 0x1>,
603                                <&dmamux1 14 0x400 0x1>,
604                                <&dmamux1 15 0x400 0x1>,
605                                <&dmamux1 16 0x400 0x1>,
606                                <&dmamux1 17 0x400 0x1>;
607                         dma-names = "ch1", "ch2", "ch3", "ch4",
608                                     "up", "trig", "com";
609                         status = "disabled";
610
611                         pwm {
612                                 compatible = "st,stm32-pwm";
613                                 #pwm-cells = <3>;
614                                 status = "disabled";
615                         };
616
617                         timer@0 {
618                                 compatible = "st,stm32h7-timer-trigger";
619                                 reg = <0>;
620                                 status = "disabled";
621                         };
622
623                         counter {
624                                 compatible = "st,stm32-timer-counter";
625                                 status = "disabled";
626                         };
627                 };
628
629                 timers8: timer@44001000 {
630                         #address-cells = <1>;
631                         #size-cells = <0>;
632                         compatible = "st,stm32-timers";
633                         reg = <0x44001000 0x400>;
634                         clocks = <&rcc TIM8_K>;
635                         clock-names = "int";
636                         dmas = <&dmamux1 47 0x400 0x1>,
637                                <&dmamux1 48 0x400 0x1>,
638                                <&dmamux1 49 0x400 0x1>,
639                                <&dmamux1 50 0x400 0x1>,
640                                <&dmamux1 51 0x400 0x1>,
641                                <&dmamux1 52 0x400 0x1>,
642                                <&dmamux1 53 0x400 0x1>;
643                         dma-names = "ch1", "ch2", "ch3", "ch4",
644                                     "up", "trig", "com";
645                         status = "disabled";
646
647                         pwm {
648                                 compatible = "st,stm32-pwm";
649                                 #pwm-cells = <3>;
650                                 status = "disabled";
651                         };
652
653                         timer@7 {
654                                 compatible = "st,stm32h7-timer-trigger";
655                                 reg = <7>;
656                                 status = "disabled";
657                         };
658
659                         counter {
660                                 compatible = "st,stm32-timer-counter";
661                                 status = "disabled";
662                         };
663                 };
664
665                 usart6: serial@44003000 {
666                         compatible = "st,stm32h7-uart";
667                         reg = <0x44003000 0x400>;
668                         interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
669                         clocks = <&rcc USART6_K>;
670                         status = "disabled";
671                 };
672
673                 spi1: spi@44004000 {
674                         #address-cells = <1>;
675                         #size-cells = <0>;
676                         compatible = "st,stm32h7-spi";
677                         reg = <0x44004000 0x400>;
678                         interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
679                         clocks = <&rcc SPI1_K>;
680                         resets = <&rcc SPI1_R>;
681                         dmas = <&dmamux1 37 0x400 0x05>,
682                                <&dmamux1 38 0x400 0x05>;
683                         dma-names = "rx", "tx";
684                         status = "disabled";
685                 };
686
687                 i2s1: audio-controller@44004000 {
688                         compatible = "st,stm32h7-i2s";
689                         #sound-dai-cells = <0>;
690                         reg = <0x44004000 0x400>;
691                         interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
692                         dmas = <&dmamux1 37 0x400 0x01>,
693                                <&dmamux1 38 0x400 0x01>;
694                         dma-names = "rx", "tx";
695                         status = "disabled";
696                 };
697
698                 spi4: spi@44005000 {
699                         #address-cells = <1>;
700                         #size-cells = <0>;
701                         compatible = "st,stm32h7-spi";
702                         reg = <0x44005000 0x400>;
703                         interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
704                         clocks = <&rcc SPI4_K>;
705                         resets = <&rcc SPI4_R>;
706                         dmas = <&dmamux1 83 0x400 0x05>,
707                                <&dmamux1 84 0x400 0x05>;
708                         dma-names = "rx", "tx";
709                         status = "disabled";
710                 };
711
712                 timers15: timer@44006000 {
713                         #address-cells = <1>;
714                         #size-cells = <0>;
715                         compatible = "st,stm32-timers";
716                         reg = <0x44006000 0x400>;
717                         clocks = <&rcc TIM15_K>;
718                         clock-names = "int";
719                         dmas = <&dmamux1 105 0x400 0x1>,
720                                <&dmamux1 106 0x400 0x1>,
721                                <&dmamux1 107 0x400 0x1>,
722                                <&dmamux1 108 0x400 0x1>;
723                         dma-names = "ch1", "up", "trig", "com";
724                         status = "disabled";
725
726                         pwm {
727                                 compatible = "st,stm32-pwm";
728                                 #pwm-cells = <3>;
729                                 status = "disabled";
730                         };
731
732                         timer@14 {
733                                 compatible = "st,stm32h7-timer-trigger";
734                                 reg = <14>;
735                                 status = "disabled";
736                         };
737                 };
738
739                 timers16: timer@44007000 {
740                         #address-cells = <1>;
741                         #size-cells = <0>;
742                         compatible = "st,stm32-timers";
743                         reg = <0x44007000 0x400>;
744                         clocks = <&rcc TIM16_K>;
745                         clock-names = "int";
746                         dmas = <&dmamux1 109 0x400 0x1>,
747                                <&dmamux1 110 0x400 0x1>;
748                         dma-names = "ch1", "up";
749                         status = "disabled";
750
751                         pwm {
752                                 compatible = "st,stm32-pwm";
753                                 #pwm-cells = <3>;
754                                 status = "disabled";
755                         };
756                         timer@15 {
757                                 compatible = "st,stm32h7-timer-trigger";
758                                 reg = <15>;
759                                 status = "disabled";
760                         };
761                 };
762
763                 timers17: timer@44008000 {
764                         #address-cells = <1>;
765                         #size-cells = <0>;
766                         compatible = "st,stm32-timers";
767                         reg = <0x44008000 0x400>;
768                         clocks = <&rcc TIM17_K>;
769                         clock-names = "int";
770                         dmas = <&dmamux1 111 0x400 0x1>,
771                                <&dmamux1 112 0x400 0x1>;
772                         dma-names = "ch1", "up";
773                         status = "disabled";
774
775                         pwm {
776                                 compatible = "st,stm32-pwm";
777                                 #pwm-cells = <3>;
778                                 status = "disabled";
779                         };
780
781                         timer@16 {
782                                 compatible = "st,stm32h7-timer-trigger";
783                                 reg = <16>;
784                                 status = "disabled";
785                         };
786                 };
787
788                 spi5: spi@44009000 {
789                         #address-cells = <1>;
790                         #size-cells = <0>;
791                         compatible = "st,stm32h7-spi";
792                         reg = <0x44009000 0x400>;
793                         interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
794                         clocks = <&rcc SPI5_K>;
795                         resets = <&rcc SPI5_R>;
796                         dmas = <&dmamux1 85 0x400 0x05>,
797                                <&dmamux1 86 0x400 0x05>;
798                         dma-names = "rx", "tx";
799                         status = "disabled";
800                 };
801
802                 sai1: sai@4400a000 {
803                         compatible = "st,stm32h7-sai";
804                         #address-cells = <1>;
805                         #size-cells = <1>;
806                         ranges = <0 0x4400a000 0x400>;
807                         reg = <0x4400a000 0x4>, <0x4400a3f0 0x10>;
808                         interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
809                         resets = <&rcc SAI1_R>;
810                         status = "disabled";
811
812                         sai1a: audio-controller@4400a004 {
813                                 #sound-dai-cells = <0>;
814
815                                 compatible = "st,stm32-sai-sub-a";
816                                 reg = <0x4 0x1c>;
817                                 clocks = <&rcc SAI1_K>;
818                                 clock-names = "sai_ck";
819                                 dmas = <&dmamux1 87 0x400 0x01>;
820                                 status = "disabled";
821                         };
822
823                         sai1b: audio-controller@4400a024 {
824                                 #sound-dai-cells = <0>;
825                                 compatible = "st,stm32-sai-sub-b";
826                                 reg = <0x24 0x1c>;
827                                 clocks = <&rcc SAI1_K>;
828                                 clock-names = "sai_ck";
829                                 dmas = <&dmamux1 88 0x400 0x01>;
830                                 status = "disabled";
831                         };
832                 };
833
834                 sai2: sai@4400b000 {
835                         compatible = "st,stm32h7-sai";
836                         #address-cells = <1>;
837                         #size-cells = <1>;
838                         ranges = <0 0x4400b000 0x400>;
839                         reg = <0x4400b000 0x4>, <0x4400b3f0 0x10>;
840                         interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
841                         resets = <&rcc SAI2_R>;
842                         status = "disabled";
843
844                         sai2a: audio-controller@4400b004 {
845                                 #sound-dai-cells = <0>;
846                                 compatible = "st,stm32-sai-sub-a";
847                                 reg = <0x4 0x1c>;
848                                 clocks = <&rcc SAI2_K>;
849                                 clock-names = "sai_ck";
850                                 dmas = <&dmamux1 89 0x400 0x01>;
851                                 status = "disabled";
852                         };
853
854                         sai2b: audio-controller@4400b024 {
855                                 #sound-dai-cells = <0>;
856                                 compatible = "st,stm32-sai-sub-b";
857                                 reg = <0x24 0x1c>;
858                                 clocks = <&rcc SAI2_K>;
859                                 clock-names = "sai_ck";
860                                 dmas = <&dmamux1 90 0x400 0x01>;
861                                 status = "disabled";
862                         };
863                 };
864
865                 sai3: sai@4400c000 {
866                         compatible = "st,stm32h7-sai";
867                         #address-cells = <1>;
868                         #size-cells = <1>;
869                         ranges = <0 0x4400c000 0x400>;
870                         reg = <0x4400c000 0x4>, <0x4400c3f0 0x10>;
871                         interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
872                         resets = <&rcc SAI3_R>;
873                         status = "disabled";
874
875                         sai3a: audio-controller@4400c004 {
876                                 #sound-dai-cells = <0>;
877                                 compatible = "st,stm32-sai-sub-a";
878                                 reg = <0x04 0x1c>;
879                                 clocks = <&rcc SAI3_K>;
880                                 clock-names = "sai_ck";
881                                 dmas = <&dmamux1 113 0x400 0x01>;
882                                 status = "disabled";
883                         };
884
885                         sai3b: audio-controller@4400c024 {
886                                 #sound-dai-cells = <0>;
887                                 compatible = "st,stm32-sai-sub-b";
888                                 reg = <0x24 0x1c>;
889                                 clocks = <&rcc SAI3_K>;
890                                 clock-names = "sai_ck";
891                                 dmas = <&dmamux1 114 0x400 0x01>;
892                                 status = "disabled";
893                         };
894                 };
895
896                 dfsdm: dfsdm@4400d000 {
897                         compatible = "st,stm32mp1-dfsdm";
898                         reg = <0x4400d000 0x800>;
899                         clocks = <&rcc DFSDM_K>;
900                         clock-names = "dfsdm";
901                         #address-cells = <1>;
902                         #size-cells = <0>;
903                         status = "disabled";
904
905                         dfsdm0: filter@0 {
906                                 compatible = "st,stm32-dfsdm-adc";
907                                 #io-channel-cells = <1>;
908                                 reg = <0>;
909                                 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
910                                 dmas = <&dmamux1 101 0x400 0x01>;
911                                 dma-names = "rx";
912                                 status = "disabled";
913                         };
914
915                         dfsdm1: filter@1 {
916                                 compatible = "st,stm32-dfsdm-adc";
917                                 #io-channel-cells = <1>;
918                                 reg = <1>;
919                                 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
920                                 dmas = <&dmamux1 102 0x400 0x01>;
921                                 dma-names = "rx";
922                                 status = "disabled";
923                         };
924
925                         dfsdm2: filter@2 {
926                                 compatible = "st,stm32-dfsdm-adc";
927                                 #io-channel-cells = <1>;
928                                 reg = <2>;
929                                 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
930                                 dmas = <&dmamux1 103 0x400 0x01>;
931                                 dma-names = "rx";
932                                 status = "disabled";
933                         };
934
935                         dfsdm3: filter@3 {
936                                 compatible = "st,stm32-dfsdm-adc";
937                                 #io-channel-cells = <1>;
938                                 reg = <3>;
939                                 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
940                                 dmas = <&dmamux1 104 0x400 0x01>;
941                                 dma-names = "rx";
942                                 status = "disabled";
943                         };
944
945                         dfsdm4: filter@4 {
946                                 compatible = "st,stm32-dfsdm-adc";
947                                 #io-channel-cells = <1>;
948                                 reg = <4>;
949                                 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
950                                 dmas = <&dmamux1 91 0x400 0x01>;
951                                 dma-names = "rx";
952                                 status = "disabled";
953                         };
954
955                         dfsdm5: filter@5 {
956                                 compatible = "st,stm32-dfsdm-adc";
957                                 #io-channel-cells = <1>;
958                                 reg = <5>;
959                                 interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
960                                 dmas = <&dmamux1 92 0x400 0x01>;
961                                 dma-names = "rx";
962                                 status = "disabled";
963                         };
964                 };
965
966                 dma1: dma-controller@48000000 {
967                         compatible = "st,stm32-dma";
968                         reg = <0x48000000 0x400>;
969                         interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
970                                      <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
971                                      <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
972                                      <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
973                                      <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
974                                      <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
975                                      <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
976                                      <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
977                         clocks = <&rcc DMA1>;
978                         resets = <&rcc DMA1_R>;
979                         #dma-cells = <4>;
980                         st,mem2mem;
981                         dma-requests = <8>;
982                 };
983
984                 dma2: dma-controller@48001000 {
985                         compatible = "st,stm32-dma";
986                         reg = <0x48001000 0x400>;
987                         interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
988                                      <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
989                                      <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
990                                      <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
991                                      <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
992                                      <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
993                                      <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
994                                      <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
995                         clocks = <&rcc DMA2>;
996                         resets = <&rcc DMA2_R>;
997                         #dma-cells = <4>;
998                         st,mem2mem;
999                         dma-requests = <8>;
1000                 };
1001
1002                 dmamux1: dma-router@48002000 {
1003                         compatible = "st,stm32h7-dmamux";
1004                         reg = <0x48002000 0x40>;
1005                         #dma-cells = <3>;
1006                         dma-requests = <128>;
1007                         dma-masters = <&dma1 &dma2>;
1008                         dma-channels = <16>;
1009                         clocks = <&rcc DMAMUX>;
1010                         resets = <&rcc DMAMUX_R>;
1011                 };
1012
1013                 adc: adc@48003000 {
1014                         compatible = "st,stm32mp1-adc-core";
1015                         reg = <0x48003000 0x400>;
1016                         interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
1017                                      <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
1018                         clocks = <&rcc ADC12>, <&rcc ADC12_K>;
1019                         clock-names = "bus", "adc";
1020                         interrupt-controller;
1021                         st,syscfg = <&syscfg>;
1022                         #interrupt-cells = <1>;
1023                         #address-cells = <1>;
1024                         #size-cells = <0>;
1025                         status = "disabled";
1026
1027                         adc1: adc@0 {
1028                                 compatible = "st,stm32mp1-adc";
1029                                 #io-channel-cells = <1>;
1030                                 reg = <0x0>;
1031                                 interrupt-parent = <&adc>;
1032                                 interrupts = <0>;
1033                                 dmas = <&dmamux1 9 0x400 0x01>;
1034                                 dma-names = "rx";
1035                                 status = "disabled";
1036                         };
1037
1038                         adc2: adc@100 {
1039                                 compatible = "st,stm32mp1-adc";
1040                                 #io-channel-cells = <1>;
1041                                 reg = <0x100>;
1042                                 interrupt-parent = <&adc>;
1043                                 interrupts = <1>;
1044                                 dmas = <&dmamux1 10 0x400 0x01>;
1045                                 dma-names = "rx";
1046                                 status = "disabled";
1047                         };
1048                 };
1049
1050                 sdmmc3: sdmmc@48004000 {
1051                         compatible = "arm,pl18x", "arm,primecell";
1052                         arm,primecell-periphid = <0x00253180>;
1053                         reg = <0x48004000 0x400>;
1054                         interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
1055                         interrupt-names = "cmd_irq";
1056                         clocks = <&rcc SDMMC3_K>;
1057                         clock-names = "apb_pclk";
1058                         resets = <&rcc SDMMC3_R>;
1059                         cap-sd-highspeed;
1060                         cap-mmc-highspeed;
1061                         max-frequency = <120000000>;
1062                         status = "disabled";
1063                 };
1064
1065                 usbotg_hs: usb-otg@49000000 {
1066                         compatible = "st,stm32mp15-hsotg", "snps,dwc2";
1067                         reg = <0x49000000 0x10000>;
1068                         clocks = <&rcc USBO_K>;
1069                         clock-names = "otg";
1070                         resets = <&rcc USBO_R>;
1071                         reset-names = "dwc2";
1072                         interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1073                         g-rx-fifo-size = <512>;
1074                         g-np-tx-fifo-size = <32>;
1075                         g-tx-fifo-size = <256 16 16 16 16 16 16 16>;
1076                         dr_mode = "otg";
1077                         usb33d-supply = <&usb33>;
1078                         status = "disabled";
1079                 };
1080
1081                 ipcc: mailbox@4c001000 {
1082                         compatible = "st,stm32mp1-ipcc";
1083                         #mbox-cells = <1>;
1084                         reg = <0x4c001000 0x400>;
1085                         st,proc-id = <0>;
1086                         interrupts-extended =
1087                                 <&intc GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
1088                                 <&intc GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
1089                                 <&exti 61 1>;
1090                         interrupt-names = "rx", "tx", "wakeup";
1091                         clocks = <&rcc IPCC>;
1092                         wakeup-source;
1093                         status = "disabled";
1094                 };
1095
1096                 dcmi: dcmi@4c006000 {
1097                         compatible = "st,stm32-dcmi";
1098                         reg = <0x4c006000 0x400>;
1099                         interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
1100                         resets = <&rcc CAMITF_R>;
1101                         clocks = <&rcc DCMI>;
1102                         clock-names = "mclk";
1103                         dmas = <&dmamux1 75 0x400 0x01>;
1104                         dma-names = "tx";
1105                         status = "disabled";
1106                 };
1107
1108                 rcc: rcc@50000000 {
1109                         compatible = "st,stm32mp1-rcc", "syscon";
1110                         reg = <0x50000000 0x1000>;
1111                         #clock-cells = <1>;
1112                         #reset-cells = <1>;
1113                 };
1114
1115                 pwr_regulators: pwr@50001000 {
1116                         compatible = "st,stm32mp1,pwr-reg";
1117                         reg = <0x50001000 0x10>;
1118
1119                         reg11: reg11 {
1120                                 regulator-name = "reg11";
1121                                 regulator-min-microvolt = <1100000>;
1122                                 regulator-max-microvolt = <1100000>;
1123                         };
1124
1125                         reg18: reg18 {
1126                                 regulator-name = "reg18";
1127                                 regulator-min-microvolt = <1800000>;
1128                                 regulator-max-microvolt = <1800000>;
1129                         };
1130
1131                         usb33: usb33 {
1132                                 regulator-name = "usb33";
1133                                 regulator-min-microvolt = <3300000>;
1134                                 regulator-max-microvolt = <3300000>;
1135                         };
1136                 };
1137
1138                 pwr_mcu: pwr_mcu@50001014 {
1139                         compatible = "st,stm32mp151-pwr-mcu", "syscon";
1140                         reg = <0x50001014 0x4>;
1141                 };
1142
1143                 exti: interrupt-controller@5000d000 {
1144                         compatible = "st,stm32mp1-exti", "syscon";
1145                         interrupt-controller;
1146                         #interrupt-cells = <2>;
1147                         reg = <0x5000d000 0x400>;
1148                 };
1149
1150                 syscfg: syscon@50020000 {
1151                         compatible = "st,stm32mp157-syscfg", "syscon";
1152                         reg = <0x50020000 0x400>;
1153                         clocks = <&rcc SYSCFG>;
1154                 };
1155
1156                 lptimer2: timer@50021000 {
1157                         #address-cells = <1>;
1158                         #size-cells = <0>;
1159                         compatible = "st,stm32-lptimer";
1160                         reg = <0x50021000 0x400>;
1161                         interrupts-extended = <&exti 48 IRQ_TYPE_LEVEL_HIGH>;
1162                         clocks = <&rcc LPTIM2_K>;
1163                         clock-names = "mux";
1164                         wakeup-source;
1165                         status = "disabled";
1166
1167                         pwm {
1168                                 compatible = "st,stm32-pwm-lp";
1169                                 #pwm-cells = <3>;
1170                                 status = "disabled";
1171                         };
1172
1173                         trigger@1 {
1174                                 compatible = "st,stm32-lptimer-trigger";
1175                                 reg = <1>;
1176                                 status = "disabled";
1177                         };
1178
1179                         counter {
1180                                 compatible = "st,stm32-lptimer-counter";
1181                                 status = "disabled";
1182                         };
1183                 };
1184
1185                 lptimer3: timer@50022000 {
1186                         #address-cells = <1>;
1187                         #size-cells = <0>;
1188                         compatible = "st,stm32-lptimer";
1189                         reg = <0x50022000 0x400>;
1190                         interrupts-extended = <&exti 50 IRQ_TYPE_LEVEL_HIGH>;
1191                         clocks = <&rcc LPTIM3_K>;
1192                         clock-names = "mux";
1193                         wakeup-source;
1194                         status = "disabled";
1195
1196                         pwm {
1197                                 compatible = "st,stm32-pwm-lp";
1198                                 #pwm-cells = <3>;
1199                                 status = "disabled";
1200                         };
1201
1202                         trigger@2 {
1203                                 compatible = "st,stm32-lptimer-trigger";
1204                                 reg = <2>;
1205                                 status = "disabled";
1206                         };
1207                 };
1208
1209                 lptimer4: timer@50023000 {
1210                         compatible = "st,stm32-lptimer";
1211                         reg = <0x50023000 0x400>;
1212                         interrupts-extended = <&exti 52 IRQ_TYPE_LEVEL_HIGH>;
1213                         clocks = <&rcc LPTIM4_K>;
1214                         clock-names = "mux";
1215                         wakeup-source;
1216                         status = "disabled";
1217
1218                         pwm {
1219                                 compatible = "st,stm32-pwm-lp";
1220                                 #pwm-cells = <3>;
1221                                 status = "disabled";
1222                         };
1223                 };
1224
1225                 lptimer5: timer@50024000 {
1226                         compatible = "st,stm32-lptimer";
1227                         reg = <0x50024000 0x400>;
1228                         interrupts-extended = <&exti 53 IRQ_TYPE_LEVEL_HIGH>;
1229                         clocks = <&rcc LPTIM5_K>;
1230                         clock-names = "mux";
1231                         wakeup-source;
1232                         status = "disabled";
1233
1234                         pwm {
1235                                 compatible = "st,stm32-pwm-lp";
1236                                 #pwm-cells = <3>;
1237                                 status = "disabled";
1238                         };
1239                 };
1240
1241                 vrefbuf: vrefbuf@50025000 {
1242                         compatible = "st,stm32-vrefbuf";
1243                         reg = <0x50025000 0x8>;
1244                         regulator-min-microvolt = <1500000>;
1245                         regulator-max-microvolt = <2500000>;
1246                         clocks = <&rcc VREF>;
1247                         status = "disabled";
1248                 };
1249
1250                 sai4: sai@50027000 {
1251                         compatible = "st,stm32h7-sai";
1252                         #address-cells = <1>;
1253                         #size-cells = <1>;
1254                         ranges = <0 0x50027000 0x400>;
1255                         reg = <0x50027000 0x4>, <0x500273f0 0x10>;
1256                         interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
1257                         resets = <&rcc SAI4_R>;
1258                         status = "disabled";
1259
1260                         sai4a: audio-controller@50027004 {
1261                                 #sound-dai-cells = <0>;
1262                                 compatible = "st,stm32-sai-sub-a";
1263                                 reg = <0x04 0x1c>;
1264                                 clocks = <&rcc SAI4_K>;
1265                                 clock-names = "sai_ck";
1266                                 dmas = <&dmamux1 99 0x400 0x01>;
1267                                 status = "disabled";
1268                         };
1269
1270                         sai4b: audio-controller@50027024 {
1271                                 #sound-dai-cells = <0>;
1272                                 compatible = "st,stm32-sai-sub-b";
1273                                 reg = <0x24 0x1c>;
1274                                 clocks = <&rcc SAI4_K>;
1275                                 clock-names = "sai_ck";
1276                                 dmas = <&dmamux1 100 0x400 0x01>;
1277                                 status = "disabled";
1278                         };
1279                 };
1280
1281                 dts: thermal@50028000 {
1282                         compatible = "st,stm32-thermal";
1283                         reg = <0x50028000 0x100>;
1284                         interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
1285                         clocks = <&rcc TMPSENS>;
1286                         clock-names = "pclk";
1287                         #thermal-sensor-cells = <0>;
1288                         status = "disabled";
1289                 };
1290
1291                 hash1: hash@54002000 {
1292                         compatible = "st,stm32f756-hash";
1293                         reg = <0x54002000 0x400>;
1294                         interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
1295                         clocks = <&rcc HASH1>;
1296                         resets = <&rcc HASH1_R>;
1297                         dmas = <&mdma1 31 0x2 0x1000A02 0x0 0x0>;
1298                         dma-names = "in";
1299                         dma-maxburst = <2>;
1300                         status = "disabled";
1301                 };
1302
1303                 rng1: rng@54003000 {
1304                         compatible = "st,stm32-rng";
1305                         reg = <0x54003000 0x400>;
1306                         clocks = <&rcc RNG1_K>;
1307                         resets = <&rcc RNG1_R>;
1308                         status = "disabled";
1309                 };
1310
1311                 mdma1: dma-controller@58000000 {
1312                         compatible = "st,stm32h7-mdma";
1313                         reg = <0x58000000 0x1000>;
1314                         interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
1315                         clocks = <&rcc MDMA>;
1316                         resets = <&rcc MDMA_R>;
1317                         #dma-cells = <5>;
1318                         dma-channels = <32>;
1319                         dma-requests = <48>;
1320                 };
1321
1322                 fmc: memory-controller@58002000 {
1323                         #address-cells = <2>;
1324                         #size-cells = <1>;
1325                         compatible = "st,stm32mp1-fmc2-ebi";
1326                         reg = <0x58002000 0x1000>;
1327                         clocks = <&rcc FMC_K>;
1328                         resets = <&rcc FMC_R>;
1329                         status = "disabled";
1330
1331                         ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */
1332                                  <1 0 0x64000000 0x04000000>, /* EBI CS 2 */
1333                                  <2 0 0x68000000 0x04000000>, /* EBI CS 3 */
1334                                  <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */
1335                                  <4 0 0x80000000 0x10000000>; /* NAND */
1336
1337                         nand-controller@4,0 {
1338                                 #address-cells = <1>;
1339                                 #size-cells = <0>;
1340                                 compatible = "st,stm32mp1-fmc2-nfc";
1341                                 reg = <4 0x00000000 0x1000>,
1342                                       <4 0x08010000 0x1000>,
1343                                       <4 0x08020000 0x1000>,
1344                                       <4 0x01000000 0x1000>,
1345                                       <4 0x09010000 0x1000>,
1346                                       <4 0x09020000 0x1000>;
1347                                 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
1348                                 dmas = <&mdma1 20 0x2 0x12000a02 0x0 0x0>,
1349                                        <&mdma1 20 0x2 0x12000a08 0x0 0x0>,
1350                                        <&mdma1 21 0x2 0x12000a0a 0x0 0x0>;
1351                                 dma-names = "tx", "rx", "ecc";
1352                                 status = "disabled";
1353                         };
1354                 };
1355
1356                 qspi: spi@58003000 {
1357                         compatible = "st,stm32f469-qspi";
1358                         reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
1359                         reg-names = "qspi", "qspi_mm";
1360                         interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
1361                         dmas = <&mdma1 22 0x2 0x100002 0x0 0x0>,
1362                                <&mdma1 22 0x2 0x100008 0x0 0x0>;
1363                         dma-names = "tx", "rx";
1364                         clocks = <&rcc QSPI_K>;
1365                         resets = <&rcc QSPI_R>;
1366                         #address-cells = <1>;
1367                         #size-cells = <0>;
1368                         status = "disabled";
1369                 };
1370
1371                 sdmmc1: sdmmc@58005000 {
1372                         compatible = "arm,pl18x", "arm,primecell";
1373                         arm,primecell-periphid = <0x00253180>;
1374                         reg = <0x58005000 0x1000>;
1375                         interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
1376                         interrupt-names = "cmd_irq";
1377                         clocks = <&rcc SDMMC1_K>;
1378                         clock-names = "apb_pclk";
1379                         resets = <&rcc SDMMC1_R>;
1380                         cap-sd-highspeed;
1381                         cap-mmc-highspeed;
1382                         max-frequency = <120000000>;
1383                         status = "disabled";
1384                 };
1385
1386                 sdmmc2: sdmmc@58007000 {
1387                         compatible = "arm,pl18x", "arm,primecell";
1388                         arm,primecell-periphid = <0x00253180>;
1389                         reg = <0x58007000 0x1000>;
1390                         interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
1391                         interrupt-names = "cmd_irq";
1392                         clocks = <&rcc SDMMC2_K>;
1393                         clock-names = "apb_pclk";
1394                         resets = <&rcc SDMMC2_R>;
1395                         cap-sd-highspeed;
1396                         cap-mmc-highspeed;
1397                         max-frequency = <120000000>;
1398                         status = "disabled";
1399                 };
1400
1401                 crc1: crc@58009000 {
1402                         compatible = "st,stm32f7-crc";
1403                         reg = <0x58009000 0x400>;
1404                         clocks = <&rcc CRC1>;
1405                         status = "disabled";
1406                 };
1407
1408                 stmmac_axi_config_0: stmmac-axi-config {
1409                         snps,wr_osr_lmt = <0x7>;
1410                         snps,rd_osr_lmt = <0x7>;
1411                         snps,blen = <0 0 0 0 16 8 4>;
1412                 };
1413
1414                 ethernet0: ethernet@5800a000 {
1415                         compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a";
1416                         reg = <0x5800a000 0x2000>;
1417                         reg-names = "stmmaceth";
1418                         interrupts-extended = <&intc GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
1419                         interrupt-names = "macirq";
1420                         clock-names = "stmmaceth",
1421                                       "mac-clk-tx",
1422                                       "mac-clk-rx",
1423                                       "eth-ck",
1424                                       "ethstp";
1425                         clocks = <&rcc ETHMAC>,
1426                                  <&rcc ETHTX>,
1427                                  <&rcc ETHRX>,
1428                                  <&rcc ETHCK_K>,
1429                                  <&rcc ETHSTP>;
1430                         st,syscon = <&syscfg 0x4>;
1431                         snps,mixed-burst;
1432                         snps,pbl = <2>;
1433                         snps,en-tx-lpi-clockgating;
1434                         snps,axi-config = <&stmmac_axi_config_0>;
1435                         snps,tso;
1436                         status = "disabled";
1437                 };
1438
1439                 usbh_ohci: usb@5800c000 {
1440                         compatible = "generic-ohci";
1441                         reg = <0x5800c000 0x1000>;
1442                         clocks = <&rcc USBH>;
1443                         resets = <&rcc USBH_R>;
1444                         interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
1445                         status = "disabled";
1446                 };
1447
1448                 usbh_ehci: usb@5800d000 {
1449                         compatible = "generic-ehci";
1450                         reg = <0x5800d000 0x1000>;
1451                         clocks = <&rcc USBH>;
1452                         resets = <&rcc USBH_R>;
1453                         interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
1454                         companion = <&usbh_ohci>;
1455                         status = "disabled";
1456                 };
1457
1458                 ltdc: display-controller@5a001000 {
1459                         compatible = "st,stm32-ltdc";
1460                         reg = <0x5a001000 0x400>;
1461                         interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
1462                                      <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1463                         clocks = <&rcc LTDC_PX>;
1464                         clock-names = "lcd";
1465                         resets = <&rcc LTDC_R>;
1466                         status = "disabled";
1467
1468                         port {
1469                                 #address-cells = <1>;
1470                                 #size-cells = <0>;
1471                         };
1472                 };
1473
1474                 iwdg2: watchdog@5a002000 {
1475                         compatible = "st,stm32mp1-iwdg";
1476                         reg = <0x5a002000 0x400>;
1477                         clocks = <&rcc IWDG2>, <&rcc CK_LSI>;
1478                         clock-names = "pclk", "lsi";
1479                         status = "disabled";
1480                 };
1481
1482                 usbphyc: usbphyc@5a006000 {
1483                         #address-cells = <1>;
1484                         #size-cells = <0>;
1485                         compatible = "st,stm32mp1-usbphyc";
1486                         reg = <0x5a006000 0x1000>;
1487                         clocks = <&rcc USBPHY_K>;
1488                         resets = <&rcc USBPHY_R>;
1489                         status = "disabled";
1490
1491                         usbphyc_port0: usb-phy@0 {
1492                                 #phy-cells = <0>;
1493                                 reg = <0>;
1494                         };
1495
1496                         usbphyc_port1: usb-phy@1 {
1497                                 #phy-cells = <1>;
1498                                 reg = <1>;
1499                         };
1500                 };
1501
1502                 usart1: serial@5c000000 {
1503                         compatible = "st,stm32h7-uart";
1504                         reg = <0x5c000000 0x400>;
1505                         interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
1506                         clocks = <&rcc USART1_K>;
1507                         status = "disabled";
1508                 };
1509
1510                 spi6: spi@5c001000 {
1511                         #address-cells = <1>;
1512                         #size-cells = <0>;
1513                         compatible = "st,stm32h7-spi";
1514                         reg = <0x5c001000 0x400>;
1515                         interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
1516                         clocks = <&rcc SPI6_K>;
1517                         resets = <&rcc SPI6_R>;
1518                         dmas = <&mdma1 34 0x0 0x40008 0x0 0x0>,
1519                                <&mdma1 35 0x0 0x40002 0x0 0x0>;
1520                         dma-names = "rx", "tx";
1521                         status = "disabled";
1522                 };
1523
1524                 i2c4: i2c@5c002000 {
1525                         compatible = "st,stm32mp15-i2c";
1526                         reg = <0x5c002000 0x400>;
1527                         interrupt-names = "event", "error";
1528                         interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
1529                                      <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1530                         clocks = <&rcc I2C4_K>;
1531                         resets = <&rcc I2C4_R>;
1532                         #address-cells = <1>;
1533                         #size-cells = <0>;
1534                         st,syscfg-fmp = <&syscfg 0x4 0x8>;
1535                         wakeup-source;
1536                         status = "disabled";
1537                 };
1538
1539                 rtc: rtc@5c004000 {
1540                         compatible = "st,stm32mp1-rtc";
1541                         reg = <0x5c004000 0x400>;
1542                         clocks = <&rcc RTCAPB>, <&rcc RTC>;
1543                         clock-names = "pclk", "rtc_ck";
1544                         interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
1545                         status = "disabled";
1546                 };
1547
1548                 bsec: efuse@5c005000 {
1549                         compatible = "st,stm32mp15-bsec";
1550                         reg = <0x5c005000 0x400>;
1551                         #address-cells = <1>;
1552                         #size-cells = <1>;
1553                         ts_cal1: calib@5c {
1554                                 reg = <0x5c 0x2>;
1555                         };
1556                         ts_cal2: calib@5e {
1557                                 reg = <0x5e 0x2>;
1558                         };
1559                 };
1560
1561                 i2c6: i2c@5c009000 {
1562                         compatible = "st,stm32mp15-i2c";
1563                         reg = <0x5c009000 0x400>;
1564                         interrupt-names = "event", "error";
1565                         interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
1566                                      <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
1567                         clocks = <&rcc I2C6_K>;
1568                         resets = <&rcc I2C6_R>;
1569                         #address-cells = <1>;
1570                         #size-cells = <0>;
1571                         st,syscfg-fmp = <&syscfg 0x4 0x20>;
1572                         wakeup-source;
1573                         status = "disabled";
1574                 };
1575
1576                 tamp: tamp@5c00a000 {
1577                         compatible = "st,stm32-tamp", "syscon", "simple-mfd";
1578                         reg = <0x5c00a000 0x400>;
1579                 };
1580
1581                 /*
1582                  * Break node order to solve dependency probe issue between
1583                  * pinctrl and exti.
1584                  */
1585                 pinctrl: pin-controller@50002000 {
1586                         #address-cells = <1>;
1587                         #size-cells = <1>;
1588                         compatible = "st,stm32mp157-pinctrl";
1589                         ranges = <0 0x50002000 0xa400>;
1590                         interrupt-parent = <&exti>;
1591                         st,syscfg = <&exti 0x60 0xff>;
1592                         pins-are-numbered;
1593
1594                         gpioa: gpio@50002000 {
1595                                 gpio-controller;
1596                                 #gpio-cells = <2>;
1597                                 interrupt-controller;
1598                                 #interrupt-cells = <2>;
1599                                 reg = <0x0 0x400>;
1600                                 clocks = <&rcc GPIOA>;
1601                                 st,bank-name = "GPIOA";
1602                                 status = "disabled";
1603                         };
1604
1605                         gpiob: gpio@50003000 {
1606                                 gpio-controller;
1607                                 #gpio-cells = <2>;
1608                                 interrupt-controller;
1609                                 #interrupt-cells = <2>;
1610                                 reg = <0x1000 0x400>;
1611                                 clocks = <&rcc GPIOB>;
1612                                 st,bank-name = "GPIOB";
1613                                 status = "disabled";
1614                         };
1615
1616                         gpioc: gpio@50004000 {
1617                                 gpio-controller;
1618                                 #gpio-cells = <2>;
1619                                 interrupt-controller;
1620                                 #interrupt-cells = <2>;
1621                                 reg = <0x2000 0x400>;
1622                                 clocks = <&rcc GPIOC>;
1623                                 st,bank-name = "GPIOC";
1624                                 status = "disabled";
1625                         };
1626
1627                         gpiod: gpio@50005000 {
1628                                 gpio-controller;
1629                                 #gpio-cells = <2>;
1630                                 interrupt-controller;
1631                                 #interrupt-cells = <2>;
1632                                 reg = <0x3000 0x400>;
1633                                 clocks = <&rcc GPIOD>;
1634                                 st,bank-name = "GPIOD";
1635                                 status = "disabled";
1636                         };
1637
1638                         gpioe: gpio@50006000 {
1639                                 gpio-controller;
1640                                 #gpio-cells = <2>;
1641                                 interrupt-controller;
1642                                 #interrupt-cells = <2>;
1643                                 reg = <0x4000 0x400>;
1644                                 clocks = <&rcc GPIOE>;
1645                                 st,bank-name = "GPIOE";
1646                                 status = "disabled";
1647                         };
1648
1649                         gpiof: gpio@50007000 {
1650                                 gpio-controller;
1651                                 #gpio-cells = <2>;
1652                                 interrupt-controller;
1653                                 #interrupt-cells = <2>;
1654                                 reg = <0x5000 0x400>;
1655                                 clocks = <&rcc GPIOF>;
1656                                 st,bank-name = "GPIOF";
1657                                 status = "disabled";
1658                         };
1659
1660                         gpiog: gpio@50008000 {
1661                                 gpio-controller;
1662                                 #gpio-cells = <2>;
1663                                 interrupt-controller;
1664                                 #interrupt-cells = <2>;
1665                                 reg = <0x6000 0x400>;
1666                                 clocks = <&rcc GPIOG>;
1667                                 st,bank-name = "GPIOG";
1668                                 status = "disabled";
1669                         };
1670
1671                         gpioh: gpio@50009000 {
1672                                 gpio-controller;
1673                                 #gpio-cells = <2>;
1674                                 interrupt-controller;
1675                                 #interrupt-cells = <2>;
1676                                 reg = <0x7000 0x400>;
1677                                 clocks = <&rcc GPIOH>;
1678                                 st,bank-name = "GPIOH";
1679                                 status = "disabled";
1680                         };
1681
1682                         gpioi: gpio@5000a000 {
1683                                 gpio-controller;
1684                                 #gpio-cells = <2>;
1685                                 interrupt-controller;
1686                                 #interrupt-cells = <2>;
1687                                 reg = <0x8000 0x400>;
1688                                 clocks = <&rcc GPIOI>;
1689                                 st,bank-name = "GPIOI";
1690                                 status = "disabled";
1691                         };
1692
1693                         gpioj: gpio@5000b000 {
1694                                 gpio-controller;
1695                                 #gpio-cells = <2>;
1696                                 interrupt-controller;
1697                                 #interrupt-cells = <2>;
1698                                 reg = <0x9000 0x400>;
1699                                 clocks = <&rcc GPIOJ>;
1700                                 st,bank-name = "GPIOJ";
1701                                 status = "disabled";
1702                         };
1703
1704                         gpiok: gpio@5000c000 {
1705                                 gpio-controller;
1706                                 #gpio-cells = <2>;
1707                                 interrupt-controller;
1708                                 #interrupt-cells = <2>;
1709                                 reg = <0xa000 0x400>;
1710                                 clocks = <&rcc GPIOK>;
1711                                 st,bank-name = "GPIOK";
1712                                 status = "disabled";
1713                         };
1714                 };
1715
1716                 pinctrl_z: pin-controller-z@54004000 {
1717                         #address-cells = <1>;
1718                         #size-cells = <1>;
1719                         compatible = "st,stm32mp157-z-pinctrl";
1720                         ranges = <0 0x54004000 0x400>;
1721                         pins-are-numbered;
1722                         interrupt-parent = <&exti>;
1723                         st,syscfg = <&exti 0x60 0xff>;
1724
1725                         gpioz: gpio@54004000 {
1726                                 gpio-controller;
1727                                 #gpio-cells = <2>;
1728                                 interrupt-controller;
1729                                 #interrupt-cells = <2>;
1730                                 reg = <0 0x400>;
1731                                 clocks = <&rcc GPIOZ>;
1732                                 st,bank-name = "GPIOZ";
1733                                 st,bank-ioport = <11>;
1734                                 status = "disabled";
1735                         };
1736                 };
1737         };
1738
1739         mlahb: ahb {
1740                 compatible = "st,mlahb", "simple-bus";
1741                 #address-cells = <1>;
1742                 #size-cells = <1>;
1743                 ranges;
1744                 dma-ranges = <0x00000000 0x38000000 0x10000>,
1745                              <0x10000000 0x10000000 0x60000>,
1746                              <0x30000000 0x30000000 0x60000>;
1747
1748                 m4_rproc: m4@10000000 {
1749                         compatible = "st,stm32mp1-m4";
1750                         reg = <0x10000000 0x40000>,
1751                               <0x30000000 0x40000>,
1752                               <0x38000000 0x10000>;
1753                         resets = <&rcc MCU_R>;
1754                         st,syscfg-holdboot = <&rcc 0x10C 0x1>;
1755                         st,syscfg-tz = <&rcc 0x000 0x1>;
1756                         st,syscfg-pdds = <&pwr_mcu 0x0 0x1>;
1757                         st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>;
1758                         st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>;
1759                         status = "disabled";
1760                 };
1761         };
1762 };