xref: /OK3568_Linux_fs/u-boot/arch/arm/dts/stm32mp157a-dk1.dts (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Copyright (C) STMicroelectronics 2019 - All Rights Reserved
4*4882a593Smuzhiyun * Author: Alexandre Torgue <alexandre.torgue@st.com> for STMicroelectronics.
5*4882a593Smuzhiyun */
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun/dts-v1/;
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun#include "stm32mp157c.dtsi"
10*4882a593Smuzhiyun#include "stm32mp157-pinctrl.dtsi"
11*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h>
12*4882a593Smuzhiyun#include <dt-bindings/mfd/st,stpmic1.h>
13*4882a593Smuzhiyun
14*4882a593Smuzhiyun/ {
15*4882a593Smuzhiyun	model = "STMicroelectronics STM32MP157A-DK1 Discovery Board";
16*4882a593Smuzhiyun	compatible = "st,stm32mp157a-dk1", "st,stm32mp157";
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun	aliases {
19*4882a593Smuzhiyun		ethernet0 = &ethernet0;
20*4882a593Smuzhiyun		serial0 = &uart4;
21*4882a593Smuzhiyun	};
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun	chosen {
24*4882a593Smuzhiyun		stdout-path = "serial0:115200n8";
25*4882a593Smuzhiyun	};
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun	memory@c0000000 {
28*4882a593Smuzhiyun		reg = <0xc0000000 0x20000000>;
29*4882a593Smuzhiyun	};
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun	led {
32*4882a593Smuzhiyun		compatible = "gpio-leds";
33*4882a593Smuzhiyun		blue {
34*4882a593Smuzhiyun			label = "heartbeat";
35*4882a593Smuzhiyun			gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>;
36*4882a593Smuzhiyun			linux,default-trigger = "heartbeat";
37*4882a593Smuzhiyun			default-state = "off";
38*4882a593Smuzhiyun		};
39*4882a593Smuzhiyun	};
40*4882a593Smuzhiyun};
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun&ethernet0 {
43*4882a593Smuzhiyun	status = "okay";
44*4882a593Smuzhiyun	pinctrl-0 = <&ethernet0_rgmii_pins_a>;
45*4882a593Smuzhiyun	pinctrl-1 = <&ethernet0_rgmii_pins_sleep_a>;
46*4882a593Smuzhiyun	pinctrl-names = "default", "sleep";
47*4882a593Smuzhiyun	phy-mode = "rgmii";
48*4882a593Smuzhiyun	max-speed = <1000>;
49*4882a593Smuzhiyun	phy-handle = <&phy0>;
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun	mdio0 {
52*4882a593Smuzhiyun		#address-cells = <1>;
53*4882a593Smuzhiyun		#size-cells = <0>;
54*4882a593Smuzhiyun		compatible = "snps,dwmac-mdio";
55*4882a593Smuzhiyun		phy0: ethernet-phy@0 {
56*4882a593Smuzhiyun			reg = <0>;
57*4882a593Smuzhiyun		};
58*4882a593Smuzhiyun	};
59*4882a593Smuzhiyun};
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun&i2c4 {
62*4882a593Smuzhiyun	pinctrl-names = "default";
63*4882a593Smuzhiyun	pinctrl-0 = <&i2c4_pins_a>;
64*4882a593Smuzhiyun	i2c-scl-rising-time-ns = <185>;
65*4882a593Smuzhiyun	i2c-scl-falling-time-ns = <20>;
66*4882a593Smuzhiyun	status = "okay";
67*4882a593Smuzhiyun	/delete-property/dmas;
68*4882a593Smuzhiyun	/delete-property/dma-names;
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun	typec: stusb1600@28 {
71*4882a593Smuzhiyun		compatible = "st,stusb1600";
72*4882a593Smuzhiyun		reg = <0x28>;
73*4882a593Smuzhiyun		interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
74*4882a593Smuzhiyun		interrupt-parent = <&gpioi>;
75*4882a593Smuzhiyun		pinctrl-names = "default";
76*4882a593Smuzhiyun		pinctrl-0 = <&stusb1600_pins_a>;
77*4882a593Smuzhiyun
78*4882a593Smuzhiyun		status = "okay";
79*4882a593Smuzhiyun
80*4882a593Smuzhiyun		typec_con: connector {
81*4882a593Smuzhiyun			compatible = "usb-c-connector";
82*4882a593Smuzhiyun			label = "USB-C";
83*4882a593Smuzhiyun			power-role = "sink";
84*4882a593Smuzhiyun			power-opmode = "default";
85*4882a593Smuzhiyun		};
86*4882a593Smuzhiyun	};
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun	pmic: stpmic@33 {
89*4882a593Smuzhiyun		compatible = "st,stpmic1";
90*4882a593Smuzhiyun		reg = <0x33>;
91*4882a593Smuzhiyun		interrupt-controller;
92*4882a593Smuzhiyun		#interrupt-cells = <2>;
93*4882a593Smuzhiyun		status = "okay";
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun		st,main-control-register = <0x04>;
96*4882a593Smuzhiyun		st,vin-control-register = <0xc0>;
97*4882a593Smuzhiyun		st,usb-control-register = <0x20>;
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun		regulators {
100*4882a593Smuzhiyun			compatible = "st,stpmic1-regulators";
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun			ldo1-supply = <&v3v3>;
103*4882a593Smuzhiyun			ldo3-supply = <&vdd_ddr>;
104*4882a593Smuzhiyun			ldo6-supply = <&v3v3>;
105*4882a593Smuzhiyun			pwr_sw1-supply = <&bst_out>;
106*4882a593Smuzhiyun			pwr_sw2-supply = <&bst_out>;
107*4882a593Smuzhiyun
108*4882a593Smuzhiyun			vddcore: buck1 {
109*4882a593Smuzhiyun				regulator-name = "vddcore";
110*4882a593Smuzhiyun				regulator-min-microvolt = <1200000>;
111*4882a593Smuzhiyun				regulator-max-microvolt = <1350000>;
112*4882a593Smuzhiyun				regulator-always-on;
113*4882a593Smuzhiyun				regulator-initial-mode = <0>;
114*4882a593Smuzhiyun				regulator-over-current-protection;
115*4882a593Smuzhiyun			};
116*4882a593Smuzhiyun
117*4882a593Smuzhiyun			vdd_ddr: buck2 {
118*4882a593Smuzhiyun				regulator-name = "vdd_ddr";
119*4882a593Smuzhiyun				regulator-min-microvolt = <1350000>;
120*4882a593Smuzhiyun				regulator-max-microvolt = <1350000>;
121*4882a593Smuzhiyun				regulator-always-on;
122*4882a593Smuzhiyun				regulator-initial-mode = <0>;
123*4882a593Smuzhiyun				regulator-over-current-protection;
124*4882a593Smuzhiyun			};
125*4882a593Smuzhiyun
126*4882a593Smuzhiyun			vdd: buck3 {
127*4882a593Smuzhiyun				regulator-name = "vdd";
128*4882a593Smuzhiyun				regulator-min-microvolt = <3300000>;
129*4882a593Smuzhiyun				regulator-max-microvolt = <3300000>;
130*4882a593Smuzhiyun				regulator-always-on;
131*4882a593Smuzhiyun				st,mask-reset;
132*4882a593Smuzhiyun				regulator-initial-mode = <0>;
133*4882a593Smuzhiyun				regulator-over-current-protection;
134*4882a593Smuzhiyun			};
135*4882a593Smuzhiyun
136*4882a593Smuzhiyun			v3v3: buck4 {
137*4882a593Smuzhiyun				regulator-name = "v3v3";
138*4882a593Smuzhiyun				regulator-min-microvolt = <3300000>;
139*4882a593Smuzhiyun				regulator-max-microvolt = <3300000>;
140*4882a593Smuzhiyun				regulator-always-on;
141*4882a593Smuzhiyun				regulator-over-current-protection;
142*4882a593Smuzhiyun				regulator-initial-mode = <0>;
143*4882a593Smuzhiyun			};
144*4882a593Smuzhiyun
145*4882a593Smuzhiyun			v1v8_audio: ldo1 {
146*4882a593Smuzhiyun				regulator-name = "v1v8_audio";
147*4882a593Smuzhiyun				regulator-min-microvolt = <1800000>;
148*4882a593Smuzhiyun				regulator-max-microvolt = <1800000>;
149*4882a593Smuzhiyun				regulator-always-on;
150*4882a593Smuzhiyun				interrupts = <IT_CURLIM_LDO1 0>;
151*4882a593Smuzhiyun			};
152*4882a593Smuzhiyun
153*4882a593Smuzhiyun			v3v3_hdmi: ldo2 {
154*4882a593Smuzhiyun				regulator-name = "v3v3_hdmi";
155*4882a593Smuzhiyun				regulator-min-microvolt = <3300000>;
156*4882a593Smuzhiyun				regulator-max-microvolt = <3300000>;
157*4882a593Smuzhiyun				regulator-always-on;
158*4882a593Smuzhiyun				interrupts = <IT_CURLIM_LDO2 0>;
159*4882a593Smuzhiyun			};
160*4882a593Smuzhiyun
161*4882a593Smuzhiyun			vtt_ddr: ldo3 {
162*4882a593Smuzhiyun				regulator-name = "vtt_ddr";
163*4882a593Smuzhiyun				regulator-min-microvolt = <500000>;
164*4882a593Smuzhiyun				regulator-max-microvolt = <750000>;
165*4882a593Smuzhiyun				regulator-always-on;
166*4882a593Smuzhiyun				regulator-over-current-protection;
167*4882a593Smuzhiyun			};
168*4882a593Smuzhiyun
169*4882a593Smuzhiyun			vdd_usb: ldo4 {
170*4882a593Smuzhiyun				regulator-name = "vdd_usb";
171*4882a593Smuzhiyun				regulator-min-microvolt = <3300000>;
172*4882a593Smuzhiyun				regulator-max-microvolt = <3300000>;
173*4882a593Smuzhiyun				interrupts = <IT_CURLIM_LDO4 0>;
174*4882a593Smuzhiyun			};
175*4882a593Smuzhiyun
176*4882a593Smuzhiyun			vdda: ldo5 {
177*4882a593Smuzhiyun				regulator-name = "vdda";
178*4882a593Smuzhiyun				regulator-min-microvolt = <2900000>;
179*4882a593Smuzhiyun				regulator-max-microvolt = <2900000>;
180*4882a593Smuzhiyun				interrupts = <IT_CURLIM_LDO5 0>;
181*4882a593Smuzhiyun				regulator-boot-on;
182*4882a593Smuzhiyun			};
183*4882a593Smuzhiyun
184*4882a593Smuzhiyun			v1v2_hdmi: ldo6 {
185*4882a593Smuzhiyun				regulator-name = "v1v2_hdmi";
186*4882a593Smuzhiyun				regulator-min-microvolt = <1200000>;
187*4882a593Smuzhiyun				regulator-max-microvolt = <1200000>;
188*4882a593Smuzhiyun				regulator-always-on;
189*4882a593Smuzhiyun				interrupts = <IT_CURLIM_LDO6 0>;
190*4882a593Smuzhiyun
191*4882a593Smuzhiyun			};
192*4882a593Smuzhiyun
193*4882a593Smuzhiyun			vref_ddr: vref_ddr {
194*4882a593Smuzhiyun				regulator-name = "vref_ddr";
195*4882a593Smuzhiyun				regulator-always-on;
196*4882a593Smuzhiyun				regulator-over-current-protection;
197*4882a593Smuzhiyun			};
198*4882a593Smuzhiyun
199*4882a593Smuzhiyun			 bst_out: boost {
200*4882a593Smuzhiyun				regulator-name = "bst_out";
201*4882a593Smuzhiyun				interrupts = <IT_OCP_BOOST 0>;
202*4882a593Smuzhiyun			 };
203*4882a593Smuzhiyun
204*4882a593Smuzhiyun			vbus_otg: pwr_sw1 {
205*4882a593Smuzhiyun				regulator-name = "vbus_otg";
206*4882a593Smuzhiyun				interrupts = <IT_OCP_OTG 0>;
207*4882a593Smuzhiyun				regulator-active-discharge;
208*4882a593Smuzhiyun			 };
209*4882a593Smuzhiyun
210*4882a593Smuzhiyun			 vbus_sw: pwr_sw2 {
211*4882a593Smuzhiyun				regulator-name = "vbus_sw";
212*4882a593Smuzhiyun				interrupts = <IT_OCP_SWOUT 0>;
213*4882a593Smuzhiyun				regulator-active-discharge;
214*4882a593Smuzhiyun			 };
215*4882a593Smuzhiyun		};
216*4882a593Smuzhiyun
217*4882a593Smuzhiyun		onkey {
218*4882a593Smuzhiyun			compatible = "st,stpmic1-onkey";
219*4882a593Smuzhiyun			interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 1>;
220*4882a593Smuzhiyun			interrupt-names = "onkey-falling", "onkey-rising";
221*4882a593Smuzhiyun			status = "okay";
222*4882a593Smuzhiyun		};
223*4882a593Smuzhiyun
224*4882a593Smuzhiyun		watchdog {
225*4882a593Smuzhiyun			compatible = "st,stpmic1-wdt";
226*4882a593Smuzhiyun			status = "disabled";
227*4882a593Smuzhiyun		};
228*4882a593Smuzhiyun	};
229*4882a593Smuzhiyun};
230*4882a593Smuzhiyun
231*4882a593Smuzhiyun&iwdg2 {
232*4882a593Smuzhiyun	timeout-sec = <32>;
233*4882a593Smuzhiyun	status = "okay";
234*4882a593Smuzhiyun};
235*4882a593Smuzhiyun
236*4882a593Smuzhiyun&pwr {
237*4882a593Smuzhiyun	pwr-supply = <&vdd>;
238*4882a593Smuzhiyun};
239*4882a593Smuzhiyun
240*4882a593Smuzhiyun&rng1 {
241*4882a593Smuzhiyun	status = "okay";
242*4882a593Smuzhiyun};
243*4882a593Smuzhiyun
244*4882a593Smuzhiyun&rtc {
245*4882a593Smuzhiyun	status = "okay";
246*4882a593Smuzhiyun};
247*4882a593Smuzhiyun
248*4882a593Smuzhiyun&sdmmc1 {
249*4882a593Smuzhiyun	pinctrl-names = "default";
250*4882a593Smuzhiyun	pinctrl-0 = <&sdmmc1_b4_pins_a>;
251*4882a593Smuzhiyun	broken-cd;
252*4882a593Smuzhiyun	st,neg-edge;
253*4882a593Smuzhiyun	bus-width = <4>;
254*4882a593Smuzhiyun	vmmc-supply = <&v3v3>;
255*4882a593Smuzhiyun	status = "okay";
256*4882a593Smuzhiyun};
257*4882a593Smuzhiyun
258*4882a593Smuzhiyun&uart4 {
259*4882a593Smuzhiyun	pinctrl-names = "default";
260*4882a593Smuzhiyun	pinctrl-0 = <&uart4_pins_a>;
261*4882a593Smuzhiyun	status = "okay";
262*4882a593Smuzhiyun};
263*4882a593Smuzhiyun
264*4882a593Smuzhiyun&usbh_ehci {
265*4882a593Smuzhiyun	phys = <&usbphyc_port0>;
266*4882a593Smuzhiyun	phy-names = "usb";
267*4882a593Smuzhiyun	status = "okay";
268*4882a593Smuzhiyun};
269*4882a593Smuzhiyun
270*4882a593Smuzhiyun&usbotg_hs {
271*4882a593Smuzhiyun	dr_mode = "peripheral";
272*4882a593Smuzhiyun	phys = <&usbphyc_port1 0>;
273*4882a593Smuzhiyun	phy-names = "usb2-phy";
274*4882a593Smuzhiyun	status = "okay";
275*4882a593Smuzhiyun};
276*4882a593Smuzhiyun
277*4882a593Smuzhiyun&usbphyc {
278*4882a593Smuzhiyun	status = "okay";
279*4882a593Smuzhiyun};
280*4882a593Smuzhiyun
281*4882a593Smuzhiyun&usbphyc_port0 {
282*4882a593Smuzhiyun	phy-supply = <&vdd_usb>;
283*4882a593Smuzhiyun};
284*4882a593Smuzhiyun
285*4882a593Smuzhiyun&usbphyc_port1 {
286*4882a593Smuzhiyun	phy-supply = <&vdd_usb>;
287*4882a593Smuzhiyun};
288*4882a593Smuzhiyun
289*4882a593Smuzhiyun&vrefbuf {
290*4882a593Smuzhiyun	regulator-min-microvolt = <2500000>;
291*4882a593Smuzhiyun	regulator-max-microvolt = <2500000>;
292*4882a593Smuzhiyun	vdda-supply = <&vdd>;
293*4882a593Smuzhiyun	status = "okay";
294*4882a593Smuzhiyun};
295