xref: /rk3399_ARM-atf/fdts/stm32mp251.dtsi (revision 381b2a6b02ef5b0245f200b8c2d42a4a58cf88be)
10dc283d2SAlexandre Torgue// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause)
20dc283d2SAlexandre Torgue/*
3c238a46aSYann Gautier * Copyright (C) 2023-2024, STMicroelectronics - All Rights Reserved
40dc283d2SAlexandre Torgue * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
50dc283d2SAlexandre Torgue */
60dc283d2SAlexandre Torgue
70dc283d2SAlexandre Torgue#include <dt-bindings/clock/stm32mp25-clks.h>
80dc283d2SAlexandre Torgue#include <dt-bindings/interrupt-controller/arm-gic.h>
90dc283d2SAlexandre Torgue#include <dt-bindings/reset/stm32mp25-resets.h>
100dc283d2SAlexandre Torgue
110dc283d2SAlexandre Torgue/ {
120dc283d2SAlexandre Torgue	#address-cells = <2>;
130dc283d2SAlexandre Torgue	#size-cells = <2>;
140dc283d2SAlexandre Torgue
150dc283d2SAlexandre Torgue	cpus {
160dc283d2SAlexandre Torgue		#address-cells = <1>;
170dc283d2SAlexandre Torgue		#size-cells = <0>;
180dc283d2SAlexandre Torgue
190dc283d2SAlexandre Torgue		cpu0: cpu@0 {
200dc283d2SAlexandre Torgue			compatible = "arm,cortex-a35";
210dc283d2SAlexandre Torgue			device_type = "cpu";
220dc283d2SAlexandre Torgue			reg = <0>;
230dc283d2SAlexandre Torgue			enable-method = "psci";
240dc283d2SAlexandre Torgue		};
250dc283d2SAlexandre Torgue	};
260dc283d2SAlexandre Torgue
270dc283d2SAlexandre Torgue	clocks {
280dc283d2SAlexandre Torgue		clk_hse: clk-hse {
290dc283d2SAlexandre Torgue			#clock-cells = <0>;
300dc283d2SAlexandre Torgue			compatible = "fixed-clock";
310dc283d2SAlexandre Torgue			clock-frequency = <48000000>;
320dc283d2SAlexandre Torgue		};
330dc283d2SAlexandre Torgue
340dc283d2SAlexandre Torgue		clk_hsi: clk-hsi {
350dc283d2SAlexandre Torgue			#clock-cells = <0>;
360dc283d2SAlexandre Torgue			compatible = "fixed-clock";
370dc283d2SAlexandre Torgue			clock-frequency = <64000000>;
380dc283d2SAlexandre Torgue		};
390dc283d2SAlexandre Torgue
400dc283d2SAlexandre Torgue		clk_lse: clk-lse {
410dc283d2SAlexandre Torgue			#clock-cells = <0>;
420dc283d2SAlexandre Torgue			compatible = "fixed-clock";
430dc283d2SAlexandre Torgue			clock-frequency = <32768>;
440dc283d2SAlexandre Torgue		};
450dc283d2SAlexandre Torgue
460dc283d2SAlexandre Torgue		clk_lsi: clk-lsi {
470dc283d2SAlexandre Torgue			#clock-cells = <0>;
480dc283d2SAlexandre Torgue			compatible = "fixed-clock";
490dc283d2SAlexandre Torgue			clock-frequency = <32000>;
500dc283d2SAlexandre Torgue		};
510dc283d2SAlexandre Torgue
520dc283d2SAlexandre Torgue		clk_msi: clk-msi {
530dc283d2SAlexandre Torgue			#clock-cells = <0>;
540dc283d2SAlexandre Torgue			compatible = "fixed-clock";
550dc283d2SAlexandre Torgue			clock-frequency = <16000000>;
560dc283d2SAlexandre Torgue		};
570dc283d2SAlexandre Torgue	};
580dc283d2SAlexandre Torgue
590dc283d2SAlexandre Torgue	intc: interrupt-controller@4ac00000 {
600dc283d2SAlexandre Torgue		compatible = "arm,cortex-a7-gic";
610dc283d2SAlexandre Torgue		#interrupt-cells = <3>;
620dc283d2SAlexandre Torgue		#address-cells = <1>;
630dc283d2SAlexandre Torgue		interrupt-controller;
640dc283d2SAlexandre Torgue		reg = <0x0 0x4ac10000 0x0 0x1000>,
650dc283d2SAlexandre Torgue		      <0x0 0x4ac20000 0x0 0x2000>,
660dc283d2SAlexandre Torgue		      <0x0 0x4ac40000 0x0 0x2000>,
670dc283d2SAlexandre Torgue		      <0x0 0x4ac60000 0x0 0x2000>;
680dc283d2SAlexandre Torgue	};
690dc283d2SAlexandre Torgue
704c8e8ea7SYann Gautier	timer {
710dc283d2SAlexandre Torgue		compatible = "arm,armv8-timer";
720dc283d2SAlexandre Torgue		interrupt-parent = <&intc>;
730dc283d2SAlexandre Torgue		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
740dc283d2SAlexandre Torgue			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
750dc283d2SAlexandre Torgue			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
760dc283d2SAlexandre Torgue			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
770dc283d2SAlexandre Torgue		always-on;
780dc283d2SAlexandre Torgue	};
790dc283d2SAlexandre Torgue
800dc283d2SAlexandre Torgue	soc@0 {
810dc283d2SAlexandre Torgue		compatible = "simple-bus";
820dc283d2SAlexandre Torgue		#address-cells = <1>;
830dc283d2SAlexandre Torgue		#size-cells = <1>;
840dc283d2SAlexandre Torgue		interrupt-parent = <&intc>;
850dc283d2SAlexandre Torgue		ranges = <0x0 0x0 0x0 0x80000000>;
860dc283d2SAlexandre Torgue
870dc283d2SAlexandre Torgue		rifsc: rifsc@42080000 {
880dc283d2SAlexandre Torgue			compatible = "st,stm32mp25-rifsc";
890dc283d2SAlexandre Torgue			reg = <0x42080000 0x1000>;
900dc283d2SAlexandre Torgue			#address-cells = <1>;
910dc283d2SAlexandre Torgue			#size-cells = <1>;
920dc283d2SAlexandre Torgue
930dc283d2SAlexandre Torgue			usart2: serial@400e0000 {
940dc283d2SAlexandre Torgue				compatible = "st,stm32h7-uart";
950dc283d2SAlexandre Torgue				reg = <0x400e0000 0x400>;
960dc283d2SAlexandre Torgue				clocks = <&rcc CK_KER_USART2>;
970dc283d2SAlexandre Torgue				resets = <&rcc USART2_R>;
980dc283d2SAlexandre Torgue				status = "disabled";
990dc283d2SAlexandre Torgue			};
1003879761fSYann Gautier
1013879761fSYann Gautier			sdmmc1: mmc@48220000 {
1023879761fSYann Gautier				compatible = "st,stm32mp25-sdmmc2", "arm,pl18x", "arm,primecell";
1033879761fSYann Gautier				arm,primecell-periphid = <0x00353180>;
1043879761fSYann Gautier				reg = <0x48220000 0x400>, <0x44230400 0x8>;
1053879761fSYann Gautier				clocks = <&rcc CK_KER_SDMMC1>;
1063879761fSYann Gautier				clock-names = "apb_pclk";
1073879761fSYann Gautier				resets = <&rcc SDMMC1_R>;
1083879761fSYann Gautier				cap-sd-highspeed;
1093879761fSYann Gautier				cap-mmc-highspeed;
1103879761fSYann Gautier				max-frequency = <120000000>;
1113879761fSYann Gautier				status = "disabled";
1123879761fSYann Gautier			};
1133879761fSYann Gautier
1143879761fSYann Gautier			sdmmc2: mmc@48230000 {
1153879761fSYann Gautier				compatible = "st,stm32mp25-sdmmc2", "arm,pl18x", "arm,primecell";
1163879761fSYann Gautier				arm,primecell-periphid = <0x00353180>;
1173879761fSYann Gautier				reg = <0x48230000 0x400>, <0x44230800 0x8>;
1183879761fSYann Gautier				clocks = <&rcc CK_KER_SDMMC2>;
1193879761fSYann Gautier				clock-names = "apb_pclk";
1203879761fSYann Gautier				resets = <&rcc SDMMC2_R>;
1213879761fSYann Gautier				cap-sd-highspeed;
1223879761fSYann Gautier				cap-mmc-highspeed;
1233879761fSYann Gautier				max-frequency = <120000000>;
1243879761fSYann Gautier				status = "disabled";
1253879761fSYann Gautier			};
1260dc283d2SAlexandre Torgue		};
1270dc283d2SAlexandre Torgue
128c238a46aSYann Gautier		bsec: efuse@44000000 {
129c238a46aSYann Gautier			compatible = "st,stm32mp25-bsec";
130c238a46aSYann Gautier			reg = <0x44000000 0x400>;
131c238a46aSYann Gautier			#address-cells = <1>;
132c238a46aSYann Gautier			#size-cells = <1>;
133c238a46aSYann Gautier
134c238a46aSYann Gautier			uid_otp: uid-otp@14 {
135c238a46aSYann Gautier				reg = <0x14 0xc>;
136c238a46aSYann Gautier			};
137c238a46aSYann Gautier			part_number_otp: part-number-otp@24 {
138c238a46aSYann Gautier				reg = <0x24 0x4>;
139c238a46aSYann Gautier			};
140c238a46aSYann Gautier			nand_otp: otp16@40 {
141c238a46aSYann Gautier				reg = <0x40 0x4>;
142c238a46aSYann Gautier			};
143c238a46aSYann Gautier			lifecycle2_otp: otp18@48 {
144c238a46aSYann Gautier				reg = <0x48 0x4>;
145c238a46aSYann Gautier			};
146c238a46aSYann Gautier			nand2_otp: otp20@50 {
147c238a46aSYann Gautier				reg = <0x50 0x4>;
148c238a46aSYann Gautier			};
149*381b2a6bSYann Gautier			rev_otp@198 {
150*381b2a6bSYann Gautier				reg = <0x198 0x4>;
151*381b2a6bSYann Gautier			};
152c238a46aSYann Gautier			package_otp: package-otp@1e8 {
153c238a46aSYann Gautier				reg = <0x1e8 0x1>;
154c238a46aSYann Gautier			};
155c238a46aSYann Gautier			hconf1_otp: otp124@1f0 {
156c238a46aSYann Gautier				reg = <0x1f0 0x4>;
157c238a46aSYann Gautier			};
158c238a46aSYann Gautier			pkh_otp: otp144@240 {
159c238a46aSYann Gautier				reg = <0x240 0x20>;
160c238a46aSYann Gautier			};
161c238a46aSYann Gautier			oem_fip_enc_key: otp260@410 {
162c238a46aSYann Gautier				reg = <0x410 0x20>;
163c238a46aSYann Gautier			};
164c238a46aSYann Gautier		};
165c238a46aSYann Gautier
1660dc283d2SAlexandre Torgue		rcc: rcc@44200000 {
1670dc283d2SAlexandre Torgue			compatible = "st,stm32mp25-rcc";
1680dc283d2SAlexandre Torgue			reg = <0x44200000 0x10000>;
1690dc283d2SAlexandre Torgue			#clock-cells = <1>;
1700dc283d2SAlexandre Torgue			#reset-cells = <1>;
1710dc283d2SAlexandre Torgue		};
1720dc283d2SAlexandre Torgue
1730dc283d2SAlexandre Torgue		pwr: pwr@44210000 {
1740dc283d2SAlexandre Torgue			compatible = "st,stm32mp25-pwr";
1750dc283d2SAlexandre Torgue			reg = <0x44210000 0x400>;
1760dc283d2SAlexandre Torgue
1770dc283d2SAlexandre Torgue			vddio1: vddio1 {
1780dc283d2SAlexandre Torgue				regulator-name = "vddio1";
1790dc283d2SAlexandre Torgue			};
1800dc283d2SAlexandre Torgue
1810dc283d2SAlexandre Torgue			vddio2: vddio2 {
1820dc283d2SAlexandre Torgue				regulator-name = "vddio2";
1830dc283d2SAlexandre Torgue			};
1840dc283d2SAlexandre Torgue
1850dc283d2SAlexandre Torgue			vddio3: vddio3 {
1860dc283d2SAlexandre Torgue				regulator-name = "vddio3";
1870dc283d2SAlexandre Torgue			};
1880dc283d2SAlexandre Torgue
1890dc283d2SAlexandre Torgue			vddio4: vddio4 {
1900dc283d2SAlexandre Torgue				regulator-name = "vddio4";
1910dc283d2SAlexandre Torgue			};
1920dc283d2SAlexandre Torgue
1930dc283d2SAlexandre Torgue			vddio: vddio {
1940dc283d2SAlexandre Torgue				regulator-name = "vddio";
1950dc283d2SAlexandre Torgue			};
1960dc283d2SAlexandre Torgue		};
1970dc283d2SAlexandre Torgue
1980dc283d2SAlexandre Torgue		syscfg: syscon@44230000 {
1990dc283d2SAlexandre Torgue			compatible = "st,stm32mp25-syscfg", "syscon";
2000dc283d2SAlexandre Torgue			reg = <0x44230000 0x10000>;
2010dc283d2SAlexandre Torgue		};
2020dc283d2SAlexandre Torgue
2030dc283d2SAlexandre Torgue		pinctrl: pinctrl@44240000 {
2040dc283d2SAlexandre Torgue			#address-cells = <1>;
2050dc283d2SAlexandre Torgue			#size-cells = <1>;
2060dc283d2SAlexandre Torgue			compatible = "st,stm32mp257-pinctrl";
2070dc283d2SAlexandre Torgue			ranges = <0 0x44240000 0xa0400>;
2080dc283d2SAlexandre Torgue
2090dc283d2SAlexandre Torgue			gpioa: gpio@44240000 {
2100dc283d2SAlexandre Torgue				gpio-controller;
2110dc283d2SAlexandre Torgue				#gpio-cells = <2>;
2120dc283d2SAlexandre Torgue				interrupt-controller;
2130dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
2140dc283d2SAlexandre Torgue				reg = <0x0 0x400>;
2150dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOA>;
2160dc283d2SAlexandre Torgue				st,bank-name = "GPIOA";
2170dc283d2SAlexandre Torgue				status = "disabled";
2180dc283d2SAlexandre Torgue			};
2190dc283d2SAlexandre Torgue
2200dc283d2SAlexandre Torgue			gpiob: gpio@44250000 {
2210dc283d2SAlexandre Torgue				gpio-controller;
2220dc283d2SAlexandre Torgue				#gpio-cells = <2>;
2230dc283d2SAlexandre Torgue				interrupt-controller;
2240dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
2250dc283d2SAlexandre Torgue				reg = <0x10000 0x400>;
2260dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOB>;
2270dc283d2SAlexandre Torgue				st,bank-name = "GPIOB";
2280dc283d2SAlexandre Torgue				status = "disabled";
2290dc283d2SAlexandre Torgue			};
2300dc283d2SAlexandre Torgue
2310dc283d2SAlexandre Torgue			gpioc: gpio@44260000 {
2320dc283d2SAlexandre Torgue				gpio-controller;
2330dc283d2SAlexandre Torgue				#gpio-cells = <2>;
2340dc283d2SAlexandre Torgue				interrupt-controller;
2350dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
2360dc283d2SAlexandre Torgue				reg = <0x20000 0x400>;
2370dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOC>;
2380dc283d2SAlexandre Torgue				st,bank-name = "GPIOC";
2390dc283d2SAlexandre Torgue				status = "disabled";
2400dc283d2SAlexandre Torgue			};
2410dc283d2SAlexandre Torgue
2420dc283d2SAlexandre Torgue			gpiod: gpio@44270000 {
2430dc283d2SAlexandre Torgue				gpio-controller;
2440dc283d2SAlexandre Torgue				#gpio-cells = <2>;
2450dc283d2SAlexandre Torgue				interrupt-controller;
2460dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
2470dc283d2SAlexandre Torgue				reg = <0x30000 0x400>;
2480dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOD>;
2490dc283d2SAlexandre Torgue				st,bank-name = "GPIOD";
2500dc283d2SAlexandre Torgue				status = "disabled";
2510dc283d2SAlexandre Torgue			};
2520dc283d2SAlexandre Torgue
2530dc283d2SAlexandre Torgue			gpioe: gpio@44280000 {
2540dc283d2SAlexandre Torgue				gpio-controller;
2550dc283d2SAlexandre Torgue				#gpio-cells = <2>;
2560dc283d2SAlexandre Torgue				interrupt-controller;
2570dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
2580dc283d2SAlexandre Torgue				reg = <0x40000 0x400>;
2590dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOE>;
2600dc283d2SAlexandre Torgue				st,bank-name = "GPIOE";
2610dc283d2SAlexandre Torgue				status = "disabled";
2620dc283d2SAlexandre Torgue			};
2630dc283d2SAlexandre Torgue
2640dc283d2SAlexandre Torgue			gpiof: gpio@44290000 {
2650dc283d2SAlexandre Torgue				gpio-controller;
2660dc283d2SAlexandre Torgue				#gpio-cells = <2>;
2670dc283d2SAlexandre Torgue				interrupt-controller;
2680dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
2690dc283d2SAlexandre Torgue				reg = <0x50000 0x400>;
2700dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOF>;
2710dc283d2SAlexandre Torgue				st,bank-name = "GPIOF";
2720dc283d2SAlexandre Torgue				status = "disabled";
2730dc283d2SAlexandre Torgue			};
2740dc283d2SAlexandre Torgue
2750dc283d2SAlexandre Torgue			gpiog: gpio@442a0000 {
2760dc283d2SAlexandre Torgue				gpio-controller;
2770dc283d2SAlexandre Torgue				#gpio-cells = <2>;
2780dc283d2SAlexandre Torgue				interrupt-controller;
2790dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
2800dc283d2SAlexandre Torgue				reg = <0x60000 0x400>;
2810dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOG>;
2820dc283d2SAlexandre Torgue				st,bank-name = "GPIOG";
2830dc283d2SAlexandre Torgue				status = "disabled";
2840dc283d2SAlexandre Torgue			};
2850dc283d2SAlexandre Torgue
2860dc283d2SAlexandre Torgue			gpioh: gpio@442b0000 {
2870dc283d2SAlexandre Torgue				gpio-controller;
2880dc283d2SAlexandre Torgue				#gpio-cells = <2>;
2890dc283d2SAlexandre Torgue				interrupt-controller;
2900dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
2910dc283d2SAlexandre Torgue				reg = <0x70000 0x400>;
2920dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOH>;
2930dc283d2SAlexandre Torgue				st,bank-name = "GPIOH";
2940dc283d2SAlexandre Torgue				status = "disabled";
2950dc283d2SAlexandre Torgue			};
2960dc283d2SAlexandre Torgue
2970dc283d2SAlexandre Torgue			gpioi: gpio@442c0000 {
2980dc283d2SAlexandre Torgue				gpio-controller;
2990dc283d2SAlexandre Torgue				#gpio-cells = <2>;
3000dc283d2SAlexandre Torgue				interrupt-controller;
3010dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
3020dc283d2SAlexandre Torgue				reg = <0x80000 0x400>;
3030dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOI>;
3040dc283d2SAlexandre Torgue				st,bank-name = "GPIOI";
3050dc283d2SAlexandre Torgue				status = "disabled";
3060dc283d2SAlexandre Torgue			};
3070dc283d2SAlexandre Torgue
3080dc283d2SAlexandre Torgue			gpioj: gpio@442d0000 {
3090dc283d2SAlexandre Torgue				gpio-controller;
3100dc283d2SAlexandre Torgue				#gpio-cells = <2>;
3110dc283d2SAlexandre Torgue				interrupt-controller;
3120dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
3130dc283d2SAlexandre Torgue				reg = <0x90000 0x400>;
3140dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOJ>;
3150dc283d2SAlexandre Torgue				st,bank-name = "GPIOJ";
3160dc283d2SAlexandre Torgue				status = "disabled";
3170dc283d2SAlexandre Torgue			};
3180dc283d2SAlexandre Torgue
3190dc283d2SAlexandre Torgue			gpiok: gpio@442e0000 {
3200dc283d2SAlexandre Torgue				gpio-controller;
3210dc283d2SAlexandre Torgue				#gpio-cells = <2>;
3220dc283d2SAlexandre Torgue				interrupt-controller;
3230dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
3240dc283d2SAlexandre Torgue				reg = <0xa0000 0x400>;
3250dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOK>;
3260dc283d2SAlexandre Torgue				st,bank-name = "GPIOK";
3270dc283d2SAlexandre Torgue				status = "disabled";
3280dc283d2SAlexandre Torgue			};
3290dc283d2SAlexandre Torgue		};
3300dc283d2SAlexandre Torgue
3310dc283d2SAlexandre Torgue		pinctrl_z: pinctrl@46200000 {
3320dc283d2SAlexandre Torgue			#address-cells = <1>;
3330dc283d2SAlexandre Torgue			#size-cells = <1>;
3340dc283d2SAlexandre Torgue			compatible = "st,stm32mp257-z-pinctrl";
3350dc283d2SAlexandre Torgue			ranges = <0 0x46200000 0x400>;
3360dc283d2SAlexandre Torgue
3370dc283d2SAlexandre Torgue			gpioz: gpio@46200000 {
3380dc283d2SAlexandre Torgue				gpio-controller;
3390dc283d2SAlexandre Torgue				#gpio-cells = <2>;
3400dc283d2SAlexandre Torgue				interrupt-controller;
3410dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
3420dc283d2SAlexandre Torgue				reg = <0 0x400>;
3430dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOZ>;
3440dc283d2SAlexandre Torgue				st,bank-name = "GPIOZ";
3450dc283d2SAlexandre Torgue				st,bank-ioport = <11>;
3460dc283d2SAlexandre Torgue				status = "disabled";
3470dc283d2SAlexandre Torgue			};
3480dc283d2SAlexandre Torgue
3490dc283d2SAlexandre Torgue		};
3500dc283d2SAlexandre Torgue	};
3510dc283d2SAlexandre Torgue};
352