xref: /rk3399_ARM-atf/fdts/stm32mp15xx-dkx.dtsi (revision ff8767cbfc2bb851a2f6cc32fbe3693ddbfb7d12)
1277d6af5SYann Gautier// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2277d6af5SYann Gautier/*
3*ff8767cbSNicolas Le Bayon * Copyright (c) 2019-2022, 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/ {
11277d6af5SYann Gautier	memory@c0000000 {
12277d6af5SYann Gautier		device_type = "memory";
13277d6af5SYann Gautier		reg = <0xc0000000 0x20000000>;
14277d6af5SYann Gautier	};
15277d6af5SYann Gautier
16277d6af5SYann Gautier	vin: vin {
17277d6af5SYann Gautier		compatible = "regulator-fixed";
18277d6af5SYann Gautier		regulator-name = "vin";
19277d6af5SYann Gautier		regulator-min-microvolt = <5000000>;
20277d6af5SYann Gautier		regulator-max-microvolt = <5000000>;
21277d6af5SYann Gautier		regulator-always-on;
22277d6af5SYann Gautier	};
23277d6af5SYann Gautier};
24277d6af5SYann Gautier
25277d6af5SYann Gautier&bsec {
26277d6af5SYann Gautier	board_id: board_id@ec {
27277d6af5SYann Gautier		reg = <0xec 0x4>;
28277d6af5SYann Gautier		st,non-secure-otp;
29277d6af5SYann Gautier	};
30277d6af5SYann Gautier};
31277d6af5SYann Gautier
32277d6af5SYann Gautier&clk_hse {
33277d6af5SYann Gautier	st,digbypass;
34277d6af5SYann Gautier};
35277d6af5SYann Gautier
36277d6af5SYann Gautier&cpu0{
37277d6af5SYann Gautier	cpu-supply = <&vddcore>;
38277d6af5SYann Gautier};
39277d6af5SYann Gautier
40277d6af5SYann Gautier&cpu1{
41277d6af5SYann Gautier	cpu-supply = <&vddcore>;
42277d6af5SYann Gautier};
43277d6af5SYann Gautier
44277d6af5SYann Gautier&hash1 {
45277d6af5SYann Gautier	status = "okay";
46277d6af5SYann Gautier};
47277d6af5SYann Gautier
48277d6af5SYann Gautier&i2c4 {
49277d6af5SYann Gautier	pinctrl-names = "default";
50277d6af5SYann Gautier	pinctrl-0 = <&i2c4_pins_a>;
51277d6af5SYann Gautier	i2c-scl-rising-time-ns = <185>;
52277d6af5SYann Gautier	i2c-scl-falling-time-ns = <20>;
53277d6af5SYann Gautier	clock-frequency = <400000>;
54277d6af5SYann Gautier	status = "okay";
55277d6af5SYann Gautier
56277d6af5SYann Gautier	pmic: stpmic@33 {
57277d6af5SYann Gautier		compatible = "st,stpmic1";
58277d6af5SYann Gautier		reg = <0x33>;
59277d6af5SYann Gautier		interrupts-extended = <&exti_pwr 55 IRQ_TYPE_EDGE_FALLING>;
60277d6af5SYann Gautier		interrupt-controller;
61277d6af5SYann Gautier		#interrupt-cells = <2>;
62277d6af5SYann Gautier		status = "okay";
63277d6af5SYann Gautier
64277d6af5SYann Gautier		regulators {
65277d6af5SYann Gautier			compatible = "st,stpmic1-regulators";
66277d6af5SYann Gautier			buck1-supply = <&vin>;
67277d6af5SYann Gautier			buck2-supply = <&vin>;
68277d6af5SYann Gautier			buck3-supply = <&vin>;
69277d6af5SYann Gautier			buck4-supply = <&vin>;
70277d6af5SYann Gautier			ldo1-supply = <&v3v3>;
71277d6af5SYann Gautier			ldo2-supply = <&vin>;
72277d6af5SYann Gautier			ldo3-supply = <&vdd_ddr>;
73277d6af5SYann Gautier			ldo4-supply = <&vin>;
74277d6af5SYann Gautier			ldo5-supply = <&vin>;
75277d6af5SYann Gautier			ldo6-supply = <&v3v3>;
76277d6af5SYann Gautier			vref_ddr-supply = <&vin>;
77277d6af5SYann Gautier			boost-supply = <&vin>;
78277d6af5SYann Gautier			pwr_sw1-supply = <&bst_out>;
79277d6af5SYann Gautier			pwr_sw2-supply = <&bst_out>;
80277d6af5SYann Gautier
81277d6af5SYann Gautier			vddcore: buck1 {
82277d6af5SYann Gautier				regulator-name = "vddcore";
83277d6af5SYann Gautier				regulator-min-microvolt = <1200000>;
84277d6af5SYann Gautier				regulator-max-microvolt = <1350000>;
85277d6af5SYann Gautier				regulator-always-on;
86277d6af5SYann Gautier				regulator-initial-mode = <0>;
87277d6af5SYann Gautier				regulator-over-current-protection;
88277d6af5SYann Gautier			};
89277d6af5SYann Gautier
90277d6af5SYann Gautier			vdd_ddr: buck2 {
91277d6af5SYann Gautier				regulator-name = "vdd_ddr";
92277d6af5SYann Gautier				regulator-min-microvolt = <1350000>;
93277d6af5SYann Gautier				regulator-max-microvolt = <1350000>;
94277d6af5SYann Gautier				regulator-always-on;
95277d6af5SYann Gautier				regulator-initial-mode = <0>;
96277d6af5SYann Gautier				regulator-over-current-protection;
97277d6af5SYann Gautier			};
98277d6af5SYann Gautier
99277d6af5SYann Gautier			vdd: buck3 {
100277d6af5SYann Gautier				regulator-name = "vdd";
101277d6af5SYann Gautier				regulator-min-microvolt = <3300000>;
102277d6af5SYann Gautier				regulator-max-microvolt = <3300000>;
103277d6af5SYann Gautier				regulator-always-on;
104277d6af5SYann Gautier				st,mask-reset;
105277d6af5SYann Gautier				regulator-initial-mode = <0>;
106277d6af5SYann Gautier				regulator-over-current-protection;
107277d6af5SYann Gautier			};
108277d6af5SYann Gautier
109277d6af5SYann Gautier			v3v3: buck4 {
110277d6af5SYann Gautier				regulator-name = "v3v3";
111277d6af5SYann Gautier				regulator-min-microvolt = <3300000>;
112277d6af5SYann Gautier				regulator-max-microvolt = <3300000>;
113277d6af5SYann Gautier				regulator-always-on;
114277d6af5SYann Gautier				regulator-over-current-protection;
115277d6af5SYann Gautier				regulator-initial-mode = <0>;
116277d6af5SYann Gautier			};
117277d6af5SYann Gautier
118277d6af5SYann Gautier			v1v8_audio: ldo1 {
119277d6af5SYann Gautier				regulator-name = "v1v8_audio";
120277d6af5SYann Gautier				regulator-min-microvolt = <1800000>;
121277d6af5SYann Gautier				regulator-max-microvolt = <1800000>;
122277d6af5SYann Gautier				regulator-always-on;
123277d6af5SYann Gautier			};
124277d6af5SYann Gautier
125277d6af5SYann Gautier			v3v3_hdmi: ldo2 {
126277d6af5SYann Gautier				regulator-name = "v3v3_hdmi";
127277d6af5SYann Gautier				regulator-min-microvolt = <3300000>;
128277d6af5SYann Gautier				regulator-max-microvolt = <3300000>;
129277d6af5SYann Gautier				regulator-always-on;
130277d6af5SYann Gautier			};
131277d6af5SYann Gautier
132277d6af5SYann Gautier			vtt_ddr: ldo3 {
133277d6af5SYann Gautier				regulator-name = "vtt_ddr";
134277d6af5SYann Gautier				regulator-always-on;
135277d6af5SYann Gautier				regulator-over-current-protection;
13667d95409SPascal Paillet				st,regulator-sink-source;
137277d6af5SYann Gautier			};
138277d6af5SYann Gautier
139277d6af5SYann Gautier			vdd_usb: ldo4 {
140277d6af5SYann Gautier				regulator-name = "vdd_usb";
141277d6af5SYann Gautier				regulator-min-microvolt = <3300000>;
142277d6af5SYann Gautier				regulator-max-microvolt = <3300000>;
143277d6af5SYann Gautier			};
144277d6af5SYann Gautier
145277d6af5SYann Gautier			vdda: ldo5 {
146277d6af5SYann Gautier				regulator-name = "vdda";
147277d6af5SYann Gautier				regulator-min-microvolt = <2900000>;
148277d6af5SYann Gautier				regulator-max-microvolt = <2900000>;
149277d6af5SYann Gautier				regulator-boot-on;
150277d6af5SYann Gautier			};
151277d6af5SYann Gautier
152277d6af5SYann Gautier			v1v2_hdmi: ldo6 {
153277d6af5SYann Gautier				regulator-name = "v1v2_hdmi";
154277d6af5SYann Gautier				regulator-min-microvolt = <1200000>;
155277d6af5SYann Gautier				regulator-max-microvolt = <1200000>;
156277d6af5SYann Gautier				regulator-always-on;
157277d6af5SYann Gautier			};
158277d6af5SYann Gautier
159277d6af5SYann Gautier			vref_ddr: vref_ddr {
160277d6af5SYann Gautier				regulator-name = "vref_ddr";
161277d6af5SYann Gautier				regulator-always-on;
162277d6af5SYann Gautier			};
163277d6af5SYann Gautier
164277d6af5SYann Gautier			bst_out: boost {
165277d6af5SYann Gautier				regulator-name = "bst_out";
166277d6af5SYann Gautier			};
167277d6af5SYann Gautier
168277d6af5SYann Gautier			vbus_otg: pwr_sw1 {
169277d6af5SYann Gautier				regulator-name = "vbus_otg";
170277d6af5SYann Gautier			};
171277d6af5SYann Gautier
172277d6af5SYann Gautier			vbus_sw: pwr_sw2 {
173277d6af5SYann Gautier				regulator-name = "vbus_sw";
174277d6af5SYann Gautier				regulator-active-discharge = <1>;
175277d6af5SYann Gautier			};
176277d6af5SYann Gautier		};
177277d6af5SYann Gautier	};
178277d6af5SYann Gautier};
179277d6af5SYann Gautier
180277d6af5SYann Gautier&iwdg2 {
181277d6af5SYann Gautier	timeout-sec = <32>;
182277d6af5SYann Gautier	status = "okay";
183277d6af5SYann Gautier	secure-status = "okay";
184277d6af5SYann Gautier};
185277d6af5SYann Gautier
186*ff8767cbSNicolas Le Bayon&nvmem_layout {
187*ff8767cbSNicolas Le Bayon	nvmem-cells = <&cfg0_otp>,
188*ff8767cbSNicolas Le Bayon		      <&part_number_otp>,
189*ff8767cbSNicolas Le Bayon		      <&monotonic_otp>,
190*ff8767cbSNicolas Le Bayon		      <&nand_otp>,
191*ff8767cbSNicolas Le Bayon		      <&uid_otp>,
192*ff8767cbSNicolas Le Bayon		      <&package_otp>,
193*ff8767cbSNicolas Le Bayon		      <&hw2_otp>,
194*ff8767cbSNicolas Le Bayon		      <&board_id>;
195*ff8767cbSNicolas Le Bayon
196*ff8767cbSNicolas Le Bayon	nvmem-cell-names = "cfg0_otp",
197*ff8767cbSNicolas Le Bayon			   "part_number_otp",
198*ff8767cbSNicolas Le Bayon			   "monotonic_otp",
199*ff8767cbSNicolas Le Bayon			   "nand_otp",
200*ff8767cbSNicolas Le Bayon			   "uid_otp",
201*ff8767cbSNicolas Le Bayon			   "package_otp",
202*ff8767cbSNicolas Le Bayon			   "hw2_otp",
203*ff8767cbSNicolas Le Bayon			   "board_id";
204*ff8767cbSNicolas Le Bayon};
205*ff8767cbSNicolas Le Bayon
206277d6af5SYann Gautier&pwr_regulators {
207277d6af5SYann Gautier	vdd-supply = <&vdd>;
208277d6af5SYann Gautier	vdd_3v3_usbfs-supply = <&vdd_usb>;
209277d6af5SYann Gautier};
210277d6af5SYann Gautier
211277d6af5SYann Gautier&rcc {
212277d6af5SYann Gautier	secure-status = "disabled";
213277d6af5SYann Gautier	st,clksrc = <
214277d6af5SYann Gautier		CLK_MPU_PLL1P
215277d6af5SYann Gautier		CLK_AXI_PLL2P
216277d6af5SYann Gautier		CLK_MCU_PLL3P
217277d6af5SYann Gautier		CLK_PLL12_HSE
218277d6af5SYann Gautier		CLK_PLL3_HSE
219277d6af5SYann Gautier		CLK_PLL4_HSE
220277d6af5SYann Gautier		CLK_RTC_LSE
221277d6af5SYann Gautier		CLK_MCO1_DISABLED
222277d6af5SYann Gautier		CLK_MCO2_DISABLED
223277d6af5SYann Gautier	>;
224277d6af5SYann Gautier
225277d6af5SYann Gautier	st,clkdiv = <
226277d6af5SYann Gautier		1 /*MPU*/
227277d6af5SYann Gautier		0 /*AXI*/
228277d6af5SYann Gautier		0 /*MCU*/
229277d6af5SYann Gautier		1 /*APB1*/
230277d6af5SYann Gautier		1 /*APB2*/
231277d6af5SYann Gautier		1 /*APB3*/
232277d6af5SYann Gautier		1 /*APB4*/
233277d6af5SYann Gautier		2 /*APB5*/
234277d6af5SYann Gautier		23 /*RTC*/
235277d6af5SYann Gautier		0 /*MCO1*/
236277d6af5SYann Gautier		0 /*MCO2*/
237277d6af5SYann Gautier	>;
238277d6af5SYann Gautier
239277d6af5SYann Gautier	st,pkcs = <
240277d6af5SYann Gautier		CLK_CKPER_HSE
241277d6af5SYann Gautier		CLK_FMC_ACLK
242277d6af5SYann Gautier		CLK_QSPI_ACLK
2433e881a88SYann Gautier		CLK_ETH_PLL4P
244277d6af5SYann Gautier		CLK_SDMMC12_PLL4P
245277d6af5SYann Gautier		CLK_DSI_DSIPLL
246277d6af5SYann Gautier		CLK_STGEN_HSE
247277d6af5SYann Gautier		CLK_USBPHY_HSE
248277d6af5SYann Gautier		CLK_SPI2S1_PLL3Q
249277d6af5SYann Gautier		CLK_SPI2S23_PLL3Q
250277d6af5SYann Gautier		CLK_SPI45_HSI
251277d6af5SYann Gautier		CLK_SPI6_HSI
252277d6af5SYann Gautier		CLK_I2C46_HSI
253277d6af5SYann Gautier		CLK_SDMMC3_PLL4P
254277d6af5SYann Gautier		CLK_USBO_USBPHY
255277d6af5SYann Gautier		CLK_ADC_CKPER
256277d6af5SYann Gautier		CLK_CEC_LSE
257277d6af5SYann Gautier		CLK_I2C12_HSI
258277d6af5SYann Gautier		CLK_I2C35_HSI
259277d6af5SYann Gautier		CLK_UART1_HSI
260277d6af5SYann Gautier		CLK_UART24_HSI
261277d6af5SYann Gautier		CLK_UART35_HSI
262277d6af5SYann Gautier		CLK_UART6_HSI
263277d6af5SYann Gautier		CLK_UART78_HSI
264277d6af5SYann Gautier		CLK_SPDIF_PLL4P
265277d6af5SYann Gautier		CLK_FDCAN_PLL4R
266277d6af5SYann Gautier		CLK_SAI1_PLL3Q
267277d6af5SYann Gautier		CLK_SAI2_PLL3Q
268277d6af5SYann Gautier		CLK_SAI3_PLL3Q
269277d6af5SYann Gautier		CLK_SAI4_PLL3Q
270277d6af5SYann Gautier		CLK_RNG1_LSI
271277d6af5SYann Gautier		CLK_RNG2_LSI
272277d6af5SYann Gautier		CLK_LPTIM1_PCLK1
273277d6af5SYann Gautier		CLK_LPTIM23_PCLK3
274277d6af5SYann Gautier		CLK_LPTIM45_LSE
275277d6af5SYann Gautier	>;
276277d6af5SYann Gautier
277277d6af5SYann Gautier	/* VCO = 1300.0 MHz => P = 650 (CPU) */
278277d6af5SYann Gautier	pll1: st,pll@0 {
279277d6af5SYann Gautier		compatible = "st,stm32mp1-pll";
280277d6af5SYann Gautier		reg = <0>;
281277d6af5SYann Gautier		cfg = < 2 80 0 0 0 PQR(1,0,0) >;
282277d6af5SYann Gautier		frac = < 0x800 >;
283277d6af5SYann Gautier	};
284277d6af5SYann Gautier
285277d6af5SYann Gautier	/* VCO = 1066.0 MHz => P = 266 (AXI), Q = 533 (GPU), R = 533 (DDR) */
286277d6af5SYann Gautier	pll2: st,pll@1 {
287277d6af5SYann Gautier		compatible = "st,stm32mp1-pll";
288277d6af5SYann Gautier		reg = <1>;
289277d6af5SYann Gautier		cfg = <2 65 1 0 0 PQR(1,1,1)>;
290277d6af5SYann Gautier		frac = <0x1400>;
291277d6af5SYann Gautier	};
292277d6af5SYann Gautier
293277d6af5SYann Gautier	/* VCO = 417.8 MHz => P = 209, Q = 24, R = 11 */
294277d6af5SYann Gautier	pll3: st,pll@2 {
295277d6af5SYann Gautier		compatible = "st,stm32mp1-pll";
296277d6af5SYann Gautier		reg = <2>;
297277d6af5SYann Gautier		cfg = <1 33 1 16 36 PQR(1,1,1)>;
298277d6af5SYann Gautier		frac = <0x1a04>;
299277d6af5SYann Gautier	};
300277d6af5SYann Gautier
301277d6af5SYann Gautier	/* VCO = 594.0 MHz => P = 99, Q = 74, R = 74 */
302277d6af5SYann Gautier	pll4: st,pll@3 {
303277d6af5SYann Gautier		compatible = "st,stm32mp1-pll";
304277d6af5SYann Gautier		reg = <3>;
305277d6af5SYann Gautier		cfg = <3 98 5 7 7 PQR(1,1,1)>;
306277d6af5SYann Gautier	};
307277d6af5SYann Gautier};
308277d6af5SYann Gautier
309277d6af5SYann Gautier&rng1 {
310277d6af5SYann Gautier	status = "okay";
311277d6af5SYann Gautier};
312277d6af5SYann Gautier
313277d6af5SYann Gautier&rtc {
314277d6af5SYann Gautier	status = "okay";
315277d6af5SYann Gautier};
316277d6af5SYann Gautier
317277d6af5SYann Gautier&sdmmc1 {
318277d6af5SYann Gautier	pinctrl-names = "default";
319277d6af5SYann Gautier	pinctrl-0 = <&sdmmc1_b4_pins_a>;
320277d6af5SYann Gautier	disable-wp;
321277d6af5SYann Gautier	st,neg-edge;
322277d6af5SYann Gautier	bus-width = <4>;
323277d6af5SYann Gautier	vmmc-supply = <&v3v3>;
324277d6af5SYann Gautier	status = "okay";
325277d6af5SYann Gautier};
326277d6af5SYann Gautier
327277d6af5SYann Gautier&timers15 {
328277d6af5SYann Gautier	secure-status = "okay";
329277d6af5SYann Gautier};
330277d6af5SYann Gautier
331277d6af5SYann Gautier&uart4 {
332277d6af5SYann Gautier	pinctrl-names = "default";
333277d6af5SYann Gautier	pinctrl-0 = <&uart4_pins_a>;
334277d6af5SYann Gautier	status = "okay";
335277d6af5SYann Gautier};
336277d6af5SYann Gautier
337277d6af5SYann Gautier&uart7 {
338277d6af5SYann Gautier	pinctrl-names = "default";
339e8a953a9SYann Gautier	pinctrl-0 = <&uart7_pins_c>;
340277d6af5SYann Gautier	status = "disabled";
341277d6af5SYann Gautier};
342277d6af5SYann Gautier
343277d6af5SYann Gautier&usart3 {
344277d6af5SYann Gautier	pinctrl-names = "default";
345e8a953a9SYann Gautier	pinctrl-0 = <&usart3_pins_c>;
346277d6af5SYann Gautier	uart-has-rtscts;
347277d6af5SYann Gautier	status = "disabled";
348277d6af5SYann Gautier};
349277d6af5SYann Gautier
350277d6af5SYann Gautier&usbotg_hs {
351277d6af5SYann Gautier	phys = <&usbphyc_port1 0>;
352277d6af5SYann Gautier	phy-names = "usb2-phy";
353277d6af5SYann Gautier	usb-role-switch;
354277d6af5SYann Gautier	status = "okay";
355277d6af5SYann Gautier};
356277d6af5SYann Gautier
357277d6af5SYann Gautier&usbphyc {
358277d6af5SYann Gautier	status = "okay";
359277d6af5SYann Gautier};
360277d6af5SYann Gautier
361277d6af5SYann Gautier&usbphyc_port0 {
362277d6af5SYann Gautier	phy-supply = <&vdd_usb>;
363277d6af5SYann Gautier};
364277d6af5SYann Gautier
365277d6af5SYann Gautier&usbphyc_port1 {
366277d6af5SYann Gautier	phy-supply = <&vdd_usb>;
367277d6af5SYann Gautier};
368