xref: /rk3399_ARM-atf/fdts/stm32mp15xx-dkx.dtsi (revision 277d6af5616b270436219733a34ded2048c98702)
1*277d6af5SYann Gautier// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2*277d6af5SYann Gautier/*
3*277d6af5SYann Gautier * Copyright (C) STMicroelectronics 2019 - All Rights Reserved
4*277d6af5SYann Gautier * Author: Alexandre Torgue <alexandre.torgue@st.com> for STMicroelectronics.
5*277d6af5SYann Gautier */
6*277d6af5SYann Gautier
7*277d6af5SYann Gautier#include <dt-bindings/clock/stm32mp1-clksrc.h>
8*277d6af5SYann Gautier#include "stm32mp15-ddr3-1x4Gb-1066-binG.dtsi"
9*277d6af5SYann Gautier
10*277d6af5SYann Gautier/ {
11*277d6af5SYann Gautier	memory@c0000000 {
12*277d6af5SYann Gautier		device_type = "memory";
13*277d6af5SYann Gautier		reg = <0xc0000000 0x20000000>;
14*277d6af5SYann Gautier	};
15*277d6af5SYann Gautier
16*277d6af5SYann Gautier	vin: vin {
17*277d6af5SYann Gautier		compatible = "regulator-fixed";
18*277d6af5SYann Gautier		regulator-name = "vin";
19*277d6af5SYann Gautier		regulator-min-microvolt = <5000000>;
20*277d6af5SYann Gautier		regulator-max-microvolt = <5000000>;
21*277d6af5SYann Gautier		regulator-always-on;
22*277d6af5SYann Gautier	};
23*277d6af5SYann Gautier};
24*277d6af5SYann Gautier
25*277d6af5SYann Gautier&bsec {
26*277d6af5SYann Gautier	board_id: board_id@ec {
27*277d6af5SYann Gautier		reg = <0xec 0x4>;
28*277d6af5SYann Gautier		st,non-secure-otp;
29*277d6af5SYann Gautier	};
30*277d6af5SYann Gautier};
31*277d6af5SYann Gautier
32*277d6af5SYann Gautier&clk_hse {
33*277d6af5SYann Gautier	st,digbypass;
34*277d6af5SYann Gautier};
35*277d6af5SYann Gautier
36*277d6af5SYann Gautier&cpu0{
37*277d6af5SYann Gautier	cpu-supply = <&vddcore>;
38*277d6af5SYann Gautier};
39*277d6af5SYann Gautier
40*277d6af5SYann Gautier&cpu1{
41*277d6af5SYann Gautier	cpu-supply = <&vddcore>;
42*277d6af5SYann Gautier};
43*277d6af5SYann Gautier
44*277d6af5SYann Gautier&hash1 {
45*277d6af5SYann Gautier	status = "okay";
46*277d6af5SYann Gautier};
47*277d6af5SYann Gautier
48*277d6af5SYann Gautier&i2c4 {
49*277d6af5SYann Gautier	pinctrl-names = "default";
50*277d6af5SYann Gautier	pinctrl-0 = <&i2c4_pins_a>;
51*277d6af5SYann Gautier	i2c-scl-rising-time-ns = <185>;
52*277d6af5SYann Gautier	i2c-scl-falling-time-ns = <20>;
53*277d6af5SYann Gautier	clock-frequency = <400000>;
54*277d6af5SYann Gautier	status = "okay";
55*277d6af5SYann Gautier
56*277d6af5SYann Gautier	pmic: stpmic@33 {
57*277d6af5SYann Gautier		compatible = "st,stpmic1";
58*277d6af5SYann Gautier		reg = <0x33>;
59*277d6af5SYann Gautier		interrupts-extended = <&exti_pwr 55 IRQ_TYPE_EDGE_FALLING>;
60*277d6af5SYann Gautier		interrupt-controller;
61*277d6af5SYann Gautier		#interrupt-cells = <2>;
62*277d6af5SYann Gautier		status = "okay";
63*277d6af5SYann Gautier
64*277d6af5SYann Gautier		regulators {
65*277d6af5SYann Gautier			compatible = "st,stpmic1-regulators";
66*277d6af5SYann Gautier			buck1-supply = <&vin>;
67*277d6af5SYann Gautier			buck2-supply = <&vin>;
68*277d6af5SYann Gautier			buck3-supply = <&vin>;
69*277d6af5SYann Gautier			buck4-supply = <&vin>;
70*277d6af5SYann Gautier			ldo1-supply = <&v3v3>;
71*277d6af5SYann Gautier			ldo2-supply = <&vin>;
72*277d6af5SYann Gautier			ldo3-supply = <&vdd_ddr>;
73*277d6af5SYann Gautier			ldo4-supply = <&vin>;
74*277d6af5SYann Gautier			ldo5-supply = <&vin>;
75*277d6af5SYann Gautier			ldo6-supply = <&v3v3>;
76*277d6af5SYann Gautier			vref_ddr-supply = <&vin>;
77*277d6af5SYann Gautier			boost-supply = <&vin>;
78*277d6af5SYann Gautier			pwr_sw1-supply = <&bst_out>;
79*277d6af5SYann Gautier			pwr_sw2-supply = <&bst_out>;
80*277d6af5SYann Gautier
81*277d6af5SYann Gautier			vddcore: buck1 {
82*277d6af5SYann Gautier				regulator-name = "vddcore";
83*277d6af5SYann Gautier				regulator-min-microvolt = <1200000>;
84*277d6af5SYann Gautier				regulator-max-microvolt = <1350000>;
85*277d6af5SYann Gautier				regulator-always-on;
86*277d6af5SYann Gautier				regulator-initial-mode = <0>;
87*277d6af5SYann Gautier				regulator-over-current-protection;
88*277d6af5SYann Gautier			};
89*277d6af5SYann Gautier
90*277d6af5SYann Gautier			vdd_ddr: buck2 {
91*277d6af5SYann Gautier				regulator-name = "vdd_ddr";
92*277d6af5SYann Gautier				regulator-min-microvolt = <1350000>;
93*277d6af5SYann Gautier				regulator-max-microvolt = <1350000>;
94*277d6af5SYann Gautier				regulator-always-on;
95*277d6af5SYann Gautier				regulator-initial-mode = <0>;
96*277d6af5SYann Gautier				regulator-over-current-protection;
97*277d6af5SYann Gautier			};
98*277d6af5SYann Gautier
99*277d6af5SYann Gautier			vdd: buck3 {
100*277d6af5SYann Gautier				regulator-name = "vdd";
101*277d6af5SYann Gautier				regulator-min-microvolt = <3300000>;
102*277d6af5SYann Gautier				regulator-max-microvolt = <3300000>;
103*277d6af5SYann Gautier				regulator-always-on;
104*277d6af5SYann Gautier				st,mask-reset;
105*277d6af5SYann Gautier				regulator-initial-mode = <0>;
106*277d6af5SYann Gautier				regulator-over-current-protection;
107*277d6af5SYann Gautier			};
108*277d6af5SYann Gautier
109*277d6af5SYann Gautier			v3v3: buck4 {
110*277d6af5SYann Gautier				regulator-name = "v3v3";
111*277d6af5SYann Gautier				regulator-min-microvolt = <3300000>;
112*277d6af5SYann Gautier				regulator-max-microvolt = <3300000>;
113*277d6af5SYann Gautier				regulator-always-on;
114*277d6af5SYann Gautier				regulator-over-current-protection;
115*277d6af5SYann Gautier				regulator-initial-mode = <0>;
116*277d6af5SYann Gautier			};
117*277d6af5SYann Gautier
118*277d6af5SYann Gautier			v1v8_audio: ldo1 {
119*277d6af5SYann Gautier				regulator-name = "v1v8_audio";
120*277d6af5SYann Gautier				regulator-min-microvolt = <1800000>;
121*277d6af5SYann Gautier				regulator-max-microvolt = <1800000>;
122*277d6af5SYann Gautier				regulator-always-on;
123*277d6af5SYann Gautier			};
124*277d6af5SYann Gautier
125*277d6af5SYann Gautier			v3v3_hdmi: ldo2 {
126*277d6af5SYann Gautier				regulator-name = "v3v3_hdmi";
127*277d6af5SYann Gautier				regulator-min-microvolt = <3300000>;
128*277d6af5SYann Gautier				regulator-max-microvolt = <3300000>;
129*277d6af5SYann Gautier				regulator-always-on;
130*277d6af5SYann Gautier			};
131*277d6af5SYann Gautier
132*277d6af5SYann Gautier			vtt_ddr: ldo3 {
133*277d6af5SYann Gautier				regulator-name = "vtt_ddr";
134*277d6af5SYann Gautier				regulator-min-microvolt = <500000>;
135*277d6af5SYann Gautier				regulator-max-microvolt = <750000>;
136*277d6af5SYann Gautier				regulator-always-on;
137*277d6af5SYann Gautier				regulator-over-current-protection;
138*277d6af5SYann Gautier			};
139*277d6af5SYann Gautier
140*277d6af5SYann Gautier			vdd_usb: ldo4 {
141*277d6af5SYann Gautier				regulator-name = "vdd_usb";
142*277d6af5SYann Gautier				regulator-min-microvolt = <3300000>;
143*277d6af5SYann Gautier				regulator-max-microvolt = <3300000>;
144*277d6af5SYann Gautier				regulator-always-on;
145*277d6af5SYann Gautier			};
146*277d6af5SYann Gautier
147*277d6af5SYann Gautier			vdda: ldo5 {
148*277d6af5SYann Gautier				regulator-name = "vdda";
149*277d6af5SYann Gautier				regulator-min-microvolt = <2900000>;
150*277d6af5SYann Gautier				regulator-max-microvolt = <2900000>;
151*277d6af5SYann Gautier				regulator-boot-on;
152*277d6af5SYann Gautier			};
153*277d6af5SYann Gautier
154*277d6af5SYann Gautier			v1v2_hdmi: ldo6 {
155*277d6af5SYann Gautier				regulator-name = "v1v2_hdmi";
156*277d6af5SYann Gautier				regulator-min-microvolt = <1200000>;
157*277d6af5SYann Gautier				regulator-max-microvolt = <1200000>;
158*277d6af5SYann Gautier				regulator-always-on;
159*277d6af5SYann Gautier			};
160*277d6af5SYann Gautier
161*277d6af5SYann Gautier			vref_ddr: vref_ddr {
162*277d6af5SYann Gautier				regulator-name = "vref_ddr";
163*277d6af5SYann Gautier				regulator-always-on;
164*277d6af5SYann Gautier				regulator-over-current-protection;
165*277d6af5SYann Gautier			};
166*277d6af5SYann Gautier
167*277d6af5SYann Gautier			bst_out: boost {
168*277d6af5SYann Gautier				regulator-name = "bst_out";
169*277d6af5SYann Gautier			};
170*277d6af5SYann Gautier
171*277d6af5SYann Gautier			vbus_otg: pwr_sw1 {
172*277d6af5SYann Gautier				regulator-name = "vbus_otg";
173*277d6af5SYann Gautier			};
174*277d6af5SYann Gautier
175*277d6af5SYann Gautier			vbus_sw: pwr_sw2 {
176*277d6af5SYann Gautier				regulator-name = "vbus_sw";
177*277d6af5SYann Gautier				regulator-active-discharge = <1>;
178*277d6af5SYann Gautier			};
179*277d6af5SYann Gautier		};
180*277d6af5SYann Gautier	};
181*277d6af5SYann Gautier};
182*277d6af5SYann Gautier
183*277d6af5SYann Gautier&iwdg2 {
184*277d6af5SYann Gautier	timeout-sec = <32>;
185*277d6af5SYann Gautier	status = "okay";
186*277d6af5SYann Gautier	secure-status = "okay";
187*277d6af5SYann Gautier};
188*277d6af5SYann Gautier
189*277d6af5SYann Gautier&pwr_regulators {
190*277d6af5SYann Gautier	vdd-supply = <&vdd>;
191*277d6af5SYann Gautier	vdd_3v3_usbfs-supply = <&vdd_usb>;
192*277d6af5SYann Gautier};
193*277d6af5SYann Gautier
194*277d6af5SYann Gautier&rcc {
195*277d6af5SYann Gautier	secure-status = "disabled";
196*277d6af5SYann Gautier	st,clksrc = <
197*277d6af5SYann Gautier		CLK_MPU_PLL1P
198*277d6af5SYann Gautier		CLK_AXI_PLL2P
199*277d6af5SYann Gautier		CLK_MCU_PLL3P
200*277d6af5SYann Gautier		CLK_PLL12_HSE
201*277d6af5SYann Gautier		CLK_PLL3_HSE
202*277d6af5SYann Gautier		CLK_PLL4_HSE
203*277d6af5SYann Gautier		CLK_RTC_LSE
204*277d6af5SYann Gautier		CLK_MCO1_DISABLED
205*277d6af5SYann Gautier		CLK_MCO2_DISABLED
206*277d6af5SYann Gautier	>;
207*277d6af5SYann Gautier
208*277d6af5SYann Gautier	st,clkdiv = <
209*277d6af5SYann Gautier		1 /*MPU*/
210*277d6af5SYann Gautier		0 /*AXI*/
211*277d6af5SYann Gautier		0 /*MCU*/
212*277d6af5SYann Gautier		1 /*APB1*/
213*277d6af5SYann Gautier		1 /*APB2*/
214*277d6af5SYann Gautier		1 /*APB3*/
215*277d6af5SYann Gautier		1 /*APB4*/
216*277d6af5SYann Gautier		2 /*APB5*/
217*277d6af5SYann Gautier		23 /*RTC*/
218*277d6af5SYann Gautier		0 /*MCO1*/
219*277d6af5SYann Gautier		0 /*MCO2*/
220*277d6af5SYann Gautier	>;
221*277d6af5SYann Gautier
222*277d6af5SYann Gautier	st,pkcs = <
223*277d6af5SYann Gautier		CLK_CKPER_HSE
224*277d6af5SYann Gautier		CLK_FMC_ACLK
225*277d6af5SYann Gautier		CLK_QSPI_ACLK
226*277d6af5SYann Gautier		CLK_ETH_DISABLED
227*277d6af5SYann Gautier		CLK_SDMMC12_PLL4P
228*277d6af5SYann Gautier		CLK_DSI_DSIPLL
229*277d6af5SYann Gautier		CLK_STGEN_HSE
230*277d6af5SYann Gautier		CLK_USBPHY_HSE
231*277d6af5SYann Gautier		CLK_SPI2S1_PLL3Q
232*277d6af5SYann Gautier		CLK_SPI2S23_PLL3Q
233*277d6af5SYann Gautier		CLK_SPI45_HSI
234*277d6af5SYann Gautier		CLK_SPI6_HSI
235*277d6af5SYann Gautier		CLK_I2C46_HSI
236*277d6af5SYann Gautier		CLK_SDMMC3_PLL4P
237*277d6af5SYann Gautier		CLK_USBO_USBPHY
238*277d6af5SYann Gautier		CLK_ADC_CKPER
239*277d6af5SYann Gautier		CLK_CEC_LSE
240*277d6af5SYann Gautier		CLK_I2C12_HSI
241*277d6af5SYann Gautier		CLK_I2C35_HSI
242*277d6af5SYann Gautier		CLK_UART1_HSI
243*277d6af5SYann Gautier		CLK_UART24_HSI
244*277d6af5SYann Gautier		CLK_UART35_HSI
245*277d6af5SYann Gautier		CLK_UART6_HSI
246*277d6af5SYann Gautier		CLK_UART78_HSI
247*277d6af5SYann Gautier		CLK_SPDIF_PLL4P
248*277d6af5SYann Gautier		CLK_FDCAN_PLL4R
249*277d6af5SYann Gautier		CLK_SAI1_PLL3Q
250*277d6af5SYann Gautier		CLK_SAI2_PLL3Q
251*277d6af5SYann Gautier		CLK_SAI3_PLL3Q
252*277d6af5SYann Gautier		CLK_SAI4_PLL3Q
253*277d6af5SYann Gautier		CLK_RNG1_LSI
254*277d6af5SYann Gautier		CLK_RNG2_LSI
255*277d6af5SYann Gautier		CLK_LPTIM1_PCLK1
256*277d6af5SYann Gautier		CLK_LPTIM23_PCLK3
257*277d6af5SYann Gautier		CLK_LPTIM45_LSE
258*277d6af5SYann Gautier	>;
259*277d6af5SYann Gautier
260*277d6af5SYann Gautier	/* VCO = 1300.0 MHz => P = 650 (CPU) */
261*277d6af5SYann Gautier	pll1: st,pll@0 {
262*277d6af5SYann Gautier		compatible = "st,stm32mp1-pll";
263*277d6af5SYann Gautier		reg = <0>;
264*277d6af5SYann Gautier		cfg = < 2 80 0 0 0 PQR(1,0,0) >;
265*277d6af5SYann Gautier		frac = < 0x800 >;
266*277d6af5SYann Gautier	};
267*277d6af5SYann Gautier
268*277d6af5SYann Gautier	/* VCO = 1066.0 MHz => P = 266 (AXI), Q = 533 (GPU), R = 533 (DDR) */
269*277d6af5SYann Gautier	pll2: st,pll@1 {
270*277d6af5SYann Gautier		compatible = "st,stm32mp1-pll";
271*277d6af5SYann Gautier		reg = <1>;
272*277d6af5SYann Gautier		cfg = <2 65 1 0 0 PQR(1,1,1)>;
273*277d6af5SYann Gautier		frac = <0x1400>;
274*277d6af5SYann Gautier	};
275*277d6af5SYann Gautier
276*277d6af5SYann Gautier	/* VCO = 417.8 MHz => P = 209, Q = 24, R = 11 */
277*277d6af5SYann Gautier	pll3: st,pll@2 {
278*277d6af5SYann Gautier		compatible = "st,stm32mp1-pll";
279*277d6af5SYann Gautier		reg = <2>;
280*277d6af5SYann Gautier		cfg = <1 33 1 16 36 PQR(1,1,1)>;
281*277d6af5SYann Gautier		frac = <0x1a04>;
282*277d6af5SYann Gautier	};
283*277d6af5SYann Gautier
284*277d6af5SYann Gautier	/* VCO = 594.0 MHz => P = 99, Q = 74, R = 74 */
285*277d6af5SYann Gautier	pll4: st,pll@3 {
286*277d6af5SYann Gautier		compatible = "st,stm32mp1-pll";
287*277d6af5SYann Gautier		reg = <3>;
288*277d6af5SYann Gautier		cfg = <3 98 5 7 7 PQR(1,1,1)>;
289*277d6af5SYann Gautier	};
290*277d6af5SYann Gautier};
291*277d6af5SYann Gautier
292*277d6af5SYann Gautier&rng1 {
293*277d6af5SYann Gautier	status = "okay";
294*277d6af5SYann Gautier};
295*277d6af5SYann Gautier
296*277d6af5SYann Gautier&rtc {
297*277d6af5SYann Gautier	status = "okay";
298*277d6af5SYann Gautier};
299*277d6af5SYann Gautier
300*277d6af5SYann Gautier&sdmmc1 {
301*277d6af5SYann Gautier	pinctrl-names = "default";
302*277d6af5SYann Gautier	pinctrl-0 = <&sdmmc1_b4_pins_a>;
303*277d6af5SYann Gautier	disable-wp;
304*277d6af5SYann Gautier	st,neg-edge;
305*277d6af5SYann Gautier	bus-width = <4>;
306*277d6af5SYann Gautier	vmmc-supply = <&v3v3>;
307*277d6af5SYann Gautier	status = "okay";
308*277d6af5SYann Gautier};
309*277d6af5SYann Gautier
310*277d6af5SYann Gautier&timers15 {
311*277d6af5SYann Gautier	secure-status = "okay";
312*277d6af5SYann Gautier};
313*277d6af5SYann Gautier
314*277d6af5SYann Gautier&uart4 {
315*277d6af5SYann Gautier	pinctrl-names = "default";
316*277d6af5SYann Gautier	pinctrl-0 = <&uart4_pins_a>;
317*277d6af5SYann Gautier	status = "okay";
318*277d6af5SYann Gautier};
319*277d6af5SYann Gautier
320*277d6af5SYann Gautier&uart7 {
321*277d6af5SYann Gautier	pinctrl-names = "default";
322*277d6af5SYann Gautier	pinctrl-0 = <&uart7_pins_b>;
323*277d6af5SYann Gautier	status = "disabled";
324*277d6af5SYann Gautier};
325*277d6af5SYann Gautier
326*277d6af5SYann Gautier&usart3 {
327*277d6af5SYann Gautier	pinctrl-names = "default";
328*277d6af5SYann Gautier	pinctrl-0 = <&usart3_pins_b>;
329*277d6af5SYann Gautier	uart-has-rtscts;
330*277d6af5SYann Gautier	status = "disabled";
331*277d6af5SYann Gautier};
332*277d6af5SYann Gautier
333*277d6af5SYann Gautier&usbotg_hs {
334*277d6af5SYann Gautier	phys = <&usbphyc_port1 0>;
335*277d6af5SYann Gautier	phy-names = "usb2-phy";
336*277d6af5SYann Gautier	usb-role-switch;
337*277d6af5SYann Gautier	status = "okay";
338*277d6af5SYann Gautier};
339*277d6af5SYann Gautier
340*277d6af5SYann Gautier&usbphyc {
341*277d6af5SYann Gautier	status = "okay";
342*277d6af5SYann Gautier};
343*277d6af5SYann Gautier
344*277d6af5SYann Gautier&usbphyc_port0 {
345*277d6af5SYann Gautier	phy-supply = <&vdd_usb>;
346*277d6af5SYann Gautier};
347*277d6af5SYann Gautier
348*277d6af5SYann Gautier&usbphyc_port1 {
349*277d6af5SYann Gautier	phy-supply = <&vdd_usb>;
350*277d6af5SYann Gautier};
351