xref: /rk3399_ARM-atf/fdts/stm32mp257d-ultra-fly-sbc.dts (revision db7770ed3488a12713bd363df6cfd78855e3a501)
1*a4e31cf0SBoerge Struempfel// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause)
2*a4e31cf0SBoerge Struempfel/*
3*a4e31cf0SBoerge Struempfel * Copyright (C) 2025, Ultratronik GmbH
4*a4e31cf0SBoerge Struempfel * Copyright (C) STMicroelectronics 2025 - All Rights Reserved
5*a4e31cf0SBoerge Struempfel * Author: Boerge Struempfel <boerge.struempfel@gmail.com> for Ultratronik GmbH.
6*a4e31cf0SBoerge Struempfel */
7*a4e31cf0SBoerge Struempfel
8*a4e31cf0SBoerge Struempfel/dts-v1/;
9*a4e31cf0SBoerge Struempfel
10*a4e31cf0SBoerge Struempfel#include <dt-bindings/clock/stm32mp25-clksrc.h>
11*a4e31cf0SBoerge Struempfel#include "stm32mp257.dtsi"
12*a4e31cf0SBoerge Struempfel#include "stm32mp257d-ultra-fly-sbc-ca35tdcid-rcc.dtsi"
13*a4e31cf0SBoerge Struempfel#include "stm32mp25-lpddr4-2x16Gbits-32bits-1200MHz.dtsi"
14*a4e31cf0SBoerge Struempfel#include "stm32mp25-pinctrl.dtsi"
15*a4e31cf0SBoerge Struempfel#include "stm32mp25xxak-pinctrl.dtsi"
16*a4e31cf0SBoerge Struempfel
17*a4e31cf0SBoerge Struempfel/ {
18*a4e31cf0SBoerge Struempfel	model = "Ultratronik Ultra Fly SBC based on STM32MP257D";
19*a4e31cf0SBoerge Struempfel	compatible = "st,stm32mp257d-ultra-fly-sbc", "st,stm32mp257";
20*a4e31cf0SBoerge Struempfel
21*a4e31cf0SBoerge Struempfel	aliases {
22*a4e31cf0SBoerge Struempfel		serial0 = &usart1;
23*a4e31cf0SBoerge Struempfel	};
24*a4e31cf0SBoerge Struempfel
25*a4e31cf0SBoerge Struempfel	chosen {
26*a4e31cf0SBoerge Struempfel		stdout-path = "serial0:115200n8";
27*a4e31cf0SBoerge Struempfel	};
28*a4e31cf0SBoerge Struempfel
29*a4e31cf0SBoerge Struempfel	memory@80000000 {
30*a4e31cf0SBoerge Struempfel		device_type = "memory";
31*a4e31cf0SBoerge Struempfel		reg = <0x0 0x80000000 0x1 0x00000000>;
32*a4e31cf0SBoerge Struempfel	};
33*a4e31cf0SBoerge Struempfel};
34*a4e31cf0SBoerge Struempfel
35*a4e31cf0SBoerge Struempfel&ddr {
36*a4e31cf0SBoerge Struempfel	vdd1-supply = <&vdd1_ddr>;
37*a4e31cf0SBoerge Struempfel	vdd2-supply = <&vdd2_ddr>;
38*a4e31cf0SBoerge Struempfel	vddq-supply = <&vdd2_ddr>;
39*a4e31cf0SBoerge Struempfel};
40*a4e31cf0SBoerge Struempfel
41*a4e31cf0SBoerge Struempfel&i2c7 {
42*a4e31cf0SBoerge Struempfel	pinctrl-names = "default";
43*a4e31cf0SBoerge Struempfel	pinctrl-0 = <&i2c7_pins_a>;
44*a4e31cf0SBoerge Struempfel	i2c-scl-rising-time-ns = <185>;
45*a4e31cf0SBoerge Struempfel	i2c-scl-falling-time-ns = <20>;
46*a4e31cf0SBoerge Struempfel	clock-frequency = <400000>;
47*a4e31cf0SBoerge Struempfel	status = "okay";
48*a4e31cf0SBoerge Struempfel	#address-cells = <1>;
49*a4e31cf0SBoerge Struempfel	#size-cells = <0>;
50*a4e31cf0SBoerge Struempfel
51*a4e31cf0SBoerge Struempfel	pmic2: stpmic@33 {
52*a4e31cf0SBoerge Struempfel		compatible = "st,stpmic2";
53*a4e31cf0SBoerge Struempfel		reg = <0x33>;
54*a4e31cf0SBoerge Struempfel		status = "okay";
55*a4e31cf0SBoerge Struempfel
56*a4e31cf0SBoerge Struempfel		regulators {
57*a4e31cf0SBoerge Struempfel			compatible = "st,stpmic2-regulators";
58*a4e31cf0SBoerge Struempfel
59*a4e31cf0SBoerge Struempfel			vddcpu: buck1 {
60*a4e31cf0SBoerge Struempfel				regulator-name = "vddcpu";
61*a4e31cf0SBoerge Struempfel				regulator-min-microvolt = <800000>;
62*a4e31cf0SBoerge Struempfel				regulator-max-microvolt = <910000>;
63*a4e31cf0SBoerge Struempfel				regulator-always-on;
64*a4e31cf0SBoerge Struempfel			};
65*a4e31cf0SBoerge Struempfel			vddcore: buck2 {
66*a4e31cf0SBoerge Struempfel				regulator-name = "vddcore";
67*a4e31cf0SBoerge Struempfel				regulator-min-microvolt = <820000>;
68*a4e31cf0SBoerge Struempfel				regulator-max-microvolt = <820000>;
69*a4e31cf0SBoerge Struempfel				regulator-always-on;
70*a4e31cf0SBoerge Struempfel			};
71*a4e31cf0SBoerge Struempfel			vddgpu: buck3 {
72*a4e31cf0SBoerge Struempfel				regulator-name = "vddgpu";
73*a4e31cf0SBoerge Struempfel				regulator-min-microvolt = <800000>;
74*a4e31cf0SBoerge Struempfel				regulator-max-microvolt = <900000>;
75*a4e31cf0SBoerge Struempfel				regulator-always-on;
76*a4e31cf0SBoerge Struempfel			};
77*a4e31cf0SBoerge Struempfel			vddio_pmic: buck4 {
78*a4e31cf0SBoerge Struempfel				regulator-name = "vddio_pmic";
79*a4e31cf0SBoerge Struempfel				regulator-min-microvolt = <3300000>;
80*a4e31cf0SBoerge Struempfel				regulator-max-microvolt = <3300000>;
81*a4e31cf0SBoerge Struempfel				regulator-always-on;
82*a4e31cf0SBoerge Struempfel			};
83*a4e31cf0SBoerge Struempfel			v1v8: buck5 {
84*a4e31cf0SBoerge Struempfel				regulator-name = "v1v8";
85*a4e31cf0SBoerge Struempfel				regulator-min-microvolt = <1800000>;
86*a4e31cf0SBoerge Struempfel				regulator-max-microvolt = <1800000>;
87*a4e31cf0SBoerge Struempfel				regulator-always-on;
88*a4e31cf0SBoerge Struempfel			};
89*a4e31cf0SBoerge Struempfel			vdd2_ddr: buck6 {
90*a4e31cf0SBoerge Struempfel				regulator-name = "vdd2_ddr";
91*a4e31cf0SBoerge Struempfel				regulator-min-microvolt = <1100000>;
92*a4e31cf0SBoerge Struempfel				regulator-max-microvolt = <1100000>;
93*a4e31cf0SBoerge Struempfel			};
94*a4e31cf0SBoerge Struempfel			v3v3: buck7 {
95*a4e31cf0SBoerge Struempfel				regulator-name = "v3v3";
96*a4e31cf0SBoerge Struempfel				regulator-min-microvolt = <3300000>;
97*a4e31cf0SBoerge Struempfel				regulator-max-microvolt = <3300000>;
98*a4e31cf0SBoerge Struempfel				regulator-always-on;
99*a4e31cf0SBoerge Struempfel			};
100*a4e31cf0SBoerge Struempfel			vdda1v8_aon: ldo1 {
101*a4e31cf0SBoerge Struempfel				regulator-name = "vdda1v8_aon";
102*a4e31cf0SBoerge Struempfel				regulator-min-microvolt = <1800000>;
103*a4e31cf0SBoerge Struempfel				regulator-max-microvolt = <1800000>;
104*a4e31cf0SBoerge Struempfel				regulator-always-on;
105*a4e31cf0SBoerge Struempfel			};
106*a4e31cf0SBoerge Struempfel			vdd_emmc: ldo2 {
107*a4e31cf0SBoerge Struempfel				regulator-name = "vdd_emmc";
108*a4e31cf0SBoerge Struempfel				regulator-min-microvolt = <3300000>;
109*a4e31cf0SBoerge Struempfel				regulator-max-microvolt = <3300000>;
110*a4e31cf0SBoerge Struempfel				regulator-always-on;
111*a4e31cf0SBoerge Struempfel			};
112*a4e31cf0SBoerge Struempfel			vdd1_ddr: ldo3 {
113*a4e31cf0SBoerge Struempfel				regulator-name = "vdd1_ddr";
114*a4e31cf0SBoerge Struempfel				regulator-min-microvolt = <1800000>;
115*a4e31cf0SBoerge Struempfel				regulator-max-microvolt = <1800000>;
116*a4e31cf0SBoerge Struempfel				regulator-enable-ramp-delay = <1000>;
117*a4e31cf0SBoerge Struempfel			};
118*a4e31cf0SBoerge Struempfel			vdd3v3_usb: ldo4 {
119*a4e31cf0SBoerge Struempfel				regulator-name = "vdd3v3_usb";
120*a4e31cf0SBoerge Struempfel				regulator-min-microvolt = <3300000>;
121*a4e31cf0SBoerge Struempfel				regulator-max-microvolt = <3300000>;
122*a4e31cf0SBoerge Struempfel				regulator-always-on;
123*a4e31cf0SBoerge Struempfel			};
124*a4e31cf0SBoerge Struempfel			vdd_sdcard: ldo7 {
125*a4e31cf0SBoerge Struempfel				regulator-name = "vdd_sdcard";
126*a4e31cf0SBoerge Struempfel				regulator-min-microvolt = <3300000>;
127*a4e31cf0SBoerge Struempfel				regulator-max-microvolt = <3300000>;
128*a4e31cf0SBoerge Struempfel				regulator-always-on;
129*a4e31cf0SBoerge Struempfel			};
130*a4e31cf0SBoerge Struempfel			vddio_sdcard: ldo8 {
131*a4e31cf0SBoerge Struempfel				regulator-name = "vddio_sdcard";
132*a4e31cf0SBoerge Struempfel				st,regulator-bypass-microvolt = <3300000>;
133*a4e31cf0SBoerge Struempfel				regulator-min-microvolt = <1800000>;
134*a4e31cf0SBoerge Struempfel				regulator-max-microvolt = <3300000>;
135*a4e31cf0SBoerge Struempfel				regulator-always-on;
136*a4e31cf0SBoerge Struempfel			};
137*a4e31cf0SBoerge Struempfel		};
138*a4e31cf0SBoerge Struempfel	};
139*a4e31cf0SBoerge Struempfel};
140*a4e31cf0SBoerge Struempfel
141*a4e31cf0SBoerge Struempfel&pwr {
142*a4e31cf0SBoerge Struempfel	vddio1: vddio1 {
143*a4e31cf0SBoerge Struempfel		vddio1-supply = <&vddio_sdcard>;
144*a4e31cf0SBoerge Struempfel	};
145*a4e31cf0SBoerge Struempfel	vddio2: vddio2 {
146*a4e31cf0SBoerge Struempfel		vddio2-supply = <&v1v8>;
147*a4e31cf0SBoerge Struempfel	};
148*a4e31cf0SBoerge Struempfel	vddio3: vddio3 {
149*a4e31cf0SBoerge Struempfel		vddio3-supply = <&vddio_pmic>;
150*a4e31cf0SBoerge Struempfel	};
151*a4e31cf0SBoerge Struempfel	vddio4: vddio4 {
152*a4e31cf0SBoerge Struempfel		vddio4-supply = <&vddio_pmic>;
153*a4e31cf0SBoerge Struempfel	};
154*a4e31cf0SBoerge Struempfel	vddio: vddio {
155*a4e31cf0SBoerge Struempfel		vdd-supply = <&vddio_pmic>;
156*a4e31cf0SBoerge Struempfel	};
157*a4e31cf0SBoerge Struempfel};
158*a4e31cf0SBoerge Struempfel
159*a4e31cf0SBoerge Struempfel&sdmmc1 {
160*a4e31cf0SBoerge Struempfel	pinctrl-names = "default";
161*a4e31cf0SBoerge Struempfel	pinctrl-0 = <&sdmmc1_b4_pins_a>;
162*a4e31cf0SBoerge Struempfel	st,neg-edge;
163*a4e31cf0SBoerge Struempfel	bus-width = <4>;
164*a4e31cf0SBoerge Struempfel	vmmc-supply = <&vdd_sdcard>;
165*a4e31cf0SBoerge Struempfel	vqmmc-supply = <&vddio1>;
166*a4e31cf0SBoerge Struempfel	status = "okay";
167*a4e31cf0SBoerge Struempfel};
168*a4e31cf0SBoerge Struempfel
169*a4e31cf0SBoerge Struempfel&sdmmc2 {
170*a4e31cf0SBoerge Struempfel	pinctrl-names = "default";
171*a4e31cf0SBoerge Struempfel	pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>;
172*a4e31cf0SBoerge Struempfel	non-removable;
173*a4e31cf0SBoerge Struempfel	no-sd;
174*a4e31cf0SBoerge Struempfel	no-sdio;
175*a4e31cf0SBoerge Struempfel	st,neg-edge;
176*a4e31cf0SBoerge Struempfel	bus-width = <8>;
177*a4e31cf0SBoerge Struempfel	vmmc-supply = <&vdd_emmc>;
178*a4e31cf0SBoerge Struempfel	vqmmc-supply = <&vddio2>;
179*a4e31cf0SBoerge Struempfel	status = "okay";
180*a4e31cf0SBoerge Struempfel};
181*a4e31cf0SBoerge Struempfel
182*a4e31cf0SBoerge Struempfel&usart1 {
183*a4e31cf0SBoerge Struempfel	pinctrl-names = "default";
184*a4e31cf0SBoerge Struempfel	pinctrl-0 = <&usart1_pins_a>;
185*a4e31cf0SBoerge Struempfel	status = "okay";
186*a4e31cf0SBoerge Struempfel};
187*a4e31cf0SBoerge Struempfel
188*a4e31cf0SBoerge Struempfel&pinctrl {
189*a4e31cf0SBoerge Struempfel	usart1_pins_a: usart1-0 {
190*a4e31cf0SBoerge Struempfel		pins1 {
191*a4e31cf0SBoerge Struempfel			pinmux = <STM32_PINMUX('A', 3, AF6)>; /* USART1_TX */
192*a4e31cf0SBoerge Struempfel			bias-disable;
193*a4e31cf0SBoerge Struempfel			drive-push-pull;
194*a4e31cf0SBoerge Struempfel			slew-rate = <0>;
195*a4e31cf0SBoerge Struempfel		};
196*a4e31cf0SBoerge Struempfel		pins2 {
197*a4e31cf0SBoerge Struempfel			pinmux = <STM32_PINMUX('G', 15, AF6)>; /* USART1_RX */
198*a4e31cf0SBoerge Struempfel			bias-disable;
199*a4e31cf0SBoerge Struempfel		};
200*a4e31cf0SBoerge Struempfel	};
201*a4e31cf0SBoerge Struempfel};
202