1e7a09590STomeu Vizoso// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2e7a09590STomeu Vizoso/*
3e7a09590STomeu Vizoso * RK3399-based FriendlyElec boards device tree source
4e7a09590STomeu Vizoso *
5e7a09590STomeu Vizoso * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd
6e7a09590STomeu Vizoso *
7e7a09590STomeu Vizoso * Copyright (c) 2018 FriendlyElec Computer Tech. Co., Ltd.
8e7a09590STomeu Vizoso * (http://www.friendlyarm.com)
9e7a09590STomeu Vizoso *
10e7a09590STomeu Vizoso * Copyright (c) 2018 Collabora Ltd.
11e7a09590STomeu Vizoso * Copyright (c) 2019 Arm Ltd.
12e7a09590STomeu Vizoso */
13e7a09590STomeu Vizoso
14e7a09590STomeu Vizoso/dts-v1/;
15e7a09590STomeu Vizoso#include <dt-bindings/input/linux-event-codes.h>
16e7a09590STomeu Vizoso#include "rk3399.dtsi"
17e7a09590STomeu Vizoso#include "rk3399-opp.dtsi"
18e7a09590STomeu Vizoso
19e7a09590STomeu Vizoso/ {
20e7a09590STomeu Vizoso	chosen {
21e7a09590STomeu Vizoso		stdout-path = "serial2:1500000n8";
22e7a09590STomeu Vizoso	};
23e7a09590STomeu Vizoso
24e7a09590STomeu Vizoso	clkin_gmac: external-gmac-clock {
25e7a09590STomeu Vizoso		compatible = "fixed-clock";
26e7a09590STomeu Vizoso		clock-frequency = <125000000>;
27e7a09590STomeu Vizoso		clock-output-names = "clkin_gmac";
28e7a09590STomeu Vizoso		#clock-cells = <0>;
29e7a09590STomeu Vizoso	};
30e7a09590STomeu Vizoso
31e7a09590STomeu Vizoso	vcc3v3_sys: vcc3v3-sys {
32e7a09590STomeu Vizoso		compatible = "regulator-fixed";
33e7a09590STomeu Vizoso		regulator-always-on;
34e7a09590STomeu Vizoso		regulator-boot-on;
35e7a09590STomeu Vizoso		regulator-min-microvolt = <3300000>;
36e7a09590STomeu Vizoso		regulator-max-microvolt = <3300000>;
37e7a09590STomeu Vizoso		regulator-name = "vcc3v3_sys";
38e7a09590STomeu Vizoso	};
39e7a09590STomeu Vizoso
40e7a09590STomeu Vizoso	vcc5v0_sys: vcc5v0-sys {
41e7a09590STomeu Vizoso		compatible = "regulator-fixed";
42e7a09590STomeu Vizoso		regulator-always-on;
43e7a09590STomeu Vizoso		regulator-boot-on;
44e7a09590STomeu Vizoso		regulator-min-microvolt = <5000000>;
45e7a09590STomeu Vizoso		regulator-max-microvolt = <5000000>;
46e7a09590STomeu Vizoso		regulator-name = "vcc5v0_sys";
47e7a09590STomeu Vizoso		vin-supply = <&vdd_5v>;
48e7a09590STomeu Vizoso	};
49e7a09590STomeu Vizoso
50e7a09590STomeu Vizoso	/* switched by pmic_sleep */
51e7a09590STomeu Vizoso	vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
52e7a09590STomeu Vizoso		compatible = "regulator-fixed";
53e7a09590STomeu Vizoso		regulator-always-on;
54e7a09590STomeu Vizoso		regulator-boot-on;
55e7a09590STomeu Vizoso		regulator-min-microvolt = <1800000>;
56e7a09590STomeu Vizoso		regulator-max-microvolt = <1800000>;
57e7a09590STomeu Vizoso		regulator-name = "vcc1v8_s3";
58e7a09590STomeu Vizoso		vin-supply = <&vcc_1v8>;
59e7a09590STomeu Vizoso	};
60e7a09590STomeu Vizoso
61e7a09590STomeu Vizoso	vcc3v0_sd: vcc3v0-sd {
62e7a09590STomeu Vizoso		compatible = "regulator-fixed";
63e7a09590STomeu Vizoso		enable-active-high;
64e7a09590STomeu Vizoso		gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
65e7a09590STomeu Vizoso		pinctrl-names = "default";
66e7a09590STomeu Vizoso		pinctrl-0 = <&sdmmc0_pwr_h>;
67e7a09590STomeu Vizoso		regulator-always-on;
68e7a09590STomeu Vizoso		regulator-min-microvolt = <3000000>;
69e7a09590STomeu Vizoso		regulator-max-microvolt = <3000000>;
70e7a09590STomeu Vizoso		regulator-name = "vcc3v0_sd";
71e7a09590STomeu Vizoso		vin-supply = <&vcc3v3_sys>;
72e7a09590STomeu Vizoso	};
73e7a09590STomeu Vizoso
74e7a09590STomeu Vizoso	vbus_typec: vbus-typec {
75e7a09590STomeu Vizoso		compatible = "regulator-fixed";
76e7a09590STomeu Vizoso		regulator-min-microvolt = <5000000>;
77e7a09590STomeu Vizoso		regulator-max-microvolt = <5000000>;
78e7a09590STomeu Vizoso		regulator-name = "vbus_typec";
79e7a09590STomeu Vizoso	};
80e7a09590STomeu Vizoso
81e7a09590STomeu Vizoso	gpio-keys {
82e7a09590STomeu Vizoso		compatible = "gpio-keys";
83e7a09590STomeu Vizoso		autorepeat;
84e7a09590STomeu Vizoso		pinctrl-names = "default";
85e7a09590STomeu Vizoso		pinctrl-0 = <&power_key>;
86e7a09590STomeu Vizoso
87e7a09590STomeu Vizoso		power {
88e7a09590STomeu Vizoso			debounce-interval = <100>;
89e7a09590STomeu Vizoso			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
90e7a09590STomeu Vizoso			label = "GPIO Key Power";
91e7a09590STomeu Vizoso			linux,code = <KEY_POWER>;
92e7a09590STomeu Vizoso			wakeup-source;
93e7a09590STomeu Vizoso		};
94e7a09590STomeu Vizoso	};
95e7a09590STomeu Vizoso
96e7a09590STomeu Vizoso	leds: gpio-leds {
97e7a09590STomeu Vizoso		compatible = "gpio-leds";
98e7a09590STomeu Vizoso		pinctrl-names = "default";
99e7a09590STomeu Vizoso		pinctrl-0 = <&leds_gpio>;
100e7a09590STomeu Vizoso
101e7a09590STomeu Vizoso		status {
102e7a09590STomeu Vizoso			gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
103e7a09590STomeu Vizoso			label = "status_led";
104e7a09590STomeu Vizoso			linux,default-trigger = "heartbeat";
105e7a09590STomeu Vizoso		};
106e7a09590STomeu Vizoso	};
107e7a09590STomeu Vizoso
108e7a09590STomeu Vizoso	sdio_pwrseq: sdio-pwrseq {
109e7a09590STomeu Vizoso		compatible = "mmc-pwrseq-simple";
110e7a09590STomeu Vizoso		clocks = <&rk808 1>;
111e7a09590STomeu Vizoso		clock-names = "ext_clock";
112e7a09590STomeu Vizoso		pinctrl-names = "default";
113e7a09590STomeu Vizoso		pinctrl-0 = <&wifi_reg_on_h>;
114e7a09590STomeu Vizoso		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
115e7a09590STomeu Vizoso	};
116e7a09590STomeu Vizoso};
117e7a09590STomeu Vizoso
118e7a09590STomeu Vizoso&cpu_b0 {
119e7a09590STomeu Vizoso	cpu-supply = <&vdd_cpu_b>;
120e7a09590STomeu Vizoso};
121e7a09590STomeu Vizoso
122e7a09590STomeu Vizoso&cpu_b1 {
123e7a09590STomeu Vizoso	cpu-supply = <&vdd_cpu_b>;
124e7a09590STomeu Vizoso};
125e7a09590STomeu Vizoso
126e7a09590STomeu Vizoso&cpu_l0 {
127e7a09590STomeu Vizoso	cpu-supply = <&vdd_cpu_l>;
128e7a09590STomeu Vizoso};
129e7a09590STomeu Vizoso
130e7a09590STomeu Vizoso&cpu_l1 {
131e7a09590STomeu Vizoso	cpu-supply = <&vdd_cpu_l>;
132e7a09590STomeu Vizoso};
133e7a09590STomeu Vizoso
134e7a09590STomeu Vizoso&cpu_l2 {
135e7a09590STomeu Vizoso	cpu-supply = <&vdd_cpu_l>;
136e7a09590STomeu Vizoso};
137e7a09590STomeu Vizoso
138e7a09590STomeu Vizoso&cpu_l3 {
139e7a09590STomeu Vizoso	cpu-supply = <&vdd_cpu_l>;
140e7a09590STomeu Vizoso};
141e7a09590STomeu Vizoso
142e7a09590STomeu Vizoso&emmc_phy {
143e7a09590STomeu Vizoso	status = "okay";
144e7a09590STomeu Vizoso};
145e7a09590STomeu Vizoso
146e7a09590STomeu Vizoso&gmac {
147e7a09590STomeu Vizoso	assigned-clock-parents = <&clkin_gmac>;
148e7a09590STomeu Vizoso	assigned-clocks = <&cru SCLK_RMII_SRC>;
149e7a09590STomeu Vizoso	clock_in_out = "input";
150e7a09590STomeu Vizoso	pinctrl-names = "default";
151e7a09590STomeu Vizoso	pinctrl-0 = <&rgmii_pins>;
152e7a09590STomeu Vizoso	phy-mode = "rgmii";
153e7a09590STomeu Vizoso	phy-supply = <&vcc3v3_s3>;
154e7a09590STomeu Vizoso	snps,reset-active-low;
155e7a09590STomeu Vizoso	snps,reset-delays-us = <0 10000 50000>;
156e7a09590STomeu Vizoso	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
157e7a09590STomeu Vizoso	tx_delay = <0x28>;
158e7a09590STomeu Vizoso	rx_delay = <0x11>;
159e7a09590STomeu Vizoso	status = "okay";
160e7a09590STomeu Vizoso};
161e7a09590STomeu Vizoso
162e7a09590STomeu Vizoso&gpu {
163e7a09590STomeu Vizoso	mali-supply = <&vdd_gpu>;
164e7a09590STomeu Vizoso	status = "okay";
165e7a09590STomeu Vizoso};
166e7a09590STomeu Vizoso
167e7a09590STomeu Vizoso&hdmi {
168e7a09590STomeu Vizoso	ddc-i2c-bus = <&i2c7>;
169e7a09590STomeu Vizoso	pinctrl-names = "default";
170e7a09590STomeu Vizoso	pinctrl-0 = <&hdmi_cec>;
171e7a09590STomeu Vizoso	status = "okay";
172e7a09590STomeu Vizoso};
173e7a09590STomeu Vizoso
174e7a09590STomeu Vizoso&i2c0 {
175e7a09590STomeu Vizoso	clock-frequency = <400000>;
176e7a09590STomeu Vizoso	i2c-scl-rising-time-ns = <160>;
177e7a09590STomeu Vizoso	i2c-scl-falling-time-ns = <30>;
178e7a09590STomeu Vizoso	status = "okay";
179e7a09590STomeu Vizoso
180e7a09590STomeu Vizoso	vdd_cpu_b: regulator@40 {
181e7a09590STomeu Vizoso		compatible = "silergy,syr827";
182e7a09590STomeu Vizoso		reg = <0x40>;
183e7a09590STomeu Vizoso		fcs,suspend-voltage-selector = <1>;
184e7a09590STomeu Vizoso		pinctrl-names = "default";
185e7a09590STomeu Vizoso		pinctrl-0 = <&cpu_b_sleep>;
186e7a09590STomeu Vizoso		regulator-always-on;
187e7a09590STomeu Vizoso		regulator-boot-on;
188e7a09590STomeu Vizoso		regulator-min-microvolt = <712500>;
189e7a09590STomeu Vizoso		regulator-max-microvolt = <1500000>;
190e7a09590STomeu Vizoso		regulator-name = "vdd_cpu_b";
191e7a09590STomeu Vizoso		regulator-ramp-delay = <1000>;
192e7a09590STomeu Vizoso		vin-supply = <&vcc3v3_sys>;
193e7a09590STomeu Vizoso
194e7a09590STomeu Vizoso		regulator-state-mem {
195e7a09590STomeu Vizoso			regulator-off-in-suspend;
196e7a09590STomeu Vizoso		};
197e7a09590STomeu Vizoso	};
198e7a09590STomeu Vizoso
199e7a09590STomeu Vizoso	vdd_gpu: regulator@41 {
200e7a09590STomeu Vizoso		compatible = "silergy,syr828";
201e7a09590STomeu Vizoso		reg = <0x41>;
202e7a09590STomeu Vizoso		fcs,suspend-voltage-selector = <1>;
203e7a09590STomeu Vizoso		pinctrl-names = "default";
204e7a09590STomeu Vizoso		pinctrl-0 = <&gpu_sleep>;
205e7a09590STomeu Vizoso		regulator-always-on;
206e7a09590STomeu Vizoso		regulator-boot-on;
207e7a09590STomeu Vizoso		regulator-min-microvolt = <712500>;
208e7a09590STomeu Vizoso		regulator-max-microvolt = <1500000>;
209e7a09590STomeu Vizoso		regulator-name = "vdd_gpu";
210e7a09590STomeu Vizoso		regulator-ramp-delay = <1000>;
211e7a09590STomeu Vizoso		vin-supply = <&vcc3v3_sys>;
212e7a09590STomeu Vizoso
213e7a09590STomeu Vizoso		regulator-state-mem {
214e7a09590STomeu Vizoso			regulator-off-in-suspend;
215e7a09590STomeu Vizoso		};
216e7a09590STomeu Vizoso	};
217e7a09590STomeu Vizoso
218e7a09590STomeu Vizoso	rk808: pmic@1b {
219e7a09590STomeu Vizoso		compatible = "rockchip,rk808";
220e7a09590STomeu Vizoso		reg = <0x1b>;
221e7a09590STomeu Vizoso		clock-output-names = "xin32k", "rk808-clkout2";
222e7a09590STomeu Vizoso		#clock-cells = <1>;
223e7a09590STomeu Vizoso		interrupt-parent = <&gpio1>;
224e7a09590STomeu Vizoso		interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
225e7a09590STomeu Vizoso		pinctrl-names = "default";
226e7a09590STomeu Vizoso		pinctrl-0 = <&pmic_int_l>;
227e7a09590STomeu Vizoso		rockchip,system-power-controller;
228e7a09590STomeu Vizoso		wakeup-source;
229e7a09590STomeu Vizoso
230e7a09590STomeu Vizoso		vcc1-supply = <&vcc3v3_sys>;
231e7a09590STomeu Vizoso		vcc2-supply = <&vcc3v3_sys>;
232e7a09590STomeu Vizoso		vcc3-supply = <&vcc3v3_sys>;
233e7a09590STomeu Vizoso		vcc4-supply = <&vcc3v3_sys>;
234e7a09590STomeu Vizoso		vcc6-supply = <&vcc3v3_sys>;
235e7a09590STomeu Vizoso		vcc7-supply = <&vcc3v3_sys>;
236e7a09590STomeu Vizoso		vcc8-supply = <&vcc3v3_sys>;
237e7a09590STomeu Vizoso		vcc9-supply = <&vcc3v3_sys>;
238e7a09590STomeu Vizoso		vcc10-supply = <&vcc3v3_sys>;
239e7a09590STomeu Vizoso		vcc11-supply = <&vcc3v3_sys>;
240e7a09590STomeu Vizoso		vcc12-supply = <&vcc3v3_sys>;
241e7a09590STomeu Vizoso		vddio-supply = <&vcc_3v0>;
242e7a09590STomeu Vizoso
243e7a09590STomeu Vizoso		regulators {
244e7a09590STomeu Vizoso			vdd_center: DCDC_REG1 {
245e7a09590STomeu Vizoso				regulator-always-on;
246e7a09590STomeu Vizoso				regulator-boot-on;
247e7a09590STomeu Vizoso				regulator-min-microvolt = <750000>;
248e7a09590STomeu Vizoso				regulator-max-microvolt = <1350000>;
249e7a09590STomeu Vizoso				regulator-name = "vdd_center";
250e7a09590STomeu Vizoso				regulator-ramp-delay = <6001>;
251e7a09590STomeu Vizoso
252e7a09590STomeu Vizoso				regulator-state-mem {
253e7a09590STomeu Vizoso					regulator-off-in-suspend;
254e7a09590STomeu Vizoso				};
255e7a09590STomeu Vizoso			};
256e7a09590STomeu Vizoso
257e7a09590STomeu Vizoso			vdd_cpu_l: DCDC_REG2 {
258e7a09590STomeu Vizoso				regulator-always-on;
259e7a09590STomeu Vizoso				regulator-boot-on;
260e7a09590STomeu Vizoso				regulator-min-microvolt = <750000>;
261e7a09590STomeu Vizoso				regulator-max-microvolt = <1350000>;
262e7a09590STomeu Vizoso				regulator-name = "vdd_cpu_l";
263e7a09590STomeu Vizoso				regulator-ramp-delay = <6001>;
264e7a09590STomeu Vizoso
265e7a09590STomeu Vizoso				regulator-state-mem {
266e7a09590STomeu Vizoso					regulator-off-in-suspend;
267e7a09590STomeu Vizoso				};
268e7a09590STomeu Vizoso			};
269e7a09590STomeu Vizoso
270e7a09590STomeu Vizoso			vcc_ddr: DCDC_REG3 {
271e7a09590STomeu Vizoso				regulator-always-on;
272e7a09590STomeu Vizoso				regulator-boot-on;
273e7a09590STomeu Vizoso				regulator-name = "vcc_ddr";
274e7a09590STomeu Vizoso
275e7a09590STomeu Vizoso				regulator-state-mem {
276e7a09590STomeu Vizoso					regulator-on-in-suspend;
277e7a09590STomeu Vizoso				};
278e7a09590STomeu Vizoso			};
279e7a09590STomeu Vizoso
280e7a09590STomeu Vizoso			vcc_1v8: DCDC_REG4 {
281e7a09590STomeu Vizoso				regulator-always-on;
282e7a09590STomeu Vizoso				regulator-boot-on;
283e7a09590STomeu Vizoso				regulator-min-microvolt = <1800000>;
284e7a09590STomeu Vizoso				regulator-max-microvolt = <1800000>;
285e7a09590STomeu Vizoso				regulator-name = "vcc_1v8";
286e7a09590STomeu Vizoso
287e7a09590STomeu Vizoso				regulator-state-mem {
288e7a09590STomeu Vizoso					regulator-on-in-suspend;
289e7a09590STomeu Vizoso					regulator-suspend-microvolt = <1800000>;
290e7a09590STomeu Vizoso				};
291e7a09590STomeu Vizoso			};
292e7a09590STomeu Vizoso
293e7a09590STomeu Vizoso			vcc1v8_cam: LDO_REG1 {
294e7a09590STomeu Vizoso				regulator-always-on;
295e7a09590STomeu Vizoso				regulator-boot-on;
296e7a09590STomeu Vizoso				regulator-min-microvolt = <1800000>;
297e7a09590STomeu Vizoso				regulator-max-microvolt = <1800000>;
298e7a09590STomeu Vizoso				regulator-name = "vcc1v8_cam";
299e7a09590STomeu Vizoso
300e7a09590STomeu Vizoso				regulator-state-mem {
301e7a09590STomeu Vizoso					regulator-off-in-suspend;
302e7a09590STomeu Vizoso				};
303e7a09590STomeu Vizoso			};
304e7a09590STomeu Vizoso
305e7a09590STomeu Vizoso			vcc3v0_touch: LDO_REG2 {
306e7a09590STomeu Vizoso				regulator-always-on;
307e7a09590STomeu Vizoso				regulator-boot-on;
308e7a09590STomeu Vizoso				regulator-min-microvolt = <3000000>;
309e7a09590STomeu Vizoso				regulator-max-microvolt = <3000000>;
310e7a09590STomeu Vizoso				regulator-name = "vcc3v0_touch";
311e7a09590STomeu Vizoso
312e7a09590STomeu Vizoso				regulator-state-mem {
313e7a09590STomeu Vizoso					regulator-off-in-suspend;
314e7a09590STomeu Vizoso				};
315e7a09590STomeu Vizoso			};
316e7a09590STomeu Vizoso
317e7a09590STomeu Vizoso			vcc1v8_pmupll: LDO_REG3 {
318e7a09590STomeu Vizoso				regulator-always-on;
319e7a09590STomeu Vizoso				regulator-boot-on;
320e7a09590STomeu Vizoso				regulator-min-microvolt = <1800000>;
321e7a09590STomeu Vizoso				regulator-max-microvolt = <1800000>;
322e7a09590STomeu Vizoso				regulator-name = "vcc1v8_pmupll";
323e7a09590STomeu Vizoso
324e7a09590STomeu Vizoso				regulator-state-mem {
325e7a09590STomeu Vizoso					regulator-on-in-suspend;
326e7a09590STomeu Vizoso					regulator-suspend-microvolt = <1800000>;
327e7a09590STomeu Vizoso				};
328e7a09590STomeu Vizoso			};
329e7a09590STomeu Vizoso
330e7a09590STomeu Vizoso			vcc_sdio: LDO_REG4 {
331e7a09590STomeu Vizoso				regulator-always-on;
332e7a09590STomeu Vizoso				regulator-boot-on;
333e7a09590STomeu Vizoso				regulator-init-microvolt = <3000000>;
334e7a09590STomeu Vizoso				regulator-min-microvolt = <1800000>;
335e7a09590STomeu Vizoso				regulator-max-microvolt = <3300000>;
336e7a09590STomeu Vizoso				regulator-name = "vcc_sdio";
337e7a09590STomeu Vizoso
338e7a09590STomeu Vizoso				regulator-state-mem {
339e7a09590STomeu Vizoso					regulator-on-in-suspend;
340e7a09590STomeu Vizoso					regulator-suspend-microvolt = <3000000>;
341e7a09590STomeu Vizoso				};
342e7a09590STomeu Vizoso			};
343e7a09590STomeu Vizoso
344e7a09590STomeu Vizoso			vcca3v0_codec: LDO_REG5 {
345e7a09590STomeu Vizoso				regulator-always-on;
346e7a09590STomeu Vizoso				regulator-boot-on;
347e7a09590STomeu Vizoso				regulator-min-microvolt = <3000000>;
348e7a09590STomeu Vizoso				regulator-max-microvolt = <3000000>;
349e7a09590STomeu Vizoso				regulator-name = "vcca3v0_codec";
350e7a09590STomeu Vizoso
351e7a09590STomeu Vizoso				regulator-state-mem {
352e7a09590STomeu Vizoso					regulator-off-in-suspend;
353e7a09590STomeu Vizoso				};
354e7a09590STomeu Vizoso			};
355e7a09590STomeu Vizoso
356e7a09590STomeu Vizoso			vcc_1v5: LDO_REG6 {
357e7a09590STomeu Vizoso				regulator-always-on;
358e7a09590STomeu Vizoso				regulator-boot-on;
359e7a09590STomeu Vizoso				regulator-min-microvolt = <1500000>;
360e7a09590STomeu Vizoso				regulator-max-microvolt = <1500000>;
361e7a09590STomeu Vizoso				regulator-name = "vcc_1v5";
362e7a09590STomeu Vizoso
363e7a09590STomeu Vizoso				regulator-state-mem {
364e7a09590STomeu Vizoso					regulator-on-in-suspend;
365e7a09590STomeu Vizoso					regulator-suspend-microvolt = <1500000>;
366e7a09590STomeu Vizoso				};
367e7a09590STomeu Vizoso			};
368e7a09590STomeu Vizoso
369e7a09590STomeu Vizoso			vcca1v8_codec: LDO_REG7 {
370e7a09590STomeu Vizoso				regulator-always-on;
371e7a09590STomeu Vizoso				regulator-boot-on;
372e7a09590STomeu Vizoso				regulator-min-microvolt = <1800000>;
373e7a09590STomeu Vizoso				regulator-max-microvolt = <1800000>;
374e7a09590STomeu Vizoso				regulator-name = "vcca1v8_codec";
375e7a09590STomeu Vizoso
376e7a09590STomeu Vizoso				regulator-state-mem {
377e7a09590STomeu Vizoso					regulator-off-in-suspend;
378e7a09590STomeu Vizoso				};
379e7a09590STomeu Vizoso			};
380e7a09590STomeu Vizoso
381e7a09590STomeu Vizoso			vcc_3v0: LDO_REG8 {
382e7a09590STomeu Vizoso				regulator-always-on;
383e7a09590STomeu Vizoso				regulator-boot-on;
384e7a09590STomeu Vizoso				regulator-min-microvolt = <3000000>;
385e7a09590STomeu Vizoso				regulator-max-microvolt = <3000000>;
386e7a09590STomeu Vizoso				regulator-name = "vcc_3v0";
387e7a09590STomeu Vizoso
388e7a09590STomeu Vizoso				regulator-state-mem {
389e7a09590STomeu Vizoso					regulator-on-in-suspend;
390e7a09590STomeu Vizoso					regulator-suspend-microvolt = <3000000>;
391e7a09590STomeu Vizoso				};
392e7a09590STomeu Vizoso			};
393e7a09590STomeu Vizoso
394e7a09590STomeu Vizoso			vcc3v3_s3: SWITCH_REG1 {
395e7a09590STomeu Vizoso				regulator-always-on;
396e7a09590STomeu Vizoso				regulator-boot-on;
397e7a09590STomeu Vizoso				regulator-name = "vcc3v3_s3";
398e7a09590STomeu Vizoso
399e7a09590STomeu Vizoso				regulator-state-mem {
400e7a09590STomeu Vizoso					regulator-off-in-suspend;
401e7a09590STomeu Vizoso				};
402e7a09590STomeu Vizoso			};
403e7a09590STomeu Vizoso
404e7a09590STomeu Vizoso			vcc3v3_s0: SWITCH_REG2 {
405e7a09590STomeu Vizoso				regulator-always-on;
406e7a09590STomeu Vizoso				regulator-boot-on;
407e7a09590STomeu Vizoso				regulator-name = "vcc3v3_s0";
408e7a09590STomeu Vizoso
409e7a09590STomeu Vizoso				regulator-state-mem {
410e7a09590STomeu Vizoso					regulator-off-in-suspend;
411e7a09590STomeu Vizoso				};
412e7a09590STomeu Vizoso			};
413e7a09590STomeu Vizoso		};
414e7a09590STomeu Vizoso	};
415e7a09590STomeu Vizoso};
416e7a09590STomeu Vizoso
417e7a09590STomeu Vizoso&i2c1 {
418e7a09590STomeu Vizoso	clock-frequency = <200000>;
419e7a09590STomeu Vizoso	i2c-scl-rising-time-ns = <150>;
420e7a09590STomeu Vizoso	i2c-scl-falling-time-ns = <30>;
421e7a09590STomeu Vizoso	status = "okay";
422e7a09590STomeu Vizoso};
423e7a09590STomeu Vizoso
424e7a09590STomeu Vizoso&i2c2 {
425e7a09590STomeu Vizoso	status = "okay";
426e7a09590STomeu Vizoso};
427e7a09590STomeu Vizoso
428e7a09590STomeu Vizoso&i2c4 {
429e7a09590STomeu Vizoso	clock-frequency = <400000>;
430e7a09590STomeu Vizoso	i2c-scl-rising-time-ns = <160>;
431e7a09590STomeu Vizoso	i2c-scl-falling-time-ns = <30>;
432e7a09590STomeu Vizoso	status = "okay";
433e7a09590STomeu Vizoso
434e7a09590STomeu Vizoso	fusb0: typec-portc@22 {
435e7a09590STomeu Vizoso		compatible = "fcs,fusb302";
436e7a09590STomeu Vizoso		reg = <0x22>;
437e7a09590STomeu Vizoso		interrupt-parent = <&gpio1>;
438e7a09590STomeu Vizoso		interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
439e7a09590STomeu Vizoso		pinctrl-names = "default";
440e7a09590STomeu Vizoso		pinctrl-0 = <&fusb0_int>;
441e7a09590STomeu Vizoso		vbus-supply = <&vbus_typec>;
442e7a09590STomeu Vizoso	};
443e7a09590STomeu Vizoso};
444e7a09590STomeu Vizoso
445e7a09590STomeu Vizoso&i2c7 {
446e7a09590STomeu Vizoso	status = "okay";
447e7a09590STomeu Vizoso};
448e7a09590STomeu Vizoso
449e7a09590STomeu Vizoso&io_domains {
450e7a09590STomeu Vizoso	bt656-supply = <&vcc_1v8>;
451e7a09590STomeu Vizoso	audio-supply = <&vcca1v8_codec>;
452e7a09590STomeu Vizoso	sdmmc-supply = <&vcc_sdio>;
453e7a09590STomeu Vizoso	gpio1830-supply = <&vcc_3v0>;
454e7a09590STomeu Vizoso	status = "okay";
455e7a09590STomeu Vizoso};
456e7a09590STomeu Vizoso
457e7a09590STomeu Vizoso&pcie_phy {
458e7a09590STomeu Vizoso	assigned-clock-parents = <&cru SCLK_PCIEPHY_REF100M>;
459e7a09590STomeu Vizoso	assigned-clock-rates = <100000000>;
460e7a09590STomeu Vizoso	assigned-clocks = <&cru SCLK_PCIEPHY_REF>;
461e7a09590STomeu Vizoso	status = "okay";
462e7a09590STomeu Vizoso};
463e7a09590STomeu Vizoso
464e7a09590STomeu Vizoso&pcie0 {
465e7a09590STomeu Vizoso	ep-gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_HIGH>;
466e7a09590STomeu Vizoso	max-link-speed = <2>;
467e7a09590STomeu Vizoso	num-lanes = <4>;
468e7a09590STomeu Vizoso	status = "okay";
469e7a09590STomeu Vizoso};
470e7a09590STomeu Vizoso
471e7a09590STomeu Vizoso&pinctrl {
472e7a09590STomeu Vizoso	fusb30x {
473e7a09590STomeu Vizoso		fusb0_int: fusb0-int {
474e7a09590STomeu Vizoso			rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
475e7a09590STomeu Vizoso		};
476e7a09590STomeu Vizoso	};
477e7a09590STomeu Vizoso
478e7a09590STomeu Vizoso	gpio-leds {
479e7a09590STomeu Vizoso		leds_gpio: leds-gpio {
480e7a09590STomeu Vizoso			rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
481e7a09590STomeu Vizoso		};
482e7a09590STomeu Vizoso	};
483e7a09590STomeu Vizoso
484e7a09590STomeu Vizoso	pmic {
485e7a09590STomeu Vizoso		cpu_b_sleep: cpu-b-sleep {
486e7a09590STomeu Vizoso			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
487e7a09590STomeu Vizoso		};
488e7a09590STomeu Vizoso
489e7a09590STomeu Vizoso		gpu_sleep: gpu-sleep {
490e7a09590STomeu Vizoso			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
491e7a09590STomeu Vizoso		};
492e7a09590STomeu Vizoso
493e7a09590STomeu Vizoso		pmic_int_l: pmic-int-l {
494e7a09590STomeu Vizoso			rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
495e7a09590STomeu Vizoso		};
496e7a09590STomeu Vizoso	};
497e7a09590STomeu Vizoso
498e7a09590STomeu Vizoso	rockchip-key {
499e7a09590STomeu Vizoso		power_key: power-key {
500e7a09590STomeu Vizoso			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
501e7a09590STomeu Vizoso		};
502e7a09590STomeu Vizoso	};
503e7a09590STomeu Vizoso
504e7a09590STomeu Vizoso	sdio-pwrseq {
505e7a09590STomeu Vizoso		wifi_reg_on_h: wifi-reg_on-h {
506e7a09590STomeu Vizoso			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
507e7a09590STomeu Vizoso		};
508e7a09590STomeu Vizoso	};
50910f595eeSRobin Murphy
51010f595eeSRobin Murphy	sdmmc {
51110f595eeSRobin Murphy		sdmmc0_det_l: sdmmc0-det-l {
51210f595eeSRobin Murphy			rockchip,pins = <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>;
51310f595eeSRobin Murphy		};
51410f595eeSRobin Murphy
51510f595eeSRobin Murphy		sdmmc0_pwr_h: sdmmc0-pwr-h {
51610f595eeSRobin Murphy			rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
51710f595eeSRobin Murphy		};
51810f595eeSRobin Murphy	};
519e7a09590STomeu Vizoso};
520e7a09590STomeu Vizoso
521e7a09590STomeu Vizoso&pmu_io_domains {
522e7a09590STomeu Vizoso	pmu1830-supply = <&vcc_3v0>;
523e7a09590STomeu Vizoso	status = "okay";
524e7a09590STomeu Vizoso};
525e7a09590STomeu Vizoso
526e7a09590STomeu Vizoso&pwm0 {
527e7a09590STomeu Vizoso	status = "okay";
528e7a09590STomeu Vizoso};
529e7a09590STomeu Vizoso
530e7a09590STomeu Vizoso&pwm1 {
531e7a09590STomeu Vizoso	status = "okay";
532e7a09590STomeu Vizoso};
533e7a09590STomeu Vizoso
534e7a09590STomeu Vizoso&pwm2 {
535e7a09590STomeu Vizoso	pinctrl-names = "active";
536e7a09590STomeu Vizoso	pinctrl-0 = <&pwm2_pin_pull_down>;
537e7a09590STomeu Vizoso	status = "okay";
538e7a09590STomeu Vizoso};
539e7a09590STomeu Vizoso
540e7a09590STomeu Vizoso&saradc {
541e7a09590STomeu Vizoso	vref-supply = <&vcca1v8_s3>;
542e7a09590STomeu Vizoso	status = "okay";
543e7a09590STomeu Vizoso};
544e7a09590STomeu Vizoso
545e7a09590STomeu Vizoso&sdhci {
546e7a09590STomeu Vizoso	bus-width = <8>;
547c62ffaf5SRobin Murphy	mmc-hs200-1_8v;
548e7a09590STomeu Vizoso	non-removable;
549e7a09590STomeu Vizoso	status = "okay";
550e7a09590STomeu Vizoso};
551e7a09590STomeu Vizoso
552e7a09590STomeu Vizoso&sdio0 {
553e7a09590STomeu Vizoso	bus-width = <4>;
554e7a09590STomeu Vizoso	cap-sd-highspeed;
555e7a09590STomeu Vizoso	cap-sdio-irq;
556e7a09590STomeu Vizoso	disable-wp;
557e7a09590STomeu Vizoso	keep-power-in-suspend;
558e7a09590STomeu Vizoso	mmc-pwrseq = <&sdio_pwrseq>;
559e7a09590STomeu Vizoso	non-removable;
560e7a09590STomeu Vizoso	pinctrl-names = "default";
561e7a09590STomeu Vizoso	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
562e7a09590STomeu Vizoso	sd-uhs-sdr104;
563e7a09590STomeu Vizoso	status = "okay";
564e7a09590STomeu Vizoso};
565e7a09590STomeu Vizoso
566e7a09590STomeu Vizoso&sdmmc {
567e7a09590STomeu Vizoso	bus-width = <4>;
568e7a09590STomeu Vizoso	cap-sd-highspeed;
569e7a09590STomeu Vizoso	cap-mmc-highspeed;
57010f595eeSRobin Murphy	cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
571e7a09590STomeu Vizoso	disable-wp;
572e7a09590STomeu Vizoso	pinctrl-names = "default";
57310f595eeSRobin Murphy	pinctrl-0 = <&sdmmc_bus4 &sdmmc_clk &sdmmc_cmd &sdmmc0_det_l>;
574e7a09590STomeu Vizoso	sd-uhs-sdr104;
575e7a09590STomeu Vizoso	vmmc-supply = <&vcc3v0_sd>;
576e7a09590STomeu Vizoso	vqmmc-supply = <&vcc_sdio>;
577e7a09590STomeu Vizoso	status = "okay";
578e7a09590STomeu Vizoso};
579e7a09590STomeu Vizoso
580e7a09590STomeu Vizoso&tcphy0 {
581e7a09590STomeu Vizoso	status = "okay";
582e7a09590STomeu Vizoso};
583e7a09590STomeu Vizoso
584e7a09590STomeu Vizoso&tcphy1 {
585e7a09590STomeu Vizoso	status = "okay";
586e7a09590STomeu Vizoso};
587e7a09590STomeu Vizoso
588e7a09590STomeu Vizoso&tsadc {
589e7a09590STomeu Vizoso	/* tshut mode 0:CRU 1:GPIO */
590e7a09590STomeu Vizoso	rockchip,hw-tshut-mode = <1>;
591e7a09590STomeu Vizoso	/* tshut polarity 0:LOW 1:HIGH */
592e7a09590STomeu Vizoso	rockchip,hw-tshut-polarity = <1>;
593e7a09590STomeu Vizoso	status = "okay";
594e7a09590STomeu Vizoso};
595e7a09590STomeu Vizoso
596e7a09590STomeu Vizoso&u2phy0 {
597e7a09590STomeu Vizoso	status = "okay";
598e7a09590STomeu Vizoso};
599e7a09590STomeu Vizoso
600e7a09590STomeu Vizoso&u2phy0_host {
601e7a09590STomeu Vizoso	status = "okay";
602e7a09590STomeu Vizoso};
603e7a09590STomeu Vizoso
604e7a09590STomeu Vizoso&u2phy0_otg {
605e7a09590STomeu Vizoso	status = "okay";
606e7a09590STomeu Vizoso};
607e7a09590STomeu Vizoso
608e7a09590STomeu Vizoso&u2phy1 {
609e7a09590STomeu Vizoso	status = "okay";
610e7a09590STomeu Vizoso};
611e7a09590STomeu Vizoso
612e7a09590STomeu Vizoso&u2phy1_host {
613e7a09590STomeu Vizoso	status = "okay";
614e7a09590STomeu Vizoso};
615e7a09590STomeu Vizoso
616e7a09590STomeu Vizoso&u2phy1_otg {
617e7a09590STomeu Vizoso	status = "okay";
618e7a09590STomeu Vizoso};
619e7a09590STomeu Vizoso
620e7a09590STomeu Vizoso&uart0 {
621e7a09590STomeu Vizoso	pinctrl-names = "default";
622e7a09590STomeu Vizoso	pinctrl-0 = <&uart0_xfer &uart0_rts &uart0_cts>;
623e7a09590STomeu Vizoso	status = "okay";
624e7a09590STomeu Vizoso};
625e7a09590STomeu Vizoso
626e7a09590STomeu Vizoso&uart2 {
627e7a09590STomeu Vizoso	status = "okay";
628e7a09590STomeu Vizoso};
629e7a09590STomeu Vizoso
630e7a09590STomeu Vizoso&usbdrd3_0 {
631e7a09590STomeu Vizoso	status = "okay";
632e7a09590STomeu Vizoso};
633e7a09590STomeu Vizoso
634e7a09590STomeu Vizoso&usbdrd3_1 {
635e7a09590STomeu Vizoso	status = "okay";
636e7a09590STomeu Vizoso};
637e7a09590STomeu Vizoso
638e7a09590STomeu Vizoso&usbdrd_dwc3_0 {
639e7a09590STomeu Vizoso	status = "okay";
640e7a09590STomeu Vizoso};
641e7a09590STomeu Vizoso
642e7a09590STomeu Vizoso&usbdrd_dwc3_1 {
643e7a09590STomeu Vizoso	dr_mode = "host";
644e7a09590STomeu Vizoso	status = "okay";
645e7a09590STomeu Vizoso};
646e7a09590STomeu Vizoso
647e7a09590STomeu Vizoso&usb_host0_ehci {
648e7a09590STomeu Vizoso	status = "okay";
649e7a09590STomeu Vizoso};
650e7a09590STomeu Vizoso
651e7a09590STomeu Vizoso&usb_host0_ohci {
652e7a09590STomeu Vizoso	status = "okay";
653e7a09590STomeu Vizoso};
654e7a09590STomeu Vizoso
655e7a09590STomeu Vizoso&usb_host1_ehci {
656e7a09590STomeu Vizoso	status = "okay";
657e7a09590STomeu Vizoso};
658e7a09590STomeu Vizoso
659e7a09590STomeu Vizoso&usb_host1_ohci {
660e7a09590STomeu Vizoso	status = "okay";
661e7a09590STomeu Vizoso};
662e7a09590STomeu Vizoso
663e7a09590STomeu Vizoso&vopb {
664e7a09590STomeu Vizoso	status = "okay";
665e7a09590STomeu Vizoso};
666e7a09590STomeu Vizoso
667e7a09590STomeu Vizoso&vopb_mmu {
668e7a09590STomeu Vizoso	status = "okay";
669e7a09590STomeu Vizoso};
670e7a09590STomeu Vizoso
671e7a09590STomeu Vizoso&vopl {
672e7a09590STomeu Vizoso	status = "okay";
673e7a09590STomeu Vizoso};
674e7a09590STomeu Vizoso
675e7a09590STomeu Vizoso&vopl_mmu {
676e7a09590STomeu Vizoso	status = "okay";
677e7a09590STomeu Vizoso};
678