xref: /rk3399_ARM-atf/fdts/stm32mp251.dtsi (revision 0dc283d29e4d962553046ea7ba30e90ea64f6d3d)
1*0dc283d2SAlexandre Torgue// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause)
2*0dc283d2SAlexandre Torgue/*
3*0dc283d2SAlexandre Torgue * Copyright (C) 2023, STMicroelectronics - All Rights Reserved
4*0dc283d2SAlexandre Torgue * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
5*0dc283d2SAlexandre Torgue */
6*0dc283d2SAlexandre Torgue
7*0dc283d2SAlexandre Torgue#include <dt-bindings/clock/stm32mp25-clks.h>
8*0dc283d2SAlexandre Torgue#include <dt-bindings/interrupt-controller/arm-gic.h>
9*0dc283d2SAlexandre Torgue#include <dt-bindings/reset/stm32mp25-resets.h>
10*0dc283d2SAlexandre Torgue
11*0dc283d2SAlexandre Torgue/ {
12*0dc283d2SAlexandre Torgue	#address-cells = <2>;
13*0dc283d2SAlexandre Torgue	#size-cells = <2>;
14*0dc283d2SAlexandre Torgue
15*0dc283d2SAlexandre Torgue	cpus {
16*0dc283d2SAlexandre Torgue		#address-cells = <1>;
17*0dc283d2SAlexandre Torgue		#size-cells = <0>;
18*0dc283d2SAlexandre Torgue
19*0dc283d2SAlexandre Torgue		cpu0: cpu@0 {
20*0dc283d2SAlexandre Torgue			compatible = "arm,cortex-a35";
21*0dc283d2SAlexandre Torgue			device_type = "cpu";
22*0dc283d2SAlexandre Torgue			reg = <0>;
23*0dc283d2SAlexandre Torgue			enable-method = "psci";
24*0dc283d2SAlexandre Torgue		};
25*0dc283d2SAlexandre Torgue	};
26*0dc283d2SAlexandre Torgue
27*0dc283d2SAlexandre Torgue	clocks {
28*0dc283d2SAlexandre Torgue		clk_hse: clk-hse {
29*0dc283d2SAlexandre Torgue			#clock-cells = <0>;
30*0dc283d2SAlexandre Torgue			compatible = "fixed-clock";
31*0dc283d2SAlexandre Torgue			clock-frequency = <48000000>;
32*0dc283d2SAlexandre Torgue		};
33*0dc283d2SAlexandre Torgue
34*0dc283d2SAlexandre Torgue		clk_hsi: clk-hsi {
35*0dc283d2SAlexandre Torgue			#clock-cells = <0>;
36*0dc283d2SAlexandre Torgue			compatible = "fixed-clock";
37*0dc283d2SAlexandre Torgue			clock-frequency = <64000000>;
38*0dc283d2SAlexandre Torgue		};
39*0dc283d2SAlexandre Torgue
40*0dc283d2SAlexandre Torgue		clk_lse: clk-lse {
41*0dc283d2SAlexandre Torgue			#clock-cells = <0>;
42*0dc283d2SAlexandre Torgue			compatible = "fixed-clock";
43*0dc283d2SAlexandre Torgue			clock-frequency = <32768>;
44*0dc283d2SAlexandre Torgue		};
45*0dc283d2SAlexandre Torgue
46*0dc283d2SAlexandre Torgue		clk_lsi: clk-lsi {
47*0dc283d2SAlexandre Torgue			#clock-cells = <0>;
48*0dc283d2SAlexandre Torgue			compatible = "fixed-clock";
49*0dc283d2SAlexandre Torgue			clock-frequency = <32000>;
50*0dc283d2SAlexandre Torgue		};
51*0dc283d2SAlexandre Torgue
52*0dc283d2SAlexandre Torgue		clk_msi: clk-msi {
53*0dc283d2SAlexandre Torgue			#clock-cells = <0>;
54*0dc283d2SAlexandre Torgue			compatible = "fixed-clock";
55*0dc283d2SAlexandre Torgue			clock-frequency = <16000000>;
56*0dc283d2SAlexandre Torgue		};
57*0dc283d2SAlexandre Torgue	};
58*0dc283d2SAlexandre Torgue
59*0dc283d2SAlexandre Torgue	intc: interrupt-controller@4ac00000 {
60*0dc283d2SAlexandre Torgue		compatible = "arm,cortex-a7-gic";
61*0dc283d2SAlexandre Torgue		#interrupt-cells = <3>;
62*0dc283d2SAlexandre Torgue		#address-cells = <1>;
63*0dc283d2SAlexandre Torgue		interrupt-controller;
64*0dc283d2SAlexandre Torgue		reg = <0x0 0x4ac10000 0x0 0x1000>,
65*0dc283d2SAlexandre Torgue		      <0x0 0x4ac20000 0x0 0x2000>,
66*0dc283d2SAlexandre Torgue		      <0x0 0x4ac40000 0x0 0x2000>,
67*0dc283d2SAlexandre Torgue		      <0x0 0x4ac60000 0x0 0x2000>;
68*0dc283d2SAlexandre Torgue	};
69*0dc283d2SAlexandre Torgue
70*0dc283d2SAlexandre Torgue	timer: timer {
71*0dc283d2SAlexandre Torgue		compatible = "arm,armv8-timer";
72*0dc283d2SAlexandre Torgue		interrupt-parent = <&intc>;
73*0dc283d2SAlexandre Torgue		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
74*0dc283d2SAlexandre Torgue			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
75*0dc283d2SAlexandre Torgue			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
76*0dc283d2SAlexandre Torgue			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
77*0dc283d2SAlexandre Torgue		always-on;
78*0dc283d2SAlexandre Torgue	};
79*0dc283d2SAlexandre Torgue
80*0dc283d2SAlexandre Torgue	soc@0 {
81*0dc283d2SAlexandre Torgue		compatible = "simple-bus";
82*0dc283d2SAlexandre Torgue		#address-cells = <1>;
83*0dc283d2SAlexandre Torgue		#size-cells = <1>;
84*0dc283d2SAlexandre Torgue		interrupt-parent = <&intc>;
85*0dc283d2SAlexandre Torgue		ranges = <0x0 0x0 0x0 0x80000000>;
86*0dc283d2SAlexandre Torgue
87*0dc283d2SAlexandre Torgue		rifsc: rifsc@42080000 {
88*0dc283d2SAlexandre Torgue			compatible = "st,stm32mp25-rifsc";
89*0dc283d2SAlexandre Torgue			reg = <0x42080000 0x1000>;
90*0dc283d2SAlexandre Torgue			#address-cells = <1>;
91*0dc283d2SAlexandre Torgue			#size-cells = <1>;
92*0dc283d2SAlexandre Torgue
93*0dc283d2SAlexandre Torgue			usart2: serial@400e0000 {
94*0dc283d2SAlexandre Torgue				compatible = "st,stm32h7-uart";
95*0dc283d2SAlexandre Torgue				reg = <0x400e0000 0x400>;
96*0dc283d2SAlexandre Torgue				clocks = <&rcc CK_KER_USART2>;
97*0dc283d2SAlexandre Torgue				resets = <&rcc USART2_R>;
98*0dc283d2SAlexandre Torgue				status = "disabled";
99*0dc283d2SAlexandre Torgue			};
100*0dc283d2SAlexandre Torgue		};
101*0dc283d2SAlexandre Torgue
102*0dc283d2SAlexandre Torgue		rcc: rcc@44200000 {
103*0dc283d2SAlexandre Torgue			compatible = "st,stm32mp25-rcc";
104*0dc283d2SAlexandre Torgue			reg = <0x44200000 0x10000>;
105*0dc283d2SAlexandre Torgue			#clock-cells = <1>;
106*0dc283d2SAlexandre Torgue			#reset-cells = <1>;
107*0dc283d2SAlexandre Torgue		};
108*0dc283d2SAlexandre Torgue
109*0dc283d2SAlexandre Torgue		pwr: pwr@44210000 {
110*0dc283d2SAlexandre Torgue			compatible = "st,stm32mp25-pwr";
111*0dc283d2SAlexandre Torgue			reg = <0x44210000 0x400>;
112*0dc283d2SAlexandre Torgue
113*0dc283d2SAlexandre Torgue			vddio1: vddio1 {
114*0dc283d2SAlexandre Torgue				regulator-name = "vddio1";
115*0dc283d2SAlexandre Torgue			};
116*0dc283d2SAlexandre Torgue
117*0dc283d2SAlexandre Torgue			vddio2: vddio2 {
118*0dc283d2SAlexandre Torgue				regulator-name = "vddio2";
119*0dc283d2SAlexandre Torgue			};
120*0dc283d2SAlexandre Torgue
121*0dc283d2SAlexandre Torgue			vddio3: vddio3 {
122*0dc283d2SAlexandre Torgue				regulator-name = "vddio3";
123*0dc283d2SAlexandre Torgue			};
124*0dc283d2SAlexandre Torgue
125*0dc283d2SAlexandre Torgue			vddio4: vddio4 {
126*0dc283d2SAlexandre Torgue				regulator-name = "vddio4";
127*0dc283d2SAlexandre Torgue			};
128*0dc283d2SAlexandre Torgue
129*0dc283d2SAlexandre Torgue			vddio: vddio {
130*0dc283d2SAlexandre Torgue				regulator-name = "vddio";
131*0dc283d2SAlexandre Torgue			};
132*0dc283d2SAlexandre Torgue		};
133*0dc283d2SAlexandre Torgue
134*0dc283d2SAlexandre Torgue		syscfg: syscon@44230000 {
135*0dc283d2SAlexandre Torgue			compatible = "st,stm32mp25-syscfg", "syscon";
136*0dc283d2SAlexandre Torgue			reg = <0x44230000 0x10000>;
137*0dc283d2SAlexandre Torgue		};
138*0dc283d2SAlexandre Torgue
139*0dc283d2SAlexandre Torgue		pinctrl: pinctrl@44240000 {
140*0dc283d2SAlexandre Torgue			#address-cells = <1>;
141*0dc283d2SAlexandre Torgue			#size-cells = <1>;
142*0dc283d2SAlexandre Torgue			compatible = "st,stm32mp257-pinctrl";
143*0dc283d2SAlexandre Torgue			ranges = <0 0x44240000 0xa0400>;
144*0dc283d2SAlexandre Torgue			pins-are-numbered;
145*0dc283d2SAlexandre Torgue
146*0dc283d2SAlexandre Torgue			gpioa: gpio@44240000 {
147*0dc283d2SAlexandre Torgue				gpio-controller;
148*0dc283d2SAlexandre Torgue				#gpio-cells = <2>;
149*0dc283d2SAlexandre Torgue				interrupt-controller;
150*0dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
151*0dc283d2SAlexandre Torgue				reg = <0x0 0x400>;
152*0dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOA>;
153*0dc283d2SAlexandre Torgue				st,bank-name = "GPIOA";
154*0dc283d2SAlexandre Torgue				status = "disabled";
155*0dc283d2SAlexandre Torgue			};
156*0dc283d2SAlexandre Torgue
157*0dc283d2SAlexandre Torgue			gpiob: gpio@44250000 {
158*0dc283d2SAlexandre Torgue				gpio-controller;
159*0dc283d2SAlexandre Torgue				#gpio-cells = <2>;
160*0dc283d2SAlexandre Torgue				interrupt-controller;
161*0dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
162*0dc283d2SAlexandre Torgue				reg = <0x10000 0x400>;
163*0dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOB>;
164*0dc283d2SAlexandre Torgue				st,bank-name = "GPIOB";
165*0dc283d2SAlexandre Torgue				status = "disabled";
166*0dc283d2SAlexandre Torgue			};
167*0dc283d2SAlexandre Torgue
168*0dc283d2SAlexandre Torgue			gpioc: gpio@44260000 {
169*0dc283d2SAlexandre Torgue				gpio-controller;
170*0dc283d2SAlexandre Torgue				#gpio-cells = <2>;
171*0dc283d2SAlexandre Torgue				interrupt-controller;
172*0dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
173*0dc283d2SAlexandre Torgue				reg = <0x20000 0x400>;
174*0dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOC>;
175*0dc283d2SAlexandre Torgue				st,bank-name = "GPIOC";
176*0dc283d2SAlexandre Torgue				status = "disabled";
177*0dc283d2SAlexandre Torgue			};
178*0dc283d2SAlexandre Torgue
179*0dc283d2SAlexandre Torgue			gpiod: gpio@44270000 {
180*0dc283d2SAlexandre Torgue				gpio-controller;
181*0dc283d2SAlexandre Torgue				#gpio-cells = <2>;
182*0dc283d2SAlexandre Torgue				interrupt-controller;
183*0dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
184*0dc283d2SAlexandre Torgue				reg = <0x30000 0x400>;
185*0dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOD>;
186*0dc283d2SAlexandre Torgue				st,bank-name = "GPIOD";
187*0dc283d2SAlexandre Torgue				status = "disabled";
188*0dc283d2SAlexandre Torgue			};
189*0dc283d2SAlexandre Torgue
190*0dc283d2SAlexandre Torgue			gpioe: gpio@44280000 {
191*0dc283d2SAlexandre Torgue				gpio-controller;
192*0dc283d2SAlexandre Torgue				#gpio-cells = <2>;
193*0dc283d2SAlexandre Torgue				interrupt-controller;
194*0dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
195*0dc283d2SAlexandre Torgue				reg = <0x40000 0x400>;
196*0dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOE>;
197*0dc283d2SAlexandre Torgue				st,bank-name = "GPIOE";
198*0dc283d2SAlexandre Torgue				status = "disabled";
199*0dc283d2SAlexandre Torgue			};
200*0dc283d2SAlexandre Torgue
201*0dc283d2SAlexandre Torgue			gpiof: gpio@44290000 {
202*0dc283d2SAlexandre Torgue				gpio-controller;
203*0dc283d2SAlexandre Torgue				#gpio-cells = <2>;
204*0dc283d2SAlexandre Torgue				interrupt-controller;
205*0dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
206*0dc283d2SAlexandre Torgue				reg = <0x50000 0x400>;
207*0dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOF>;
208*0dc283d2SAlexandre Torgue				st,bank-name = "GPIOF";
209*0dc283d2SAlexandre Torgue				status = "disabled";
210*0dc283d2SAlexandre Torgue			};
211*0dc283d2SAlexandre Torgue
212*0dc283d2SAlexandre Torgue			gpiog: gpio@442a0000 {
213*0dc283d2SAlexandre Torgue				gpio-controller;
214*0dc283d2SAlexandre Torgue				#gpio-cells = <2>;
215*0dc283d2SAlexandre Torgue				interrupt-controller;
216*0dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
217*0dc283d2SAlexandre Torgue				reg = <0x60000 0x400>;
218*0dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOG>;
219*0dc283d2SAlexandre Torgue				st,bank-name = "GPIOG";
220*0dc283d2SAlexandre Torgue				status = "disabled";
221*0dc283d2SAlexandre Torgue			};
222*0dc283d2SAlexandre Torgue
223*0dc283d2SAlexandre Torgue			gpioh: gpio@442b0000 {
224*0dc283d2SAlexandre Torgue				gpio-controller;
225*0dc283d2SAlexandre Torgue				#gpio-cells = <2>;
226*0dc283d2SAlexandre Torgue				interrupt-controller;
227*0dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
228*0dc283d2SAlexandre Torgue				reg = <0x70000 0x400>;
229*0dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOH>;
230*0dc283d2SAlexandre Torgue				st,bank-name = "GPIOH";
231*0dc283d2SAlexandre Torgue				status = "disabled";
232*0dc283d2SAlexandre Torgue			};
233*0dc283d2SAlexandre Torgue
234*0dc283d2SAlexandre Torgue			gpioi: gpio@442c0000 {
235*0dc283d2SAlexandre Torgue				gpio-controller;
236*0dc283d2SAlexandre Torgue				#gpio-cells = <2>;
237*0dc283d2SAlexandre Torgue				interrupt-controller;
238*0dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
239*0dc283d2SAlexandre Torgue				reg = <0x80000 0x400>;
240*0dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOI>;
241*0dc283d2SAlexandre Torgue				st,bank-name = "GPIOI";
242*0dc283d2SAlexandre Torgue				status = "disabled";
243*0dc283d2SAlexandre Torgue			};
244*0dc283d2SAlexandre Torgue
245*0dc283d2SAlexandre Torgue			gpioj: gpio@442d0000 {
246*0dc283d2SAlexandre Torgue				gpio-controller;
247*0dc283d2SAlexandre Torgue				#gpio-cells = <2>;
248*0dc283d2SAlexandre Torgue				interrupt-controller;
249*0dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
250*0dc283d2SAlexandre Torgue				reg = <0x90000 0x400>;
251*0dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOJ>;
252*0dc283d2SAlexandre Torgue				st,bank-name = "GPIOJ";
253*0dc283d2SAlexandre Torgue				status = "disabled";
254*0dc283d2SAlexandre Torgue			};
255*0dc283d2SAlexandre Torgue
256*0dc283d2SAlexandre Torgue			gpiok: gpio@442e0000 {
257*0dc283d2SAlexandre Torgue				gpio-controller;
258*0dc283d2SAlexandre Torgue				#gpio-cells = <2>;
259*0dc283d2SAlexandre Torgue				interrupt-controller;
260*0dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
261*0dc283d2SAlexandre Torgue				reg = <0xa0000 0x400>;
262*0dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOK>;
263*0dc283d2SAlexandre Torgue				st,bank-name = "GPIOK";
264*0dc283d2SAlexandre Torgue				status = "disabled";
265*0dc283d2SAlexandre Torgue			};
266*0dc283d2SAlexandre Torgue		};
267*0dc283d2SAlexandre Torgue
268*0dc283d2SAlexandre Torgue		pinctrl_z: pinctrl@46200000 {
269*0dc283d2SAlexandre Torgue			#address-cells = <1>;
270*0dc283d2SAlexandre Torgue			#size-cells = <1>;
271*0dc283d2SAlexandre Torgue			compatible = "st,stm32mp257-z-pinctrl";
272*0dc283d2SAlexandre Torgue			ranges = <0 0x46200000 0x400>;
273*0dc283d2SAlexandre Torgue			pins-are-numbered;
274*0dc283d2SAlexandre Torgue
275*0dc283d2SAlexandre Torgue			gpioz: gpio@46200000 {
276*0dc283d2SAlexandre Torgue				gpio-controller;
277*0dc283d2SAlexandre Torgue				#gpio-cells = <2>;
278*0dc283d2SAlexandre Torgue				interrupt-controller;
279*0dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
280*0dc283d2SAlexandre Torgue				reg = <0 0x400>;
281*0dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOZ>;
282*0dc283d2SAlexandre Torgue				st,bank-name = "GPIOZ";
283*0dc283d2SAlexandre Torgue				st,bank-ioport = <11>;
284*0dc283d2SAlexandre Torgue				status = "disabled";
285*0dc283d2SAlexandre Torgue			};
286*0dc283d2SAlexandre Torgue
287*0dc283d2SAlexandre Torgue		};
288*0dc283d2SAlexandre Torgue	};
289*0dc283d2SAlexandre Torgue};
290