18bb878cfSLevin Du// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
28bb878cfSLevin Du/*
38bb878cfSLevin Du * Copyright (c) 2017 T-Chip Intelligent Technology Co., Ltd
48bb878cfSLevin Du */
58bb878cfSLevin Du
68bb878cfSLevin Du/dts-v1/;
78bb878cfSLevin Du#include <dt-bindings/pwm/pwm.h>
88bb878cfSLevin Du#include "rk3399.dtsi"
98bb878cfSLevin Du#include "rk3399-opp.dtsi"
108bb878cfSLevin Du
118bb878cfSLevin Du/ {
128bb878cfSLevin Du	model = "Firefly ROC-RK3399-PC Board";
138bb878cfSLevin Du	compatible = "firefly,roc-rk3399-pc", "rockchip,rk3399";
148bb878cfSLevin Du
158bb878cfSLevin Du	chosen {
168bb878cfSLevin Du		stdout-path = "serial2:1500000n8";
178bb878cfSLevin Du	};
188bb878cfSLevin Du
198bb878cfSLevin Du	backlight: backlight {
208bb878cfSLevin Du		compatible = "pwm-backlight";
218bb878cfSLevin Du		pwms = <&pwm0 0 25000 0>;
228bb878cfSLevin Du	};
238bb878cfSLevin Du
248bb878cfSLevin Du	clkin_gmac: external-gmac-clock {
258bb878cfSLevin Du		compatible = "fixed-clock";
268bb878cfSLevin Du		clock-frequency = <125000000>;
278bb878cfSLevin Du		clock-output-names = "clkin_gmac";
288bb878cfSLevin Du		#clock-cells = <0>;
298bb878cfSLevin Du	};
308bb878cfSLevin Du
318bb878cfSLevin Du	sdio_pwrseq: sdio-pwrseq {
328bb878cfSLevin Du		compatible = "mmc-pwrseq-simple";
338bb878cfSLevin Du		clocks = <&rk808 1>;
348bb878cfSLevin Du		clock-names = "ext_clock";
358bb878cfSLevin Du		pinctrl-names = "default";
368bb878cfSLevin Du		pinctrl-0 = <&wifi_enable_h>;
378bb878cfSLevin Du
388bb878cfSLevin Du		/*
398bb878cfSLevin Du		 * On the module itself this is one of these (depending
408bb878cfSLevin Du		 * on the actual card populated):
418bb878cfSLevin Du		 * - SDIO_RESET_L_WL_REG_ON
428bb878cfSLevin Du		 * - PDN (power down when low)
438bb878cfSLevin Du		 */
448bb878cfSLevin Du		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
458bb878cfSLevin Du	};
468bb878cfSLevin Du
478bb878cfSLevin Du	vcc_vbus_typec0: vcc-vbus-typec0 {
488bb878cfSLevin Du		compatible = "regulator-fixed";
498bb878cfSLevin Du		regulator-name = "vcc_vbus_typec0";
508bb878cfSLevin Du		regulator-always-on;
518bb878cfSLevin Du		regulator-boot-on;
528bb878cfSLevin Du		regulator-min-microvolt = <5000000>;
538bb878cfSLevin Du		regulator-max-microvolt = <5000000>;
548bb878cfSLevin Du	};
558bb878cfSLevin Du
568bb878cfSLevin Du	/*
578bb878cfSLevin Du	 * should be placed inside mp8859, but not until mp8859 has
588bb878cfSLevin Du	 * its own dt-binding.
598bb878cfSLevin Du	 */
608bb878cfSLevin Du	vcc12v_sys: mp8859-dcdc1 {
618bb878cfSLevin Du		compatible = "regulator-fixed";
628bb878cfSLevin Du		regulator-name = "vcc12v_sys";
638bb878cfSLevin Du		regulator-always-on;
648bb878cfSLevin Du		regulator-boot-on;
658bb878cfSLevin Du		regulator-min-microvolt = <12000000>;
668bb878cfSLevin Du		regulator-max-microvolt = <12000000>;
678bb878cfSLevin Du		vin-supply = <&vcc_vbus_typec0>;
688bb878cfSLevin Du	};
698bb878cfSLevin Du
708bb878cfSLevin Du	/* switched by pmic_sleep */
718bb878cfSLevin Du	vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
728bb878cfSLevin Du		compatible = "regulator-fixed";
738bb878cfSLevin Du		regulator-name = "vcc1v8_s3";
748bb878cfSLevin Du		regulator-always-on;
758bb878cfSLevin Du		regulator-boot-on;
768bb878cfSLevin Du		regulator-min-microvolt = <1800000>;
778bb878cfSLevin Du		regulator-max-microvolt = <1800000>;
788bb878cfSLevin Du		vin-supply = <&vcc_1v8>;
798bb878cfSLevin Du	};
808bb878cfSLevin Du
818bb878cfSLevin Du	vcc3v3_sys: vcc3v3-sys {
828bb878cfSLevin Du		compatible = "regulator-fixed";
838bb878cfSLevin Du		regulator-name = "vcc3v3_sys";
848bb878cfSLevin Du		regulator-always-on;
858bb878cfSLevin Du		regulator-boot-on;
868bb878cfSLevin Du		regulator-min-microvolt = <3300000>;
878bb878cfSLevin Du		regulator-max-microvolt = <3300000>;
888bb878cfSLevin Du		vin-supply = <&vcc12v_sys>;
898bb878cfSLevin Du	};
908bb878cfSLevin Du
918bb878cfSLevin Du	/* Actually 3 regulators (host0, 1, 2) controlled by the same gpio */
928bb878cfSLevin Du	vcc5v0_host: vcc5v0-host-regulator {
938bb878cfSLevin Du		compatible = "regulator-fixed";
948bb878cfSLevin Du		enable-active-high;
958bb878cfSLevin Du		gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
968bb878cfSLevin Du		pinctrl-names = "default";
978bb878cfSLevin Du		pinctrl-0 = <&vcc5v0_host_en &hub_rst>;
988bb878cfSLevin Du		regulator-name = "vcc5v0_host";
998bb878cfSLevin Du		regulator-always-on;
1008bb878cfSLevin Du		vin-supply = <&vcc_sys>;
1018bb878cfSLevin Du	};
1028bb878cfSLevin Du
1038bb878cfSLevin Du	vcc_vbus_typec1: vcc-vbus-typec1 {
1048bb878cfSLevin Du		compatible = "regulator-fixed";
1058bb878cfSLevin Du		enable-active-high;
1068bb878cfSLevin Du		gpio = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
1078bb878cfSLevin Du		pinctrl-names = "default";
1088bb878cfSLevin Du		pinctrl-0 = <&vcc_vbus_typec1_en>;
1098bb878cfSLevin Du		regulator-name = "vcc_vbus_typec1";
1108bb878cfSLevin Du		regulator-always-on;
1118bb878cfSLevin Du		vin-supply = <&vcc_sys>;
1128bb878cfSLevin Du	};
1138bb878cfSLevin Du
1148bb878cfSLevin Du	vcc_sys: vcc-sys {
1158bb878cfSLevin Du		compatible = "regulator-fixed";
1168bb878cfSLevin Du		regulator-name = "vcc_sys";
1178bb878cfSLevin Du		regulator-always-on;
1188bb878cfSLevin Du		regulator-boot-on;
1198bb878cfSLevin Du		regulator-min-microvolt = <5000000>;
1208bb878cfSLevin Du		regulator-max-microvolt = <5000000>;
1218bb878cfSLevin Du		vin-supply = <&vcc12v_sys>;
1228bb878cfSLevin Du	};
1238bb878cfSLevin Du
1248bb878cfSLevin Du	vdd_log: vdd-log {
1258bb878cfSLevin Du		compatible = "pwm-regulator";
1268bb878cfSLevin Du		pwms = <&pwm2 0 25000 1>;
1278bb878cfSLevin Du		regulator-name = "vdd_log";
1288bb878cfSLevin Du		regulator-always-on;
1298bb878cfSLevin Du		regulator-boot-on;
1308bb878cfSLevin Du		regulator-min-microvolt = <800000>;
1318bb878cfSLevin Du		regulator-max-microvolt = <1400000>;
1328bb878cfSLevin Du		vin-supply = <&vcc3v3_sys>;
1338bb878cfSLevin Du	};
1348bb878cfSLevin Du};
1358bb878cfSLevin Du
1368bb878cfSLevin Du&cpu_l0 {
1378bb878cfSLevin Du	cpu-supply = <&vdd_cpu_l>;
1388bb878cfSLevin Du};
1398bb878cfSLevin Du
1408bb878cfSLevin Du&cpu_l1 {
1418bb878cfSLevin Du	cpu-supply = <&vdd_cpu_l>;
1428bb878cfSLevin Du};
1438bb878cfSLevin Du
1448bb878cfSLevin Du&cpu_l2 {
1458bb878cfSLevin Du	cpu-supply = <&vdd_cpu_l>;
1468bb878cfSLevin Du};
1478bb878cfSLevin Du
1488bb878cfSLevin Du&cpu_l3 {
1498bb878cfSLevin Du	cpu-supply = <&vdd_cpu_l>;
1508bb878cfSLevin Du};
1518bb878cfSLevin Du
1528bb878cfSLevin Du&cpu_b0 {
1538bb878cfSLevin Du	cpu-supply = <&vdd_cpu_b>;
1548bb878cfSLevin Du};
1558bb878cfSLevin Du
1568bb878cfSLevin Du&cpu_b1 {
1578bb878cfSLevin Du	cpu-supply = <&vdd_cpu_b>;
1588bb878cfSLevin Du};
1598bb878cfSLevin Du
1608bb878cfSLevin Du&emmc_phy {
1618bb878cfSLevin Du	status = "okay";
1628bb878cfSLevin Du};
1638bb878cfSLevin Du
1648bb878cfSLevin Du&gmac {
1658bb878cfSLevin Du	assigned-clocks = <&cru SCLK_RMII_SRC>;
1668bb878cfSLevin Du	assigned-clock-parents = <&clkin_gmac>;
1678bb878cfSLevin Du	clock_in_out = "input";
1688bb878cfSLevin Du	phy-supply = <&vcc_lan>;
1698bb878cfSLevin Du	phy-mode = "rgmii";
1708bb878cfSLevin Du	pinctrl-names = "default";
1718bb878cfSLevin Du	pinctrl-0 = <&rgmii_pins>;
1728bb878cfSLevin Du	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
1738bb878cfSLevin Du	snps,reset-active-low;
1748bb878cfSLevin Du	snps,reset-delays-us = <0 10000 50000>;
1758bb878cfSLevin Du	tx_delay = <0x28>;
1768bb878cfSLevin Du	rx_delay = <0x11>;
1778bb878cfSLevin Du	status = "okay";
1788bb878cfSLevin Du};
1798bb878cfSLevin Du
1808bb878cfSLevin Du&hdmi {
1818bb878cfSLevin Du	ddc-i2c-bus = <&i2c3>;
1828bb878cfSLevin Du	pinctrl-names = "default";
1838bb878cfSLevin Du	pinctrl-0 = <&hdmi_cec>;
1848bb878cfSLevin Du	status = "okay";
1858bb878cfSLevin Du};
1868bb878cfSLevin Du
1878bb878cfSLevin Du&i2c0 {
1888bb878cfSLevin Du	clock-frequency = <400000>;
1898bb878cfSLevin Du	i2c-scl-rising-time-ns = <168>;
1908bb878cfSLevin Du	i2c-scl-falling-time-ns = <4>;
1918bb878cfSLevin Du	status = "okay";
1928bb878cfSLevin Du
1938bb878cfSLevin Du	rk808: pmic@1b {
1948bb878cfSLevin Du		compatible = "rockchip,rk808";
1958bb878cfSLevin Du		reg = <0x1b>;
1968bb878cfSLevin Du		interrupt-parent = <&gpio1>;
1978bb878cfSLevin Du		interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
1988bb878cfSLevin Du		#clock-cells = <1>;
1998bb878cfSLevin Du		clock-output-names = "xin32k", "rk808-clkout2";
2008bb878cfSLevin Du		pinctrl-names = "default";
2018bb878cfSLevin Du		pinctrl-0 = <&pmic_int_l>;
2028bb878cfSLevin Du		rockchip,system-power-controller;
2038bb878cfSLevin Du		wakeup-source;
2048bb878cfSLevin Du
2058bb878cfSLevin Du		vcc1-supply = <&vcc3v3_sys>;
2068bb878cfSLevin Du		vcc2-supply = <&vcc3v3_sys>;
2078bb878cfSLevin Du		vcc3-supply = <&vcc3v3_sys>;
2088bb878cfSLevin Du		vcc4-supply = <&vcc3v3_sys>;
2098bb878cfSLevin Du		vcc6-supply = <&vcc3v3_sys>;
2108bb878cfSLevin Du		vcc7-supply = <&vcc3v3_sys>;
2118bb878cfSLevin Du		vcc8-supply = <&vcc3v3_sys>;
2128bb878cfSLevin Du		vcc9-supply = <&vcc3v3_sys>;
2138bb878cfSLevin Du		vcc10-supply = <&vcc3v3_sys>;
2148bb878cfSLevin Du		vcc11-supply = <&vcc3v3_sys>;
2158bb878cfSLevin Du		vcc12-supply = <&vcc3v3_sys>;
2168bb878cfSLevin Du		vddio-supply = <&vcc1v8_pmu>;
2178bb878cfSLevin Du
2188bb878cfSLevin Du		regulators {
2198bb878cfSLevin Du			vdd_center: DCDC_REG1 {
2208bb878cfSLevin Du				regulator-name = "vdd_center";
2218bb878cfSLevin Du				regulator-always-on;
2228bb878cfSLevin Du				regulator-boot-on;
2238bb878cfSLevin Du				regulator-min-microvolt = <750000>;
2248bb878cfSLevin Du				regulator-max-microvolt = <1350000>;
2258bb878cfSLevin Du				regulator-ramp-delay = <6001>;
2268bb878cfSLevin Du				regulator-state-mem {
2278bb878cfSLevin Du					regulator-off-in-suspend;
2288bb878cfSLevin Du				};
2298bb878cfSLevin Du			};
2308bb878cfSLevin Du
2318bb878cfSLevin Du			vdd_cpu_l: DCDC_REG2 {
2328bb878cfSLevin Du				regulator-name = "vdd_cpu_l";
2338bb878cfSLevin Du				regulator-always-on;
2348bb878cfSLevin Du				regulator-boot-on;
2358bb878cfSLevin Du				regulator-min-microvolt = <750000>;
2368bb878cfSLevin Du				regulator-max-microvolt = <1350000>;
2378bb878cfSLevin Du				regulator-ramp-delay = <6001>;
2388bb878cfSLevin Du				regulator-state-mem {
2398bb878cfSLevin Du					regulator-off-in-suspend;
2408bb878cfSLevin Du				};
2418bb878cfSLevin Du			};
2428bb878cfSLevin Du
2438bb878cfSLevin Du			vcc_ddr: DCDC_REG3 {
2448bb878cfSLevin Du				regulator-name = "vcc_ddr";
2458bb878cfSLevin Du				regulator-always-on;
2468bb878cfSLevin Du				regulator-boot-on;
2478bb878cfSLevin Du				regulator-state-mem {
2488bb878cfSLevin Du					regulator-on-in-suspend;
2498bb878cfSLevin Du				};
2508bb878cfSLevin Du			};
2518bb878cfSLevin Du
2528bb878cfSLevin Du			vcc_1v8: DCDC_REG4 {
2538bb878cfSLevin Du				regulator-name = "vcc_1v8";
2548bb878cfSLevin Du				regulator-always-on;
2558bb878cfSLevin Du				regulator-boot-on;
2568bb878cfSLevin Du				regulator-min-microvolt = <1800000>;
2578bb878cfSLevin Du				regulator-max-microvolt = <1800000>;
2588bb878cfSLevin Du				regulator-state-mem {
2598bb878cfSLevin Du					regulator-on-in-suspend;
2608bb878cfSLevin Du					regulator-suspend-microvolt = <1800000>;
2618bb878cfSLevin Du				};
2628bb878cfSLevin Du			};
2638bb878cfSLevin Du
2648bb878cfSLevin Du			vcca1v8_codec: LDO_REG1 {
2658bb878cfSLevin Du				regulator-name = "vcca1v8_codec";
2668bb878cfSLevin Du				regulator-always-on;
2678bb878cfSLevin Du				regulator-boot-on;
2688bb878cfSLevin Du				regulator-min-microvolt = <1800000>;
2698bb878cfSLevin Du				regulator-max-microvolt = <1800000>;
2708bb878cfSLevin Du				regulator-state-mem {
2718bb878cfSLevin Du					regulator-off-in-suspend;
2728bb878cfSLevin Du				};
2738bb878cfSLevin Du			};
2748bb878cfSLevin Du
2758bb878cfSLevin Du			vcc1v8_hdmi: LDO_REG2 {
2768bb878cfSLevin Du				regulator-name = "vcc1v8_hdmi";
2778bb878cfSLevin Du				regulator-always-on;
2788bb878cfSLevin Du				regulator-boot-on;
2798bb878cfSLevin Du				regulator-min-microvolt = <1800000>;
2808bb878cfSLevin Du				regulator-max-microvolt = <1800000>;
2818bb878cfSLevin Du				regulator-state-mem {
2828bb878cfSLevin Du					regulator-off-in-suspend;
2838bb878cfSLevin Du				};
2848bb878cfSLevin Du			};
2858bb878cfSLevin Du
2868bb878cfSLevin Du			vcc1v8_pmu: LDO_REG3 {
2878bb878cfSLevin Du				regulator-name = "vcc1v8_pmu";
2888bb878cfSLevin Du				regulator-always-on;
2898bb878cfSLevin Du				regulator-boot-on;
2908bb878cfSLevin Du				regulator-min-microvolt = <1800000>;
2918bb878cfSLevin Du				regulator-max-microvolt = <1800000>;
2928bb878cfSLevin Du				regulator-state-mem {
2938bb878cfSLevin Du					regulator-on-in-suspend;
2948bb878cfSLevin Du					regulator-suspend-microvolt = <1800000>;
2958bb878cfSLevin Du				};
2968bb878cfSLevin Du			};
2978bb878cfSLevin Du
2988bb878cfSLevin Du			vcc_sdio: LDO_REG4 {
2998bb878cfSLevin Du				regulator-name = "vcc_sdio";
3008bb878cfSLevin Du				regulator-always-on;
3018bb878cfSLevin Du				regulator-boot-on;
3028bb878cfSLevin Du				regulator-min-microvolt = <1800000>;
3038bb878cfSLevin Du				regulator-max-microvolt = <3000000>;
3048bb878cfSLevin Du				regulator-state-mem {
3058bb878cfSLevin Du					regulator-on-in-suspend;
3068bb878cfSLevin Du					regulator-suspend-microvolt = <3000000>;
3078bb878cfSLevin Du				};
3088bb878cfSLevin Du			};
3098bb878cfSLevin Du
3108bb878cfSLevin Du			vcca3v0_codec: LDO_REG5 {
3118bb878cfSLevin Du				regulator-name = "vcca3v0_codec";
3128bb878cfSLevin Du				regulator-always-on;
3138bb878cfSLevin Du				regulator-boot-on;
3148bb878cfSLevin Du				regulator-min-microvolt = <3000000>;
3158bb878cfSLevin Du				regulator-max-microvolt = <3000000>;
3168bb878cfSLevin Du				regulator-state-mem {
3178bb878cfSLevin Du					regulator-off-in-suspend;
3188bb878cfSLevin Du				};
3198bb878cfSLevin Du			};
3208bb878cfSLevin Du
3218bb878cfSLevin Du			vcc_1v5: LDO_REG6 {
3228bb878cfSLevin Du				regulator-name = "vcc_1v5";
3238bb878cfSLevin Du				regulator-always-on;
3248bb878cfSLevin Du				regulator-boot-on;
3258bb878cfSLevin Du				regulator-min-microvolt = <1500000>;
3268bb878cfSLevin Du				regulator-max-microvolt = <1500000>;
3278bb878cfSLevin Du				regulator-state-mem {
3288bb878cfSLevin Du					regulator-on-in-suspend;
3298bb878cfSLevin Du					regulator-suspend-microvolt = <1500000>;
3308bb878cfSLevin Du				};
3318bb878cfSLevin Du			};
3328bb878cfSLevin Du
3338bb878cfSLevin Du			vcca0v9_hdmi: LDO_REG7 {
3348bb878cfSLevin Du				regulator-name = "vcca0v9_hdmi";
3358bb878cfSLevin Du				regulator-always-on;
3368bb878cfSLevin Du				regulator-boot-on;
3378bb878cfSLevin Du				regulator-min-microvolt = <900000>;
3388bb878cfSLevin Du				regulator-max-microvolt = <900000>;
3398bb878cfSLevin Du				regulator-state-mem {
3408bb878cfSLevin Du					regulator-off-in-suspend;
3418bb878cfSLevin Du				};
3428bb878cfSLevin Du			};
3438bb878cfSLevin Du
3448bb878cfSLevin Du			vcc_3v0: LDO_REG8 {
3458bb878cfSLevin Du				regulator-name = "vcc_3v0";
3468bb878cfSLevin Du				regulator-always-on;
3478bb878cfSLevin Du				regulator-boot-on;
3488bb878cfSLevin Du				regulator-min-microvolt = <3000000>;
3498bb878cfSLevin Du				regulator-max-microvolt = <3000000>;
3508bb878cfSLevin Du				regulator-state-mem {
3518bb878cfSLevin Du					regulator-on-in-suspend;
3528bb878cfSLevin Du					regulator-suspend-microvolt = <3000000>;
3538bb878cfSLevin Du				};
3548bb878cfSLevin Du			};
3558bb878cfSLevin Du
3568bb878cfSLevin Du			vcc3v3_s3: vcc_lan: SWITCH_REG1 {
3578bb878cfSLevin Du				regulator-name = "vcc3v3_s3";
3588bb878cfSLevin Du				regulator-always-on;
3598bb878cfSLevin Du				regulator-boot-on;
3608bb878cfSLevin Du				regulator-state-mem {
3618bb878cfSLevin Du					regulator-off-in-suspend;
3628bb878cfSLevin Du				};
3638bb878cfSLevin Du			};
3648bb878cfSLevin Du
3658bb878cfSLevin Du			vcc3v3_s0: SWITCH_REG2 {
3668bb878cfSLevin Du				regulator-name = "vcc3v3_s0";
3678bb878cfSLevin Du				regulator-always-on;
3688bb878cfSLevin Du				regulator-boot-on;
3698bb878cfSLevin Du				regulator-state-mem {
3708bb878cfSLevin Du					regulator-off-in-suspend;
3718bb878cfSLevin Du				};
3728bb878cfSLevin Du			};
3738bb878cfSLevin Du		};
3748bb878cfSLevin Du	};
3758bb878cfSLevin Du
3768bb878cfSLevin Du	vdd_cpu_b: regulator@40 {
3778bb878cfSLevin Du		compatible = "silergy,syr827";
3788bb878cfSLevin Du		reg = <0x40>;
3798bb878cfSLevin Du		fcs,suspend-voltage-selector = <1>;
3808bb878cfSLevin Du		pinctrl-names = "default";
3818bb878cfSLevin Du		pinctrl-0 = <&vsel1_gpio>;
3828bb878cfSLevin Du		regulator-name = "vdd_cpu_b";
3838bb878cfSLevin Du		regulator-min-microvolt = <712500>;
3848bb878cfSLevin Du		regulator-max-microvolt = <1500000>;
3858bb878cfSLevin Du		regulator-ramp-delay = <1000>;
3868bb878cfSLevin Du		regulator-always-on;
3878bb878cfSLevin Du		regulator-boot-on;
3888bb878cfSLevin Du		vin-supply = <&vcc3v3_sys>;
3898bb878cfSLevin Du
3908bb878cfSLevin Du		regulator-state-mem {
3918bb878cfSLevin Du			regulator-off-in-suspend;
3928bb878cfSLevin Du		};
3938bb878cfSLevin Du	};
3948bb878cfSLevin Du
3958bb878cfSLevin Du	vdd_gpu: regulator@41 {
3968bb878cfSLevin Du		compatible = "silergy,syr828";
3978bb878cfSLevin Du		reg = <0x41>;
3988bb878cfSLevin Du		fcs,suspend-voltage-selector = <1>;
3998bb878cfSLevin Du		pinctrl-names = "default";
4008bb878cfSLevin Du		pinctrl-0 = <&vsel2_gpio>;
4018bb878cfSLevin Du		regulator-name = "vdd_gpu";
4028bb878cfSLevin Du		regulator-min-microvolt = <712500>;
4038bb878cfSLevin Du		regulator-max-microvolt = <1500000>;
4048bb878cfSLevin Du		regulator-ramp-delay = <1000>;
4058bb878cfSLevin Du		regulator-always-on;
4068bb878cfSLevin Du		regulator-boot-on;
4078bb878cfSLevin Du		vin-supply = <&vcc3v3_sys>;
4088bb878cfSLevin Du
4098bb878cfSLevin Du		regulator-state-mem {
4108bb878cfSLevin Du			regulator-off-in-suspend;
4118bb878cfSLevin Du		};
4128bb878cfSLevin Du	};
4138bb878cfSLevin Du};
4148bb878cfSLevin Du
4158bb878cfSLevin Du&i2c1 {
4168bb878cfSLevin Du	i2c-scl-rising-time-ns = <300>;
4178bb878cfSLevin Du	i2c-scl-falling-time-ns = <15>;
4188bb878cfSLevin Du	status = "okay";
4198bb878cfSLevin Du};
4208bb878cfSLevin Du
4218bb878cfSLevin Du&i2c3 {
4228bb878cfSLevin Du	i2c-scl-rising-time-ns = <450>;
4238bb878cfSLevin Du	i2c-scl-falling-time-ns = <15>;
4248bb878cfSLevin Du	status = "okay";
4258bb878cfSLevin Du};
4268bb878cfSLevin Du
4278bb878cfSLevin Du&i2c4 {
4288bb878cfSLevin Du	i2c-scl-rising-time-ns = <600>;
4298bb878cfSLevin Du	i2c-scl-falling-time-ns = <20>;
4308bb878cfSLevin Du	status = "okay";
4318bb878cfSLevin Du
4328bb878cfSLevin Du	fusb1: usb-typec@22 {
4338bb878cfSLevin Du		compatible = "fcs,fusb302";
4348bb878cfSLevin Du		reg = <0x22>;
4358bb878cfSLevin Du		interrupt-parent = <&gpio1>;
4368bb878cfSLevin Du		interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
4378bb878cfSLevin Du		pinctrl-names = "default";
4388bb878cfSLevin Du		pinctrl-0 = <&fusb1_int>;
4398bb878cfSLevin Du		vbus-supply = <&vcc_vbus_typec1>;
4408bb878cfSLevin Du		status = "okay";
4418bb878cfSLevin Du	};
4428bb878cfSLevin Du};
4438bb878cfSLevin Du
4448bb878cfSLevin Du&i2c7 {
4458bb878cfSLevin Du	i2c-scl-rising-time-ns = <600>;
4468bb878cfSLevin Du	i2c-scl-falling-time-ns = <20>;
4478bb878cfSLevin Du	status = "okay";
4488bb878cfSLevin Du
4498bb878cfSLevin Du	fusb0: usb-typec@22 {
4508bb878cfSLevin Du		compatible = "fcs,fusb302";
4518bb878cfSLevin Du		reg = <0x22>;
4528bb878cfSLevin Du		interrupt-parent = <&gpio1>;
4538bb878cfSLevin Du		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
4548bb878cfSLevin Du		pinctrl-names = "default";
4558bb878cfSLevin Du		pinctrl-0 = <&fusb0_int>;
4568bb878cfSLevin Du		vbus-supply = <&vcc_vbus_typec0>;
4578bb878cfSLevin Du		status = "okay";
4588bb878cfSLevin Du	};
4598bb878cfSLevin Du};
4608bb878cfSLevin Du
4618bb878cfSLevin Du&i2s0 {
4628bb878cfSLevin Du	rockchip,playback-channels = <8>;
4638bb878cfSLevin Du	rockchip,capture-channels = <8>;
4648bb878cfSLevin Du	status = "okay";
4658bb878cfSLevin Du};
4668bb878cfSLevin Du
4678bb878cfSLevin Du&i2s1 {
4688bb878cfSLevin Du	rockchip,playback-channels = <2>;
4698bb878cfSLevin Du	rockchip,capture-channels = <2>;
4708bb878cfSLevin Du	status = "okay";
4718bb878cfSLevin Du};
4728bb878cfSLevin Du
4738bb878cfSLevin Du&i2s2 {
4748bb878cfSLevin Du	status = "okay";
4758bb878cfSLevin Du};
4768bb878cfSLevin Du
4778bb878cfSLevin Du&io_domains {
4788bb878cfSLevin Du	audio-supply = <&vcca1v8_codec>;
4798bb878cfSLevin Du	bt656-supply = <&vcc_3v0>;
4808bb878cfSLevin Du	gpio1830-supply = <&vcc_3v0>;
4818bb878cfSLevin Du	sdmmc-supply = <&vcc_sdio>;
4828bb878cfSLevin Du	status = "okay";
4838bb878cfSLevin Du};
4848bb878cfSLevin Du
4858bb878cfSLevin Du&pmu_io_domains {
4868bb878cfSLevin Du	pmu1830-supply = <&vcc_3v0>;
4878bb878cfSLevin Du	status = "okay";
4888bb878cfSLevin Du};
4898bb878cfSLevin Du
4908bb878cfSLevin Du&pinctrl {
4918bb878cfSLevin Du	lcd-panel {
4928bb878cfSLevin Du		lcd_panel_reset: lcd-panel-reset {
4938bb878cfSLevin Du			rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
4948bb878cfSLevin Du		};
4958bb878cfSLevin Du	};
4968bb878cfSLevin Du
4978bb878cfSLevin Du	pmic {
4988bb878cfSLevin Du		vsel1_gpio: vsel1-gpio {
4998bb878cfSLevin Du			rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
5008bb878cfSLevin Du		};
5018bb878cfSLevin Du
5028bb878cfSLevin Du		vsel2_gpio: vsel2-gpio {
5038bb878cfSLevin Du			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
5048bb878cfSLevin Du		};
5058bb878cfSLevin Du	};
5068bb878cfSLevin Du
5078bb878cfSLevin Du	sdio-pwrseq {
5088bb878cfSLevin Du		wifi_enable_h: wifi-enable-h {
5098bb878cfSLevin Du			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
5108bb878cfSLevin Du		};
5118bb878cfSLevin Du	};
5128bb878cfSLevin Du
5138bb878cfSLevin Du	pmic {
5148bb878cfSLevin Du		pmic_int_l: pmic-int-l {
5158bb878cfSLevin Du			rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
5168bb878cfSLevin Du		};
5178bb878cfSLevin Du	};
5188bb878cfSLevin Du
5198bb878cfSLevin Du	usb2 {
5208bb878cfSLevin Du		vcc5v0_host_en: vcc5v0-host-en {
5218bb878cfSLevin Du			rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
5228bb878cfSLevin Du		};
5238bb878cfSLevin Du
5248bb878cfSLevin Du		hub_rst: hub-rst {
5258bb878cfSLevin Du			rockchip,pins = <2 RK_PA4 RK_FUNC_GPIO &pcfg_output_high>;
5268bb878cfSLevin Du		};
5278bb878cfSLevin Du	};
5288bb878cfSLevin Du
5298bb878cfSLevin Du	usb-typec {
5308bb878cfSLevin Du		vcc_vbus_typec1_en: vcc-vbus-typec1-en {
5318bb878cfSLevin Du			rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
5328bb878cfSLevin Du		};
5338bb878cfSLevin Du	};
5348bb878cfSLevin Du
5358bb878cfSLevin Du	fusb30x {
5368bb878cfSLevin Du		fusb0_int: fusb0-int {
5378bb878cfSLevin Du			rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
5388bb878cfSLevin Du		};
5398bb878cfSLevin Du
5408bb878cfSLevin Du		fusb1_int: fusb1-int {
5418bb878cfSLevin Du			rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
5428bb878cfSLevin Du		};
5438bb878cfSLevin Du	};
5448bb878cfSLevin Du};
5458bb878cfSLevin Du
5468bb878cfSLevin Du&pwm0 {
5478bb878cfSLevin Du	status = "okay";
5488bb878cfSLevin Du};
5498bb878cfSLevin Du
5508bb878cfSLevin Du&pwm2 {
5518bb878cfSLevin Du	status = "okay";
5528bb878cfSLevin Du};
5538bb878cfSLevin Du
5548bb878cfSLevin Du&saradc {
5558bb878cfSLevin Du	vref-supply = <&vcca1v8_s3>;
5568bb878cfSLevin Du	status = "okay";
5578bb878cfSLevin Du};
5588bb878cfSLevin Du
5598bb878cfSLevin Du&sdmmc {
5608bb878cfSLevin Du	bus-width = <4>;
5618bb878cfSLevin Du	cap-mmc-highspeed;
5628bb878cfSLevin Du	cap-sd-highspeed;
5638bb878cfSLevin Du	cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
5648bb878cfSLevin Du	disable-wp;
5658bb878cfSLevin Du	max-frequency = <150000000>;
5668bb878cfSLevin Du	pinctrl-names = "default";
5678bb878cfSLevin Du	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
5688bb878cfSLevin Du	status = "okay";
5698bb878cfSLevin Du};
5708bb878cfSLevin Du
5718bb878cfSLevin Du&sdhci {
5728bb878cfSLevin Du	bus-width = <8>;
5738bb878cfSLevin Du	mmc-hs400-1_8v;
5748bb878cfSLevin Du	mmc-hs400-enhanced-strobe;
5758bb878cfSLevin Du	non-removable;
5768bb878cfSLevin Du	status = "okay";
5778bb878cfSLevin Du};
5788bb878cfSLevin Du
5798bb878cfSLevin Du&tcphy0 {
5808bb878cfSLevin Du	status = "okay";
5818bb878cfSLevin Du};
5828bb878cfSLevin Du
5838bb878cfSLevin Du&tcphy1 {
5848bb878cfSLevin Du	status = "okay";
5858bb878cfSLevin Du};
5868bb878cfSLevin Du
5878bb878cfSLevin Du&tsadc {
5888bb878cfSLevin Du	/* tshut mode 0:CRU 1:GPIO */
5898bb878cfSLevin Du	rockchip,hw-tshut-mode = <1>;
5908bb878cfSLevin Du	/* tshut polarity 0:LOW 1:HIGH */
5918bb878cfSLevin Du	rockchip,hw-tshut-polarity = <1>;
5928bb878cfSLevin Du	status = "okay";
5938bb878cfSLevin Du};
5948bb878cfSLevin Du
5958bb878cfSLevin Du&u2phy0 {
5968bb878cfSLevin Du	status = "okay";
5978bb878cfSLevin Du
5988bb878cfSLevin Du	u2phy0_otg: otg-port {
5998bb878cfSLevin Du		phy-supply = <&vcc_vbus_typec0>;
6008bb878cfSLevin Du		status = "okay";
6018bb878cfSLevin Du	};
6028bb878cfSLevin Du
6038bb878cfSLevin Du	u2phy0_host: host-port {
6048bb878cfSLevin Du		phy-supply = <&vcc5v0_host>;
6058bb878cfSLevin Du		status = "okay";
6068bb878cfSLevin Du	};
6078bb878cfSLevin Du};
6088bb878cfSLevin Du
6098bb878cfSLevin Du&u2phy1 {
6108bb878cfSLevin Du	status = "okay";
6118bb878cfSLevin Du
6128bb878cfSLevin Du	u2phy1_otg: otg-port {
6138bb878cfSLevin Du		phy-supply = <&vcc_vbus_typec1>;
6148bb878cfSLevin Du		status = "okay";
6158bb878cfSLevin Du	};
6168bb878cfSLevin Du
6178bb878cfSLevin Du	u2phy1_host: host-port {
6188bb878cfSLevin Du		phy-supply = <&vcc5v0_host>;
6198bb878cfSLevin Du		status = "okay";
6208bb878cfSLevin Du	};
6218bb878cfSLevin Du};
6228bb878cfSLevin Du
6238bb878cfSLevin Du&uart0 {
6248bb878cfSLevin Du	pinctrl-names = "default";
6258bb878cfSLevin Du	pinctrl-0 = <&uart0_xfer &uart0_cts>;
6268bb878cfSLevin Du	status = "okay";
6278bb878cfSLevin Du};
6288bb878cfSLevin Du
6298bb878cfSLevin Du&uart2 {
6308bb878cfSLevin Du	status = "okay";
6318bb878cfSLevin Du};
6328bb878cfSLevin Du
6338bb878cfSLevin Du&usb_host0_ehci {
6348bb878cfSLevin Du	status = "okay";
6358bb878cfSLevin Du};
6368bb878cfSLevin Du
6378bb878cfSLevin Du&usb_host0_ohci {
6388bb878cfSLevin Du	status = "okay";
6398bb878cfSLevin Du};
6408bb878cfSLevin Du
6418bb878cfSLevin Du&usb_host1_ehci {
6428bb878cfSLevin Du	status = "okay";
6438bb878cfSLevin Du};
6448bb878cfSLevin Du
6458bb878cfSLevin Du&usb_host1_ohci {
6468bb878cfSLevin Du	status = "okay";
6478bb878cfSLevin Du};
6488bb878cfSLevin Du
6498bb878cfSLevin Du&usbdrd3_0 {
6508bb878cfSLevin Du	status = "okay";
6518bb878cfSLevin Du};
6528bb878cfSLevin Du
6538bb878cfSLevin Du&usbdrd_dwc3_0 {
6548bb878cfSLevin Du	status = "okay";
6558bb878cfSLevin Du};
6568bb878cfSLevin Du
6578bb878cfSLevin Du&usbdrd3_1 {
6588bb878cfSLevin Du	status = "okay";
6598bb878cfSLevin Du};
6608bb878cfSLevin Du
6618bb878cfSLevin Du&usbdrd_dwc3_1 {
6628bb878cfSLevin Du	status = "okay";
6638bb878cfSLevin Du	dr_mode = "host";
6648bb878cfSLevin Du};
6658bb878cfSLevin Du
6668bb878cfSLevin Du&vopb {
6678bb878cfSLevin Du	status = "okay";
6688bb878cfSLevin Du};
6698bb878cfSLevin Du
6708bb878cfSLevin Du&vopb_mmu {
6718bb878cfSLevin Du	status = "okay";
6728bb878cfSLevin Du};
6738bb878cfSLevin Du
6748bb878cfSLevin Du&vopl {
6758bb878cfSLevin Du	status = "okay";
6768bb878cfSLevin Du};
6778bb878cfSLevin Du
6788bb878cfSLevin Du&vopl_mmu {
6798bb878cfSLevin Du	status = "okay";
6808bb878cfSLevin Du};
681