xref: /optee_os/core/arch/arm/dts/stm32mp211.dtsi (revision 720ffc4a24e8d4449c868a35835523468639a2a9)
1e48588a3SNicolas Le Bayon// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
2e48588a3SNicolas Le Bayon/*
3e48588a3SNicolas Le Bayon * Copyright (C) 2025, STMicroelectronics - All Rights Reserved
4e48588a3SNicolas Le Bayon * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
5e48588a3SNicolas Le Bayon */
6d8faf33fSGabriel Fernandez#include <dt-bindings/clock/st,stm32mp21-rcc.h>
7e48588a3SNicolas Le Bayon#include <dt-bindings/gpio/gpio.h>
8e48588a3SNicolas Le Bayon#include <dt-bindings/interrupt-controller/arm-gic.h>
9e48588a3SNicolas Le Bayon#include <dt-bindings/firewall/stm32mp21-rifsc.h>
10e48588a3SNicolas Le Bayon#include <dt-bindings/firewall/stm32mp25-rif.h>
11e48588a3SNicolas Le Bayon#include <dt-bindings/firewall/stm32mp25-risab.h>
12e48588a3SNicolas Le Bayon#include <dt-bindings/firewall/stm32mp25-risaf.h>
13d8faf33fSGabriel Fernandez#include <dt-bindings/reset/st,stm32mp21-rcc.h>
14e48588a3SNicolas Le Bayon
15e48588a3SNicolas Le Bayon/ {
16e48588a3SNicolas Le Bayon	#address-cells = <2>;
17e48588a3SNicolas Le Bayon	#size-cells = <2>;
18e48588a3SNicolas Le Bayon
19e48588a3SNicolas Le Bayon	cpus {
20e48588a3SNicolas Le Bayon		#address-cells = <1>;
21e48588a3SNicolas Le Bayon		#size-cells = <0>;
22e48588a3SNicolas Le Bayon
23e48588a3SNicolas Le Bayon		cpu0: cpu@0 {
24e48588a3SNicolas Le Bayon			compatible = "arm,cortex-a35";
25e48588a3SNicolas Le Bayon			device_type = "cpu";
26e48588a3SNicolas Le Bayon			reg = <0>;
27e48588a3SNicolas Le Bayon			enable-method = "psci";
28e48588a3SNicolas Le Bayon		};
29e48588a3SNicolas Le Bayon	};
30e48588a3SNicolas Le Bayon
31e48588a3SNicolas Le Bayon	psci {
32e48588a3SNicolas Le Bayon		compatible = "arm,psci-1.0";
33e48588a3SNicolas Le Bayon		method = "smc";
34e48588a3SNicolas Le Bayon	};
35e48588a3SNicolas Le Bayon
36e48588a3SNicolas Le Bayon	intc: interrupt-controller@4ac00000 {
37e48588a3SNicolas Le Bayon		compatible = "arm,cortex-a7-gic";
38e48588a3SNicolas Le Bayon		#interrupt-cells = <3>;
39e48588a3SNicolas Le Bayon		interrupt-controller;
40e48588a3SNicolas Le Bayon		reg = <0x0 0x4ac10000 0x0 0x1000>,
41e48588a3SNicolas Le Bayon		      <0x0 0x4ac20000 0x0 0x2000>,
42e48588a3SNicolas Le Bayon		      <0x0 0x4ac40000 0x0 0x2000>,
43e48588a3SNicolas Le Bayon		      <0x0 0x4ac60000 0x0 0x2000>;
44e48588a3SNicolas Le Bayon		#address-cells = <1>;
45e48588a3SNicolas Le Bayon	};
46e48588a3SNicolas Le Bayon
47e48588a3SNicolas Le Bayon	clocks {
48e48588a3SNicolas Le Bayon		clk_hse: clk-hse {
49e48588a3SNicolas Le Bayon			#clock-cells = <0>;
50e48588a3SNicolas Le Bayon			compatible = "fixed-clock";
51e48588a3SNicolas Le Bayon			clock-frequency = <48000000>;
52e48588a3SNicolas Le Bayon		};
53e48588a3SNicolas Le Bayon
54e48588a3SNicolas Le Bayon		clk_hsi: clk-hsi {
55e48588a3SNicolas Le Bayon			#clock-cells = <0>;
56e48588a3SNicolas Le Bayon			compatible = "fixed-clock";
57e48588a3SNicolas Le Bayon			clock-frequency = <64000000>;
58e48588a3SNicolas Le Bayon		};
59e48588a3SNicolas Le Bayon
60e48588a3SNicolas Le Bayon		clk_lse: clk-lse {
61e48588a3SNicolas Le Bayon			#clock-cells = <0>;
62e48588a3SNicolas Le Bayon			compatible = "fixed-clock";
63e48588a3SNicolas Le Bayon			clock-frequency = <32768>;
64e48588a3SNicolas Le Bayon		};
65e48588a3SNicolas Le Bayon
66e48588a3SNicolas Le Bayon		clk_lsi: clk-lsi {
67e48588a3SNicolas Le Bayon			#clock-cells = <0>;
68e48588a3SNicolas Le Bayon			compatible = "fixed-clock";
69e48588a3SNicolas Le Bayon			clock-frequency = <32000>;
70e48588a3SNicolas Le Bayon		};
71e48588a3SNicolas Le Bayon
72e48588a3SNicolas Le Bayon		clk_msi: clk-msi {
73e48588a3SNicolas Le Bayon			#clock-cells = <0>;
74e48588a3SNicolas Le Bayon			compatible = "fixed-clock";
75e48588a3SNicolas Le Bayon			clock-frequency = <16000000>;
76e48588a3SNicolas Le Bayon		};
77e48588a3SNicolas Le Bayon
78e48588a3SNicolas Le Bayon		clk_i2sin: clk-i2sin {
79e48588a3SNicolas Le Bayon			#clock-cells = <0>;
80e48588a3SNicolas Le Bayon			compatible = "fixed-clock";
81e48588a3SNicolas Le Bayon			clock-frequency = <0>;
82e48588a3SNicolas Le Bayon		};
83e48588a3SNicolas Le Bayon
84e48588a3SNicolas Le Bayon		clk_rcbsec: clk-rcbsec {
85e48588a3SNicolas Le Bayon			#clock-cells = <0>;
86e48588a3SNicolas Le Bayon			compatible = "fixed-clock";
87e48588a3SNicolas Le Bayon			clock-frequency = <64000000>;
88e48588a3SNicolas Le Bayon		};
89e48588a3SNicolas Le Bayon	};
90e48588a3SNicolas Le Bayon
91e48588a3SNicolas Le Bayon	soc@0 {
92e48588a3SNicolas Le Bayon		compatible = "simple-bus";
93e48588a3SNicolas Le Bayon		#address-cells = <1>;
94e48588a3SNicolas Le Bayon		#size-cells = <1>;
95e48588a3SNicolas Le Bayon		interrupt-parent = <&intc>;
96e48588a3SNicolas Le Bayon		ranges = <0x0 0x0 0x0 0x80000000>;
97e48588a3SNicolas Le Bayon
98e48588a3SNicolas Le Bayon		rifsc: bus@42080000 {
99e48588a3SNicolas Le Bayon			compatible = "st,stm32mp25-rifsc", "simple-bus";
100e48588a3SNicolas Le Bayon			reg = <0x42080000 0x1000>;
101e48588a3SNicolas Le Bayon			#address-cells = <1>;
102e48588a3SNicolas Le Bayon			#size-cells = <1>;
103e48588a3SNicolas Le Bayon			#access-controller-cells = <1>;
104859c5213SClément Le Goffic
105*720ffc4aSThomas Bourgoin			i2c1: i2c@40170000 {
106*720ffc4aSThomas Bourgoin				compatible = "st,stm32mp25-i2c";
107*720ffc4aSThomas Bourgoin				reg = <0x40170000 0x400>;
108*720ffc4aSThomas Bourgoin				clocks = <&rcc CK_KER_I2C1>;
109*720ffc4aSThomas Bourgoin				resets = <&rcc I2C1_R>;
110*720ffc4aSThomas Bourgoin				#address-cells = <1>;
111*720ffc4aSThomas Bourgoin				#size-cells = <0>;
112*720ffc4aSThomas Bourgoin				access-controllers = <&rifsc STM32MP21_RIFSC_I2C1_ID>;
113*720ffc4aSThomas Bourgoin				status = "disabled";
114*720ffc4aSThomas Bourgoin			};
115*720ffc4aSThomas Bourgoin
116*720ffc4aSThomas Bourgoin			i2c2: i2c@40180000 {
117*720ffc4aSThomas Bourgoin				compatible = "st,stm32mp25-i2c";
118*720ffc4aSThomas Bourgoin				reg = <0x40180000 0x400>;
119*720ffc4aSThomas Bourgoin				clocks = <&rcc CK_KER_I2C1>;
120*720ffc4aSThomas Bourgoin				resets = <&rcc I2C1_R>;
121*720ffc4aSThomas Bourgoin				#address-cells = <1>;
122*720ffc4aSThomas Bourgoin				#size-cells = <0>;
123*720ffc4aSThomas Bourgoin				access-controllers = <&rifsc STM32MP21_RIFSC_I2C2_ID>;
124*720ffc4aSThomas Bourgoin				status = "disabled";
125*720ffc4aSThomas Bourgoin			};
126*720ffc4aSThomas Bourgoin
127859c5213SClément Le Goffic			iwdg1: watchdog@44010000 {
128859c5213SClément Le Goffic				compatible = "st,stm32mp1-iwdg";
129859c5213SClément Le Goffic				reg = <0x44010000 0x400>;
130859c5213SClément Le Goffic				interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
131859c5213SClément Le Goffic				clocks = <&rcc CK_BUS_IWDG1>, <&rcc LSI_CK>;
132859c5213SClément Le Goffic				clock-names = "pclk", "lsi";
133859c5213SClément Le Goffic				access-controllers = <&rifsc STM32MP21_RIFSC_IWDG1_ID>;
134859c5213SClément Le Goffic				status = "disabled";
135859c5213SClément Le Goffic			};
136859c5213SClément Le Goffic
137859c5213SClément Le Goffic			iwdg2: watchdog@44020000 {
138859c5213SClément Le Goffic				compatible = "st,stm32mp1-iwdg";
139859c5213SClément Le Goffic				reg = <0x44020000 0x400>;
140859c5213SClément Le Goffic				interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
141859c5213SClément Le Goffic				clocks = <&rcc CK_BUS_IWDG2>, <&rcc LSI_CK>;
142859c5213SClément Le Goffic				clock-names = "pclk", "lsi";
143859c5213SClément Le Goffic				resets = <&rcc IWDG2_SYS_R>;
144859c5213SClément Le Goffic				access-controllers = <&rifsc STM32MP21_RIFSC_IWDG2_ID>;
145859c5213SClément Le Goffic				status = "disabled";
146859c5213SClément Le Goffic			};
147*720ffc4aSThomas Bourgoin
148*720ffc4aSThomas Bourgoin			i2c3: i2c@46040000 {
149*720ffc4aSThomas Bourgoin				compatible = "st,stm32mp25-i2c";
150*720ffc4aSThomas Bourgoin				reg = <0x46040000 0x400>;
151*720ffc4aSThomas Bourgoin				clocks = <&rcc CK_KER_I2C3>;
152*720ffc4aSThomas Bourgoin				resets = <&rcc I2C3_R>;
153*720ffc4aSThomas Bourgoin				#address-cells = <1>;
154*720ffc4aSThomas Bourgoin				#size-cells = <0>;
155*720ffc4aSThomas Bourgoin				access-controllers = <&rifsc STM32MP21_RIFSC_I2C3_ID>;
156*720ffc4aSThomas Bourgoin				status = "disabled";
157*720ffc4aSThomas Bourgoin			};
158e48588a3SNicolas Le Bayon		};
159e48588a3SNicolas Le Bayon
160e48588a3SNicolas Le Bayon		iac: iac@42090000 {
161e48588a3SNicolas Le Bayon			compatible = "st,stm32mp25-iac";
162e48588a3SNicolas Le Bayon			reg = <0x42090000 0x400>;
163e48588a3SNicolas Le Bayon			interrupts = <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>;
164e48588a3SNicolas Le Bayon		};
165e48588a3SNicolas Le Bayon
166d8faf33fSGabriel Fernandez		rcc: clock-controller@44200000 {
167d8faf33fSGabriel Fernandez			compatible = "st,stm32mp21-rcc", "syscon";
168d8faf33fSGabriel Fernandez			reg = <0x44200000 0x10000>;
169d8faf33fSGabriel Fernandez			interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
170d8faf33fSGabriel Fernandez
171d8faf33fSGabriel Fernandez			#clock-cells = <1>;
172d8faf33fSGabriel Fernandez			#reset-cells = <1>;
173d8faf33fSGabriel Fernandez			clocks = <&clk_hse>, <&clk_hsi>, <&clk_lse>,
174d8faf33fSGabriel Fernandez				 <&clk_lsi>, <&clk_msi>, <&clk_i2sin>;
175d8faf33fSGabriel Fernandez			clock-names = "clk-hse", "clk-hsi", "clk-lse",
176d8faf33fSGabriel Fernandez				      "clk-lsi", "clk-msi", "clk-i2sin";
177d8faf33fSGabriel Fernandez		};
178d8faf33fSGabriel Fernandez
179e48588a3SNicolas Le Bayon		syscfg: syscon@44230000 {
180e48588a3SNicolas Le Bayon			reg = <0x44230000 0x10000>;
181e48588a3SNicolas Le Bayon			status = "disabled";
182e48588a3SNicolas Le Bayon		};
183e48588a3SNicolas Le Bayon	};
184e48588a3SNicolas Le Bayon};
185