xref: /arm-trusted-firmware/fdts/stm32mp151.dtsi (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2*91f16700Schasinglulu/*
3*91f16700Schasinglulu * Copyright (c) 2017-2023, STMicroelectronics - All Rights Reserved
4*91f16700Schasinglulu * Author: Ludovic Barre <ludovic.barre@st.com> for STMicroelectronics.
5*91f16700Schasinglulu */
6*91f16700Schasinglulu#include <dt-bindings/interrupt-controller/arm-gic.h>
7*91f16700Schasinglulu#include <dt-bindings/clock/stm32mp1-clks.h>
8*91f16700Schasinglulu#include <dt-bindings/reset/stm32mp1-resets.h>
9*91f16700Schasinglulu
10*91f16700Schasinglulu/ {
11*91f16700Schasinglulu	#address-cells = <1>;
12*91f16700Schasinglulu	#size-cells = <1>;
13*91f16700Schasinglulu
14*91f16700Schasinglulu	cpus {
15*91f16700Schasinglulu		#address-cells = <1>;
16*91f16700Schasinglulu		#size-cells = <0>;
17*91f16700Schasinglulu
18*91f16700Schasinglulu		cpu0: cpu@0 {
19*91f16700Schasinglulu			compatible = "arm,cortex-a7";
20*91f16700Schasinglulu			device_type = "cpu";
21*91f16700Schasinglulu			reg = <0>;
22*91f16700Schasinglulu			nvmem-cells = <&part_number_otp>;
23*91f16700Schasinglulu			nvmem-cell-names = "part_number";
24*91f16700Schasinglulu		};
25*91f16700Schasinglulu	};
26*91f16700Schasinglulu
27*91f16700Schasinglulu	psci {
28*91f16700Schasinglulu		compatible = "arm,psci-1.0";
29*91f16700Schasinglulu		method = "smc";
30*91f16700Schasinglulu	};
31*91f16700Schasinglulu
32*91f16700Schasinglulu	intc: interrupt-controller@a0021000 {
33*91f16700Schasinglulu		compatible = "arm,cortex-a7-gic";
34*91f16700Schasinglulu		#interrupt-cells = <3>;
35*91f16700Schasinglulu		interrupt-controller;
36*91f16700Schasinglulu		reg = <0xa0021000 0x1000>,
37*91f16700Schasinglulu		      <0xa0022000 0x2000>;
38*91f16700Schasinglulu	};
39*91f16700Schasinglulu
40*91f16700Schasinglulu	clocks {
41*91f16700Schasinglulu		clk_hse: clk-hse {
42*91f16700Schasinglulu			#clock-cells = <0>;
43*91f16700Schasinglulu			compatible = "fixed-clock";
44*91f16700Schasinglulu			clock-frequency = <24000000>;
45*91f16700Schasinglulu		};
46*91f16700Schasinglulu
47*91f16700Schasinglulu		clk_hsi: clk-hsi {
48*91f16700Schasinglulu			#clock-cells = <0>;
49*91f16700Schasinglulu			compatible = "fixed-clock";
50*91f16700Schasinglulu			clock-frequency = <64000000>;
51*91f16700Schasinglulu		};
52*91f16700Schasinglulu
53*91f16700Schasinglulu		clk_lse: clk-lse {
54*91f16700Schasinglulu			#clock-cells = <0>;
55*91f16700Schasinglulu			compatible = "fixed-clock";
56*91f16700Schasinglulu			clock-frequency = <32768>;
57*91f16700Schasinglulu		};
58*91f16700Schasinglulu
59*91f16700Schasinglulu		clk_lsi: clk-lsi {
60*91f16700Schasinglulu			#clock-cells = <0>;
61*91f16700Schasinglulu			compatible = "fixed-clock";
62*91f16700Schasinglulu			clock-frequency = <32000>;
63*91f16700Schasinglulu		};
64*91f16700Schasinglulu
65*91f16700Schasinglulu		clk_csi: clk-csi {
66*91f16700Schasinglulu			#clock-cells = <0>;
67*91f16700Schasinglulu			compatible = "fixed-clock";
68*91f16700Schasinglulu			clock-frequency = <4000000>;
69*91f16700Schasinglulu		};
70*91f16700Schasinglulu	};
71*91f16700Schasinglulu
72*91f16700Schasinglulu	soc {
73*91f16700Schasinglulu		compatible = "simple-bus";
74*91f16700Schasinglulu		#address-cells = <1>;
75*91f16700Schasinglulu		#size-cells = <1>;
76*91f16700Schasinglulu		interrupt-parent = <&intc>;
77*91f16700Schasinglulu		ranges;
78*91f16700Schasinglulu
79*91f16700Schasinglulu		timers12: timer@40006000 {
80*91f16700Schasinglulu			#address-cells = <1>;
81*91f16700Schasinglulu			#size-cells = <0>;
82*91f16700Schasinglulu			compatible = "st,stm32-timers";
83*91f16700Schasinglulu			reg = <0x40006000 0x400>;
84*91f16700Schasinglulu			clocks = <&rcc TIM12_K>;
85*91f16700Schasinglulu			clock-names = "int";
86*91f16700Schasinglulu			status = "disabled";
87*91f16700Schasinglulu		};
88*91f16700Schasinglulu
89*91f16700Schasinglulu		usart2: serial@4000e000 {
90*91f16700Schasinglulu			compatible = "st,stm32h7-uart";
91*91f16700Schasinglulu			reg = <0x4000e000 0x400>;
92*91f16700Schasinglulu			interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>;
93*91f16700Schasinglulu			clocks = <&rcc USART2_K>;
94*91f16700Schasinglulu			resets = <&rcc USART2_R>;
95*91f16700Schasinglulu			status = "disabled";
96*91f16700Schasinglulu		};
97*91f16700Schasinglulu
98*91f16700Schasinglulu		usart3: serial@4000f000 {
99*91f16700Schasinglulu			compatible = "st,stm32h7-uart";
100*91f16700Schasinglulu			reg = <0x4000f000 0x400>;
101*91f16700Schasinglulu			interrupts-extended = <&exti 28 IRQ_TYPE_LEVEL_HIGH>;
102*91f16700Schasinglulu			clocks = <&rcc USART3_K>;
103*91f16700Schasinglulu			resets = <&rcc USART3_R>;
104*91f16700Schasinglulu			status = "disabled";
105*91f16700Schasinglulu		};
106*91f16700Schasinglulu
107*91f16700Schasinglulu		uart4: serial@40010000 {
108*91f16700Schasinglulu			compatible = "st,stm32h7-uart";
109*91f16700Schasinglulu			reg = <0x40010000 0x400>;
110*91f16700Schasinglulu			interrupts-extended = <&exti 30 IRQ_TYPE_LEVEL_HIGH>;
111*91f16700Schasinglulu			clocks = <&rcc UART4_K>;
112*91f16700Schasinglulu			resets = <&rcc UART4_R>;
113*91f16700Schasinglulu			wakeup-source;
114*91f16700Schasinglulu			status = "disabled";
115*91f16700Schasinglulu		};
116*91f16700Schasinglulu
117*91f16700Schasinglulu		uart5: serial@40011000 {
118*91f16700Schasinglulu			compatible = "st,stm32h7-uart";
119*91f16700Schasinglulu			reg = <0x40011000 0x400>;
120*91f16700Schasinglulu			interrupts-extended = <&exti 31 IRQ_TYPE_LEVEL_HIGH>;
121*91f16700Schasinglulu			clocks = <&rcc UART5_K>;
122*91f16700Schasinglulu			resets = <&rcc UART5_R>;
123*91f16700Schasinglulu			status = "disabled";
124*91f16700Schasinglulu		};
125*91f16700Schasinglulu
126*91f16700Schasinglulu		i2c2: i2c@40013000 {
127*91f16700Schasinglulu			compatible = "st,stm32mp15-i2c";
128*91f16700Schasinglulu			reg = <0x40013000 0x400>;
129*91f16700Schasinglulu			interrupt-names = "event", "error";
130*91f16700Schasinglulu			interrupts-extended = <&exti 22 IRQ_TYPE_LEVEL_HIGH>,
131*91f16700Schasinglulu					      <&intc GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
132*91f16700Schasinglulu			clocks = <&rcc I2C2_K>;
133*91f16700Schasinglulu			resets = <&rcc I2C2_R>;
134*91f16700Schasinglulu			#address-cells = <1>;
135*91f16700Schasinglulu			#size-cells = <0>;
136*91f16700Schasinglulu			st,syscfg-fmp = <&syscfg 0x4 0x2>;
137*91f16700Schasinglulu			wakeup-source;
138*91f16700Schasinglulu			status = "disabled";
139*91f16700Schasinglulu		};
140*91f16700Schasinglulu
141*91f16700Schasinglulu		uart7: serial@40018000 {
142*91f16700Schasinglulu			compatible = "st,stm32h7-uart";
143*91f16700Schasinglulu			reg = <0x40018000 0x400>;
144*91f16700Schasinglulu			interrupts-extended = <&exti 32 IRQ_TYPE_LEVEL_HIGH>;
145*91f16700Schasinglulu			clocks = <&rcc UART7_K>;
146*91f16700Schasinglulu			resets = <&rcc UART7_R>;
147*91f16700Schasinglulu			status = "disabled";
148*91f16700Schasinglulu		};
149*91f16700Schasinglulu
150*91f16700Schasinglulu		uart8: serial@40019000 {
151*91f16700Schasinglulu			compatible = "st,stm32h7-uart";
152*91f16700Schasinglulu			reg = <0x40019000 0x400>;
153*91f16700Schasinglulu			interrupts-extended = <&exti 33 IRQ_TYPE_LEVEL_HIGH>;
154*91f16700Schasinglulu			clocks = <&rcc UART8_K>;
155*91f16700Schasinglulu			resets = <&rcc UART8_R>;
156*91f16700Schasinglulu			status = "disabled";
157*91f16700Schasinglulu		};
158*91f16700Schasinglulu
159*91f16700Schasinglulu		usart6: serial@44003000 {
160*91f16700Schasinglulu			compatible = "st,stm32h7-uart";
161*91f16700Schasinglulu			reg = <0x44003000 0x400>;
162*91f16700Schasinglulu			interrupts-extended = <&exti 29 IRQ_TYPE_LEVEL_HIGH>;
163*91f16700Schasinglulu			clocks = <&rcc USART6_K>;
164*91f16700Schasinglulu			resets = <&rcc USART6_R>;
165*91f16700Schasinglulu			status = "disabled";
166*91f16700Schasinglulu		};
167*91f16700Schasinglulu
168*91f16700Schasinglulu		timers15: timer@44006000 {
169*91f16700Schasinglulu			#address-cells = <1>;
170*91f16700Schasinglulu			#size-cells = <0>;
171*91f16700Schasinglulu			compatible = "st,stm32-timers";
172*91f16700Schasinglulu			reg = <0x44006000 0x400>;
173*91f16700Schasinglulu			clocks = <&rcc TIM15_K>;
174*91f16700Schasinglulu			clock-names = "int";
175*91f16700Schasinglulu			status = "disabled";
176*91f16700Schasinglulu		};
177*91f16700Schasinglulu
178*91f16700Schasinglulu		usbotg_hs: usb-otg@49000000 {
179*91f16700Schasinglulu			compatible = "st,stm32mp15-hsotg", "snps,dwc2";
180*91f16700Schasinglulu			reg = <0x49000000 0x10000>;
181*91f16700Schasinglulu			clocks = <&rcc USBO_K>;
182*91f16700Schasinglulu			clock-names = "otg";
183*91f16700Schasinglulu			resets = <&rcc USBO_R>;
184*91f16700Schasinglulu			reset-names = "dwc2";
185*91f16700Schasinglulu			interrupts-extended = <&exti 44 IRQ_TYPE_LEVEL_HIGH>;
186*91f16700Schasinglulu			g-rx-fifo-size = <512>;
187*91f16700Schasinglulu			g-np-tx-fifo-size = <32>;
188*91f16700Schasinglulu			g-tx-fifo-size = <256 16 16 16 16 16 16 16>;
189*91f16700Schasinglulu			dr_mode = "otg";
190*91f16700Schasinglulu			usb33d-supply = <&usb33>;
191*91f16700Schasinglulu			status = "disabled";
192*91f16700Schasinglulu		};
193*91f16700Schasinglulu
194*91f16700Schasinglulu		rcc: rcc@50000000 {
195*91f16700Schasinglulu			compatible = "st,stm32mp1-rcc", "syscon";
196*91f16700Schasinglulu			reg = <0x50000000 0x1000>;
197*91f16700Schasinglulu			#address-cells = <1>;
198*91f16700Schasinglulu			#size-cells = <0>;
199*91f16700Schasinglulu			#clock-cells = <1>;
200*91f16700Schasinglulu			#reset-cells = <1>;
201*91f16700Schasinglulu			interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
202*91f16700Schasinglulu			secure-interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
203*91f16700Schasinglulu			secure-interrupt-names = "wakeup";
204*91f16700Schasinglulu		};
205*91f16700Schasinglulu
206*91f16700Schasinglulu		pwr_regulators: pwr@50001000 {
207*91f16700Schasinglulu			compatible = "st,stm32mp1,pwr-reg";
208*91f16700Schasinglulu			reg = <0x50001000 0x10>;
209*91f16700Schasinglulu			st,tzcr = <&rcc 0x0 0x1>;
210*91f16700Schasinglulu
211*91f16700Schasinglulu			reg11: reg11 {
212*91f16700Schasinglulu				regulator-name = "reg11";
213*91f16700Schasinglulu				regulator-min-microvolt = <1100000>;
214*91f16700Schasinglulu				regulator-max-microvolt = <1100000>;
215*91f16700Schasinglulu			};
216*91f16700Schasinglulu
217*91f16700Schasinglulu			reg18: reg18 {
218*91f16700Schasinglulu				regulator-name = "reg18";
219*91f16700Schasinglulu				regulator-min-microvolt = <1800000>;
220*91f16700Schasinglulu				regulator-max-microvolt = <1800000>;
221*91f16700Schasinglulu			};
222*91f16700Schasinglulu
223*91f16700Schasinglulu			usb33: usb33 {
224*91f16700Schasinglulu				regulator-name = "usb33";
225*91f16700Schasinglulu				regulator-min-microvolt = <3300000>;
226*91f16700Schasinglulu				regulator-max-microvolt = <3300000>;
227*91f16700Schasinglulu			};
228*91f16700Schasinglulu		};
229*91f16700Schasinglulu
230*91f16700Schasinglulu		pwr_mcu: pwr_mcu@50001014 {
231*91f16700Schasinglulu			compatible = "st,stm32mp151-pwr-mcu", "syscon";
232*91f16700Schasinglulu			reg = <0x50001014 0x4>;
233*91f16700Schasinglulu		};
234*91f16700Schasinglulu
235*91f16700Schasinglulu		pwr_irq: pwr@50001020 {
236*91f16700Schasinglulu			compatible = "st,stm32mp1-pwr";
237*91f16700Schasinglulu			reg = <0x50001020 0x100>;
238*91f16700Schasinglulu			interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
239*91f16700Schasinglulu			interrupt-controller;
240*91f16700Schasinglulu			#interrupt-cells = <3>;
241*91f16700Schasinglulu		};
242*91f16700Schasinglulu
243*91f16700Schasinglulu		exti: interrupt-controller@5000d000 {
244*91f16700Schasinglulu			compatible = "st,stm32mp1-exti", "syscon";
245*91f16700Schasinglulu			interrupt-controller;
246*91f16700Schasinglulu			#interrupt-cells = <2>;
247*91f16700Schasinglulu			reg = <0x5000d000 0x400>;
248*91f16700Schasinglulu
249*91f16700Schasinglulu			/* exti_pwr is an extra interrupt controller used for
250*91f16700Schasinglulu			 * EXTI 55 to 60. It's mapped on pwr interrupt
251*91f16700Schasinglulu			 * controller.
252*91f16700Schasinglulu			 */
253*91f16700Schasinglulu			exti_pwr: exti-pwr {
254*91f16700Schasinglulu				interrupt-controller;
255*91f16700Schasinglulu				#interrupt-cells = <2>;
256*91f16700Schasinglulu				interrupt-parent = <&pwr_irq>;
257*91f16700Schasinglulu				st,irq-number = <6>;
258*91f16700Schasinglulu			};
259*91f16700Schasinglulu		};
260*91f16700Schasinglulu
261*91f16700Schasinglulu		syscfg: syscon@50020000 {
262*91f16700Schasinglulu			compatible = "st,stm32mp157-syscfg", "syscon";
263*91f16700Schasinglulu			reg = <0x50020000 0x400>;
264*91f16700Schasinglulu			clocks = <&rcc SYSCFG>;
265*91f16700Schasinglulu		};
266*91f16700Schasinglulu
267*91f16700Schasinglulu		hash1: hash@54002000 {
268*91f16700Schasinglulu			compatible = "st,stm32f756-hash";
269*91f16700Schasinglulu			reg = <0x54002000 0x400>;
270*91f16700Schasinglulu			interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
271*91f16700Schasinglulu			clocks = <&rcc HASH1>;
272*91f16700Schasinglulu			resets = <&rcc HASH1_R>;
273*91f16700Schasinglulu			status = "disabled";
274*91f16700Schasinglulu		};
275*91f16700Schasinglulu
276*91f16700Schasinglulu		rng1: rng@54003000 {
277*91f16700Schasinglulu			compatible = "st,stm32-rng";
278*91f16700Schasinglulu			reg = <0x54003000 0x400>;
279*91f16700Schasinglulu			clocks = <&rcc RNG1_K>;
280*91f16700Schasinglulu			resets = <&rcc RNG1_R>;
281*91f16700Schasinglulu			status = "disabled";
282*91f16700Schasinglulu		};
283*91f16700Schasinglulu
284*91f16700Schasinglulu		fmc: memory-controller@58002000 {
285*91f16700Schasinglulu			#address-cells = <2>;
286*91f16700Schasinglulu			#size-cells = <1>;
287*91f16700Schasinglulu			compatible = "st,stm32mp1-fmc2-ebi";
288*91f16700Schasinglulu			reg = <0x58002000 0x1000>;
289*91f16700Schasinglulu			clocks = <&rcc FMC_K>;
290*91f16700Schasinglulu			resets = <&rcc FMC_R>;
291*91f16700Schasinglulu			status = "disabled";
292*91f16700Schasinglulu
293*91f16700Schasinglulu			ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */
294*91f16700Schasinglulu				 <1 0 0x64000000 0x04000000>, /* EBI CS 2 */
295*91f16700Schasinglulu				 <2 0 0x68000000 0x04000000>, /* EBI CS 3 */
296*91f16700Schasinglulu				 <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */
297*91f16700Schasinglulu				 <4 0 0x80000000 0x10000000>; /* NAND */
298*91f16700Schasinglulu
299*91f16700Schasinglulu			nand-controller@4,0 {
300*91f16700Schasinglulu				#address-cells = <1>;
301*91f16700Schasinglulu				#size-cells = <0>;
302*91f16700Schasinglulu				compatible = "st,stm32mp1-fmc2-nfc";
303*91f16700Schasinglulu				reg = <4 0x00000000 0x1000>,
304*91f16700Schasinglulu				      <4 0x08010000 0x1000>,
305*91f16700Schasinglulu				      <4 0x08020000 0x1000>,
306*91f16700Schasinglulu				      <4 0x01000000 0x1000>,
307*91f16700Schasinglulu				      <4 0x09010000 0x1000>,
308*91f16700Schasinglulu				      <4 0x09020000 0x1000>;
309*91f16700Schasinglulu				interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
310*91f16700Schasinglulu				status = "disabled";
311*91f16700Schasinglulu			};
312*91f16700Schasinglulu		};
313*91f16700Schasinglulu
314*91f16700Schasinglulu		qspi: spi@58003000 {
315*91f16700Schasinglulu			compatible = "st,stm32f469-qspi";
316*91f16700Schasinglulu			reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
317*91f16700Schasinglulu			reg-names = "qspi", "qspi_mm";
318*91f16700Schasinglulu			interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
319*91f16700Schasinglulu			clocks = <&rcc QSPI_K>;
320*91f16700Schasinglulu			resets = <&rcc QSPI_R>;
321*91f16700Schasinglulu			status = "disabled";
322*91f16700Schasinglulu		};
323*91f16700Schasinglulu
324*91f16700Schasinglulu		sdmmc1: mmc@58005000 {
325*91f16700Schasinglulu			compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
326*91f16700Schasinglulu			arm,primecell-periphid = <0x00253180>;
327*91f16700Schasinglulu			reg = <0x58005000 0x1000>;
328*91f16700Schasinglulu			interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
329*91f16700Schasinglulu			clocks = <&rcc SDMMC1_K>;
330*91f16700Schasinglulu			clock-names = "apb_pclk";
331*91f16700Schasinglulu			resets = <&rcc SDMMC1_R>;
332*91f16700Schasinglulu			cap-sd-highspeed;
333*91f16700Schasinglulu			cap-mmc-highspeed;
334*91f16700Schasinglulu			max-frequency = <120000000>;
335*91f16700Schasinglulu			status = "disabled";
336*91f16700Schasinglulu		};
337*91f16700Schasinglulu
338*91f16700Schasinglulu		sdmmc2: mmc@58007000 {
339*91f16700Schasinglulu			compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
340*91f16700Schasinglulu			arm,primecell-periphid = <0x00253180>;
341*91f16700Schasinglulu			reg = <0x58007000 0x1000>;
342*91f16700Schasinglulu			interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
343*91f16700Schasinglulu			clocks = <&rcc SDMMC2_K>;
344*91f16700Schasinglulu			clock-names = "apb_pclk";
345*91f16700Schasinglulu			resets = <&rcc SDMMC2_R>;
346*91f16700Schasinglulu			cap-sd-highspeed;
347*91f16700Schasinglulu			cap-mmc-highspeed;
348*91f16700Schasinglulu			max-frequency = <120000000>;
349*91f16700Schasinglulu			status = "disabled";
350*91f16700Schasinglulu		};
351*91f16700Schasinglulu
352*91f16700Schasinglulu		iwdg2: watchdog@5a002000 {
353*91f16700Schasinglulu			compatible = "st,stm32mp1-iwdg";
354*91f16700Schasinglulu			reg = <0x5a002000 0x400>;
355*91f16700Schasinglulu			secure-interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
356*91f16700Schasinglulu			clocks = <&rcc IWDG2>, <&rcc CK_LSI>;
357*91f16700Schasinglulu			clock-names = "pclk", "lsi";
358*91f16700Schasinglulu			status = "disabled";
359*91f16700Schasinglulu		};
360*91f16700Schasinglulu
361*91f16700Schasinglulu		ddr: ddr@5a003000 {
362*91f16700Schasinglulu			compatible = "st,stm32mp1-ddr";
363*91f16700Schasinglulu			reg = <0x5A003000 0x550 0x5A004000 0x234>;
364*91f16700Schasinglulu			clocks = <&rcc AXIDCG>,
365*91f16700Schasinglulu				 <&rcc DDRC1>,
366*91f16700Schasinglulu				 <&rcc DDRC2>,
367*91f16700Schasinglulu				 <&rcc DDRPHYC>,
368*91f16700Schasinglulu				 <&rcc DDRCAPB>,
369*91f16700Schasinglulu				 <&rcc DDRPHYCAPB>;
370*91f16700Schasinglulu			clock-names = "axidcg",
371*91f16700Schasinglulu				      "ddrc1",
372*91f16700Schasinglulu				      "ddrc2",
373*91f16700Schasinglulu				      "ddrphyc",
374*91f16700Schasinglulu				      "ddrcapb",
375*91f16700Schasinglulu				      "ddrphycapb";
376*91f16700Schasinglulu			status = "okay";
377*91f16700Schasinglulu		};
378*91f16700Schasinglulu
379*91f16700Schasinglulu		usbphyc: usbphyc@5a006000 {
380*91f16700Schasinglulu			#address-cells = <1>;
381*91f16700Schasinglulu			#size-cells = <0>;
382*91f16700Schasinglulu			#clock-cells = <0>;
383*91f16700Schasinglulu			compatible = "st,stm32mp1-usbphyc";
384*91f16700Schasinglulu			reg = <0x5a006000 0x1000>;
385*91f16700Schasinglulu			clocks = <&rcc USBPHY_K>;
386*91f16700Schasinglulu			resets = <&rcc USBPHY_R>;
387*91f16700Schasinglulu			vdda1v1-supply = <&reg11>;
388*91f16700Schasinglulu			vdda1v8-supply = <&reg18>;
389*91f16700Schasinglulu			status = "disabled";
390*91f16700Schasinglulu
391*91f16700Schasinglulu			usbphyc_port0: usb-phy@0 {
392*91f16700Schasinglulu				#phy-cells = <0>;
393*91f16700Schasinglulu				reg = <0>;
394*91f16700Schasinglulu			};
395*91f16700Schasinglulu
396*91f16700Schasinglulu			usbphyc_port1: usb-phy@1 {
397*91f16700Schasinglulu				#phy-cells = <1>;
398*91f16700Schasinglulu				reg = <1>;
399*91f16700Schasinglulu			};
400*91f16700Schasinglulu		};
401*91f16700Schasinglulu
402*91f16700Schasinglulu		usart1: serial@5c000000 {
403*91f16700Schasinglulu			compatible = "st,stm32h7-uart";
404*91f16700Schasinglulu			reg = <0x5c000000 0x400>;
405*91f16700Schasinglulu			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
406*91f16700Schasinglulu			clocks = <&rcc USART1_K>;
407*91f16700Schasinglulu			resets = <&rcc USART1_R>;
408*91f16700Schasinglulu			status = "disabled";
409*91f16700Schasinglulu		};
410*91f16700Schasinglulu
411*91f16700Schasinglulu		spi6: spi@5c001000 {
412*91f16700Schasinglulu			#address-cells = <1>;
413*91f16700Schasinglulu			#size-cells = <0>;
414*91f16700Schasinglulu			compatible = "st,stm32h7-spi";
415*91f16700Schasinglulu			reg = <0x5c001000 0x400>;
416*91f16700Schasinglulu			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
417*91f16700Schasinglulu			clocks = <&rcc SPI6_K>;
418*91f16700Schasinglulu			resets = <&rcc SPI6_R>;
419*91f16700Schasinglulu			status = "disabled";
420*91f16700Schasinglulu		};
421*91f16700Schasinglulu
422*91f16700Schasinglulu		i2c4: i2c@5c002000 {
423*91f16700Schasinglulu			compatible = "st,stm32mp15-i2c";
424*91f16700Schasinglulu			reg = <0x5c002000 0x400>;
425*91f16700Schasinglulu			interrupt-names = "event", "error";
426*91f16700Schasinglulu			interrupts-extended = <&exti 24 IRQ_TYPE_LEVEL_HIGH>,
427*91f16700Schasinglulu					      <&intc GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
428*91f16700Schasinglulu			clocks = <&rcc I2C4_K>;
429*91f16700Schasinglulu			resets = <&rcc I2C4_R>;
430*91f16700Schasinglulu			#address-cells = <1>;
431*91f16700Schasinglulu			#size-cells = <0>;
432*91f16700Schasinglulu			st,syscfg-fmp = <&syscfg 0x4 0x8>;
433*91f16700Schasinglulu			wakeup-source;
434*91f16700Schasinglulu			status = "disabled";
435*91f16700Schasinglulu		};
436*91f16700Schasinglulu
437*91f16700Schasinglulu		iwdg1: watchdog@5c003000 {
438*91f16700Schasinglulu			compatible = "st,stm32mp1-iwdg";
439*91f16700Schasinglulu			reg = <0x5C003000 0x400>;
440*91f16700Schasinglulu			interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
441*91f16700Schasinglulu			clocks = <&rcc IWDG1>, <&rcc CK_LSI>;
442*91f16700Schasinglulu			clock-names = "pclk", "lsi";
443*91f16700Schasinglulu			status = "disabled";
444*91f16700Schasinglulu		};
445*91f16700Schasinglulu
446*91f16700Schasinglulu		rtc: rtc@5c004000 {
447*91f16700Schasinglulu			compatible = "st,stm32mp1-rtc";
448*91f16700Schasinglulu			reg = <0x5c004000 0x400>;
449*91f16700Schasinglulu			clocks = <&rcc RTCAPB>, <&rcc RTC>;
450*91f16700Schasinglulu			clock-names = "pclk", "rtc_ck";
451*91f16700Schasinglulu			interrupts-extended = <&exti 19 IRQ_TYPE_LEVEL_HIGH>;
452*91f16700Schasinglulu			status = "disabled";
453*91f16700Schasinglulu		};
454*91f16700Schasinglulu
455*91f16700Schasinglulu		bsec: efuse@5c005000 {
456*91f16700Schasinglulu			compatible = "st,stm32mp15-bsec";
457*91f16700Schasinglulu			reg = <0x5c005000 0x400>;
458*91f16700Schasinglulu			#address-cells = <1>;
459*91f16700Schasinglulu			#size-cells = <1>;
460*91f16700Schasinglulu
461*91f16700Schasinglulu			cfg0_otp: cfg0_otp@0 {
462*91f16700Schasinglulu				reg = <0x0 0x1>;
463*91f16700Schasinglulu			};
464*91f16700Schasinglulu			part_number_otp: part-number-otp@4 {
465*91f16700Schasinglulu				reg = <0x4 0x1>;
466*91f16700Schasinglulu			};
467*91f16700Schasinglulu			monotonic_otp: monotonic_otp@10 {
468*91f16700Schasinglulu				reg = <0x10 0x4>;
469*91f16700Schasinglulu			};
470*91f16700Schasinglulu			nand_otp: nand_otp@24 {
471*91f16700Schasinglulu				reg = <0x24 0x4>;
472*91f16700Schasinglulu			};
473*91f16700Schasinglulu			uid_otp: uid_otp@34 {
474*91f16700Schasinglulu				reg = <0x34 0xc>;
475*91f16700Schasinglulu			};
476*91f16700Schasinglulu			package_otp: package_otp@40 {
477*91f16700Schasinglulu				reg = <0x40 0x4>;
478*91f16700Schasinglulu			};
479*91f16700Schasinglulu			hw2_otp: hw2_otp@48 {
480*91f16700Schasinglulu				reg = <0x48 0x4>;
481*91f16700Schasinglulu			};
482*91f16700Schasinglulu			ts_cal1: calib@5c {
483*91f16700Schasinglulu				reg = <0x5c 0x2>;
484*91f16700Schasinglulu			};
485*91f16700Schasinglulu			ts_cal2: calib@5e {
486*91f16700Schasinglulu				reg = <0x5e 0x2>;
487*91f16700Schasinglulu			};
488*91f16700Schasinglulu			pkh_otp: pkh_otp@60 {
489*91f16700Schasinglulu				reg = <0x60 0x20>;
490*91f16700Schasinglulu			};
491*91f16700Schasinglulu			mac_addr: mac_addr@e4 {
492*91f16700Schasinglulu				reg = <0xe4 0x8>;
493*91f16700Schasinglulu				st,non-secure-otp;
494*91f16700Schasinglulu			};
495*91f16700Schasinglulu		};
496*91f16700Schasinglulu
497*91f16700Schasinglulu		etzpc: etzpc@5c007000 {
498*91f16700Schasinglulu			compatible = "st,stm32-etzpc";
499*91f16700Schasinglulu			reg = <0x5C007000 0x400>;
500*91f16700Schasinglulu			clocks = <&rcc TZPC>;
501*91f16700Schasinglulu		};
502*91f16700Schasinglulu
503*91f16700Schasinglulu		stgen: stgen@5c008000 {
504*91f16700Schasinglulu			compatible = "st,stm32-stgen";
505*91f16700Schasinglulu			reg = <0x5C008000 0x1000>;
506*91f16700Schasinglulu		};
507*91f16700Schasinglulu
508*91f16700Schasinglulu		i2c6: i2c@5c009000 {
509*91f16700Schasinglulu			compatible = "st,stm32mp15-i2c";
510*91f16700Schasinglulu			reg = <0x5c009000 0x400>;
511*91f16700Schasinglulu			interrupt-names = "event", "error";
512*91f16700Schasinglulu			interrupts-extended = <&exti 54 IRQ_TYPE_LEVEL_HIGH>,
513*91f16700Schasinglulu					      <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
514*91f16700Schasinglulu			clocks = <&rcc I2C6_K>;
515*91f16700Schasinglulu			resets = <&rcc I2C6_R>;
516*91f16700Schasinglulu			#address-cells = <1>;
517*91f16700Schasinglulu			#size-cells = <0>;
518*91f16700Schasinglulu			st,syscfg-fmp = <&syscfg 0x4 0x20>;
519*91f16700Schasinglulu			wakeup-source;
520*91f16700Schasinglulu			status = "disabled";
521*91f16700Schasinglulu		};
522*91f16700Schasinglulu
523*91f16700Schasinglulu		tamp: tamp@5c00a000 {
524*91f16700Schasinglulu			compatible = "st,stm32-tamp", "syscon", "simple-mfd";
525*91f16700Schasinglulu			reg = <0x5c00a000 0x400>;
526*91f16700Schasinglulu			secure-interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
527*91f16700Schasinglulu			clocks = <&rcc RTCAPB>;
528*91f16700Schasinglulu		};
529*91f16700Schasinglulu
530*91f16700Schasinglulu		/*
531*91f16700Schasinglulu		 * Break node order to solve dependency probe issue between
532*91f16700Schasinglulu		 * pinctrl and exti.
533*91f16700Schasinglulu		 */
534*91f16700Schasinglulu		pinctrl: pinctrl@50002000 {
535*91f16700Schasinglulu			#address-cells = <1>;
536*91f16700Schasinglulu			#size-cells = <1>;
537*91f16700Schasinglulu			compatible = "st,stm32mp157-pinctrl";
538*91f16700Schasinglulu			ranges = <0 0x50002000 0xa400>;
539*91f16700Schasinglulu			interrupt-parent = <&exti>;
540*91f16700Schasinglulu			st,syscfg = <&exti 0x60 0xff>;
541*91f16700Schasinglulu
542*91f16700Schasinglulu			gpioa: gpio@50002000 {
543*91f16700Schasinglulu				gpio-controller;
544*91f16700Schasinglulu				#gpio-cells = <2>;
545*91f16700Schasinglulu				interrupt-controller;
546*91f16700Schasinglulu				#interrupt-cells = <2>;
547*91f16700Schasinglulu				reg = <0x0 0x400>;
548*91f16700Schasinglulu				clocks = <&rcc GPIOA>;
549*91f16700Schasinglulu				st,bank-name = "GPIOA";
550*91f16700Schasinglulu				status = "disabled";
551*91f16700Schasinglulu			};
552*91f16700Schasinglulu
553*91f16700Schasinglulu			gpiob: gpio@50003000 {
554*91f16700Schasinglulu				gpio-controller;
555*91f16700Schasinglulu				#gpio-cells = <2>;
556*91f16700Schasinglulu				interrupt-controller;
557*91f16700Schasinglulu				#interrupt-cells = <2>;
558*91f16700Schasinglulu				reg = <0x1000 0x400>;
559*91f16700Schasinglulu				clocks = <&rcc GPIOB>;
560*91f16700Schasinglulu				st,bank-name = "GPIOB";
561*91f16700Schasinglulu				status = "disabled";
562*91f16700Schasinglulu			};
563*91f16700Schasinglulu
564*91f16700Schasinglulu			gpioc: gpio@50004000 {
565*91f16700Schasinglulu				gpio-controller;
566*91f16700Schasinglulu				#gpio-cells = <2>;
567*91f16700Schasinglulu				interrupt-controller;
568*91f16700Schasinglulu				#interrupt-cells = <2>;
569*91f16700Schasinglulu				reg = <0x2000 0x400>;
570*91f16700Schasinglulu				clocks = <&rcc GPIOC>;
571*91f16700Schasinglulu				st,bank-name = "GPIOC";
572*91f16700Schasinglulu				status = "disabled";
573*91f16700Schasinglulu			};
574*91f16700Schasinglulu
575*91f16700Schasinglulu			gpiod: gpio@50005000 {
576*91f16700Schasinglulu				gpio-controller;
577*91f16700Schasinglulu				#gpio-cells = <2>;
578*91f16700Schasinglulu				interrupt-controller;
579*91f16700Schasinglulu				#interrupt-cells = <2>;
580*91f16700Schasinglulu				reg = <0x3000 0x400>;
581*91f16700Schasinglulu				clocks = <&rcc GPIOD>;
582*91f16700Schasinglulu				st,bank-name = "GPIOD";
583*91f16700Schasinglulu				status = "disabled";
584*91f16700Schasinglulu			};
585*91f16700Schasinglulu
586*91f16700Schasinglulu			gpioe: gpio@50006000 {
587*91f16700Schasinglulu				gpio-controller;
588*91f16700Schasinglulu				#gpio-cells = <2>;
589*91f16700Schasinglulu				interrupt-controller;
590*91f16700Schasinglulu				#interrupt-cells = <2>;
591*91f16700Schasinglulu				reg = <0x4000 0x400>;
592*91f16700Schasinglulu				clocks = <&rcc GPIOE>;
593*91f16700Schasinglulu				st,bank-name = "GPIOE";
594*91f16700Schasinglulu				status = "disabled";
595*91f16700Schasinglulu			};
596*91f16700Schasinglulu
597*91f16700Schasinglulu			gpiof: gpio@50007000 {
598*91f16700Schasinglulu				gpio-controller;
599*91f16700Schasinglulu				#gpio-cells = <2>;
600*91f16700Schasinglulu				interrupt-controller;
601*91f16700Schasinglulu				#interrupt-cells = <2>;
602*91f16700Schasinglulu				reg = <0x5000 0x400>;
603*91f16700Schasinglulu				clocks = <&rcc GPIOF>;
604*91f16700Schasinglulu				st,bank-name = "GPIOF";
605*91f16700Schasinglulu				status = "disabled";
606*91f16700Schasinglulu			};
607*91f16700Schasinglulu
608*91f16700Schasinglulu			gpiog: gpio@50008000 {
609*91f16700Schasinglulu				gpio-controller;
610*91f16700Schasinglulu				#gpio-cells = <2>;
611*91f16700Schasinglulu				interrupt-controller;
612*91f16700Schasinglulu				#interrupt-cells = <2>;
613*91f16700Schasinglulu				reg = <0x6000 0x400>;
614*91f16700Schasinglulu				clocks = <&rcc GPIOG>;
615*91f16700Schasinglulu				st,bank-name = "GPIOG";
616*91f16700Schasinglulu				status = "disabled";
617*91f16700Schasinglulu			};
618*91f16700Schasinglulu
619*91f16700Schasinglulu			gpioh: gpio@50009000 {
620*91f16700Schasinglulu				gpio-controller;
621*91f16700Schasinglulu				#gpio-cells = <2>;
622*91f16700Schasinglulu				interrupt-controller;
623*91f16700Schasinglulu				#interrupt-cells = <2>;
624*91f16700Schasinglulu				reg = <0x7000 0x400>;
625*91f16700Schasinglulu				clocks = <&rcc GPIOH>;
626*91f16700Schasinglulu				st,bank-name = "GPIOH";
627*91f16700Schasinglulu				status = "disabled";
628*91f16700Schasinglulu			};
629*91f16700Schasinglulu
630*91f16700Schasinglulu			gpioi: gpio@5000a000 {
631*91f16700Schasinglulu				gpio-controller;
632*91f16700Schasinglulu				#gpio-cells = <2>;
633*91f16700Schasinglulu				interrupt-controller;
634*91f16700Schasinglulu				#interrupt-cells = <2>;
635*91f16700Schasinglulu				reg = <0x8000 0x400>;
636*91f16700Schasinglulu				clocks = <&rcc GPIOI>;
637*91f16700Schasinglulu				st,bank-name = "GPIOI";
638*91f16700Schasinglulu				status = "disabled";
639*91f16700Schasinglulu			};
640*91f16700Schasinglulu
641*91f16700Schasinglulu			gpioj: gpio@5000b000 {
642*91f16700Schasinglulu				gpio-controller;
643*91f16700Schasinglulu				#gpio-cells = <2>;
644*91f16700Schasinglulu				interrupt-controller;
645*91f16700Schasinglulu				#interrupt-cells = <2>;
646*91f16700Schasinglulu				reg = <0x9000 0x400>;
647*91f16700Schasinglulu				clocks = <&rcc GPIOJ>;
648*91f16700Schasinglulu				st,bank-name = "GPIOJ";
649*91f16700Schasinglulu				status = "disabled";
650*91f16700Schasinglulu			};
651*91f16700Schasinglulu
652*91f16700Schasinglulu			gpiok: gpio@5000c000 {
653*91f16700Schasinglulu				gpio-controller;
654*91f16700Schasinglulu				#gpio-cells = <2>;
655*91f16700Schasinglulu				interrupt-controller;
656*91f16700Schasinglulu				#interrupt-cells = <2>;
657*91f16700Schasinglulu				reg = <0xa000 0x400>;
658*91f16700Schasinglulu				clocks = <&rcc GPIOK>;
659*91f16700Schasinglulu				st,bank-name = "GPIOK";
660*91f16700Schasinglulu				status = "disabled";
661*91f16700Schasinglulu			};
662*91f16700Schasinglulu		};
663*91f16700Schasinglulu
664*91f16700Schasinglulu		pinctrl_z: pinctrl@54004000 {
665*91f16700Schasinglulu			#address-cells = <1>;
666*91f16700Schasinglulu			#size-cells = <1>;
667*91f16700Schasinglulu			compatible = "st,stm32mp157-z-pinctrl";
668*91f16700Schasinglulu			ranges = <0 0x54004000 0x400>;
669*91f16700Schasinglulu			interrupt-parent = <&exti>;
670*91f16700Schasinglulu			st,syscfg = <&exti 0x60 0xff>;
671*91f16700Schasinglulu
672*91f16700Schasinglulu			gpioz: gpio@54004000 {
673*91f16700Schasinglulu				gpio-controller;
674*91f16700Schasinglulu				#gpio-cells = <2>;
675*91f16700Schasinglulu				interrupt-controller;
676*91f16700Schasinglulu				#interrupt-cells = <2>;
677*91f16700Schasinglulu				reg = <0 0x400>;
678*91f16700Schasinglulu				clocks = <&rcc GPIOZ>;
679*91f16700Schasinglulu				st,bank-name = "GPIOZ";
680*91f16700Schasinglulu				st,bank-ioport = <11>;
681*91f16700Schasinglulu				status = "disabled";
682*91f16700Schasinglulu			};
683*91f16700Schasinglulu		};
684*91f16700Schasinglulu	};
685*91f16700Schasinglulu};
686