xref: /optee_os/core/arch/arm/dts/stm32mp131.dtsi (revision cb5f271c1eaed4c18fd26873f152afc0590b0413)
1// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2/*
3 * Copyright (C) STMicroelectronics 2021-2022 - All Rights Reserved
4 * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
5 */
6
7#include <dt-bindings/clock/stm32mp13-clks.h>
8#include <dt-bindings/clock/stm32mp13-clksrc.h>
9#include <dt-bindings/interrupt-controller/arm-gic.h>
10#include <dt-bindings/reset/stm32mp13-resets.h>
11
12/ {
13	#address-cells = <1>;
14	#size-cells = <1>;
15
16	cpus {
17		#address-cells = <1>;
18		#size-cells = <0>;
19
20		cpu0: cpu@0 {
21			compatible = "arm,cortex-a7";
22			device_type = "cpu";
23			reg = <0>;
24		};
25	};
26
27	intc: interrupt-controller@a0021000 {
28		compatible = "arm,cortex-a7-gic";
29		#interrupt-cells = <3>;
30		interrupt-controller;
31		reg = <0xa0021000 0x1000>,
32		      <0xa0022000 0x2000>;
33	};
34
35	psci {
36		compatible = "arm,psci-1.0";
37		method = "smc";
38	};
39
40	clocks {
41		clk_hse: clk-hse {
42			#clock-cells = <0>;
43			compatible = "fixed-clock";
44			clock-frequency = <24000000>;
45		};
46
47		clk_hsi: clk-hsi {
48			#clock-cells = <0>;
49			compatible = "fixed-clock";
50			clock-frequency = <64000000>;
51		};
52
53		clk_lse: clk-lse {
54			#clock-cells = <0>;
55			compatible = "fixed-clock";
56			clock-frequency = <32768>;
57		};
58
59		clk_lsi: clk-lsi {
60			#clock-cells = <0>;
61			compatible = "fixed-clock";
62			clock-frequency = <32000>;
63		};
64
65		clk_csi: clk-csi {
66			#clock-cells = <0>;
67			compatible = "fixed-clock";
68			clock-frequency = <4000000>;
69		};
70
71		clk_i2sin: clk-i2sin {
72			#clock-cells = <0>;
73			compatible = "fixed-clock";
74			clock-frequency = <19000000>;
75		};
76
77	};
78
79	soc {
80		compatible = "simple-bus";
81		#address-cells = <1>;
82		#size-cells = <1>;
83		interrupt-parent = <&intc>;
84		ranges;
85
86		usart3: serial@4000f000 {
87			compatible = "st,stm32h7-uart";
88			reg = <0x4000f000 0x400>;
89			interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
90			status = "disabled";
91		};
92
93		uart4: serial@40010000 {
94			compatible = "st,stm32h7-uart";
95			reg = <0x40010000 0x400>;
96			interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
97			clocks = <&rcc UART4_K>;
98			status = "disabled";
99		};
100
101		uart5: serial@40011000 {
102			compatible = "st,stm32h7-uart";
103			reg = <0x40011000 0x400>;
104			interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
105			status = "disabled";
106		};
107
108		uart7: serial@40018000 {
109			compatible = "st,stm32h7-uart";
110			reg = <0x40018000 0x400>;
111			interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
112			status = "disabled";
113		};
114
115		uart8: serial@40019000 {
116			compatible = "st,stm32h7-uart";
117			reg = <0x40019000 0x400>;
118			interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
119			status = "disabled";
120		};
121
122		usart6: serial@44003000 {
123			compatible = "st,stm32h7-uart";
124			reg = <0x44003000 0x400>;
125			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
126			status = "disabled";
127		};
128
129		usart1: serial@4c000000 {
130			compatible = "st,stm32h7-uart";
131			reg = <0x4c000000 0x400>;
132			interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
133			status = "disabled";
134		};
135
136		usart2: serial@4c001000 {
137			compatible = "st,stm32h7-uart";
138			reg = <0x4c001000 0x400>;
139			interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
140			status = "disabled";
141		};
142
143		i2c3: i2c@4c004000 {
144			compatible = "st,stm32mp13-i2c";
145			reg = <0x4c004000 0x400>;
146			#address-cells = <1>;
147			#size-cells = <0>;
148			st,syscfg-fmp = <&syscfg 0x4 0x4>;
149			i2c-analog-filter;
150			status = "disabled";
151		};
152
153		i2c4: i2c@4c005000 {
154			compatible = "st,stm32mp13-i2c";
155			reg = <0x4c005000 0x400>;
156			#address-cells = <1>;
157			#size-cells = <0>;
158			st,syscfg-fmp = <&syscfg 0x4 0x8>;
159			i2c-analog-filter;
160			status = "disabled";
161		};
162
163		i2c5: i2c@4c006000 {
164			compatible = "st,stm32mp13-i2c";
165			reg = <0x4c006000 0x400>;
166			#address-cells = <1>;
167			#size-cells = <0>;
168			st,syscfg-fmp = <&syscfg 0x4 0x10>;
169			i2c-analog-filter;
170			status = "disabled";
171		};
172
173		rcc: rcc@50000000 {
174			compatible = "st,stm32mp13-rcc", "syscon";
175			reg = <0x50000000 0x1000>;
176			#address-cells = <1>;
177			#size-cells = <0>;
178			#clock-cells = <1>;
179			#reset-cells = <1>;
180			clocks = <&clk_hse>, <&clk_hsi>, <&clk_lse>, <&clk_lsi>, <&clk_csi>, <&clk_i2sin>;
181			clock-names = "clk-hse", "clk-hsi", "clk-lse", "clk-lsi", "clk-csi", "clk-i2sin";
182			interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
183			secure-interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
184			secure-interrupt-names = "wakeup";
185		};
186
187		syscfg: syscon@50020000 {
188			compatible = "st,stm32mp157-syscfg", "syscon";
189			reg = <0x50020000 0x400>;
190		};
191
192		rng: rng@54004000 {
193			compatible = "st,stm32mp13-rng";
194			reg = <0x54004000 0x400>;
195			clocks = <&rcc RNG1_K>;
196			status = "disabled";
197		};
198
199		bsec: efuse@5c005000 {
200			compatible = "st,stm32mp13-bsec";
201			reg = <0x5c005000 0x400>;
202			#address-cells = <1>;
203			#size-cells = <1>;
204
205			cfg0_otp: cfg0_otp@0 {
206				reg = <0x0 0x2>;
207			};
208			part_number_otp: part_number_otp@4 {
209				reg = <0x4 0x2>;
210			};
211			monotonic_otp: monotonic_otp@10 {
212				reg = <0x10 0x4>;
213			};
214			nand_otp: cfg9_otp@24 {
215				reg = <0x24 0x4>;
216			};
217			uid_otp: uid_otp@34 {
218				reg = <0x34 0xc>;
219			};
220			hw2_otp: hw2_otp@48 {
221				reg = <0x48 0x4>;
222			};
223			ts_cal1: calib@5c {
224				reg = <0x5c 0x2>;
225			};
226			ts_cal2: calib@5e {
227				reg = <0x5e 0x2>;
228			};
229			pkh_otp: pkh_otp@60 {
230				reg = <0x60 0x20>;
231			};
232			ethernet_mac1_address: mac1@e4 {
233				reg = <0xe4 0xc>;
234				st,non-secure-otp;
235			};
236			oem_enc_key: oem_enc_key@170 {
237				reg = <0x170 0x10>;
238			};
239		};
240
241		tzc400: tzc@5c006000 {
242			compatible = "st,stm32mp1-tzc";
243			reg = <0x5c006000 0x1000>;
244			interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
245			st,mem-map = <0xc0000000 0x40000000>;
246			clocks = <&rcc TZC>;
247		};
248
249		etzpc: etzpc@5c007000 {
250			compatible = "st,stm32-etzpc";
251			reg = <0x5C007000 0x400>;
252		};
253
254		stgen: stgen@5c008000 {
255			compatible = "st,stm32-stgen";
256			reg = <0x5C008000 0x1000>;
257		};
258
259		pinctrl: pin-controller@50002000 {
260			#address-cells = <1>;
261			#size-cells = <1>;
262			compatible = "st,stm32mp135-pinctrl";
263			ranges = <0 0x50002000 0x8400>;
264			pins-are-numbered;
265
266			gpioa: gpio@50002000 {
267				gpio-controller;
268				#gpio-cells = <2>;
269				interrupt-controller;
270				#interrupt-cells = <2>;
271				clocks = <&rcc GPIOA>;
272				reg = <0x0 0x400>;
273				st,bank-name = "GPIOA";
274				ngpios = <16>;
275				gpio-ranges = <&pinctrl 0 0 16>;
276			};
277
278			gpiob: gpio@50003000 {
279				gpio-controller;
280				#gpio-cells = <2>;
281				interrupt-controller;
282				#interrupt-cells = <2>;
283				clocks = <&rcc GPIOB>;
284				reg = <0x1000 0x400>;
285				st,bank-name = "GPIOB";
286				ngpios = <16>;
287				gpio-ranges = <&pinctrl 0 16 16>;
288			};
289
290			gpioc: gpio@50004000 {
291				gpio-controller;
292				#gpio-cells = <2>;
293				interrupt-controller;
294				#interrupt-cells = <2>;
295				clocks = <&rcc GPIOC>;
296				reg = <0x2000 0x400>;
297				st,bank-name = "GPIOC";
298				ngpios = <16>;
299				gpio-ranges = <&pinctrl 0 32 16>;
300			};
301
302			gpiod: gpio@50005000 {
303				gpio-controller;
304				#gpio-cells = <2>;
305				interrupt-controller;
306				#interrupt-cells = <2>;
307				clocks = <&rcc GPIOD>;
308				reg = <0x3000 0x400>;
309				st,bank-name = "GPIOD";
310				ngpios = <16>;
311				gpio-ranges = <&pinctrl 0 48 16>;
312			};
313
314			gpioe: gpio@50006000 {
315				gpio-controller;
316				#gpio-cells = <2>;
317				interrupt-controller;
318				#interrupt-cells = <2>;
319				clocks = <&rcc GPIOE>;
320				reg = <0x4000 0x400>;
321				st,bank-name = "GPIOE";
322				ngpios = <16>;
323				gpio-ranges = <&pinctrl 0 64 16>;
324			};
325
326			gpiof: gpio@50007000 {
327				gpio-controller;
328				#gpio-cells = <2>;
329				interrupt-controller;
330				#interrupt-cells = <2>;
331				clocks = <&rcc GPIOF>;
332				reg = <0x5000 0x400>;
333				st,bank-name = "GPIOF";
334				ngpios = <16>;
335				gpio-ranges = <&pinctrl 0 80 16>;
336			};
337
338			gpiog: gpio@50008000 {
339				gpio-controller;
340				#gpio-cells = <2>;
341				interrupt-controller;
342				#interrupt-cells = <2>;
343				clocks = <&rcc GPIOG>;
344				reg = <0x6000 0x400>;
345				st,bank-name = "GPIOG";
346				ngpios = <16>;
347				gpio-ranges = <&pinctrl 0 96 16>;
348			};
349
350			gpioh: gpio@50009000 {
351				gpio-controller;
352				#gpio-cells = <2>;
353				interrupt-controller;
354				#interrupt-cells = <2>;
355				clocks = <&rcc GPIOH>;
356				reg = <0x7000 0x400>;
357				st,bank-name = "GPIOH";
358				ngpios = <15>;
359				gpio-ranges = <&pinctrl 0 112 15>;
360			};
361
362			gpioi: gpio@5000a000 {
363				gpio-controller;
364				#gpio-cells = <2>;
365				interrupt-controller;
366				#interrupt-cells = <2>;
367				clocks = <&rcc GPIOI>;
368				reg = <0x8000 0x400>;
369				st,bank-name = "GPIOI";
370				ngpios = <8>;
371				gpio-ranges = <&pinctrl 0 128 8>;
372			};
373		};
374	};
375};
376