xref: /rk3399_ARM-atf/fdts/stm32mp135f-dk.dts (revision 2b7f7b751f4b0f7a8a0f4a35407af22cc269e529)
1*2b7f7b75SYann Gautier// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2*2b7f7b75SYann Gautier/*
3*2b7f7b75SYann Gautier * Copyright (C) STMicroelectronics 2022 - All Rights Reserved
4*2b7f7b75SYann Gautier * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
5*2b7f7b75SYann Gautier */
6*2b7f7b75SYann Gautier
7*2b7f7b75SYann Gautier/dts-v1/;
8*2b7f7b75SYann Gautier
9*2b7f7b75SYann Gautier#include <dt-bindings/clock/stm32mp13-clksrc.h>
10*2b7f7b75SYann Gautier#include "stm32mp135.dtsi"
11*2b7f7b75SYann Gautier#include "stm32mp13xf.dtsi"
12*2b7f7b75SYann Gautier#include "stm32mp13-ddr3-1x4Gb-1066-binF.dtsi"
13*2b7f7b75SYann Gautier#include "stm32mp13-pinctrl.dtsi"
14*2b7f7b75SYann Gautier
15*2b7f7b75SYann Gautier/ {
16*2b7f7b75SYann Gautier	model = "STMicroelectronics STM32MP135F-DK Discovery Board";
17*2b7f7b75SYann Gautier	compatible = "st,stm32mp135f-dk", "st,stm32mp135";
18*2b7f7b75SYann Gautier
19*2b7f7b75SYann Gautier	aliases {
20*2b7f7b75SYann Gautier		serial0 = &uart4;
21*2b7f7b75SYann Gautier		serial1 = &usart1;
22*2b7f7b75SYann Gautier		serial2 = &uart8;
23*2b7f7b75SYann Gautier		serial3 = &usart2;
24*2b7f7b75SYann Gautier	};
25*2b7f7b75SYann Gautier
26*2b7f7b75SYann Gautier	chosen {
27*2b7f7b75SYann Gautier		stdout-path = "serial0:115200n8";
28*2b7f7b75SYann Gautier	};
29*2b7f7b75SYann Gautier
30*2b7f7b75SYann Gautier	memory@c0000000 {
31*2b7f7b75SYann Gautier		device_type = "memory";
32*2b7f7b75SYann Gautier		reg = <0xc0000000 0x20000000>;
33*2b7f7b75SYann Gautier	};
34*2b7f7b75SYann Gautier
35*2b7f7b75SYann Gautier	vin: vin {
36*2b7f7b75SYann Gautier		compatible = "regulator-fixed";
37*2b7f7b75SYann Gautier		regulator-name = "vin";
38*2b7f7b75SYann Gautier		regulator-min-microvolt = <5000000>;
39*2b7f7b75SYann Gautier		regulator-max-microvolt = <5000000>;
40*2b7f7b75SYann Gautier		regulator-always-on;
41*2b7f7b75SYann Gautier	};
42*2b7f7b75SYann Gautier
43*2b7f7b75SYann Gautier	v3v3_ao: v3v3_ao {
44*2b7f7b75SYann Gautier		compatible = "regulator-fixed";
45*2b7f7b75SYann Gautier		regulator-name = "v3v3_ao";
46*2b7f7b75SYann Gautier		regulator-min-microvolt = <3300000>;
47*2b7f7b75SYann Gautier		regulator-max-microvolt = <3300000>;
48*2b7f7b75SYann Gautier		regulator-always-on;
49*2b7f7b75SYann Gautier	};
50*2b7f7b75SYann Gautier};
51*2b7f7b75SYann Gautier
52*2b7f7b75SYann Gautier&bsec {
53*2b7f7b75SYann Gautier	board_id: board_id@f0 {
54*2b7f7b75SYann Gautier		reg = <0xf0 0x4>;
55*2b7f7b75SYann Gautier		st,non-secure-otp;
56*2b7f7b75SYann Gautier	};
57*2b7f7b75SYann Gautier};
58*2b7f7b75SYann Gautier
59*2b7f7b75SYann Gautier&cpu0 {
60*2b7f7b75SYann Gautier	cpu-supply = <&vddcpu>;
61*2b7f7b75SYann Gautier};
62*2b7f7b75SYann Gautier
63*2b7f7b75SYann Gautier&hash {
64*2b7f7b75SYann Gautier	status = "okay";
65*2b7f7b75SYann Gautier};
66*2b7f7b75SYann Gautier
67*2b7f7b75SYann Gautier&i2c4 {
68*2b7f7b75SYann Gautier	pinctrl-names = "default";
69*2b7f7b75SYann Gautier	pinctrl-0 = <&i2c4_pins_a>;
70*2b7f7b75SYann Gautier	i2c-scl-rising-time-ns = <185>;
71*2b7f7b75SYann Gautier	i2c-scl-falling-time-ns = <20>;
72*2b7f7b75SYann Gautier	clock-frequency = <400000>;
73*2b7f7b75SYann Gautier	status = "disabled";
74*2b7f7b75SYann Gautier	secure-status = "okay";
75*2b7f7b75SYann Gautier
76*2b7f7b75SYann Gautier	pmic: stpmic@33 {
77*2b7f7b75SYann Gautier		compatible = "st,stpmic1";
78*2b7f7b75SYann Gautier		reg = <0x33>;
79*2b7f7b75SYann Gautier
80*2b7f7b75SYann Gautier		status = "disabled";
81*2b7f7b75SYann Gautier		secure-status = "okay";
82*2b7f7b75SYann Gautier
83*2b7f7b75SYann Gautier		regulators {
84*2b7f7b75SYann Gautier			compatible = "st,stpmic1-regulators";
85*2b7f7b75SYann Gautier			buck1-supply = <&vin>;
86*2b7f7b75SYann Gautier			buck2-supply = <&vin>;
87*2b7f7b75SYann Gautier			buck3-supply = <&vin>;
88*2b7f7b75SYann Gautier			buck4-supply = <&vin>;
89*2b7f7b75SYann Gautier			ldo1-supply = <&vin>;
90*2b7f7b75SYann Gautier			ldo4-supply = <&vin>;
91*2b7f7b75SYann Gautier			ldo5-supply = <&vin>;
92*2b7f7b75SYann Gautier			ldo6-supply = <&vin>;
93*2b7f7b75SYann Gautier			vref_ddr-supply = <&vin>;
94*2b7f7b75SYann Gautier			pwr_sw1-supply = <&bst_out>;
95*2b7f7b75SYann Gautier			pwr_sw2-supply = <&v3v3_ao>;
96*2b7f7b75SYann Gautier
97*2b7f7b75SYann Gautier			vddcpu: buck1 {
98*2b7f7b75SYann Gautier				regulator-name = "vddcpu";
99*2b7f7b75SYann Gautier				regulator-min-microvolt = <1250000>;
100*2b7f7b75SYann Gautier				regulator-max-microvolt = <1250000>;
101*2b7f7b75SYann Gautier				regulator-always-on;
102*2b7f7b75SYann Gautier				regulator-over-current-protection;
103*2b7f7b75SYann Gautier			};
104*2b7f7b75SYann Gautier
105*2b7f7b75SYann Gautier			vdd_ddr: buck2 {
106*2b7f7b75SYann Gautier				regulator-name = "vdd_ddr";
107*2b7f7b75SYann Gautier				regulator-min-microvolt = <1350000>;
108*2b7f7b75SYann Gautier				regulator-max-microvolt = <1350000>;
109*2b7f7b75SYann Gautier				regulator-always-on;
110*2b7f7b75SYann Gautier				regulator-over-current-protection;
111*2b7f7b75SYann Gautier			};
112*2b7f7b75SYann Gautier
113*2b7f7b75SYann Gautier			vdd: buck3 {
114*2b7f7b75SYann Gautier				regulator-name = "vdd";
115*2b7f7b75SYann Gautier				regulator-min-microvolt = <3300000>;
116*2b7f7b75SYann Gautier				regulator-max-microvolt = <3300000>;
117*2b7f7b75SYann Gautier				regulator-always-on;
118*2b7f7b75SYann Gautier				st,mask-reset;
119*2b7f7b75SYann Gautier				regulator-over-current-protection;
120*2b7f7b75SYann Gautier			};
121*2b7f7b75SYann Gautier
122*2b7f7b75SYann Gautier			vddcore: buck4 {
123*2b7f7b75SYann Gautier				regulator-name = "vddcore";
124*2b7f7b75SYann Gautier				regulator-min-microvolt = <1250000>;
125*2b7f7b75SYann Gautier				regulator-max-microvolt = <1250000>;
126*2b7f7b75SYann Gautier				regulator-always-on;
127*2b7f7b75SYann Gautier				regulator-over-current-protection;
128*2b7f7b75SYann Gautier			};
129*2b7f7b75SYann Gautier
130*2b7f7b75SYann Gautier			vdd_adc: ldo1 {
131*2b7f7b75SYann Gautier				regulator-name = "vdd_adc";
132*2b7f7b75SYann Gautier				regulator-min-microvolt = <3300000>;
133*2b7f7b75SYann Gautier				regulator-max-microvolt = <3300000>;
134*2b7f7b75SYann Gautier			};
135*2b7f7b75SYann Gautier
136*2b7f7b75SYann Gautier			vdd_usb: ldo4 {
137*2b7f7b75SYann Gautier				regulator-name = "vdd_usb";
138*2b7f7b75SYann Gautier				regulator-min-microvolt = <3300000>;
139*2b7f7b75SYann Gautier				regulator-max-microvolt = <3300000>;
140*2b7f7b75SYann Gautier			};
141*2b7f7b75SYann Gautier
142*2b7f7b75SYann Gautier			vdd_sd: ldo5 {
143*2b7f7b75SYann Gautier				regulator-name = "vdd_sd";
144*2b7f7b75SYann Gautier				regulator-min-microvolt = <3300000>;
145*2b7f7b75SYann Gautier				regulator-max-microvolt = <3300000>;
146*2b7f7b75SYann Gautier				regulator-boot-on;
147*2b7f7b75SYann Gautier			};
148*2b7f7b75SYann Gautier
149*2b7f7b75SYann Gautier			v1v8_periph: ldo6 {
150*2b7f7b75SYann Gautier				regulator-name = "v1v8_periph";
151*2b7f7b75SYann Gautier				regulator-min-microvolt = <1800000>;
152*2b7f7b75SYann Gautier				regulator-max-microvolt = <1800000>;
153*2b7f7b75SYann Gautier			};
154*2b7f7b75SYann Gautier
155*2b7f7b75SYann Gautier			vref_ddr: vref_ddr {
156*2b7f7b75SYann Gautier				regulator-name = "vref_ddr";
157*2b7f7b75SYann Gautier				regulator-always-on;
158*2b7f7b75SYann Gautier			};
159*2b7f7b75SYann Gautier
160*2b7f7b75SYann Gautier			bst_out: boost {
161*2b7f7b75SYann Gautier				regulator-name = "bst_out";
162*2b7f7b75SYann Gautier			};
163*2b7f7b75SYann Gautier
164*2b7f7b75SYann Gautier			v3v3_sw: pwr_sw2 {
165*2b7f7b75SYann Gautier				regulator-name = "v3v3_sw";
166*2b7f7b75SYann Gautier				regulator-active-discharge = <1>;
167*2b7f7b75SYann Gautier				regulator-always-on;
168*2b7f7b75SYann Gautier			};
169*2b7f7b75SYann Gautier		};
170*2b7f7b75SYann Gautier	};
171*2b7f7b75SYann Gautier};
172*2b7f7b75SYann Gautier
173*2b7f7b75SYann Gautier&iwdg2 {
174*2b7f7b75SYann Gautier	timeout-sec = <32>;
175*2b7f7b75SYann Gautier	status = "okay";
176*2b7f7b75SYann Gautier};
177*2b7f7b75SYann Gautier
178*2b7f7b75SYann Gautier&nvmem_layout {
179*2b7f7b75SYann Gautier	nvmem-cells = <&cfg0_otp>,
180*2b7f7b75SYann Gautier		      <&part_number_otp>,
181*2b7f7b75SYann Gautier		      <&monotonic_otp>,
182*2b7f7b75SYann Gautier		      <&nand_otp>,
183*2b7f7b75SYann Gautier		      <&nand2_otp>,
184*2b7f7b75SYann Gautier		      <&uid_otp>,
185*2b7f7b75SYann Gautier		      <&hw2_otp>,
186*2b7f7b75SYann Gautier		      <&pkh_otp>,
187*2b7f7b75SYann Gautier		      <&board_id>;
188*2b7f7b75SYann Gautier
189*2b7f7b75SYann Gautier	nvmem-cell-names = "cfg0_otp",
190*2b7f7b75SYann Gautier			   "part_number_otp",
191*2b7f7b75SYann Gautier			   "monotonic_otp",
192*2b7f7b75SYann Gautier			   "nand_otp",
193*2b7f7b75SYann Gautier			   "nand2_otp",
194*2b7f7b75SYann Gautier			   "uid_otp",
195*2b7f7b75SYann Gautier			   "hw2_otp",
196*2b7f7b75SYann Gautier			   "pkh_otp",
197*2b7f7b75SYann Gautier			   "board_id";
198*2b7f7b75SYann Gautier};
199*2b7f7b75SYann Gautier
200*2b7f7b75SYann Gautier&pka {
201*2b7f7b75SYann Gautier	secure-status = "okay";
202*2b7f7b75SYann Gautier};
203*2b7f7b75SYann Gautier
204*2b7f7b75SYann Gautier&pwr_regulators {
205*2b7f7b75SYann Gautier	vdd-supply = <&vdd>;
206*2b7f7b75SYann Gautier	vdd_3v3_usbfs-supply = <&vdd_usb>;
207*2b7f7b75SYann Gautier};
208*2b7f7b75SYann Gautier
209*2b7f7b75SYann Gautier&rcc {
210*2b7f7b75SYann Gautier	st,clksrc = <
211*2b7f7b75SYann Gautier		CLK_MPU_PLL1P
212*2b7f7b75SYann Gautier		CLK_AXI_PLL2P
213*2b7f7b75SYann Gautier		CLK_MLAHBS_PLL3
214*2b7f7b75SYann Gautier		CLK_CKPER_HSE
215*2b7f7b75SYann Gautier		CLK_RTC_LSE
216*2b7f7b75SYann Gautier		CLK_SDMMC1_PLL4P
217*2b7f7b75SYann Gautier		CLK_SDMMC2_PLL4P
218*2b7f7b75SYann Gautier		CLK_STGEN_HSE
219*2b7f7b75SYann Gautier		CLK_USBPHY_HSE
220*2b7f7b75SYann Gautier		CLK_I2C4_HSI
221*2b7f7b75SYann Gautier		CLK_USBO_USBPHY
222*2b7f7b75SYann Gautier		CLK_I2C12_HSI
223*2b7f7b75SYann Gautier		CLK_UART2_HSI
224*2b7f7b75SYann Gautier		CLK_UART4_HSI
225*2b7f7b75SYann Gautier		CLK_SAES_AXI
226*2b7f7b75SYann Gautier	>;
227*2b7f7b75SYann Gautier
228*2b7f7b75SYann Gautier	st,clkdiv = <
229*2b7f7b75SYann Gautier		DIV(DIV_AXI, 0)
230*2b7f7b75SYann Gautier		DIV(DIV_MLAHB, 0)
231*2b7f7b75SYann Gautier		DIV(DIV_APB1, 1)
232*2b7f7b75SYann Gautier		DIV(DIV_APB2, 1)
233*2b7f7b75SYann Gautier		DIV(DIV_APB3, 1)
234*2b7f7b75SYann Gautier		DIV(DIV_APB4, 1)
235*2b7f7b75SYann Gautier		DIV(DIV_APB5, 2)
236*2b7f7b75SYann Gautier		DIV(DIV_APB6, 1)
237*2b7f7b75SYann Gautier		DIV(DIV_RTC, 0)
238*2b7f7b75SYann Gautier	>;
239*2b7f7b75SYann Gautier
240*2b7f7b75SYann Gautier	st,pll_vco {
241*2b7f7b75SYann Gautier		pll1_vco_1300Mhz: pll1-vco-1300Mhz {
242*2b7f7b75SYann Gautier			src = < CLK_PLL12_HSE >;
243*2b7f7b75SYann Gautier			divmn = < 2 80 >;
244*2b7f7b75SYann Gautier			frac = < 0x800 >;
245*2b7f7b75SYann Gautier		};
246*2b7f7b75SYann Gautier
247*2b7f7b75SYann Gautier		pll2_vco_1066Mhz: pll2-vco-1066Mhz {
248*2b7f7b75SYann Gautier			src = < CLK_PLL12_HSE >;
249*2b7f7b75SYann Gautier			divmn = < 2 65 >;
250*2b7f7b75SYann Gautier			frac = < 0x1400 >;
251*2b7f7b75SYann Gautier		};
252*2b7f7b75SYann Gautier
253*2b7f7b75SYann Gautier		pll3_vco_417_8Mhz: pll2-vco-417_8Mhz {
254*2b7f7b75SYann Gautier			src = < CLK_PLL3_HSE >;
255*2b7f7b75SYann Gautier			divmn = < 1 33 >;
256*2b7f7b75SYann Gautier			frac = < 0x1a04 >;
257*2b7f7b75SYann Gautier		};
258*2b7f7b75SYann Gautier
259*2b7f7b75SYann Gautier		pll4_vco_600Mhz: pll2-vco-600Mhz {
260*2b7f7b75SYann Gautier			src = < CLK_PLL4_HSE >;
261*2b7f7b75SYann Gautier			divmn = < 1 49 >;
262*2b7f7b75SYann Gautier		};
263*2b7f7b75SYann Gautier	};
264*2b7f7b75SYann Gautier
265*2b7f7b75SYann Gautier	/* VCO = 1300.0 MHz => P = 650 (CPU) */
266*2b7f7b75SYann Gautier	pll1:st,pll@0 {
267*2b7f7b75SYann Gautier		compatible = "st,stm32mp1-pll";
268*2b7f7b75SYann Gautier		reg = <0>;
269*2b7f7b75SYann Gautier
270*2b7f7b75SYann Gautier		st,pll = < &pll1_cfg1 >;
271*2b7f7b75SYann Gautier
272*2b7f7b75SYann Gautier		pll1_cfg1: pll1_cfg1 {
273*2b7f7b75SYann Gautier			st,pll_vco = < &pll1_vco_1300Mhz >;
274*2b7f7b75SYann Gautier			st,pll_div_pqr = < 0 1 1 >;
275*2b7f7b75SYann Gautier		};
276*2b7f7b75SYann Gautier	};
277*2b7f7b75SYann Gautier
278*2b7f7b75SYann Gautier	/* VCO = 1066.0 MHz => P = 266 (AXI), Q = 266, R = 533 (DDR) */
279*2b7f7b75SYann Gautier	pll2:st,pll@1 {
280*2b7f7b75SYann Gautier		compatible = "st,stm32mp1-pll";
281*2b7f7b75SYann Gautier		reg = <1>;
282*2b7f7b75SYann Gautier
283*2b7f7b75SYann Gautier		st,pll = < &pll2_cfg1 >;
284*2b7f7b75SYann Gautier
285*2b7f7b75SYann Gautier		pll2_cfg1: pll2_cfg1 {
286*2b7f7b75SYann Gautier			st,pll_vco = < &pll2_vco_1066Mhz >;
287*2b7f7b75SYann Gautier			st,pll_div_pqr = < 1 1 0 >;
288*2b7f7b75SYann Gautier		};
289*2b7f7b75SYann Gautier	};
290*2b7f7b75SYann Gautier
291*2b7f7b75SYann Gautier	/* VCO = 417.8 MHz => P = 209, Q = 24, R = 209 */
292*2b7f7b75SYann Gautier	pll3:st,pll@2 {
293*2b7f7b75SYann Gautier		compatible = "st,stm32mp1-pll";
294*2b7f7b75SYann Gautier		reg = <2>;
295*2b7f7b75SYann Gautier
296*2b7f7b75SYann Gautier		st,pll = < &pll3_cfg1 >;
297*2b7f7b75SYann Gautier
298*2b7f7b75SYann Gautier		pll3_cfg1: pll3_cfg1 {
299*2b7f7b75SYann Gautier			st,pll_vco = < &pll3_vco_417_8Mhz >;
300*2b7f7b75SYann Gautier			st,pll_div_pqr = < 1 16 1 >;
301*2b7f7b75SYann Gautier		};
302*2b7f7b75SYann Gautier	};
303*2b7f7b75SYann Gautier
304*2b7f7b75SYann Gautier	/* VCO = 600.0 MHz => P = 50, Q = 10, R = 100 */
305*2b7f7b75SYann Gautier	pll4:st,pll@3 {
306*2b7f7b75SYann Gautier		compatible = "st,stm32mp1-pll";
307*2b7f7b75SYann Gautier		reg = <3>;
308*2b7f7b75SYann Gautier
309*2b7f7b75SYann Gautier		st,pll = < &pll4_cfg1 >;
310*2b7f7b75SYann Gautier
311*2b7f7b75SYann Gautier		pll4_cfg1: pll4_cfg1 {
312*2b7f7b75SYann Gautier			st,pll_vco = < &pll4_vco_600Mhz >;
313*2b7f7b75SYann Gautier			st,pll_div_pqr = < 11 59 5 >;
314*2b7f7b75SYann Gautier		};
315*2b7f7b75SYann Gautier	};
316*2b7f7b75SYann Gautier};
317*2b7f7b75SYann Gautier
318*2b7f7b75SYann Gautier&rng {
319*2b7f7b75SYann Gautier	status = "okay";
320*2b7f7b75SYann Gautier};
321*2b7f7b75SYann Gautier
322*2b7f7b75SYann Gautier&saes {
323*2b7f7b75SYann Gautier	secure-status = "okay";
324*2b7f7b75SYann Gautier};
325*2b7f7b75SYann Gautier
326*2b7f7b75SYann Gautier&sdmmc1 {
327*2b7f7b75SYann Gautier	pinctrl-names = "default";
328*2b7f7b75SYann Gautier	pinctrl-0 = <&sdmmc1_b4_pins_a>;
329*2b7f7b75SYann Gautier	disable-wp;
330*2b7f7b75SYann Gautier	st,neg-edge;
331*2b7f7b75SYann Gautier	bus-width = <4>;
332*2b7f7b75SYann Gautier	vmmc-supply = <&vdd_sd>;
333*2b7f7b75SYann Gautier	status = "okay";
334*2b7f7b75SYann Gautier};
335*2b7f7b75SYann Gautier
336*2b7f7b75SYann Gautier&uart4 {
337*2b7f7b75SYann Gautier	pinctrl-names = "default";
338*2b7f7b75SYann Gautier	pinctrl-0 = <&uart4_pins_a>;
339*2b7f7b75SYann Gautier	status = "okay";
340*2b7f7b75SYann Gautier};
341*2b7f7b75SYann Gautier
342*2b7f7b75SYann Gautier&uart8 {
343*2b7f7b75SYann Gautier	pinctrl-names = "default";
344*2b7f7b75SYann Gautier	pinctrl-0 = <&uart8_pins_a>;
345*2b7f7b75SYann Gautier	status = "disabled";
346*2b7f7b75SYann Gautier};
347*2b7f7b75SYann Gautier
348*2b7f7b75SYann Gautier&usart1 {
349*2b7f7b75SYann Gautier	pinctrl-names = "default";
350*2b7f7b75SYann Gautier	pinctrl-0 = <&usart1_pins_a>;
351*2b7f7b75SYann Gautier	uart-has-rtscts;
352*2b7f7b75SYann Gautier	status = "disabled";
353*2b7f7b75SYann Gautier};
354