xref: /rk3399_ARM-atf/fdts/stm32mp131.dtsi (revision 3b99ab6e370a01caec14bc5422a86001eaf291b8)
1*3b99ab6eSYann Gautier// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2*3b99ab6eSYann Gautier/*
3*3b99ab6eSYann Gautier * Copyright (C) STMicroelectronics 2022 - All Rights Reserved
4*3b99ab6eSYann Gautier * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
5*3b99ab6eSYann Gautier */
6*3b99ab6eSYann Gautier#include <dt-bindings/clock/stm32mp13-clks.h>
7*3b99ab6eSYann Gautier#include <dt-bindings/interrupt-controller/arm-gic.h>
8*3b99ab6eSYann Gautier#include <dt-bindings/reset/stm32mp13-resets.h>
9*3b99ab6eSYann Gautier
10*3b99ab6eSYann Gautier/ {
11*3b99ab6eSYann Gautier	#address-cells = <1>;
12*3b99ab6eSYann Gautier	#size-cells = <1>;
13*3b99ab6eSYann Gautier
14*3b99ab6eSYann Gautier	cpus {
15*3b99ab6eSYann Gautier		#address-cells = <1>;
16*3b99ab6eSYann Gautier		#size-cells = <0>;
17*3b99ab6eSYann Gautier
18*3b99ab6eSYann Gautier		cpu0: cpu@0 {
19*3b99ab6eSYann Gautier			compatible = "arm,cortex-a7";
20*3b99ab6eSYann Gautier			device_type = "cpu";
21*3b99ab6eSYann Gautier			reg = <0>;
22*3b99ab6eSYann Gautier			clocks = <&rcc CK_MPU>;
23*3b99ab6eSYann Gautier			clock-names = "cpu";
24*3b99ab6eSYann Gautier			nvmem-cells = <&part_number_otp>;
25*3b99ab6eSYann Gautier			nvmem-cell-names = "part_number";
26*3b99ab6eSYann Gautier		};
27*3b99ab6eSYann Gautier	};
28*3b99ab6eSYann Gautier
29*3b99ab6eSYann Gautier	nvmem_layout: nvmem_layout@0 {
30*3b99ab6eSYann Gautier		compatible = "st,stm32-nvmem-layout";
31*3b99ab6eSYann Gautier
32*3b99ab6eSYann Gautier		nvmem-cells = <&cfg0_otp>,
33*3b99ab6eSYann Gautier			      <&part_number_otp>,
34*3b99ab6eSYann Gautier			      <&monotonic_otp>,
35*3b99ab6eSYann Gautier			      <&nand_otp>,
36*3b99ab6eSYann Gautier			      <&nand2_otp>,
37*3b99ab6eSYann Gautier			      <&uid_otp>,
38*3b99ab6eSYann Gautier			      <&hw2_otp>;
39*3b99ab6eSYann Gautier
40*3b99ab6eSYann Gautier		nvmem-cell-names = "cfg0_otp",
41*3b99ab6eSYann Gautier				   "part_number_otp",
42*3b99ab6eSYann Gautier				   "monotonic_otp",
43*3b99ab6eSYann Gautier				   "nand_otp",
44*3b99ab6eSYann Gautier				   "nand2_otp",
45*3b99ab6eSYann Gautier				   "uid_otp",
46*3b99ab6eSYann Gautier				   "hw2_otp";
47*3b99ab6eSYann Gautier	};
48*3b99ab6eSYann Gautier
49*3b99ab6eSYann Gautier	clocks {
50*3b99ab6eSYann Gautier		clk_csi: clk-csi {
51*3b99ab6eSYann Gautier			#clock-cells = <0>;
52*3b99ab6eSYann Gautier			compatible = "fixed-clock";
53*3b99ab6eSYann Gautier			clock-frequency = <4000000>;
54*3b99ab6eSYann Gautier		};
55*3b99ab6eSYann Gautier
56*3b99ab6eSYann Gautier		clk_hse: clk-hse {
57*3b99ab6eSYann Gautier			#clock-cells = <0>;
58*3b99ab6eSYann Gautier			compatible = "fixed-clock";
59*3b99ab6eSYann Gautier			clock-frequency = <24000000>;
60*3b99ab6eSYann Gautier		};
61*3b99ab6eSYann Gautier
62*3b99ab6eSYann Gautier		clk_hsi: clk-hsi {
63*3b99ab6eSYann Gautier			#clock-cells = <0>;
64*3b99ab6eSYann Gautier			compatible = "fixed-clock";
65*3b99ab6eSYann Gautier			clock-frequency = <64000000>;
66*3b99ab6eSYann Gautier		};
67*3b99ab6eSYann Gautier
68*3b99ab6eSYann Gautier		clk_lse: clk-lse {
69*3b99ab6eSYann Gautier			#clock-cells = <0>;
70*3b99ab6eSYann Gautier			compatible = "fixed-clock";
71*3b99ab6eSYann Gautier			clock-frequency = <32768>;
72*3b99ab6eSYann Gautier		};
73*3b99ab6eSYann Gautier
74*3b99ab6eSYann Gautier		clk_lsi: clk-lsi {
75*3b99ab6eSYann Gautier			#clock-cells = <0>;
76*3b99ab6eSYann Gautier			compatible = "fixed-clock";
77*3b99ab6eSYann Gautier			clock-frequency = <32000>;
78*3b99ab6eSYann Gautier		};
79*3b99ab6eSYann Gautier	};
80*3b99ab6eSYann Gautier
81*3b99ab6eSYann Gautier	intc: interrupt-controller@a0021000 {
82*3b99ab6eSYann Gautier		compatible = "arm,cortex-a7-gic";
83*3b99ab6eSYann Gautier		#interrupt-cells = <3>;
84*3b99ab6eSYann Gautier		interrupt-controller;
85*3b99ab6eSYann Gautier		reg = <0xa0021000 0x1000>,
86*3b99ab6eSYann Gautier		      <0xa0022000 0x2000>;
87*3b99ab6eSYann Gautier	};
88*3b99ab6eSYann Gautier
89*3b99ab6eSYann Gautier	psci {
90*3b99ab6eSYann Gautier		compatible = "arm,psci-1.0";
91*3b99ab6eSYann Gautier		method = "smc";
92*3b99ab6eSYann Gautier	};
93*3b99ab6eSYann Gautier
94*3b99ab6eSYann Gautier	soc {
95*3b99ab6eSYann Gautier		compatible = "simple-bus";
96*3b99ab6eSYann Gautier		#address-cells = <1>;
97*3b99ab6eSYann Gautier		#size-cells = <1>;
98*3b99ab6eSYann Gautier		interrupt-parent = <&intc>;
99*3b99ab6eSYann Gautier		ranges;
100*3b99ab6eSYann Gautier
101*3b99ab6eSYann Gautier		usart3: serial@4000f000 {
102*3b99ab6eSYann Gautier			compatible = "st,stm32h7-uart";
103*3b99ab6eSYann Gautier			reg = <0x4000f000 0x400>;
104*3b99ab6eSYann Gautier			interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
105*3b99ab6eSYann Gautier			clocks = <&rcc USART3_K>;
106*3b99ab6eSYann Gautier			resets = <&rcc USART3_R>;
107*3b99ab6eSYann Gautier			status = "disabled";
108*3b99ab6eSYann Gautier		};
109*3b99ab6eSYann Gautier
110*3b99ab6eSYann Gautier		uart4: serial@40010000 {
111*3b99ab6eSYann Gautier			compatible = "st,stm32h7-uart";
112*3b99ab6eSYann Gautier			reg = <0x40010000 0x400>;
113*3b99ab6eSYann Gautier			interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
114*3b99ab6eSYann Gautier			clocks = <&rcc UART4_K>;
115*3b99ab6eSYann Gautier			resets = <&rcc UART4_R>;
116*3b99ab6eSYann Gautier			status = "disabled";
117*3b99ab6eSYann Gautier		};
118*3b99ab6eSYann Gautier
119*3b99ab6eSYann Gautier		uart5: serial@40011000 {
120*3b99ab6eSYann Gautier			compatible = "st,stm32h7-uart";
121*3b99ab6eSYann Gautier			reg = <0x40011000 0x400>;
122*3b99ab6eSYann Gautier			interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
123*3b99ab6eSYann Gautier			clocks = <&rcc UART5_K>;
124*3b99ab6eSYann Gautier			resets = <&rcc UART5_R>;
125*3b99ab6eSYann Gautier			status = "disabled";
126*3b99ab6eSYann Gautier		};
127*3b99ab6eSYann Gautier
128*3b99ab6eSYann Gautier		uart7: serial@40018000 {
129*3b99ab6eSYann Gautier			compatible = "st,stm32h7-uart";
130*3b99ab6eSYann Gautier			reg = <0x40018000 0x400>;
131*3b99ab6eSYann Gautier			interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
132*3b99ab6eSYann Gautier			clocks = <&rcc UART7_K>;
133*3b99ab6eSYann Gautier			resets = <&rcc UART7_R>;
134*3b99ab6eSYann Gautier			status = "disabled";
135*3b99ab6eSYann Gautier		};
136*3b99ab6eSYann Gautier
137*3b99ab6eSYann Gautier		uart8: serial@40019000 {
138*3b99ab6eSYann Gautier			compatible = "st,stm32h7-uart";
139*3b99ab6eSYann Gautier			reg = <0x40019000 0x400>;
140*3b99ab6eSYann Gautier			interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
141*3b99ab6eSYann Gautier			clocks = <&rcc UART8_K>;
142*3b99ab6eSYann Gautier			resets = <&rcc UART8_R>;
143*3b99ab6eSYann Gautier			status = "disabled";
144*3b99ab6eSYann Gautier		};
145*3b99ab6eSYann Gautier
146*3b99ab6eSYann Gautier		usart6: serial@44003000 {
147*3b99ab6eSYann Gautier			compatible = "st,stm32h7-uart";
148*3b99ab6eSYann Gautier			reg = <0x44003000 0x400>;
149*3b99ab6eSYann Gautier			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
150*3b99ab6eSYann Gautier			clocks = <&rcc USART6_K>;
151*3b99ab6eSYann Gautier			resets = <&rcc USART6_R>;
152*3b99ab6eSYann Gautier			status = "disabled";
153*3b99ab6eSYann Gautier		};
154*3b99ab6eSYann Gautier
155*3b99ab6eSYann Gautier		usbotg_hs: usb-otg@49000000 {
156*3b99ab6eSYann Gautier			compatible = "st,stm32mp15-hsotg", "snps,dwc2";
157*3b99ab6eSYann Gautier			reg = <0x49000000 0x40000>;
158*3b99ab6eSYann Gautier			clocks = <&rcc USBO_K>;
159*3b99ab6eSYann Gautier			clock-names = "otg";
160*3b99ab6eSYann Gautier			resets = <&rcc USBO_R>;
161*3b99ab6eSYann Gautier			reset-names = "dwc2";
162*3b99ab6eSYann Gautier			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
163*3b99ab6eSYann Gautier			g-rx-fifo-size = <512>;
164*3b99ab6eSYann Gautier			g-np-tx-fifo-size = <32>;
165*3b99ab6eSYann Gautier			g-tx-fifo-size = <256 16 16 16 16 16 16 16>;
166*3b99ab6eSYann Gautier			dr_mode = "otg";
167*3b99ab6eSYann Gautier			usb33d-supply = <&usb33>;
168*3b99ab6eSYann Gautier			status = "disabled";
169*3b99ab6eSYann Gautier		};
170*3b99ab6eSYann Gautier
171*3b99ab6eSYann Gautier		usart1: serial@4c000000 {
172*3b99ab6eSYann Gautier			compatible = "st,stm32h7-uart";
173*3b99ab6eSYann Gautier			reg = <0x4c000000 0x400>;
174*3b99ab6eSYann Gautier			interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
175*3b99ab6eSYann Gautier			clocks = <&rcc USART1_K>;
176*3b99ab6eSYann Gautier			resets = <&rcc USART1_R>;
177*3b99ab6eSYann Gautier			status = "disabled";
178*3b99ab6eSYann Gautier		};
179*3b99ab6eSYann Gautier
180*3b99ab6eSYann Gautier		usart2: serial@4c001000 {
181*3b99ab6eSYann Gautier			compatible = "st,stm32h7-uart";
182*3b99ab6eSYann Gautier			reg = <0x4c001000 0x400>;
183*3b99ab6eSYann Gautier			interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
184*3b99ab6eSYann Gautier			clocks = <&rcc USART2_K>;
185*3b99ab6eSYann Gautier			resets = <&rcc USART2_R>;
186*3b99ab6eSYann Gautier			status = "disabled";
187*3b99ab6eSYann Gautier		};
188*3b99ab6eSYann Gautier
189*3b99ab6eSYann Gautier		i2c3: i2c@4c004000 {
190*3b99ab6eSYann Gautier			compatible = "st,stm32mp13-i2c";
191*3b99ab6eSYann Gautier			reg = <0x4c004000 0x400>;
192*3b99ab6eSYann Gautier			interrupt-names = "event", "error";
193*3b99ab6eSYann Gautier			interrupts-extended = <&exti 23 IRQ_TYPE_LEVEL_HIGH>,
194*3b99ab6eSYann Gautier					      <&intc GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
195*3b99ab6eSYann Gautier			clocks = <&rcc I2C3_K>;
196*3b99ab6eSYann Gautier			resets = <&rcc I2C3_R>;
197*3b99ab6eSYann Gautier			#address-cells = <1>;
198*3b99ab6eSYann Gautier			#size-cells = <0>;
199*3b99ab6eSYann Gautier			st,syscfg-fmp = <&syscfg 0x4 0x4>;
200*3b99ab6eSYann Gautier			i2c-analog-filter;
201*3b99ab6eSYann Gautier			status = "disabled";
202*3b99ab6eSYann Gautier		};
203*3b99ab6eSYann Gautier
204*3b99ab6eSYann Gautier		i2c4: i2c@4c005000 {
205*3b99ab6eSYann Gautier			compatible = "st,stm32mp13-i2c";
206*3b99ab6eSYann Gautier			reg = <0x4c005000 0x400>;
207*3b99ab6eSYann Gautier			interrupt-names = "event", "error";
208*3b99ab6eSYann Gautier			interrupts-extended = <&exti 24 IRQ_TYPE_LEVEL_HIGH>,
209*3b99ab6eSYann Gautier					      <&intc GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
210*3b99ab6eSYann Gautier			clocks = <&rcc I2C4_K>;
211*3b99ab6eSYann Gautier			resets = <&rcc I2C4_R>;
212*3b99ab6eSYann Gautier			#address-cells = <1>;
213*3b99ab6eSYann Gautier			#size-cells = <0>;
214*3b99ab6eSYann Gautier			st,syscfg-fmp = <&syscfg 0x4 0x8>;
215*3b99ab6eSYann Gautier			i2c-analog-filter;
216*3b99ab6eSYann Gautier			status = "disabled";
217*3b99ab6eSYann Gautier		};
218*3b99ab6eSYann Gautier
219*3b99ab6eSYann Gautier		i2c5: i2c@4c006000 {
220*3b99ab6eSYann Gautier			compatible = "st,stm32mp13-i2c";
221*3b99ab6eSYann Gautier			reg = <0x4c006000 0x400>;
222*3b99ab6eSYann Gautier			interrupt-names = "event", "error";
223*3b99ab6eSYann Gautier			interrupts-extended = <&exti 25 IRQ_TYPE_LEVEL_HIGH>,
224*3b99ab6eSYann Gautier					      <&intc GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
225*3b99ab6eSYann Gautier			clocks = <&rcc I2C5_K>;
226*3b99ab6eSYann Gautier			resets = <&rcc I2C5_R>;
227*3b99ab6eSYann Gautier			#address-cells = <1>;
228*3b99ab6eSYann Gautier			#size-cells = <0>;
229*3b99ab6eSYann Gautier			st,syscfg-fmp = <&syscfg 0x4 0x10>;
230*3b99ab6eSYann Gautier			i2c-analog-filter;
231*3b99ab6eSYann Gautier			status = "disabled";
232*3b99ab6eSYann Gautier		};
233*3b99ab6eSYann Gautier
234*3b99ab6eSYann Gautier		rcc: rcc@50000000 {
235*3b99ab6eSYann Gautier			compatible = "st,stm32mp13-rcc", "syscon";
236*3b99ab6eSYann Gautier			reg = <0x50000000 0x1000>;
237*3b99ab6eSYann Gautier			#address-cells = <1>;
238*3b99ab6eSYann Gautier			#size-cells = <0>;
239*3b99ab6eSYann Gautier			#clock-cells = <1>;
240*3b99ab6eSYann Gautier			#reset-cells = <1>;
241*3b99ab6eSYann Gautier			interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
242*3b99ab6eSYann Gautier			secure-interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
243*3b99ab6eSYann Gautier			secure-interrupt-names = "wakeup";
244*3b99ab6eSYann Gautier		};
245*3b99ab6eSYann Gautier
246*3b99ab6eSYann Gautier		pwr_regulators: pwr@50001000 {
247*3b99ab6eSYann Gautier			compatible = "st,stm32mp1,pwr-reg";
248*3b99ab6eSYann Gautier			reg = <0x50001000 0x10>;
249*3b99ab6eSYann Gautier
250*3b99ab6eSYann Gautier			reg11: reg11 {
251*3b99ab6eSYann Gautier				regulator-name = "reg11";
252*3b99ab6eSYann Gautier				regulator-min-microvolt = <1100000>;
253*3b99ab6eSYann Gautier				regulator-max-microvolt = <1100000>;
254*3b99ab6eSYann Gautier			};
255*3b99ab6eSYann Gautier
256*3b99ab6eSYann Gautier			reg18: reg18 {
257*3b99ab6eSYann Gautier				regulator-name = "reg18";
258*3b99ab6eSYann Gautier				regulator-min-microvolt = <1800000>;
259*3b99ab6eSYann Gautier				regulator-max-microvolt = <1800000>;
260*3b99ab6eSYann Gautier			};
261*3b99ab6eSYann Gautier
262*3b99ab6eSYann Gautier			usb33: usb33 {
263*3b99ab6eSYann Gautier				regulator-name = "usb33";
264*3b99ab6eSYann Gautier				regulator-min-microvolt = <3300000>;
265*3b99ab6eSYann Gautier				regulator-max-microvolt = <3300000>;
266*3b99ab6eSYann Gautier			};
267*3b99ab6eSYann Gautier		};
268*3b99ab6eSYann Gautier
269*3b99ab6eSYann Gautier		exti: interrupt-controller@5000d000 {
270*3b99ab6eSYann Gautier			compatible = "st,stm32mp13-exti", "syscon";
271*3b99ab6eSYann Gautier			interrupt-controller;
272*3b99ab6eSYann Gautier			#interrupt-cells = <2>;
273*3b99ab6eSYann Gautier			reg = <0x5000d000 0x400>;
274*3b99ab6eSYann Gautier		};
275*3b99ab6eSYann Gautier
276*3b99ab6eSYann Gautier		syscfg: syscon@50020000 {
277*3b99ab6eSYann Gautier			compatible = "st,stm32mp157-syscfg", "syscon";
278*3b99ab6eSYann Gautier			reg = <0x50020000 0x400>;
279*3b99ab6eSYann Gautier			clocks = <&rcc SYSCFG>;
280*3b99ab6eSYann Gautier		};
281*3b99ab6eSYann Gautier
282*3b99ab6eSYann Gautier		vrefbuf: vrefbuf@50025000 {
283*3b99ab6eSYann Gautier			compatible = "st,stm32-vrefbuf";
284*3b99ab6eSYann Gautier			reg = <0x50025000 0x8>;
285*3b99ab6eSYann Gautier			regulator-min-microvolt = <1500000>;
286*3b99ab6eSYann Gautier			regulator-max-microvolt = <2500000>;
287*3b99ab6eSYann Gautier			clocks = <&rcc VREF>;
288*3b99ab6eSYann Gautier			status = "disabled";
289*3b99ab6eSYann Gautier		};
290*3b99ab6eSYann Gautier
291*3b99ab6eSYann Gautier		hash: hash@54003000 {
292*3b99ab6eSYann Gautier			compatible = "st,stm32mp13-hash";
293*3b99ab6eSYann Gautier			reg = <0x54003000 0x400>;
294*3b99ab6eSYann Gautier			clocks = <&rcc HASH1>;
295*3b99ab6eSYann Gautier			resets = <&rcc HASH1_R>;
296*3b99ab6eSYann Gautier			status = "disabled";
297*3b99ab6eSYann Gautier		};
298*3b99ab6eSYann Gautier
299*3b99ab6eSYann Gautier		rng: rng@54004000 {
300*3b99ab6eSYann Gautier			compatible = "st,stm32mp13-rng";
301*3b99ab6eSYann Gautier			reg = <0x54004000 0x400>;
302*3b99ab6eSYann Gautier			clocks = <&rcc RNG1_K>;
303*3b99ab6eSYann Gautier			resets = <&rcc RNG1_R>;
304*3b99ab6eSYann Gautier			status = "disabled";
305*3b99ab6eSYann Gautier		};
306*3b99ab6eSYann Gautier
307*3b99ab6eSYann Gautier		fmc: memory-controller@58002000 {
308*3b99ab6eSYann Gautier			#address-cells = <2>;
309*3b99ab6eSYann Gautier			#size-cells = <1>;
310*3b99ab6eSYann Gautier			compatible = "st,stm32mp1-fmc2-ebi";
311*3b99ab6eSYann Gautier			reg = <0x58002000 0x1000>;
312*3b99ab6eSYann Gautier			clocks = <&rcc FMC_K>;
313*3b99ab6eSYann Gautier			resets = <&rcc FMC_R>;
314*3b99ab6eSYann Gautier			status = "disabled";
315*3b99ab6eSYann Gautier
316*3b99ab6eSYann Gautier			ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */
317*3b99ab6eSYann Gautier				 <1 0 0x64000000 0x04000000>, /* EBI CS 2 */
318*3b99ab6eSYann Gautier				 <2 0 0x68000000 0x04000000>, /* EBI CS 3 */
319*3b99ab6eSYann Gautier				 <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */
320*3b99ab6eSYann Gautier				 <4 0 0x80000000 0x10000000>; /* NAND */
321*3b99ab6eSYann Gautier
322*3b99ab6eSYann Gautier			nand-controller@4,0 {
323*3b99ab6eSYann Gautier				#address-cells = <1>;
324*3b99ab6eSYann Gautier				#size-cells = <0>;
325*3b99ab6eSYann Gautier				compatible = "st,stm32mp1-fmc2-nfc";
326*3b99ab6eSYann Gautier				reg = <4 0x00000000 0x1000>,
327*3b99ab6eSYann Gautier				      <4 0x08010000 0x1000>,
328*3b99ab6eSYann Gautier				      <4 0x08020000 0x1000>,
329*3b99ab6eSYann Gautier				      <4 0x01000000 0x1000>,
330*3b99ab6eSYann Gautier				      <4 0x09010000 0x1000>,
331*3b99ab6eSYann Gautier				      <4 0x09020000 0x1000>;
332*3b99ab6eSYann Gautier				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
333*3b99ab6eSYann Gautier				status = "disabled";
334*3b99ab6eSYann Gautier			};
335*3b99ab6eSYann Gautier		};
336*3b99ab6eSYann Gautier
337*3b99ab6eSYann Gautier		qspi: spi@58003000 {
338*3b99ab6eSYann Gautier			compatible = "st,stm32f469-qspi";
339*3b99ab6eSYann Gautier			reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
340*3b99ab6eSYann Gautier			reg-names = "qspi", "qspi_mm";
341*3b99ab6eSYann Gautier			interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
342*3b99ab6eSYann Gautier			clocks = <&rcc QSPI_K>;
343*3b99ab6eSYann Gautier			resets = <&rcc QSPI_R>;
344*3b99ab6eSYann Gautier			status = "disabled";
345*3b99ab6eSYann Gautier		};
346*3b99ab6eSYann Gautier
347*3b99ab6eSYann Gautier		sdmmc1: mmc@58005000 {
348*3b99ab6eSYann Gautier			compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
349*3b99ab6eSYann Gautier			arm,primecell-periphid = <0x20253180>;
350*3b99ab6eSYann Gautier			reg = <0x58005000 0x1000>, <0x58006000 0x1000>;
351*3b99ab6eSYann Gautier			clocks = <&rcc SDMMC1_K>;
352*3b99ab6eSYann Gautier			clock-names = "apb_pclk";
353*3b99ab6eSYann Gautier			resets = <&rcc SDMMC1_R>;
354*3b99ab6eSYann Gautier			cap-sd-highspeed;
355*3b99ab6eSYann Gautier			cap-mmc-highspeed;
356*3b99ab6eSYann Gautier			max-frequency = <120000000>;
357*3b99ab6eSYann Gautier			status = "disabled";
358*3b99ab6eSYann Gautier		};
359*3b99ab6eSYann Gautier
360*3b99ab6eSYann Gautier		sdmmc2: mmc@58007000 {
361*3b99ab6eSYann Gautier			compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
362*3b99ab6eSYann Gautier			arm,primecell-periphid = <0x20253180>;
363*3b99ab6eSYann Gautier			reg = <0x58007000 0x1000>, <0x58008000 0x1000>;
364*3b99ab6eSYann Gautier			clocks = <&rcc SDMMC2_K>;
365*3b99ab6eSYann Gautier			clock-names = "apb_pclk";
366*3b99ab6eSYann Gautier			resets = <&rcc SDMMC2_R>;
367*3b99ab6eSYann Gautier			cap-sd-highspeed;
368*3b99ab6eSYann Gautier			cap-mmc-highspeed;
369*3b99ab6eSYann Gautier			max-frequency = <120000000>;
370*3b99ab6eSYann Gautier			status = "disabled";
371*3b99ab6eSYann Gautier		};
372*3b99ab6eSYann Gautier
373*3b99ab6eSYann Gautier		crc1: crc@58009000 {
374*3b99ab6eSYann Gautier			compatible = "st,stm32f7-crc";
375*3b99ab6eSYann Gautier			reg = <0x58009000 0x400>;
376*3b99ab6eSYann Gautier			clocks = <&rcc CRC1>;
377*3b99ab6eSYann Gautier		};
378*3b99ab6eSYann Gautier
379*3b99ab6eSYann Gautier		usbh_ohci: usbh-ohci@5800c000 {
380*3b99ab6eSYann Gautier			compatible = "generic-ohci";
381*3b99ab6eSYann Gautier			reg = <0x5800c000 0x1000>;
382*3b99ab6eSYann Gautier			clocks = <&rcc USBH>;
383*3b99ab6eSYann Gautier			resets = <&rcc USBH_R>;
384*3b99ab6eSYann Gautier			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
385*3b99ab6eSYann Gautier			status = "disabled";
386*3b99ab6eSYann Gautier		};
387*3b99ab6eSYann Gautier
388*3b99ab6eSYann Gautier		usbh_ehci: usbh-ehci@5800d000 {
389*3b99ab6eSYann Gautier			compatible = "generic-ehci";
390*3b99ab6eSYann Gautier			reg = <0x5800d000 0x1000>;
391*3b99ab6eSYann Gautier			clocks = <&rcc USBH>;
392*3b99ab6eSYann Gautier			resets = <&rcc USBH_R>;
393*3b99ab6eSYann Gautier			interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
394*3b99ab6eSYann Gautier			companion = <&usbh_ohci>;
395*3b99ab6eSYann Gautier			status = "disabled";
396*3b99ab6eSYann Gautier		};
397*3b99ab6eSYann Gautier
398*3b99ab6eSYann Gautier		iwdg2: watchdog@5a002000 {
399*3b99ab6eSYann Gautier			compatible = "st,stm32mp1-iwdg";
400*3b99ab6eSYann Gautier			reg = <0x5a002000 0x400>;
401*3b99ab6eSYann Gautier			clocks = <&rcc IWDG2>, <&rcc CK_LSI>;
402*3b99ab6eSYann Gautier			clock-names = "pclk", "lsi";
403*3b99ab6eSYann Gautier			status = "disabled";
404*3b99ab6eSYann Gautier		};
405*3b99ab6eSYann Gautier
406*3b99ab6eSYann Gautier		usbphyc: usbphyc@5a006000 {
407*3b99ab6eSYann Gautier			#address-cells = <1>;
408*3b99ab6eSYann Gautier			#size-cells = <0>;
409*3b99ab6eSYann Gautier			#clock-cells = <0>;
410*3b99ab6eSYann Gautier			compatible = "st,stm32mp1-usbphyc";
411*3b99ab6eSYann Gautier			reg = <0x5a006000 0x1000>;
412*3b99ab6eSYann Gautier			clocks = <&rcc USBPHY_K>;
413*3b99ab6eSYann Gautier			resets = <&rcc USBPHY_R>;
414*3b99ab6eSYann Gautier			vdda1v1-supply = <&reg11>;
415*3b99ab6eSYann Gautier			vdda1v8-supply = <&reg18>;
416*3b99ab6eSYann Gautier			status = "disabled";
417*3b99ab6eSYann Gautier
418*3b99ab6eSYann Gautier			usbphyc_port0: usb-phy@0 {
419*3b99ab6eSYann Gautier				#phy-cells = <0>;
420*3b99ab6eSYann Gautier				reg = <0>;
421*3b99ab6eSYann Gautier			};
422*3b99ab6eSYann Gautier
423*3b99ab6eSYann Gautier			usbphyc_port1: usb-phy@1 {
424*3b99ab6eSYann Gautier				#phy-cells = <1>;
425*3b99ab6eSYann Gautier				reg = <1>;
426*3b99ab6eSYann Gautier			};
427*3b99ab6eSYann Gautier		};
428*3b99ab6eSYann Gautier
429*3b99ab6eSYann Gautier		iwdg1: watchdog@5c003000 {
430*3b99ab6eSYann Gautier			compatible = "st,stm32mp1-iwdg";
431*3b99ab6eSYann Gautier			reg = <0x5c003000 0x400>;
432*3b99ab6eSYann Gautier			interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
433*3b99ab6eSYann Gautier			clocks = <&rcc IWDG1>, <&rcc CK_LSI>;
434*3b99ab6eSYann Gautier			clock-names = "pclk", "lsi";
435*3b99ab6eSYann Gautier			status = "disabled";
436*3b99ab6eSYann Gautier		};
437*3b99ab6eSYann Gautier
438*3b99ab6eSYann Gautier		bsec: efuse@5c005000 {
439*3b99ab6eSYann Gautier			compatible = "st,stm32mp15-bsec";
440*3b99ab6eSYann Gautier			reg = <0x5c005000 0x400>;
441*3b99ab6eSYann Gautier			#address-cells = <1>;
442*3b99ab6eSYann Gautier			#size-cells = <1>;
443*3b99ab6eSYann Gautier
444*3b99ab6eSYann Gautier			cfg0_otp: cfg0_otp@0 {
445*3b99ab6eSYann Gautier				reg = <0x0 0x2>;
446*3b99ab6eSYann Gautier			};
447*3b99ab6eSYann Gautier			part_number_otp: part_number_otp@4 {
448*3b99ab6eSYann Gautier				reg = <0x4 0x2>;
449*3b99ab6eSYann Gautier			};
450*3b99ab6eSYann Gautier			monotonic_otp: monotonic_otp@10 {
451*3b99ab6eSYann Gautier				reg = <0x10 0x4>;
452*3b99ab6eSYann Gautier			};
453*3b99ab6eSYann Gautier			nand_otp: cfg9_otp@24 {
454*3b99ab6eSYann Gautier				reg = <0x24 0x4>;
455*3b99ab6eSYann Gautier			};
456*3b99ab6eSYann Gautier			nand2_otp: cfg10_otp@28 {
457*3b99ab6eSYann Gautier				reg = <0x28 0x4>;
458*3b99ab6eSYann Gautier			};
459*3b99ab6eSYann Gautier			uid_otp: uid_otp@34 {
460*3b99ab6eSYann Gautier				reg = <0x34 0xc>;
461*3b99ab6eSYann Gautier			};
462*3b99ab6eSYann Gautier			hw2_otp: hw2_otp@48 {
463*3b99ab6eSYann Gautier				reg = <0x48 0x4>;
464*3b99ab6eSYann Gautier			};
465*3b99ab6eSYann Gautier			ts_cal1: calib@5c {
466*3b99ab6eSYann Gautier				reg = <0x5c 0x2>;
467*3b99ab6eSYann Gautier			};
468*3b99ab6eSYann Gautier			ts_cal2: calib@5e {
469*3b99ab6eSYann Gautier				reg = <0x5e 0x2>;
470*3b99ab6eSYann Gautier			};
471*3b99ab6eSYann Gautier			pkh_otp: pkh_otp@60 {
472*3b99ab6eSYann Gautier				reg = <0x60 0x20>;
473*3b99ab6eSYann Gautier			};
474*3b99ab6eSYann Gautier			mac_addr: mac_addr@e4 {
475*3b99ab6eSYann Gautier				reg = <0xe4 0xc>;
476*3b99ab6eSYann Gautier				st,non-secure-otp;
477*3b99ab6eSYann Gautier			};
478*3b99ab6eSYann Gautier		};
479*3b99ab6eSYann Gautier
480*3b99ab6eSYann Gautier		tamp: tamp@5c00a000 {
481*3b99ab6eSYann Gautier			reg = <0x5c00a000 0x400>;
482*3b99ab6eSYann Gautier		};
483*3b99ab6eSYann Gautier
484*3b99ab6eSYann Gautier		/*
485*3b99ab6eSYann Gautier		 * Break node order to solve dependency probe issue between
486*3b99ab6eSYann Gautier		 * pinctrl and exti.
487*3b99ab6eSYann Gautier		 */
488*3b99ab6eSYann Gautier		pinctrl: pin-controller@50002000 {
489*3b99ab6eSYann Gautier			#address-cells = <1>;
490*3b99ab6eSYann Gautier			#size-cells = <1>;
491*3b99ab6eSYann Gautier			compatible = "st,stm32mp135-pinctrl";
492*3b99ab6eSYann Gautier			ranges = <0 0x50002000 0x8400>;
493*3b99ab6eSYann Gautier			interrupt-parent = <&exti>;
494*3b99ab6eSYann Gautier			st,syscfg = <&exti 0x60 0xff>;
495*3b99ab6eSYann Gautier			pins-are-numbered;
496*3b99ab6eSYann Gautier
497*3b99ab6eSYann Gautier			gpioa: gpio@50002000 {
498*3b99ab6eSYann Gautier				gpio-controller;
499*3b99ab6eSYann Gautier				#gpio-cells = <2>;
500*3b99ab6eSYann Gautier				interrupt-controller;
501*3b99ab6eSYann Gautier				#interrupt-cells = <2>;
502*3b99ab6eSYann Gautier				reg = <0x0 0x400>;
503*3b99ab6eSYann Gautier				clocks = <&rcc GPIOA>;
504*3b99ab6eSYann Gautier				st,bank-name = "GPIOA";
505*3b99ab6eSYann Gautier				ngpios = <16>;
506*3b99ab6eSYann Gautier				gpio-ranges = <&pinctrl 0 0 16>;
507*3b99ab6eSYann Gautier			};
508*3b99ab6eSYann Gautier
509*3b99ab6eSYann Gautier			gpiob: gpio@50003000 {
510*3b99ab6eSYann Gautier				gpio-controller;
511*3b99ab6eSYann Gautier				#gpio-cells = <2>;
512*3b99ab6eSYann Gautier				interrupt-controller;
513*3b99ab6eSYann Gautier				#interrupt-cells = <2>;
514*3b99ab6eSYann Gautier				reg = <0x1000 0x400>;
515*3b99ab6eSYann Gautier				clocks = <&rcc GPIOB>;
516*3b99ab6eSYann Gautier				st,bank-name = "GPIOB";
517*3b99ab6eSYann Gautier				ngpios = <16>;
518*3b99ab6eSYann Gautier				gpio-ranges = <&pinctrl 0 16 16>;
519*3b99ab6eSYann Gautier			};
520*3b99ab6eSYann Gautier
521*3b99ab6eSYann Gautier			gpioc: gpio@50004000 {
522*3b99ab6eSYann Gautier				gpio-controller;
523*3b99ab6eSYann Gautier				#gpio-cells = <2>;
524*3b99ab6eSYann Gautier				interrupt-controller;
525*3b99ab6eSYann Gautier				#interrupt-cells = <2>;
526*3b99ab6eSYann Gautier				reg = <0x2000 0x400>;
527*3b99ab6eSYann Gautier				clocks = <&rcc GPIOC>;
528*3b99ab6eSYann Gautier				st,bank-name = "GPIOC";
529*3b99ab6eSYann Gautier				ngpios = <16>;
530*3b99ab6eSYann Gautier				gpio-ranges = <&pinctrl 0 32 16>;
531*3b99ab6eSYann Gautier			};
532*3b99ab6eSYann Gautier
533*3b99ab6eSYann Gautier			gpiod: gpio@50005000 {
534*3b99ab6eSYann Gautier				gpio-controller;
535*3b99ab6eSYann Gautier				#gpio-cells = <2>;
536*3b99ab6eSYann Gautier				interrupt-controller;
537*3b99ab6eSYann Gautier				#interrupt-cells = <2>;
538*3b99ab6eSYann Gautier				reg = <0x3000 0x400>;
539*3b99ab6eSYann Gautier				clocks = <&rcc GPIOD>;
540*3b99ab6eSYann Gautier				st,bank-name = "GPIOD";
541*3b99ab6eSYann Gautier				ngpios = <16>;
542*3b99ab6eSYann Gautier				gpio-ranges = <&pinctrl 0 48 16>;
543*3b99ab6eSYann Gautier			};
544*3b99ab6eSYann Gautier
545*3b99ab6eSYann Gautier			gpioe: gpio@50006000 {
546*3b99ab6eSYann Gautier				gpio-controller;
547*3b99ab6eSYann Gautier				#gpio-cells = <2>;
548*3b99ab6eSYann Gautier				interrupt-controller;
549*3b99ab6eSYann Gautier				#interrupt-cells = <2>;
550*3b99ab6eSYann Gautier				reg = <0x4000 0x400>;
551*3b99ab6eSYann Gautier				clocks = <&rcc GPIOE>;
552*3b99ab6eSYann Gautier				st,bank-name = "GPIOE";
553*3b99ab6eSYann Gautier				ngpios = <16>;
554*3b99ab6eSYann Gautier				gpio-ranges = <&pinctrl 0 64 16>;
555*3b99ab6eSYann Gautier			};
556*3b99ab6eSYann Gautier
557*3b99ab6eSYann Gautier			gpiof: gpio@50007000 {
558*3b99ab6eSYann Gautier				gpio-controller;
559*3b99ab6eSYann Gautier				#gpio-cells = <2>;
560*3b99ab6eSYann Gautier				interrupt-controller;
561*3b99ab6eSYann Gautier				#interrupt-cells = <2>;
562*3b99ab6eSYann Gautier				reg = <0x5000 0x400>;
563*3b99ab6eSYann Gautier				clocks = <&rcc GPIOF>;
564*3b99ab6eSYann Gautier				st,bank-name = "GPIOF";
565*3b99ab6eSYann Gautier				ngpios = <16>;
566*3b99ab6eSYann Gautier				gpio-ranges = <&pinctrl 0 80 16>;
567*3b99ab6eSYann Gautier			};
568*3b99ab6eSYann Gautier
569*3b99ab6eSYann Gautier			gpiog: gpio@50008000 {
570*3b99ab6eSYann Gautier				gpio-controller;
571*3b99ab6eSYann Gautier				#gpio-cells = <2>;
572*3b99ab6eSYann Gautier				interrupt-controller;
573*3b99ab6eSYann Gautier				#interrupt-cells = <2>;
574*3b99ab6eSYann Gautier				reg = <0x6000 0x400>;
575*3b99ab6eSYann Gautier				clocks = <&rcc GPIOG>;
576*3b99ab6eSYann Gautier				st,bank-name = "GPIOG";
577*3b99ab6eSYann Gautier				ngpios = <16>;
578*3b99ab6eSYann Gautier				gpio-ranges = <&pinctrl 0 96 16>;
579*3b99ab6eSYann Gautier			};
580*3b99ab6eSYann Gautier
581*3b99ab6eSYann Gautier			gpioh: gpio@50009000 {
582*3b99ab6eSYann Gautier				gpio-controller;
583*3b99ab6eSYann Gautier				#gpio-cells = <2>;
584*3b99ab6eSYann Gautier				interrupt-controller;
585*3b99ab6eSYann Gautier				#interrupt-cells = <2>;
586*3b99ab6eSYann Gautier				reg = <0x7000 0x400>;
587*3b99ab6eSYann Gautier				clocks = <&rcc GPIOH>;
588*3b99ab6eSYann Gautier				st,bank-name = "GPIOH";
589*3b99ab6eSYann Gautier				ngpios = <15>;
590*3b99ab6eSYann Gautier				gpio-ranges = <&pinctrl 0 112 15>;
591*3b99ab6eSYann Gautier			};
592*3b99ab6eSYann Gautier
593*3b99ab6eSYann Gautier			gpioi: gpio@5000a000 {
594*3b99ab6eSYann Gautier				gpio-controller;
595*3b99ab6eSYann Gautier				#gpio-cells = <2>;
596*3b99ab6eSYann Gautier				interrupt-controller;
597*3b99ab6eSYann Gautier				#interrupt-cells = <2>;
598*3b99ab6eSYann Gautier				reg = <0x8000 0x400>;
599*3b99ab6eSYann Gautier				clocks = <&rcc GPIOI>;
600*3b99ab6eSYann Gautier				st,bank-name = "GPIOI";
601*3b99ab6eSYann Gautier				ngpios = <8>;
602*3b99ab6eSYann Gautier				gpio-ranges = <&pinctrl 0 128 8>;
603*3b99ab6eSYann Gautier			};
604*3b99ab6eSYann Gautier		};
605*3b99ab6eSYann Gautier	};
606*3b99ab6eSYann Gautier};
607