xref: /rk3399_ARM-atf/fdts/stm32mp211.dtsi (revision 7ddf0afdb05e9ecfb3b9d5a6e3e42eba388b4629)
1*b4cf4102SNicolas Le Bayon// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
2*b4cf4102SNicolas Le Bayon/*
3*b4cf4102SNicolas Le Bayon * Copyright (c) 2026, STMicroelectronics - All Rights Reserved
4*b4cf4102SNicolas Le Bayon * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
5*b4cf4102SNicolas Le Bayon */
6*b4cf4102SNicolas Le Bayon#include <dt-bindings/clock/st,stm32mp21-rcc.h>
7*b4cf4102SNicolas Le Bayon#include <dt-bindings/interrupt-controller/arm-gic.h>
8*b4cf4102SNicolas Le Bayon#include <dt-bindings/reset/st,stm32mp21-rcc.h>
9*b4cf4102SNicolas Le Bayon
10*b4cf4102SNicolas Le Bayon/ {
11*b4cf4102SNicolas Le Bayon	#address-cells = <2>;
12*b4cf4102SNicolas Le Bayon	#size-cells = <2>;
13*b4cf4102SNicolas Le Bayon
14*b4cf4102SNicolas Le Bayon	cpus {
15*b4cf4102SNicolas Le Bayon		#address-cells = <1>;
16*b4cf4102SNicolas Le Bayon		#size-cells = <0>;
17*b4cf4102SNicolas Le Bayon
18*b4cf4102SNicolas Le Bayon		cpu0: cpu@0 {
19*b4cf4102SNicolas Le Bayon			compatible = "arm,cortex-a35";
20*b4cf4102SNicolas Le Bayon			device_type = "cpu";
21*b4cf4102SNicolas Le Bayon			reg = <0>;
22*b4cf4102SNicolas Le Bayon			enable-method = "psci";
23*b4cf4102SNicolas Le Bayon		};
24*b4cf4102SNicolas Le Bayon
25*b4cf4102SNicolas Le Bayon		domain-idle-states {
26*b4cf4102SNicolas Le Bayon			domain-stop1 {
27*b4cf4102SNicolas Le Bayon				compatible = "domain-idle-state";
28*b4cf4102SNicolas Le Bayon				arm,psci-suspend-param = <0x00000011>;
29*b4cf4102SNicolas Le Bayon			};
30*b4cf4102SNicolas Le Bayon
31*b4cf4102SNicolas Le Bayon			domain-lp-stop1 {
32*b4cf4102SNicolas Le Bayon				compatible = "domain-idle-state";
33*b4cf4102SNicolas Le Bayon				arm,psci-suspend-param = <0x00000021>;
34*b4cf4102SNicolas Le Bayon			};
35*b4cf4102SNicolas Le Bayon
36*b4cf4102SNicolas Le Bayon			domain-lplv-stop1 {
37*b4cf4102SNicolas Le Bayon				compatible = "domain-idle-state";
38*b4cf4102SNicolas Le Bayon				arm,psci-suspend-param = <0x00000211>;
39*b4cf4102SNicolas Le Bayon			};
40*b4cf4102SNicolas Le Bayon
41*b4cf4102SNicolas Le Bayon			domain-stop2 {
42*b4cf4102SNicolas Le Bayon				compatible = "domain-idle-state";
43*b4cf4102SNicolas Le Bayon				arm,psci-suspend-param = <0x40001333>;
44*b4cf4102SNicolas Le Bayon			};
45*b4cf4102SNicolas Le Bayon
46*b4cf4102SNicolas Le Bayon			domain-lp-stop2 {
47*b4cf4102SNicolas Le Bayon				compatible = "domain-idle-state";
48*b4cf4102SNicolas Le Bayon				arm,psci-suspend-param = <0x40002333>;
49*b4cf4102SNicolas Le Bayon			};
50*b4cf4102SNicolas Le Bayon
51*b4cf4102SNicolas Le Bayon			domain-lplv-stop2 {
52*b4cf4102SNicolas Le Bayon				compatible = "domain-idle-state";
53*b4cf4102SNicolas Le Bayon				arm,psci-suspend-param = <0x40023333>;
54*b4cf4102SNicolas Le Bayon			};
55*b4cf4102SNicolas Le Bayon
56*b4cf4102SNicolas Le Bayon			domain-standby {
57*b4cf4102SNicolas Le Bayon				compatible = "domain-idle-state";
58*b4cf4102SNicolas Le Bayon				arm,psci-suspend-param = <0x40033333>;
59*b4cf4102SNicolas Le Bayon			};
60*b4cf4102SNicolas Le Bayon		};
61*b4cf4102SNicolas Le Bayon	};
62*b4cf4102SNicolas Le Bayon
63*b4cf4102SNicolas Le Bayon	intc: interrupt-controller@4ac00000 {
64*b4cf4102SNicolas Le Bayon		compatible = "arm,cortex-a7-gic";
65*b4cf4102SNicolas Le Bayon		#interrupt-cells = <3>;
66*b4cf4102SNicolas Le Bayon		interrupt-controller;
67*b4cf4102SNicolas Le Bayon		reg = <0x0 0x4ac10000 0x0 0x1000>,
68*b4cf4102SNicolas Le Bayon		      <0x0 0x4ac20000 0x0 0x2000>,
69*b4cf4102SNicolas Le Bayon		      <0x0 0x4ac40000 0x0 0x2000>,
70*b4cf4102SNicolas Le Bayon		      <0x0 0x4ac60000 0x0 0x2000>;
71*b4cf4102SNicolas Le Bayon	};
72*b4cf4102SNicolas Le Bayon
73*b4cf4102SNicolas Le Bayon	timer: timer {
74*b4cf4102SNicolas Le Bayon		compatible = "arm,armv8-timer";
75*b4cf4102SNicolas Le Bayon		interrupt-parent = <&intc>;
76*b4cf4102SNicolas Le Bayon		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
77*b4cf4102SNicolas Le Bayon			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
78*b4cf4102SNicolas Le Bayon			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
79*b4cf4102SNicolas Le Bayon			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
80*b4cf4102SNicolas Le Bayon		always-on;
81*b4cf4102SNicolas Le Bayon	};
82*b4cf4102SNicolas Le Bayon
83*b4cf4102SNicolas Le Bayon	clocks {
84*b4cf4102SNicolas Le Bayon		clk_hse: clk-hse {
85*b4cf4102SNicolas Le Bayon			#clock-cells = <0>;
86*b4cf4102SNicolas Le Bayon			compatible = "fixed-clock";
87*b4cf4102SNicolas Le Bayon			clock-frequency = <48000000>;
88*b4cf4102SNicolas Le Bayon		};
89*b4cf4102SNicolas Le Bayon
90*b4cf4102SNicolas Le Bayon		clk_hsi: clk-hsi {
91*b4cf4102SNicolas Le Bayon			#clock-cells = <0>;
92*b4cf4102SNicolas Le Bayon			compatible = "fixed-clock";
93*b4cf4102SNicolas Le Bayon			clock-frequency = <64000000>;
94*b4cf4102SNicolas Le Bayon		};
95*b4cf4102SNicolas Le Bayon
96*b4cf4102SNicolas Le Bayon		clk_lse: clk-lse {
97*b4cf4102SNicolas Le Bayon			#clock-cells = <0>;
98*b4cf4102SNicolas Le Bayon			compatible = "fixed-clock";
99*b4cf4102SNicolas Le Bayon			clock-frequency = <32768>;
100*b4cf4102SNicolas Le Bayon		};
101*b4cf4102SNicolas Le Bayon
102*b4cf4102SNicolas Le Bayon		clk_lsi: clk-lsi {
103*b4cf4102SNicolas Le Bayon			#clock-cells = <0>;
104*b4cf4102SNicolas Le Bayon			compatible = "fixed-clock";
105*b4cf4102SNicolas Le Bayon			clock-frequency = <32000>;
106*b4cf4102SNicolas Le Bayon		};
107*b4cf4102SNicolas Le Bayon
108*b4cf4102SNicolas Le Bayon		clk_msi: clk-msi {
109*b4cf4102SNicolas Le Bayon			#clock-cells = <0>;
110*b4cf4102SNicolas Le Bayon			compatible = "fixed-clock";
111*b4cf4102SNicolas Le Bayon			clock-frequency = <16000000>;
112*b4cf4102SNicolas Le Bayon		};
113*b4cf4102SNicolas Le Bayon	};
114*b4cf4102SNicolas Le Bayon
115*b4cf4102SNicolas Le Bayon	soc@0 {
116*b4cf4102SNicolas Le Bayon		compatible = "simple-bus";
117*b4cf4102SNicolas Le Bayon		#address-cells = <1>;
118*b4cf4102SNicolas Le Bayon		#size-cells = <1>;
119*b4cf4102SNicolas Le Bayon		interrupt-parent = <&intc>;
120*b4cf4102SNicolas Le Bayon		ranges = <0x0 0x0 0x0 0x80000000>;
121*b4cf4102SNicolas Le Bayon
122*b4cf4102SNicolas Le Bayon		rifsc: bus@42080000 {
123*b4cf4102SNicolas Le Bayon			compatible = "st,stm32mp25-rifsc", "simple-bus";
124*b4cf4102SNicolas Le Bayon			reg = <0x42080000 0x1000>;
125*b4cf4102SNicolas Le Bayon			#address-cells = <1>;
126*b4cf4102SNicolas Le Bayon			#size-cells = <1>;
127*b4cf4102SNicolas Le Bayon
128*b4cf4102SNicolas Le Bayon			usart2: serial@400e0000 {
129*b4cf4102SNicolas Le Bayon				compatible = "st,stm32h7-uart";
130*b4cf4102SNicolas Le Bayon				reg = <0x400e0000 0x400>;
131*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_KER_USART2>;
132*b4cf4102SNicolas Le Bayon				resets = <&rcc USART2_R>;
133*b4cf4102SNicolas Le Bayon				status = "disabled";
134*b4cf4102SNicolas Le Bayon			};
135*b4cf4102SNicolas Le Bayon
136*b4cf4102SNicolas Le Bayon			usart3: serial@400f0000 {
137*b4cf4102SNicolas Le Bayon				compatible = "st,stm32h7-uart";
138*b4cf4102SNicolas Le Bayon				reg = <0x400f0000 0x400>;
139*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_KER_USART3>;
140*b4cf4102SNicolas Le Bayon				resets = <&rcc USART3_R>;
141*b4cf4102SNicolas Le Bayon				status = "disabled";
142*b4cf4102SNicolas Le Bayon			};
143*b4cf4102SNicolas Le Bayon
144*b4cf4102SNicolas Le Bayon			uart4: serial@40100000 {
145*b4cf4102SNicolas Le Bayon				compatible = "st,stm32h7-uart";
146*b4cf4102SNicolas Le Bayon				reg = <0x40100000 0x400>;
147*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_KER_UART4>;
148*b4cf4102SNicolas Le Bayon				resets = <&rcc UART4_R>;
149*b4cf4102SNicolas Le Bayon				status = "disabled";
150*b4cf4102SNicolas Le Bayon			};
151*b4cf4102SNicolas Le Bayon
152*b4cf4102SNicolas Le Bayon			uart5: serial@40110000 {
153*b4cf4102SNicolas Le Bayon				compatible = "st,stm32h7-uart";
154*b4cf4102SNicolas Le Bayon				reg = <0x40110000 0x400>;
155*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_KER_UART5>;
156*b4cf4102SNicolas Le Bayon				resets = <&rcc UART5_R>;
157*b4cf4102SNicolas Le Bayon				status = "disabled";
158*b4cf4102SNicolas Le Bayon			};
159*b4cf4102SNicolas Le Bayon
160*b4cf4102SNicolas Le Bayon			i2c1: i2c@40170000 {
161*b4cf4102SNicolas Le Bayon				compatible = "st,stm32mp25-i2c";
162*b4cf4102SNicolas Le Bayon				reg = <0x40170000 0x400>;
163*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_KER_I2C1>;
164*b4cf4102SNicolas Le Bayon				resets = <&rcc I2C1_R>;
165*b4cf4102SNicolas Le Bayon				status = "disabled";
166*b4cf4102SNicolas Le Bayon			};
167*b4cf4102SNicolas Le Bayon
168*b4cf4102SNicolas Le Bayon			i2c2: i2c@40180000 {
169*b4cf4102SNicolas Le Bayon				compatible = "st,stm32mp25-i2c";
170*b4cf4102SNicolas Le Bayon				reg = <0x40180000 0x400>;
171*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_KER_I2C2>;
172*b4cf4102SNicolas Le Bayon				resets = <&rcc I2C2_R>;
173*b4cf4102SNicolas Le Bayon				status = "disabled";
174*b4cf4102SNicolas Le Bayon			};
175*b4cf4102SNicolas Le Bayon
176*b4cf4102SNicolas Le Bayon			usart6: serial@40220000 {
177*b4cf4102SNicolas Le Bayon				compatible = "st,stm32h7-uart";
178*b4cf4102SNicolas Le Bayon				reg = <0x40220000 0x400>;
179*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_KER_USART6>;
180*b4cf4102SNicolas Le Bayon				resets = <&rcc USART6_R>;
181*b4cf4102SNicolas Le Bayon				status = "disabled";
182*b4cf4102SNicolas Le Bayon			};
183*b4cf4102SNicolas Le Bayon
184*b4cf4102SNicolas Le Bayon			usart1: serial@40330000 {
185*b4cf4102SNicolas Le Bayon				compatible = "st,stm32h7-uart";
186*b4cf4102SNicolas Le Bayon				reg = <0x40330000 0x400>;
187*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_KER_USART1>;
188*b4cf4102SNicolas Le Bayon				resets = <&rcc USART1_R>;
189*b4cf4102SNicolas Le Bayon				status = "disabled";
190*b4cf4102SNicolas Le Bayon			};
191*b4cf4102SNicolas Le Bayon
192*b4cf4102SNicolas Le Bayon			uart7: serial@40370000 {
193*b4cf4102SNicolas Le Bayon				compatible = "st,stm32h7-uart";
194*b4cf4102SNicolas Le Bayon				reg = <0x40370000 0x400>;
195*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_KER_UART7>;
196*b4cf4102SNicolas Le Bayon				resets = <&rcc UART7_R>;
197*b4cf4102SNicolas Le Bayon				status = "disabled";
198*b4cf4102SNicolas Le Bayon			};
199*b4cf4102SNicolas Le Bayon
200*b4cf4102SNicolas Le Bayon			hash1: hash@42030400 {
201*b4cf4102SNicolas Le Bayon				compatible = "st,stm32mp13-hash";
202*b4cf4102SNicolas Le Bayon				reg = <0x42030400  0x400>;
203*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_BUS_HASH1>;
204*b4cf4102SNicolas Le Bayon				resets = <&rcc HASH1_R>;
205*b4cf4102SNicolas Le Bayon				status = "disabled";
206*b4cf4102SNicolas Le Bayon			};
207*b4cf4102SNicolas Le Bayon
208*b4cf4102SNicolas Le Bayon			ospi1: spi@40430000 {
209*b4cf4102SNicolas Le Bayon				compatible = "st,stm32mp25-omi";
210*b4cf4102SNicolas Le Bayon				reg = <0x40430000 0x400>;
211*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_KER_OSPI1>;
212*b4cf4102SNicolas Le Bayon				resets = <&rcc OSPI1_R>, <&rcc OSPI1DLL_R>;
213*b4cf4102SNicolas Le Bayon				status = "disabled";
214*b4cf4102SNicolas Le Bayon			};
215*b4cf4102SNicolas Le Bayon
216*b4cf4102SNicolas Le Bayon			rng2: rng@42020000 {
217*b4cf4102SNicolas Le Bayon				compatible = "st,stm32mp13-rng";
218*b4cf4102SNicolas Le Bayon				reg = <0x42020000 0x400>;
219*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_BUS_RNG2>;
220*b4cf4102SNicolas Le Bayon				resets = <&rcc RNG2_R>;
221*b4cf4102SNicolas Le Bayon				status = "disabled";
222*b4cf4102SNicolas Le Bayon			};
223*b4cf4102SNicolas Le Bayon
224*b4cf4102SNicolas Le Bayon			rng1: rng@42030800 {
225*b4cf4102SNicolas Le Bayon				compatible = "st,stm32mp13-rng";
226*b4cf4102SNicolas Le Bayon				reg = <0x42030800 0x400>;
227*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_BUS_RNG1>;
228*b4cf4102SNicolas Le Bayon				resets = <&rcc RNG1_R>;
229*b4cf4102SNicolas Le Bayon				status = "disabled";
230*b4cf4102SNicolas Le Bayon			};
231*b4cf4102SNicolas Le Bayon
232*b4cf4102SNicolas Le Bayon			iwdg1: watchdog@44010000 {
233*b4cf4102SNicolas Le Bayon				compatible = "st,stm32mp1-iwdg";
234*b4cf4102SNicolas Le Bayon				reg = <0x44010000 0x400>;
235*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_BUS_IWDG1>, <&rcc LSI_CK>;
236*b4cf4102SNicolas Le Bayon				clock-names = "pclk", "lsi";
237*b4cf4102SNicolas Le Bayon				status = "disabled";
238*b4cf4102SNicolas Le Bayon			};
239*b4cf4102SNicolas Le Bayon
240*b4cf4102SNicolas Le Bayon			i2c3: i2c@46040000 {
241*b4cf4102SNicolas Le Bayon				compatible = "st,stm32mp25-i2c";
242*b4cf4102SNicolas Le Bayon				reg = <0x46040000 0x400>;
243*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_KER_I2C3>;
244*b4cf4102SNicolas Le Bayon				resets = <&rcc I2C3_R>;
245*b4cf4102SNicolas Le Bayon				status = "disabled";
246*b4cf4102SNicolas Le Bayon			};
247*b4cf4102SNicolas Le Bayon
248*b4cf4102SNicolas Le Bayon			sdmmc1: mmc@48220000 {
249*b4cf4102SNicolas Le Bayon				compatible = "st,stm32mp25-sdmmc2", "arm,pl18x", "arm,primecell";
250*b4cf4102SNicolas Le Bayon				arm,primecell-periphid = <0x00353180>;
251*b4cf4102SNicolas Le Bayon				reg = <0x48220000 0x400>, <0x44230400 0x8>;
252*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_KER_SDMMC1>;
253*b4cf4102SNicolas Le Bayon				clock-names = "apb_pclk";
254*b4cf4102SNicolas Le Bayon				resets = <&rcc SDMMC1_R>;
255*b4cf4102SNicolas Le Bayon				cap-sd-highspeed;
256*b4cf4102SNicolas Le Bayon				cap-mmc-highspeed;
257*b4cf4102SNicolas Le Bayon				max-frequency = <166000000>;
258*b4cf4102SNicolas Le Bayon				status = "disabled";
259*b4cf4102SNicolas Le Bayon			};
260*b4cf4102SNicolas Le Bayon
261*b4cf4102SNicolas Le Bayon			sdmmc2: mmc@48230000 {
262*b4cf4102SNicolas Le Bayon				compatible = "st,stm32mp25-sdmmc2", "arm,pl18x", "arm,primecell";
263*b4cf4102SNicolas Le Bayon				arm,primecell-periphid = <0x00353180>;
264*b4cf4102SNicolas Le Bayon				reg = <0x48230000 0x400>, <0x44230800 0x8>;
265*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_KER_SDMMC2>;
266*b4cf4102SNicolas Le Bayon				clock-names = "apb_pclk";
267*b4cf4102SNicolas Le Bayon				resets = <&rcc SDMMC2_R>;
268*b4cf4102SNicolas Le Bayon				cap-sd-highspeed;
269*b4cf4102SNicolas Le Bayon				cap-mmc-highspeed;
270*b4cf4102SNicolas Le Bayon				max-frequency = <166000000>;
271*b4cf4102SNicolas Le Bayon				status = "disabled";
272*b4cf4102SNicolas Le Bayon			};
273*b4cf4102SNicolas Le Bayon		};
274*b4cf4102SNicolas Le Bayon
275*b4cf4102SNicolas Le Bayon		risaf2: risaf@420b0000 {
276*b4cf4102SNicolas Le Bayon			compatible = "st,stm32-risaf";
277*b4cf4102SNicolas Le Bayon			reg = <0x420b0000 0x1000>;
278*b4cf4102SNicolas Le Bayon			clocks = <&rcc CK_KER_OSPI1>;
279*b4cf4102SNicolas Le Bayon			status = "disabled";
280*b4cf4102SNicolas Le Bayon		};
281*b4cf4102SNicolas Le Bayon
282*b4cf4102SNicolas Le Bayon		risaf4: risaf@420d0000 {
283*b4cf4102SNicolas Le Bayon			compatible = "st,stm32-risaf";
284*b4cf4102SNicolas Le Bayon			reg = <0x420d0000 0x1000>;
285*b4cf4102SNicolas Le Bayon			clocks = <&rcc CK_BUS_RISAF4>;
286*b4cf4102SNicolas Le Bayon			status = "disabled";
287*b4cf4102SNicolas Le Bayon		};
288*b4cf4102SNicolas Le Bayon
289*b4cf4102SNicolas Le Bayon		bsec: efuse@44000000 {
290*b4cf4102SNicolas Le Bayon			compatible = "st,stm32mp25-bsec";
291*b4cf4102SNicolas Le Bayon			reg = <0x44000000 0x1000>;
292*b4cf4102SNicolas Le Bayon			#address-cells = <1>;
293*b4cf4102SNicolas Le Bayon			#size-cells = <1>;
294*b4cf4102SNicolas Le Bayon
295*b4cf4102SNicolas Le Bayon			uid_otp: uid-otp@14 {
296*b4cf4102SNicolas Le Bayon				reg = <0x14 0xc>;
297*b4cf4102SNicolas Le Bayon			};
298*b4cf4102SNicolas Le Bayon			part_number_otp: part-number-otp@24 {
299*b4cf4102SNicolas Le Bayon				reg = <0x24 0x4>;
300*b4cf4102SNicolas Le Bayon			};
301*b4cf4102SNicolas Le Bayon			nand_otp: otp16@40 {
302*b4cf4102SNicolas Le Bayon				reg = <0x40 0x4>;
303*b4cf4102SNicolas Le Bayon			};
304*b4cf4102SNicolas Le Bayon			lifecycle2_otp: otp18@48 {
305*b4cf4102SNicolas Le Bayon				reg = <0x48 0x4>;
306*b4cf4102SNicolas Le Bayon			};
307*b4cf4102SNicolas Le Bayon			nand2_otp: otp20@50 {
308*b4cf4102SNicolas Le Bayon				reg = <0x50 0x4>;
309*b4cf4102SNicolas Le Bayon			};
310*b4cf4102SNicolas Le Bayon			rev_otp@198 {
311*b4cf4102SNicolas Le Bayon				reg = <0x198 0x4>;
312*b4cf4102SNicolas Le Bayon			};
313*b4cf4102SNicolas Le Bayon			package_otp: package-otp@1e8 {
314*b4cf4102SNicolas Le Bayon				reg = <0x1e8 0x1>;
315*b4cf4102SNicolas Le Bayon			};
316*b4cf4102SNicolas Le Bayon			hconf1_otp: otp124@1f0 {
317*b4cf4102SNicolas Le Bayon				reg = <0x1f0 0x4>;
318*b4cf4102SNicolas Le Bayon			};
319*b4cf4102SNicolas Le Bayon			pkh_otp: otp152@260 {
320*b4cf4102SNicolas Le Bayon				reg = <0x260 0x20>;
321*b4cf4102SNicolas Le Bayon			};
322*b4cf4102SNicolas Le Bayon			oem_fip_enc_key: otp260@410 {
323*b4cf4102SNicolas Le Bayon				reg = <0x410 0x20>;
324*b4cf4102SNicolas Le Bayon			};
325*b4cf4102SNicolas Le Bayon		};
326*b4cf4102SNicolas Le Bayon
327*b4cf4102SNicolas Le Bayon		rcc: clock-controller@44200000 {
328*b4cf4102SNicolas Le Bayon			compatible = "st,stm32mp21-rcc";
329*b4cf4102SNicolas Le Bayon			reg = <0x44200000 0x10000>;
330*b4cf4102SNicolas Le Bayon			#clock-cells = <1>;
331*b4cf4102SNicolas Le Bayon			#reset-cells = <1>;
332*b4cf4102SNicolas Le Bayon		};
333*b4cf4102SNicolas Le Bayon
334*b4cf4102SNicolas Le Bayon		pwr: pwr@44210000 {
335*b4cf4102SNicolas Le Bayon			compatible = "st,stm32mp21-pwr";
336*b4cf4102SNicolas Le Bayon			reg = <0x44210000 0x400>;
337*b4cf4102SNicolas Le Bayon
338*b4cf4102SNicolas Le Bayon			vddio1: vddio1 {
339*b4cf4102SNicolas Le Bayon				regulator-name = "vddio1";
340*b4cf4102SNicolas Le Bayon			};
341*b4cf4102SNicolas Le Bayon
342*b4cf4102SNicolas Le Bayon			vddio2: vddio2 {
343*b4cf4102SNicolas Le Bayon				regulator-name = "vddio2";
344*b4cf4102SNicolas Le Bayon			};
345*b4cf4102SNicolas Le Bayon
346*b4cf4102SNicolas Le Bayon			vddio3: vddio3 {
347*b4cf4102SNicolas Le Bayon				regulator-name = "vddio3";
348*b4cf4102SNicolas Le Bayon			};
349*b4cf4102SNicolas Le Bayon
350*b4cf4102SNicolas Le Bayon			vddio: vddio {
351*b4cf4102SNicolas Le Bayon				regulator-name = "vddio";
352*b4cf4102SNicolas Le Bayon			};
353*b4cf4102SNicolas Le Bayon		};
354*b4cf4102SNicolas Le Bayon
355*b4cf4102SNicolas Le Bayon		syscfg: syscon@44230000 {
356*b4cf4102SNicolas Le Bayon			compatible = "st,stm32mp25-syscfg", "syscon";
357*b4cf4102SNicolas Le Bayon			reg = <0x44230000 0x10000>;
358*b4cf4102SNicolas Le Bayon		};
359*b4cf4102SNicolas Le Bayon
360*b4cf4102SNicolas Le Bayon		tamp: tamp@46010000 {
361*b4cf4102SNicolas Le Bayon			compatible = "st,stm32mp25-tamp";
362*b4cf4102SNicolas Le Bayon			reg = <0x46010000 0x400>;
363*b4cf4102SNicolas Le Bayon			clocks = <&rcc CK_BUS_RTC>;
364*b4cf4102SNicolas Le Bayon			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
365*b4cf4102SNicolas Le Bayon			#address-cells = <1>;
366*b4cf4102SNicolas Le Bayon			#size-cells = <1>;
367*b4cf4102SNicolas Le Bayon			ranges;
368*b4cf4102SNicolas Le Bayon
369*b4cf4102SNicolas Le Bayon			nvram: nvram@46010100 {
370*b4cf4102SNicolas Le Bayon				compatible = "st,stm32mp25-tamp-nvram";
371*b4cf4102SNicolas Le Bayon				#address-cells = <1>;
372*b4cf4102SNicolas Le Bayon				#size-cells = <1>;
373*b4cf4102SNicolas Le Bayon				reg = <0x46010100 0x200>;
374*b4cf4102SNicolas Le Bayon
375*b4cf4102SNicolas Le Bayon				stop2_entrypoint: tamp-bkp@2c {
376*b4cf4102SNicolas Le Bayon					reg = <0x2c 0x4>;
377*b4cf4102SNicolas Le Bayon				};
378*b4cf4102SNicolas Le Bayon				fwu_info: tamp-bkp@c0 {
379*b4cf4102SNicolas Le Bayon					/* see firmware update info feature */
380*b4cf4102SNicolas Le Bayon					reg = <0xc0 0x4>;
381*b4cf4102SNicolas Le Bayon				};
382*b4cf4102SNicolas Le Bayon				boot_mode: tamp-bkp@180 {
383*b4cf4102SNicolas Le Bayon					reg = <0x180 0x4>;
384*b4cf4102SNicolas Le Bayon				};
385*b4cf4102SNicolas Le Bayon
386*b4cf4102SNicolas Le Bayon			};
387*b4cf4102SNicolas Le Bayon
388*b4cf4102SNicolas Le Bayon			boot_info: boot-info {
389*b4cf4102SNicolas Le Bayon				compatible = "st,stm32mp-bootinfo";
390*b4cf4102SNicolas Le Bayon				nvmem-cells = <&boot_mode>, <&fwu_info>, <&stop2_entrypoint>;
391*b4cf4102SNicolas Le Bayon				nvmem-cell-names = "boot-mode", "fwu-info", "stop2-entrypoint";
392*b4cf4102SNicolas Le Bayon			};
393*b4cf4102SNicolas Le Bayon		};
394*b4cf4102SNicolas Le Bayon
395*b4cf4102SNicolas Le Bayon		ddr: ddr@48040000 {
396*b4cf4102SNicolas Le Bayon			compatible = "st,stm32mp2-ddr";
397*b4cf4102SNicolas Le Bayon			reg = <0x48040000 0x10000>,
398*b4cf4102SNicolas Le Bayon			      <0x48c00000 0x400000>;
399*b4cf4102SNicolas Le Bayon			status = "okay";
400*b4cf4102SNicolas Le Bayon		};
401*b4cf4102SNicolas Le Bayon
402*b4cf4102SNicolas Le Bayon		fmc: memory-controller@48200000 {
403*b4cf4102SNicolas Le Bayon			compatible = "st,stm32mp25-fmc2-ebi";
404*b4cf4102SNicolas Le Bayon			reg = <0x48200000 0x400>;
405*b4cf4102SNicolas Le Bayon			ranges = <0 0 0x70000000 0x04000000>, /* EBI CS 1 */
406*b4cf4102SNicolas Le Bayon				 <1 0 0x74000000 0x04000000>, /* EBI CS 2 */
407*b4cf4102SNicolas Le Bayon				 <2 0 0x78000000 0x04000000>, /* EBI CS 3 */
408*b4cf4102SNicolas Le Bayon				 <3 0 0x7c000000 0x04000000>, /* EBI CS 4 */
409*b4cf4102SNicolas Le Bayon				 <4 0 0x48810000 0x00001000>; /* NAND */
410*b4cf4102SNicolas Le Bayon			#address-cells = <2>;
411*b4cf4102SNicolas Le Bayon			#size-cells = <1>;
412*b4cf4102SNicolas Le Bayon			clocks = <&rcc CK_KER_FMC>;
413*b4cf4102SNicolas Le Bayon			resets = <&rcc FMC_R>;
414*b4cf4102SNicolas Le Bayon			status = "disabled";
415*b4cf4102SNicolas Le Bayon
416*b4cf4102SNicolas Le Bayon			nand-controller@4,0 {
417*b4cf4102SNicolas Le Bayon				compatible = "st,stm32mp25-fmc2-nfc";
418*b4cf4102SNicolas Le Bayon				reg = <4 0x0000 0x10>,
419*b4cf4102SNicolas Le Bayon				      <4 0x0090 0x10>,
420*b4cf4102SNicolas Le Bayon				      <4 0x00a0 0x10>,
421*b4cf4102SNicolas Le Bayon				      <4 0x0400 0x10>,
422*b4cf4102SNicolas Le Bayon				      <4 0x0490 0x10>,
423*b4cf4102SNicolas Le Bayon				      <4 0x04a0 0x10>,
424*b4cf4102SNicolas Le Bayon				      <4 0x0800 0x10>,
425*b4cf4102SNicolas Le Bayon				      <4 0x0890 0x10>,
426*b4cf4102SNicolas Le Bayon				      <4 0x08a0 0x10>,
427*b4cf4102SNicolas Le Bayon				      <4 0x0c00 0x10>,
428*b4cf4102SNicolas Le Bayon				      <4 0x0c90 0x10>,
429*b4cf4102SNicolas Le Bayon				      <4 0x0ca0 0x10>;
430*b4cf4102SNicolas Le Bayon				#address-cells = <1>;
431*b4cf4102SNicolas Le Bayon				#size-cells = <0>;
432*b4cf4102SNicolas Le Bayon				status = "disabled";
433*b4cf4102SNicolas Le Bayon			};
434*b4cf4102SNicolas Le Bayon		};
435*b4cf4102SNicolas Le Bayon
436*b4cf4102SNicolas Le Bayon		pinctrl: pinctrl@44240000 {
437*b4cf4102SNicolas Le Bayon			#address-cells = <1>;
438*b4cf4102SNicolas Le Bayon			#size-cells = <1>;
439*b4cf4102SNicolas Le Bayon			compatible = "st,stm32mp215-pinctrl";
440*b4cf4102SNicolas Le Bayon			ranges = <0 0x44240000 0x80400>;
441*b4cf4102SNicolas Le Bayon
442*b4cf4102SNicolas Le Bayon			gpioa: gpio@44240000 {
443*b4cf4102SNicolas Le Bayon				gpio-controller;
444*b4cf4102SNicolas Le Bayon				#gpio-cells = <2>;
445*b4cf4102SNicolas Le Bayon				interrupt-controller;
446*b4cf4102SNicolas Le Bayon				#interrupt-cells = <2>;
447*b4cf4102SNicolas Le Bayon				reg = <0x0 0x400>;
448*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_BUS_GPIOA>;
449*b4cf4102SNicolas Le Bayon				st,bank-name = "GPIOA";
450*b4cf4102SNicolas Le Bayon				status = "disabled";
451*b4cf4102SNicolas Le Bayon			};
452*b4cf4102SNicolas Le Bayon
453*b4cf4102SNicolas Le Bayon			gpiob: gpio@44250000 {
454*b4cf4102SNicolas Le Bayon				gpio-controller;
455*b4cf4102SNicolas Le Bayon				#gpio-cells = <2>;
456*b4cf4102SNicolas Le Bayon				interrupt-controller;
457*b4cf4102SNicolas Le Bayon				#interrupt-cells = <2>;
458*b4cf4102SNicolas Le Bayon				reg = <0x10000 0x400>;
459*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_BUS_GPIOB>;
460*b4cf4102SNicolas Le Bayon				st,bank-name = "GPIOB";
461*b4cf4102SNicolas Le Bayon				status = "disabled";
462*b4cf4102SNicolas Le Bayon			};
463*b4cf4102SNicolas Le Bayon
464*b4cf4102SNicolas Le Bayon			gpioc: gpio@44260000 {
465*b4cf4102SNicolas Le Bayon				gpio-controller;
466*b4cf4102SNicolas Le Bayon				#gpio-cells = <2>;
467*b4cf4102SNicolas Le Bayon				interrupt-controller;
468*b4cf4102SNicolas Le Bayon				#interrupt-cells = <2>;
469*b4cf4102SNicolas Le Bayon				reg = <0x20000 0x400>;
470*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_BUS_GPIOC>;
471*b4cf4102SNicolas Le Bayon				st,bank-name = "GPIOC";
472*b4cf4102SNicolas Le Bayon				status = "disabled";
473*b4cf4102SNicolas Le Bayon			};
474*b4cf4102SNicolas Le Bayon
475*b4cf4102SNicolas Le Bayon			gpiod: gpio@44270000 {
476*b4cf4102SNicolas Le Bayon				gpio-controller;
477*b4cf4102SNicolas Le Bayon				#gpio-cells = <2>;
478*b4cf4102SNicolas Le Bayon				interrupt-controller;
479*b4cf4102SNicolas Le Bayon				#interrupt-cells = <2>;
480*b4cf4102SNicolas Le Bayon				reg = <0x30000 0x400>;
481*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_BUS_GPIOD>;
482*b4cf4102SNicolas Le Bayon				st,bank-name = "GPIOD";
483*b4cf4102SNicolas Le Bayon				status = "disabled";
484*b4cf4102SNicolas Le Bayon			};
485*b4cf4102SNicolas Le Bayon
486*b4cf4102SNicolas Le Bayon			gpioe: gpio@44280000 {
487*b4cf4102SNicolas Le Bayon				gpio-controller;
488*b4cf4102SNicolas Le Bayon				#gpio-cells = <2>;
489*b4cf4102SNicolas Le Bayon				interrupt-controller;
490*b4cf4102SNicolas Le Bayon				#interrupt-cells = <2>;
491*b4cf4102SNicolas Le Bayon				reg = <0x40000 0x400>;
492*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_BUS_GPIOE>;
493*b4cf4102SNicolas Le Bayon				st,bank-name = "GPIOE";
494*b4cf4102SNicolas Le Bayon				status = "disabled";
495*b4cf4102SNicolas Le Bayon			};
496*b4cf4102SNicolas Le Bayon
497*b4cf4102SNicolas Le Bayon			gpiof: gpio@44290000 {
498*b4cf4102SNicolas Le Bayon				gpio-controller;
499*b4cf4102SNicolas Le Bayon				#gpio-cells = <2>;
500*b4cf4102SNicolas Le Bayon				interrupt-controller;
501*b4cf4102SNicolas Le Bayon				#interrupt-cells = <2>;
502*b4cf4102SNicolas Le Bayon				reg = <0x50000 0x400>;
503*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_BUS_GPIOF>;
504*b4cf4102SNicolas Le Bayon				st,bank-name = "GPIOF";
505*b4cf4102SNicolas Le Bayon				status = "disabled";
506*b4cf4102SNicolas Le Bayon			};
507*b4cf4102SNicolas Le Bayon
508*b4cf4102SNicolas Le Bayon			gpiog: gpio@442a0000 {
509*b4cf4102SNicolas Le Bayon				gpio-controller;
510*b4cf4102SNicolas Le Bayon				#gpio-cells = <2>;
511*b4cf4102SNicolas Le Bayon				interrupt-controller;
512*b4cf4102SNicolas Le Bayon				#interrupt-cells = <2>;
513*b4cf4102SNicolas Le Bayon				reg = <0x60000 0x400>;
514*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_BUS_GPIOG>;
515*b4cf4102SNicolas Le Bayon				st,bank-name = "GPIOG";
516*b4cf4102SNicolas Le Bayon				status = "disabled";
517*b4cf4102SNicolas Le Bayon			};
518*b4cf4102SNicolas Le Bayon
519*b4cf4102SNicolas Le Bayon			gpioh: gpio@442b0000 {
520*b4cf4102SNicolas Le Bayon				gpio-controller;
521*b4cf4102SNicolas Le Bayon				#gpio-cells = <2>;
522*b4cf4102SNicolas Le Bayon				interrupt-controller;
523*b4cf4102SNicolas Le Bayon				#interrupt-cells = <2>;
524*b4cf4102SNicolas Le Bayon				reg = <0x70000 0x400>;
525*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_BUS_GPIOH>;
526*b4cf4102SNicolas Le Bayon				st,bank-name = "GPIOH";
527*b4cf4102SNicolas Le Bayon				status = "disabled";
528*b4cf4102SNicolas Le Bayon			};
529*b4cf4102SNicolas Le Bayon
530*b4cf4102SNicolas Le Bayon			gpioi: gpio@442c0000 {
531*b4cf4102SNicolas Le Bayon				gpio-controller;
532*b4cf4102SNicolas Le Bayon				#gpio-cells = <2>;
533*b4cf4102SNicolas Le Bayon				interrupt-controller;
534*b4cf4102SNicolas Le Bayon				#interrupt-cells = <2>;
535*b4cf4102SNicolas Le Bayon				reg = <0x80000 0x400>;
536*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_BUS_GPIOI>;
537*b4cf4102SNicolas Le Bayon				st,bank-name = "GPIOI";
538*b4cf4102SNicolas Le Bayon				status = "disabled";
539*b4cf4102SNicolas Le Bayon			};
540*b4cf4102SNicolas Le Bayon		};
541*b4cf4102SNicolas Le Bayon
542*b4cf4102SNicolas Le Bayon		pinctrl_z: pinctrl@46200000 {
543*b4cf4102SNicolas Le Bayon			#address-cells = <1>;
544*b4cf4102SNicolas Le Bayon			#size-cells = <1>;
545*b4cf4102SNicolas Le Bayon			compatible = "st,stm32mp215-z-pinctrl";
546*b4cf4102SNicolas Le Bayon			ranges = <0 0x46200000 0x400>;
547*b4cf4102SNicolas Le Bayon
548*b4cf4102SNicolas Le Bayon			gpioz: gpio@46200000 {
549*b4cf4102SNicolas Le Bayon				gpio-controller;
550*b4cf4102SNicolas Le Bayon				#gpio-cells = <2>;
551*b4cf4102SNicolas Le Bayon				interrupt-controller;
552*b4cf4102SNicolas Le Bayon				#interrupt-cells = <2>;
553*b4cf4102SNicolas Le Bayon				reg = <0 0x400>;
554*b4cf4102SNicolas Le Bayon				clocks = <&rcc CK_BUS_GPIOZ>;
555*b4cf4102SNicolas Le Bayon				st,bank-name = "GPIOZ";
556*b4cf4102SNicolas Le Bayon				st,bank-ioport = <11>;
557*b4cf4102SNicolas Le Bayon				status = "disabled";
558*b4cf4102SNicolas Le Bayon			};
559*b4cf4102SNicolas Le Bayon		};
560*b4cf4102SNicolas Le Bayon	};
561*b4cf4102SNicolas Le Bayon};
562