xref: /OK3568_Linux_fs/kernel/scripts/dtc/include-prefixes/arm64/rockchip/rk3399-hugsun-x99.dts (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*4882a593Smuzhiyun/dts-v1/;
3*4882a593Smuzhiyun#include <dt-bindings/pwm/pwm.h>
4*4882a593Smuzhiyun#include <dt-bindings/input/input.h>
5*4882a593Smuzhiyun#include "rk3399.dtsi"
6*4882a593Smuzhiyun#include "rk3399-opp.dtsi"
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun/ {
9*4882a593Smuzhiyun	model = "Hugsun X99 TV BOX";
10*4882a593Smuzhiyun	compatible = "hugsun,x99", "rockchip,rk3399";
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun	chosen {
13*4882a593Smuzhiyun		stdout-path = "serial2:1500000n8";
14*4882a593Smuzhiyun	};
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun	clkin_gmac: external-gmac-clock {
17*4882a593Smuzhiyun		compatible = "fixed-clock";
18*4882a593Smuzhiyun		clock-frequency = <125000000>;
19*4882a593Smuzhiyun		clock-output-names = "clkin_gmac";
20*4882a593Smuzhiyun		#clock-cells = <0>;
21*4882a593Smuzhiyun	};
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun	dc_5v: dc-5v {
24*4882a593Smuzhiyun		compatible = "regulator-fixed";
25*4882a593Smuzhiyun		regulator-name = "dc_5v";
26*4882a593Smuzhiyun		regulator-always-on;
27*4882a593Smuzhiyun		regulator-boot-on;
28*4882a593Smuzhiyun		regulator-min-microvolt = <5000000>;
29*4882a593Smuzhiyun		regulator-max-microvolt = <5000000>;
30*4882a593Smuzhiyun	};
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun	ir-receiver {
33*4882a593Smuzhiyun		compatible = "gpio-ir-receiver";
34*4882a593Smuzhiyun		gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
35*4882a593Smuzhiyun		pinctrl-names = "default";
36*4882a593Smuzhiyun		pinctrl-0 = <&ir_rx>;
37*4882a593Smuzhiyun	};
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun	leds {
40*4882a593Smuzhiyun		compatible = "gpio-leds";
41*4882a593Smuzhiyun		pinctrl-names = "default";
42*4882a593Smuzhiyun		pinctrl-0 = <&power_led_pin>;
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun		power_led: led-0 {
45*4882a593Smuzhiyun			label = "blue:power";
46*4882a593Smuzhiyun			gpios = <&gpio4 RK_PC2 GPIO_ACTIVE_HIGH>;
47*4882a593Smuzhiyun			default-state = "on";
48*4882a593Smuzhiyun			linux,default-trigger = "default-on";
49*4882a593Smuzhiyun		};
50*4882a593Smuzhiyun	};
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun	vcc_sys: vcc-sys {
53*4882a593Smuzhiyun		compatible = "regulator-fixed";
54*4882a593Smuzhiyun		regulator-name = "vcc_sys";
55*4882a593Smuzhiyun		regulator-min-microvolt = <5000000>;
56*4882a593Smuzhiyun		regulator-max-microvolt = <5000000>;
57*4882a593Smuzhiyun		regulator-always-on;
58*4882a593Smuzhiyun		vin-supply = <&dc_5v>;
59*4882a593Smuzhiyun	};
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun	vcc_phy: vcc-phy-regulator {
62*4882a593Smuzhiyun		compatible = "regulator-fixed";
63*4882a593Smuzhiyun		regulator-name = "vcc_phy";
64*4882a593Smuzhiyun		regulator-always-on;
65*4882a593Smuzhiyun		regulator-boot-on;
66*4882a593Smuzhiyun	};
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun	vcc1v8_s0: vcc1v8-s0 {
69*4882a593Smuzhiyun		compatible = "regulator-fixed";
70*4882a593Smuzhiyun		regulator-name = "vcc1v8_s0";
71*4882a593Smuzhiyun		regulator-min-microvolt = <1800000>;
72*4882a593Smuzhiyun		regulator-max-microvolt = <1800000>;
73*4882a593Smuzhiyun		regulator-always-on;
74*4882a593Smuzhiyun	};
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun	vcc3v3_sys: vcc3v3-sys {
77*4882a593Smuzhiyun		compatible = "regulator-fixed";
78*4882a593Smuzhiyun		regulator-name = "vcc3v3_sys";
79*4882a593Smuzhiyun		regulator-min-microvolt = <3300000>;
80*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
81*4882a593Smuzhiyun		regulator-always-on;
82*4882a593Smuzhiyun		vin-supply = <&vcc_sys>;
83*4882a593Smuzhiyun	};
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun	vcc5v0_host: vcc5v0-host-regulator {
86*4882a593Smuzhiyun		compatible = "regulator-fixed";
87*4882a593Smuzhiyun		enable-active-high;
88*4882a593Smuzhiyun		gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
89*4882a593Smuzhiyun		pinctrl-names = "default";
90*4882a593Smuzhiyun		pinctrl-0 = <&host_vbus_drv>;
91*4882a593Smuzhiyun		regulator-name = "vcc5v0_host";
92*4882a593Smuzhiyun		regulator-always-on;
93*4882a593Smuzhiyun	};
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun	vcc5v0_typec: vcc5v0-typec-regulator {
96*4882a593Smuzhiyun		compatible = "regulator-fixed";
97*4882a593Smuzhiyun		enable-active-high;
98*4882a593Smuzhiyun		gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
99*4882a593Smuzhiyun		pinctrl-names = "default";
100*4882a593Smuzhiyun		pinctrl-0 = <&vcc5v0_typec_en>;
101*4882a593Smuzhiyun		regulator-name = "vcc5v0_typec";
102*4882a593Smuzhiyun		regulator-always-on;
103*4882a593Smuzhiyun		vin-supply = <&vcc5v0_usb>;
104*4882a593Smuzhiyun	};
105*4882a593Smuzhiyun
106*4882a593Smuzhiyun	vcc5v0_usb: vcc5v0-usb {
107*4882a593Smuzhiyun		compatible = "regulator-fixed";
108*4882a593Smuzhiyun		regulator-name = "vcc5v0_usb";
109*4882a593Smuzhiyun		regulator-always-on;
110*4882a593Smuzhiyun		regulator-boot-on;
111*4882a593Smuzhiyun		regulator-min-microvolt = <5000000>;
112*4882a593Smuzhiyun		regulator-max-microvolt = <5000000>;
113*4882a593Smuzhiyun		vin-supply = <&dc_5v>;
114*4882a593Smuzhiyun	};
115*4882a593Smuzhiyun
116*4882a593Smuzhiyun	vdd_log: vdd-log {
117*4882a593Smuzhiyun		compatible = "pwm-regulator";
118*4882a593Smuzhiyun		pwms = <&pwm2 0 25000 1>;
119*4882a593Smuzhiyun		pwm-supply = <&vcc_sys>;
120*4882a593Smuzhiyun		regulator-name = "vdd_log";
121*4882a593Smuzhiyun		regulator-min-microvolt = <800000>;
122*4882a593Smuzhiyun		regulator-max-microvolt = <1400000>;
123*4882a593Smuzhiyun		regulator-always-on;
124*4882a593Smuzhiyun		regulator-boot-on;
125*4882a593Smuzhiyun	};
126*4882a593Smuzhiyun
127*4882a593Smuzhiyun	sdio_pwrseq: sdio-pwrseq {
128*4882a593Smuzhiyun		compatible = "mmc-pwrseq-simple";
129*4882a593Smuzhiyun		clocks = <&rk808 1>;
130*4882a593Smuzhiyun		clock-names = "ext_clock";
131*4882a593Smuzhiyun		pinctrl-names = "default";
132*4882a593Smuzhiyun		pinctrl-0 = <&wifi_reg_on_h>;
133*4882a593Smuzhiyun		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
134*4882a593Smuzhiyun	};
135*4882a593Smuzhiyun
136*4882a593Smuzhiyun};
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun&cpu_l0 {
139*4882a593Smuzhiyun	cpu-supply = <&vdd_cpu_l>;
140*4882a593Smuzhiyun};
141*4882a593Smuzhiyun
142*4882a593Smuzhiyun&cpu_l1 {
143*4882a593Smuzhiyun	cpu-supply = <&vdd_cpu_l>;
144*4882a593Smuzhiyun};
145*4882a593Smuzhiyun
146*4882a593Smuzhiyun&cpu_l2 {
147*4882a593Smuzhiyun	cpu-supply = <&vdd_cpu_l>;
148*4882a593Smuzhiyun};
149*4882a593Smuzhiyun
150*4882a593Smuzhiyun&cpu_l3 {
151*4882a593Smuzhiyun	cpu-supply = <&vdd_cpu_l>;
152*4882a593Smuzhiyun};
153*4882a593Smuzhiyun
154*4882a593Smuzhiyun&cpu_b0 {
155*4882a593Smuzhiyun	cpu-supply = <&vdd_cpu_b>;
156*4882a593Smuzhiyun};
157*4882a593Smuzhiyun
158*4882a593Smuzhiyun&cpu_b1 {
159*4882a593Smuzhiyun	cpu-supply = <&vdd_cpu_b>;
160*4882a593Smuzhiyun};
161*4882a593Smuzhiyun
162*4882a593Smuzhiyun&emmc_phy {
163*4882a593Smuzhiyun	status = "okay";
164*4882a593Smuzhiyun};
165*4882a593Smuzhiyun
166*4882a593Smuzhiyun&gmac {
167*4882a593Smuzhiyun	assigned-clocks = <&cru SCLK_RMII_SRC>;
168*4882a593Smuzhiyun	assigned-clock-parents = <&clkin_gmac>;
169*4882a593Smuzhiyun	clock_in_out = "input";
170*4882a593Smuzhiyun	phy-supply = <&vcc_phy>;
171*4882a593Smuzhiyun	phy-mode = "rgmii";
172*4882a593Smuzhiyun	pinctrl-names = "default";
173*4882a593Smuzhiyun	pinctrl-0 = <&rgmii_pins>;
174*4882a593Smuzhiyun	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
175*4882a593Smuzhiyun	snps,reset-active-low;
176*4882a593Smuzhiyun	snps,reset-delays-us = <0 10000 50000>;
177*4882a593Smuzhiyun	tx_delay = <0x28>;
178*4882a593Smuzhiyun	rx_delay = <0x11>;
179*4882a593Smuzhiyun	status = "okay";
180*4882a593Smuzhiyun};
181*4882a593Smuzhiyun
182*4882a593Smuzhiyun&gpu {
183*4882a593Smuzhiyun	status = "okay";
184*4882a593Smuzhiyun	mali-supply = <&vdd_gpu>;
185*4882a593Smuzhiyun};
186*4882a593Smuzhiyun
187*4882a593Smuzhiyun&hdmi {
188*4882a593Smuzhiyun	ddc-i2c-bus = <&i2c3>;
189*4882a593Smuzhiyun	pinctrl-names = "default";
190*4882a593Smuzhiyun	pinctrl-0 = <&hdmi_cec>;
191*4882a593Smuzhiyun	status = "okay";
192*4882a593Smuzhiyun};
193*4882a593Smuzhiyun
194*4882a593Smuzhiyun&hdmi_sound {
195*4882a593Smuzhiyun	status = "okay";
196*4882a593Smuzhiyun};
197*4882a593Smuzhiyun
198*4882a593Smuzhiyun&i2c0 {
199*4882a593Smuzhiyun	status = "okay";
200*4882a593Smuzhiyun	i2c-scl-rising-time-ns = <180>;
201*4882a593Smuzhiyun	i2c-scl-falling-time-ns = <30>;
202*4882a593Smuzhiyun	clock-frequency = <400000>;
203*4882a593Smuzhiyun
204*4882a593Smuzhiyun	vdd_cpu_b: syr827@40 {
205*4882a593Smuzhiyun		compatible = "silergy,syr827";
206*4882a593Smuzhiyun		reg = <0x40>;
207*4882a593Smuzhiyun		regulator-compatible = "fan53555-reg";
208*4882a593Smuzhiyun		pinctrl-0 = <&vsel1_pin>;
209*4882a593Smuzhiyun		regulator-name = "vdd_cpu_b";
210*4882a593Smuzhiyun		regulator-min-microvolt = <712500>;
211*4882a593Smuzhiyun		regulator-max-microvolt = <1500000>;
212*4882a593Smuzhiyun		regulator-ramp-delay = <1000>;
213*4882a593Smuzhiyun		fcs,suspend-voltage-selector = <1>;
214*4882a593Smuzhiyun		regulator-always-on;
215*4882a593Smuzhiyun		regulator-boot-on;
216*4882a593Smuzhiyun		vin-supply = <&vcc_sys>;
217*4882a593Smuzhiyun		regulator-state-mem {
218*4882a593Smuzhiyun			regulator-off-in-suspend;
219*4882a593Smuzhiyun		};
220*4882a593Smuzhiyun	};
221*4882a593Smuzhiyun
222*4882a593Smuzhiyun	vdd_gpu: syr828@41 {
223*4882a593Smuzhiyun		compatible = "silergy,syr828";
224*4882a593Smuzhiyun		reg = <0x41>;
225*4882a593Smuzhiyun		regulator-compatible = "fan53555-reg";
226*4882a593Smuzhiyun		pinctrl-0 = <&vsel2_pin>;
227*4882a593Smuzhiyun		regulator-name = "vdd_gpu";
228*4882a593Smuzhiyun		regulator-min-microvolt = <712500>;
229*4882a593Smuzhiyun		regulator-max-microvolt = <1500000>;
230*4882a593Smuzhiyun		regulator-ramp-delay = <1000>;
231*4882a593Smuzhiyun		fcs,suspend-voltage-selector = <1>;
232*4882a593Smuzhiyun		regulator-always-on;
233*4882a593Smuzhiyun		regulator-boot-on;
234*4882a593Smuzhiyun		vin-supply = <&vcc_sys>;
235*4882a593Smuzhiyun		regulator-initial-mode = <1>;
236*4882a593Smuzhiyun		regulator-state-mem {
237*4882a593Smuzhiyun			regulator-off-in-suspend;
238*4882a593Smuzhiyun		};
239*4882a593Smuzhiyun	};
240*4882a593Smuzhiyun
241*4882a593Smuzhiyun	rk808: pmic@1b {
242*4882a593Smuzhiyun		compatible = "rockchip,rk808";
243*4882a593Smuzhiyun		reg = <0x1b>;
244*4882a593Smuzhiyun		interrupt-parent = <&gpio1>;
245*4882a593Smuzhiyun		interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
246*4882a593Smuzhiyun		pinctrl-names = "default";
247*4882a593Smuzhiyun		pinctrl-0 = <&pmic_int_l>;
248*4882a593Smuzhiyun		rockchip,system-power-controller;
249*4882a593Smuzhiyun		wakeup-source;
250*4882a593Smuzhiyun		#clock-cells = <1>;
251*4882a593Smuzhiyun		clock-output-names = "xin32k", "rtc_clko_wifi";
252*4882a593Smuzhiyun
253*4882a593Smuzhiyun		vcc1-supply = <&vcc_sys>;
254*4882a593Smuzhiyun		vcc2-supply = <&vcc_sys>;
255*4882a593Smuzhiyun		vcc3-supply = <&vcc_sys>;
256*4882a593Smuzhiyun		vcc4-supply = <&vcc_sys>;
257*4882a593Smuzhiyun		vcc6-supply = <&vcc_sys>;
258*4882a593Smuzhiyun		vcc7-supply = <&vcc_sys>;
259*4882a593Smuzhiyun		vcc8-supply = <&vcc3v3_sys>;
260*4882a593Smuzhiyun		vcc9-supply = <&vcc_sys>;
261*4882a593Smuzhiyun		vcc10-supply = <&vcc_sys>;
262*4882a593Smuzhiyun		vcc11-supply = <&vcc_sys>;
263*4882a593Smuzhiyun		vcc12-supply = <&vcc3v3_sys>;
264*4882a593Smuzhiyun		vddio-supply = <&vcc_1v8>;
265*4882a593Smuzhiyun
266*4882a593Smuzhiyun		regulators {
267*4882a593Smuzhiyun			vdd_center: DCDC_REG1 {
268*4882a593Smuzhiyun				regulator-name = "vdd_center";
269*4882a593Smuzhiyun				regulator-min-microvolt = <900000>;
270*4882a593Smuzhiyun				regulator-max-microvolt = <900000>;
271*4882a593Smuzhiyun				regulator-ramp-delay = <6001>;
272*4882a593Smuzhiyun				regulator-always-on;
273*4882a593Smuzhiyun				regulator-boot-on;
274*4882a593Smuzhiyun				regulator-state-mem {
275*4882a593Smuzhiyun					regulator-off-in-suspend;
276*4882a593Smuzhiyun				};
277*4882a593Smuzhiyun			};
278*4882a593Smuzhiyun
279*4882a593Smuzhiyun			vdd_cpu_l: DCDC_REG2 {
280*4882a593Smuzhiyun				regulator-name = "vdd_cpu_l";
281*4882a593Smuzhiyun				regulator-min-microvolt = <750000>;
282*4882a593Smuzhiyun				regulator-max-microvolt = <1350000>;
283*4882a593Smuzhiyun				regulator-ramp-delay = <6001>;
284*4882a593Smuzhiyun				regulator-always-on;
285*4882a593Smuzhiyun				regulator-boot-on;
286*4882a593Smuzhiyun				regulator-state-mem {
287*4882a593Smuzhiyun					regulator-off-in-suspend;
288*4882a593Smuzhiyun				};
289*4882a593Smuzhiyun			};
290*4882a593Smuzhiyun
291*4882a593Smuzhiyun			vcc_ddr: DCDC_REG3 {
292*4882a593Smuzhiyun				regulator-name = "vcc_ddr";
293*4882a593Smuzhiyun				regulator-always-on;
294*4882a593Smuzhiyun				regulator-boot-on;
295*4882a593Smuzhiyun				regulator-state-mem {
296*4882a593Smuzhiyun					regulator-on-in-suspend;
297*4882a593Smuzhiyun				};
298*4882a593Smuzhiyun			};
299*4882a593Smuzhiyun
300*4882a593Smuzhiyun			vcc_1v8: DCDC_REG4 {
301*4882a593Smuzhiyun				regulator-name = "vcc_1v8";
302*4882a593Smuzhiyun				regulator-min-microvolt = <1800000>;
303*4882a593Smuzhiyun				regulator-max-microvolt = <1800000>;
304*4882a593Smuzhiyun				regulator-always-on;
305*4882a593Smuzhiyun				regulator-boot-on;
306*4882a593Smuzhiyun				regulator-state-mem {
307*4882a593Smuzhiyun					regulator-on-in-suspend;
308*4882a593Smuzhiyun					regulator-suspend-microvolt = <1800000>;
309*4882a593Smuzhiyun				};
310*4882a593Smuzhiyun			};
311*4882a593Smuzhiyun
312*4882a593Smuzhiyun			vcc1v8_dvp: LDO_REG1 {
313*4882a593Smuzhiyun				regulator-name = "vcc1v8_dvp";
314*4882a593Smuzhiyun				regulator-min-microvolt = <1800000>;
315*4882a593Smuzhiyun				regulator-max-microvolt = <1800000>;
316*4882a593Smuzhiyun				regulator-always-on;
317*4882a593Smuzhiyun				regulator-boot-on;
318*4882a593Smuzhiyun				regulator-state-mem {
319*4882a593Smuzhiyun					regulator-on-in-suspend;
320*4882a593Smuzhiyun					regulator-suspend-microvolt = <1800000>;
321*4882a593Smuzhiyun				};
322*4882a593Smuzhiyun			};
323*4882a593Smuzhiyun
324*4882a593Smuzhiyun			vcca1v8_hdmi: LDO_REG2 {
325*4882a593Smuzhiyun				regulator-name = "vcca1v8_hdmi";
326*4882a593Smuzhiyun				regulator-min-microvolt = <1800000>;
327*4882a593Smuzhiyun				regulator-max-microvolt = <1800000>;
328*4882a593Smuzhiyun				regulator-always-on;
329*4882a593Smuzhiyun				regulator-boot-on;
330*4882a593Smuzhiyun				regulator-state-mem {
331*4882a593Smuzhiyun					regulator-on-in-suspend;
332*4882a593Smuzhiyun					regulator-suspend-microvolt = <1800000>;
333*4882a593Smuzhiyun				};
334*4882a593Smuzhiyun			};
335*4882a593Smuzhiyun
336*4882a593Smuzhiyun			vcca_1v8: LDO_REG3 {
337*4882a593Smuzhiyun				regulator-name = "vcca_1v8";
338*4882a593Smuzhiyun				regulator-min-microvolt = <1800000>;
339*4882a593Smuzhiyun				regulator-max-microvolt = <1800000>;
340*4882a593Smuzhiyun				regulator-always-on;
341*4882a593Smuzhiyun				regulator-boot-on;
342*4882a593Smuzhiyun				regulator-state-mem {
343*4882a593Smuzhiyun					regulator-on-in-suspend;
344*4882a593Smuzhiyun					regulator-suspend-microvolt = <1800000>;
345*4882a593Smuzhiyun				};
346*4882a593Smuzhiyun			};
347*4882a593Smuzhiyun
348*4882a593Smuzhiyun			vcc_sd: LDO_REG4 {
349*4882a593Smuzhiyun				regulator-name = "vcc_sd";
350*4882a593Smuzhiyun				regulator-min-microvolt = <1800000>;
351*4882a593Smuzhiyun				regulator-max-microvolt = <3300000>;
352*4882a593Smuzhiyun				regulator-always-on;
353*4882a593Smuzhiyun				regulator-boot-on;
354*4882a593Smuzhiyun				regulator-state-mem {
355*4882a593Smuzhiyun					regulator-on-in-suspend;
356*4882a593Smuzhiyun					regulator-suspend-microvolt = <3300000>;
357*4882a593Smuzhiyun				};
358*4882a593Smuzhiyun			};
359*4882a593Smuzhiyun
360*4882a593Smuzhiyun			vcc3v0_sd: LDO_REG5 {
361*4882a593Smuzhiyun				regulator-name = "vcc3v0_sd";
362*4882a593Smuzhiyun				regulator-min-microvolt = <3000000>;
363*4882a593Smuzhiyun				regulator-max-microvolt = <3000000>;
364*4882a593Smuzhiyun				regulator-always-on;
365*4882a593Smuzhiyun				regulator-boot-on;
366*4882a593Smuzhiyun				regulator-state-mem {
367*4882a593Smuzhiyun					regulator-on-in-suspend;
368*4882a593Smuzhiyun					regulator-suspend-microvolt = <3000000>;
369*4882a593Smuzhiyun				};
370*4882a593Smuzhiyun			};
371*4882a593Smuzhiyun
372*4882a593Smuzhiyun			vcc_1v5: LDO_REG6 {
373*4882a593Smuzhiyun				regulator-name = "vcc_1v5";
374*4882a593Smuzhiyun				regulator-min-microvolt = <1500000>;
375*4882a593Smuzhiyun				regulator-max-microvolt = <1500000>;
376*4882a593Smuzhiyun				regulator-always-on;
377*4882a593Smuzhiyun				regulator-boot-on;
378*4882a593Smuzhiyun				regulator-state-mem {
379*4882a593Smuzhiyun					regulator-on-in-suspend;
380*4882a593Smuzhiyun					regulator-suspend-microvolt = <1500000>;
381*4882a593Smuzhiyun				};
382*4882a593Smuzhiyun			};
383*4882a593Smuzhiyun
384*4882a593Smuzhiyun			vcca0v9_hdmi: LDO_REG7 {
385*4882a593Smuzhiyun				regulator-name = "vcca0v9_hdmi";
386*4882a593Smuzhiyun				regulator-min-microvolt = <900000>;
387*4882a593Smuzhiyun				regulator-max-microvolt = <900000>;
388*4882a593Smuzhiyun				regulator-always-on;
389*4882a593Smuzhiyun				regulator-boot-on;
390*4882a593Smuzhiyun				regulator-state-mem {
391*4882a593Smuzhiyun					regulator-on-in-suspend;
392*4882a593Smuzhiyun					regulator-suspend-microvolt = <900000>;
393*4882a593Smuzhiyun				};
394*4882a593Smuzhiyun			};
395*4882a593Smuzhiyun
396*4882a593Smuzhiyun			vcc_3v0: LDO_REG8 {
397*4882a593Smuzhiyun				regulator-name = "vcc_3v0";
398*4882a593Smuzhiyun				regulator-min-microvolt = <3000000>;
399*4882a593Smuzhiyun				regulator-max-microvolt = <3000000>;
400*4882a593Smuzhiyun				regulator-always-on;
401*4882a593Smuzhiyun				regulator-boot-on;
402*4882a593Smuzhiyun				regulator-state-mem {
403*4882a593Smuzhiyun					regulator-on-in-suspend;
404*4882a593Smuzhiyun					regulator-suspend-microvolt = <3000000>;
405*4882a593Smuzhiyun				};
406*4882a593Smuzhiyun			};
407*4882a593Smuzhiyun
408*4882a593Smuzhiyun			vcc3v3_s3: SWITCH_REG1 {
409*4882a593Smuzhiyun				regulator-name = "vcc3v3_s3";
410*4882a593Smuzhiyun				regulator-always-on;
411*4882a593Smuzhiyun				regulator-boot-on;
412*4882a593Smuzhiyun				regulator-state-mem {
413*4882a593Smuzhiyun					regulator-on-in-suspend;
414*4882a593Smuzhiyun				};
415*4882a593Smuzhiyun			};
416*4882a593Smuzhiyun
417*4882a593Smuzhiyun			vcc3v3_s0: SWITCH_REG2 {
418*4882a593Smuzhiyun				regulator-name = "vcc3v3_s0";
419*4882a593Smuzhiyun				regulator-always-on;
420*4882a593Smuzhiyun				regulator-boot-on;
421*4882a593Smuzhiyun				regulator-state-mem {
422*4882a593Smuzhiyun					regulator-on-in-suspend;
423*4882a593Smuzhiyun				};
424*4882a593Smuzhiyun			};
425*4882a593Smuzhiyun		};
426*4882a593Smuzhiyun	};
427*4882a593Smuzhiyun};
428*4882a593Smuzhiyun
429*4882a593Smuzhiyun&i2c1 {
430*4882a593Smuzhiyun	i2c-scl-rising-time-ns = <300>;
431*4882a593Smuzhiyun	i2c-scl-falling-time-ns = <15>;
432*4882a593Smuzhiyun	status = "okay";
433*4882a593Smuzhiyun};
434*4882a593Smuzhiyun
435*4882a593Smuzhiyun&i2c3 {
436*4882a593Smuzhiyun	i2c-scl-rising-time-ns = <450>;
437*4882a593Smuzhiyun	i2c-scl-falling-time-ns = <15>;
438*4882a593Smuzhiyun	status = "okay";
439*4882a593Smuzhiyun};
440*4882a593Smuzhiyun
441*4882a593Smuzhiyun&i2c4 {
442*4882a593Smuzhiyun	i2c-scl-rising-time-ns = <600>;
443*4882a593Smuzhiyun	i2c-scl-falling-time-ns = <40>;
444*4882a593Smuzhiyun	status = "okay";
445*4882a593Smuzhiyun
446*4882a593Smuzhiyun	fusb0: typec-portc@22 {
447*4882a593Smuzhiyun		compatible = "fcs,fusb302";
448*4882a593Smuzhiyun		reg = <0x22>;
449*4882a593Smuzhiyun		interrupt-parent = <&gpio1>;
450*4882a593Smuzhiyun		interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
451*4882a593Smuzhiyun		pinctrl-names = "default";
452*4882a593Smuzhiyun		pinctrl-0 = <&fusb0_int>;
453*4882a593Smuzhiyun		vbus-supply = <&vcc5v0_typec>;
454*4882a593Smuzhiyun		status = "okay";
455*4882a593Smuzhiyun	};
456*4882a593Smuzhiyun};
457*4882a593Smuzhiyun
458*4882a593Smuzhiyun&i2c7 {
459*4882a593Smuzhiyun	status = "okay";
460*4882a593Smuzhiyun};
461*4882a593Smuzhiyun
462*4882a593Smuzhiyun&i2s0 {
463*4882a593Smuzhiyun	rockchip,playback-channels = <8>;
464*4882a593Smuzhiyun	rockchip,capture-channels = <8>;
465*4882a593Smuzhiyun	status = "okay";
466*4882a593Smuzhiyun};
467*4882a593Smuzhiyun
468*4882a593Smuzhiyun&i2s1 {
469*4882a593Smuzhiyun	rockchip,playback-channels = <2>;
470*4882a593Smuzhiyun	rockchip,capture-channels = <2>;
471*4882a593Smuzhiyun	status = "okay";
472*4882a593Smuzhiyun};
473*4882a593Smuzhiyun
474*4882a593Smuzhiyun&i2s2 {
475*4882a593Smuzhiyun	status = "okay";
476*4882a593Smuzhiyun};
477*4882a593Smuzhiyun
478*4882a593Smuzhiyun&io_domains {
479*4882a593Smuzhiyun	status = "okay";
480*4882a593Smuzhiyun	audio-supply = <&vcc1v8_s0>;
481*4882a593Smuzhiyun	bt656-supply = <&vcc1v8_s0>;
482*4882a593Smuzhiyun	gpio1830-supply = <&vcc_3v0>;
483*4882a593Smuzhiyun	sdmmc-supply = <&vcc_sd>;
484*4882a593Smuzhiyun};
485*4882a593Smuzhiyun
486*4882a593Smuzhiyun&pmu_io_domains {
487*4882a593Smuzhiyun	status = "okay";
488*4882a593Smuzhiyun	pmu1830-supply = <&vcc_1v8>;
489*4882a593Smuzhiyun};
490*4882a593Smuzhiyun
491*4882a593Smuzhiyun&pinctrl {
492*4882a593Smuzhiyun	fusb30x {
493*4882a593Smuzhiyun		fusb0_int: fusb0-int {
494*4882a593Smuzhiyun			rockchip,pins =
495*4882a593Smuzhiyun				<1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
496*4882a593Smuzhiyun		};
497*4882a593Smuzhiyun	};
498*4882a593Smuzhiyun
499*4882a593Smuzhiyun	gmac {
500*4882a593Smuzhiyun		rgmii_sleep_pins: rgmii-sleep-pins {
501*4882a593Smuzhiyun			rockchip,pins =
502*4882a593Smuzhiyun				<3 RK_PB7 RK_FUNC_GPIO &pcfg_output_low>;
503*4882a593Smuzhiyun		};
504*4882a593Smuzhiyun	};
505*4882a593Smuzhiyun
506*4882a593Smuzhiyun	ir {
507*4882a593Smuzhiyun		ir_rx: ir-rx {
508*4882a593Smuzhiyun			rockchip,pins = <0 RK_PA6 1 &pcfg_pull_none>;
509*4882a593Smuzhiyun		};
510*4882a593Smuzhiyun	};
511*4882a593Smuzhiyun
512*4882a593Smuzhiyun	leds {
513*4882a593Smuzhiyun		power_led_pin: power-led-pin {
514*4882a593Smuzhiyun			rockchip,pins = <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
515*4882a593Smuzhiyun		};
516*4882a593Smuzhiyun	};
517*4882a593Smuzhiyun
518*4882a593Smuzhiyun	pmic {
519*4882a593Smuzhiyun		pmic_int_l: pmic-int-l {
520*4882a593Smuzhiyun			rockchip,pins =
521*4882a593Smuzhiyun				<1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
522*4882a593Smuzhiyun		};
523*4882a593Smuzhiyun
524*4882a593Smuzhiyun		vsel1_pin: vsel1-pin {
525*4882a593Smuzhiyun			rockchip,pins =
526*4882a593Smuzhiyun				<1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
527*4882a593Smuzhiyun		};
528*4882a593Smuzhiyun
529*4882a593Smuzhiyun		vsel2_pin: vsel2-pin {
530*4882a593Smuzhiyun			rockchip,pins =
531*4882a593Smuzhiyun				<1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
532*4882a593Smuzhiyun		};
533*4882a593Smuzhiyun	};
534*4882a593Smuzhiyun
535*4882a593Smuzhiyun	sdio {
536*4882a593Smuzhiyun		bt_host_wake_l: bt-host-wake-l {
537*4882a593Smuzhiyun			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
538*4882a593Smuzhiyun		};
539*4882a593Smuzhiyun
540*4882a593Smuzhiyun		bt_reg_on_h: bt-reg-on-h {
541*4882a593Smuzhiyun			/* external pullup to VCC1V8_PMUPLL */
542*4882a593Smuzhiyun			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
543*4882a593Smuzhiyun		};
544*4882a593Smuzhiyun
545*4882a593Smuzhiyun		bt_wake_l: bt-wake-l {
546*4882a593Smuzhiyun			rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
547*4882a593Smuzhiyun		};
548*4882a593Smuzhiyun
549*4882a593Smuzhiyun		wifi_reg_on_h: wifi-reg_on-h {
550*4882a593Smuzhiyun			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
551*4882a593Smuzhiyun		};
552*4882a593Smuzhiyun	};
553*4882a593Smuzhiyun
554*4882a593Smuzhiyun	wifi {
555*4882a593Smuzhiyun		wifi_host_wake_l: wifi-host-wake-l {
556*4882a593Smuzhiyun			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
557*4882a593Smuzhiyun		};
558*4882a593Smuzhiyun	};
559*4882a593Smuzhiyun
560*4882a593Smuzhiyun	usb-typec {
561*4882a593Smuzhiyun		vcc5v0_typec_en: vcc5v0_typec_en {
562*4882a593Smuzhiyun			rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
563*4882a593Smuzhiyun		};
564*4882a593Smuzhiyun	};
565*4882a593Smuzhiyun
566*4882a593Smuzhiyun	usb2 {
567*4882a593Smuzhiyun		host_vbus_drv: host-vbus-drv {
568*4882a593Smuzhiyun			rockchip,pins =
569*4882a593Smuzhiyun				<4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
570*4882a593Smuzhiyun		};
571*4882a593Smuzhiyun	};
572*4882a593Smuzhiyun};
573*4882a593Smuzhiyun
574*4882a593Smuzhiyun&pwm2 {
575*4882a593Smuzhiyun	status = "okay";
576*4882a593Smuzhiyun	pinctrl-0 = <&pwm2_pin_pull_down>;
577*4882a593Smuzhiyun};
578*4882a593Smuzhiyun
579*4882a593Smuzhiyun&saradc {
580*4882a593Smuzhiyun	vref-supply = <&vcc1v8_s0>;
581*4882a593Smuzhiyun	status = "okay";
582*4882a593Smuzhiyun};
583*4882a593Smuzhiyun
584*4882a593Smuzhiyun&sdmmc {
585*4882a593Smuzhiyun	clock-frequency = <150000000>;
586*4882a593Smuzhiyun	max-frequency = <150000000>;
587*4882a593Smuzhiyun	bus-width = <4>;
588*4882a593Smuzhiyun	cap-mmc-highspeed;
589*4882a593Smuzhiyun	cap-sd-highspeed;
590*4882a593Smuzhiyun	disable-wp;
591*4882a593Smuzhiyun	vqmmc-supply = <&vcc_sd>;
592*4882a593Smuzhiyun	pinctrl-names = "default";
593*4882a593Smuzhiyun	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
594*4882a593Smuzhiyun	card-detect-delay = <800>;
595*4882a593Smuzhiyun	status = "okay";
596*4882a593Smuzhiyun};
597*4882a593Smuzhiyun
598*4882a593Smuzhiyun&sdhci {
599*4882a593Smuzhiyun	bus-width = <8>;
600*4882a593Smuzhiyun	mmc-hs400-1_8v;
601*4882a593Smuzhiyun	mmc-hs400-enhanced-strobe;
602*4882a593Smuzhiyun	non-removable;
603*4882a593Smuzhiyun	keep-power-in-suspend;
604*4882a593Smuzhiyun	status = "okay";
605*4882a593Smuzhiyun};
606*4882a593Smuzhiyun
607*4882a593Smuzhiyun&sdio0 {
608*4882a593Smuzhiyun	bus-width = <4>;
609*4882a593Smuzhiyun	clock-frequency = <50000000>;
610*4882a593Smuzhiyun	cap-sdio-irq;
611*4882a593Smuzhiyun	cap-sd-highspeed;
612*4882a593Smuzhiyun	keep-power-in-suspend;
613*4882a593Smuzhiyun	mmc-pwrseq = <&sdio_pwrseq>;
614*4882a593Smuzhiyun	non-removable;
615*4882a593Smuzhiyun	pinctrl-names = "default";
616*4882a593Smuzhiyun	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
617*4882a593Smuzhiyun	sd-uhs-sdr104;
618*4882a593Smuzhiyun	#address-cells = <1>;
619*4882a593Smuzhiyun	#size-cells = <0>;
620*4882a593Smuzhiyun	status = "okay";
621*4882a593Smuzhiyun
622*4882a593Smuzhiyun	brcmf: wifi@1 {
623*4882a593Smuzhiyun		compatible = "brcm,bcm4329-fmac";
624*4882a593Smuzhiyun		reg = <1>;
625*4882a593Smuzhiyun		interrupt-parent = <&gpio0>;
626*4882a593Smuzhiyun		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
627*4882a593Smuzhiyun		interrupt-names = "host-wake";
628*4882a593Smuzhiyun		pinctrl-names = "default";
629*4882a593Smuzhiyun		pinctrl-0 = <&wifi_host_wake_l>;
630*4882a593Smuzhiyun	};
631*4882a593Smuzhiyun};
632*4882a593Smuzhiyun
633*4882a593Smuzhiyun&spdif {
634*4882a593Smuzhiyun	status = "okay";
635*4882a593Smuzhiyun	pinctrl-0 = <&spdif_bus_1>;
636*4882a593Smuzhiyun};
637*4882a593Smuzhiyun
638*4882a593Smuzhiyun&spi1 {
639*4882a593Smuzhiyun	status = "okay";
640*4882a593Smuzhiyun
641*4882a593Smuzhiyun	flash@0 {
642*4882a593Smuzhiyun		compatible = "jedec,spi-nor";
643*4882a593Smuzhiyun		#address-cells = <1>;
644*4882a593Smuzhiyun		#size-cells = <1>;
645*4882a593Smuzhiyun		reg = <0>;
646*4882a593Smuzhiyun		spi-max-frequency = <10000000>;
647*4882a593Smuzhiyun	};
648*4882a593Smuzhiyun};
649*4882a593Smuzhiyun
650*4882a593Smuzhiyun&tcphy0 {
651*4882a593Smuzhiyun	status = "okay";
652*4882a593Smuzhiyun};
653*4882a593Smuzhiyun
654*4882a593Smuzhiyun&tcphy1 {
655*4882a593Smuzhiyun	status = "okay";
656*4882a593Smuzhiyun};
657*4882a593Smuzhiyun
658*4882a593Smuzhiyun&tsadc {
659*4882a593Smuzhiyun	/* tshut mode 0:CRU 1:GPIO */
660*4882a593Smuzhiyun	rockchip,hw-tshut-mode = <1>;
661*4882a593Smuzhiyun	/* tshut polarity 0:LOW 1:HIGH */
662*4882a593Smuzhiyun	rockchip,hw-tshut-polarity = <1>;
663*4882a593Smuzhiyun	rockchip,hw-tshut-temp = <110000>;
664*4882a593Smuzhiyun	status = "okay";
665*4882a593Smuzhiyun};
666*4882a593Smuzhiyun
667*4882a593Smuzhiyun&u2phy0 {
668*4882a593Smuzhiyun	status = "okay";
669*4882a593Smuzhiyun
670*4882a593Smuzhiyun	u2phy0_host: host-port {
671*4882a593Smuzhiyun		phy-supply = <&vcc5v0_typec>;
672*4882a593Smuzhiyun		status = "okay";
673*4882a593Smuzhiyun	};
674*4882a593Smuzhiyun
675*4882a593Smuzhiyun	u2phy0_otg: otg-port {
676*4882a593Smuzhiyun		status = "okay";
677*4882a593Smuzhiyun	};
678*4882a593Smuzhiyun};
679*4882a593Smuzhiyun
680*4882a593Smuzhiyun&u2phy1 {
681*4882a593Smuzhiyun	status = "okay";
682*4882a593Smuzhiyun
683*4882a593Smuzhiyun	u2phy1_host: host-port {
684*4882a593Smuzhiyun		phy-supply = <&vcc5v0_host>;
685*4882a593Smuzhiyun		status = "okay";
686*4882a593Smuzhiyun	};
687*4882a593Smuzhiyun
688*4882a593Smuzhiyun	u2phy1_otg: otg-port {
689*4882a593Smuzhiyun		status = "okay";
690*4882a593Smuzhiyun	};
691*4882a593Smuzhiyun};
692*4882a593Smuzhiyun
693*4882a593Smuzhiyun&uart0 {
694*4882a593Smuzhiyun	pinctrl-names = "default";
695*4882a593Smuzhiyun	pinctrl-0 = <&uart0_xfer &uart0_rts &uart0_cts>;
696*4882a593Smuzhiyun	status = "okay";
697*4882a593Smuzhiyun
698*4882a593Smuzhiyun	bluetooth {
699*4882a593Smuzhiyun		compatible = "brcm,bcm43438-bt";
700*4882a593Smuzhiyun		clocks = <&rk808 1>;
701*4882a593Smuzhiyun		clock-names = "ext_clock";
702*4882a593Smuzhiyun		device-wakeup-gpios = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>;
703*4882a593Smuzhiyun		host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
704*4882a593Smuzhiyun		shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
705*4882a593Smuzhiyun		max-speed = <4000000>;
706*4882a593Smuzhiyun		pinctrl-names = "default";
707*4882a593Smuzhiyun		pinctrl-0 = <&bt_reg_on_h &bt_host_wake_l &bt_wake_l>;
708*4882a593Smuzhiyun		vbat-supply = <&vcc3v3_sys>;
709*4882a593Smuzhiyun		vddio-supply = <&vcc_1v8>;
710*4882a593Smuzhiyun	};
711*4882a593Smuzhiyun};
712*4882a593Smuzhiyun
713*4882a593Smuzhiyun&uart2 {
714*4882a593Smuzhiyun	status = "okay";
715*4882a593Smuzhiyun};
716*4882a593Smuzhiyun
717*4882a593Smuzhiyun&usb_host0_ehci {
718*4882a593Smuzhiyun	status = "okay";
719*4882a593Smuzhiyun};
720*4882a593Smuzhiyun
721*4882a593Smuzhiyun&usb_host0_ohci {
722*4882a593Smuzhiyun	status = "okay";
723*4882a593Smuzhiyun};
724*4882a593Smuzhiyun
725*4882a593Smuzhiyun&usb_host1_ehci {
726*4882a593Smuzhiyun	status = "okay";
727*4882a593Smuzhiyun};
728*4882a593Smuzhiyun
729*4882a593Smuzhiyun&usb_host1_ohci {
730*4882a593Smuzhiyun	status = "okay";
731*4882a593Smuzhiyun};
732*4882a593Smuzhiyun
733*4882a593Smuzhiyun&usbdrd3_0 {
734*4882a593Smuzhiyun	status = "okay";
735*4882a593Smuzhiyun};
736*4882a593Smuzhiyun
737*4882a593Smuzhiyun&usbdrd_dwc3_0 {
738*4882a593Smuzhiyun	status = "okay";
739*4882a593Smuzhiyun	dr_mode = "host";
740*4882a593Smuzhiyun};
741*4882a593Smuzhiyun
742*4882a593Smuzhiyun&usbdrd3_1 {
743*4882a593Smuzhiyun	status = "okay";
744*4882a593Smuzhiyun};
745*4882a593Smuzhiyun
746*4882a593Smuzhiyun&usbdrd_dwc3_1 {
747*4882a593Smuzhiyun	status = "okay";
748*4882a593Smuzhiyun	dr_mode = "host";
749*4882a593Smuzhiyun};
750*4882a593Smuzhiyun
751*4882a593Smuzhiyun&vopb {
752*4882a593Smuzhiyun	status = "okay";
753*4882a593Smuzhiyun};
754*4882a593Smuzhiyun
755*4882a593Smuzhiyun&vopb_mmu {
756*4882a593Smuzhiyun	status = "okay";
757*4882a593Smuzhiyun};
758