xref: /OK3568_Linux_fs/u-boot/arch/arm/dts/stm32mp157a-dk1-u-boot.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Copyright : STMicroelectronics 2018
4*4882a593Smuzhiyun */
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun#include <dt-bindings/clock/stm32mp1-clksrc.h>
7*4882a593Smuzhiyun#include "stm32mp157-u-boot.dtsi"
8*4882a593Smuzhiyun#include "stm32mp15-ddr3-1x4Gb-1066-binG.dtsi"
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun/ {
11*4882a593Smuzhiyun	aliases {
12*4882a593Smuzhiyun		i2c3 = &i2c4;
13*4882a593Smuzhiyun		mmc0 = &sdmmc1;
14*4882a593Smuzhiyun		usb0 = &usbotg_hs;
15*4882a593Smuzhiyun	};
16*4882a593Smuzhiyun	config {
17*4882a593Smuzhiyun		u-boot,boot-led = "heartbeat";
18*4882a593Smuzhiyun		u-boot,error-led = "error";
19*4882a593Smuzhiyun		st,adc_usb_pd = <&adc1 18>, <&adc1 19>;
20*4882a593Smuzhiyun	};
21*4882a593Smuzhiyun	led {
22*4882a593Smuzhiyun		red {
23*4882a593Smuzhiyun			label = "error";
24*4882a593Smuzhiyun			gpios = <&gpioa 13 GPIO_ACTIVE_LOW>;
25*4882a593Smuzhiyun			default-state = "off";
26*4882a593Smuzhiyun			status = "okay";
27*4882a593Smuzhiyun		};
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun		blue {
30*4882a593Smuzhiyun			default-state = "on";
31*4882a593Smuzhiyun		};
32*4882a593Smuzhiyun	};
33*4882a593Smuzhiyun};
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun&adc {
36*4882a593Smuzhiyun	pinctrl-names = "default";
37*4882a593Smuzhiyun	pinctrl-0 = <&adc12_usb_pwr_pins_a>;
38*4882a593Smuzhiyun	vdd-supply = <&vdd>;
39*4882a593Smuzhiyun	vdda-supply = <&vdd>;
40*4882a593Smuzhiyun	vref-supply = <&vrefbuf>;
41*4882a593Smuzhiyun	status = "okay";
42*4882a593Smuzhiyun	adc1: adc@0 {
43*4882a593Smuzhiyun		/*
44*4882a593Smuzhiyun		 * Type-C USB_PWR_CC1 & USB_PWR_CC2 on in18 & in19.
45*4882a593Smuzhiyun		 * Use at least 5 * RC time, e.g. 5 * (Rp + Rd) * C:
46*4882a593Smuzhiyun		 * 5 * (56 + 47kOhms) * 5pF => 2.5us.
47*4882a593Smuzhiyun		 * Use arbitrary margin here (e.g. 5µs).
48*4882a593Smuzhiyun		 */
49*4882a593Smuzhiyun		st,min-sample-time-nsecs = <5000>;
50*4882a593Smuzhiyun		/* ANA0, ANA1, USB Type-C CC1 & CC2 */
51*4882a593Smuzhiyun		st,adc-channels = <0 1 18 19>;
52*4882a593Smuzhiyun		status = "okay";
53*4882a593Smuzhiyun	};
54*4882a593Smuzhiyun};
55*4882a593Smuzhiyun
56*4882a593Smuzhiyun&clk_hse {
57*4882a593Smuzhiyun	st,digbypass;
58*4882a593Smuzhiyun};
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun&i2c4 {
61*4882a593Smuzhiyun	u-boot,dm-pre-reloc;
62*4882a593Smuzhiyun};
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun&i2c4_pins_a {
65*4882a593Smuzhiyun	u-boot,dm-pre-reloc;
66*4882a593Smuzhiyun	pins {
67*4882a593Smuzhiyun		u-boot,dm-pre-reloc;
68*4882a593Smuzhiyun	};
69*4882a593Smuzhiyun};
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun&pmic {
72*4882a593Smuzhiyun	u-boot,dm-pre-reloc;
73*4882a593Smuzhiyun};
74*4882a593Smuzhiyun
75*4882a593Smuzhiyun&rcc {
76*4882a593Smuzhiyun	st,clksrc = <
77*4882a593Smuzhiyun		CLK_MPU_PLL1P
78*4882a593Smuzhiyun		CLK_AXI_PLL2P
79*4882a593Smuzhiyun		CLK_MCU_PLL3P
80*4882a593Smuzhiyun		CLK_PLL12_HSE
81*4882a593Smuzhiyun		CLK_PLL3_HSE
82*4882a593Smuzhiyun		CLK_PLL4_HSE
83*4882a593Smuzhiyun		CLK_RTC_LSE
84*4882a593Smuzhiyun		CLK_MCO1_DISABLED
85*4882a593Smuzhiyun		CLK_MCO2_DISABLED
86*4882a593Smuzhiyun	>;
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun	st,clkdiv = <
89*4882a593Smuzhiyun		1 /*MPU*/
90*4882a593Smuzhiyun		0 /*AXI*/
91*4882a593Smuzhiyun		0 /*MCU*/
92*4882a593Smuzhiyun		1 /*APB1*/
93*4882a593Smuzhiyun		1 /*APB2*/
94*4882a593Smuzhiyun		1 /*APB3*/
95*4882a593Smuzhiyun		1 /*APB4*/
96*4882a593Smuzhiyun		2 /*APB5*/
97*4882a593Smuzhiyun		23 /*RTC*/
98*4882a593Smuzhiyun		0 /*MCO1*/
99*4882a593Smuzhiyun		0 /*MCO2*/
100*4882a593Smuzhiyun	>;
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun	st,pkcs = <
103*4882a593Smuzhiyun		CLK_CKPER_HSE
104*4882a593Smuzhiyun		CLK_FMC_ACLK
105*4882a593Smuzhiyun		CLK_QSPI_ACLK
106*4882a593Smuzhiyun		CLK_ETH_DISABLED
107*4882a593Smuzhiyun		CLK_SDMMC12_PLL4P
108*4882a593Smuzhiyun		CLK_DSI_DSIPLL
109*4882a593Smuzhiyun		CLK_STGEN_HSE
110*4882a593Smuzhiyun		CLK_USBPHY_HSE
111*4882a593Smuzhiyun		CLK_SPI2S1_PLL3Q
112*4882a593Smuzhiyun		CLK_SPI2S23_PLL3Q
113*4882a593Smuzhiyun		CLK_SPI45_HSI
114*4882a593Smuzhiyun		CLK_SPI6_HSI
115*4882a593Smuzhiyun		CLK_I2C46_HSI
116*4882a593Smuzhiyun		CLK_SDMMC3_PLL4P
117*4882a593Smuzhiyun		CLK_USBO_USBPHY
118*4882a593Smuzhiyun		CLK_ADC_CKPER
119*4882a593Smuzhiyun		CLK_CEC_LSE
120*4882a593Smuzhiyun		CLK_I2C12_HSI
121*4882a593Smuzhiyun		CLK_I2C35_HSI
122*4882a593Smuzhiyun		CLK_UART1_HSI
123*4882a593Smuzhiyun		CLK_UART24_HSI
124*4882a593Smuzhiyun		CLK_UART35_HSI
125*4882a593Smuzhiyun		CLK_UART6_HSI
126*4882a593Smuzhiyun		CLK_UART78_HSI
127*4882a593Smuzhiyun		CLK_SPDIF_PLL4P
128*4882a593Smuzhiyun		CLK_FDCAN_PLL4Q
129*4882a593Smuzhiyun		CLK_SAI1_PLL3Q
130*4882a593Smuzhiyun		CLK_SAI2_PLL3Q
131*4882a593Smuzhiyun		CLK_SAI3_PLL3Q
132*4882a593Smuzhiyun		CLK_SAI4_PLL3Q
133*4882a593Smuzhiyun		CLK_RNG1_LSI
134*4882a593Smuzhiyun		CLK_RNG2_LSI
135*4882a593Smuzhiyun		CLK_LPTIM1_PCLK1
136*4882a593Smuzhiyun		CLK_LPTIM23_PCLK3
137*4882a593Smuzhiyun		CLK_LPTIM45_LSE
138*4882a593Smuzhiyun	>;
139*4882a593Smuzhiyun
140*4882a593Smuzhiyun	/* VCO = 1300.0 MHz => P = 650 (CPU) */
141*4882a593Smuzhiyun	pll1: st,pll@0 {
142*4882a593Smuzhiyun		cfg = < 2 80 0 0 0 PQR(1,0,0) >;
143*4882a593Smuzhiyun		frac = < 0x800 >;
144*4882a593Smuzhiyun		u-boot,dm-pre-reloc;
145*4882a593Smuzhiyun	};
146*4882a593Smuzhiyun
147*4882a593Smuzhiyun	/* VCO = 1066.0 MHz => P = 266 (AXI), Q = 533 (GPU), R = 533 (DDR) */
148*4882a593Smuzhiyun	pll2: st,pll@1 {
149*4882a593Smuzhiyun		cfg = < 2 65 1 0 0 PQR(1,1,1) >;
150*4882a593Smuzhiyun		frac = < 0x1400 >;
151*4882a593Smuzhiyun		u-boot,dm-pre-reloc;
152*4882a593Smuzhiyun	};
153*4882a593Smuzhiyun
154*4882a593Smuzhiyun	/* VCO = 417.8 MHz => P = 209, Q = 24, R = 11 */
155*4882a593Smuzhiyun	pll3: st,pll@2 {
156*4882a593Smuzhiyun		cfg = < 1 33 1 16 36 PQR(1,1,1) >;
157*4882a593Smuzhiyun		frac = < 0x1a04 >;
158*4882a593Smuzhiyun		u-boot,dm-pre-reloc;
159*4882a593Smuzhiyun	};
160*4882a593Smuzhiyun
161*4882a593Smuzhiyun	/* VCO = 594.0 MHz => P = 99, Q = 74, R = 74 */
162*4882a593Smuzhiyun	pll4: st,pll@3 {
163*4882a593Smuzhiyun		cfg = < 3 98 5 7 7 PQR(1,1,1) >;
164*4882a593Smuzhiyun		u-boot,dm-pre-reloc;
165*4882a593Smuzhiyun	};
166*4882a593Smuzhiyun};
167*4882a593Smuzhiyun
168*4882a593Smuzhiyun&sdmmc1 {
169*4882a593Smuzhiyun	u-boot,dm-spl;
170*4882a593Smuzhiyun};
171*4882a593Smuzhiyun
172*4882a593Smuzhiyun&sdmmc1_b4_pins_a {
173*4882a593Smuzhiyun	u-boot,dm-spl;
174*4882a593Smuzhiyun	pins {
175*4882a593Smuzhiyun		u-boot,dm-spl;
176*4882a593Smuzhiyun	};
177*4882a593Smuzhiyun};
178*4882a593Smuzhiyun
179*4882a593Smuzhiyun&uart4 {
180*4882a593Smuzhiyun	u-boot,dm-pre-reloc;
181*4882a593Smuzhiyun};
182*4882a593Smuzhiyun
183*4882a593Smuzhiyun&uart4_pins_a {
184*4882a593Smuzhiyun	u-boot,dm-pre-reloc;
185*4882a593Smuzhiyun	pins1 {
186*4882a593Smuzhiyun		u-boot,dm-pre-reloc;
187*4882a593Smuzhiyun	};
188*4882a593Smuzhiyun	pins2 {
189*4882a593Smuzhiyun		u-boot,dm-pre-reloc;
190*4882a593Smuzhiyun	};
191*4882a593Smuzhiyun};
192*4882a593Smuzhiyun
193*4882a593Smuzhiyun&usbotg_hs {
194*4882a593Smuzhiyun	u-boot,force-b-session-valid;
195*4882a593Smuzhiyun	hnp-srp-disable;
196*4882a593Smuzhiyun};
197*4882a593Smuzhiyun
198*4882a593Smuzhiyun&v3v3 {
199*4882a593Smuzhiyun	regulator-always-on;
200*4882a593Smuzhiyun};
201