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			device_type = "cpu";
21			reg = <0>;
22		};
23
24		cpu1: cpu@1 {
25			compatible = "arm,cortex-a7";
26			device_type = "cpu";
27			reg = <1>;
28		};
29	};
30
31	psci {
32		compatible = "arm,psci";
33		method = "smc";
34		cpu_off = <0x84000002>;
35		cpu_on = <0x84000003>;
36	};
37
38	aliases {
39		gpio0 = &gpioa;
40		gpio1 = &gpiob;
41		gpio2 = &gpioc;
42		gpio3 = &gpiod;
43		gpio4 = &gpioe;
44		gpio5 = &gpiof;
45		gpio6 = &gpiog;
46		gpio7 = &gpioh;
47		gpio8 = &gpioi;
48		gpio9 = &gpioj;
49		gpio10 = &gpiok;
50		serial0 = &usart1;
51		serial1 = &usart2;
52		serial2 = &usart3;
53		serial3 = &uart4;
54		serial4 = &uart5;
55		serial5 = &usart6;
56		serial6 = &uart7;
57		serial7 = &uart8;
58	};
59
60	intc: interrupt-controller@a0021000 {
61		compatible = "arm,cortex-a7-gic";
62		#interrupt-cells = <3>;
63		interrupt-controller;
64		reg = <0xa0021000 0x1000>,
65		      <0xa0022000 0x2000>;
66	};
67
68	timer {
69		compatible = "arm,armv7-timer";
70		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
71			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
72			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
73			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
74		interrupt-parent = <&intc>;
75	};
76
77	clocks {
78		clk_hse: clk-hse {
79			#clock-cells = <0>;
80			compatible = "fixed-clock";
81			clock-frequency = <24000000>;
82		};
83
84		clk_hsi: clk-hsi {
85			#clock-cells = <0>;
86			compatible = "fixed-clock";
87			clock-frequency = <64000000>;
88		};
89
90		clk_lse: clk-lse {
91			#clock-cells = <0>;
92			compatible = "fixed-clock";
93			clock-frequency = <32768>;
94		};
95
96		clk_lsi: clk-lsi {
97			#clock-cells = <0>;
98			compatible = "fixed-clock";
99			clock-frequency = <32000>;
100		};
101
102		clk_csi: clk-csi {
103			#clock-cells = <0>;
104			compatible = "fixed-clock";
105			clock-frequency = <4000000>;
106		};
107	};
108
109	pm_domain {
110		#address-cells = <1>;
111		#size-cells = <0>;
112		compatible = "st,stm32mp157c-pd";
113
114		pd_core_ret: core-ret-power-domain@1 {
115			#address-cells = <1>;
116			#size-cells = <0>;
117			reg = <1>;
118			#power-domain-cells = <0>;
119			label = "CORE-RETENTION";
120
121			pd_core: core-power-domain@2 {
122				reg = <2>;
123				#power-domain-cells = <0>;
124				label = "CORE";
125			};
126		};
127	};
128
129	soc {
130		compatible = "simple-bus";
131		#address-cells = <1>;
132		#size-cells = <1>;
133		interrupt-parent = <&intc>;
134		ranges;
135
136		timers2: timer@40000000 {
137			#address-cells = <1>;
138			#size-cells = <0>;
139			compatible = "st,stm32-timers";
140			reg = <0x40000000 0x400>;
141			clocks = <&rcc TIM2_K>;
142			clock-names = "int";
143			status = "disabled";
144
145			pwm {
146				compatible = "st,stm32-pwm";
147				status = "disabled";
148			};
149
150			timer@1 {
151				compatible = "st,stm32h7-timer-trigger";
152				reg = <1>;
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			clocks = <&rcc TIM3_K>;
163			clock-names = "int";
164			status = "disabled";
165
166			pwm {
167				compatible = "st,stm32-pwm";
168				status = "disabled";
169			};
170
171			timer@2 {
172				compatible = "st,stm32h7-timer-trigger";
173				reg = <2>;
174				status = "disabled";
175			};
176		};
177
178		timers4: timer@40002000 {
179			#address-cells = <1>;
180			#size-cells = <0>;
181			compatible = "st,stm32-timers";
182			reg = <0x40002000 0x400>;
183			clocks = <&rcc TIM4_K>;
184			clock-names = "int";
185			status = "disabled";
186
187			pwm {
188				compatible = "st,stm32-pwm";
189				status = "disabled";
190			};
191
192			timer@3 {
193				compatible = "st,stm32h7-timer-trigger";
194				reg = <3>;
195				status = "disabled";
196			};
197		};
198
199		timers5: timer@40003000 {
200			#address-cells = <1>;
201			#size-cells = <0>;
202			compatible = "st,stm32-timers";
203			reg = <0x40003000 0x400>;
204			clocks = <&rcc TIM5_K>;
205			clock-names = "int";
206			status = "disabled";
207
208			pwm {
209				compatible = "st,stm32-pwm";
210				status = "disabled";
211			};
212
213			timer@4 {
214				compatible = "st,stm32h7-timer-trigger";
215				reg = <4>;
216				status = "disabled";
217			};
218		};
219
220		timers6: timer@40004000 {
221			#address-cells = <1>;
222			#size-cells = <0>;
223			compatible = "st,stm32-timers";
224			reg = <0x40004000 0x400>;
225			clocks = <&rcc TIM6_K>;
226			clock-names = "int";
227			status = "disabled";
228
229			timer@5 {
230				compatible = "st,stm32h7-timer-trigger";
231				reg = <5>;
232				status = "disabled";
233			};
234		};
235
236		timers7: timer@40005000 {
237			#address-cells = <1>;
238			#size-cells = <0>;
239			compatible = "st,stm32-timers";
240			reg = <0x40005000 0x400>;
241			clocks = <&rcc TIM7_K>;
242			clock-names = "int";
243			status = "disabled";
244
245			timer@6 {
246				compatible = "st,stm32h7-timer-trigger";
247				reg = <6>;
248				status = "disabled";
249			};
250		};
251
252		timers12: timer@40006000 {
253			#address-cells = <1>;
254			#size-cells = <0>;
255			compatible = "st,stm32-timers";
256			reg = <0x40006000 0x400>;
257			clocks = <&rcc TIM12_K>;
258			clock-names = "int";
259			status = "disabled";
260
261			pwm {
262				compatible = "st,stm32-pwm";
263				status = "disabled";
264			};
265
266			timer@11 {
267				compatible = "st,stm32h7-timer-trigger";
268				reg = <11>;
269				status = "disabled";
270			};
271		};
272
273		timers13: timer@40007000 {
274			#address-cells = <1>;
275			#size-cells = <0>;
276			compatible = "st,stm32-timers";
277			reg = <0x40007000 0x400>;
278			clocks = <&rcc TIM13_K>;
279			clock-names = "int";
280			status = "disabled";
281
282			pwm {
283				compatible = "st,stm32-pwm";
284				status = "disabled";
285			};
286
287			timer@12 {
288				compatible = "st,stm32h7-timer-trigger";
289				reg = <12>;
290				status = "disabled";
291			};
292		};
293
294		timers14: timer@40008000 {
295			#address-cells = <1>;
296			#size-cells = <0>;
297			compatible = "st,stm32-timers";
298			reg = <0x40008000 0x400>;
299			clocks = <&rcc TIM14_K>;
300			clock-names = "int";
301			status = "disabled";
302
303			pwm {
304				compatible = "st,stm32-pwm";
305				status = "disabled";
306			};
307
308			timer@13 {
309				compatible = "st,stm32h7-timer-trigger";
310				reg = <13>;
311				status = "disabled";
312			};
313		};
314
315		lptimer1: timer@40009000 {
316			#address-cells = <1>;
317			#size-cells = <0>;
318			compatible = "st,stm32-lptimer";
319			reg = <0x40009000 0x400>;
320			clocks = <&rcc LPTIM1_K>;
321			clock-names = "mux";
322			status = "disabled";
323
324			pwm {
325				compatible = "st,stm32-pwm-lp";
326				#pwm-cells = <3>;
327				status = "disabled";
328			};
329
330			trigger@0 {
331				compatible = "st,stm32-lptimer-trigger";
332				reg = <0>;
333				status = "disabled";
334			};
335
336			counter {
337				compatible = "st,stm32-lptimer-counter";
338				status = "disabled";
339			};
340		};
341
342		usart2: serial@4000e000 {
343			compatible = "st,stm32h7-uart";
344			reg = <0x4000e000 0x400>;
345			interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
346			clocks = <&rcc USART2_K>;
347			status = "disabled";
348		};
349
350		usart3: serial@4000f000 {
351			compatible = "st,stm32h7-uart";
352			reg = <0x4000f000 0x400>;
353			interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
354			clocks = <&rcc USART3_K>;
355			status = "disabled";
356		};
357
358		uart4: serial@40010000 {
359			compatible = "st,stm32h7-uart";
360			reg = <0x40010000 0x400>;
361			interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
362			clocks = <&rcc UART4_K>;
363			status = "disabled";
364		};
365
366		uart5: serial@40011000 {
367			compatible = "st,stm32h7-uart";
368			reg = <0x40011000 0x400>;
369			interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
370			clocks = <&rcc UART5_K>;
371			status = "disabled";
372		};
373
374		i2c1: i2c@40012000 {
375			compatible = "st,stm32f7-i2c";
376			reg = <0x40012000 0x400>;
377			interrupt-names = "event", "error";
378			interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
379				     <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
380			clocks = <&rcc I2C1_K>;
381			resets = <&rcc I2C1_R>;
382			#address-cells = <1>;
383			#size-cells = <0>;
384			status = "disabled";
385		};
386
387		i2c2: i2c@40013000 {
388			compatible = "st,stm32f7-i2c";
389			reg = <0x40013000 0x400>;
390			interrupt-names = "event", "error";
391			interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
392				     <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
393			clocks = <&rcc I2C2_K>;
394			resets = <&rcc I2C2_R>;
395			#address-cells = <1>;
396			#size-cells = <0>;
397			status = "disabled";
398		};
399
400		i2c3: i2c@40014000 {
401			compatible = "st,stm32f7-i2c";
402			reg = <0x40014000 0x400>;
403			interrupt-names = "event", "error";
404			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
405				     <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
406			clocks = <&rcc I2C3_K>;
407			resets = <&rcc I2C3_R>;
408			#address-cells = <1>;
409			#size-cells = <0>;
410			status = "disabled";
411		};
412
413		i2c5: i2c@40015000 {
414			compatible = "st,stm32f7-i2c";
415			reg = <0x40015000 0x400>;
416			interrupt-names = "event", "error";
417			interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
418				     <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
419			clocks = <&rcc I2C5_K>;
420			resets = <&rcc I2C5_R>;
421			#address-cells = <1>;
422			#size-cells = <0>;
423			status = "disabled";
424		};
425
426		cec: cec@40016000 {
427			compatible = "st,stm32-cec";
428			reg = <0x40016000 0x400>;
429			interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
430			clocks = <&rcc CEC_K>, <&clk_lse>;
431			clock-names = "cec", "hdmi-cec";
432			status = "disabled";
433		};
434
435		dac: dac@40017000 {
436			compatible = "st,stm32h7-dac-core";
437			reg = <0x40017000 0x400>;
438			clocks = <&rcc DAC12>;
439			clock-names = "pclk";
440			#address-cells = <1>;
441			#size-cells = <0>;
442			status = "disabled";
443
444			dac1: dac@1 {
445				compatible = "st,stm32-dac";
446				#io-channels-cells = <1>;
447				reg = <1>;
448				status = "disabled";
449			};
450
451			dac2: dac@2 {
452				compatible = "st,stm32-dac";
453				#io-channels-cells = <1>;
454				reg = <2>;
455				status = "disabled";
456			};
457		};
458
459		uart7: serial@40018000 {
460			compatible = "st,stm32h7-uart";
461			reg = <0x40018000 0x400>;
462			interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
463			clocks = <&rcc UART7_K>;
464			status = "disabled";
465		};
466
467		uart8: serial@40019000 {
468			compatible = "st,stm32h7-uart";
469			reg = <0x40019000 0x400>;
470			interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
471			clocks = <&rcc UART8_K>;
472			status = "disabled";
473		};
474
475		timers1: timer@44000000 {
476			#address-cells = <1>;
477			#size-cells = <0>;
478			compatible = "st,stm32-timers";
479			reg = <0x44000000 0x400>;
480			clocks = <&rcc TIM1_K>;
481			clock-names = "int";
482			status = "disabled";
483
484			pwm {
485				compatible = "st,stm32-pwm";
486				status = "disabled";
487			};
488
489			timer@0 {
490				compatible = "st,stm32h7-timer-trigger";
491				reg = <0>;
492				status = "disabled";
493			};
494		};
495
496		timers8: timer@44001000 {
497			#address-cells = <1>;
498			#size-cells = <0>;
499			compatible = "st,stm32-timers";
500			reg = <0x44001000 0x400>;
501			clocks = <&rcc TIM8_K>;
502			clock-names = "int";
503			status = "disabled";
504
505			pwm {
506				compatible = "st,stm32-pwm";
507				status = "disabled";
508			};
509
510			timer@7 {
511				compatible = "st,stm32h7-timer-trigger";
512				reg = <7>;
513				status = "disabled";
514			};
515		};
516
517		usart6: serial@44003000 {
518			compatible = "st,stm32h7-uart";
519			reg = <0x44003000 0x400>;
520			interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
521			clocks = <&rcc USART6_K>;
522			status = "disabled";
523		};
524
525		timers15: timer@44006000 {
526			#address-cells = <1>;
527			#size-cells = <0>;
528			compatible = "st,stm32-timers";
529			reg = <0x44006000 0x400>;
530			clocks = <&rcc TIM15_K>;
531			clock-names = "int";
532			status = "disabled";
533
534			pwm {
535				compatible = "st,stm32-pwm";
536				status = "disabled";
537			};
538
539			timer@14 {
540				compatible = "st,stm32h7-timer-trigger";
541				reg = <14>;
542				status = "disabled";
543			};
544		};
545
546		timers16: timer@44007000 {
547			#address-cells = <1>;
548			#size-cells = <0>;
549			compatible = "st,stm32-timers";
550			reg = <0x44007000 0x400>;
551			clocks = <&rcc TIM16_K>;
552			clock-names = "int";
553			status = "disabled";
554
555			pwm {
556				compatible = "st,stm32-pwm";
557				status = "disabled";
558			};
559			timer@15 {
560				compatible = "st,stm32h7-timer-trigger";
561				reg = <15>;
562				status = "disabled";
563			};
564		};
565
566		timers17: timer@44008000 {
567			#address-cells = <1>;
568			#size-cells = <0>;
569			compatible = "st,stm32-timers";
570			reg = <0x44008000 0x400>;
571			clocks = <&rcc TIM17_K>;
572			clock-names = "int";
573			status = "disabled";
574
575			pwm {
576				compatible = "st,stm32-pwm";
577				status = "disabled";
578			};
579
580			timer@16 {
581				compatible = "st,stm32h7-timer-trigger";
582				reg = <16>;
583				status = "disabled";
584			};
585		};
586
587		dma1: dma@48000000 {
588			compatible = "st,stm32-dma";
589			reg = <0x48000000 0x400>;
590			interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
591				     <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
592				     <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
593				     <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
594				     <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
595				     <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
596				     <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
597				     <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
598			clocks = <&rcc DMA1>;
599			#dma-cells = <4>;
600			st,mem2mem;
601			dma-requests = <8>;
602		};
603
604		dma2: dma@48001000 {
605			compatible = "st,stm32-dma";
606			reg = <0x48001000 0x400>;
607			interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
608				     <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
609				     <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
610				     <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
611				     <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
612				     <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
613				     <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
614				     <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
615			clocks = <&rcc DMA2>;
616			#dma-cells = <4>;
617			st,mem2mem;
618			dma-requests = <8>;
619		};
620
621		dmamux1: dma-router@48002000 {
622			compatible = "st,stm32h7-dmamux";
623			reg = <0x48002000 0x1c>;
624			#dma-cells = <3>;
625			dma-requests = <128>;
626			dma-masters = <&dma1 &dma2>;
627			dma-channels = <16>;
628			clocks = <&rcc DMAMUX>;
629		};
630
631		adc: adc@48003000 {
632			compatible = "st,stm32mp1-adc-core";
633			reg = <0x48003000 0x400>;
634			interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
635				     <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
636			clocks = <&rcc ADC12>, <&rcc ADC12_K>;
637			clock-names = "bus", "adc";
638			interrupt-controller;
639			#interrupt-cells = <1>;
640			#address-cells = <1>;
641			#size-cells = <0>;
642			status = "disabled";
643
644			adc1: adc@0 {
645				compatible = "st,stm32mp1-adc";
646				#io-channel-cells = <1>;
647				reg = <0x0>;
648				interrupt-parent = <&adc>;
649				interrupts = <0>;
650				status = "disabled";
651			};
652
653			adc2: adc@100 {
654				compatible = "st,stm32mp1-adc";
655				#io-channel-cells = <1>;
656				reg = <0x100>;
657				interrupt-parent = <&adc>;
658				interrupts = <1>;
659				status = "disabled";
660			};
661		};
662
663		sdmmc3: sdmmc@48004000 {
664			compatible = "st,stm32-sdmmc2";
665			reg = <0x48004000 0x400>, <0x48005000 0x400>;
666			reg-names = "sdmmc", "delay";
667			interrupts = <GIC_SPI 137 IRQ_TYPE_NONE>;
668			clocks = <&rcc SDMMC3_K>;
669			resets = <&rcc SDMMC3_R>;
670			st,idma = <1>;
671			cap-sd-highspeed;
672			cap-mmc-highspeed;
673			max-frequency = <120000000>;
674			status = "disabled";
675		};
676
677		usbotg_hs: usb-otg@49000000 {
678			compatible = "st,stm32mp1-hsotg", "snps,dwc2";
679			reg = <0x49000000 0x10000>;
680			clocks = <&rcc USBO_K>;
681			clock-names = "otg";
682			resets = <&rcc USBO_R>;
683			reset-names = "dwc2";
684			interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
685			g-rx-fifo-size = <256>;
686			g-np-tx-fifo-size = <32>;
687			g-tx-fifo-size = <128 128 64 64 64 64 32 32>;
688			dr_mode = "otg";
689			power-domains = <&pd_core>;
690			status = "disabled";
691		};
692
693		hwspinlock: hwspinlock@4c000000 {
694			compatible = "st,stm32-hwspinlock";
695			#hwlock-cells = <1>;
696			reg = <0x4c000000 0x400>;
697			clocks = <&rcc HSEM>;
698			clock-names = "hwspinlock";
699			status = "disabled";
700		};
701
702		rcc: rcc@50000000 {
703			compatible = "st,stm32mp1-rcc", "syscon";
704			reg = <0x50000000 0x1000>;
705			#clock-cells = <1>;
706			#reset-cells = <1>;
707		};
708
709		rcc_reboot: rcc-reboot@50000000 {
710			compatible = "syscon-reboot";
711			regmap = <&rcc>;
712			offset = <0x404>;
713			mask = <0x1>;
714		};
715
716		pwr: pwr@50001000 {
717			compatible = "st,stm32mp1-pwr", "st,stm32-pwr", "syscon", "simple-mfd";
718			reg = <0x50001000 0x400>;
719			system-power-controller;
720			interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
721			st,sysrcc = <&rcc>;
722			clocks = <&rcc PLL2_R>;
723			clock-names = "phyclk";
724
725			pwr-regulators@c {
726				compatible = "st,stm32mp1,pwr-reg";
727				st,tzcr = <&rcc 0x0 0x1>;
728
729				reg11: reg11 {
730					regulator-name = "reg11";
731					regulator-min-microvolt = <1100000>;
732					regulator-max-microvolt = <1100000>;
733				};
734
735				reg18: reg18 {
736					regulator-name = "reg18";
737					regulator-min-microvolt = <1800000>;
738					regulator-max-microvolt = <1800000>;
739				};
740
741				usb33: usb33 {
742					regulator-name = "usb33";
743					regulator-min-microvolt = <3300000>;
744					regulator-max-microvolt = <3300000>;
745				};
746			};
747		};
748
749		exti: interrupt-controller@5000d000 {
750			compatible = "st,stm32mp1-exti", "syscon";
751			interrupt-controller;
752			#interrupt-cells = <2>;
753			reg = <0x5000d000 0x400>;
754		};
755
756		syscfg: system-config@50020000 {
757			compatible = "st,stm32-syscfg", "syscon";
758			reg = <0x50020000 0x400>;
759		};
760
761		lptimer2: timer@50021000 {
762			#address-cells = <1>;
763			#size-cells = <0>;
764			compatible = "st,stm32-lptimer";
765			reg = <0x50021000 0x400>;
766			clocks = <&rcc LPTIM2_K>;
767			clock-names = "mux";
768			status = "disabled";
769
770			pwm {
771				compatible = "st,stm32-pwm-lp";
772				#pwm-cells = <3>;
773				status = "disabled";
774			};
775
776			trigger@1 {
777				compatible = "st,stm32-lptimer-trigger";
778				reg = <1>;
779				status = "disabled";
780			};
781
782			counter {
783				compatible = "st,stm32-lptimer-counter";
784				status = "disabled";
785			};
786		};
787
788		lptimer3: timer@50022000 {
789			#address-cells = <1>;
790			#size-cells = <0>;
791			compatible = "st,stm32-lptimer";
792			reg = <0x50022000 0x400>;
793			clocks = <&rcc LPTIM3_K>;
794			clock-names = "mux";
795			status = "disabled";
796
797			pwm {
798				compatible = "st,stm32-pwm-lp";
799				#pwm-cells = <3>;
800				status = "disabled";
801			};
802
803			trigger@2 {
804				compatible = "st,stm32-lptimer-trigger";
805				reg = <2>;
806				status = "disabled";
807			};
808		};
809
810		lptimer4: timer@50023000 {
811			compatible = "st,stm32-lptimer";
812			reg = <0x50023000 0x400>;
813			clocks = <&rcc LPTIM4_K>;
814			clock-names = "mux";
815			status = "disabled";
816
817			pwm {
818				compatible = "st,stm32-pwm-lp";
819				#pwm-cells = <3>;
820				status = "disabled";
821			};
822		};
823
824		lptimer5: timer@50024000 {
825			compatible = "st,stm32-lptimer";
826			reg = <0x50024000 0x400>;
827			clocks = <&rcc LPTIM5_K>;
828			clock-names = "mux";
829			status = "disabled";
830
831			pwm {
832				compatible = "st,stm32-pwm-lp";
833				#pwm-cells = <3>;
834				status = "disabled";
835			};
836		};
837
838		vrefbuf: vrefbuf@50025000 {
839			compatible = "st,stm32-vrefbuf";
840			reg = <0x50025000 0x8>;
841			regulator-min-microvolt = <1500000>;
842			regulator-max-microvolt = <2500000>;
843			clocks = <&rcc VREF>;
844			status = "disabled";
845		};
846
847		cryp1: cryp@54001000 {
848			compatible = "st,stm32mp1-cryp";
849			reg = <0x54001000 0x400>;
850			interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
851			clocks = <&rcc CRYP1>;
852			resets = <&rcc CRYP1_R>;
853			status = "disabled";
854		};
855
856		rng1: rng@54003000 {
857			compatible = "st,stm32-rng";
858			reg = <0x54003000 0x400>;
859			clocks = <&rcc RNG1_K>;
860			resets = <&rcc RNG1_R>;
861			status = "disabled";
862		};
863
864		mdma1: dma@58000000 {
865			compatible = "st,stm32h7-mdma";
866			reg = <0x58000000 0x1000>;
867			interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
868			clocks = <&rcc MDMA>;
869			#dma-cells = <5>;
870			dma-channels = <32>;
871			dma-requests = <48>;
872		};
873
874		qspi: qspi@58003000 {
875			compatible = "st,stm32f469-qspi";
876			reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
877			reg-names = "qspi", "qspi_mm";
878			interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
879			clocks = <&rcc QSPI_K>;
880			resets = <&rcc QSPI_R>;
881			status = "disabled";
882		};
883
884		sdmmc1: sdmmc@58005000 {
885			compatible = "st,stm32-sdmmc2";
886			reg = <0x58005000 0x1000>, <0x58006000 0x1000>;
887			reg-names = "sdmmc", "delay";
888			clocks = <&rcc SDMMC1_K>;
889			resets = <&rcc SDMMC1_R>;
890			st,idma = <1>;
891			cap-sd-highspeed;
892			cap-mmc-highspeed;
893			max-frequency = <120000000>;
894			status = "disabled";
895		};
896
897		sdmmc2: sdmmc@58007000 {
898			compatible = "st,stm32-sdmmc2";
899			reg = <0x58007000 0x1000>, <0x58008000 0x1000>;
900			reg-names = "sdmmc", "delay";
901			interrupts = <GIC_SPI 124 IRQ_TYPE_NONE>;
902			clocks = <&rcc SDMMC2_K>;
903			resets = <&rcc SDMMC2_R>;
904			st,idma = <1>;
905			cap-sd-highspeed;
906			cap-mmc-highspeed;
907			max-frequency = <120000000>;
908			status = "disabled";
909		};
910
911		crc1: crc@58009000 {
912			compatible = "st,stm32f7-crc";
913			reg = <0x58009000 0x400>;
914			clocks = <&rcc CRC1>;
915			status = "disabled";
916		};
917
918		usbh_ohci: usbh-ohci@5800c000 {
919			compatible = "generic-ohci";
920			reg = <0x5800c000 0x1000>;
921			clocks = <&rcc USBH>;
922			resets = <&rcc USBH_R>;
923			interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
924			status = "disabled";
925		};
926
927		usbh_ehci: usbh-ehci@5800d000 {
928			compatible = "generic-ehci";
929			reg = <0x5800d000 0x1000>;
930			clocks = <&rcc USBH>;
931			resets = <&rcc USBH_R>;
932			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
933			companion = <&usbh_ohci>;
934			status = "disabled";
935		};
936
937		dsi: dsi@5a000000 {
938			compatible = "st,stm32-dsi";
939			reg = <0x5a000000 0x800>;
940			clocks = <&rcc DSI_K>, <&clk_hse>, <&rcc DSI_PX>;
941			clock-names = "pclk", "ref", "px_clk";
942			resets = <&rcc DSI_R>;
943			reset-names = "apb";
944			status = "disabled";
945		};
946
947		ltdc: display-controller@5a001000 {
948			compatible = "st,stm32-ltdc";
949			reg = <0x5a001000 0x400>;
950			interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
951				     <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
952			clocks = <&rcc LTDC_PX>;
953			clock-names = "lcd";
954			resets = <&rcc LTDC_R>;
955			status = "disabled";
956		};
957
958		usbphyc: usbphyc@5a006000 {
959			#address-cells = <1>;
960			#size-cells = <0>;
961			compatible = "st,stm32mp1-usbphyc";
962			reg = <0x5a006000 0x1000>;
963			clocks = <&rcc USBPHY_K>;
964			resets = <&rcc USBPHY_R>;
965			status = "disabled";
966
967			usbphyc_port0: usb-phy@0 {
968				#phy-cells = <0>;
969				reg = <0>;
970			};
971
972			usbphyc_port1: usb-phy@1 {
973				#phy-cells = <1>;
974				reg = <1>;
975			};
976		};
977
978		usart1: serial@5c000000 {
979			compatible = "st,stm32h7-uart";
980			reg = <0x5c000000 0x400>;
981			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
982			clocks = <&rcc USART1_K>;
983			status = "disabled";
984		};
985
986		i2c4: i2c@5c002000 {
987			compatible = "st,stm32f7-i2c";
988			reg = <0x5c002000 0x400>;
989			interrupt-names = "event", "error";
990			interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
991				     <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
992			clocks = <&rcc I2C4_K>;
993			resets = <&rcc I2C4_R>;
994			#address-cells = <1>;
995			#size-cells = <0>;
996			status = "disabled";
997		};
998
999		i2c6: i2c@5c009000 {
1000			compatible = "st,stm32f7-i2c";
1001			reg = <0x5c009000 0x400>;
1002			interrupt-names = "event", "error";
1003			interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
1004				     <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
1005			clocks = <&rcc I2C6_K>;
1006			resets = <&rcc I2C6_R>;
1007			#address-cells = <1>;
1008			#size-cells = <0>;
1009			status = "disabled";
1010		};
1011	};
1012};
1013