xref: /linux/scripts/dtc/include-prefixes/arm64/rockchip/rk3399-hugsun-x99.dts (revision 115e74a29b530d121891238e9551c4bcdf7b04b5)
13222bcf5SVivek Unune// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
23222bcf5SVivek Unune/dts-v1/;
33222bcf5SVivek Unune#include <dt-bindings/pwm/pwm.h>
43222bcf5SVivek Unune#include <dt-bindings/input/input.h>
5c043dee9SKrzysztof Kozlowski#include <dt-bindings/interrupt-controller/irq.h>
63222bcf5SVivek Unune#include "rk3399.dtsi"
73222bcf5SVivek Unune
83222bcf5SVivek Unune/ {
93222bcf5SVivek Unune	model = "Hugsun X99 TV BOX";
103222bcf5SVivek Unune	compatible = "hugsun,x99", "rockchip,rk3399";
113222bcf5SVivek Unune
125dcbe7e3SHeiko Stuebner	aliases {
135d90cb1eSDragan Simic		ethernet0 = &gmac;
145dcbe7e3SHeiko Stuebner		mmc0 = &sdio0;
155dcbe7e3SHeiko Stuebner		mmc1 = &sdmmc;
165dcbe7e3SHeiko Stuebner		mmc2 = &sdhci;
175dcbe7e3SHeiko Stuebner	};
185dcbe7e3SHeiko Stuebner
193222bcf5SVivek Unune	chosen {
203222bcf5SVivek Unune		stdout-path = "serial2:1500000n8";
213222bcf5SVivek Unune	};
223222bcf5SVivek Unune
233222bcf5SVivek Unune	clkin_gmac: external-gmac-clock {
243222bcf5SVivek Unune		compatible = "fixed-clock";
253222bcf5SVivek Unune		clock-frequency = <125000000>;
263222bcf5SVivek Unune		clock-output-names = "clkin_gmac";
273222bcf5SVivek Unune		#clock-cells = <0>;
283222bcf5SVivek Unune	};
293222bcf5SVivek Unune
30*5c96e633SJohan Jonker	dc_5v: regulator-dc-5v {
313222bcf5SVivek Unune		compatible = "regulator-fixed";
323222bcf5SVivek Unune		regulator-name = "dc_5v";
333222bcf5SVivek Unune		regulator-always-on;
343222bcf5SVivek Unune		regulator-boot-on;
353222bcf5SVivek Unune		regulator-min-microvolt = <5000000>;
363222bcf5SVivek Unune		regulator-max-microvolt = <5000000>;
373222bcf5SVivek Unune	};
383222bcf5SVivek Unune
39cd2fd91eSVivek Unune	ir-receiver {
40cd2fd91eSVivek Unune		compatible = "gpio-ir-receiver";
41cd2fd91eSVivek Unune		gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
42cd2fd91eSVivek Unune		pinctrl-names = "default";
43cd2fd91eSVivek Unune		pinctrl-0 = <&ir_rx>;
44cd2fd91eSVivek Unune	};
45cd2fd91eSVivek Unune
4668c33366SVivek Unune	leds {
4768c33366SVivek Unune		compatible = "gpio-leds";
4868c33366SVivek Unune		pinctrl-names = "default";
49e916d85bSJohan Jonker		pinctrl-0 = <&power_led_pin>;
5068c33366SVivek Unune
51e916d85bSJohan Jonker		power_led: led-0 {
5268c33366SVivek Unune			label = "blue:power";
5368c33366SVivek Unune			gpios = <&gpio4 RK_PC2 GPIO_ACTIVE_HIGH>;
5468c33366SVivek Unune			default-state = "on";
5568c33366SVivek Unune			linux,default-trigger = "default-on";
5668c33366SVivek Unune		};
5768c33366SVivek Unune	};
5868c33366SVivek Unune
59*5c96e633SJohan Jonker	vcc_sys: regulator-vcc-sys {
603222bcf5SVivek Unune		compatible = "regulator-fixed";
613222bcf5SVivek Unune		regulator-name = "vcc_sys";
623222bcf5SVivek Unune		regulator-min-microvolt = <5000000>;
633222bcf5SVivek Unune		regulator-max-microvolt = <5000000>;
643222bcf5SVivek Unune		regulator-always-on;
653222bcf5SVivek Unune		vin-supply = <&dc_5v>;
663222bcf5SVivek Unune	};
673222bcf5SVivek Unune
68*5c96e633SJohan Jonker	vcc_phy: regulator-vcc-phy {
693222bcf5SVivek Unune		compatible = "regulator-fixed";
703222bcf5SVivek Unune		regulator-name = "vcc_phy";
713222bcf5SVivek Unune		regulator-always-on;
723222bcf5SVivek Unune		regulator-boot-on;
733222bcf5SVivek Unune	};
743222bcf5SVivek Unune
75*5c96e633SJohan Jonker	vcc1v8_s0: regulator-vcc1v8-s0 {
763222bcf5SVivek Unune		compatible = "regulator-fixed";
773222bcf5SVivek Unune		regulator-name = "vcc1v8_s0";
783222bcf5SVivek Unune		regulator-min-microvolt = <1800000>;
793222bcf5SVivek Unune		regulator-max-microvolt = <1800000>;
803222bcf5SVivek Unune		regulator-always-on;
813222bcf5SVivek Unune	};
823222bcf5SVivek Unune
83*5c96e633SJohan Jonker	vcc3v3_sys: regulator-vcc3v3-sys {
843222bcf5SVivek Unune		compatible = "regulator-fixed";
853222bcf5SVivek Unune		regulator-name = "vcc3v3_sys";
863222bcf5SVivek Unune		regulator-min-microvolt = <3300000>;
873222bcf5SVivek Unune		regulator-max-microvolt = <3300000>;
883222bcf5SVivek Unune		regulator-always-on;
893222bcf5SVivek Unune		vin-supply = <&vcc_sys>;
903222bcf5SVivek Unune	};
913222bcf5SVivek Unune
92*5c96e633SJohan Jonker	vcc5v0_host: regulator-vcc5v0-host {
933222bcf5SVivek Unune		compatible = "regulator-fixed";
943222bcf5SVivek Unune		enable-active-high;
953222bcf5SVivek Unune		gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
963222bcf5SVivek Unune		pinctrl-names = "default";
973222bcf5SVivek Unune		pinctrl-0 = <&host_vbus_drv>;
983222bcf5SVivek Unune		regulator-name = "vcc5v0_host";
993222bcf5SVivek Unune		regulator-always-on;
1003222bcf5SVivek Unune	};
1013222bcf5SVivek Unune
102*5c96e633SJohan Jonker	vcc5v0_typec: regulator-vcc5v0-typec {
1033222bcf5SVivek Unune		compatible = "regulator-fixed";
1043222bcf5SVivek Unune		enable-active-high;
1053222bcf5SVivek Unune		gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
1063222bcf5SVivek Unune		pinctrl-names = "default";
1073222bcf5SVivek Unune		pinctrl-0 = <&vcc5v0_typec_en>;
1083222bcf5SVivek Unune		regulator-name = "vcc5v0_typec";
1093222bcf5SVivek Unune		regulator-always-on;
1103222bcf5SVivek Unune		vin-supply = <&vcc5v0_usb>;
1113222bcf5SVivek Unune	};
1123222bcf5SVivek Unune
113*5c96e633SJohan Jonker	vcc5v0_usb: regulator-vcc5v0-usb {
1143222bcf5SVivek Unune		compatible = "regulator-fixed";
1153222bcf5SVivek Unune		regulator-name = "vcc5v0_usb";
1163222bcf5SVivek Unune		regulator-always-on;
1173222bcf5SVivek Unune		regulator-boot-on;
1183222bcf5SVivek Unune		regulator-min-microvolt = <5000000>;
1193222bcf5SVivek Unune		regulator-max-microvolt = <5000000>;
1203222bcf5SVivek Unune		vin-supply = <&dc_5v>;
1213222bcf5SVivek Unune	};
1223222bcf5SVivek Unune
123*5c96e633SJohan Jonker	vdd_log: regulator-vdd-log {
1243222bcf5SVivek Unune		compatible = "pwm-regulator";
1253222bcf5SVivek Unune		pwms = <&pwm2 0 25000 1>;
1263222bcf5SVivek Unune		pwm-supply = <&vcc_sys>;
1273222bcf5SVivek Unune		regulator-name = "vdd_log";
1283222bcf5SVivek Unune		regulator-min-microvolt = <800000>;
1293222bcf5SVivek Unune		regulator-max-microvolt = <1400000>;
1303222bcf5SVivek Unune		regulator-always-on;
1313222bcf5SVivek Unune		regulator-boot-on;
1323222bcf5SVivek Unune	};
1333222bcf5SVivek Unune
1343222bcf5SVivek Unune	sdio_pwrseq: sdio-pwrseq {
1353222bcf5SVivek Unune		compatible = "mmc-pwrseq-simple";
1363222bcf5SVivek Unune		clocks = <&rk808 1>;
1373222bcf5SVivek Unune		clock-names = "ext_clock";
1383222bcf5SVivek Unune		pinctrl-names = "default";
1393222bcf5SVivek Unune		pinctrl-0 = <&wifi_reg_on_h>;
1403222bcf5SVivek Unune		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
1413222bcf5SVivek Unune	};
1423222bcf5SVivek Unune
1433222bcf5SVivek Unune};
1443222bcf5SVivek Unune
1453222bcf5SVivek Unune&cpu_l0 {
1463222bcf5SVivek Unune	cpu-supply = <&vdd_cpu_l>;
1473222bcf5SVivek Unune};
1483222bcf5SVivek Unune
1493222bcf5SVivek Unune&cpu_l1 {
1503222bcf5SVivek Unune	cpu-supply = <&vdd_cpu_l>;
1513222bcf5SVivek Unune};
1523222bcf5SVivek Unune
1533222bcf5SVivek Unune&cpu_l2 {
1543222bcf5SVivek Unune	cpu-supply = <&vdd_cpu_l>;
1553222bcf5SVivek Unune};
1563222bcf5SVivek Unune
1573222bcf5SVivek Unune&cpu_l3 {
1583222bcf5SVivek Unune	cpu-supply = <&vdd_cpu_l>;
1593222bcf5SVivek Unune};
1603222bcf5SVivek Unune
1613222bcf5SVivek Unune&cpu_b0 {
1623222bcf5SVivek Unune	cpu-supply = <&vdd_cpu_b>;
1633222bcf5SVivek Unune};
1643222bcf5SVivek Unune
1653222bcf5SVivek Unune&cpu_b1 {
1663222bcf5SVivek Unune	cpu-supply = <&vdd_cpu_b>;
1673222bcf5SVivek Unune};
1683222bcf5SVivek Unune
1693222bcf5SVivek Unune&emmc_phy {
1703222bcf5SVivek Unune	status = "okay";
1713222bcf5SVivek Unune};
1723222bcf5SVivek Unune
1733222bcf5SVivek Unune&gmac {
1743222bcf5SVivek Unune	assigned-clocks = <&cru SCLK_RMII_SRC>;
1753222bcf5SVivek Unune	assigned-clock-parents = <&clkin_gmac>;
1763222bcf5SVivek Unune	clock_in_out = "input";
1773222bcf5SVivek Unune	phy-supply = <&vcc_phy>;
1783222bcf5SVivek Unune	phy-mode = "rgmii";
1793222bcf5SVivek Unune	pinctrl-names = "default";
1803222bcf5SVivek Unune	pinctrl-0 = <&rgmii_pins>;
1813222bcf5SVivek Unune	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
1823222bcf5SVivek Unune	snps,reset-active-low;
1833222bcf5SVivek Unune	snps,reset-delays-us = <0 10000 50000>;
1843222bcf5SVivek Unune	tx_delay = <0x28>;
1853222bcf5SVivek Unune	rx_delay = <0x11>;
1863222bcf5SVivek Unune	status = "okay";
1873222bcf5SVivek Unune};
1883222bcf5SVivek Unune
1893222bcf5SVivek Unune&gpu {
1903222bcf5SVivek Unune	status = "okay";
1913222bcf5SVivek Unune	mali-supply = <&vdd_gpu>;
1923222bcf5SVivek Unune};
1933222bcf5SVivek Unune
1943222bcf5SVivek Unune&hdmi {
1953222bcf5SVivek Unune	ddc-i2c-bus = <&i2c3>;
1963222bcf5SVivek Unune	pinctrl-names = "default";
1973222bcf5SVivek Unune	pinctrl-0 = <&hdmi_cec>;
1983222bcf5SVivek Unune	status = "okay";
1993222bcf5SVivek Unune};
2003222bcf5SVivek Unune
2013222bcf5SVivek Unune&hdmi_sound {
2023222bcf5SVivek Unune	status = "okay";
2033222bcf5SVivek Unune};
2043222bcf5SVivek Unune
2053222bcf5SVivek Unune&i2c0 {
2063222bcf5SVivek Unune	status = "okay";
2073222bcf5SVivek Unune	i2c-scl-rising-time-ns = <180>;
2083222bcf5SVivek Unune	i2c-scl-falling-time-ns = <30>;
2093222bcf5SVivek Unune	clock-frequency = <400000>;
2103222bcf5SVivek Unune
2113222bcf5SVivek Unune	vdd_cpu_b: syr827@40 {
2123222bcf5SVivek Unune		compatible = "silergy,syr827";
2133222bcf5SVivek Unune		reg = <0x40>;
2142bc65fefSJohan Jonker		pinctrl-0 = <&vsel1_pin>;
2153222bcf5SVivek Unune		regulator-name = "vdd_cpu_b";
2163222bcf5SVivek Unune		regulator-min-microvolt = <712500>;
2173222bcf5SVivek Unune		regulator-max-microvolt = <1500000>;
2183222bcf5SVivek Unune		regulator-ramp-delay = <1000>;
2193222bcf5SVivek Unune		fcs,suspend-voltage-selector = <1>;
2203222bcf5SVivek Unune		regulator-always-on;
2213222bcf5SVivek Unune		regulator-boot-on;
2223222bcf5SVivek Unune		vin-supply = <&vcc_sys>;
2233222bcf5SVivek Unune		regulator-state-mem {
2243222bcf5SVivek Unune			regulator-off-in-suspend;
2253222bcf5SVivek Unune		};
2263222bcf5SVivek Unune	};
2273222bcf5SVivek Unune
2283222bcf5SVivek Unune	vdd_gpu: syr828@41 {
2293222bcf5SVivek Unune		compatible = "silergy,syr828";
2303222bcf5SVivek Unune		reg = <0x41>;
2312bc65fefSJohan Jonker		pinctrl-0 = <&vsel2_pin>;
2323222bcf5SVivek Unune		regulator-name = "vdd_gpu";
2333222bcf5SVivek Unune		regulator-min-microvolt = <712500>;
2343222bcf5SVivek Unune		regulator-max-microvolt = <1500000>;
2353222bcf5SVivek Unune		regulator-ramp-delay = <1000>;
2363222bcf5SVivek Unune		fcs,suspend-voltage-selector = <1>;
2373222bcf5SVivek Unune		regulator-always-on;
2383222bcf5SVivek Unune		regulator-boot-on;
2393222bcf5SVivek Unune		vin-supply = <&vcc_sys>;
2403222bcf5SVivek Unune		regulator-initial-mode = <1>;
2413222bcf5SVivek Unune		regulator-state-mem {
2423222bcf5SVivek Unune			regulator-off-in-suspend;
2433222bcf5SVivek Unune		};
2443222bcf5SVivek Unune	};
2453222bcf5SVivek Unune
2463222bcf5SVivek Unune	rk808: pmic@1b {
2473222bcf5SVivek Unune		compatible = "rockchip,rk808";
2483222bcf5SVivek Unune		reg = <0x1b>;
2493222bcf5SVivek Unune		interrupt-parent = <&gpio1>;
2503222bcf5SVivek Unune		interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
2513222bcf5SVivek Unune		pinctrl-names = "default";
2523222bcf5SVivek Unune		pinctrl-0 = <&pmic_int_l>;
2535a49e05bSDiederik de Haas		system-power-controller;
2543222bcf5SVivek Unune		wakeup-source;
2553222bcf5SVivek Unune		#clock-cells = <1>;
2563222bcf5SVivek Unune		clock-output-names = "xin32k", "rtc_clko_wifi";
2573222bcf5SVivek Unune
2583222bcf5SVivek Unune		vcc1-supply = <&vcc_sys>;
2593222bcf5SVivek Unune		vcc2-supply = <&vcc_sys>;
2603222bcf5SVivek Unune		vcc3-supply = <&vcc_sys>;
2613222bcf5SVivek Unune		vcc4-supply = <&vcc_sys>;
2623222bcf5SVivek Unune		vcc6-supply = <&vcc_sys>;
2633222bcf5SVivek Unune		vcc7-supply = <&vcc_sys>;
2643222bcf5SVivek Unune		vcc8-supply = <&vcc3v3_sys>;
2653222bcf5SVivek Unune		vcc9-supply = <&vcc_sys>;
2663222bcf5SVivek Unune		vcc10-supply = <&vcc_sys>;
2673222bcf5SVivek Unune		vcc11-supply = <&vcc_sys>;
2683222bcf5SVivek Unune		vcc12-supply = <&vcc3v3_sys>;
2693222bcf5SVivek Unune		vddio-supply = <&vcc_1v8>;
2703222bcf5SVivek Unune
2713222bcf5SVivek Unune		regulators {
2723222bcf5SVivek Unune			vdd_center: DCDC_REG1 {
2733222bcf5SVivek Unune				regulator-name = "vdd_center";
2743222bcf5SVivek Unune				regulator-min-microvolt = <900000>;
2753222bcf5SVivek Unune				regulator-max-microvolt = <900000>;
2763222bcf5SVivek Unune				regulator-ramp-delay = <6001>;
2773222bcf5SVivek Unune				regulator-always-on;
2783222bcf5SVivek Unune				regulator-boot-on;
2793222bcf5SVivek Unune				regulator-state-mem {
2803222bcf5SVivek Unune					regulator-off-in-suspend;
2813222bcf5SVivek Unune				};
2823222bcf5SVivek Unune			};
2833222bcf5SVivek Unune
2843222bcf5SVivek Unune			vdd_cpu_l: DCDC_REG2 {
2853222bcf5SVivek Unune				regulator-name = "vdd_cpu_l";
2863222bcf5SVivek Unune				regulator-min-microvolt = <750000>;
2873222bcf5SVivek Unune				regulator-max-microvolt = <1350000>;
2883222bcf5SVivek Unune				regulator-ramp-delay = <6001>;
2893222bcf5SVivek Unune				regulator-always-on;
2903222bcf5SVivek Unune				regulator-boot-on;
2913222bcf5SVivek Unune				regulator-state-mem {
2923222bcf5SVivek Unune					regulator-off-in-suspend;
2933222bcf5SVivek Unune				};
2943222bcf5SVivek Unune			};
2953222bcf5SVivek Unune
2963222bcf5SVivek Unune			vcc_ddr: DCDC_REG3 {
2973222bcf5SVivek Unune				regulator-name = "vcc_ddr";
2983222bcf5SVivek Unune				regulator-always-on;
2993222bcf5SVivek Unune				regulator-boot-on;
3003222bcf5SVivek Unune				regulator-state-mem {
3013222bcf5SVivek Unune					regulator-on-in-suspend;
3023222bcf5SVivek Unune				};
3033222bcf5SVivek Unune			};
3043222bcf5SVivek Unune
3053222bcf5SVivek Unune			vcc_1v8: DCDC_REG4 {
3063222bcf5SVivek Unune				regulator-name = "vcc_1v8";
3073222bcf5SVivek Unune				regulator-min-microvolt = <1800000>;
3083222bcf5SVivek Unune				regulator-max-microvolt = <1800000>;
3093222bcf5SVivek Unune				regulator-always-on;
3103222bcf5SVivek Unune				regulator-boot-on;
3113222bcf5SVivek Unune				regulator-state-mem {
3123222bcf5SVivek Unune					regulator-on-in-suspend;
3133222bcf5SVivek Unune					regulator-suspend-microvolt = <1800000>;
3143222bcf5SVivek Unune				};
3153222bcf5SVivek Unune			};
3163222bcf5SVivek Unune
3173222bcf5SVivek Unune			vcc1v8_dvp: LDO_REG1 {
3183222bcf5SVivek Unune				regulator-name = "vcc1v8_dvp";
3193222bcf5SVivek Unune				regulator-min-microvolt = <1800000>;
3203222bcf5SVivek Unune				regulator-max-microvolt = <1800000>;
3213222bcf5SVivek Unune				regulator-always-on;
3223222bcf5SVivek Unune				regulator-boot-on;
3233222bcf5SVivek Unune				regulator-state-mem {
3243222bcf5SVivek Unune					regulator-on-in-suspend;
3253222bcf5SVivek Unune					regulator-suspend-microvolt = <1800000>;
3263222bcf5SVivek Unune				};
3273222bcf5SVivek Unune			};
3283222bcf5SVivek Unune
3293222bcf5SVivek Unune			vcca1v8_hdmi: LDO_REG2 {
3303222bcf5SVivek Unune				regulator-name = "vcca1v8_hdmi";
3313222bcf5SVivek Unune				regulator-min-microvolt = <1800000>;
3323222bcf5SVivek Unune				regulator-max-microvolt = <1800000>;
3333222bcf5SVivek Unune				regulator-always-on;
3343222bcf5SVivek Unune				regulator-boot-on;
3353222bcf5SVivek Unune				regulator-state-mem {
3363222bcf5SVivek Unune					regulator-on-in-suspend;
3373222bcf5SVivek Unune					regulator-suspend-microvolt = <1800000>;
3383222bcf5SVivek Unune				};
3393222bcf5SVivek Unune			};
3403222bcf5SVivek Unune
3413222bcf5SVivek Unune			vcca_1v8: LDO_REG3 {
3423222bcf5SVivek Unune				regulator-name = "vcca_1v8";
3433222bcf5SVivek Unune				regulator-min-microvolt = <1800000>;
3443222bcf5SVivek Unune				regulator-max-microvolt = <1800000>;
3453222bcf5SVivek Unune				regulator-always-on;
3463222bcf5SVivek Unune				regulator-boot-on;
3473222bcf5SVivek Unune				regulator-state-mem {
3483222bcf5SVivek Unune					regulator-on-in-suspend;
3493222bcf5SVivek Unune					regulator-suspend-microvolt = <1800000>;
3503222bcf5SVivek Unune				};
3513222bcf5SVivek Unune			};
3523222bcf5SVivek Unune
3533222bcf5SVivek Unune			vcc_sd: LDO_REG4 {
3543222bcf5SVivek Unune				regulator-name = "vcc_sd";
3553222bcf5SVivek Unune				regulator-min-microvolt = <1800000>;
3563222bcf5SVivek Unune				regulator-max-microvolt = <3300000>;
3573222bcf5SVivek Unune				regulator-always-on;
3583222bcf5SVivek Unune				regulator-boot-on;
3593222bcf5SVivek Unune				regulator-state-mem {
3603222bcf5SVivek Unune					regulator-on-in-suspend;
3613222bcf5SVivek Unune					regulator-suspend-microvolt = <3300000>;
3623222bcf5SVivek Unune				};
3633222bcf5SVivek Unune			};
3643222bcf5SVivek Unune
3653222bcf5SVivek Unune			vcc3v0_sd: LDO_REG5 {
3663222bcf5SVivek Unune				regulator-name = "vcc3v0_sd";
3673222bcf5SVivek Unune				regulator-min-microvolt = <3000000>;
3683222bcf5SVivek Unune				regulator-max-microvolt = <3000000>;
3693222bcf5SVivek Unune				regulator-always-on;
3703222bcf5SVivek Unune				regulator-boot-on;
3713222bcf5SVivek Unune				regulator-state-mem {
3723222bcf5SVivek Unune					regulator-on-in-suspend;
3733222bcf5SVivek Unune					regulator-suspend-microvolt = <3000000>;
3743222bcf5SVivek Unune				};
3753222bcf5SVivek Unune			};
3763222bcf5SVivek Unune
3773222bcf5SVivek Unune			vcc_1v5: LDO_REG6 {
3783222bcf5SVivek Unune				regulator-name = "vcc_1v5";
3793222bcf5SVivek Unune				regulator-min-microvolt = <1500000>;
3803222bcf5SVivek Unune				regulator-max-microvolt = <1500000>;
3813222bcf5SVivek Unune				regulator-always-on;
3823222bcf5SVivek Unune				regulator-boot-on;
3833222bcf5SVivek Unune				regulator-state-mem {
3843222bcf5SVivek Unune					regulator-on-in-suspend;
3853222bcf5SVivek Unune					regulator-suspend-microvolt = <1500000>;
3863222bcf5SVivek Unune				};
3873222bcf5SVivek Unune			};
3883222bcf5SVivek Unune
3893222bcf5SVivek Unune			vcca0v9_hdmi: LDO_REG7 {
3903222bcf5SVivek Unune				regulator-name = "vcca0v9_hdmi";
3913222bcf5SVivek Unune				regulator-min-microvolt = <900000>;
3923222bcf5SVivek Unune				regulator-max-microvolt = <900000>;
3933222bcf5SVivek Unune				regulator-always-on;
3943222bcf5SVivek Unune				regulator-boot-on;
3953222bcf5SVivek Unune				regulator-state-mem {
3963222bcf5SVivek Unune					regulator-on-in-suspend;
3973222bcf5SVivek Unune					regulator-suspend-microvolt = <900000>;
3983222bcf5SVivek Unune				};
3993222bcf5SVivek Unune			};
4003222bcf5SVivek Unune
4013222bcf5SVivek Unune			vcc_3v0: LDO_REG8 {
4023222bcf5SVivek Unune				regulator-name = "vcc_3v0";
4033222bcf5SVivek Unune				regulator-min-microvolt = <3000000>;
4043222bcf5SVivek Unune				regulator-max-microvolt = <3000000>;
4053222bcf5SVivek Unune				regulator-always-on;
4063222bcf5SVivek Unune				regulator-boot-on;
4073222bcf5SVivek Unune				regulator-state-mem {
4083222bcf5SVivek Unune					regulator-on-in-suspend;
4093222bcf5SVivek Unune					regulator-suspend-microvolt = <3000000>;
4103222bcf5SVivek Unune				};
4113222bcf5SVivek Unune			};
4123222bcf5SVivek Unune
4133222bcf5SVivek Unune			vcc3v3_s3: SWITCH_REG1 {
4143222bcf5SVivek Unune				regulator-name = "vcc3v3_s3";
4153222bcf5SVivek Unune				regulator-always-on;
4163222bcf5SVivek Unune				regulator-boot-on;
4173222bcf5SVivek Unune				regulator-state-mem {
4183222bcf5SVivek Unune					regulator-on-in-suspend;
4193222bcf5SVivek Unune				};
4203222bcf5SVivek Unune			};
4213222bcf5SVivek Unune
4223222bcf5SVivek Unune			vcc3v3_s0: SWITCH_REG2 {
4233222bcf5SVivek Unune				regulator-name = "vcc3v3_s0";
4243222bcf5SVivek Unune				regulator-always-on;
4253222bcf5SVivek Unune				regulator-boot-on;
4263222bcf5SVivek Unune				regulator-state-mem {
4273222bcf5SVivek Unune					regulator-on-in-suspend;
4283222bcf5SVivek Unune				};
4293222bcf5SVivek Unune			};
4303222bcf5SVivek Unune		};
4313222bcf5SVivek Unune	};
4323222bcf5SVivek Unune};
4333222bcf5SVivek Unune
4343222bcf5SVivek Unune&i2c1 {
4353222bcf5SVivek Unune	i2c-scl-rising-time-ns = <300>;
4363222bcf5SVivek Unune	i2c-scl-falling-time-ns = <15>;
4373222bcf5SVivek Unune	status = "okay";
4383222bcf5SVivek Unune};
4393222bcf5SVivek Unune
4403222bcf5SVivek Unune&i2c3 {
4413222bcf5SVivek Unune	i2c-scl-rising-time-ns = <450>;
4423222bcf5SVivek Unune	i2c-scl-falling-time-ns = <15>;
4433222bcf5SVivek Unune	status = "okay";
4443222bcf5SVivek Unune};
4453222bcf5SVivek Unune
4463222bcf5SVivek Unune&i2c4 {
4473222bcf5SVivek Unune	i2c-scl-rising-time-ns = <600>;
4483222bcf5SVivek Unune	i2c-scl-falling-time-ns = <40>;
4493222bcf5SVivek Unune	status = "okay";
4503222bcf5SVivek Unune
4513222bcf5SVivek Unune	fusb0: typec-portc@22 {
4523222bcf5SVivek Unune		compatible = "fcs,fusb302";
4533222bcf5SVivek Unune		reg = <0x22>;
4543222bcf5SVivek Unune		interrupt-parent = <&gpio1>;
4553222bcf5SVivek Unune		interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
4563222bcf5SVivek Unune		pinctrl-names = "default";
4573222bcf5SVivek Unune		pinctrl-0 = <&fusb0_int>;
4583222bcf5SVivek Unune		vbus-supply = <&vcc5v0_typec>;
4593222bcf5SVivek Unune		status = "okay";
4603222bcf5SVivek Unune	};
4613222bcf5SVivek Unune};
4623222bcf5SVivek Unune
4633222bcf5SVivek Unune&i2c7 {
4643222bcf5SVivek Unune	status = "okay";
4653222bcf5SVivek Unune};
4663222bcf5SVivek Unune
4673222bcf5SVivek Unune&i2s0 {
4683222bcf5SVivek Unune	rockchip,playback-channels = <8>;
4693222bcf5SVivek Unune	rockchip,capture-channels = <8>;
4703222bcf5SVivek Unune	status = "okay";
4713222bcf5SVivek Unune};
4723222bcf5SVivek Unune
4733222bcf5SVivek Unune&i2s1 {
4743222bcf5SVivek Unune	rockchip,playback-channels = <2>;
4753222bcf5SVivek Unune	rockchip,capture-channels = <2>;
4763222bcf5SVivek Unune	status = "okay";
4773222bcf5SVivek Unune};
4783222bcf5SVivek Unune
4793222bcf5SVivek Unune&i2s2 {
4803222bcf5SVivek Unune	status = "okay";
4813222bcf5SVivek Unune};
4823222bcf5SVivek Unune
4833222bcf5SVivek Unune&io_domains {
4843222bcf5SVivek Unune	status = "okay";
4853222bcf5SVivek Unune	audio-supply = <&vcc1v8_s0>;
4863222bcf5SVivek Unune	bt656-supply = <&vcc1v8_s0>;
4873222bcf5SVivek Unune	gpio1830-supply = <&vcc_3v0>;
4883222bcf5SVivek Unune	sdmmc-supply = <&vcc_sd>;
4893222bcf5SVivek Unune};
4903222bcf5SVivek Unune
4913222bcf5SVivek Unune&pmu_io_domains {
4923222bcf5SVivek Unune	status = "okay";
4933222bcf5SVivek Unune	pmu1830-supply = <&vcc_1v8>;
4943222bcf5SVivek Unune};
4953222bcf5SVivek Unune
4963222bcf5SVivek Unune&pinctrl {
4973222bcf5SVivek Unune	fusb30x {
4983222bcf5SVivek Unune		fusb0_int: fusb0-int {
4993222bcf5SVivek Unune			rockchip,pins =
5003222bcf5SVivek Unune				<1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
5013222bcf5SVivek Unune		};
5023222bcf5SVivek Unune	};
5033222bcf5SVivek Unune
5043222bcf5SVivek Unune	gmac {
5053222bcf5SVivek Unune		rgmii_sleep_pins: rgmii-sleep-pins {
5063222bcf5SVivek Unune			rockchip,pins =
5073222bcf5SVivek Unune				<3 RK_PB7 RK_FUNC_GPIO &pcfg_output_low>;
5083222bcf5SVivek Unune		};
5093222bcf5SVivek Unune	};
5103222bcf5SVivek Unune
511cd2fd91eSVivek Unune	ir {
512cd2fd91eSVivek Unune		ir_rx: ir-rx {
513cd2fd91eSVivek Unune			rockchip,pins = <0 RK_PA6 1 &pcfg_pull_none>;
514cd2fd91eSVivek Unune		};
515cd2fd91eSVivek Unune	};
516cd2fd91eSVivek Unune
51768c33366SVivek Unune	leds {
518e916d85bSJohan Jonker		power_led_pin: power-led-pin {
51968c33366SVivek Unune			rockchip,pins = <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
52068c33366SVivek Unune		};
52168c33366SVivek Unune	};
52268c33366SVivek Unune
5233222bcf5SVivek Unune	pmic {
5243222bcf5SVivek Unune		pmic_int_l: pmic-int-l {
5253222bcf5SVivek Unune			rockchip,pins =
5263222bcf5SVivek Unune				<1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
5273222bcf5SVivek Unune		};
5283222bcf5SVivek Unune
5292bc65fefSJohan Jonker		vsel1_pin: vsel1-pin {
5303222bcf5SVivek Unune			rockchip,pins =
5313222bcf5SVivek Unune				<1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
5323222bcf5SVivek Unune		};
5333222bcf5SVivek Unune
5342bc65fefSJohan Jonker		vsel2_pin: vsel2-pin {
5353222bcf5SVivek Unune			rockchip,pins =
5363222bcf5SVivek Unune				<1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
5373222bcf5SVivek Unune		};
5383222bcf5SVivek Unune	};
5393222bcf5SVivek Unune
5403222bcf5SVivek Unune	sdio {
5413222bcf5SVivek Unune		bt_host_wake_l: bt-host-wake-l {
5423222bcf5SVivek Unune			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
5433222bcf5SVivek Unune		};
5443222bcf5SVivek Unune
5453222bcf5SVivek Unune		bt_reg_on_h: bt-reg-on-h {
5463222bcf5SVivek Unune			/* external pullup to VCC1V8_PMUPLL */
5473222bcf5SVivek Unune			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
5483222bcf5SVivek Unune		};
5493222bcf5SVivek Unune
5503222bcf5SVivek Unune		bt_wake_l: bt-wake-l {
5513222bcf5SVivek Unune			rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
5523222bcf5SVivek Unune		};
5533222bcf5SVivek Unune
5543222bcf5SVivek Unune		wifi_reg_on_h: wifi-reg_on-h {
5553222bcf5SVivek Unune			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
5563222bcf5SVivek Unune		};
5573222bcf5SVivek Unune	};
5583222bcf5SVivek Unune
5593222bcf5SVivek Unune	wifi {
5603222bcf5SVivek Unune		wifi_host_wake_l: wifi-host-wake-l {
5613222bcf5SVivek Unune			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
5623222bcf5SVivek Unune		};
5633222bcf5SVivek Unune	};
5643222bcf5SVivek Unune
5653222bcf5SVivek Unune	usb-typec {
5663222bcf5SVivek Unune		vcc5v0_typec_en: vcc5v0_typec_en {
5673222bcf5SVivek Unune			rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
5683222bcf5SVivek Unune		};
5693222bcf5SVivek Unune	};
5703222bcf5SVivek Unune
5713222bcf5SVivek Unune	usb2 {
5723222bcf5SVivek Unune		host_vbus_drv: host-vbus-drv {
5733222bcf5SVivek Unune			rockchip,pins =
5743222bcf5SVivek Unune				<4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
5753222bcf5SVivek Unune		};
5763222bcf5SVivek Unune	};
5773222bcf5SVivek Unune};
5783222bcf5SVivek Unune
5793222bcf5SVivek Unune&pwm2 {
5803222bcf5SVivek Unune	status = "okay";
5813222bcf5SVivek Unune	pinctrl-0 = <&pwm2_pin_pull_down>;
5823222bcf5SVivek Unune};
5833222bcf5SVivek Unune
5843222bcf5SVivek Unune&saradc {
5853222bcf5SVivek Unune	vref-supply = <&vcc1v8_s0>;
5863222bcf5SVivek Unune	status = "okay";
5873222bcf5SVivek Unune};
5883222bcf5SVivek Unune
5893222bcf5SVivek Unune&sdmmc {
5903222bcf5SVivek Unune	clock-frequency = <150000000>;
591b6e62d37SJohan Jonker	max-frequency = <150000000>;
5923222bcf5SVivek Unune	bus-width = <4>;
5933222bcf5SVivek Unune	cap-mmc-highspeed;
5943222bcf5SVivek Unune	cap-sd-highspeed;
5953222bcf5SVivek Unune	disable-wp;
5963222bcf5SVivek Unune	vqmmc-supply = <&vcc_sd>;
5973222bcf5SVivek Unune	pinctrl-names = "default";
5983222bcf5SVivek Unune	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
5993222bcf5SVivek Unune	card-detect-delay = <800>;
6003222bcf5SVivek Unune	status = "okay";
6013222bcf5SVivek Unune};
6023222bcf5SVivek Unune
6033222bcf5SVivek Unune&sdhci {
6043222bcf5SVivek Unune	bus-width = <8>;
6053222bcf5SVivek Unune	mmc-hs400-1_8v;
6063222bcf5SVivek Unune	mmc-hs400-enhanced-strobe;
6073222bcf5SVivek Unune	non-removable;
6083222bcf5SVivek Unune	keep-power-in-suspend;
6093222bcf5SVivek Unune	status = "okay";
6103222bcf5SVivek Unune};
6113222bcf5SVivek Unune
6123222bcf5SVivek Unune&sdio0 {
6133222bcf5SVivek Unune	bus-width = <4>;
6143222bcf5SVivek Unune	clock-frequency = <50000000>;
6153222bcf5SVivek Unune	cap-sdio-irq;
6163222bcf5SVivek Unune	cap-sd-highspeed;
6173222bcf5SVivek Unune	keep-power-in-suspend;
6183222bcf5SVivek Unune	mmc-pwrseq = <&sdio_pwrseq>;
6193222bcf5SVivek Unune	non-removable;
6203222bcf5SVivek Unune	pinctrl-names = "default";
6213222bcf5SVivek Unune	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
6223222bcf5SVivek Unune	sd-uhs-sdr104;
6233222bcf5SVivek Unune	#address-cells = <1>;
6243222bcf5SVivek Unune	#size-cells = <0>;
6253222bcf5SVivek Unune	status = "okay";
6263222bcf5SVivek Unune
6273222bcf5SVivek Unune	brcmf: wifi@1 {
6283222bcf5SVivek Unune		compatible = "brcm,bcm4329-fmac";
6293222bcf5SVivek Unune		reg = <1>;
6303222bcf5SVivek Unune		interrupt-parent = <&gpio0>;
631c043dee9SKrzysztof Kozlowski		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
6323222bcf5SVivek Unune		interrupt-names = "host-wake";
6333222bcf5SVivek Unune		pinctrl-names = "default";
6343222bcf5SVivek Unune		pinctrl-0 = <&wifi_host_wake_l>;
6353222bcf5SVivek Unune	};
6363222bcf5SVivek Unune};
6373222bcf5SVivek Unune
6383222bcf5SVivek Unune&spdif {
6393222bcf5SVivek Unune	status = "okay";
6403222bcf5SVivek Unune	pinctrl-0 = <&spdif_bus_1>;
6413222bcf5SVivek Unune};
6423222bcf5SVivek Unune
6433222bcf5SVivek Unune&spi1 {
6443222bcf5SVivek Unune	status = "okay";
6453222bcf5SVivek Unune
6463222bcf5SVivek Unune	flash@0 {
6473222bcf5SVivek Unune		compatible = "jedec,spi-nor";
6483222bcf5SVivek Unune		#address-cells = <1>;
6493222bcf5SVivek Unune		#size-cells = <1>;
6503222bcf5SVivek Unune		reg = <0>;
6513222bcf5SVivek Unune		spi-max-frequency = <10000000>;
6523222bcf5SVivek Unune	};
6533222bcf5SVivek Unune};
6543222bcf5SVivek Unune
6553222bcf5SVivek Unune&tcphy0 {
6563222bcf5SVivek Unune	status = "okay";
6573222bcf5SVivek Unune};
6583222bcf5SVivek Unune
6593222bcf5SVivek Unune&tcphy1 {
6603222bcf5SVivek Unune	status = "okay";
6613222bcf5SVivek Unune};
6623222bcf5SVivek Unune
6633222bcf5SVivek Unune&tsadc {
6643222bcf5SVivek Unune	/* tshut mode 0:CRU 1:GPIO */
6653222bcf5SVivek Unune	rockchip,hw-tshut-mode = <1>;
6663222bcf5SVivek Unune	/* tshut polarity 0:LOW 1:HIGH */
6673222bcf5SVivek Unune	rockchip,hw-tshut-polarity = <1>;
6683222bcf5SVivek Unune	rockchip,hw-tshut-temp = <110000>;
6693222bcf5SVivek Unune	status = "okay";
6703222bcf5SVivek Unune};
6713222bcf5SVivek Unune
6723222bcf5SVivek Unune&u2phy0 {
6733222bcf5SVivek Unune	status = "okay";
6743222bcf5SVivek Unune
6753222bcf5SVivek Unune	u2phy0_host: host-port {
676389206e8SVivek Unune		phy-supply = <&vcc5v0_typec>;
6773222bcf5SVivek Unune		status = "okay";
6783222bcf5SVivek Unune	};
6793222bcf5SVivek Unune
6803222bcf5SVivek Unune	u2phy0_otg: otg-port {
6813222bcf5SVivek Unune		status = "okay";
6823222bcf5SVivek Unune	};
6833222bcf5SVivek Unune};
6843222bcf5SVivek Unune
6853222bcf5SVivek Unune&u2phy1 {
6863222bcf5SVivek Unune	status = "okay";
6873222bcf5SVivek Unune
6883222bcf5SVivek Unune	u2phy1_host: host-port {
6893222bcf5SVivek Unune		phy-supply = <&vcc5v0_host>;
6903222bcf5SVivek Unune		status = "okay";
6913222bcf5SVivek Unune	};
6923222bcf5SVivek Unune
6933222bcf5SVivek Unune	u2phy1_otg: otg-port {
6943222bcf5SVivek Unune		status = "okay";
6953222bcf5SVivek Unune	};
6963222bcf5SVivek Unune};
6973222bcf5SVivek Unune
6983222bcf5SVivek Unune&uart0 {
6993222bcf5SVivek Unune	pinctrl-names = "default";
7003222bcf5SVivek Unune	pinctrl-0 = <&uart0_xfer &uart0_rts &uart0_cts>;
7013222bcf5SVivek Unune	status = "okay";
7023222bcf5SVivek Unune
7033222bcf5SVivek Unune	bluetooth {
7043222bcf5SVivek Unune		compatible = "brcm,bcm43438-bt";
7053222bcf5SVivek Unune		clocks = <&rk808 1>;
7063222bcf5SVivek Unune		clock-names = "ext_clock";
7073222bcf5SVivek Unune		device-wakeup-gpios = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>;
7083222bcf5SVivek Unune		host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
7093222bcf5SVivek Unune		shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
7103222bcf5SVivek Unune		max-speed = <4000000>;
7113222bcf5SVivek Unune		pinctrl-names = "default";
7123222bcf5SVivek Unune		pinctrl-0 = <&bt_reg_on_h &bt_host_wake_l &bt_wake_l>;
7133222bcf5SVivek Unune		vbat-supply = <&vcc3v3_sys>;
7143222bcf5SVivek Unune		vddio-supply = <&vcc_1v8>;
7153222bcf5SVivek Unune	};
7163222bcf5SVivek Unune};
7173222bcf5SVivek Unune
7183222bcf5SVivek Unune&uart2 {
7193222bcf5SVivek Unune	status = "okay";
7203222bcf5SVivek Unune};
7213222bcf5SVivek Unune
7223222bcf5SVivek Unune&usb_host0_ehci {
7233222bcf5SVivek Unune	status = "okay";
7243222bcf5SVivek Unune};
7253222bcf5SVivek Unune
7263222bcf5SVivek Unune&usb_host0_ohci {
7273222bcf5SVivek Unune	status = "okay";
7283222bcf5SVivek Unune};
7293222bcf5SVivek Unune
7303222bcf5SVivek Unune&usb_host1_ehci {
7313222bcf5SVivek Unune	status = "okay";
7323222bcf5SVivek Unune};
7333222bcf5SVivek Unune
7343222bcf5SVivek Unune&usb_host1_ohci {
7353222bcf5SVivek Unune	status = "okay";
7363222bcf5SVivek Unune};
7373222bcf5SVivek Unune
7383222bcf5SVivek Unune&usbdrd3_0 {
7393222bcf5SVivek Unune	status = "okay";
7403222bcf5SVivek Unune};
7413222bcf5SVivek Unune
7423222bcf5SVivek Unune&usbdrd_dwc3_0 {
7433222bcf5SVivek Unune	status = "okay";
744389206e8SVivek Unune	dr_mode = "host";
7453222bcf5SVivek Unune};
7463222bcf5SVivek Unune
7473222bcf5SVivek Unune&usbdrd3_1 {
7483222bcf5SVivek Unune	status = "okay";
7493222bcf5SVivek Unune};
7503222bcf5SVivek Unune
7513222bcf5SVivek Unune&usbdrd_dwc3_1 {
7523222bcf5SVivek Unune	status = "okay";
7533222bcf5SVivek Unune	dr_mode = "host";
7543222bcf5SVivek Unune};
7553222bcf5SVivek Unune
7563222bcf5SVivek Unune&vopb {
7573222bcf5SVivek Unune	status = "okay";
7583222bcf5SVivek Unune};
7593222bcf5SVivek Unune
7603222bcf5SVivek Unune&vopb_mmu {
7613222bcf5SVivek Unune	status = "okay";
7623222bcf5SVivek Unune};
763