xref: /rk3399_ARM-atf/fdts/stm32mp251.dtsi (revision c238a46a76660cbfa9ed40da4b1d0e5d477c3dd7)
10dc283d2SAlexandre Torgue// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause)
20dc283d2SAlexandre Torgue/*
3*c238a46aSYann 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			};
1000dc283d2SAlexandre Torgue		};
1010dc283d2SAlexandre Torgue
102*c238a46aSYann Gautier		bsec: efuse@44000000 {
103*c238a46aSYann Gautier			compatible = "st,stm32mp25-bsec";
104*c238a46aSYann Gautier			reg = <0x44000000 0x400>;
105*c238a46aSYann Gautier			#address-cells = <1>;
106*c238a46aSYann Gautier			#size-cells = <1>;
107*c238a46aSYann Gautier
108*c238a46aSYann Gautier			uid_otp: uid-otp@14 {
109*c238a46aSYann Gautier				reg = <0x14 0xc>;
110*c238a46aSYann Gautier			};
111*c238a46aSYann Gautier			part_number_otp: part-number-otp@24 {
112*c238a46aSYann Gautier				reg = <0x24 0x4>;
113*c238a46aSYann Gautier			};
114*c238a46aSYann Gautier			nand_otp: otp16@40 {
115*c238a46aSYann Gautier				reg = <0x40 0x4>;
116*c238a46aSYann Gautier			};
117*c238a46aSYann Gautier			lifecycle2_otp: otp18@48 {
118*c238a46aSYann Gautier				reg = <0x48 0x4>;
119*c238a46aSYann Gautier			};
120*c238a46aSYann Gautier			nand2_otp: otp20@50 {
121*c238a46aSYann Gautier				reg = <0x50 0x4>;
122*c238a46aSYann Gautier			};
123*c238a46aSYann Gautier			package_otp: package-otp@1e8 {
124*c238a46aSYann Gautier				reg = <0x1e8 0x1>;
125*c238a46aSYann Gautier			};
126*c238a46aSYann Gautier			hconf1_otp: otp124@1f0 {
127*c238a46aSYann Gautier				reg = <0x1f0 0x4>;
128*c238a46aSYann Gautier			};
129*c238a46aSYann Gautier			pkh_otp: otp144@240 {
130*c238a46aSYann Gautier				reg = <0x240 0x20>;
131*c238a46aSYann Gautier			};
132*c238a46aSYann Gautier			oem_fip_enc_key: otp260@410 {
133*c238a46aSYann Gautier				reg = <0x410 0x20>;
134*c238a46aSYann Gautier			};
135*c238a46aSYann Gautier		};
136*c238a46aSYann Gautier
1370dc283d2SAlexandre Torgue		rcc: rcc@44200000 {
1380dc283d2SAlexandre Torgue			compatible = "st,stm32mp25-rcc";
1390dc283d2SAlexandre Torgue			reg = <0x44200000 0x10000>;
1400dc283d2SAlexandre Torgue			#clock-cells = <1>;
1410dc283d2SAlexandre Torgue			#reset-cells = <1>;
1420dc283d2SAlexandre Torgue		};
1430dc283d2SAlexandre Torgue
1440dc283d2SAlexandre Torgue		pwr: pwr@44210000 {
1450dc283d2SAlexandre Torgue			compatible = "st,stm32mp25-pwr";
1460dc283d2SAlexandre Torgue			reg = <0x44210000 0x400>;
1470dc283d2SAlexandre Torgue
1480dc283d2SAlexandre Torgue			vddio1: vddio1 {
1490dc283d2SAlexandre Torgue				regulator-name = "vddio1";
1500dc283d2SAlexandre Torgue			};
1510dc283d2SAlexandre Torgue
1520dc283d2SAlexandre Torgue			vddio2: vddio2 {
1530dc283d2SAlexandre Torgue				regulator-name = "vddio2";
1540dc283d2SAlexandre Torgue			};
1550dc283d2SAlexandre Torgue
1560dc283d2SAlexandre Torgue			vddio3: vddio3 {
1570dc283d2SAlexandre Torgue				regulator-name = "vddio3";
1580dc283d2SAlexandre Torgue			};
1590dc283d2SAlexandre Torgue
1600dc283d2SAlexandre Torgue			vddio4: vddio4 {
1610dc283d2SAlexandre Torgue				regulator-name = "vddio4";
1620dc283d2SAlexandre Torgue			};
1630dc283d2SAlexandre Torgue
1640dc283d2SAlexandre Torgue			vddio: vddio {
1650dc283d2SAlexandre Torgue				regulator-name = "vddio";
1660dc283d2SAlexandre Torgue			};
1670dc283d2SAlexandre Torgue		};
1680dc283d2SAlexandre Torgue
1690dc283d2SAlexandre Torgue		syscfg: syscon@44230000 {
1700dc283d2SAlexandre Torgue			compatible = "st,stm32mp25-syscfg", "syscon";
1710dc283d2SAlexandre Torgue			reg = <0x44230000 0x10000>;
1720dc283d2SAlexandre Torgue		};
1730dc283d2SAlexandre Torgue
1740dc283d2SAlexandre Torgue		pinctrl: pinctrl@44240000 {
1750dc283d2SAlexandre Torgue			#address-cells = <1>;
1760dc283d2SAlexandre Torgue			#size-cells = <1>;
1770dc283d2SAlexandre Torgue			compatible = "st,stm32mp257-pinctrl";
1780dc283d2SAlexandre Torgue			ranges = <0 0x44240000 0xa0400>;
1790dc283d2SAlexandre Torgue			pins-are-numbered;
1800dc283d2SAlexandre Torgue
1810dc283d2SAlexandre Torgue			gpioa: gpio@44240000 {
1820dc283d2SAlexandre Torgue				gpio-controller;
1830dc283d2SAlexandre Torgue				#gpio-cells = <2>;
1840dc283d2SAlexandre Torgue				interrupt-controller;
1850dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
1860dc283d2SAlexandre Torgue				reg = <0x0 0x400>;
1870dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOA>;
1880dc283d2SAlexandre Torgue				st,bank-name = "GPIOA";
1890dc283d2SAlexandre Torgue				status = "disabled";
1900dc283d2SAlexandre Torgue			};
1910dc283d2SAlexandre Torgue
1920dc283d2SAlexandre Torgue			gpiob: gpio@44250000 {
1930dc283d2SAlexandre Torgue				gpio-controller;
1940dc283d2SAlexandre Torgue				#gpio-cells = <2>;
1950dc283d2SAlexandre Torgue				interrupt-controller;
1960dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
1970dc283d2SAlexandre Torgue				reg = <0x10000 0x400>;
1980dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOB>;
1990dc283d2SAlexandre Torgue				st,bank-name = "GPIOB";
2000dc283d2SAlexandre Torgue				status = "disabled";
2010dc283d2SAlexandre Torgue			};
2020dc283d2SAlexandre Torgue
2030dc283d2SAlexandre Torgue			gpioc: gpio@44260000 {
2040dc283d2SAlexandre Torgue				gpio-controller;
2050dc283d2SAlexandre Torgue				#gpio-cells = <2>;
2060dc283d2SAlexandre Torgue				interrupt-controller;
2070dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
2080dc283d2SAlexandre Torgue				reg = <0x20000 0x400>;
2090dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOC>;
2100dc283d2SAlexandre Torgue				st,bank-name = "GPIOC";
2110dc283d2SAlexandre Torgue				status = "disabled";
2120dc283d2SAlexandre Torgue			};
2130dc283d2SAlexandre Torgue
2140dc283d2SAlexandre Torgue			gpiod: gpio@44270000 {
2150dc283d2SAlexandre Torgue				gpio-controller;
2160dc283d2SAlexandre Torgue				#gpio-cells = <2>;
2170dc283d2SAlexandre Torgue				interrupt-controller;
2180dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
2190dc283d2SAlexandre Torgue				reg = <0x30000 0x400>;
2200dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOD>;
2210dc283d2SAlexandre Torgue				st,bank-name = "GPIOD";
2220dc283d2SAlexandre Torgue				status = "disabled";
2230dc283d2SAlexandre Torgue			};
2240dc283d2SAlexandre Torgue
2250dc283d2SAlexandre Torgue			gpioe: gpio@44280000 {
2260dc283d2SAlexandre Torgue				gpio-controller;
2270dc283d2SAlexandre Torgue				#gpio-cells = <2>;
2280dc283d2SAlexandre Torgue				interrupt-controller;
2290dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
2300dc283d2SAlexandre Torgue				reg = <0x40000 0x400>;
2310dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOE>;
2320dc283d2SAlexandre Torgue				st,bank-name = "GPIOE";
2330dc283d2SAlexandre Torgue				status = "disabled";
2340dc283d2SAlexandre Torgue			};
2350dc283d2SAlexandre Torgue
2360dc283d2SAlexandre Torgue			gpiof: gpio@44290000 {
2370dc283d2SAlexandre Torgue				gpio-controller;
2380dc283d2SAlexandre Torgue				#gpio-cells = <2>;
2390dc283d2SAlexandre Torgue				interrupt-controller;
2400dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
2410dc283d2SAlexandre Torgue				reg = <0x50000 0x400>;
2420dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOF>;
2430dc283d2SAlexandre Torgue				st,bank-name = "GPIOF";
2440dc283d2SAlexandre Torgue				status = "disabled";
2450dc283d2SAlexandre Torgue			};
2460dc283d2SAlexandre Torgue
2470dc283d2SAlexandre Torgue			gpiog: gpio@442a0000 {
2480dc283d2SAlexandre Torgue				gpio-controller;
2490dc283d2SAlexandre Torgue				#gpio-cells = <2>;
2500dc283d2SAlexandre Torgue				interrupt-controller;
2510dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
2520dc283d2SAlexandre Torgue				reg = <0x60000 0x400>;
2530dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOG>;
2540dc283d2SAlexandre Torgue				st,bank-name = "GPIOG";
2550dc283d2SAlexandre Torgue				status = "disabled";
2560dc283d2SAlexandre Torgue			};
2570dc283d2SAlexandre Torgue
2580dc283d2SAlexandre Torgue			gpioh: gpio@442b0000 {
2590dc283d2SAlexandre Torgue				gpio-controller;
2600dc283d2SAlexandre Torgue				#gpio-cells = <2>;
2610dc283d2SAlexandre Torgue				interrupt-controller;
2620dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
2630dc283d2SAlexandre Torgue				reg = <0x70000 0x400>;
2640dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOH>;
2650dc283d2SAlexandre Torgue				st,bank-name = "GPIOH";
2660dc283d2SAlexandre Torgue				status = "disabled";
2670dc283d2SAlexandre Torgue			};
2680dc283d2SAlexandre Torgue
2690dc283d2SAlexandre Torgue			gpioi: gpio@442c0000 {
2700dc283d2SAlexandre Torgue				gpio-controller;
2710dc283d2SAlexandre Torgue				#gpio-cells = <2>;
2720dc283d2SAlexandre Torgue				interrupt-controller;
2730dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
2740dc283d2SAlexandre Torgue				reg = <0x80000 0x400>;
2750dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOI>;
2760dc283d2SAlexandre Torgue				st,bank-name = "GPIOI";
2770dc283d2SAlexandre Torgue				status = "disabled";
2780dc283d2SAlexandre Torgue			};
2790dc283d2SAlexandre Torgue
2800dc283d2SAlexandre Torgue			gpioj: gpio@442d0000 {
2810dc283d2SAlexandre Torgue				gpio-controller;
2820dc283d2SAlexandre Torgue				#gpio-cells = <2>;
2830dc283d2SAlexandre Torgue				interrupt-controller;
2840dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
2850dc283d2SAlexandre Torgue				reg = <0x90000 0x400>;
2860dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOJ>;
2870dc283d2SAlexandre Torgue				st,bank-name = "GPIOJ";
2880dc283d2SAlexandre Torgue				status = "disabled";
2890dc283d2SAlexandre Torgue			};
2900dc283d2SAlexandre Torgue
2910dc283d2SAlexandre Torgue			gpiok: gpio@442e0000 {
2920dc283d2SAlexandre Torgue				gpio-controller;
2930dc283d2SAlexandre Torgue				#gpio-cells = <2>;
2940dc283d2SAlexandre Torgue				interrupt-controller;
2950dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
2960dc283d2SAlexandre Torgue				reg = <0xa0000 0x400>;
2970dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOK>;
2980dc283d2SAlexandre Torgue				st,bank-name = "GPIOK";
2990dc283d2SAlexandre Torgue				status = "disabled";
3000dc283d2SAlexandre Torgue			};
3010dc283d2SAlexandre Torgue		};
3020dc283d2SAlexandre Torgue
3030dc283d2SAlexandre Torgue		pinctrl_z: pinctrl@46200000 {
3040dc283d2SAlexandre Torgue			#address-cells = <1>;
3050dc283d2SAlexandre Torgue			#size-cells = <1>;
3060dc283d2SAlexandre Torgue			compatible = "st,stm32mp257-z-pinctrl";
3070dc283d2SAlexandre Torgue			ranges = <0 0x46200000 0x400>;
3080dc283d2SAlexandre Torgue			pins-are-numbered;
3090dc283d2SAlexandre Torgue
3100dc283d2SAlexandre Torgue			gpioz: gpio@46200000 {
3110dc283d2SAlexandre Torgue				gpio-controller;
3120dc283d2SAlexandre Torgue				#gpio-cells = <2>;
3130dc283d2SAlexandre Torgue				interrupt-controller;
3140dc283d2SAlexandre Torgue				#interrupt-cells = <2>;
3150dc283d2SAlexandre Torgue				reg = <0 0x400>;
3160dc283d2SAlexandre Torgue				clocks = <&rcc CK_BUS_GPIOZ>;
3170dc283d2SAlexandre Torgue				st,bank-name = "GPIOZ";
3180dc283d2SAlexandre Torgue				st,bank-ioport = <11>;
3190dc283d2SAlexandre Torgue				status = "disabled";
3200dc283d2SAlexandre Torgue			};
3210dc283d2SAlexandre Torgue
3220dc283d2SAlexandre Torgue		};
3230dc283d2SAlexandre Torgue	};
3240dc283d2SAlexandre Torgue};
325