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