xref: /rk3399_ARM-atf/fdts/stm32mp15xx-dkx.dtsi (revision 4391e5edea930810e68d087ddeb02d06886d891d)
1277d6af5SYann Gautier// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2277d6af5SYann Gautier/*
3b8816d3cSYann Gautier * Copyright (c) 2019-2024, STMicroelectronics - All Rights Reserved
4277d6af5SYann Gautier * Author: Alexandre Torgue <alexandre.torgue@st.com> for STMicroelectronics.
5277d6af5SYann Gautier */
6277d6af5SYann Gautier
7277d6af5SYann Gautier#include <dt-bindings/clock/stm32mp1-clksrc.h>
8277d6af5SYann Gautier#include "stm32mp15-ddr3-1x4Gb-1066-binG.dtsi"
9277d6af5SYann Gautier
10277d6af5SYann Gautier/ {
114c8e8ea7SYann Gautier	aliases {
124c8e8ea7SYann Gautier		serial0 = &uart4;
134c8e8ea7SYann Gautier		serial1 = &usart3;
144c8e8ea7SYann Gautier		serial2 = &uart7;
154c8e8ea7SYann Gautier	};
164c8e8ea7SYann Gautier
17277d6af5SYann Gautier	memory@c0000000 {
18277d6af5SYann Gautier		device_type = "memory";
19277d6af5SYann Gautier		reg = <0xc0000000 0x20000000>;
20277d6af5SYann Gautier	};
21277d6af5SYann Gautier
22277d6af5SYann Gautier	vin: vin {
23277d6af5SYann Gautier		compatible = "regulator-fixed";
24277d6af5SYann Gautier		regulator-name = "vin";
25277d6af5SYann Gautier		regulator-min-microvolt = <5000000>;
26277d6af5SYann Gautier		regulator-max-microvolt = <5000000>;
27277d6af5SYann Gautier		regulator-always-on;
28277d6af5SYann Gautier	};
29277d6af5SYann Gautier};
30277d6af5SYann Gautier
31277d6af5SYann Gautier&bsec {
32b8816d3cSYann Gautier	board_id: board-id@ec {
33277d6af5SYann Gautier		reg = <0xec 0x4>;
34277d6af5SYann Gautier		st,non-secure-otp;
35277d6af5SYann Gautier	};
36277d6af5SYann Gautier};
37277d6af5SYann Gautier
38277d6af5SYann Gautier&clk_hse {
39277d6af5SYann Gautier	st,digbypass;
40277d6af5SYann Gautier};
41277d6af5SYann Gautier
42277d6af5SYann Gautier&cpu0 {
43277d6af5SYann Gautier	cpu-supply = <&vddcore>;
44277d6af5SYann Gautier};
45277d6af5SYann Gautier
46277d6af5SYann Gautier&cpu1 {
47277d6af5SYann Gautier	cpu-supply = <&vddcore>;
48277d6af5SYann Gautier};
49277d6af5SYann Gautier
50277d6af5SYann Gautier&hash1 {
51277d6af5SYann Gautier	status = "okay";
52277d6af5SYann Gautier};
53277d6af5SYann Gautier
54277d6af5SYann Gautier&i2c4 {
55277d6af5SYann Gautier	pinctrl-names = "default";
56277d6af5SYann Gautier	pinctrl-0 = <&i2c4_pins_a>;
57277d6af5SYann Gautier	i2c-scl-rising-time-ns = <185>;
58277d6af5SYann Gautier	i2c-scl-falling-time-ns = <20>;
59277d6af5SYann Gautier	clock-frequency = <400000>;
60277d6af5SYann Gautier	status = "okay";
61277d6af5SYann Gautier
62277d6af5SYann Gautier	pmic: stpmic@33 {
63277d6af5SYann Gautier		compatible = "st,stpmic1";
64277d6af5SYann Gautier		reg = <0x33>;
65277d6af5SYann Gautier		interrupts-extended = <&exti_pwr 55 IRQ_TYPE_EDGE_FALLING>;
66277d6af5SYann Gautier		interrupt-controller;
67277d6af5SYann Gautier		#interrupt-cells = <2>;
68277d6af5SYann Gautier		status = "okay";
69277d6af5SYann Gautier
70277d6af5SYann Gautier		regulators {
71277d6af5SYann Gautier			compatible = "st,stpmic1-regulators";
72277d6af5SYann Gautier			buck1-supply = <&vin>;
73277d6af5SYann Gautier			buck2-supply = <&vin>;
74277d6af5SYann Gautier			buck3-supply = <&vin>;
75277d6af5SYann Gautier			buck4-supply = <&vin>;
76277d6af5SYann Gautier			ldo1-supply = <&v3v3>;
77277d6af5SYann Gautier			ldo2-supply = <&vin>;
78277d6af5SYann Gautier			ldo3-supply = <&vdd_ddr>;
79277d6af5SYann Gautier			ldo4-supply = <&vin>;
80277d6af5SYann Gautier			ldo5-supply = <&vin>;
81277d6af5SYann Gautier			ldo6-supply = <&v3v3>;
82277d6af5SYann Gautier			vref_ddr-supply = <&vin>;
83277d6af5SYann Gautier			boost-supply = <&vin>;
84277d6af5SYann Gautier			pwr_sw1-supply = <&bst_out>;
85277d6af5SYann Gautier			pwr_sw2-supply = <&bst_out>;
86277d6af5SYann Gautier
87277d6af5SYann Gautier			vddcore: buck1 {
88277d6af5SYann Gautier				regulator-name = "vddcore";
89277d6af5SYann Gautier				regulator-min-microvolt = <1200000>;
90277d6af5SYann Gautier				regulator-max-microvolt = <1350000>;
91277d6af5SYann Gautier				regulator-always-on;
92277d6af5SYann Gautier				regulator-initial-mode = <0>;
93277d6af5SYann Gautier				regulator-over-current-protection;
94277d6af5SYann Gautier			};
95277d6af5SYann Gautier
96277d6af5SYann Gautier			vdd_ddr: buck2 {
97277d6af5SYann Gautier				regulator-name = "vdd_ddr";
98277d6af5SYann Gautier				regulator-min-microvolt = <1350000>;
99277d6af5SYann Gautier				regulator-max-microvolt = <1350000>;
100277d6af5SYann Gautier				regulator-always-on;
101277d6af5SYann Gautier				regulator-initial-mode = <0>;
102277d6af5SYann Gautier				regulator-over-current-protection;
103277d6af5SYann Gautier			};
104277d6af5SYann Gautier
105277d6af5SYann Gautier			vdd: buck3 {
106277d6af5SYann Gautier				regulator-name = "vdd";
107277d6af5SYann Gautier				regulator-min-microvolt = <3300000>;
108277d6af5SYann Gautier				regulator-max-microvolt = <3300000>;
109277d6af5SYann Gautier				regulator-always-on;
110277d6af5SYann Gautier				st,mask-reset;
111277d6af5SYann Gautier				regulator-initial-mode = <0>;
112277d6af5SYann Gautier				regulator-over-current-protection;
113277d6af5SYann Gautier			};
114277d6af5SYann Gautier
115277d6af5SYann Gautier			v3v3: buck4 {
116277d6af5SYann Gautier				regulator-name = "v3v3";
117277d6af5SYann Gautier				regulator-min-microvolt = <3300000>;
118277d6af5SYann Gautier				regulator-max-microvolt = <3300000>;
119277d6af5SYann Gautier				regulator-always-on;
120277d6af5SYann Gautier				regulator-over-current-protection;
121277d6af5SYann Gautier				regulator-initial-mode = <0>;
122277d6af5SYann Gautier			};
123277d6af5SYann Gautier
124277d6af5SYann Gautier			v1v8_audio: ldo1 {
125277d6af5SYann Gautier				regulator-name = "v1v8_audio";
126277d6af5SYann Gautier				regulator-min-microvolt = <1800000>;
127277d6af5SYann Gautier				regulator-max-microvolt = <1800000>;
128277d6af5SYann Gautier				regulator-always-on;
129277d6af5SYann Gautier			};
130277d6af5SYann Gautier
131277d6af5SYann Gautier			v3v3_hdmi: ldo2 {
132277d6af5SYann Gautier				regulator-name = "v3v3_hdmi";
133277d6af5SYann Gautier				regulator-min-microvolt = <3300000>;
134277d6af5SYann Gautier				regulator-max-microvolt = <3300000>;
135277d6af5SYann Gautier				regulator-always-on;
136277d6af5SYann Gautier			};
137277d6af5SYann Gautier
138277d6af5SYann Gautier			vtt_ddr: ldo3 {
139277d6af5SYann Gautier				regulator-name = "vtt_ddr";
140277d6af5SYann Gautier				regulator-always-on;
141277d6af5SYann Gautier				regulator-over-current-protection;
14267d95409SPascal Paillet				st,regulator-sink-source;
143277d6af5SYann Gautier			};
144277d6af5SYann Gautier
145277d6af5SYann Gautier			vdd_usb: ldo4 {
146277d6af5SYann Gautier				regulator-name = "vdd_usb";
147277d6af5SYann Gautier				regulator-min-microvolt = <3300000>;
148277d6af5SYann Gautier				regulator-max-microvolt = <3300000>;
149277d6af5SYann Gautier			};
150277d6af5SYann Gautier
151277d6af5SYann Gautier			vdda: ldo5 {
152277d6af5SYann Gautier				regulator-name = "vdda";
153277d6af5SYann Gautier				regulator-min-microvolt = <2900000>;
154277d6af5SYann Gautier				regulator-max-microvolt = <2900000>;
155277d6af5SYann Gautier				regulator-boot-on;
156277d6af5SYann Gautier			};
157277d6af5SYann Gautier
158277d6af5SYann Gautier			v1v2_hdmi: ldo6 {
159277d6af5SYann Gautier				regulator-name = "v1v2_hdmi";
160277d6af5SYann Gautier				regulator-min-microvolt = <1200000>;
161277d6af5SYann Gautier				regulator-max-microvolt = <1200000>;
162277d6af5SYann Gautier				regulator-always-on;
163277d6af5SYann Gautier			};
164277d6af5SYann Gautier
165277d6af5SYann Gautier			vref_ddr: vref_ddr {
166277d6af5SYann Gautier				regulator-name = "vref_ddr";
167277d6af5SYann Gautier				regulator-always-on;
168277d6af5SYann Gautier			};
169277d6af5SYann Gautier
170277d6af5SYann Gautier			bst_out: boost {
171277d6af5SYann Gautier				regulator-name = "bst_out";
172277d6af5SYann Gautier			};
173277d6af5SYann Gautier
174277d6af5SYann Gautier			vbus_otg: pwr_sw1 {
175277d6af5SYann Gautier				regulator-name = "vbus_otg";
176277d6af5SYann Gautier			};
177277d6af5SYann Gautier
178277d6af5SYann Gautier			vbus_sw: pwr_sw2 {
179277d6af5SYann Gautier				regulator-name = "vbus_sw";
180277d6af5SYann Gautier				regulator-active-discharge = <1>;
181277d6af5SYann Gautier			};
182277d6af5SYann Gautier		};
183277d6af5SYann Gautier	};
184277d6af5SYann Gautier};
185277d6af5SYann Gautier
186277d6af5SYann Gautier&iwdg2 {
187277d6af5SYann Gautier	timeout-sec = <32>;
188277d6af5SYann Gautier	status = "okay";
189277d6af5SYann Gautier};
190277d6af5SYann Gautier
191277d6af5SYann Gautier&pwr_regulators {
192277d6af5SYann Gautier	vdd-supply = <&vdd>;
193277d6af5SYann Gautier	vdd_3v3_usbfs-supply = <&vdd_usb>;
194277d6af5SYann Gautier};
195277d6af5SYann Gautier
196277d6af5SYann Gautier&rcc {
197277d6af5SYann Gautier	st,clksrc = <
198277d6af5SYann Gautier		CLK_MPU_PLL1P
199277d6af5SYann Gautier		CLK_AXI_PLL2P
200277d6af5SYann Gautier		CLK_MCU_PLL3P
201277d6af5SYann Gautier		CLK_RTC_LSE
202277d6af5SYann Gautier		CLK_MCO1_DISABLED
203277d6af5SYann Gautier		CLK_MCO2_DISABLED
204277d6af5SYann Gautier		CLK_CKPER_HSE
205277d6af5SYann Gautier		CLK_FMC_ACLK
206277d6af5SYann Gautier		CLK_QSPI_ACLK
2073e881a88SYann Gautier		CLK_ETH_PLL4P
208277d6af5SYann Gautier		CLK_SDMMC12_PLL4P
209277d6af5SYann Gautier		CLK_DSI_DSIPLL
210277d6af5SYann Gautier		CLK_STGEN_HSE
211277d6af5SYann Gautier		CLK_USBPHY_HSE
212277d6af5SYann Gautier		CLK_SPI2S1_PLL3Q
213277d6af5SYann Gautier		CLK_SPI2S23_PLL3Q
214277d6af5SYann Gautier		CLK_SPI45_HSI
215277d6af5SYann Gautier		CLK_SPI6_HSI
216277d6af5SYann Gautier		CLK_I2C46_HSI
217277d6af5SYann Gautier		CLK_SDMMC3_PLL4P
218277d6af5SYann Gautier		CLK_USBO_USBPHY
219277d6af5SYann Gautier		CLK_ADC_CKPER
220277d6af5SYann Gautier		CLK_CEC_LSE
221277d6af5SYann Gautier		CLK_I2C12_HSI
222277d6af5SYann Gautier		CLK_I2C35_HSI
223277d6af5SYann Gautier		CLK_UART1_HSI
224277d6af5SYann Gautier		CLK_UART24_HSI
225277d6af5SYann Gautier		CLK_UART35_HSI
226277d6af5SYann Gautier		CLK_UART6_HSI
227277d6af5SYann Gautier		CLK_UART78_HSI
228277d6af5SYann Gautier		CLK_SPDIF_PLL4P
229277d6af5SYann Gautier		CLK_FDCAN_PLL4R
230277d6af5SYann Gautier		CLK_SAI1_PLL3Q
231277d6af5SYann Gautier		CLK_SAI2_PLL3Q
232277d6af5SYann Gautier		CLK_SAI3_PLL3Q
233277d6af5SYann Gautier		CLK_SAI4_PLL3Q
234d594239dSLionel Debieve		CLK_RNG1_CSI
235277d6af5SYann Gautier		CLK_RNG2_LSI
236277d6af5SYann Gautier		CLK_LPTIM1_PCLK1
237277d6af5SYann Gautier		CLK_LPTIM23_PCLK3
238277d6af5SYann Gautier		CLK_LPTIM45_LSE
239277d6af5SYann Gautier	>;
240277d6af5SYann Gautier
241*4391e5edSGabriel Fernandez	st,clkdiv = <
242*4391e5edSGabriel Fernandez		DIV(DIV_MPU, 1)
243*4391e5edSGabriel Fernandez		DIV(DIV_AXI, 0)
244*4391e5edSGabriel Fernandez		DIV(DIV_MCU, 0)
245*4391e5edSGabriel Fernandez		DIV(DIV_APB1, 1)
246*4391e5edSGabriel Fernandez		DIV(DIV_APB2, 1)
247*4391e5edSGabriel Fernandez		DIV(DIV_APB3, 1)
248*4391e5edSGabriel Fernandez		DIV(DIV_APB4, 1)
249*4391e5edSGabriel Fernandez		DIV(DIV_APB5, 2)
250*4391e5edSGabriel Fernandez		DIV(DIV_RTC, 23)
251*4391e5edSGabriel Fernandez		DIV(DIV_MCO1, 0)
252*4391e5edSGabriel Fernandez		DIV(DIV_MCO2, 0)
253*4391e5edSGabriel Fernandez	>;
254*4391e5edSGabriel Fernandez
255*4391e5edSGabriel Fernandez	st,pll_vco {
256*4391e5edSGabriel Fernandez		pll1_vco_1300Mhz: pll1-vco-1300Mhz {
257*4391e5edSGabriel Fernandez			src = < CLK_PLL12_HSE >;
258*4391e5edSGabriel Fernandez			divmn = < 2 80 >;
259*4391e5edSGabriel Fernandez			frac = < 0x800 >;
260*4391e5edSGabriel Fernandez		};
261*4391e5edSGabriel Fernandez
262*4391e5edSGabriel Fernandez		pll2_vco_1066Mhz: pll2-vco-1066Mhz {
263*4391e5edSGabriel Fernandez			src = <CLK_PLL12_HSE>;
264*4391e5edSGabriel Fernandez			divmn = <2 65>;
265*4391e5edSGabriel Fernandez			frac = <0x1400>;
266*4391e5edSGabriel Fernandez		};
267*4391e5edSGabriel Fernandez
268*4391e5edSGabriel Fernandez		pll3_vco_417Mhz: pll3-vco-417Mhz {
269*4391e5edSGabriel Fernandez			src = <CLK_PLL3_HSE>;
270*4391e5edSGabriel Fernandez			divmn = <1 33>;
271*4391e5edSGabriel Fernandez			frac = <0x1a04>;
272*4391e5edSGabriel Fernandez		};
273*4391e5edSGabriel Fernandez
274*4391e5edSGabriel Fernandez		pll4_vco_594Mhz: pll4-vco-594Mhz {
275*4391e5edSGabriel Fernandez			src = <CLK_PLL4_HSE>;
276*4391e5edSGabriel Fernandez			divmn = <3 98>;
277*4391e5edSGabriel Fernandez		};
278*4391e5edSGabriel Fernandez	};
279*4391e5edSGabriel Fernandez
280277d6af5SYann Gautier	/* VCO = 1300.0 MHz => P = 650 (CPU) */
281277d6af5SYann Gautier	pll1: st,pll@0 {
282277d6af5SYann Gautier		compatible = "st,stm32mp1-pll";
283277d6af5SYann Gautier		reg = <0>;
284*4391e5edSGabriel Fernandez
285*4391e5edSGabriel Fernandez		st,pll = < &pll1_cfg1 >;
286*4391e5edSGabriel Fernandez
287*4391e5edSGabriel Fernandez		pll1_cfg1: pll1_cfg1 {
288*4391e5edSGabriel Fernandez			st,pll_vco = < &pll1_vco_1300Mhz >;
289*4391e5edSGabriel Fernandez			st,pll_div_pqr = < 0 0 0 >;
290*4391e5edSGabriel Fernandez		};
291277d6af5SYann Gautier	};
292277d6af5SYann Gautier
293277d6af5SYann Gautier	/* VCO = 1066.0 MHz => P = 266 (AXI), Q = 533 (GPU), R = 533 (DDR) */
294277d6af5SYann Gautier	pll2: st,pll@1 {
295277d6af5SYann Gautier		compatible = "st,stm32mp1-pll";
296277d6af5SYann Gautier		reg = <1>;
297*4391e5edSGabriel Fernandez
298*4391e5edSGabriel Fernandez		st,pll = <&pll2_cfg1>;
299*4391e5edSGabriel Fernandez
300*4391e5edSGabriel Fernandez		pll2_cfg1: pll2_cfg1 {
301*4391e5edSGabriel Fernandez			st,pll_vco = <&pll2_vco_1066Mhz>;
302*4391e5edSGabriel Fernandez			st,pll_div_pqr = <1 0 0>;
303*4391e5edSGabriel Fernandez		};
304277d6af5SYann Gautier	};
305277d6af5SYann Gautier
306277d6af5SYann Gautier	/* VCO = 417.8 MHz => P = 209, Q = 24, R = 11 */
307277d6af5SYann Gautier	pll3: st,pll@2 {
308277d6af5SYann Gautier		compatible = "st,stm32mp1-pll";
309277d6af5SYann Gautier		reg = <2>;
310*4391e5edSGabriel Fernandez
311*4391e5edSGabriel Fernandez		st,pll = <&pll3_cfg1>;
312*4391e5edSGabriel Fernandez
313*4391e5edSGabriel Fernandez		pll3_cfg1: pll3_cfg1 {
314*4391e5edSGabriel Fernandez			st,pll_vco = <&pll3_vco_417Mhz>;
315*4391e5edSGabriel Fernandez			st,pll_div_pqr = <1 16 36>;
316*4391e5edSGabriel Fernandez		};
317277d6af5SYann Gautier	};
318277d6af5SYann Gautier
319277d6af5SYann Gautier	/* VCO = 594.0 MHz => P = 99, Q = 74, R = 74 */
320277d6af5SYann Gautier	pll4: st,pll@3 {
321277d6af5SYann Gautier		compatible = "st,stm32mp1-pll";
322277d6af5SYann Gautier		reg = <3>;
323*4391e5edSGabriel Fernandez
324*4391e5edSGabriel Fernandez		st,pll = <&pll4_cfg1>;
325*4391e5edSGabriel Fernandez
326*4391e5edSGabriel Fernandez		pll4_cfg1: pll4_cfg1 {
327*4391e5edSGabriel Fernandez			st,pll_vco = <&pll4_vco_594Mhz>;
328*4391e5edSGabriel Fernandez			st,pll_div_pqr = <5 7 7>;
329*4391e5edSGabriel Fernandez		};
330277d6af5SYann Gautier	};
331277d6af5SYann Gautier};
332277d6af5SYann Gautier
333277d6af5SYann Gautier&rng1 {
334277d6af5SYann Gautier	status = "okay";
335277d6af5SYann Gautier};
336277d6af5SYann Gautier
337277d6af5SYann Gautier&rtc {
338277d6af5SYann Gautier	status = "okay";
339277d6af5SYann Gautier};
340277d6af5SYann Gautier
341277d6af5SYann Gautier&sdmmc1 {
342277d6af5SYann Gautier	pinctrl-names = "default";
343277d6af5SYann Gautier	pinctrl-0 = <&sdmmc1_b4_pins_a>;
344277d6af5SYann Gautier	disable-wp;
345277d6af5SYann Gautier	st,neg-edge;
346277d6af5SYann Gautier	bus-width = <4>;
347277d6af5SYann Gautier	vmmc-supply = <&v3v3>;
348277d6af5SYann Gautier	status = "okay";
349277d6af5SYann Gautier};
350277d6af5SYann Gautier
351277d6af5SYann Gautier&uart4 {
352277d6af5SYann Gautier	pinctrl-names = "default";
353277d6af5SYann Gautier	pinctrl-0 = <&uart4_pins_a>;
354277d6af5SYann Gautier	status = "okay";
355277d6af5SYann Gautier};
356277d6af5SYann Gautier
357277d6af5SYann Gautier&uart7 {
358277d6af5SYann Gautier	pinctrl-names = "default";
359e8a953a9SYann Gautier	pinctrl-0 = <&uart7_pins_c>;
360277d6af5SYann Gautier	status = "disabled";
361277d6af5SYann Gautier};
362277d6af5SYann Gautier
363277d6af5SYann Gautier&usart3 {
364277d6af5SYann Gautier	pinctrl-names = "default";
365e8a953a9SYann Gautier	pinctrl-0 = <&usart3_pins_c>;
366277d6af5SYann Gautier	uart-has-rtscts;
367277d6af5SYann Gautier	status = "disabled";
368277d6af5SYann Gautier};
369277d6af5SYann Gautier
370277d6af5SYann Gautier&usbotg_hs {
371277d6af5SYann Gautier	phys = <&usbphyc_port1 0>;
372277d6af5SYann Gautier	phy-names = "usb2-phy";
373277d6af5SYann Gautier	usb-role-switch;
374277d6af5SYann Gautier	status = "okay";
375277d6af5SYann Gautier};
376277d6af5SYann Gautier
377277d6af5SYann Gautier&usbphyc {
378277d6af5SYann Gautier	status = "okay";
379277d6af5SYann Gautier};
380277d6af5SYann Gautier
381277d6af5SYann Gautier&usbphyc_port0 {
382277d6af5SYann Gautier	phy-supply = <&vdd_usb>;
383277d6af5SYann Gautier};
384277d6af5SYann Gautier
385277d6af5SYann Gautier&usbphyc_port1 {
386277d6af5SYann Gautier	phy-supply = <&vdd_usb>;
387277d6af5SYann Gautier};
388