xref: /openbmc/linux/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
14ee99cebSKlaus Goger// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2171582e0SKever Yang/*
3171582e0SKever Yang * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
4171582e0SKever Yang */
5171582e0SKever Yang
6171582e0SKever Yang/dts-v1/;
724e5b85aSShohei Maruyama#include <dt-bindings/input/linux-event-codes.h>
8c043dee9SKrzysztof Kozlowski#include <dt-bindings/interrupt-controller/irq.h>
9171582e0SKever Yang#include <dt-bindings/pwm/pwm.h>
10a406bfdaSPeter Robinson#include <dt-bindings/usb/pd.h>
11171582e0SKever Yang#include "rk3399.dtsi"
12bc911f25SJianqun Xu#include "rk3399-opp.dtsi"
13171582e0SKever Yang
14171582e0SKever Yang/ {
15171582e0SKever Yang	model = "Firefly-RK3399 Board";
16171582e0SKever Yang	compatible = "firefly,firefly-rk3399", "rockchip,rk3399";
17171582e0SKever Yang
185dcbe7e3SHeiko Stuebner	aliases {
195dcbe7e3SHeiko Stuebner		mmc0 = &sdio0;
205dcbe7e3SHeiko Stuebner		mmc1 = &sdmmc;
215dcbe7e3SHeiko Stuebner		mmc2 = &sdhci;
225dcbe7e3SHeiko Stuebner	};
235dcbe7e3SHeiko Stuebner
24689f2d85SHeinrich Schuchardt	chosen {
25689f2d85SHeinrich Schuchardt		stdout-path = "serial2:1500000n8";
26689f2d85SHeinrich Schuchardt	};
27689f2d85SHeinrich Schuchardt
28171582e0SKever Yang	backlight: backlight {
29171582e0SKever Yang		compatible = "pwm-backlight";
30171582e0SKever Yang		enable-gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
31171582e0SKever Yang		pwms = <&pwm0 0 25000 0>;
32171582e0SKever Yang		brightness-levels = <
33171582e0SKever Yang			  0   1   2   3   4   5   6   7
34171582e0SKever Yang			  8   9  10  11  12  13  14  15
35171582e0SKever Yang			 16  17  18  19  20  21  22  23
36171582e0SKever Yang			 24  25  26  27  28  29  30  31
37171582e0SKever Yang			 32  33  34  35  36  37  38  39
38171582e0SKever Yang			 40  41  42  43  44  45  46  47
39171582e0SKever Yang			 48  49  50  51  52  53  54  55
40171582e0SKever Yang			 56  57  58  59  60  61  62  63
41171582e0SKever Yang			 64  65  66  67  68  69  70  71
42171582e0SKever Yang			 72  73  74  75  76  77  78  79
43171582e0SKever Yang			 80  81  82  83  84  85  86  87
44171582e0SKever Yang			 88  89  90  91  92  93  94  95
45171582e0SKever Yang			 96  97  98  99 100 101 102 103
46171582e0SKever Yang			104 105 106 107 108 109 110 111
47171582e0SKever Yang			112 113 114 115 116 117 118 119
48171582e0SKever Yang			120 121 122 123 124 125 126 127
49171582e0SKever Yang			128 129 130 131 132 133 134 135
50171582e0SKever Yang			136 137 138 139 140 141 142 143
51171582e0SKever Yang			144 145 146 147 148 149 150 151
52171582e0SKever Yang			152 153 154 155 156 157 158 159
53171582e0SKever Yang			160 161 162 163 164 165 166 167
54171582e0SKever Yang			168 169 170 171 172 173 174 175
55171582e0SKever Yang			176 177 178 179 180 181 182 183
56171582e0SKever Yang			184 185 186 187 188 189 190 191
57171582e0SKever Yang			192 193 194 195 196 197 198 199
58171582e0SKever Yang			200 201 202 203 204 205 206 207
59171582e0SKever Yang			208 209 210 211 212 213 214 215
60171582e0SKever Yang			216 217 218 219 220 221 222 223
61171582e0SKever Yang			224 225 226 227 228 229 230 231
62171582e0SKever Yang			232 233 234 235 236 237 238 239
63171582e0SKever Yang			240 241 242 243 244 245 246 247
64171582e0SKever Yang			248 249 250 251 252 253 254 255>;
65171582e0SKever Yang		default-brightness-level = <200>;
66171582e0SKever Yang	};
67171582e0SKever Yang
68171582e0SKever Yang	clkin_gmac: external-gmac-clock {
69171582e0SKever Yang		compatible = "fixed-clock";
70171582e0SKever Yang		clock-frequency = <125000000>;
71171582e0SKever Yang		clock-output-names = "clkin_gmac";
72171582e0SKever Yang		#clock-cells = <0>;
73171582e0SKever Yang	};
74171582e0SKever Yang
7512335ebaSHeiko Stuebner	dc_12v: dc-12v {
7612335ebaSHeiko Stuebner		compatible = "regulator-fixed";
7712335ebaSHeiko Stuebner		regulator-name = "dc_12v";
7812335ebaSHeiko Stuebner		regulator-always-on;
7912335ebaSHeiko Stuebner		regulator-boot-on;
8012335ebaSHeiko Stuebner		regulator-min-microvolt = <12000000>;
8112335ebaSHeiko Stuebner		regulator-max-microvolt = <12000000>;
8212335ebaSHeiko Stuebner	};
8312335ebaSHeiko Stuebner
8424e5b85aSShohei Maruyama	gpio-keys {
8524e5b85aSShohei Maruyama		compatible = "gpio-keys";
8624e5b85aSShohei Maruyama		autorepeat;
8724e5b85aSShohei Maruyama		pinctrl-names = "default";
8824e5b85aSShohei Maruyama		pinctrl-0 = <&pwrbtn>;
8924e5b85aSShohei Maruyama
90*517ed0ffSKrzysztof Kozlowski		key-power {
9124e5b85aSShohei Maruyama			debounce-interval = <100>;
9224e5b85aSShohei Maruyama			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
9324e5b85aSShohei Maruyama			label = "GPIO Key Power";
9424e5b85aSShohei Maruyama			linux,code = <KEY_POWER>;
9524e5b85aSShohei Maruyama			wakeup-source;
9624e5b85aSShohei Maruyama		};
9724e5b85aSShohei Maruyama	};
9824e5b85aSShohei Maruyama
994fab8e36SPeter Robinson	ir-receiver {
1004fab8e36SPeter Robinson		compatible = "gpio-ir-receiver";
1014fab8e36SPeter Robinson		gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
1024fab8e36SPeter Robinson		pinctrl-0 = <&ir_int>;
1034fab8e36SPeter Robinson		pinctrl-names = "default";
1044fab8e36SPeter Robinson	};
1054fab8e36SPeter Robinson
1060fbfe10fSShohei Maruyama	leds {
1070fbfe10fSShohei Maruyama		compatible = "gpio-leds";
1080fbfe10fSShohei Maruyama		pinctrl-names = "default";
109e916d85bSJohan Jonker		pinctrl-0 = <&work_led_pin>, <&diy_led_pin>;
1100fbfe10fSShohei Maruyama
111e916d85bSJohan Jonker		work_led: led-0 {
1120fbfe10fSShohei Maruyama			label = "work";
1130fbfe10fSShohei Maruyama			default-state = "on";
1140fbfe10fSShohei Maruyama			gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
1150fbfe10fSShohei Maruyama		};
1160fbfe10fSShohei Maruyama
117e916d85bSJohan Jonker		diy_led: led-1 {
1180fbfe10fSShohei Maruyama			label = "diy";
1190fbfe10fSShohei Maruyama			default-state = "off";
1200fbfe10fSShohei Maruyama			gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
1210fbfe10fSShohei Maruyama		};
1220fbfe10fSShohei Maruyama	};
1230fbfe10fSShohei Maruyama
124171582e0SKever Yang	rt5640-sound {
125171582e0SKever Yang		compatible = "simple-audio-card";
126171582e0SKever Yang		simple-audio-card,name = "rockchip,rt5640-codec";
127171582e0SKever Yang		simple-audio-card,format = "i2s";
128171582e0SKever Yang		simple-audio-card,mclk-fs = <256>;
129171582e0SKever Yang		simple-audio-card,widgets =
130171582e0SKever Yang			"Microphone", "Mic Jack",
131171582e0SKever Yang			"Headphone", "Headphone Jack";
132171582e0SKever Yang		simple-audio-card,routing =
133171582e0SKever Yang			"Mic Jack", "MICBIAS1",
134171582e0SKever Yang			"IN1P", "Mic Jack",
135171582e0SKever Yang			"Headphone Jack", "HPOL",
136171582e0SKever Yang			"Headphone Jack", "HPOR";
137171582e0SKever Yang
138171582e0SKever Yang		simple-audio-card,cpu {
139171582e0SKever Yang			sound-dai = <&i2s1>;
140171582e0SKever Yang		};
141171582e0SKever Yang
142171582e0SKever Yang		simple-audio-card,codec {
143171582e0SKever Yang			sound-dai = <&rt5640>;
144171582e0SKever Yang		};
145171582e0SKever Yang	};
146171582e0SKever Yang
147171582e0SKever Yang	sdio_pwrseq: sdio-pwrseq {
148171582e0SKever Yang		compatible = "mmc-pwrseq-simple";
149171582e0SKever Yang		clocks = <&rk808 1>;
150171582e0SKever Yang		clock-names = "ext_clock";
151171582e0SKever Yang		pinctrl-names = "default";
152171582e0SKever Yang		pinctrl-0 = <&wifi_enable_h>;
153171582e0SKever Yang
154171582e0SKever Yang		/*
155171582e0SKever Yang		 * On the module itself this is one of these (depending
156171582e0SKever Yang		 * on the actual card populated):
157171582e0SKever Yang		 * - SDIO_RESET_L_WL_REG_ON
158171582e0SKever Yang		 * - PDN (power down when low)
159171582e0SKever Yang		 */
160171582e0SKever Yang		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
161171582e0SKever Yang	};
162171582e0SKever Yang
163ba2401abSPeter Robinson	sound-dit {
164ba2401abSPeter Robinson		compatible = "audio-graph-card";
165ba2401abSPeter Robinson		label = "SPDIF";
166ba2401abSPeter Robinson		dais = <&spdif_p0>;
167ba2401abSPeter Robinson	};
168ba2401abSPeter Robinson
169ba2401abSPeter Robinson	spdif-dit {
170ba2401abSPeter Robinson		compatible = "linux,spdif-dit";
171ba2401abSPeter Robinson		#sound-dai-cells = <0>;
172ba2401abSPeter Robinson
173ba2401abSPeter Robinson		port {
174ba2401abSPeter Robinson			dit_p0_0: endpoint {
175ba2401abSPeter Robinson				remote-endpoint = <&spdif_p0_0>;
176ba2401abSPeter Robinson			};
177ba2401abSPeter Robinson		};
178ba2401abSPeter Robinson	};
179ba2401abSPeter Robinson
18012335ebaSHeiko Stuebner	/* switched by pmic_sleep */
18112335ebaSHeiko Stuebner	vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
18212335ebaSHeiko Stuebner		compatible = "regulator-fixed";
18312335ebaSHeiko Stuebner		regulator-name = "vcc1v8_s3";
18412335ebaSHeiko Stuebner		regulator-always-on;
18512335ebaSHeiko Stuebner		regulator-boot-on;
18612335ebaSHeiko Stuebner		regulator-min-microvolt = <1800000>;
18712335ebaSHeiko Stuebner		regulator-max-microvolt = <1800000>;
18812335ebaSHeiko Stuebner		vin-supply = <&vcc_1v8>;
18912335ebaSHeiko Stuebner	};
19012335ebaSHeiko Stuebner
191171582e0SKever Yang	vcc3v3_pcie: vcc3v3-pcie-regulator {
192171582e0SKever Yang		compatible = "regulator-fixed";
193171582e0SKever Yang		enable-active-high;
194171582e0SKever Yang		gpio = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>;
195171582e0SKever Yang		pinctrl-names = "default";
19612335ebaSHeiko Stuebner		pinctrl-0 = <&pcie_pwr_en>;
197171582e0SKever Yang		regulator-name = "vcc3v3_pcie";
198171582e0SKever Yang		regulator-always-on;
199171582e0SKever Yang		regulator-boot-on;
20012335ebaSHeiko Stuebner		vin-supply = <&dc_12v>;
201171582e0SKever Yang	};
202171582e0SKever Yang
203171582e0SKever Yang	vcc3v3_sys: vcc3v3-sys {
204171582e0SKever Yang		compatible = "regulator-fixed";
205171582e0SKever Yang		regulator-name = "vcc3v3_sys";
206171582e0SKever Yang		regulator-always-on;
207171582e0SKever Yang		regulator-boot-on;
208171582e0SKever Yang		regulator-min-microvolt = <3300000>;
209171582e0SKever Yang		regulator-max-microvolt = <3300000>;
21012335ebaSHeiko Stuebner		vin-supply = <&vcc_sys>;
211171582e0SKever Yang	};
212171582e0SKever Yang
21312335ebaSHeiko Stuebner	/* Actually 3 regulators (host0, 1, 2) controlled by the same gpio */
214171582e0SKever Yang	vcc5v0_host: vcc5v0-host-regulator {
215171582e0SKever Yang		compatible = "regulator-fixed";
216171582e0SKever Yang		enable-active-high;
217171582e0SKever Yang		gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
218171582e0SKever Yang		pinctrl-names = "default";
21912335ebaSHeiko Stuebner		pinctrl-0 = <&vcc5v0_host_en>;
220171582e0SKever Yang		regulator-name = "vcc5v0_host";
221171582e0SKever Yang		regulator-always-on;
22212335ebaSHeiko Stuebner		vin-supply = <&vcc_sys>;
223171582e0SKever Yang	};
224171582e0SKever Yang
225a406bfdaSPeter Robinson	vcc5v0_typec: vcc5v0-typec-regulator {
226a406bfdaSPeter Robinson		compatible = "regulator-fixed";
227a406bfdaSPeter Robinson		enable-active-high;
228a406bfdaSPeter Robinson		gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
229a406bfdaSPeter Robinson		pinctrl-names = "default";
230a406bfdaSPeter Robinson		pinctrl-0 = <&vcc5v0_typec_en>;
231a406bfdaSPeter Robinson		regulator-name = "vcc5v0_typec";
232a406bfdaSPeter Robinson		regulator-always-on;
233a406bfdaSPeter Robinson		vin-supply = <&vcc_sys>;
234a406bfdaSPeter Robinson	};
235a406bfdaSPeter Robinson
23612335ebaSHeiko Stuebner	vcc_sys: vcc-sys {
237171582e0SKever Yang		compatible = "regulator-fixed";
23812335ebaSHeiko Stuebner		regulator-name = "vcc_sys";
239171582e0SKever Yang		regulator-always-on;
240171582e0SKever Yang		regulator-boot-on;
241171582e0SKever Yang		regulator-min-microvolt = <5000000>;
242171582e0SKever Yang		regulator-max-microvolt = <5000000>;
24312335ebaSHeiko Stuebner		vin-supply = <&dc_12v>;
244171582e0SKever Yang	};
245171582e0SKever Yang
246171582e0SKever Yang	vdd_log: vdd-log {
247171582e0SKever Yang		compatible = "pwm-regulator";
248171582e0SKever Yang		pwms = <&pwm2 0 25000 1>;
249dc570e8eSHeiko Stuebner		pwm-supply = <&vcc_sys>;
250171582e0SKever Yang		regulator-name = "vdd_log";
251171582e0SKever Yang		regulator-always-on;
252171582e0SKever Yang		regulator-boot-on;
25388c5a235SKever Yang		regulator-min-microvolt = <430000>;
254171582e0SKever Yang		regulator-max-microvolt = <1400000>;
255171582e0SKever Yang	};
256171582e0SKever Yang};
257171582e0SKever Yang
258171582e0SKever Yang&cpu_l0 {
259171582e0SKever Yang	cpu-supply = <&vdd_cpu_l>;
260171582e0SKever Yang};
261171582e0SKever Yang
262171582e0SKever Yang&cpu_l1 {
263171582e0SKever Yang	cpu-supply = <&vdd_cpu_l>;
264171582e0SKever Yang};
265171582e0SKever Yang
266171582e0SKever Yang&cpu_l2 {
267171582e0SKever Yang	cpu-supply = <&vdd_cpu_l>;
268171582e0SKever Yang};
269171582e0SKever Yang
270171582e0SKever Yang&cpu_l3 {
271171582e0SKever Yang	cpu-supply = <&vdd_cpu_l>;
272171582e0SKever Yang};
273171582e0SKever Yang
274171582e0SKever Yang&cpu_b0 {
275171582e0SKever Yang	cpu-supply = <&vdd_cpu_b>;
276171582e0SKever Yang};
277171582e0SKever Yang
278171582e0SKever Yang&cpu_b1 {
279171582e0SKever Yang	cpu-supply = <&vdd_cpu_b>;
280171582e0SKever Yang};
281171582e0SKever Yang
282171582e0SKever Yang&emmc_phy {
283171582e0SKever Yang	status = "okay";
284171582e0SKever Yang};
285171582e0SKever Yang
286171582e0SKever Yang&gmac {
287171582e0SKever Yang	assigned-clocks = <&cru SCLK_RMII_SRC>;
288171582e0SKever Yang	assigned-clock-parents = <&clkin_gmac>;
289171582e0SKever Yang	clock_in_out = "input";
29012335ebaSHeiko Stuebner	phy-supply = <&vcc_lan>;
291171582e0SKever Yang	phy-mode = "rgmii";
292171582e0SKever Yang	pinctrl-names = "default";
293171582e0SKever Yang	pinctrl-0 = <&rgmii_pins>;
294171582e0SKever Yang	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
295171582e0SKever Yang	snps,reset-active-low;
296171582e0SKever Yang	snps,reset-delays-us = <0 10000 50000>;
297171582e0SKever Yang	tx_delay = <0x28>;
298171582e0SKever Yang	rx_delay = <0x11>;
299171582e0SKever Yang	status = "okay";
300171582e0SKever Yang};
301171582e0SKever Yang
3020601fbedSMichael Saunders&gpu {
3030601fbedSMichael Saunders	mali-supply = <&vdd_gpu>;
3040601fbedSMichael Saunders	status = "okay";
3050601fbedSMichael Saunders};
3060601fbedSMichael Saunders
30748f192cfSHeiko Stuebner&hdmi {
30848f192cfSHeiko Stuebner	ddc-i2c-bus = <&i2c3>;
309d8543899SPierre-Hugues Husson	pinctrl-names = "default";
310d8543899SPierre-Hugues Husson	pinctrl-0 = <&hdmi_cec>;
31148f192cfSHeiko Stuebner	status = "okay";
31248f192cfSHeiko Stuebner};
31348f192cfSHeiko Stuebner
314171582e0SKever Yang&i2c0 {
315171582e0SKever Yang	clock-frequency = <400000>;
316171582e0SKever Yang	i2c-scl-rising-time-ns = <168>;
317171582e0SKever Yang	i2c-scl-falling-time-ns = <4>;
318171582e0SKever Yang	status = "okay";
319171582e0SKever Yang
320171582e0SKever Yang	rk808: pmic@1b {
321171582e0SKever Yang		compatible = "rockchip,rk808";
322171582e0SKever Yang		reg = <0x1b>;
323171582e0SKever Yang		interrupt-parent = <&gpio1>;
324171582e0SKever Yang		interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
325171582e0SKever Yang		#clock-cells = <1>;
326171582e0SKever Yang		clock-output-names = "xin32k", "rk808-clkout2";
327171582e0SKever Yang		pinctrl-names = "default";
328171582e0SKever Yang		pinctrl-0 = <&pmic_int_l>;
329171582e0SKever Yang		rockchip,system-power-controller;
330171582e0SKever Yang		wakeup-source;
331171582e0SKever Yang
33212335ebaSHeiko Stuebner		vcc1-supply = <&vcc_sys>;
33312335ebaSHeiko Stuebner		vcc2-supply = <&vcc_sys>;
33412335ebaSHeiko Stuebner		vcc3-supply = <&vcc_sys>;
33512335ebaSHeiko Stuebner		vcc4-supply = <&vcc_sys>;
33612335ebaSHeiko Stuebner		vcc6-supply = <&vcc_sys>;
33712335ebaSHeiko Stuebner		vcc7-supply = <&vcc_sys>;
338171582e0SKever Yang		vcc8-supply = <&vcc3v3_sys>;
33912335ebaSHeiko Stuebner		vcc9-supply = <&vcc_sys>;
34012335ebaSHeiko Stuebner		vcc10-supply = <&vcc_sys>;
34112335ebaSHeiko Stuebner		vcc11-supply = <&vcc_sys>;
342171582e0SKever Yang		vcc12-supply = <&vcc3v3_sys>;
343171582e0SKever Yang		vddio-supply = <&vcc1v8_pmu>;
344171582e0SKever Yang
345171582e0SKever Yang		regulators {
346171582e0SKever Yang			vdd_center: DCDC_REG1 {
347171582e0SKever Yang				regulator-name = "vdd_center";
348171582e0SKever Yang				regulator-always-on;
349171582e0SKever Yang				regulator-boot-on;
350171582e0SKever Yang				regulator-min-microvolt = <750000>;
351171582e0SKever Yang				regulator-max-microvolt = <1350000>;
352171582e0SKever Yang				regulator-ramp-delay = <6001>;
353171582e0SKever Yang				regulator-state-mem {
354171582e0SKever Yang					regulator-off-in-suspend;
355171582e0SKever Yang				};
356171582e0SKever Yang			};
357171582e0SKever Yang
358171582e0SKever Yang			vdd_cpu_l: DCDC_REG2 {
359171582e0SKever Yang				regulator-name = "vdd_cpu_l";
360171582e0SKever Yang				regulator-always-on;
361171582e0SKever Yang				regulator-boot-on;
362171582e0SKever Yang				regulator-min-microvolt = <750000>;
363171582e0SKever Yang				regulator-max-microvolt = <1350000>;
364171582e0SKever Yang				regulator-ramp-delay = <6001>;
365171582e0SKever Yang				regulator-state-mem {
366171582e0SKever Yang					regulator-off-in-suspend;
367171582e0SKever Yang				};
368171582e0SKever Yang			};
369171582e0SKever Yang
370171582e0SKever Yang			vcc_ddr: DCDC_REG3 {
371171582e0SKever Yang				regulator-name = "vcc_ddr";
372171582e0SKever Yang				regulator-always-on;
373171582e0SKever Yang				regulator-boot-on;
374171582e0SKever Yang				regulator-state-mem {
375171582e0SKever Yang					regulator-on-in-suspend;
376171582e0SKever Yang				};
377171582e0SKever Yang			};
378171582e0SKever Yang
379171582e0SKever Yang			vcc_1v8: DCDC_REG4 {
380171582e0SKever Yang				regulator-name = "vcc_1v8";
381171582e0SKever Yang				regulator-always-on;
382171582e0SKever Yang				regulator-boot-on;
383171582e0SKever Yang				regulator-min-microvolt = <1800000>;
384171582e0SKever Yang				regulator-max-microvolt = <1800000>;
385171582e0SKever Yang				regulator-state-mem {
386171582e0SKever Yang					regulator-on-in-suspend;
387171582e0SKever Yang					regulator-suspend-microvolt = <1800000>;
388171582e0SKever Yang				};
389171582e0SKever Yang			};
390171582e0SKever Yang
391171582e0SKever Yang			vcc1v8_dvp: LDO_REG1 {
392171582e0SKever Yang				regulator-name = "vcc1v8_dvp";
393171582e0SKever Yang				regulator-always-on;
394171582e0SKever Yang				regulator-boot-on;
395171582e0SKever Yang				regulator-min-microvolt = <1800000>;
396171582e0SKever Yang				regulator-max-microvolt = <1800000>;
397171582e0SKever Yang				regulator-state-mem {
398171582e0SKever Yang					regulator-off-in-suspend;
399171582e0SKever Yang				};
400171582e0SKever Yang			};
401171582e0SKever Yang
40212335ebaSHeiko Stuebner			vcc2v8_dvp: LDO_REG2 {
40312335ebaSHeiko Stuebner				regulator-name = "vcc2v8_dvp";
404171582e0SKever Yang				regulator-always-on;
405171582e0SKever Yang				regulator-boot-on;
40612335ebaSHeiko Stuebner				regulator-min-microvolt = <2800000>;
40712335ebaSHeiko Stuebner				regulator-max-microvolt = <2800000>;
408171582e0SKever Yang				regulator-state-mem {
409171582e0SKever Yang					regulator-off-in-suspend;
410171582e0SKever Yang				};
411171582e0SKever Yang			};
412171582e0SKever Yang
413171582e0SKever Yang			vcc1v8_pmu: LDO_REG3 {
414171582e0SKever Yang				regulator-name = "vcc1v8_pmu";
415171582e0SKever Yang				regulator-always-on;
416171582e0SKever Yang				regulator-boot-on;
417171582e0SKever Yang				regulator-min-microvolt = <1800000>;
418171582e0SKever Yang				regulator-max-microvolt = <1800000>;
419171582e0SKever Yang				regulator-state-mem {
420171582e0SKever Yang					regulator-on-in-suspend;
421171582e0SKever Yang					regulator-suspend-microvolt = <1800000>;
422171582e0SKever Yang				};
423171582e0SKever Yang			};
424171582e0SKever Yang
42512335ebaSHeiko Stuebner			vcc_sdio: LDO_REG4 {
42612335ebaSHeiko Stuebner				regulator-name = "vcc_sdio";
427171582e0SKever Yang				regulator-always-on;
428171582e0SKever Yang				regulator-boot-on;
429171582e0SKever Yang				regulator-min-microvolt = <1800000>;
430b31ce304SShawn Lin				regulator-max-microvolt = <3000000>;
431171582e0SKever Yang				regulator-state-mem {
432171582e0SKever Yang					regulator-on-in-suspend;
433b31ce304SShawn Lin					regulator-suspend-microvolt = <3000000>;
434171582e0SKever Yang				};
435171582e0SKever Yang			};
436171582e0SKever Yang
437171582e0SKever Yang			vcca3v0_codec: LDO_REG5 {
438171582e0SKever Yang				regulator-name = "vcca3v0_codec";
439171582e0SKever Yang				regulator-always-on;
440171582e0SKever Yang				regulator-boot-on;
441171582e0SKever Yang				regulator-min-microvolt = <3000000>;
442171582e0SKever Yang				regulator-max-microvolt = <3000000>;
443171582e0SKever Yang				regulator-state-mem {
444171582e0SKever Yang					regulator-off-in-suspend;
445171582e0SKever Yang				};
446171582e0SKever Yang			};
447171582e0SKever Yang
448171582e0SKever Yang			vcc_1v5: LDO_REG6 {
449171582e0SKever Yang				regulator-name = "vcc_1v5";
450171582e0SKever Yang				regulator-always-on;
451171582e0SKever Yang				regulator-boot-on;
452171582e0SKever Yang				regulator-min-microvolt = <1500000>;
453171582e0SKever Yang				regulator-max-microvolt = <1500000>;
454171582e0SKever Yang				regulator-state-mem {
455171582e0SKever Yang					regulator-on-in-suspend;
456171582e0SKever Yang					regulator-suspend-microvolt = <1500000>;
457171582e0SKever Yang				};
458171582e0SKever Yang			};
459171582e0SKever Yang
460171582e0SKever Yang			vcca1v8_codec: LDO_REG7 {
461171582e0SKever Yang				regulator-name = "vcca1v8_codec";
462171582e0SKever Yang				regulator-always-on;
463171582e0SKever Yang				regulator-boot-on;
464171582e0SKever Yang				regulator-min-microvolt = <1800000>;
465171582e0SKever Yang				regulator-max-microvolt = <1800000>;
466171582e0SKever Yang				regulator-state-mem {
467171582e0SKever Yang					regulator-off-in-suspend;
468171582e0SKever Yang				};
469171582e0SKever Yang			};
470171582e0SKever Yang
471171582e0SKever Yang			vcc_3v0: LDO_REG8 {
472171582e0SKever Yang				regulator-name = "vcc_3v0";
473171582e0SKever Yang				regulator-always-on;
474171582e0SKever Yang				regulator-boot-on;
475171582e0SKever Yang				regulator-min-microvolt = <3000000>;
476171582e0SKever Yang				regulator-max-microvolt = <3000000>;
477171582e0SKever Yang				regulator-state-mem {
478171582e0SKever Yang					regulator-on-in-suspend;
479171582e0SKever Yang					regulator-suspend-microvolt = <3000000>;
480171582e0SKever Yang				};
481171582e0SKever Yang			};
482171582e0SKever Yang
48312335ebaSHeiko Stuebner			vcc3v3_s3: vcc_lan: SWITCH_REG1 {
484171582e0SKever Yang				regulator-name = "vcc3v3_s3";
485171582e0SKever Yang				regulator-always-on;
486171582e0SKever Yang				regulator-boot-on;
487171582e0SKever Yang				regulator-state-mem {
488171582e0SKever Yang					regulator-off-in-suspend;
489171582e0SKever Yang				};
490171582e0SKever Yang			};
491171582e0SKever Yang
492171582e0SKever Yang			vcc3v3_s0: SWITCH_REG2 {
493171582e0SKever Yang				regulator-name = "vcc3v3_s0";
494171582e0SKever Yang				regulator-always-on;
495171582e0SKever Yang				regulator-boot-on;
496171582e0SKever Yang				regulator-state-mem {
497171582e0SKever Yang					regulator-off-in-suspend;
498171582e0SKever Yang				};
499171582e0SKever Yang			};
500171582e0SKever Yang		};
501171582e0SKever Yang	};
502171582e0SKever Yang
503171582e0SKever Yang	vdd_cpu_b: regulator@40 {
504171582e0SKever Yang		compatible = "silergy,syr827";
505171582e0SKever Yang		reg = <0x40>;
506171582e0SKever Yang		fcs,suspend-voltage-selector = <0>;
507171582e0SKever Yang		regulator-name = "vdd_cpu_b";
508171582e0SKever Yang		regulator-min-microvolt = <712500>;
509171582e0SKever Yang		regulator-max-microvolt = <1500000>;
510171582e0SKever Yang		regulator-ramp-delay = <1000>;
511171582e0SKever Yang		regulator-always-on;
512171582e0SKever Yang		regulator-boot-on;
51312335ebaSHeiko Stuebner		vin-supply = <&vcc_sys>;
514171582e0SKever Yang
515171582e0SKever Yang		regulator-state-mem {
516171582e0SKever Yang			regulator-off-in-suspend;
517171582e0SKever Yang		};
518171582e0SKever Yang	};
519171582e0SKever Yang
520171582e0SKever Yang	vdd_gpu: regulator@41 {
521171582e0SKever Yang		compatible = "silergy,syr828";
522171582e0SKever Yang		reg = <0x41>;
523171582e0SKever Yang		fcs,suspend-voltage-selector = <1>;
524171582e0SKever Yang		regulator-name = "vdd_gpu";
525171582e0SKever Yang		regulator-min-microvolt = <712500>;
526171582e0SKever Yang		regulator-max-microvolt = <1500000>;
527171582e0SKever Yang		regulator-ramp-delay = <1000>;
528171582e0SKever Yang		regulator-always-on;
529171582e0SKever Yang		regulator-boot-on;
53012335ebaSHeiko Stuebner		vin-supply = <&vcc_sys>;
531171582e0SKever Yang
532171582e0SKever Yang		regulator-state-mem {
533171582e0SKever Yang			regulator-off-in-suspend;
534171582e0SKever Yang		};
535171582e0SKever Yang	};
536171582e0SKever Yang};
537171582e0SKever Yang
538171582e0SKever Yang&i2c1 {
539171582e0SKever Yang	i2c-scl-rising-time-ns = <300>;
540171582e0SKever Yang	i2c-scl-falling-time-ns = <15>;
541171582e0SKever Yang	status = "okay";
542171582e0SKever Yang
543171582e0SKever Yang	rt5640: rt5640@1c {
544171582e0SKever Yang		compatible = "realtek,rt5640";
545171582e0SKever Yang		reg = <0x1c>;
546171582e0SKever Yang		clocks = <&cru SCLK_I2S_8CH_OUT>;
547171582e0SKever Yang		clock-names = "mclk";
548171582e0SKever Yang		realtek,in1-differential;
549171582e0SKever Yang		#sound-dai-cells = <0>;
550171582e0SKever Yang		pinctrl-names = "default";
551171582e0SKever Yang		pinctrl-0 = <&rt5640_hpcon>;
552171582e0SKever Yang	};
553171582e0SKever Yang};
554171582e0SKever Yang
555171582e0SKever Yang&i2c3 {
556171582e0SKever Yang	i2c-scl-rising-time-ns = <450>;
557171582e0SKever Yang	i2c-scl-falling-time-ns = <15>;
558171582e0SKever Yang	status = "okay";
559171582e0SKever Yang};
560171582e0SKever Yang
561171582e0SKever Yang&i2c4 {
562171582e0SKever Yang	i2c-scl-rising-time-ns = <600>;
563171582e0SKever Yang	i2c-scl-falling-time-ns = <20>;
564171582e0SKever Yang	status = "okay";
565171582e0SKever Yang
566a406bfdaSPeter Robinson	fusb0: typec-portc@22 {
567a406bfdaSPeter Robinson		compatible = "fcs,fusb302";
568a406bfdaSPeter Robinson		reg = <0x22>;
569a406bfdaSPeter Robinson		interrupt-parent = <&gpio1>;
570a406bfdaSPeter Robinson		interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
571a406bfdaSPeter Robinson		pinctrl-names = "default";
572a406bfdaSPeter Robinson		pinctrl-0 = <&fusb0_int>;
573a406bfdaSPeter Robinson		vbus-supply = <&vcc5v0_typec>;
574a406bfdaSPeter Robinson		status = "okay";
575a406bfdaSPeter Robinson
576a406bfdaSPeter Robinson		connector {
577a406bfdaSPeter Robinson			compatible = "usb-c-connector";
578a406bfdaSPeter Robinson			data-role = "host";
579a406bfdaSPeter Robinson			label = "USB-C";
580a406bfdaSPeter Robinson			op-sink-microwatt = <1000000>;
581a406bfdaSPeter Robinson			power-role = "dual";
582a406bfdaSPeter Robinson			sink-pdos =
583a406bfdaSPeter Robinson				<PDO_FIXED(5000, 2500, PDO_FIXED_USB_COMM)>;
584a406bfdaSPeter Robinson			source-pdos =
585a406bfdaSPeter Robinson				<PDO_FIXED(5000, 1400, PDO_FIXED_USB_COMM)>;
586a406bfdaSPeter Robinson			try-power-role = "sink";
587a406bfdaSPeter Robinson
588a406bfdaSPeter Robinson			ports {
589a406bfdaSPeter Robinson				#address-cells = <1>;
590a406bfdaSPeter Robinson				#size-cells = <0>;
591a406bfdaSPeter Robinson
592a406bfdaSPeter Robinson				port@0 {
593a406bfdaSPeter Robinson					reg = <0>;
594a406bfdaSPeter Robinson
595a406bfdaSPeter Robinson					usbc_hs: endpoint {
596a406bfdaSPeter Robinson						remote-endpoint =
597a406bfdaSPeter Robinson							<&u2phy0_typec_hs>;
598a406bfdaSPeter Robinson					};
599a406bfdaSPeter Robinson				};
600a406bfdaSPeter Robinson
601a406bfdaSPeter Robinson				port@1 {
602a406bfdaSPeter Robinson					reg = <1>;
603a406bfdaSPeter Robinson
604a406bfdaSPeter Robinson					usbc_ss: endpoint {
605a406bfdaSPeter Robinson						remote-endpoint =
606a406bfdaSPeter Robinson							<&tcphy0_typec_ss>;
607a406bfdaSPeter Robinson					};
608a406bfdaSPeter Robinson				};
609a406bfdaSPeter Robinson			};
610a406bfdaSPeter Robinson		};
611a406bfdaSPeter Robinson	};
612a406bfdaSPeter Robinson
613171582e0SKever Yang	accelerometer@68 {
614171582e0SKever Yang		compatible = "invensense,mpu6500";
615171582e0SKever Yang		reg = <0x68>;
616171582e0SKever Yang		interrupt-parent = <&gpio1>;
617171582e0SKever Yang		interrupts = <RK_PC6 IRQ_TYPE_EDGE_RISING>;
618171582e0SKever Yang	};
619171582e0SKever Yang};
620171582e0SKever Yang
621171582e0SKever Yang&i2s0 {
622171582e0SKever Yang	rockchip,playback-channels = <8>;
623171582e0SKever Yang	rockchip,capture-channels = <8>;
624171582e0SKever Yang	status = "okay";
625171582e0SKever Yang};
626171582e0SKever Yang
627171582e0SKever Yang&i2s1 {
628171582e0SKever Yang	rockchip,playback-channels = <2>;
629171582e0SKever Yang	rockchip,capture-channels = <2>;
630171582e0SKever Yang	status = "okay";
631171582e0SKever Yang};
632171582e0SKever Yang
633171582e0SKever Yang&i2s2 {
634171582e0SKever Yang	status = "okay";
635171582e0SKever Yang};
636171582e0SKever Yang
637171582e0SKever Yang&io_domains {
638171582e0SKever Yang	status = "okay";
639171582e0SKever Yang
640171582e0SKever Yang	bt656-supply = <&vcc1v8_dvp>;
641171582e0SKever Yang	audio-supply = <&vcca1v8_codec>;
64212335ebaSHeiko Stuebner	sdmmc-supply = <&vcc_sdio>;
643171582e0SKever Yang	gpio1830-supply = <&vcc_3v0>;
644171582e0SKever Yang};
645171582e0SKever Yang
646171582e0SKever Yang&pcie_phy {
647171582e0SKever Yang	status = "okay";
648171582e0SKever Yang};
649171582e0SKever Yang
650171582e0SKever Yang&pcie0 {
651171582e0SKever Yang	ep-gpios = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>;
652171582e0SKever Yang	num-lanes = <4>;
653171582e0SKever Yang	pinctrl-names = "default";
65475ea96deSShawn Lin	pinctrl-0 = <&pcie_clkreqn_cpm>;
655171582e0SKever Yang	status = "okay";
656171582e0SKever Yang};
657171582e0SKever Yang
658171582e0SKever Yang&pmu_io_domains {
659171582e0SKever Yang	pmu1830-supply = <&vcc_3v0>;
660171582e0SKever Yang	status = "okay";
661171582e0SKever Yang};
662171582e0SKever Yang
663171582e0SKever Yang&pinctrl {
664171582e0SKever Yang	buttons {
665171582e0SKever Yang		pwrbtn: pwrbtn {
666171582e0SKever Yang			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
667171582e0SKever Yang		};
668171582e0SKever Yang	};
669171582e0SKever Yang
670a406bfdaSPeter Robinson	fusb302x {
671a406bfdaSPeter Robinson		fusb0_int: fusb0-int {
672a406bfdaSPeter Robinson			rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
673a406bfdaSPeter Robinson		};
674a406bfdaSPeter Robinson	};
675a406bfdaSPeter Robinson
6764fab8e36SPeter Robinson	ir {
6774fab8e36SPeter Robinson		ir_int: ir-int {
6784fab8e36SPeter Robinson			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
6794fab8e36SPeter Robinson		};
6804fab8e36SPeter Robinson	};
6814fab8e36SPeter Robinson
682171582e0SKever Yang	lcd-panel {
683171582e0SKever Yang		lcd_panel_reset: lcd-panel-reset {
684171582e0SKever Yang			rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
685171582e0SKever Yang		};
686171582e0SKever Yang	};
687171582e0SKever Yang
6885768c5ffSPeter Robinson	leds {
6895768c5ffSPeter Robinson		work_led_pin: work-led-pin {
6905768c5ffSPeter Robinson			rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
6915768c5ffSPeter Robinson		};
6925768c5ffSPeter Robinson
6935768c5ffSPeter Robinson		diy_led_pin: diy-led-pin {
6945768c5ffSPeter Robinson			rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
6955768c5ffSPeter Robinson		};
6965768c5ffSPeter Robinson	};
6975768c5ffSPeter Robinson
698171582e0SKever Yang	pcie {
69912335ebaSHeiko Stuebner		pcie_pwr_en: pcie-pwr-en {
700171582e0SKever Yang			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
701171582e0SKever Yang		};
702171582e0SKever Yang
703171582e0SKever Yang		pcie_3g_drv: pcie-3g-drv {
704171582e0SKever Yang			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
705171582e0SKever Yang		};
706171582e0SKever Yang	};
707171582e0SKever Yang
708171582e0SKever Yang	pmic {
7095768c5ffSPeter Robinson		pmic_int_l: pmic-int-l {
7105768c5ffSPeter Robinson			rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
7115768c5ffSPeter Robinson		};
7125768c5ffSPeter Robinson
7132bc65fefSJohan Jonker		vsel1_pin: vsel1-pin {
714171582e0SKever Yang			rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
715171582e0SKever Yang		};
716171582e0SKever Yang
7172bc65fefSJohan Jonker		vsel2_pin: vsel2-pin {
718171582e0SKever Yang			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
719171582e0SKever Yang		};
720171582e0SKever Yang	};
721171582e0SKever Yang
722171582e0SKever Yang	rt5640 {
723171582e0SKever Yang		rt5640_hpcon: rt5640-hpcon {
724171582e0SKever Yang			rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
725171582e0SKever Yang		};
726171582e0SKever Yang	};
727171582e0SKever Yang
7285768c5ffSPeter Robinson	sdio-pwrseq {
7295768c5ffSPeter Robinson		wifi_enable_h: wifi-enable-h {
7305768c5ffSPeter Robinson			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
731171582e0SKever Yang		};
732171582e0SKever Yang	};
733171582e0SKever Yang
734a406bfdaSPeter Robinson	usb-typec {
735a406bfdaSPeter Robinson		vcc5v0_typec_en: vcc5v0_typec_en {
736a406bfdaSPeter Robinson			rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
737a406bfdaSPeter Robinson		};
738a406bfdaSPeter Robinson	};
739a406bfdaSPeter Robinson
740171582e0SKever Yang	usb2 {
74112335ebaSHeiko Stuebner		vcc5v0_host_en: vcc5v0-host-en {
742171582e0SKever Yang			rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
743171582e0SKever Yang		};
744171582e0SKever Yang	};
7450fbfe10fSShohei Maruyama
746a5002c41SShohei Maruyama	wifi {
747a5002c41SShohei Maruyama		wifi_host_wake_l: wifi-host-wake-l {
748a5002c41SShohei Maruyama			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
749a5002c41SShohei Maruyama		};
750a5002c41SShohei Maruyama	};
751171582e0SKever Yang};
752171582e0SKever Yang
753171582e0SKever Yang&pwm0 {
754171582e0SKever Yang	status = "okay";
755171582e0SKever Yang};
756171582e0SKever Yang
757171582e0SKever Yang&pwm2 {
758171582e0SKever Yang	status = "okay";
759171582e0SKever Yang};
760171582e0SKever Yang
761171582e0SKever Yang&saradc {
76212335ebaSHeiko Stuebner	vref-supply = <&vcca1v8_s3>;
763171582e0SKever Yang	status = "okay";
764171582e0SKever Yang};
765171582e0SKever Yang
766a5002c41SShohei Maruyama&sdio0 {
767a5002c41SShohei Maruyama	/* WiFi & BT combo module Ampak AP6356S */
768a5002c41SShohei Maruyama	bus-width = <4>;
769a5002c41SShohei Maruyama	cap-sdio-irq;
770a5002c41SShohei Maruyama	cap-sd-highspeed;
771a5002c41SShohei Maruyama	keep-power-in-suspend;
772a5002c41SShohei Maruyama	mmc-pwrseq = <&sdio_pwrseq>;
773a5002c41SShohei Maruyama	non-removable;
774a5002c41SShohei Maruyama	pinctrl-names = "default";
775a5002c41SShohei Maruyama	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
776a5002c41SShohei Maruyama	sd-uhs-sdr104;
777a5002c41SShohei Maruyama
778a5002c41SShohei Maruyama	/* Power supply */
77937cbd3c5SRob Herring	vqmmc-supply = <&vcc1v8_s3>;	/* IO line */
78037cbd3c5SRob Herring	vmmc-supply = <&vcc_sdio>;	/* card's power */
781a5002c41SShohei Maruyama
78296ff264bSJohan Jonker	#address-cells = <1>;
78396ff264bSJohan Jonker	#size-cells = <0>;
784a5002c41SShohei Maruyama	status = "okay";
785a5002c41SShohei Maruyama
786a5002c41SShohei Maruyama	brcmf: wifi@1 {
78796ff264bSJohan Jonker		reg = <1>;
788a5002c41SShohei Maruyama		compatible = "brcm,bcm4329-fmac";
789a5002c41SShohei Maruyama		interrupt-parent = <&gpio0>;
790c043dee9SKrzysztof Kozlowski		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
791a5002c41SShohei Maruyama		interrupt-names = "host-wake";
792a5002c41SShohei Maruyama		brcm,drive-strength = <5>;
793a5002c41SShohei Maruyama		pinctrl-names = "default";
794a5002c41SShohei Maruyama		pinctrl-0 = <&wifi_host_wake_l>;
795a5002c41SShohei Maruyama	};
796a5002c41SShohei Maruyama};
797a5002c41SShohei Maruyama
798687ef7f2SShawn Lin&sdmmc {
799687ef7f2SShawn Lin	bus-width = <4>;
800687ef7f2SShawn Lin	cap-mmc-highspeed;
801687ef7f2SShawn Lin	cap-sd-highspeed;
802687ef7f2SShawn Lin	cd-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
803687ef7f2SShawn Lin	disable-wp;
804687ef7f2SShawn Lin	max-frequency = <150000000>;
805687ef7f2SShawn Lin	pinctrl-names = "default";
806687ef7f2SShawn Lin	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
807687ef7f2SShawn Lin	status = "okay";
808687ef7f2SShawn Lin};
809687ef7f2SShawn Lin
810171582e0SKever Yang&sdhci {
811171582e0SKever Yang	bus-width = <8>;
812171582e0SKever Yang	mmc-hs400-1_8v;
813171582e0SKever Yang	mmc-hs400-enhanced-strobe;
814171582e0SKever Yang	non-removable;
815171582e0SKever Yang	status = "okay";
816171582e0SKever Yang};
817171582e0SKever Yang
818ba2401abSPeter Robinson&spdif {
819ba2401abSPeter Robinson	pinctrl-0 = <&spdif_bus_1>;
820ba2401abSPeter Robinson	status = "okay";
821ba2401abSPeter Robinson
822ba2401abSPeter Robinson	spdif_p0: port {
823ba2401abSPeter Robinson		spdif_p0_0: endpoint {
824ba2401abSPeter Robinson			remote-endpoint = <&dit_p0_0>;
825ba2401abSPeter Robinson		};
826ba2401abSPeter Robinson	};
827ba2401abSPeter Robinson};
828ba2401abSPeter Robinson
8291438c1d2SEnric Balletbo i Serra&tcphy0 {
8301438c1d2SEnric Balletbo i Serra	status = "okay";
8311438c1d2SEnric Balletbo i Serra};
8321438c1d2SEnric Balletbo i Serra
833a406bfdaSPeter Robinson&tcphy0_usb3 {
834a406bfdaSPeter Robinson	port {
835a406bfdaSPeter Robinson		tcphy0_typec_ss: endpoint {
836a406bfdaSPeter Robinson			remote-endpoint = <&usbc_ss>;
837a406bfdaSPeter Robinson		};
838a406bfdaSPeter Robinson	};
839a406bfdaSPeter Robinson};
840a406bfdaSPeter Robinson
8411438c1d2SEnric Balletbo i Serra&tcphy1 {
8421438c1d2SEnric Balletbo i Serra	status = "okay";
8431438c1d2SEnric Balletbo i Serra};
8441438c1d2SEnric Balletbo i Serra
845171582e0SKever Yang&tsadc {
846171582e0SKever Yang	/* tshut mode 0:CRU 1:GPIO */
847171582e0SKever Yang	rockchip,hw-tshut-mode = <1>;
848171582e0SKever Yang	/* tshut polarity 0:LOW 1:HIGH */
849171582e0SKever Yang	rockchip,hw-tshut-polarity = <1>;
850171582e0SKever Yang	status = "okay";
851171582e0SKever Yang};
852171582e0SKever Yang
853171582e0SKever Yang&u2phy0 {
854171582e0SKever Yang	status = "okay";
855171582e0SKever Yang
856171582e0SKever Yang	u2phy0_otg: otg-port {
857171582e0SKever Yang		status = "okay";
858171582e0SKever Yang	};
859171582e0SKever Yang
860171582e0SKever Yang	u2phy0_host: host-port {
861171582e0SKever Yang		phy-supply = <&vcc5v0_host>;
862171582e0SKever Yang		status = "okay";
863171582e0SKever Yang	};
864a406bfdaSPeter Robinson
865a406bfdaSPeter Robinson	port {
866a406bfdaSPeter Robinson		u2phy0_typec_hs: endpoint {
867a406bfdaSPeter Robinson			remote-endpoint = <&usbc_hs>;
868a406bfdaSPeter Robinson		};
869a406bfdaSPeter Robinson	};
870171582e0SKever Yang};
871171582e0SKever Yang
872171582e0SKever Yang&u2phy1 {
873171582e0SKever Yang	status = "okay";
874171582e0SKever Yang
875171582e0SKever Yang	u2phy1_otg: otg-port {
876171582e0SKever Yang		status = "okay";
877171582e0SKever Yang	};
878171582e0SKever Yang
879171582e0SKever Yang	u2phy1_host: host-port {
880171582e0SKever Yang		phy-supply = <&vcc5v0_host>;
881171582e0SKever Yang		status = "okay";
882171582e0SKever Yang	};
883171582e0SKever Yang};
884171582e0SKever Yang
885171582e0SKever Yang&uart0 {
886171582e0SKever Yang	pinctrl-names = "default";
887171582e0SKever Yang	pinctrl-0 = <&uart0_xfer &uart0_cts>;
888171582e0SKever Yang	status = "okay";
889171582e0SKever Yang};
890171582e0SKever Yang
891171582e0SKever Yang&uart2 {
892171582e0SKever Yang	status = "okay";
893171582e0SKever Yang};
894171582e0SKever Yang
895171582e0SKever Yang&usb_host0_ehci {
896171582e0SKever Yang	status = "okay";
897171582e0SKever Yang};
898171582e0SKever Yang
899171582e0SKever Yang&usb_host0_ohci {
900171582e0SKever Yang	status = "okay";
901171582e0SKever Yang};
902171582e0SKever Yang
903171582e0SKever Yang&usb_host1_ehci {
904171582e0SKever Yang	status = "okay";
905171582e0SKever Yang};
906171582e0SKever Yang
907171582e0SKever Yang&usb_host1_ohci {
908171582e0SKever Yang	status = "okay";
909171582e0SKever Yang};
9107152ea7dSHeiko Stuebner
9117152ea7dSHeiko Stuebner&usbdrd3_0 {
9127152ea7dSHeiko Stuebner	status = "okay";
9137152ea7dSHeiko Stuebner};
9147152ea7dSHeiko Stuebner
9157152ea7dSHeiko Stuebner&usbdrd_dwc3_0 {
9167152ea7dSHeiko Stuebner	status = "okay";
9177152ea7dSHeiko Stuebner	dr_mode = "otg";
9187152ea7dSHeiko Stuebner};
9197152ea7dSHeiko Stuebner
9207152ea7dSHeiko Stuebner&usbdrd3_1 {
9217152ea7dSHeiko Stuebner	status = "okay";
9227152ea7dSHeiko Stuebner};
9237152ea7dSHeiko Stuebner
9247152ea7dSHeiko Stuebner&usbdrd_dwc3_1 {
9257152ea7dSHeiko Stuebner	status = "okay";
9267152ea7dSHeiko Stuebner	dr_mode = "host";
9277152ea7dSHeiko Stuebner};
92848f192cfSHeiko Stuebner
92948f192cfSHeiko Stuebner&vopb {
93048f192cfSHeiko Stuebner	status = "okay";
93148f192cfSHeiko Stuebner};
93248f192cfSHeiko Stuebner
93348f192cfSHeiko Stuebner&vopb_mmu {
93448f192cfSHeiko Stuebner	status = "okay";
93548f192cfSHeiko Stuebner};
93648f192cfSHeiko Stuebner
93748f192cfSHeiko Stuebner&vopl {
93848f192cfSHeiko Stuebner	status = "okay";
93948f192cfSHeiko Stuebner};
94048f192cfSHeiko Stuebner
94148f192cfSHeiko Stuebner&vopl_mmu {
94248f192cfSHeiko Stuebner	status = "okay";
94348f192cfSHeiko Stuebner};
944