xref: /rk3399_ARM-atf/fdts/stm32mp157c-ed1.dts (revision 4391e5edea930810e68d087ddeb02d06886d891d)
1587f60faSYann Gautier// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2587f60faSYann Gautier/*
3b8816d3cSYann Gautier * Copyright (c) 2017-2024, STMicroelectronics - All Rights Reserved
4587f60faSYann Gautier * Author: Ludovic Barre <ludovic.barre@st.com> for STMicroelectronics.
5587f60faSYann Gautier */
6587f60faSYann Gautier/dts-v1/;
7587f60faSYann Gautier
8277d6af5SYann Gautier#include "stm32mp157.dtsi"
9277d6af5SYann Gautier#include "stm32mp15xc.dtsi"
10277d6af5SYann Gautier#include "stm32mp15-pinctrl.dtsi"
11277d6af5SYann Gautier#include "stm32mp15xxaa-pinctrl.dtsi"
12277d6af5SYann Gautier#include <dt-bindings/clock/stm32mp1-clksrc.h>
13277d6af5SYann Gautier#include "stm32mp15-ddr3-2x4Gb-1066-binG.dtsi"
14587f60faSYann Gautier
15587f60faSYann Gautier/ {
16c948f771SYann Gautier	model = "STMicroelectronics STM32MP157C eval daughter";
17587f60faSYann Gautier	compatible = "st,stm32mp157c-ed1", "st,stm32mp157";
18587f60faSYann Gautier
194c8e8ea7SYann Gautier	aliases {
204c8e8ea7SYann Gautier		serial0 = &uart4;
214c8e8ea7SYann Gautier	};
224c8e8ea7SYann Gautier
23587f60faSYann Gautier	chosen {
24c948f771SYann Gautier		stdout-path = "serial0:115200n8";
25587f60faSYann Gautier	};
26c948f771SYann Gautier
27277d6af5SYann Gautier	memory@c0000000 {
28277d6af5SYann Gautier		device_type = "memory";
29277d6af5SYann Gautier		reg = <0xC0000000 0x40000000>;
30277d6af5SYann Gautier	};
31c948f771SYann Gautier};
32c948f771SYann Gautier
33277d6af5SYann Gautier&bsec {
34b8816d3cSYann Gautier	board_id: board-id@ec {
35277d6af5SYann Gautier		reg = <0xec 0x4>;
36375b79bbSNicolas Le Bayon		st,non-secure-otp;
37277d6af5SYann Gautier	};
38277d6af5SYann Gautier};
39277d6af5SYann Gautier
40c948f771SYann Gautier&clk_hse {
41c948f771SYann Gautier	st,digbypass;
42587f60faSYann Gautier};
43587f60faSYann Gautier
44277d6af5SYann Gautier&cpu0 {
45277d6af5SYann Gautier	cpu-supply = <&vddcore>;
46277d6af5SYann Gautier};
47277d6af5SYann Gautier
48277d6af5SYann Gautier&cpu1 {
49277d6af5SYann Gautier	cpu-supply = <&vddcore>;
50277d6af5SYann Gautier};
51277d6af5SYann Gautier
52277d6af5SYann Gautier&cryp1 {
53277d6af5SYann Gautier	status = "okay";
54277d6af5SYann Gautier};
55277d6af5SYann Gautier
56b37b52efSYann Gautier&hash1 {
57b37b52efSYann Gautier	status = "okay";
58b37b52efSYann Gautier};
59b37b52efSYann Gautier
60587f60faSYann Gautier&i2c4 {
61587f60faSYann Gautier	pinctrl-names = "default";
62587f60faSYann Gautier	pinctrl-0 = <&i2c4_pins_a>;
63587f60faSYann Gautier	i2c-scl-rising-time-ns = <185>;
64587f60faSYann Gautier	i2c-scl-falling-time-ns = <20>;
65277d6af5SYann Gautier	clock-frequency = <400000>;
66587f60faSYann Gautier	status = "okay";
67587f60faSYann Gautier
6823684d0eSYann Gautier	pmic: stpmic@33 {
6923684d0eSYann Gautier		compatible = "st,stpmic1";
70587f60faSYann Gautier		reg = <0x33>;
71c948f771SYann Gautier		interrupts-extended = <&exti_pwr 55 IRQ_TYPE_EDGE_FALLING>;
72c948f771SYann Gautier		interrupt-controller;
73c948f771SYann Gautier		#interrupt-cells = <2>;
74587f60faSYann Gautier		status = "okay";
75587f60faSYann Gautier
76587f60faSYann Gautier		regulators {
7723684d0eSYann Gautier			compatible = "st,stpmic1-regulators";
78c948f771SYann Gautier			ldo1-supply = <&v3v3>;
79c948f771SYann Gautier			ldo2-supply = <&v3v3>;
80c948f771SYann Gautier			ldo3-supply = <&vdd_ddr>;
81c948f771SYann Gautier			ldo5-supply = <&v3v3>;
82c948f771SYann Gautier			ldo6-supply = <&v3v3>;
83277d6af5SYann Gautier			pwr_sw1-supply = <&bst_out>;
84277d6af5SYann Gautier			pwr_sw2-supply = <&bst_out>;
85c948f771SYann Gautier
86c948f771SYann Gautier			vddcore: buck1 {
87c948f771SYann Gautier				regulator-name = "vddcore";
88d82d4ff0SYann Gautier				regulator-min-microvolt = <1200000>;
89c948f771SYann Gautier				regulator-max-microvolt = <1350000>;
90c948f771SYann Gautier				regulator-always-on;
91c948f771SYann Gautier				regulator-initial-mode = <0>;
92c948f771SYann Gautier				regulator-over-current-protection;
93c948f771SYann Gautier			};
94c948f771SYann Gautier
95c948f771SYann Gautier			vdd_ddr: buck2 {
96c948f771SYann Gautier				regulator-name = "vdd_ddr";
97c948f771SYann Gautier				regulator-min-microvolt = <1350000>;
98c948f771SYann Gautier				regulator-max-microvolt = <1350000>;
99c948f771SYann Gautier				regulator-always-on;
100c948f771SYann Gautier				regulator-initial-mode = <0>;
101c948f771SYann Gautier				regulator-over-current-protection;
102c948f771SYann Gautier			};
103c948f771SYann Gautier
104c948f771SYann Gautier			vdd: buck3 {
105c948f771SYann Gautier				regulator-name = "vdd";
106c948f771SYann Gautier				regulator-min-microvolt = <3300000>;
107c948f771SYann Gautier				regulator-max-microvolt = <3300000>;
108c948f771SYann Gautier				regulator-always-on;
109c948f771SYann Gautier				st,mask-reset;
110c948f771SYann Gautier				regulator-initial-mode = <0>;
111c948f771SYann Gautier				regulator-over-current-protection;
112c948f771SYann Gautier			};
113c948f771SYann Gautier
114587f60faSYann Gautier			v3v3: buck4 {
115587f60faSYann Gautier				regulator-name = "v3v3";
116587f60faSYann Gautier				regulator-min-microvolt = <3300000>;
117587f60faSYann Gautier				regulator-max-microvolt = <3300000>;
118c948f771SYann Gautier				regulator-always-on;
119587f60faSYann Gautier				regulator-over-current-protection;
120c948f771SYann Gautier				regulator-initial-mode = <0>;
121c948f771SYann Gautier			};
122587f60faSYann Gautier
123c948f771SYann Gautier			vdda: ldo1 {
124c948f771SYann Gautier				regulator-name = "vdda";
125c948f771SYann Gautier				regulator-min-microvolt = <2900000>;
126c948f771SYann Gautier				regulator-max-microvolt = <2900000>;
127587f60faSYann Gautier			};
128c948f771SYann Gautier
129c948f771SYann Gautier			v2v8: ldo2 {
130c948f771SYann Gautier				regulator-name = "v2v8";
131c948f771SYann Gautier				regulator-min-microvolt = <2800000>;
132c948f771SYann Gautier				regulator-max-microvolt = <2800000>;
133587f60faSYann Gautier			};
134c948f771SYann Gautier
135c948f771SYann Gautier			vtt_ddr: ldo3 {
136c948f771SYann Gautier				regulator-name = "vtt_ddr";
137c948f771SYann Gautier				regulator-always-on;
138c948f771SYann Gautier				regulator-over-current-protection;
13967d95409SPascal Paillet				st,regulator-sink-source;
140587f60faSYann Gautier			};
141c948f771SYann Gautier
142c948f771SYann Gautier			vdd_usb: ldo4 {
143c948f771SYann Gautier				regulator-name = "vdd_usb";
14467d95409SPascal Paillet				regulator-min-microvolt = <3300000>;
14567d95409SPascal Paillet				regulator-max-microvolt = <3300000>;
146587f60faSYann Gautier			};
147587f60faSYann Gautier
148587f60faSYann Gautier			vdd_sd: ldo5 {
149587f60faSYann Gautier				regulator-name = "vdd_sd";
150587f60faSYann Gautier				regulator-min-microvolt = <2900000>;
151587f60faSYann Gautier				regulator-max-microvolt = <2900000>;
152587f60faSYann Gautier				regulator-boot-on;
153c948f771SYann Gautier			};
154587f60faSYann Gautier
155c948f771SYann Gautier			v1v8: ldo6 {
156c948f771SYann Gautier				regulator-name = "v1v8";
157c948f771SYann Gautier				regulator-min-microvolt = <1800000>;
158c948f771SYann Gautier				regulator-max-microvolt = <1800000>;
159587f60faSYann Gautier			};
160c948f771SYann Gautier
161c948f771SYann Gautier			vref_ddr: vref_ddr {
162c948f771SYann Gautier				regulator-name = "vref_ddr";
163c948f771SYann Gautier				regulator-always-on;
164587f60faSYann Gautier			};
165277d6af5SYann Gautier
166277d6af5SYann Gautier			bst_out: boost {
167277d6af5SYann Gautier				regulator-name = "bst_out";
168277d6af5SYann Gautier			};
169277d6af5SYann Gautier
170277d6af5SYann Gautier			vbus_otg: pwr_sw1 {
171277d6af5SYann Gautier				regulator-name = "vbus_otg";
172277d6af5SYann Gautier			};
173277d6af5SYann Gautier
174277d6af5SYann Gautier			vbus_sw: pwr_sw2 {
175277d6af5SYann Gautier				regulator-name = "vbus_sw";
176277d6af5SYann Gautier				regulator-active-discharge = <1>;
177277d6af5SYann Gautier			};
178277d6af5SYann Gautier		};
179587f60faSYann Gautier	};
180587f60faSYann Gautier};
181587f60faSYann Gautier
182587f60faSYann Gautier&iwdg2 {
183587f60faSYann Gautier	timeout-sec = <32>;
184587f60faSYann Gautier	status = "okay";
185587f60faSYann Gautier};
186587f60faSYann Gautier
187277d6af5SYann Gautier&pwr_regulators {
188f33b2433SYann Gautier	vdd-supply = <&vdd>;
189277d6af5SYann Gautier	vdd_3v3_usbfs-supply = <&vdd_usb>;
190f33b2433SYann Gautier};
191f33b2433SYann Gautier
192587f60faSYann Gautier&rcc {
193587f60faSYann Gautier	st,clksrc = <
194587f60faSYann Gautier		CLK_MPU_PLL1P
195587f60faSYann Gautier		CLK_AXI_PLL2P
196b053a22eSYann Gautier		CLK_MCU_PLL3P
197587f60faSYann Gautier		CLK_RTC_LSE
198587f60faSYann Gautier		CLK_MCO1_DISABLED
199587f60faSYann Gautier		CLK_MCO2_DISABLED
200587f60faSYann Gautier		CLK_CKPER_HSE
201587f60faSYann Gautier		CLK_FMC_ACLK
202587f60faSYann Gautier		CLK_QSPI_ACLK
2033e881a88SYann Gautier		CLK_ETH_PLL4P
204c948f771SYann Gautier		CLK_SDMMC12_PLL4P
205587f60faSYann Gautier		CLK_DSI_DSIPLL
206587f60faSYann Gautier		CLK_STGEN_HSE
207587f60faSYann Gautier		CLK_USBPHY_HSE
208587f60faSYann Gautier		CLK_SPI2S1_PLL3Q
209587f60faSYann Gautier		CLK_SPI2S23_PLL3Q
210587f60faSYann Gautier		CLK_SPI45_HSI
211587f60faSYann Gautier		CLK_SPI6_HSI
212587f60faSYann Gautier		CLK_I2C46_HSI
213c948f771SYann Gautier		CLK_SDMMC3_PLL4P
214587f60faSYann Gautier		CLK_USBO_USBPHY
215587f60faSYann Gautier		CLK_ADC_CKPER
216587f60faSYann Gautier		CLK_CEC_LSE
217587f60faSYann Gautier		CLK_I2C12_HSI
218587f60faSYann Gautier		CLK_I2C35_HSI
219587f60faSYann Gautier		CLK_UART1_HSI
220587f60faSYann Gautier		CLK_UART24_HSI
221587f60faSYann Gautier		CLK_UART35_HSI
222587f60faSYann Gautier		CLK_UART6_HSI
223587f60faSYann Gautier		CLK_UART78_HSI
224c948f771SYann Gautier		CLK_SPDIF_PLL4P
2252dc9fe70SAntonio Borneo		CLK_FDCAN_PLL4R
226587f60faSYann Gautier		CLK_SAI1_PLL3Q
227587f60faSYann Gautier		CLK_SAI2_PLL3Q
228587f60faSYann Gautier		CLK_SAI3_PLL3Q
229587f60faSYann Gautier		CLK_SAI4_PLL3Q
230d594239dSLionel Debieve		CLK_RNG1_CSI
231c948f771SYann Gautier		CLK_RNG2_LSI
232587f60faSYann Gautier		CLK_LPTIM1_PCLK1
233587f60faSYann Gautier		CLK_LPTIM23_PCLK3
234c948f771SYann Gautier		CLK_LPTIM45_LSE
235587f60faSYann Gautier	>;
236587f60faSYann Gautier
237*4391e5edSGabriel Fernandez	st,clkdiv = <
238*4391e5edSGabriel Fernandez		DIV(DIV_MPU, 1)
239*4391e5edSGabriel Fernandez		DIV(DIV_AXI, 0)
240*4391e5edSGabriel Fernandez		DIV(DIV_MCU, 0)
241*4391e5edSGabriel Fernandez		DIV(DIV_APB1, 1)
242*4391e5edSGabriel Fernandez		DIV(DIV_APB2, 1)
243*4391e5edSGabriel Fernandez		DIV(DIV_APB3, 1)
244*4391e5edSGabriel Fernandez		DIV(DIV_APB4, 1)
245*4391e5edSGabriel Fernandez		DIV(DIV_APB5, 2)
246*4391e5edSGabriel Fernandez		DIV(DIV_RTC, 23)
247*4391e5edSGabriel Fernandez		DIV(DIV_MCO1, 0)
248*4391e5edSGabriel Fernandez		DIV(DIV_MCO2, 0)
249*4391e5edSGabriel Fernandez	>;
250*4391e5edSGabriel Fernandez
251*4391e5edSGabriel Fernandez	st,pll_vco {
252*4391e5edSGabriel Fernandez		pll1_vco_1300Mhz: pll1-vco-1300Mhz {
253*4391e5edSGabriel Fernandez			src = < CLK_PLL12_HSE >;
254*4391e5edSGabriel Fernandez			divmn = < 2 80 >;
255*4391e5edSGabriel Fernandez			frac = < 0x800 >;
256*4391e5edSGabriel Fernandez		};
257*4391e5edSGabriel Fernandez
258*4391e5edSGabriel Fernandez		pll2_vco_1066Mhz: pll2-vco-1066Mhz {
259*4391e5edSGabriel Fernandez			src = <CLK_PLL12_HSE>;
260*4391e5edSGabriel Fernandez			divmn = <2 65>;
261*4391e5edSGabriel Fernandez			frac = <0x1400>;
262*4391e5edSGabriel Fernandez		};
263*4391e5edSGabriel Fernandez
264*4391e5edSGabriel Fernandez		pll3_vco_417Mhz: pll3-vco-417Mhz {
265*4391e5edSGabriel Fernandez			src = <CLK_PLL3_HSE>;
266*4391e5edSGabriel Fernandez			divmn = <1 33>;
267*4391e5edSGabriel Fernandez			frac = <0x1a04>;
268*4391e5edSGabriel Fernandez		};
269*4391e5edSGabriel Fernandez
270*4391e5edSGabriel Fernandez		pll4_vco_594Mhz: pll4-vco-594Mhz {
271*4391e5edSGabriel Fernandez			src = <CLK_PLL4_HSE>;
272*4391e5edSGabriel Fernandez			divmn = <3 98>;
273*4391e5edSGabriel Fernandez		};
274*4391e5edSGabriel Fernandez	};
275*4391e5edSGabriel Fernandez
276587f60faSYann Gautier	/* VCO = 1300.0 MHz => P = 650 (CPU) */
277587f60faSYann Gautier	pll1: st,pll@0 {
278cdbbb9f7SYann Gautier		compatible = "st,stm32mp1-pll";
279cdbbb9f7SYann Gautier		reg = <0>;
280*4391e5edSGabriel Fernandez
281*4391e5edSGabriel Fernandez		st,pll = < &pll1_cfg1 >;
282*4391e5edSGabriel Fernandez
283*4391e5edSGabriel Fernandez		pll1_cfg1: pll1_cfg1 {
284*4391e5edSGabriel Fernandez			st,pll_vco = < &pll1_vco_1300Mhz >;
285*4391e5edSGabriel Fernandez			st,pll_div_pqr = < 0 0 0 >;
286*4391e5edSGabriel Fernandez		};
287587f60faSYann Gautier	};
288587f60faSYann Gautier
289587f60faSYann Gautier	/* VCO = 1066.0 MHz => P = 266 (AXI), Q = 533 (GPU), R = 533 (DDR) */
290587f60faSYann Gautier	pll2: st,pll@1 {
291cdbbb9f7SYann Gautier		compatible = "st,stm32mp1-pll";
292cdbbb9f7SYann Gautier		reg = <1>;
293*4391e5edSGabriel Fernandez
294*4391e5edSGabriel Fernandez		st,pll = <&pll2_cfg1>;
295*4391e5edSGabriel Fernandez
296*4391e5edSGabriel Fernandez		pll2_cfg1: pll2_cfg1 {
297*4391e5edSGabriel Fernandez			st,pll_vco = <&pll2_vco_1066Mhz>;
298*4391e5edSGabriel Fernandez			st,pll_div_pqr = <1 0 0>;
299*4391e5edSGabriel Fernandez		};
300587f60faSYann Gautier	};
301587f60faSYann Gautier
302c948f771SYann Gautier	/* VCO = 417.8 MHz => P = 209, Q = 24, R = 11 */
303587f60faSYann Gautier	pll3: st,pll@2 {
304cdbbb9f7SYann Gautier		compatible = "st,stm32mp1-pll";
305cdbbb9f7SYann Gautier		reg = <2>;
306*4391e5edSGabriel Fernandez
307*4391e5edSGabriel Fernandez		st,pll = <&pll3_cfg1>;
308*4391e5edSGabriel Fernandez
309*4391e5edSGabriel Fernandez		pll3_cfg1: pll3_cfg1 {
310*4391e5edSGabriel Fernandez			st,pll_vco = <&pll3_vco_417Mhz>;
311*4391e5edSGabriel Fernandez			st,pll_div_pqr = <1 16 36>;
312*4391e5edSGabriel Fernandez		};
313587f60faSYann Gautier	};
314587f60faSYann Gautier
315c948f771SYann Gautier	/* VCO = 594.0 MHz => P = 99, Q = 74, R = 74 */
316587f60faSYann Gautier	pll4: st,pll@3 {
317cdbbb9f7SYann Gautier		compatible = "st,stm32mp1-pll";
318cdbbb9f7SYann Gautier		reg = <3>;
319*4391e5edSGabriel Fernandez
320*4391e5edSGabriel Fernandez		st,pll = <&pll4_cfg1>;
321*4391e5edSGabriel Fernandez
322*4391e5edSGabriel Fernandez		pll4_cfg1: pll4_cfg1 {
323*4391e5edSGabriel Fernandez			st,pll_vco = <&pll4_vco_594Mhz>;
324*4391e5edSGabriel Fernandez			st,pll_div_pqr = <5 7 7>;
325*4391e5edSGabriel Fernandez		};
326587f60faSYann Gautier	};
327587f60faSYann Gautier};
328587f60faSYann Gautier
329277d6af5SYann Gautier&rng1 {
330f237822fSYann Gautier	status = "okay";
331f237822fSYann Gautier};
332277d6af5SYann Gautier
333277d6af5SYann Gautier&rtc {
334277d6af5SYann Gautier	status = "okay";
335277d6af5SYann Gautier};
336277d6af5SYann Gautier
337277d6af5SYann Gautier&sdmmc1 {
338277d6af5SYann Gautier	pinctrl-names = "default";
339277d6af5SYann Gautier	pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
340277d6af5SYann Gautier	disable-wp;
341277d6af5SYann Gautier	st,sig-dir;
342277d6af5SYann Gautier	st,neg-edge;
343277d6af5SYann Gautier	st,use-ckin;
344277d6af5SYann Gautier	bus-width = <4>;
345277d6af5SYann Gautier	vmmc-supply = <&vdd_sd>;
346277d6af5SYann Gautier	sd-uhs-sdr12;
347277d6af5SYann Gautier	sd-uhs-sdr25;
348277d6af5SYann Gautier	sd-uhs-sdr50;
349277d6af5SYann Gautier	sd-uhs-ddr50;
350277d6af5SYann Gautier	status = "okay";
351277d6af5SYann Gautier};
352277d6af5SYann Gautier
353277d6af5SYann Gautier&sdmmc2 {
354277d6af5SYann Gautier	pinctrl-names = "default";
355277d6af5SYann Gautier	pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>;
356277d6af5SYann Gautier	non-removable;
357277d6af5SYann Gautier	no-sd;
358277d6af5SYann Gautier	no-sdio;
359277d6af5SYann Gautier	st,neg-edge;
360277d6af5SYann Gautier	bus-width = <8>;
361277d6af5SYann Gautier	vmmc-supply = <&v3v3>;
362277d6af5SYann Gautier	vqmmc-supply = <&vdd>;
363277d6af5SYann Gautier	mmc-ddr-3_3v;
364277d6af5SYann Gautier	status = "okay";
365277d6af5SYann Gautier};
366277d6af5SYann Gautier
367277d6af5SYann Gautier&uart4 {
368277d6af5SYann Gautier	pinctrl-names = "default";
369277d6af5SYann Gautier	pinctrl-0 = <&uart4_pins_a>;
370277d6af5SYann Gautier	status = "okay";
371f237822fSYann Gautier};
372