1*24645034SJagan Teki// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*24645034SJagan Teki/*
3*24645034SJagan Teki * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd
4*24645034SJagan Teki * Copyright (c) 2019 Radxa Limited
5*24645034SJagan Teki * Copyright (c) 2022 Amarula Solutions(India)
6*24645034SJagan Teki */
7*24645034SJagan Teki
8*24645034SJagan Teki/dts-v1/;
9*24645034SJagan Teki#include "rk3399.dtsi"
10*24645034SJagan Teki#include "rk3399-t-opp.dtsi"
11*24645034SJagan Teki
12*24645034SJagan Teki/ {
13*24645034SJagan Teki	model = "Radxa ROCK 4C+";
14*24645034SJagan Teki	compatible = "radxa,rock-4c-plus", "rockchip,rk3399";
15*24645034SJagan Teki
16*24645034SJagan Teki	aliases {
17*24645034SJagan Teki		mmc0 = &sdmmc;
18*24645034SJagan Teki		mmc1 = &sdhci;
19*24645034SJagan Teki	};
20*24645034SJagan Teki
21*24645034SJagan Teki	chosen {
22*24645034SJagan Teki		stdout-path = "serial2:1500000n8";
23*24645034SJagan Teki	};
24*24645034SJagan Teki
25*24645034SJagan Teki	sdio_pwrseq: sdio-pwrseq {
26*24645034SJagan Teki		compatible = "mmc-pwrseq-simple";
27*24645034SJagan Teki		clocks = <&rk809 1>;
28*24645034SJagan Teki		clock-names = "ext_clock";
29*24645034SJagan Teki		pinctrl-names = "default";
30*24645034SJagan Teki		pinctrl-0 = <&wifi_enable_h>;
31*24645034SJagan Teki		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
32*24645034SJagan Teki	};
33*24645034SJagan Teki
34*24645034SJagan Teki	clkin_gmac: external-gmac-clock {
35*24645034SJagan Teki		compatible = "fixed-clock";
36*24645034SJagan Teki		clock-frequency = <125000000>;
37*24645034SJagan Teki		clock-output-names = "clkin_gmac";
38*24645034SJagan Teki		#clock-cells = <0>;
39*24645034SJagan Teki	};
40*24645034SJagan Teki
41*24645034SJagan Teki	vcc5v0_sys: vcc5v0-sys-regulator {
42*24645034SJagan Teki		compatible = "regulator-fixed";
43*24645034SJagan Teki		regulator-name = "vcc5v0_sys";
44*24645034SJagan Teki		regulator-always-on;
45*24645034SJagan Teki		regulator-boot-on;
46*24645034SJagan Teki		regulator-min-microvolt = <5000000>;
47*24645034SJagan Teki		regulator-max-microvolt = <5000000>;
48*24645034SJagan Teki	};
49*24645034SJagan Teki
50*24645034SJagan Teki	vcc5v0_host1: vcc5v0-host-regulator {
51*24645034SJagan Teki		compatible = "regulator-fixed";
52*24645034SJagan Teki		enable-active-high;
53*24645034SJagan Teki		gpio = <&gpio3 RK_PD6 GPIO_ACTIVE_HIGH>;
54*24645034SJagan Teki		pinctrl-names = "default";
55*24645034SJagan Teki		pinctrl-0 = <&vcc5v0_host_en>;
56*24645034SJagan Teki		regulator-name = "vcc5v0_host1";
57*24645034SJagan Teki		regulator-always-on;
58*24645034SJagan Teki		regulator-boot-on;
59*24645034SJagan Teki		vin-supply = <&vcc5v0_host0_s0>;
60*24645034SJagan Teki	};
61*24645034SJagan Teki
62*24645034SJagan Teki	vcc5v0_typec: vcc5v0-typec-regulator {
63*24645034SJagan Teki		compatible = "regulator-fixed";
64*24645034SJagan Teki		enable-active-high;
65*24645034SJagan Teki		gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
66*24645034SJagan Teki		pinctrl-names = "default";
67*24645034SJagan Teki		pinctrl-0 = <&vcc5v0_typec0_en>;
68*24645034SJagan Teki		regulator-name = "vcc5v0_typec";
69*24645034SJagan Teki		regulator-always-on;
70*24645034SJagan Teki		regulator-boot-on;
71*24645034SJagan Teki		vin-supply = <&vcc5v0_sys>;
72*24645034SJagan Teki	};
73*24645034SJagan Teki
74*24645034SJagan Teki	vcc_lan: vcc3v3-phy-regulator {
75*24645034SJagan Teki		compatible = "regulator-fixed";
76*24645034SJagan Teki		regulator-name = "vcc_lan";
77*24645034SJagan Teki		regulator-always-on;
78*24645034SJagan Teki		regulator-boot-on;
79*24645034SJagan Teki		regulator-min-microvolt = <3300000>;
80*24645034SJagan Teki		regulator-max-microvolt = <3300000>;
81*24645034SJagan Teki	};
82*24645034SJagan Teki};
83*24645034SJagan Teki
84*24645034SJagan Teki&cpu_l0 {
85*24645034SJagan Teki	cpu-supply = <&vdd_cpu_l>;
86*24645034SJagan Teki};
87*24645034SJagan Teki
88*24645034SJagan Teki&cpu_l1 {
89*24645034SJagan Teki	cpu-supply = <&vdd_cpu_l>;
90*24645034SJagan Teki};
91*24645034SJagan Teki
92*24645034SJagan Teki&cpu_l2 {
93*24645034SJagan Teki	cpu-supply = <&vdd_cpu_l>;
94*24645034SJagan Teki};
95*24645034SJagan Teki
96*24645034SJagan Teki&cpu_l3 {
97*24645034SJagan Teki	cpu-supply = <&vdd_cpu_l>;
98*24645034SJagan Teki};
99*24645034SJagan Teki
100*24645034SJagan Teki&cpu_b0 {
101*24645034SJagan Teki	cpu-supply = <&vdd_cpu_b>;
102*24645034SJagan Teki};
103*24645034SJagan Teki
104*24645034SJagan Teki&cpu_b1 {
105*24645034SJagan Teki	cpu-supply = <&vdd_cpu_b>;
106*24645034SJagan Teki};
107*24645034SJagan Teki
108*24645034SJagan Teki&emmc_phy {
109*24645034SJagan Teki	status = "okay";
110*24645034SJagan Teki};
111*24645034SJagan Teki
112*24645034SJagan Teki&gmac {
113*24645034SJagan Teki	assigned-clocks = <&cru SCLK_RMII_SRC>;
114*24645034SJagan Teki	assigned-clock-parents = <&clkin_gmac>;
115*24645034SJagan Teki	clock_in_out = "input";
116*24645034SJagan Teki	phy-supply = <&vcc_lan>;
117*24645034SJagan Teki	phy-mode = "rgmii";
118*24645034SJagan Teki	pinctrl-names = "default";
119*24645034SJagan Teki	pinctrl-0 = <&rgmii_pins>;
120*24645034SJagan Teki	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
121*24645034SJagan Teki	snps,reset-active-low;
122*24645034SJagan Teki	snps,reset-delays-us = <0 10000 50000>;
123*24645034SJagan Teki	tx_delay = <0x2a>;
124*24645034SJagan Teki	rx_delay = <0x21>;
125*24645034SJagan Teki	status = "okay";
126*24645034SJagan Teki};
127*24645034SJagan Teki
128*24645034SJagan Teki&gpu {
129*24645034SJagan Teki	mali-supply = <&vdd_gpu>;
130*24645034SJagan Teki	status = "okay";
131*24645034SJagan Teki};
132*24645034SJagan Teki
133*24645034SJagan Teki&hdmi {
134*24645034SJagan Teki	ddc-i2c-bus = <&i2c3>;
135*24645034SJagan Teki	pinctrl-names = "default";
136*24645034SJagan Teki	pinctrl-0 = <&hdmi_cec>;
137*24645034SJagan Teki	status = "okay";
138*24645034SJagan Teki};
139*24645034SJagan Teki
140*24645034SJagan Teki&hdmi_sound {
141*24645034SJagan Teki	status = "okay";
142*24645034SJagan Teki};
143*24645034SJagan Teki
144*24645034SJagan Teki&i2c0 {
145*24645034SJagan Teki	status = "okay";
146*24645034SJagan Teki	i2c-scl-falling-time-ns = <30>;
147*24645034SJagan Teki	i2c-scl-rising-time-ns = <180>;
148*24645034SJagan Teki	clock-frequency = <400000>;
149*24645034SJagan Teki
150*24645034SJagan Teki	rk809: pmic@20 {
151*24645034SJagan Teki		compatible = "rockchip,rk809";
152*24645034SJagan Teki		reg = <0x20>;
153*24645034SJagan Teki		interrupt-parent = <&gpio1>;
154*24645034SJagan Teki		interrupts = <RK_PC5 IRQ_TYPE_LEVEL_LOW>;
155*24645034SJagan Teki		#clock-cells = <1>;
156*24645034SJagan Teki		clock-output-names = "rk808-clkout1", "rk808-clkout2";
157*24645034SJagan Teki		pinctrl-names = "default";
158*24645034SJagan Teki		pinctrl-0 = <&pmic_int_l>;
159*24645034SJagan Teki		rockchip,system-power-controller;
160*24645034SJagan Teki		wakeup-source;
161*24645034SJagan Teki
162*24645034SJagan Teki		vcc1-supply = <&vcc5v0_sys>;
163*24645034SJagan Teki		vcc2-supply = <&vcc5v0_sys>;
164*24645034SJagan Teki		vcc3-supply = <&vcc5v0_sys>;
165*24645034SJagan Teki		vcc4-supply = <&vcc5v0_sys>;
166*24645034SJagan Teki		vcc5-supply = <&vcc_buck5>;
167*24645034SJagan Teki		vcc6-supply = <&vcc_buck5>;
168*24645034SJagan Teki		vcc7-supply = <&vcc5v0_sys>;
169*24645034SJagan Teki		vcc8-supply = <&vcc3v3_sys>;
170*24645034SJagan Teki		vcc9-supply = <&vcc5v0_sys>;
171*24645034SJagan Teki
172*24645034SJagan Teki		regulators {
173*24645034SJagan Teki			vdd_log: DCDC_REG1 {
174*24645034SJagan Teki				regulator-always-on;
175*24645034SJagan Teki				regulator-boot-on;
176*24645034SJagan Teki				regulator-min-microvolt = <750000>;
177*24645034SJagan Teki				regulator-max-microvolt = <1350000>;
178*24645034SJagan Teki				regulator-initial-mode = <0x2>;
179*24645034SJagan Teki				regulator-name = "vdd_log";
180*24645034SJagan Teki				regulator-state-mem {
181*24645034SJagan Teki					regulator-off-in-suspend;
182*24645034SJagan Teki					regulator-suspend-microvolt = <900000>;
183*24645034SJagan Teki				};
184*24645034SJagan Teki			};
185*24645034SJagan Teki
186*24645034SJagan Teki			vdd_cpu_l: DCDC_REG2 {
187*24645034SJagan Teki				regulator-always-on;
188*24645034SJagan Teki				regulator-boot-on;
189*24645034SJagan Teki				regulator-min-microvolt = <750000>;
190*24645034SJagan Teki				regulator-max-microvolt = <1350000>;
191*24645034SJagan Teki				regulator-ramp-delay = <6001>;
192*24645034SJagan Teki				regulator-initial-mode = <0x2>;
193*24645034SJagan Teki				regulator-name = "vdd_cpu_l";
194*24645034SJagan Teki				regulator-state-mem {
195*24645034SJagan Teki					regulator-off-in-suspend;
196*24645034SJagan Teki				};
197*24645034SJagan Teki			};
198*24645034SJagan Teki
199*24645034SJagan Teki			vcc_ddr: DCDC_REG3 {
200*24645034SJagan Teki				regulator-always-on;
201*24645034SJagan Teki				regulator-boot-on;
202*24645034SJagan Teki				regulator-name = "vcc_ddr";
203*24645034SJagan Teki				regulator-initial-mode = <0x2>;
204*24645034SJagan Teki				regulator-state-mem {
205*24645034SJagan Teki					regulator-on-in-suspend;
206*24645034SJagan Teki				};
207*24645034SJagan Teki			};
208*24645034SJagan Teki
209*24645034SJagan Teki			vcc3v3_sys: DCDC_REG4 {
210*24645034SJagan Teki				regulator-always-on;
211*24645034SJagan Teki				regulator-boot-on;
212*24645034SJagan Teki				regulator-min-microvolt = <3300000>;
213*24645034SJagan Teki				regulator-max-microvolt = <3300000>;
214*24645034SJagan Teki				regulator-initial-mode = <0x2>;
215*24645034SJagan Teki				regulator-name = "vcc3v3_sys";
216*24645034SJagan Teki				regulator-state-mem {
217*24645034SJagan Teki					regulator-on-in-suspend;
218*24645034SJagan Teki					regulator-suspend-microvolt = <3300000>;
219*24645034SJagan Teki				};
220*24645034SJagan Teki			};
221*24645034SJagan Teki
222*24645034SJagan Teki			vcc_buck5: DCDC_REG5 {
223*24645034SJagan Teki				regulator-always-on;
224*24645034SJagan Teki				regulator-boot-on;
225*24645034SJagan Teki				regulator-min-microvolt = <3300000>;
226*24645034SJagan Teki				regulator-max-microvolt = <3300000>;
227*24645034SJagan Teki				regulator-name = "vcc_buck5";
228*24645034SJagan Teki				regulator-state-mem {
229*24645034SJagan Teki					regulator-on-in-suspend;
230*24645034SJagan Teki					regulator-suspend-microvolt = <3300000>;
231*24645034SJagan Teki				};
232*24645034SJagan Teki			};
233*24645034SJagan Teki
234*24645034SJagan Teki			vcca_0v9: LDO_REG1 {
235*24645034SJagan Teki				regulator-always-on;
236*24645034SJagan Teki				regulator-boot-on;
237*24645034SJagan Teki				regulator-min-microvolt = <900000>;
238*24645034SJagan Teki				regulator-max-microvolt = <900000>;
239*24645034SJagan Teki				regulator-name = "vcca_0v9";
240*24645034SJagan Teki				regulator-state-mem {
241*24645034SJagan Teki					regulator-off-in-suspend;
242*24645034SJagan Teki				};
243*24645034SJagan Teki			};
244*24645034SJagan Teki
245*24645034SJagan Teki			vcc_1v8: LDO_REG2 {
246*24645034SJagan Teki				regulator-always-on;
247*24645034SJagan Teki				regulator-boot-on;
248*24645034SJagan Teki				regulator-min-microvolt = <1800000>;
249*24645034SJagan Teki				regulator-max-microvolt = <1800000>;
250*24645034SJagan Teki				regulator-name = "vcc_1v8";
251*24645034SJagan Teki				regulator-state-mem {
252*24645034SJagan Teki					regulator-on-in-suspend;
253*24645034SJagan Teki					regulator-suspend-microvolt = <1800000>;
254*24645034SJagan Teki				};
255*24645034SJagan Teki			};
256*24645034SJagan Teki
257*24645034SJagan Teki			vcc0v9_soc: LDO_REG3 {
258*24645034SJagan Teki				regulator-always-on;
259*24645034SJagan Teki				regulator-boot-on;
260*24645034SJagan Teki				regulator-min-microvolt = <900000>;
261*24645034SJagan Teki				regulator-max-microvolt = <900000>;
262*24645034SJagan Teki				regulator-name = "vcc0v9_soc";
263*24645034SJagan Teki				regulator-state-mem {
264*24645034SJagan Teki					regulator-on-in-suspend;
265*24645034SJagan Teki					regulator-suspend-microvolt = <900000>;
266*24645034SJagan Teki				};
267*24645034SJagan Teki			};
268*24645034SJagan Teki
269*24645034SJagan Teki			vcca_1v8: LDO_REG4 {
270*24645034SJagan Teki				regulator-always-on;
271*24645034SJagan Teki				regulator-boot-on;
272*24645034SJagan Teki				regulator-min-microvolt = <1800000>;
273*24645034SJagan Teki				regulator-max-microvolt = <1800000>;
274*24645034SJagan Teki				regulator-name = "vcca_1v8";
275*24645034SJagan Teki				regulator-state-mem {
276*24645034SJagan Teki					regulator-off-in-suspend;
277*24645034SJagan Teki				};
278*24645034SJagan Teki			};
279*24645034SJagan Teki
280*24645034SJagan Teki			vcc_mipi: LDO_REG5 {
281*24645034SJagan Teki				regulator-always-on;
282*24645034SJagan Teki				regulator-boot-on;
283*24645034SJagan Teki				regulator-min-microvolt = <3000000>;
284*24645034SJagan Teki				regulator-max-microvolt = <3000000>;
285*24645034SJagan Teki				regulator-name = "vcc_mipi";
286*24645034SJagan Teki				regulator-state-mem {
287*24645034SJagan Teki					regulator-off-in-suspend;
288*24645034SJagan Teki				};
289*24645034SJagan Teki			};
290*24645034SJagan Teki
291*24645034SJagan Teki			vcc_1v5: LDO_REG6 {
292*24645034SJagan Teki				regulator-always-on;
293*24645034SJagan Teki				regulator-boot-on;
294*24645034SJagan Teki				regulator-min-microvolt = <1500000>;
295*24645034SJagan Teki				regulator-max-microvolt = <1500000>;
296*24645034SJagan Teki				regulator-name = "vcc_1v5";
297*24645034SJagan Teki				regulator-state-mem {
298*24645034SJagan Teki					regulator-off-in-suspend;
299*24645034SJagan Teki				};
300*24645034SJagan Teki			};
301*24645034SJagan Teki
302*24645034SJagan Teki			vcc_3v0: LDO_REG7 {
303*24645034SJagan Teki				regulator-always-on;
304*24645034SJagan Teki				regulator-boot-on;
305*24645034SJagan Teki				regulator-min-microvolt = <3000000>;
306*24645034SJagan Teki				regulator-max-microvolt = <3000000>;
307*24645034SJagan Teki				regulator-name = "vcc_3v0";
308*24645034SJagan Teki				regulator-state-mem {
309*24645034SJagan Teki					regulator-off-in-suspend;
310*24645034SJagan Teki				};
311*24645034SJagan Teki			};
312*24645034SJagan Teki
313*24645034SJagan Teki			vccio_sd: LDO_REG8 {
314*24645034SJagan Teki				regulator-always-on;
315*24645034SJagan Teki				regulator-boot-on;
316*24645034SJagan Teki				regulator-min-microvolt = <1800000>;
317*24645034SJagan Teki				regulator-max-microvolt = <3300000>;
318*24645034SJagan Teki				regulator-name = "vccio_sd";
319*24645034SJagan Teki				regulator-state-mem {
320*24645034SJagan Teki					regulator-off-in-suspend;
321*24645034SJagan Teki				};
322*24645034SJagan Teki			};
323*24645034SJagan Teki
324*24645034SJagan Teki			vcc_cam: LDO_REG9 {
325*24645034SJagan Teki				regulator-always-on;
326*24645034SJagan Teki				regulator-boot-on;
327*24645034SJagan Teki				regulator-min-microvolt = <3300000>;
328*24645034SJagan Teki				regulator-max-microvolt = <3300000>;
329*24645034SJagan Teki				regulator-name = "vcc_cam";
330*24645034SJagan Teki				regulator-state-mem {
331*24645034SJagan Teki					regulator-off-in-suspend;
332*24645034SJagan Teki				};
333*24645034SJagan Teki			};
334*24645034SJagan Teki
335*24645034SJagan Teki			vcc5v0_host0_s0: SWITCH_REG1 {
336*24645034SJagan Teki				regulator-always-on;
337*24645034SJagan Teki				regulator-boot-on;
338*24645034SJagan Teki				regulator-name = "vcc5v0_host0_s0";
339*24645034SJagan Teki				regulator-state-mem {
340*24645034SJagan Teki					regulator-on-in-suspend;
341*24645034SJagan Teki				};
342*24645034SJagan Teki			};
343*24645034SJagan Teki
344*24645034SJagan Teki			lcd_3v3: SWITCH_REG2 {
345*24645034SJagan Teki				regulator-always-on;
346*24645034SJagan Teki				regulator-boot-on;
347*24645034SJagan Teki				regulator-name = "lcd_3v3";
348*24645034SJagan Teki				regulator-state-mem {
349*24645034SJagan Teki					regulator-off-in-suspend;
350*24645034SJagan Teki				};
351*24645034SJagan Teki			};
352*24645034SJagan Teki		};
353*24645034SJagan Teki	};
354*24645034SJagan Teki
355*24645034SJagan Teki	vdd_cpu_b: regulator@40 {
356*24645034SJagan Teki		compatible = "silergy,syr827";
357*24645034SJagan Teki		reg = <0x40>;
358*24645034SJagan Teki		fcs,suspend-voltage-selector = <1>;
359*24645034SJagan Teki		regulator-compatible = "fan53555-reg";
360*24645034SJagan Teki		pinctrl-0 = <&vsel1_gpio>;
361*24645034SJagan Teki		vsel-gpios = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>;
362*24645034SJagan Teki		regulator-name = "vdd_cpu_b";
363*24645034SJagan Teki		regulator-min-microvolt = <712500>;
364*24645034SJagan Teki		regulator-max-microvolt = <1500000>;
365*24645034SJagan Teki		regulator-ramp-delay = <1000>;
366*24645034SJagan Teki		regulator-always-on;
367*24645034SJagan Teki		regulator-boot-on;
368*24645034SJagan Teki		vin-supply = <&vcc5v0_sys>;
369*24645034SJagan Teki		regulator-state-mem {
370*24645034SJagan Teki			regulator-off-in-suspend;
371*24645034SJagan Teki		};
372*24645034SJagan Teki	};
373*24645034SJagan Teki
374*24645034SJagan Teki	vdd_gpu: regulator@41 {
375*24645034SJagan Teki		compatible = "silergy,syr828";
376*24645034SJagan Teki		reg = <0x41>;
377*24645034SJagan Teki		fcs,suspend-voltage-selector = <1>;
378*24645034SJagan Teki		regulator-compatible = "fan53555-reg";
379*24645034SJagan Teki		pinctrl-0 = <&vsel2_gpio>;
380*24645034SJagan Teki		vsel-gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_HIGH>;
381*24645034SJagan Teki		regulator-name = "vdd_gpu";
382*24645034SJagan Teki		regulator-min-microvolt = <712500>;
383*24645034SJagan Teki		regulator-max-microvolt = <1500000>;
384*24645034SJagan Teki		regulator-ramp-delay = <1000>;
385*24645034SJagan Teki		regulator-always-on;
386*24645034SJagan Teki		regulator-boot-on;
387*24645034SJagan Teki		vin-supply = <&vcc5v0_sys>;
388*24645034SJagan Teki		regulator-initial-mode = <1>; /* 1:force PWM 2:auto */
389*24645034SJagan Teki		regulator-state-mem {
390*24645034SJagan Teki			regulator-off-in-suspend;
391*24645034SJagan Teki		};
392*24645034SJagan Teki	};
393*24645034SJagan Teki};
394*24645034SJagan Teki
395*24645034SJagan Teki&i2c3 {
396*24645034SJagan Teki	i2c-scl-rising-time-ns = <450>;
397*24645034SJagan Teki	i2c-scl-falling-time-ns = <15>;
398*24645034SJagan Teki	status = "okay";
399*24645034SJagan Teki};
400*24645034SJagan Teki
401*24645034SJagan Teki&i2s2 {
402*24645034SJagan Teki	status = "okay";
403*24645034SJagan Teki};
404*24645034SJagan Teki
405*24645034SJagan Teki&io_domains {
406*24645034SJagan Teki	bt656-supply = <&vcc_3v0>;
407*24645034SJagan Teki	gpio1830-supply = <&vcc_3v0>;
408*24645034SJagan Teki	sdmmc-supply = <&vccio_sd>;
409*24645034SJagan Teki	status = "okay";
410*24645034SJagan Teki};
411*24645034SJagan Teki
412*24645034SJagan Teki&pinctrl {
413*24645034SJagan Teki	bt {
414*24645034SJagan Teki		bt_enable_h: bt-enable-h {
415*24645034SJagan Teki			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
416*24645034SJagan Teki		};
417*24645034SJagan Teki
418*24645034SJagan Teki		bt_host_wake_l: bt-host-wake-l {
419*24645034SJagan Teki			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
420*24645034SJagan Teki		};
421*24645034SJagan Teki
422*24645034SJagan Teki		bt_wake_l: bt-wake-l {
423*24645034SJagan Teki			rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
424*24645034SJagan Teki		};
425*24645034SJagan Teki	};
426*24645034SJagan Teki
427*24645034SJagan Teki	pmic {
428*24645034SJagan Teki		pmic_int_l: pmic-int-l {
429*24645034SJagan Teki			rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
430*24645034SJagan Teki		};
431*24645034SJagan Teki
432*24645034SJagan Teki		vsel1_gpio: vsel1-gpio {
433*24645034SJagan Teki			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
434*24645034SJagan Teki		};
435*24645034SJagan Teki
436*24645034SJagan Teki		vsel2_gpio: vsel2-gpio {
437*24645034SJagan Teki			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
438*24645034SJagan Teki		};
439*24645034SJagan Teki	};
440*24645034SJagan Teki
441*24645034SJagan Teki	sdmmc {
442*24645034SJagan Teki		sdmmc_bus4: sdmmc-bus4 {
443*24645034SJagan Teki			rockchip,pins = <4 8 1 &pcfg_pull_up_8ma>,
444*24645034SJagan Teki					<4 9 1 &pcfg_pull_up_8ma>,
445*24645034SJagan Teki					<4 10 1 &pcfg_pull_up_8ma>,
446*24645034SJagan Teki					<4 11 1 &pcfg_pull_up_8ma>;
447*24645034SJagan Teki		};
448*24645034SJagan Teki
449*24645034SJagan Teki		sdmmc_clk: sdmmc-clk {
450*24645034SJagan Teki			rockchip,pins = <4 12 1 &pcfg_pull_none_18ma>;
451*24645034SJagan Teki		};
452*24645034SJagan Teki
453*24645034SJagan Teki		sdmmc_cmd: sdmmc-cmd {
454*24645034SJagan Teki			rockchip,pins = <4 13 1 &pcfg_pull_up_8ma>;
455*24645034SJagan Teki		};
456*24645034SJagan Teki	};
457*24645034SJagan Teki
458*24645034SJagan Teki	usb-typec {
459*24645034SJagan Teki		vcc5v0_typec0_en: vcc5v0-typec-en {
460*24645034SJagan Teki			rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
461*24645034SJagan Teki		};
462*24645034SJagan Teki	};
463*24645034SJagan Teki
464*24645034SJagan Teki	usb2 {
465*24645034SJagan Teki		vcc5v0_host_en: vcc5v0-host-en {
466*24645034SJagan Teki			rockchip,pins = <3 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
467*24645034SJagan Teki		};
468*24645034SJagan Teki	};
469*24645034SJagan Teki
470*24645034SJagan Teki	wifi {
471*24645034SJagan Teki		wifi_enable_h: wifi-enable-h {
472*24645034SJagan Teki			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
473*24645034SJagan Teki		};
474*24645034SJagan Teki
475*24645034SJagan Teki		wifi_host_wake_l: wifi-host-wake-l {
476*24645034SJagan Teki			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
477*24645034SJagan Teki		};
478*24645034SJagan Teki	};
479*24645034SJagan Teki};
480*24645034SJagan Teki
481*24645034SJagan Teki&pmu_io_domains {
482*24645034SJagan Teki	pmu1830-supply = <&vcc_3v0>;
483*24645034SJagan Teki	status = "okay";
484*24645034SJagan Teki};
485*24645034SJagan Teki
486*24645034SJagan Teki&saradc {
487*24645034SJagan Teki	status = "okay";
488*24645034SJagan Teki	vref-supply = <&vcc_1v8>;
489*24645034SJagan Teki};
490*24645034SJagan Teki
491*24645034SJagan Teki&sdhci {
492*24645034SJagan Teki	max-frequency = <150000000>;
493*24645034SJagan Teki	bus-width = <8>;
494*24645034SJagan Teki	mmc-hs400-1_8v;
495*24645034SJagan Teki	non-removable;
496*24645034SJagan Teki	mmc-hs400-enhanced-strobe;
497*24645034SJagan Teki	status = "okay";
498*24645034SJagan Teki};
499*24645034SJagan Teki
500*24645034SJagan Teki&sdio0 {
501*24645034SJagan Teki	#address-cells = <1>;
502*24645034SJagan Teki	#size-cells = <0>;
503*24645034SJagan Teki	bus-width = <4>;
504*24645034SJagan Teki	clock-frequency = <50000000>;
505*24645034SJagan Teki	cap-sdio-irq;
506*24645034SJagan Teki	cap-sd-highspeed;
507*24645034SJagan Teki	keep-power-in-suspend;
508*24645034SJagan Teki	mmc-pwrseq = <&sdio_pwrseq>;
509*24645034SJagan Teki	non-removable;
510*24645034SJagan Teki	pinctrl-names = "default";
511*24645034SJagan Teki	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
512*24645034SJagan Teki	sd-uhs-sdr104;
513*24645034SJagan Teki	status = "okay";
514*24645034SJagan Teki
515*24645034SJagan Teki	brcmf: wifi@1 {
516*24645034SJagan Teki		compatible = "brcm,bcm4329-fmac";
517*24645034SJagan Teki		reg = <1>;
518*24645034SJagan Teki		interrupt-parent = <&gpio0>;
519*24645034SJagan Teki		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
520*24645034SJagan Teki		interrupt-names = "host-wake";
521*24645034SJagan Teki		pinctrl-names = "default";
522*24645034SJagan Teki		pinctrl-0 = <&wifi_host_wake_l>;
523*24645034SJagan Teki	};
524*24645034SJagan Teki};
525*24645034SJagan Teki
526*24645034SJagan Teki&sdmmc {
527*24645034SJagan Teki	bus-width = <4>;
528*24645034SJagan Teki	cap-mmc-highspeed;
529*24645034SJagan Teki	cap-sd-highspeed;
530*24645034SJagan Teki	card-detect-delay = <800>;
531*24645034SJagan Teki	disable-wp;
532*24645034SJagan Teki	pinctrl-names = "default";
533*24645034SJagan Teki	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
534*24645034SJagan Teki	cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
535*24645034SJagan Teki	vqmmc-supply = <&vccio_sd>;
536*24645034SJagan Teki	status = "okay";
537*24645034SJagan Teki};
538*24645034SJagan Teki
539*24645034SJagan Teki&tcphy0 {
540*24645034SJagan Teki	status = "okay";
541*24645034SJagan Teki};
542*24645034SJagan Teki
543*24645034SJagan Teki&tcphy1 {
544*24645034SJagan Teki	status = "okay";
545*24645034SJagan Teki};
546*24645034SJagan Teki
547*24645034SJagan Teki&u2phy0 {
548*24645034SJagan Teki	status = "okay";
549*24645034SJagan Teki
550*24645034SJagan Teki	u2phy0_otg: otg-port {
551*24645034SJagan Teki		status = "okay";
552*24645034SJagan Teki	};
553*24645034SJagan Teki
554*24645034SJagan Teki	u2phy0_host: host-port {
555*24645034SJagan Teki		phy-supply = <&vcc5v0_host1>;
556*24645034SJagan Teki		status = "okay";
557*24645034SJagan Teki	};
558*24645034SJagan Teki};
559*24645034SJagan Teki
560*24645034SJagan Teki&u2phy1 {
561*24645034SJagan Teki	status = "okay";
562*24645034SJagan Teki
563*24645034SJagan Teki	u2phy1_otg: otg-port {
564*24645034SJagan Teki		status = "okay";
565*24645034SJagan Teki	};
566*24645034SJagan Teki
567*24645034SJagan Teki	u2phy1_host: host-port {
568*24645034SJagan Teki		phy-supply = <&vcc5v0_host1>;
569*24645034SJagan Teki		status = "okay";
570*24645034SJagan Teki	};
571*24645034SJagan Teki};
572*24645034SJagan Teki
573*24645034SJagan Teki&uart0 {
574*24645034SJagan Teki	pinctrl-names = "default";
575*24645034SJagan Teki	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
576*24645034SJagan Teki	status = "okay";
577*24645034SJagan Teki
578*24645034SJagan Teki	bluetooth {
579*24645034SJagan Teki		compatible = "brcm,bcm4345c5";
580*24645034SJagan Teki		clocks = <&rk809 1>;
581*24645034SJagan Teki		clock-names = "lpo";
582*24645034SJagan Teki		device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
583*24645034SJagan Teki		host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
584*24645034SJagan Teki		shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
585*24645034SJagan Teki		max-speed = <1500000>;
586*24645034SJagan Teki		pinctrl-names = "default";
587*24645034SJagan Teki		pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
588*24645034SJagan Teki		vbat-supply = <&vcc3v3_sys>;
589*24645034SJagan Teki		vddio-supply = <&vcc_1v8>;
590*24645034SJagan Teki	};
591*24645034SJagan Teki};
592*24645034SJagan Teki
593*24645034SJagan Teki&uart2 {
594*24645034SJagan Teki	status = "okay";
595*24645034SJagan Teki};
596*24645034SJagan Teki
597*24645034SJagan Teki&usb_host0_ehci {
598*24645034SJagan Teki	status = "okay";
599*24645034SJagan Teki};
600*24645034SJagan Teki
601*24645034SJagan Teki&usb_host0_ohci {
602*24645034SJagan Teki	status = "okay";
603*24645034SJagan Teki};
604*24645034SJagan Teki
605*24645034SJagan Teki&usb_host1_ehci {
606*24645034SJagan Teki	status = "okay";
607*24645034SJagan Teki};
608*24645034SJagan Teki
609*24645034SJagan Teki&usb_host1_ohci {
610*24645034SJagan Teki	status = "okay";
611*24645034SJagan Teki};
612*24645034SJagan Teki
613*24645034SJagan Teki&usbdrd3_0 {
614*24645034SJagan Teki	extcon = <&u2phy0>;
615*24645034SJagan Teki	status = "okay";
616*24645034SJagan Teki};
617*24645034SJagan Teki
618*24645034SJagan Teki&usbdrd_dwc3_0 {
619*24645034SJagan Teki	status = "okay";
620*24645034SJagan Teki	dr_mode = "host";
621*24645034SJagan Teki};
622*24645034SJagan Teki
623*24645034SJagan Teki&usbdrd3_1 {
624*24645034SJagan Teki	status = "okay";
625*24645034SJagan Teki};
626*24645034SJagan Teki
627*24645034SJagan Teki&usbdrd_dwc3_1 {
628*24645034SJagan Teki	status = "okay";
629*24645034SJagan Teki	dr_mode = "host";
630*24645034SJagan Teki};
631*24645034SJagan Teki
632*24645034SJagan Teki&vopb {
633*24645034SJagan Teki	status = "okay";
634*24645034SJagan Teki};
635*24645034SJagan Teki
636*24645034SJagan Teki&vopb_mmu {
637*24645034SJagan Teki	status = "okay";
638*24645034SJagan Teki};
639*24645034SJagan Teki
640*24645034SJagan Teki&vopl {
641*24645034SJagan Teki	status = "okay";
642*24645034SJagan Teki};
643*24645034SJagan Teki
644*24645034SJagan Teki&vopl_mmu {
645*24645034SJagan Teki	status = "okay";
646*24645034SJagan Teki};
647