xref: /linux/arch/arm64/boot/dts/rockchip/rk3568-easepi-r1.dts (revision 0cac5ce06e524755b3dac1e0a060b05992076d93)
1*deaefeafSLiangbin Lian// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2*deaefeafSLiangbin Lian
3*deaefeafSLiangbin Lian/dts-v1/;
4*deaefeafSLiangbin Lian
5*deaefeafSLiangbin Lian#include <dt-bindings/gpio/gpio.h>
6*deaefeafSLiangbin Lian#include <dt-bindings/input/input.h>
7*deaefeafSLiangbin Lian#include <dt-bindings/leds/common.h>
8*deaefeafSLiangbin Lian#include <dt-bindings/pinctrl/rockchip.h>
9*deaefeafSLiangbin Lian#include <dt-bindings/soc/rockchip,vop2.h>
10*deaefeafSLiangbin Lian#include "rk3568.dtsi"
11*deaefeafSLiangbin Lian
12*deaefeafSLiangbin Lian/ {
13*deaefeafSLiangbin Lian	model = "LinkEase EasePi R1";
14*deaefeafSLiangbin Lian	compatible = "linkease,easepi-r1", "rockchip,rk3568";
15*deaefeafSLiangbin Lian
16*deaefeafSLiangbin Lian	aliases {
17*deaefeafSLiangbin Lian		ethernet0 = &gmac0;
18*deaefeafSLiangbin Lian		ethernet1 = &gmac1;
19*deaefeafSLiangbin Lian		mmc0 = &sdhci;
20*deaefeafSLiangbin Lian	};
21*deaefeafSLiangbin Lian
22*deaefeafSLiangbin Lian	chosen: chosen {
23*deaefeafSLiangbin Lian		stdout-path = "serial2:1500000n8";
24*deaefeafSLiangbin Lian	};
25*deaefeafSLiangbin Lian
26*deaefeafSLiangbin Lian	adc-keys {
27*deaefeafSLiangbin Lian		compatible = "adc-keys";
28*deaefeafSLiangbin Lian		io-channels = <&saradc 0>;
29*deaefeafSLiangbin Lian		io-channel-names = "buttons";
30*deaefeafSLiangbin Lian		keyup-threshold-microvolt = <1800000>;
31*deaefeafSLiangbin Lian
32*deaefeafSLiangbin Lian		button-recovery {
33*deaefeafSLiangbin Lian			label = "Recovery";
34*deaefeafSLiangbin Lian			linux,code = <KEY_VENDOR>;
35*deaefeafSLiangbin Lian			press-threshold-microvolt = <1750>;
36*deaefeafSLiangbin Lian		};
37*deaefeafSLiangbin Lian	};
38*deaefeafSLiangbin Lian
39*deaefeafSLiangbin Lian	gpio-leds {
40*deaefeafSLiangbin Lian		compatible = "gpio-leds";
41*deaefeafSLiangbin Lian		pinctrl-names = "default";
42*deaefeafSLiangbin Lian		pinctrl-0 = <&status_led_pin>;
43*deaefeafSLiangbin Lian
44*deaefeafSLiangbin Lian		status_led: led-status {
45*deaefeafSLiangbin Lian			color = <LED_COLOR_ID_GREEN>;
46*deaefeafSLiangbin Lian			function = LED_FUNCTION_STATUS;
47*deaefeafSLiangbin Lian			gpios = <&gpio2 RK_PD7 GPIO_ACTIVE_HIGH>;
48*deaefeafSLiangbin Lian			linux,default-trigger = "heartbeat";
49*deaefeafSLiangbin Lian		};
50*deaefeafSLiangbin Lian	};
51*deaefeafSLiangbin Lian
52*deaefeafSLiangbin Lian	hdmi-con {
53*deaefeafSLiangbin Lian		compatible = "hdmi-connector";
54*deaefeafSLiangbin Lian		type = "a";
55*deaefeafSLiangbin Lian
56*deaefeafSLiangbin Lian		port {
57*deaefeafSLiangbin Lian			hdmi_con_in: endpoint {
58*deaefeafSLiangbin Lian				remote-endpoint = <&hdmi_out_con>;
59*deaefeafSLiangbin Lian			};
60*deaefeafSLiangbin Lian		};
61*deaefeafSLiangbin Lian	};
62*deaefeafSLiangbin Lian
63*deaefeafSLiangbin Lian	dc_12v: regulator-dc-12v {
64*deaefeafSLiangbin Lian		compatible = "regulator-fixed";
65*deaefeafSLiangbin Lian		regulator-name = "dc_12v";
66*deaefeafSLiangbin Lian		regulator-always-on;
67*deaefeafSLiangbin Lian		regulator-boot-on;
68*deaefeafSLiangbin Lian		regulator-min-microvolt = <12000000>;
69*deaefeafSLiangbin Lian		regulator-max-microvolt = <12000000>;
70*deaefeafSLiangbin Lian	};
71*deaefeafSLiangbin Lian
72*deaefeafSLiangbin Lian	vcc5v0_sys: regulator-vcc5v0-sys {
73*deaefeafSLiangbin Lian		compatible = "regulator-fixed";
74*deaefeafSLiangbin Lian		regulator-name = "vcc5v0_sys";
75*deaefeafSLiangbin Lian		regulator-always-on;
76*deaefeafSLiangbin Lian		regulator-boot-on;
77*deaefeafSLiangbin Lian		regulator-min-microvolt = <5000000>;
78*deaefeafSLiangbin Lian		regulator-max-microvolt = <5000000>;
79*deaefeafSLiangbin Lian		vin-supply = <&dc_12v>;
80*deaefeafSLiangbin Lian	};
81*deaefeafSLiangbin Lian
82*deaefeafSLiangbin Lian	vcc3v3_sys: regulator-vcc3v3-sys {
83*deaefeafSLiangbin Lian		compatible = "regulator-fixed";
84*deaefeafSLiangbin Lian		regulator-name = "vcc3v3_sys";
85*deaefeafSLiangbin Lian		regulator-always-on;
86*deaefeafSLiangbin Lian		regulator-boot-on;
87*deaefeafSLiangbin Lian		regulator-min-microvolt = <3300000>;
88*deaefeafSLiangbin Lian		regulator-max-microvolt = <3300000>;
89*deaefeafSLiangbin Lian		vin-supply = <&dc_12v>;
90*deaefeafSLiangbin Lian	};
91*deaefeafSLiangbin Lian
92*deaefeafSLiangbin Lian	pcie30_avdd0v9: regulator-pcie30-avdd0v9 {
93*deaefeafSLiangbin Lian		compatible = "regulator-fixed";
94*deaefeafSLiangbin Lian		regulator-name = "pcie30_avdd0v9";
95*deaefeafSLiangbin Lian		regulator-always-on;
96*deaefeafSLiangbin Lian		regulator-boot-on;
97*deaefeafSLiangbin Lian		regulator-min-microvolt = <900000>;
98*deaefeafSLiangbin Lian		regulator-max-microvolt = <900000>;
99*deaefeafSLiangbin Lian		vin-supply = <&vcc3v3_sys>;
100*deaefeafSLiangbin Lian	};
101*deaefeafSLiangbin Lian
102*deaefeafSLiangbin Lian	pcie30_avdd1v8: regulator-pcie30-avdd1v8 {
103*deaefeafSLiangbin Lian		compatible = "regulator-fixed";
104*deaefeafSLiangbin Lian		regulator-name = "pcie30_avdd1v8";
105*deaefeafSLiangbin Lian		regulator-always-on;
106*deaefeafSLiangbin Lian		regulator-boot-on;
107*deaefeafSLiangbin Lian		regulator-min-microvolt = <1800000>;
108*deaefeafSLiangbin Lian		regulator-max-microvolt = <1800000>;
109*deaefeafSLiangbin Lian		vin-supply = <&vcc3v3_sys>;
110*deaefeafSLiangbin Lian	};
111*deaefeafSLiangbin Lian
112*deaefeafSLiangbin Lian	regulator-vdd0v95-25glan {
113*deaefeafSLiangbin Lian		compatible = "regulator-fixed";
114*deaefeafSLiangbin Lian		enable-active-high;
115*deaefeafSLiangbin Lian		gpio = <&gpio3 RK_PB1 GPIO_ACTIVE_HIGH>;
116*deaefeafSLiangbin Lian		pinctrl-names = "default";
117*deaefeafSLiangbin Lian		pinctrl-0 = <&vdd0v95_25glan_en>;
118*deaefeafSLiangbin Lian		regulator-name = "vdd0v95_25glan";
119*deaefeafSLiangbin Lian		regulator-always-on;
120*deaefeafSLiangbin Lian		regulator-boot-on;
121*deaefeafSLiangbin Lian		regulator-min-microvolt = <950000>;
122*deaefeafSLiangbin Lian		regulator-max-microvolt = <950000>;
123*deaefeafSLiangbin Lian		vin-supply = <&vcc3v3_sys>;
124*deaefeafSLiangbin Lian	};
125*deaefeafSLiangbin Lian
126*deaefeafSLiangbin Lian	vcc3v3_nvme: regulator-vcc3v3-nvme {
127*deaefeafSLiangbin Lian		compatible = "regulator-fixed";
128*deaefeafSLiangbin Lian		enable-active-high;
129*deaefeafSLiangbin Lian		gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
130*deaefeafSLiangbin Lian		pinctrl-names = "default";
131*deaefeafSLiangbin Lian		pinctrl-0 = <&vcc3v3_nvme_en>;
132*deaefeafSLiangbin Lian		regulator-name = "vcc3v3_nvme";
133*deaefeafSLiangbin Lian		regulator-min-microvolt = <3300000>;
134*deaefeafSLiangbin Lian		regulator-max-microvolt = <3300000>;
135*deaefeafSLiangbin Lian		vin-supply = <&dc_12v>;
136*deaefeafSLiangbin Lian	};
137*deaefeafSLiangbin Lian
138*deaefeafSLiangbin Lian};
139*deaefeafSLiangbin Lian
140*deaefeafSLiangbin Lian&combphy1 {
141*deaefeafSLiangbin Lian	status = "okay";
142*deaefeafSLiangbin Lian};
143*deaefeafSLiangbin Lian
144*deaefeafSLiangbin Lian&combphy2 {
145*deaefeafSLiangbin Lian	status = "okay";
146*deaefeafSLiangbin Lian};
147*deaefeafSLiangbin Lian
148*deaefeafSLiangbin Lian&cpu0 {
149*deaefeafSLiangbin Lian	cpu-supply = <&vdd_cpu>;
150*deaefeafSLiangbin Lian};
151*deaefeafSLiangbin Lian
152*deaefeafSLiangbin Lian&cpu1 {
153*deaefeafSLiangbin Lian	cpu-supply = <&vdd_cpu>;
154*deaefeafSLiangbin Lian};
155*deaefeafSLiangbin Lian
156*deaefeafSLiangbin Lian&cpu2 {
157*deaefeafSLiangbin Lian	cpu-supply = <&vdd_cpu>;
158*deaefeafSLiangbin Lian};
159*deaefeafSLiangbin Lian
160*deaefeafSLiangbin Lian&cpu3 {
161*deaefeafSLiangbin Lian	cpu-supply = <&vdd_cpu>;
162*deaefeafSLiangbin Lian};
163*deaefeafSLiangbin Lian
164*deaefeafSLiangbin Lian&gmac0 {
165*deaefeafSLiangbin Lian	assigned-clocks = <&cru SCLK_GMAC0_RX_TX>, <&cru SCLK_GMAC0>;
166*deaefeafSLiangbin Lian	assigned-clock-parents = <&cru SCLK_GMAC0_RGMII_SPEED>;
167*deaefeafSLiangbin Lian	assigned-clock-rates = <0>, <125000000>;
168*deaefeafSLiangbin Lian	phy-handle = <&rgmii_phy0>;
169*deaefeafSLiangbin Lian	phy-mode = "rgmii-id";
170*deaefeafSLiangbin Lian	pinctrl-names = "default";
171*deaefeafSLiangbin Lian	pinctrl-0 = <&gmac0_miim
172*deaefeafSLiangbin Lian		     &gmac0_tx_bus2
173*deaefeafSLiangbin Lian		     &gmac0_rx_bus2
174*deaefeafSLiangbin Lian		     &gmac0_rgmii_clk
175*deaefeafSLiangbin Lian		     &gmac0_rgmii_bus>;
176*deaefeafSLiangbin Lian	status = "okay";
177*deaefeafSLiangbin Lian};
178*deaefeafSLiangbin Lian
179*deaefeafSLiangbin Lian&gmac1 {
180*deaefeafSLiangbin Lian	assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
181*deaefeafSLiangbin Lian	assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>;
182*deaefeafSLiangbin Lian	assigned-clock-rates = <0>, <125000000>;
183*deaefeafSLiangbin Lian	phy-handle = <&rgmii_phy1>;
184*deaefeafSLiangbin Lian	phy-mode = "rgmii-id";
185*deaefeafSLiangbin Lian	pinctrl-names = "default";
186*deaefeafSLiangbin Lian	pinctrl-0 = <&gmac1m1_miim
187*deaefeafSLiangbin Lian		     &gmac1m1_tx_bus2
188*deaefeafSLiangbin Lian		     &gmac1m1_rx_bus2
189*deaefeafSLiangbin Lian		     &gmac1m1_rgmii_clk
190*deaefeafSLiangbin Lian		     &gmac1m1_rgmii_bus>;
191*deaefeafSLiangbin Lian	status = "okay";
192*deaefeafSLiangbin Lian};
193*deaefeafSLiangbin Lian
194*deaefeafSLiangbin Lian&gpu {
195*deaefeafSLiangbin Lian	mali-supply = <&vdd_gpu>;
196*deaefeafSLiangbin Lian	status = "okay";
197*deaefeafSLiangbin Lian};
198*deaefeafSLiangbin Lian
199*deaefeafSLiangbin Lian&hdmi {
200*deaefeafSLiangbin Lian	avdd-0v9-supply = <&vdda0v9_image>;
201*deaefeafSLiangbin Lian	avdd-1v8-supply = <&vcca1v8_image>;
202*deaefeafSLiangbin Lian	status = "okay";
203*deaefeafSLiangbin Lian};
204*deaefeafSLiangbin Lian
205*deaefeafSLiangbin Lian&hdmi_in {
206*deaefeafSLiangbin Lian	hdmi_in_vp0: endpoint {
207*deaefeafSLiangbin Lian		remote-endpoint = <&vp0_out_hdmi>;
208*deaefeafSLiangbin Lian	};
209*deaefeafSLiangbin Lian};
210*deaefeafSLiangbin Lian
211*deaefeafSLiangbin Lian&hdmi_out {
212*deaefeafSLiangbin Lian	hdmi_out_con: endpoint {
213*deaefeafSLiangbin Lian		remote-endpoint = <&hdmi_con_in>;
214*deaefeafSLiangbin Lian	};
215*deaefeafSLiangbin Lian};
216*deaefeafSLiangbin Lian
217*deaefeafSLiangbin Lian&hdmi_sound {
218*deaefeafSLiangbin Lian	status = "okay";
219*deaefeafSLiangbin Lian};
220*deaefeafSLiangbin Lian
221*deaefeafSLiangbin Lian&i2c0 {
222*deaefeafSLiangbin Lian	status = "okay";
223*deaefeafSLiangbin Lian
224*deaefeafSLiangbin Lian	vdd_cpu: regulator@1c {
225*deaefeafSLiangbin Lian		compatible = "tcs,tcs4525";
226*deaefeafSLiangbin Lian		reg = <0x1c>;
227*deaefeafSLiangbin Lian		fcs,suspend-voltage-selector = <1>;
228*deaefeafSLiangbin Lian		regulator-name = "vdd_cpu";
229*deaefeafSLiangbin Lian		regulator-always-on;
230*deaefeafSLiangbin Lian		regulator-boot-on;
231*deaefeafSLiangbin Lian		regulator-min-microvolt = <800000>;
232*deaefeafSLiangbin Lian		regulator-max-microvolt = <1150000>;
233*deaefeafSLiangbin Lian		regulator-ramp-delay = <2300>;
234*deaefeafSLiangbin Lian		vin-supply = <&vcc5v0_sys>;
235*deaefeafSLiangbin Lian
236*deaefeafSLiangbin Lian		regulator-state-mem {
237*deaefeafSLiangbin Lian			regulator-off-in-suspend;
238*deaefeafSLiangbin Lian		};
239*deaefeafSLiangbin Lian	};
240*deaefeafSLiangbin Lian
241*deaefeafSLiangbin Lian	rk809: pmic@20 {
242*deaefeafSLiangbin Lian		compatible = "rockchip,rk809";
243*deaefeafSLiangbin Lian		reg = <0x20>;
244*deaefeafSLiangbin Lian		interrupt-parent = <&gpio0>;
245*deaefeafSLiangbin Lian		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
246*deaefeafSLiangbin Lian		#clock-cells = <1>;
247*deaefeafSLiangbin Lian		pinctrl-names = "default";
248*deaefeafSLiangbin Lian		pinctrl-0 = <&pmic_int>;
249*deaefeafSLiangbin Lian		system-power-controller;
250*deaefeafSLiangbin Lian		vcc1-supply = <&vcc3v3_sys>;
251*deaefeafSLiangbin Lian		vcc2-supply = <&vcc3v3_sys>;
252*deaefeafSLiangbin Lian		vcc3-supply = <&vcc3v3_sys>;
253*deaefeafSLiangbin Lian		vcc4-supply = <&vcc3v3_sys>;
254*deaefeafSLiangbin Lian		vcc5-supply = <&vcc3v3_sys>;
255*deaefeafSLiangbin Lian		vcc6-supply = <&vcc3v3_sys>;
256*deaefeafSLiangbin Lian		vcc7-supply = <&vcc3v3_sys>;
257*deaefeafSLiangbin Lian		vcc8-supply = <&vcc3v3_sys>;
258*deaefeafSLiangbin Lian		vcc9-supply = <&vcc3v3_sys>;
259*deaefeafSLiangbin Lian		wakeup-source;
260*deaefeafSLiangbin Lian
261*deaefeafSLiangbin Lian		regulators {
262*deaefeafSLiangbin Lian			vdd_logic: DCDC_REG1 {
263*deaefeafSLiangbin Lian				regulator-name = "vdd_logic";
264*deaefeafSLiangbin Lian				regulator-always-on;
265*deaefeafSLiangbin Lian				regulator-boot-on;
266*deaefeafSLiangbin Lian				regulator-initial-mode = <0x2>;
267*deaefeafSLiangbin Lian				regulator-min-microvolt = <500000>;
268*deaefeafSLiangbin Lian				regulator-max-microvolt = <1350000>;
269*deaefeafSLiangbin Lian				regulator-ramp-delay = <6001>;
270*deaefeafSLiangbin Lian
271*deaefeafSLiangbin Lian				regulator-state-mem {
272*deaefeafSLiangbin Lian					regulator-off-in-suspend;
273*deaefeafSLiangbin Lian				};
274*deaefeafSLiangbin Lian			};
275*deaefeafSLiangbin Lian
276*deaefeafSLiangbin Lian			vdd_gpu: DCDC_REG2 {
277*deaefeafSLiangbin Lian				regulator-name = "vdd_gpu";
278*deaefeafSLiangbin Lian				regulator-always-on;
279*deaefeafSLiangbin Lian				regulator-initial-mode = <0x2>;
280*deaefeafSLiangbin Lian				regulator-min-microvolt = <500000>;
281*deaefeafSLiangbin Lian				regulator-max-microvolt = <1350000>;
282*deaefeafSLiangbin Lian				regulator-ramp-delay = <6001>;
283*deaefeafSLiangbin Lian
284*deaefeafSLiangbin Lian				regulator-state-mem {
285*deaefeafSLiangbin Lian					regulator-off-in-suspend;
286*deaefeafSLiangbin Lian				};
287*deaefeafSLiangbin Lian			};
288*deaefeafSLiangbin Lian
289*deaefeafSLiangbin Lian			vcc_ddr: DCDC_REG3 {
290*deaefeafSLiangbin Lian				regulator-name = "vcc_ddr";
291*deaefeafSLiangbin Lian				regulator-always-on;
292*deaefeafSLiangbin Lian				regulator-boot-on;
293*deaefeafSLiangbin Lian				regulator-initial-mode = <0x2>;
294*deaefeafSLiangbin Lian
295*deaefeafSLiangbin Lian				regulator-state-mem {
296*deaefeafSLiangbin Lian					regulator-on-in-suspend;
297*deaefeafSLiangbin Lian				};
298*deaefeafSLiangbin Lian			};
299*deaefeafSLiangbin Lian
300*deaefeafSLiangbin Lian			vdd_npu: DCDC_REG4 {
301*deaefeafSLiangbin Lian				regulator-name = "vdd_npu";
302*deaefeafSLiangbin Lian				regulator-initial-mode = <0x2>;
303*deaefeafSLiangbin Lian				regulator-min-microvolt = <500000>;
304*deaefeafSLiangbin Lian				regulator-max-microvolt = <1350000>;
305*deaefeafSLiangbin Lian				regulator-ramp-delay = <6001>;
306*deaefeafSLiangbin Lian
307*deaefeafSLiangbin Lian				regulator-state-mem {
308*deaefeafSLiangbin Lian					regulator-off-in-suspend;
309*deaefeafSLiangbin Lian				};
310*deaefeafSLiangbin Lian			};
311*deaefeafSLiangbin Lian
312*deaefeafSLiangbin Lian			vcc_1v8: DCDC_REG5 {
313*deaefeafSLiangbin Lian				regulator-name = "vcc_1v8";
314*deaefeafSLiangbin Lian				regulator-always-on;
315*deaefeafSLiangbin Lian				regulator-boot-on;
316*deaefeafSLiangbin Lian				regulator-min-microvolt = <1800000>;
317*deaefeafSLiangbin Lian				regulator-max-microvolt = <1800000>;
318*deaefeafSLiangbin Lian
319*deaefeafSLiangbin Lian				regulator-state-mem {
320*deaefeafSLiangbin Lian					regulator-off-in-suspend;
321*deaefeafSLiangbin Lian				};
322*deaefeafSLiangbin Lian			};
323*deaefeafSLiangbin Lian
324*deaefeafSLiangbin Lian			vdda0v9_image: LDO_REG1 {
325*deaefeafSLiangbin Lian				regulator-name = "vdda0v9_image";
326*deaefeafSLiangbin Lian				regulator-min-microvolt = <950000>;
327*deaefeafSLiangbin Lian				regulator-max-microvolt = <950000>;
328*deaefeafSLiangbin Lian
329*deaefeafSLiangbin Lian				regulator-state-mem {
330*deaefeafSLiangbin Lian					regulator-off-in-suspend;
331*deaefeafSLiangbin Lian				};
332*deaefeafSLiangbin Lian			};
333*deaefeafSLiangbin Lian
334*deaefeafSLiangbin Lian			vdda_0v9: LDO_REG2 {
335*deaefeafSLiangbin Lian				regulator-name = "vdda_0v9";
336*deaefeafSLiangbin Lian				regulator-always-on;
337*deaefeafSLiangbin Lian				regulator-boot-on;
338*deaefeafSLiangbin Lian				regulator-min-microvolt = <900000>;
339*deaefeafSLiangbin Lian				regulator-max-microvolt = <900000>;
340*deaefeafSLiangbin Lian
341*deaefeafSLiangbin Lian				regulator-state-mem {
342*deaefeafSLiangbin Lian					regulator-off-in-suspend;
343*deaefeafSLiangbin Lian				};
344*deaefeafSLiangbin Lian			};
345*deaefeafSLiangbin Lian
346*deaefeafSLiangbin Lian			vdda0v9_pmu: LDO_REG3 {
347*deaefeafSLiangbin Lian				regulator-name = "vdda0v9_pmu";
348*deaefeafSLiangbin Lian				regulator-always-on;
349*deaefeafSLiangbin Lian				regulator-boot-on;
350*deaefeafSLiangbin Lian				regulator-min-microvolt = <900000>;
351*deaefeafSLiangbin Lian				regulator-max-microvolt = <900000>;
352*deaefeafSLiangbin Lian
353*deaefeafSLiangbin Lian				regulator-state-mem {
354*deaefeafSLiangbin Lian					regulator-on-in-suspend;
355*deaefeafSLiangbin Lian					regulator-suspend-microvolt = <900000>;
356*deaefeafSLiangbin Lian				};
357*deaefeafSLiangbin Lian			};
358*deaefeafSLiangbin Lian
359*deaefeafSLiangbin Lian			vccio_acodec: LDO_REG4 {
360*deaefeafSLiangbin Lian				regulator-name = "vccio_acodec";
361*deaefeafSLiangbin Lian				regulator-min-microvolt = <3300000>;
362*deaefeafSLiangbin Lian				regulator-max-microvolt = <3300000>;
363*deaefeafSLiangbin Lian
364*deaefeafSLiangbin Lian				regulator-state-mem {
365*deaefeafSLiangbin Lian					regulator-off-in-suspend;
366*deaefeafSLiangbin Lian				};
367*deaefeafSLiangbin Lian			};
368*deaefeafSLiangbin Lian
369*deaefeafSLiangbin Lian			vccio_sd: LDO_REG5 {
370*deaefeafSLiangbin Lian				regulator-name = "vccio_sd";
371*deaefeafSLiangbin Lian				regulator-min-microvolt = <1800000>;
372*deaefeafSLiangbin Lian				regulator-max-microvolt = <3300000>;
373*deaefeafSLiangbin Lian
374*deaefeafSLiangbin Lian				regulator-state-mem {
375*deaefeafSLiangbin Lian					regulator-off-in-suspend;
376*deaefeafSLiangbin Lian				};
377*deaefeafSLiangbin Lian			};
378*deaefeafSLiangbin Lian
379*deaefeafSLiangbin Lian			vcc3v3_pmu: LDO_REG6 {
380*deaefeafSLiangbin Lian				regulator-name = "vcc3v3_pmu";
381*deaefeafSLiangbin Lian				regulator-always-on;
382*deaefeafSLiangbin Lian				regulator-boot-on;
383*deaefeafSLiangbin Lian				regulator-min-microvolt = <3300000>;
384*deaefeafSLiangbin Lian				regulator-max-microvolt = <3300000>;
385*deaefeafSLiangbin Lian
386*deaefeafSLiangbin Lian				regulator-state-mem {
387*deaefeafSLiangbin Lian					regulator-on-in-suspend;
388*deaefeafSLiangbin Lian					regulator-suspend-microvolt = <3300000>;
389*deaefeafSLiangbin Lian				};
390*deaefeafSLiangbin Lian			};
391*deaefeafSLiangbin Lian
392*deaefeafSLiangbin Lian			vcca_1v8: LDO_REG7 {
393*deaefeafSLiangbin Lian				regulator-name = "vcca_1v8";
394*deaefeafSLiangbin Lian				regulator-always-on;
395*deaefeafSLiangbin Lian				regulator-boot-on;
396*deaefeafSLiangbin Lian				regulator-min-microvolt = <1800000>;
397*deaefeafSLiangbin Lian				regulator-max-microvolt = <1800000>;
398*deaefeafSLiangbin Lian
399*deaefeafSLiangbin Lian				regulator-state-mem {
400*deaefeafSLiangbin Lian					regulator-off-in-suspend;
401*deaefeafSLiangbin Lian				};
402*deaefeafSLiangbin Lian			};
403*deaefeafSLiangbin Lian
404*deaefeafSLiangbin Lian			vcca1v8_pmu: LDO_REG8 {
405*deaefeafSLiangbin Lian				regulator-name = "vcca1v8_pmu";
406*deaefeafSLiangbin Lian				regulator-always-on;
407*deaefeafSLiangbin Lian				regulator-boot-on;
408*deaefeafSLiangbin Lian				regulator-min-microvolt = <1800000>;
409*deaefeafSLiangbin Lian				regulator-max-microvolt = <1800000>;
410*deaefeafSLiangbin Lian
411*deaefeafSLiangbin Lian				regulator-state-mem {
412*deaefeafSLiangbin Lian					regulator-on-in-suspend;
413*deaefeafSLiangbin Lian					regulator-suspend-microvolt = <1800000>;
414*deaefeafSLiangbin Lian				};
415*deaefeafSLiangbin Lian			};
416*deaefeafSLiangbin Lian
417*deaefeafSLiangbin Lian			vcca1v8_image: LDO_REG9 {
418*deaefeafSLiangbin Lian				regulator-name = "vcca1v8_image";
419*deaefeafSLiangbin Lian				regulator-min-microvolt = <1800000>;
420*deaefeafSLiangbin Lian				regulator-max-microvolt = <1800000>;
421*deaefeafSLiangbin Lian
422*deaefeafSLiangbin Lian				regulator-state-mem {
423*deaefeafSLiangbin Lian					regulator-off-in-suspend;
424*deaefeafSLiangbin Lian				};
425*deaefeafSLiangbin Lian			};
426*deaefeafSLiangbin Lian
427*deaefeafSLiangbin Lian			vcc_3v3: SWITCH_REG1 {
428*deaefeafSLiangbin Lian				regulator-name = "vcc_3v3";
429*deaefeafSLiangbin Lian				regulator-always-on;
430*deaefeafSLiangbin Lian				regulator-boot-on;
431*deaefeafSLiangbin Lian
432*deaefeafSLiangbin Lian				regulator-state-mem {
433*deaefeafSLiangbin Lian					regulator-off-in-suspend;
434*deaefeafSLiangbin Lian				};
435*deaefeafSLiangbin Lian			};
436*deaefeafSLiangbin Lian
437*deaefeafSLiangbin Lian			vcc3v3_sd: SWITCH_REG2 {
438*deaefeafSLiangbin Lian				regulator-name = "vcc3v3_sd";
439*deaefeafSLiangbin Lian				regulator-always-on;
440*deaefeafSLiangbin Lian				regulator-boot-on;
441*deaefeafSLiangbin Lian
442*deaefeafSLiangbin Lian				regulator-state-mem {
443*deaefeafSLiangbin Lian					regulator-off-in-suspend;
444*deaefeafSLiangbin Lian				};
445*deaefeafSLiangbin Lian			};
446*deaefeafSLiangbin Lian		};
447*deaefeafSLiangbin Lian	};
448*deaefeafSLiangbin Lian};
449*deaefeafSLiangbin Lian
450*deaefeafSLiangbin Lian&i2s0_8ch {
451*deaefeafSLiangbin Lian	status = "okay";
452*deaefeafSLiangbin Lian};
453*deaefeafSLiangbin Lian
454*deaefeafSLiangbin Lian&mdio0 {
455*deaefeafSLiangbin Lian	rgmii_phy0: ethernet-phy@1 {
456*deaefeafSLiangbin Lian		compatible = "ethernet-phy-ieee802.3-c22";
457*deaefeafSLiangbin Lian		reg = <0x1>;
458*deaefeafSLiangbin Lian		pinctrl-0 = <&eth_phy0_reset_pin>;
459*deaefeafSLiangbin Lian		pinctrl-names = "default";
460*deaefeafSLiangbin Lian		reset-assert-us = <20000>;
461*deaefeafSLiangbin Lian		reset-deassert-us = <100000>;
462*deaefeafSLiangbin Lian		reset-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_LOW>;
463*deaefeafSLiangbin Lian	};
464*deaefeafSLiangbin Lian};
465*deaefeafSLiangbin Lian
466*deaefeafSLiangbin Lian&mdio1 {
467*deaefeafSLiangbin Lian	rgmii_phy1: ethernet-phy@1 {
468*deaefeafSLiangbin Lian		compatible = "ethernet-phy-ieee802.3-c22";
469*deaefeafSLiangbin Lian		reg = <0x1>;
470*deaefeafSLiangbin Lian		pinctrl-0 = <&eth_phy1_reset_pin>;
471*deaefeafSLiangbin Lian		pinctrl-names = "default";
472*deaefeafSLiangbin Lian		reset-assert-us = <20000>;
473*deaefeafSLiangbin Lian		reset-deassert-us = <100000>;
474*deaefeafSLiangbin Lian		reset-gpios = <&gpio2 RK_PD1 GPIO_ACTIVE_LOW>;
475*deaefeafSLiangbin Lian	};
476*deaefeafSLiangbin Lian};
477*deaefeafSLiangbin Lian
478*deaefeafSLiangbin Lian/* ETH3 */
479*deaefeafSLiangbin Lian&pcie2x1 {
480*deaefeafSLiangbin Lian	reset-gpios = <&gpio3 RK_PA4 GPIO_ACTIVE_HIGH>;
481*deaefeafSLiangbin Lian	vpcie3v3-supply = <&vcc3v3_sys>;
482*deaefeafSLiangbin Lian	status = "okay";
483*deaefeafSLiangbin Lian};
484*deaefeafSLiangbin Lian
485*deaefeafSLiangbin Lian&pcie30phy {
486*deaefeafSLiangbin Lian	data-lanes = <1 2>;
487*deaefeafSLiangbin Lian	status = "okay";
488*deaefeafSLiangbin Lian};
489*deaefeafSLiangbin Lian
490*deaefeafSLiangbin Lian/* ETH2 */
491*deaefeafSLiangbin Lian&pcie3x1 {
492*deaefeafSLiangbin Lian	num-lanes = <1>;
493*deaefeafSLiangbin Lian	reset-gpios = <&gpio3 RK_PA3 GPIO_ACTIVE_HIGH>;
494*deaefeafSLiangbin Lian	vpcie3v3-supply = <&vcc3v3_sys>;
495*deaefeafSLiangbin Lian	status = "okay";
496*deaefeafSLiangbin Lian};
497*deaefeafSLiangbin Lian
498*deaefeafSLiangbin Lian/* M.2 Key for 2280 NVMe */
499*deaefeafSLiangbin Lian&pcie3x2 {
500*deaefeafSLiangbin Lian	num-lanes = <1>;
501*deaefeafSLiangbin Lian	reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;
502*deaefeafSLiangbin Lian	vpcie3v3-supply = <&vcc3v3_nvme>;
503*deaefeafSLiangbin Lian	status = "okay";
504*deaefeafSLiangbin Lian};
505*deaefeafSLiangbin Lian
506*deaefeafSLiangbin Lian&pinctrl {
507*deaefeafSLiangbin Lian	gmac0 {
508*deaefeafSLiangbin Lian		eth_phy0_reset_pin: eth-phy0-reset-pin {
509*deaefeafSLiangbin Lian			rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>;
510*deaefeafSLiangbin Lian		};
511*deaefeafSLiangbin Lian	};
512*deaefeafSLiangbin Lian
513*deaefeafSLiangbin Lian	gmac1 {
514*deaefeafSLiangbin Lian		eth_phy1_reset_pin: eth-phy1-reset-pin {
515*deaefeafSLiangbin Lian			rockchip,pins = <2 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>;
516*deaefeafSLiangbin Lian		};
517*deaefeafSLiangbin Lian	};
518*deaefeafSLiangbin Lian
519*deaefeafSLiangbin Lian	gpio-leds {
520*deaefeafSLiangbin Lian		status_led_pin: status-led-pin {
521*deaefeafSLiangbin Lian			rockchip,pins = <2 RK_PD7 RK_FUNC_GPIO &pcfg_pull_none>;
522*deaefeafSLiangbin Lian		};
523*deaefeafSLiangbin Lian	};
524*deaefeafSLiangbin Lian
525*deaefeafSLiangbin Lian	nvme {
526*deaefeafSLiangbin Lian		vcc3v3_nvme_en: vcc3v3-nvme-en {
527*deaefeafSLiangbin Lian			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
528*deaefeafSLiangbin Lian		};
529*deaefeafSLiangbin Lian	};
530*deaefeafSLiangbin Lian
531*deaefeafSLiangbin Lian	pcie-nic {
532*deaefeafSLiangbin Lian		vdd0v95_25glan_en: vdd0v95-25glan-en {
533*deaefeafSLiangbin Lian			rockchip,pins = <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
534*deaefeafSLiangbin Lian		};
535*deaefeafSLiangbin Lian	};
536*deaefeafSLiangbin Lian
537*deaefeafSLiangbin Lian	pmic {
538*deaefeafSLiangbin Lian		pmic_int: pmic-int {
539*deaefeafSLiangbin Lian			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
540*deaefeafSLiangbin Lian		};
541*deaefeafSLiangbin Lian	};
542*deaefeafSLiangbin Lian
543*deaefeafSLiangbin Lian};
544*deaefeafSLiangbin Lian
545*deaefeafSLiangbin Lian&pmu_io_domains {
546*deaefeafSLiangbin Lian	pmuio1-supply = <&vcc3v3_pmu>;
547*deaefeafSLiangbin Lian	pmuio2-supply = <&vcc3v3_pmu>;
548*deaefeafSLiangbin Lian	vccio1-supply = <&vccio_acodec>;
549*deaefeafSLiangbin Lian	vccio3-supply = <&vccio_sd>;
550*deaefeafSLiangbin Lian	vccio4-supply = <&vcc_1v8>;
551*deaefeafSLiangbin Lian	vccio5-supply = <&vcc_3v3>;
552*deaefeafSLiangbin Lian	vccio6-supply = <&vcc_1v8>;
553*deaefeafSLiangbin Lian	vccio7-supply = <&vcc_3v3>;
554*deaefeafSLiangbin Lian	status = "okay";
555*deaefeafSLiangbin Lian};
556*deaefeafSLiangbin Lian
557*deaefeafSLiangbin Lian&saradc {
558*deaefeafSLiangbin Lian	vref-supply = <&vcca_1v8>;
559*deaefeafSLiangbin Lian	status = "okay";
560*deaefeafSLiangbin Lian};
561*deaefeafSLiangbin Lian
562*deaefeafSLiangbin Lian&sdhci {
563*deaefeafSLiangbin Lian	bus-width = <8>;
564*deaefeafSLiangbin Lian	max-frequency = <200000000>;
565*deaefeafSLiangbin Lian	non-removable;
566*deaefeafSLiangbin Lian	pinctrl-names = "default";
567*deaefeafSLiangbin Lian	pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
568*deaefeafSLiangbin Lian	status = "okay";
569*deaefeafSLiangbin Lian};
570*deaefeafSLiangbin Lian
571*deaefeafSLiangbin Lian&tsadc {
572*deaefeafSLiangbin Lian	rockchip,hw-tshut-mode = <1>;
573*deaefeafSLiangbin Lian	rockchip,hw-tshut-polarity = <0>;
574*deaefeafSLiangbin Lian	status = "okay";
575*deaefeafSLiangbin Lian};
576*deaefeafSLiangbin Lian
577*deaefeafSLiangbin Lian&uart2 {
578*deaefeafSLiangbin Lian	status = "okay";
579*deaefeafSLiangbin Lian};
580*deaefeafSLiangbin Lian
581*deaefeafSLiangbin Lian/* OTG Only USB2.0, Only device mode */
582*deaefeafSLiangbin Lian&usb_host0_xhci {
583*deaefeafSLiangbin Lian	dr_mode = "peripheral";
584*deaefeafSLiangbin Lian	extcon = <&usb2phy0>;
585*deaefeafSLiangbin Lian	maximum-speed = "high-speed";
586*deaefeafSLiangbin Lian	phys = <&usb2phy0_otg>;
587*deaefeafSLiangbin Lian	phy-names = "usb2-phy";
588*deaefeafSLiangbin Lian	status = "okay";
589*deaefeafSLiangbin Lian};
590*deaefeafSLiangbin Lian
591*deaefeafSLiangbin Lian&usb_host1_xhci {
592*deaefeafSLiangbin Lian	status = "okay";
593*deaefeafSLiangbin Lian};
594*deaefeafSLiangbin Lian
595*deaefeafSLiangbin Lian&usb2phy0 {
596*deaefeafSLiangbin Lian	status = "okay";
597*deaefeafSLiangbin Lian};
598*deaefeafSLiangbin Lian
599*deaefeafSLiangbin Lian&usb2phy0_host {
600*deaefeafSLiangbin Lian	phy-supply = <&vcc5v0_sys>;
601*deaefeafSLiangbin Lian	status = "okay";
602*deaefeafSLiangbin Lian};
603*deaefeafSLiangbin Lian
604*deaefeafSLiangbin Lian&usb2phy0_otg {
605*deaefeafSLiangbin Lian	status = "okay";
606*deaefeafSLiangbin Lian};
607*deaefeafSLiangbin Lian
608*deaefeafSLiangbin Lian&vop {
609*deaefeafSLiangbin Lian	assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
610*deaefeafSLiangbin Lian	assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
611*deaefeafSLiangbin Lian	status = "okay";
612*deaefeafSLiangbin Lian};
613*deaefeafSLiangbin Lian
614*deaefeafSLiangbin Lian&vop_mmu {
615*deaefeafSLiangbin Lian	status = "okay";
616*deaefeafSLiangbin Lian};
617*deaefeafSLiangbin Lian
618*deaefeafSLiangbin Lian&vp0 {
619*deaefeafSLiangbin Lian	vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
620*deaefeafSLiangbin Lian		reg = <ROCKCHIP_VOP2_EP_HDMI0>;
621*deaefeafSLiangbin Lian		remote-endpoint = <&hdmi_in_vp0>;
622*deaefeafSLiangbin Lian	};
623*deaefeafSLiangbin Lian};
624