15a65505aSTobias Schramm// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
25a65505aSTobias Schramm/*
35a65505aSTobias Schramm * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
45a65505aSTobias Schramm * Copyright (c) 2018 Akash Gajjar <Akash_Gajjar@mentor.com>
55a65505aSTobias Schramm * Copyright (c) 2020 Tobias Schramm <t.schramm@manjaro.org>
65a65505aSTobias Schramm */
75a65505aSTobias Schramm
85a65505aSTobias Schramm/dts-v1/;
95a65505aSTobias Schramm#include <dt-bindings/input/gpio-keys.h>
105a65505aSTobias Schramm#include <dt-bindings/input/linux-event-codes.h>
115a65505aSTobias Schramm#include <dt-bindings/pwm/pwm.h>
125a65505aSTobias Schramm#include <dt-bindings/usb/pd.h>
135a65505aSTobias Schramm#include <dt-bindings/leds/common.h>
145a65505aSTobias Schramm#include "rk3399.dtsi"
155a65505aSTobias Schramm#include "rk3399-opp.dtsi"
165a65505aSTobias Schramm
175a65505aSTobias Schramm/ {
185a65505aSTobias Schramm	model = "Pine64 Pinebook Pro";
195a65505aSTobias Schramm	compatible = "pine64,pinebook-pro", "rockchip,rk3399";
205a65505aSTobias Schramm
215a65505aSTobias Schramm	chosen {
225a65505aSTobias Schramm		stdout-path = "serial2:1500000n8";
235a65505aSTobias Schramm	};
245a65505aSTobias Schramm
255a65505aSTobias Schramm	backlight: edp-backlight {
265a65505aSTobias Schramm		compatible = "pwm-backlight";
275a65505aSTobias Schramm		power-supply = <&vcc_12v>;
285a65505aSTobias Schramm		pwms = <&pwm0 0 740740 0>;
295a65505aSTobias Schramm	};
305a65505aSTobias Schramm
315a65505aSTobias Schramm	edp_panel: edp-panel {
325a65505aSTobias Schramm		compatible = "boe,nv140fhmn49";
335a65505aSTobias Schramm		backlight = <&backlight>;
345a65505aSTobias Schramm		enable-gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
355a65505aSTobias Schramm		pinctrl-names = "default";
365a65505aSTobias Schramm		pinctrl-0 = <&panel_en_gpio>;
375a65505aSTobias Schramm		power-supply = <&vcc3v3_panel>;
385a65505aSTobias Schramm
395a65505aSTobias Schramm		ports {
405a65505aSTobias Schramm			#address-cells = <1>;
415a65505aSTobias Schramm			#size-cells = <0>;
425a65505aSTobias Schramm
435a65505aSTobias Schramm			port@0 {
445a65505aSTobias Schramm				reg = <0>;
455a65505aSTobias Schramm				#address-cells = <1>;
465a65505aSTobias Schramm				#size-cells = <0>;
475a65505aSTobias Schramm
485a65505aSTobias Schramm				panel_in_edp: endpoint@0 {
495a65505aSTobias Schramm					reg = <0>;
505a65505aSTobias Schramm					remote-endpoint = <&edp_out_panel>;
515a65505aSTobias Schramm				};
525a65505aSTobias Schramm			};
535a65505aSTobias Schramm		};
545a65505aSTobias Schramm	};
555a65505aSTobias Schramm
565a65505aSTobias Schramm	/*
575a65505aSTobias Schramm	 * Use separate nodes for gpio-keys to allow for selective deactivation
585a65505aSTobias Schramm	 * of wakeup sources via sysfs without disabling the whole key
595a65505aSTobias Schramm	 */
605a65505aSTobias Schramm	gpio-key-lid {
615a65505aSTobias Schramm		compatible = "gpio-keys";
625a65505aSTobias Schramm		pinctrl-names = "default";
635a65505aSTobias Schramm		pinctrl-0 = <&lidbtn_gpio>;
645a65505aSTobias Schramm
655a65505aSTobias Schramm		lid {
665a65505aSTobias Schramm			debounce-interval = <20>;
675a65505aSTobias Schramm			gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_LOW>;
685a65505aSTobias Schramm			label = "Lid";
695a65505aSTobias Schramm			linux,code = <SW_LID>;
705a65505aSTobias Schramm			linux,input-type = <EV_SW>;
715a65505aSTobias Schramm			wakeup-event-action = <EV_ACT_DEASSERTED>;
725a65505aSTobias Schramm			wakeup-source;
735a65505aSTobias Schramm		};
745a65505aSTobias Schramm	};
755a65505aSTobias Schramm
765a65505aSTobias Schramm	gpio-key-power {
775a65505aSTobias Schramm		compatible = "gpio-keys";
785a65505aSTobias Schramm		pinctrl-names = "default";
795a65505aSTobias Schramm		pinctrl-0 = <&pwrbtn_gpio>;
805a65505aSTobias Schramm
815a65505aSTobias Schramm		power {
825a65505aSTobias Schramm			debounce-interval = <20>;
835a65505aSTobias Schramm			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
845a65505aSTobias Schramm			label = "Power";
855a65505aSTobias Schramm			linux,code = <KEY_POWER>;
865a65505aSTobias Schramm			wakeup-source;
875a65505aSTobias Schramm		};
885a65505aSTobias Schramm	};
895a65505aSTobias Schramm
905a65505aSTobias Schramm	leds {
915a65505aSTobias Schramm		compatible = "gpio-leds";
925a65505aSTobias Schramm		pinctrl-names = "default";
935a65505aSTobias Schramm		pinctrl-0 = <&pwrled_gpio &slpled_gpio>;
945a65505aSTobias Schramm
955a65505aSTobias Schramm		green-led {
965a65505aSTobias Schramm			color = <LED_COLOR_ID_GREEN>;
975a65505aSTobias Schramm			default-state = "on";
985a65505aSTobias Schramm			function = LED_FUNCTION_POWER;
995a65505aSTobias Schramm			gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
1005a65505aSTobias Schramm			label = "green:power";
1015a65505aSTobias Schramm		};
1025a65505aSTobias Schramm
1035a65505aSTobias Schramm		red-led {
1045a65505aSTobias Schramm			color = <LED_COLOR_ID_RED>;
1055a65505aSTobias Schramm			default-state = "off";
1065a65505aSTobias Schramm			function = LED_FUNCTION_STANDBY;
1075a65505aSTobias Schramm			gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
1085a65505aSTobias Schramm			label = "red:standby";
1095a65505aSTobias Schramm			panic-indicator;
1105a65505aSTobias Schramm			retain-state-suspended;
1115a65505aSTobias Schramm		};
1125a65505aSTobias Schramm	};
1135a65505aSTobias Schramm
1145a65505aSTobias Schramm	/* Power sequence for SDIO WiFi module */
1155a65505aSTobias Schramm	sdio_pwrseq: sdio-pwrseq {
1165a65505aSTobias Schramm		compatible = "mmc-pwrseq-simple";
1175a65505aSTobias Schramm		clocks = <&rk808 1>;
1185a65505aSTobias Schramm		clock-names = "ext_clock";
1195a65505aSTobias Schramm		pinctrl-names = "default";
1205a65505aSTobias Schramm		pinctrl-0 = <&wifi_enable_h_gpio>;
1215a65505aSTobias Schramm		post-power-on-delay-ms = <100>;
1225a65505aSTobias Schramm		power-off-delay-us = <500000>;
1235a65505aSTobias Schramm
1245a65505aSTobias Schramm		/* WL_REG_ON on module */
1255a65505aSTobias Schramm		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
1265a65505aSTobias Schramm	};
1275a65505aSTobias Schramm
1285a65505aSTobias Schramm	/* Audio components */
1295a65505aSTobias Schramm	es8316-sound {
1305a65505aSTobias Schramm		compatible = "simple-audio-card";
1315a65505aSTobias Schramm		pinctrl-names = "default";
1325a65505aSTobias Schramm		pinctrl-0 = <&hp_det_gpio>;
1335a65505aSTobias Schramm		simple-audio-card,name = "rockchip,es8316-codec";
1345a65505aSTobias Schramm		simple-audio-card,format = "i2s";
1355a65505aSTobias Schramm		simple-audio-card,mclk-fs = <256>;
1365a65505aSTobias Schramm
1375a65505aSTobias Schramm		simple-audio-card,widgets =
1385a65505aSTobias Schramm			"Microphone", "Mic Jack",
1395a65505aSTobias Schramm			"Headphone", "Headphones",
1405a65505aSTobias Schramm			"Speaker", "Speaker";
1415a65505aSTobias Schramm		simple-audio-card,routing =
1425a65505aSTobias Schramm			"MIC1", "Mic Jack",
1435a65505aSTobias Schramm			"Headphones", "HPOL",
1445a65505aSTobias Schramm			"Headphones", "HPOR",
1455a65505aSTobias Schramm			"Speaker Amplifier INL", "HPOL",
1465a65505aSTobias Schramm			"Speaker Amplifier INR", "HPOR",
1475a65505aSTobias Schramm			"Speaker", "Speaker Amplifier OUTL",
1485a65505aSTobias Schramm			"Speaker", "Speaker Amplifier OUTR";
1495a65505aSTobias Schramm
15040df91a8STobias Schramm		simple-audio-card,hp-det-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>;
1515a65505aSTobias Schramm		simple-audio-card,aux-devs = <&speaker_amp>;
1525a65505aSTobias Schramm		simple-audio-card,pin-switches = "Speaker";
1535a65505aSTobias Schramm
1545a65505aSTobias Schramm		simple-audio-card,cpu {
1555a65505aSTobias Schramm			sound-dai = <&i2s1>;
1565a65505aSTobias Schramm		};
1575a65505aSTobias Schramm
1585a65505aSTobias Schramm		simple-audio-card,codec {
1595a65505aSTobias Schramm			sound-dai = <&es8316>;
1605a65505aSTobias Schramm		};
1615a65505aSTobias Schramm	};
1625a65505aSTobias Schramm
1635a65505aSTobias Schramm	speaker_amp: speaker-amplifier {
1645a65505aSTobias Schramm		compatible = "simple-audio-amplifier";
1655a65505aSTobias Schramm		enable-gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>;
1665a65505aSTobias Schramm		sound-name-prefix = "Speaker Amplifier";
1675a65505aSTobias Schramm		VCC-supply = <&pa_5v>;
1685a65505aSTobias Schramm	};
1695a65505aSTobias Schramm
1705a65505aSTobias Schramm	/* Power tree */
1715a65505aSTobias Schramm	/* Root power source */
1725a65505aSTobias Schramm	vcc_sysin: vcc-sysin {
1735a65505aSTobias Schramm		compatible = "regulator-fixed";
1745a65505aSTobias Schramm		regulator-name = "vcc_sysin";
1755a65505aSTobias Schramm		regulator-always-on;
1765a65505aSTobias Schramm		regulator-boot-on;
1775a65505aSTobias Schramm	};
1785a65505aSTobias Schramm
1795a65505aSTobias Schramm	/* Regulators supplied by vcc_sysin */
1805a65505aSTobias Schramm	/* LCD backlight supply */
1815a65505aSTobias Schramm	vcc_12v: vcc-12v {
1825a65505aSTobias Schramm		compatible = "regulator-fixed";
1835a65505aSTobias Schramm		regulator-name = "vcc_12v";
1845a65505aSTobias Schramm		regulator-always-on;
1855a65505aSTobias Schramm		regulator-boot-on;
1865a65505aSTobias Schramm		regulator-min-microvolt = <12000000>;
1875a65505aSTobias Schramm		regulator-max-microvolt = <12000000>;
1885a65505aSTobias Schramm		vin-supply = <&vcc_sysin>;
1895a65505aSTobias Schramm
1905a65505aSTobias Schramm		regulator-state-mem {
1915a65505aSTobias Schramm			regulator-off-in-suspend;
1925a65505aSTobias Schramm		};
1935a65505aSTobias Schramm	};
1945a65505aSTobias Schramm
1955a65505aSTobias Schramm	/* Main 3.3 V supply */
1965a65505aSTobias Schramm	vcc3v3_sys: wifi_bat: vcc3v3-sys {
1975a65505aSTobias Schramm		compatible = "regulator-fixed";
1985a65505aSTobias Schramm		regulator-name = "vcc3v3_sys";
1995a65505aSTobias Schramm		regulator-always-on;
2005a65505aSTobias Schramm		regulator-boot-on;
2015a65505aSTobias Schramm		regulator-min-microvolt = <3300000>;
2025a65505aSTobias Schramm		regulator-max-microvolt = <3300000>;
2035a65505aSTobias Schramm		vin-supply = <&vcc_sysin>;
2045a65505aSTobias Schramm
2055a65505aSTobias Schramm		regulator-state-mem {
2065a65505aSTobias Schramm			regulator-on-in-suspend;
2075a65505aSTobias Schramm		};
2085a65505aSTobias Schramm	};
2095a65505aSTobias Schramm
2105a65505aSTobias Schramm	/* 5 V USB power supply */
2115a65505aSTobias Schramm	vcc5v0_usb: pa_5v: vcc5v0-usb-regulator {
2125a65505aSTobias Schramm		compatible = "regulator-fixed";
2135a65505aSTobias Schramm		enable-active-high;
2145a65505aSTobias Schramm		gpio = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
2155a65505aSTobias Schramm		pinctrl-names = "default";
2165a65505aSTobias Schramm		pinctrl-0 = <&pwr_5v_gpio>;
2175a65505aSTobias Schramm		regulator-name = "vcc5v0_usb";
2185a65505aSTobias Schramm		regulator-always-on;
2195a65505aSTobias Schramm		regulator-min-microvolt = <5000000>;
2205a65505aSTobias Schramm		regulator-max-microvolt = <5000000>;
2215a65505aSTobias Schramm		vin-supply = <&vcc_sysin>;
2225a65505aSTobias Schramm
2235a65505aSTobias Schramm		regulator-state-mem {
2245a65505aSTobias Schramm			regulator-off-in-suspend;
2255a65505aSTobias Schramm		};
2265a65505aSTobias Schramm	};
2275a65505aSTobias Schramm
2285a65505aSTobias Schramm	/* RK3399 logic supply */
2295a65505aSTobias Schramm	vdd_log: vdd-log {
2305a65505aSTobias Schramm		compatible = "pwm-regulator";
2315a65505aSTobias Schramm		pwms = <&pwm2 0 25000 1>;
2325a65505aSTobias Schramm		regulator-name = "vdd_log";
2335a65505aSTobias Schramm		regulator-always-on;
2345a65505aSTobias Schramm		regulator-boot-on;
2355a65505aSTobias Schramm		regulator-min-microvolt = <800000>;
2365a65505aSTobias Schramm		regulator-max-microvolt = <1400000>;
2375a65505aSTobias Schramm		vin-supply = <&vcc_sysin>;
2385a65505aSTobias Schramm
2395a65505aSTobias Schramm		regulator-state-mem {
2405a65505aSTobias Schramm			regulator-on-in-suspend;
2415a65505aSTobias Schramm		};
2425a65505aSTobias Schramm	};
2435a65505aSTobias Schramm
2445a65505aSTobias Schramm	/* Regulators supplied by vcc3v3_sys */
2455a65505aSTobias Schramm	/* 0.9 V supply, always on */
2465a65505aSTobias Schramm	vcc_0v9: vcc-0v9 {
2475a65505aSTobias Schramm		compatible = "regulator-fixed";
2485a65505aSTobias Schramm		regulator-name = "vcc_0v9";
2495a65505aSTobias Schramm		regulator-always-on;
2505a65505aSTobias Schramm		regulator-boot-on;
2515a65505aSTobias Schramm		regulator-min-microvolt = <900000>;
2525a65505aSTobias Schramm		regulator-max-microvolt = <900000>;
2535a65505aSTobias Schramm		vin-supply = <&vcc3v3_sys>;
2545a65505aSTobias Schramm	};
2555a65505aSTobias Schramm
2565a65505aSTobias Schramm	/* S3 1.8 V supply, switched by vcc1v8_s3 */
2575a65505aSTobias Schramm	vcca1v8_s3: vcc1v8-s3 {
2585a65505aSTobias Schramm		compatible = "regulator-fixed";
2595a65505aSTobias Schramm		regulator-name = "vcca1v8_s3";
2605a65505aSTobias Schramm		regulator-always-on;
2615a65505aSTobias Schramm		regulator-boot-on;
2625a65505aSTobias Schramm		regulator-min-microvolt = <1800000>;
2635a65505aSTobias Schramm		regulator-max-microvolt = <1800000>;
2645a65505aSTobias Schramm		vin-supply = <&vcc3v3_sys>;
2655a65505aSTobias Schramm	};
2665a65505aSTobias Schramm
2675a65505aSTobias Schramm	/* micro SD card power */
2685a65505aSTobias Schramm	vcc3v0_sd: vcc3v0-sd {
2695a65505aSTobias Schramm		compatible = "regulator-fixed";
2705a65505aSTobias Schramm		enable-active-high;
2715a65505aSTobias Schramm		gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
2725a65505aSTobias Schramm		pinctrl-names = "default";
2735a65505aSTobias Schramm		pinctrl-0 = <&sdmmc0_pwr_h_gpio>;
2745a65505aSTobias Schramm		regulator-name = "vcc3v0_sd";
2755a65505aSTobias Schramm		regulator-always-on;
2765a65505aSTobias Schramm		regulator-min-microvolt = <3000000>;
2775a65505aSTobias Schramm		regulator-max-microvolt = <3000000>;
2785a65505aSTobias Schramm		vin-supply = <&vcc3v3_sys>;
2795a65505aSTobias Schramm
2805a65505aSTobias Schramm		regulator-state-mem {
2815a65505aSTobias Schramm			regulator-off-in-suspend;
2825a65505aSTobias Schramm		};
2835a65505aSTobias Schramm	};
2845a65505aSTobias Schramm
2855a65505aSTobias Schramm	/* LCD panel power, called VCC3V3_S0 in schematic */
2865a65505aSTobias Schramm	vcc3v3_panel: vcc3v3-panel {
2875a65505aSTobias Schramm		compatible = "regulator-fixed";
2885a65505aSTobias Schramm		enable-active-high;
2895a65505aSTobias Schramm		gpio = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>;
2905a65505aSTobias Schramm		pinctrl-names = "default";
2915a65505aSTobias Schramm		pinctrl-0 = <&lcdvcc_en_gpio>;
2925a65505aSTobias Schramm		regulator-name = "vcc3v3_panel";
2935a65505aSTobias Schramm		regulator-always-on;
2945a65505aSTobias Schramm		regulator-min-microvolt = <3300000>;
2955a65505aSTobias Schramm		regulator-max-microvolt = <3300000>;
2965a65505aSTobias Schramm		regulator-enable-ramp-delay = <100000>;
2975a65505aSTobias Schramm		vin-supply = <&vcc3v3_sys>;
2985a65505aSTobias Schramm
2995a65505aSTobias Schramm		regulator-state-mem {
3005a65505aSTobias Schramm			regulator-off-in-suspend;
3015a65505aSTobias Schramm		};
3025a65505aSTobias Schramm	};
3035a65505aSTobias Schramm
3045a65505aSTobias Schramm	/* M.2 adapter power, switched by vcc1v8_s3 */
3055a65505aSTobias Schramm	vcc3v3_ssd: vcc3v3-ssd {
3065a65505aSTobias Schramm		compatible = "regulator-fixed";
3075a65505aSTobias Schramm		regulator-name = "vcc3v3_ssd";
3085a65505aSTobias Schramm		regulator-min-microvolt = <3300000>;
3095a65505aSTobias Schramm		regulator-max-microvolt = <3300000>;
3105a65505aSTobias Schramm		vin-supply = <&vcc3v3_sys>;
3115a65505aSTobias Schramm	};
3125a65505aSTobias Schramm
3135a65505aSTobias Schramm	/* Regulators supplied by vcc5v0_usb */
3145a65505aSTobias Schramm	/* USB 3 port power supply regulator  */
3155a65505aSTobias Schramm	vcc5v0_otg: vcc5v0-otg {
3165a65505aSTobias Schramm		compatible = "regulator-fixed";
3175a65505aSTobias Schramm		enable-active-high;
3185a65505aSTobias Schramm		gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
3195a65505aSTobias Schramm		pinctrl-names = "default";
3205a65505aSTobias Schramm		pinctrl-0 = <&vcc5v0_host_en_gpio>;
3215a65505aSTobias Schramm		regulator-name = "vcc5v0_otg";
3225a65505aSTobias Schramm		regulator-always-on;
3235a65505aSTobias Schramm		regulator-min-microvolt = <5000000>;
3245a65505aSTobias Schramm		regulator-max-microvolt = <5000000>;
3255a65505aSTobias Schramm		vin-supply = <&vcc5v0_usb>;
3265a65505aSTobias Schramm
3275a65505aSTobias Schramm		regulator-state-mem {
3285a65505aSTobias Schramm			regulator-off-in-suspend;
3295a65505aSTobias Schramm		};
3305a65505aSTobias Schramm	};
3315a65505aSTobias Schramm
3325a65505aSTobias Schramm	/* Regulators supplied by vcc5v0_usb */
3335a65505aSTobias Schramm	/* Type C port power supply regulator */
3345a65505aSTobias Schramm	vbus_5vout: vbus_typec: vbus-5vout {
3355a65505aSTobias Schramm		compatible = "regulator-fixed";
3365a65505aSTobias Schramm		enable-active-high;
3375a65505aSTobias Schramm		gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
3385a65505aSTobias Schramm		pinctrl-names = "default";
3395a65505aSTobias Schramm		pinctrl-0 = <&vcc5v0_typec0_en_gpio>;
3405a65505aSTobias Schramm		regulator-name = "vbus_5vout";
3415a65505aSTobias Schramm		regulator-min-microvolt = <5000000>;
3425a65505aSTobias Schramm		regulator-max-microvolt = <5000000>;
3435a65505aSTobias Schramm		vin-supply = <&vcc5v0_usb>;
3445a65505aSTobias Schramm
3455a65505aSTobias Schramm		regulator-state-mem {
3465a65505aSTobias Schramm			regulator-off-in-suspend;
3475a65505aSTobias Schramm		};
3485a65505aSTobias Schramm	};
3495a65505aSTobias Schramm
3505a65505aSTobias Schramm	/* Regulators supplied by vcc_1v8 */
3515a65505aSTobias Schramm	/* Primary 0.9 V LDO */
3525a65505aSTobias Schramm	vcca0v9_s3: vcca0v9-s3 {
3535a65505aSTobias Schramm		compatible = "regulator-fixed";
3545a65505aSTobias Schramm		regulator-name = "vcc0v9_s3";
3555a65505aSTobias Schramm		regulator-min-microvolt = <5000000>;
3565a65505aSTobias Schramm		regulator-max-microvolt = <5000000>;
3575a65505aSTobias Schramm		vin-supply = <&vcc_1v8>;
3585a65505aSTobias Schramm
3595a65505aSTobias Schramm		regulator-state-mem {
3605a65505aSTobias Schramm			regulator-on-in-suspend;
3615a65505aSTobias Schramm		};
3625a65505aSTobias Schramm	};
3635a65505aSTobias Schramm
3645a65505aSTobias Schramm	mains_charger: dc-charger {
3655a65505aSTobias Schramm		compatible = "gpio-charger";
3665a65505aSTobias Schramm		charger-type = "mains";
3675a65505aSTobias Schramm		gpios = <&gpio4 RK_PD0 GPIO_ACTIVE_LOW>;
3685a65505aSTobias Schramm
3695a65505aSTobias Schramm		/* Also triggered by USB charger */
3705a65505aSTobias Schramm		pinctrl-names = "default";
3715a65505aSTobias Schramm		pinctrl-0 = <&dc_det_gpio>;
3725a65505aSTobias Schramm	};
3735a65505aSTobias Schramm};
3745a65505aSTobias Schramm
3755a65505aSTobias Schramm&cdn_dp {
3765a65505aSTobias Schramm	status = "okay";
3775a65505aSTobias Schramm};
3785a65505aSTobias Schramm
3795a65505aSTobias Schramm&cpu_b0 {
3805a65505aSTobias Schramm	cpu-supply = <&vdd_cpu_b>;
3815a65505aSTobias Schramm};
3825a65505aSTobias Schramm
3835a65505aSTobias Schramm&cpu_b1 {
3845a65505aSTobias Schramm	cpu-supply = <&vdd_cpu_b>;
3855a65505aSTobias Schramm};
3865a65505aSTobias Schramm
3875a65505aSTobias Schramm&cpu_l0 {
3885a65505aSTobias Schramm	cpu-supply = <&vdd_cpu_l>;
3895a65505aSTobias Schramm};
3905a65505aSTobias Schramm
3915a65505aSTobias Schramm&cpu_l1 {
3925a65505aSTobias Schramm	cpu-supply = <&vdd_cpu_l>;
3935a65505aSTobias Schramm};
3945a65505aSTobias Schramm
3955a65505aSTobias Schramm&cpu_l2 {
3965a65505aSTobias Schramm	cpu-supply = <&vdd_cpu_l>;
3975a65505aSTobias Schramm};
3985a65505aSTobias Schramm
3995a65505aSTobias Schramm&cpu_l3 {
4005a65505aSTobias Schramm	cpu-supply = <&vdd_cpu_l>;
4015a65505aSTobias Schramm};
4025a65505aSTobias Schramm
4035a65505aSTobias Schramm&edp {
4045a65505aSTobias Schramm	force-hpd;
4055a65505aSTobias Schramm	pinctrl-names = "default";
4065a65505aSTobias Schramm	pinctrl-0 = <&edp_hpd>;
4075a65505aSTobias Schramm	status = "okay";
4085a65505aSTobias Schramm
4095a65505aSTobias Schramm	ports {
4105a65505aSTobias Schramm		edp_out: port@1 {
4115a65505aSTobias Schramm			reg = <1>;
4125a65505aSTobias Schramm			#address-cells = <1>;
4135a65505aSTobias Schramm			#size-cells = <0>;
4145a65505aSTobias Schramm
4155a65505aSTobias Schramm			edp_out_panel: endpoint@0 {
4165a65505aSTobias Schramm				reg = <0>;
4175a65505aSTobias Schramm				remote-endpoint = <&panel_in_edp>;
4185a65505aSTobias Schramm			};
4195a65505aSTobias Schramm		};
4205a65505aSTobias Schramm	};
4215a65505aSTobias Schramm};
4225a65505aSTobias Schramm
4235a65505aSTobias Schramm&emmc_phy {
4245a65505aSTobias Schramm	status = "okay";
4255a65505aSTobias Schramm};
4265a65505aSTobias Schramm
4275a65505aSTobias Schramm&gpu {
4285a65505aSTobias Schramm	mali-supply = <&vdd_gpu>;
4295a65505aSTobias Schramm	status = "okay";
4305a65505aSTobias Schramm};
4315a65505aSTobias Schramm
4325a65505aSTobias Schramm&hdmi_sound {
4335a65505aSTobias Schramm	status = "okay";
4345a65505aSTobias Schramm};
4355a65505aSTobias Schramm
4365a65505aSTobias Schramm&i2c0 {
4375a65505aSTobias Schramm	clock-frequency = <400000>;
4385a65505aSTobias Schramm	i2c-scl-falling-time-ns = <4>;
4395a65505aSTobias Schramm	i2c-scl-rising-time-ns = <168>;
4405a65505aSTobias Schramm	status = "okay";
4415a65505aSTobias Schramm
4425a65505aSTobias Schramm	rk808: pmic@1b {
4435a65505aSTobias Schramm		compatible = "rockchip,rk808";
4445a65505aSTobias Schramm		reg = <0x1b>;
4455a65505aSTobias Schramm		#clock-cells = <1>;
4465a65505aSTobias Schramm		clock-output-names = "xin32k", "rk808-clkout2";
4475a65505aSTobias Schramm		interrupt-parent = <&gpio3>;
4485a65505aSTobias Schramm		interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
4495a65505aSTobias Schramm		pinctrl-names = "default";
4505a65505aSTobias Schramm		pinctrl-0 = <&pmic_int_l_gpio>;
4515a65505aSTobias Schramm		rockchip,system-power-controller;
4525a65505aSTobias Schramm		wakeup-source;
4535a65505aSTobias Schramm
4545a65505aSTobias Schramm		vcc1-supply = <&vcc_sysin>;
4555a65505aSTobias Schramm		vcc2-supply = <&vcc_sysin>;
4565a65505aSTobias Schramm		vcc3-supply = <&vcc_sysin>;
4575a65505aSTobias Schramm		vcc4-supply = <&vcc_sysin>;
4585a65505aSTobias Schramm		vcc6-supply = <&vcc_sysin>;
4595a65505aSTobias Schramm		vcc7-supply = <&vcc_sysin>;
4605a65505aSTobias Schramm		vcc8-supply = <&vcc3v3_sys>;
4615a65505aSTobias Schramm		vcc9-supply = <&vcc_sysin>;
4625a65505aSTobias Schramm		vcc10-supply = <&vcc_sysin>;
4635a65505aSTobias Schramm		vcc11-supply = <&vcc_sysin>;
4645a65505aSTobias Schramm		vcc12-supply = <&vcc3v3_sys>;
4655a65505aSTobias Schramm		vcc13-supply = <&vcc_sysin>;
4665a65505aSTobias Schramm		vcc14-supply = <&vcc_sysin>;
4675a65505aSTobias Schramm
4685a65505aSTobias Schramm		regulators {
4695a65505aSTobias Schramm			/* rk3399 center logic supply */
4705a65505aSTobias Schramm			vdd_center: DCDC_REG1 {
4715a65505aSTobias Schramm				regulator-name = "vdd_center";
4725a65505aSTobias Schramm				regulator-always-on;
4735a65505aSTobias Schramm				regulator-boot-on;
4745a65505aSTobias Schramm				regulator-min-microvolt = <750000>;
4755a65505aSTobias Schramm				regulator-max-microvolt = <1350000>;
4765a65505aSTobias Schramm				regulator-ramp-delay = <6001>;
4775a65505aSTobias Schramm
4785a65505aSTobias Schramm				regulator-state-mem {
4795a65505aSTobias Schramm					regulator-off-in-suspend;
4805a65505aSTobias Schramm				};
4815a65505aSTobias Schramm			};
4825a65505aSTobias Schramm
4835a65505aSTobias Schramm			vdd_cpu_l: DCDC_REG2 {
4845a65505aSTobias Schramm				regulator-name = "vdd_cpu_l";
4855a65505aSTobias Schramm				regulator-always-on;
4865a65505aSTobias Schramm				regulator-boot-on;
4875a65505aSTobias Schramm				regulator-min-microvolt = <750000>;
4885a65505aSTobias Schramm				regulator-max-microvolt = <1350000>;
4895a65505aSTobias Schramm				regulator-ramp-delay = <6001>;
4905a65505aSTobias Schramm
4915a65505aSTobias Schramm				regulator-state-mem {
4925a65505aSTobias Schramm					regulator-off-in-suspend;
4935a65505aSTobias Schramm				};
4945a65505aSTobias Schramm			};
4955a65505aSTobias Schramm
4965a65505aSTobias Schramm			vcc_ddr: DCDC_REG3 {
4975a65505aSTobias Schramm				regulator-name = "vcc_ddr";
4985a65505aSTobias Schramm				regulator-always-on;
4995a65505aSTobias Schramm				regulator-boot-on;
5005a65505aSTobias Schramm
5015a65505aSTobias Schramm				regulator-state-mem {
5025a65505aSTobias Schramm					regulator-on-in-suspend;
5035a65505aSTobias Schramm				};
5045a65505aSTobias Schramm			};
5055a65505aSTobias Schramm
5065a65505aSTobias Schramm			vcc_1v8: vcc_wl: DCDC_REG4 {
5075a65505aSTobias Schramm				regulator-name = "vcc_1v8";
5085a65505aSTobias Schramm				regulator-always-on;
5095a65505aSTobias Schramm				regulator-boot-on;
5105a65505aSTobias Schramm				regulator-min-microvolt = <1800000>;
5115a65505aSTobias Schramm				regulator-max-microvolt = <1800000>;
5125a65505aSTobias Schramm
5135a65505aSTobias Schramm				regulator-state-mem {
5145a65505aSTobias Schramm					regulator-on-in-suspend;
5155a65505aSTobias Schramm					regulator-suspend-microvolt = <1800000>;
5165a65505aSTobias Schramm				};
5175a65505aSTobias Schramm			};
5185a65505aSTobias Schramm
5195a65505aSTobias Schramm			/* not used */
5205a65505aSTobias Schramm			LDO_REG1 {
5215a65505aSTobias Schramm			};
5225a65505aSTobias Schramm
5235a65505aSTobias Schramm			/* not used */
5245a65505aSTobias Schramm			LDO_REG2 {
5255a65505aSTobias Schramm			};
5265a65505aSTobias Schramm
5275a65505aSTobias Schramm			vcc1v8_pmupll: LDO_REG3 {
5285a65505aSTobias Schramm				regulator-name = "vcc1v8_pmupll";
5295a65505aSTobias Schramm				regulator-always-on;
5305a65505aSTobias Schramm				regulator-boot-on;
5315a65505aSTobias Schramm				regulator-min-microvolt = <1800000>;
5325a65505aSTobias Schramm				regulator-max-microvolt = <1800000>;
5335a65505aSTobias Schramm
5345a65505aSTobias Schramm				regulator-state-mem {
5355a65505aSTobias Schramm					regulator-on-in-suspend;
5365a65505aSTobias Schramm					regulator-suspend-microvolt = <1800000>;
5375a65505aSTobias Schramm				};
5385a65505aSTobias Schramm			};
5395a65505aSTobias Schramm
5405a65505aSTobias Schramm			vcc_sdio: LDO_REG4 {
5415a65505aSTobias Schramm				regulator-name = "vcc_sdio";
5425a65505aSTobias Schramm				regulator-always-on;
5435a65505aSTobias Schramm				regulator-boot-on;
5445a65505aSTobias Schramm				regulator-min-microvolt = <1800000>;
5455a65505aSTobias Schramm				regulator-max-microvolt = <3000000>;
5465a65505aSTobias Schramm
5475a65505aSTobias Schramm				regulator-state-mem {
5485a65505aSTobias Schramm					regulator-on-in-suspend;
5495a65505aSTobias Schramm					regulator-suspend-microvolt = <3000000>;
5505a65505aSTobias Schramm				};
5515a65505aSTobias Schramm			};
5525a65505aSTobias Schramm
5535a65505aSTobias Schramm			vcca3v0_codec: LDO_REG5 {
5545a65505aSTobias Schramm				regulator-name = "vcca3v0_codec";
5555a65505aSTobias Schramm				regulator-always-on;
5565a65505aSTobias Schramm				regulator-boot-on;
5575a65505aSTobias Schramm				regulator-min-microvolt = <3000000>;
5585a65505aSTobias Schramm				regulator-max-microvolt = <3000000>;
5595a65505aSTobias Schramm
5605a65505aSTobias Schramm				regulator-state-mem {
5615a65505aSTobias Schramm					regulator-off-in-suspend;
5625a65505aSTobias Schramm				};
5635a65505aSTobias Schramm			};
5645a65505aSTobias Schramm
5655a65505aSTobias Schramm			vcc_1v5: LDO_REG6 {
5665a65505aSTobias Schramm				regulator-name = "vcc_1v5";
5675a65505aSTobias Schramm				regulator-always-on;
5685a65505aSTobias Schramm				regulator-boot-on;
5695a65505aSTobias Schramm				regulator-min-microvolt = <1500000>;
5705a65505aSTobias Schramm				regulator-max-microvolt = <1500000>;
5715a65505aSTobias Schramm
5725a65505aSTobias Schramm				regulator-state-mem {
5735a65505aSTobias Schramm					regulator-on-in-suspend;
5745a65505aSTobias Schramm					regulator-suspend-microvolt = <1500000>;
5755a65505aSTobias Schramm				};
5765a65505aSTobias Schramm			};
5775a65505aSTobias Schramm
5785a65505aSTobias Schramm			vcca1v8_codec: LDO_REG7 {
5795a65505aSTobias Schramm				regulator-name = "vcca1v8_codec";
5805a65505aSTobias Schramm				regulator-always-on;
5815a65505aSTobias Schramm				regulator-boot-on;
5825a65505aSTobias Schramm				regulator-min-microvolt = <1800000>;
5835a65505aSTobias Schramm				regulator-max-microvolt = <1800000>;
5845a65505aSTobias Schramm
5855a65505aSTobias Schramm				regulator-state-mem {
5865a65505aSTobias Schramm					regulator-off-in-suspend;
5875a65505aSTobias Schramm				};
5885a65505aSTobias Schramm			};
5895a65505aSTobias Schramm
5905a65505aSTobias Schramm			vcc_3v0: LDO_REG8 {
5915a65505aSTobias Schramm				regulator-name = "vcc_3v0";
5925a65505aSTobias Schramm				regulator-always-on;
5935a65505aSTobias Schramm				regulator-boot-on;
5945a65505aSTobias Schramm				regulator-min-microvolt = <3000000>;
5955a65505aSTobias Schramm				regulator-max-microvolt = <3000000>;
5965a65505aSTobias Schramm
5975a65505aSTobias Schramm				regulator-state-mem {
5985a65505aSTobias Schramm					regulator-on-in-suspend;
5995a65505aSTobias Schramm					regulator-suspend-microvolt = <3000000>;
6005a65505aSTobias Schramm				};
6015a65505aSTobias Schramm			};
6025a65505aSTobias Schramm
6035a65505aSTobias Schramm			vcc3v3_s3: SWITCH_REG1 {
6045a65505aSTobias Schramm				regulator-name = "vcc3v3_s3";
6055a65505aSTobias Schramm				regulator-always-on;
6065a65505aSTobias Schramm				regulator-boot-on;
6075a65505aSTobias Schramm
6085a65505aSTobias Schramm				regulator-state-mem {
6095a65505aSTobias Schramm					regulator-off-in-suspend;
6105a65505aSTobias Schramm				};
6115a65505aSTobias Schramm			};
6125a65505aSTobias Schramm
6135a65505aSTobias Schramm			vcc3v3_s0: SWITCH_REG2 {
6145a65505aSTobias Schramm				regulator-name = "vcc3v3_s0";
6155a65505aSTobias Schramm				regulator-always-on;
6165a65505aSTobias Schramm				regulator-boot-on;
6175a65505aSTobias Schramm
6185a65505aSTobias Schramm				regulator-state-mem {
6195a65505aSTobias Schramm					regulator-off-in-suspend;
6205a65505aSTobias Schramm				};
6215a65505aSTobias Schramm			};
6225a65505aSTobias Schramm		};
6235a65505aSTobias Schramm	};
6245a65505aSTobias Schramm
6255a65505aSTobias Schramm	vdd_cpu_b: regulator@40 {
6265a65505aSTobias Schramm		compatible = "silergy,syr827";
6275a65505aSTobias Schramm		reg = <0x40>;
6285a65505aSTobias Schramm		fcs,suspend-voltage-selector = <1>;
6295a65505aSTobias Schramm		pinctrl-names = "default";
6305a65505aSTobias Schramm		pinctrl-0 = <&vsel1_gpio>;
6315a65505aSTobias Schramm		regulator-name = "vdd_cpu_b";
6325a65505aSTobias Schramm		regulator-always-on;
6335a65505aSTobias Schramm		regulator-boot-on;
6345a65505aSTobias Schramm		regulator-min-microvolt = <712500>;
6355a65505aSTobias Schramm		regulator-max-microvolt = <1500000>;
6365a65505aSTobias Schramm		regulator-ramp-delay = <1000>;
6375a65505aSTobias Schramm		vin-supply = <&vcc_1v8>;
6385a65505aSTobias Schramm
6395a65505aSTobias Schramm		regulator-state-mem {
6405a65505aSTobias Schramm			regulator-off-in-suspend;
6415a65505aSTobias Schramm		};
6425a65505aSTobias Schramm	};
6435a65505aSTobias Schramm
6445a65505aSTobias Schramm	vdd_gpu: regulator@41 {
6455a65505aSTobias Schramm		compatible = "silergy,syr828";
6465a65505aSTobias Schramm		reg = <0x41>;
6475a65505aSTobias Schramm		fcs,suspend-voltage-selector = <1>;
6485a65505aSTobias Schramm		pinctrl-names = "default";
6495a65505aSTobias Schramm		pinctrl-0 = <&vsel2_gpio>;
6505a65505aSTobias Schramm		regulator-name = "vdd_gpu";
6515a65505aSTobias Schramm		regulator-always-on;
6525a65505aSTobias Schramm		regulator-boot-on;
6535a65505aSTobias Schramm		regulator-min-microvolt = <712500>;
6545a65505aSTobias Schramm		regulator-max-microvolt = <1500000>;
6555a65505aSTobias Schramm		regulator-ramp-delay = <1000>;
6565a65505aSTobias Schramm		vin-supply = <&vcc_1v8>;
6575a65505aSTobias Schramm
6585a65505aSTobias Schramm		regulator-state-mem {
6595a65505aSTobias Schramm			regulator-off-in-suspend;
6605a65505aSTobias Schramm		};
6615a65505aSTobias Schramm	};
6625a65505aSTobias Schramm};
6635a65505aSTobias Schramm
6645a65505aSTobias Schramm&i2c1 {
6655a65505aSTobias Schramm	clock-frequency = <100000>;
6665a65505aSTobias Schramm	i2c-scl-falling-time-ns = <4>;
6675a65505aSTobias Schramm	i2c-scl-rising-time-ns = <168>;
6685a65505aSTobias Schramm	status = "okay";
6695a65505aSTobias Schramm
6705a65505aSTobias Schramm	es8316: es8316@11 {
6715a65505aSTobias Schramm		compatible = "everest,es8316";
6725a65505aSTobias Schramm		reg = <0x11>;
6735a65505aSTobias Schramm		clocks = <&cru SCLK_I2S_8CH_OUT>;
6745a65505aSTobias Schramm		clock-names = "mclk";
6755a65505aSTobias Schramm		#sound-dai-cells = <0>;
6765a65505aSTobias Schramm	};
6775a65505aSTobias Schramm};
6785a65505aSTobias Schramm
6795a65505aSTobias Schramm&i2c3 {
6805a65505aSTobias Schramm	i2c-scl-falling-time-ns = <15>;
6815a65505aSTobias Schramm	i2c-scl-rising-time-ns = <450>;
6825a65505aSTobias Schramm	status = "okay";
6835a65505aSTobias Schramm};
6845a65505aSTobias Schramm
6855a65505aSTobias Schramm&i2c4 {
6865a65505aSTobias Schramm	i2c-scl-falling-time-ns = <20>;
6875a65505aSTobias Schramm	i2c-scl-rising-time-ns = <600>;
6885a65505aSTobias Schramm	status = "okay";
6895a65505aSTobias Schramm
6905a65505aSTobias Schramm	fusb0: fusb30x@22 {
6915a65505aSTobias Schramm		compatible = "fcs,fusb302";
6925a65505aSTobias Schramm		reg = <0x22>;
6935a65505aSTobias Schramm		fcs,int_n = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>;
6945a65505aSTobias Schramm		pinctrl-names = "default";
6955a65505aSTobias Schramm		pinctrl-0 = <&fusb0_int_gpio>;
6965a65505aSTobias Schramm		vbus-supply = <&vbus_typec>;
6975a65505aSTobias Schramm
6985a65505aSTobias Schramm		connector {
6995a65505aSTobias Schramm			compatible = "usb-c-connector";
7005a65505aSTobias Schramm			data-role = "host";
7015a65505aSTobias Schramm			label = "USB-C";
7025a65505aSTobias Schramm			op-sink-microwatt = <1000000>;
7035a65505aSTobias Schramm			power-role = "dual";
7045a65505aSTobias Schramm			sink-pdos =
7055a65505aSTobias Schramm				<PDO_FIXED(5000, 2500, PDO_FIXED_USB_COMM)>;
7065a65505aSTobias Schramm			source-pdos =
7075a65505aSTobias Schramm				<PDO_FIXED(5000, 1400, PDO_FIXED_USB_COMM)>;
7085a65505aSTobias Schramm			try-power-role = "sink";
7095a65505aSTobias Schramm
7105a65505aSTobias Schramm			ports {
7115a65505aSTobias Schramm				#address-cells = <1>;
7125a65505aSTobias Schramm				#size-cells = <0>;
7135a65505aSTobias Schramm
7145a65505aSTobias Schramm				port@0 {
7155a65505aSTobias Schramm					reg = <0>;
7165a65505aSTobias Schramm
7175a65505aSTobias Schramm					usbc_hs: endpoint {
7185a65505aSTobias Schramm						remote-endpoint =
7195a65505aSTobias Schramm							<&u2phy0_typec_hs>;
7205a65505aSTobias Schramm					};
7215a65505aSTobias Schramm				};
7225a65505aSTobias Schramm
7235a65505aSTobias Schramm				port@1 {
7245a65505aSTobias Schramm					reg = <1>;
7255a65505aSTobias Schramm
7265a65505aSTobias Schramm					usbc_ss: endpoint {
7275a65505aSTobias Schramm						remote-endpoint =
7285a65505aSTobias Schramm							<&tcphy0_typec_ss>;
7295a65505aSTobias Schramm					};
7305a65505aSTobias Schramm				};
7315a65505aSTobias Schramm
7325a65505aSTobias Schramm				port@2 {
7335a65505aSTobias Schramm					reg = <2>;
7345a65505aSTobias Schramm
7355a65505aSTobias Schramm					usbc_dp: endpoint {
7365a65505aSTobias Schramm						remote-endpoint =
7375a65505aSTobias Schramm							<&tcphy0_typec_dp>;
7385a65505aSTobias Schramm					};
7395a65505aSTobias Schramm				};
7405a65505aSTobias Schramm			};
7415a65505aSTobias Schramm		};
7425a65505aSTobias Schramm	};
7435a65505aSTobias Schramm};
7445a65505aSTobias Schramm
7455a65505aSTobias Schramm&i2s1 {
7465a65505aSTobias Schramm	#sound-dai-cells = <0>;
7475a65505aSTobias Schramm	pinctrl-names = "default";
7485a65505aSTobias Schramm	pinctrl-0 = <&i2s_8ch_mclk_gpio>, <&i2s1_2ch_bus>;
7495a65505aSTobias Schramm	rockchip,capture-channels = <8>;
7505a65505aSTobias Schramm	rockchip,playback-channels = <8>;
7515a65505aSTobias Schramm	status = "okay";
7525a65505aSTobias Schramm};
7535a65505aSTobias Schramm
7545a65505aSTobias Schramm&io_domains {
7555a65505aSTobias Schramm	audio-supply = <&vcc_3v0>;
7565a65505aSTobias Schramm	gpio1830-supply = <&vcc_3v0>;
7575a65505aSTobias Schramm	sdmmc-supply = <&vcc_sdio>;
7585a65505aSTobias Schramm	status = "okay";
7595a65505aSTobias Schramm};
7605a65505aSTobias Schramm
7615a65505aSTobias Schramm&pcie_phy {
7625a65505aSTobias Schramm	status = "okay";
7635a65505aSTobias Schramm};
7645a65505aSTobias Schramm
7655a65505aSTobias Schramm&pcie0 {
7665a65505aSTobias Schramm	bus-scan-delay-ms = <1000>;
7675a65505aSTobias Schramm	ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>;
7685a65505aSTobias Schramm	max-link-speed = <2>;
7695a65505aSTobias Schramm	num-lanes = <4>;
7705a65505aSTobias Schramm	pinctrl-names = "default";
7715a65505aSTobias Schramm	pinctrl-0 = <&pcie_clkreqn_cpm>;
7725a65505aSTobias Schramm	vpcie0v9-supply = <&vcca0v9_s3>;
7735a65505aSTobias Schramm	vpcie1v8-supply = <&vcca1v8_s3>;
7745a65505aSTobias Schramm	vpcie3v3-supply = <&vcc3v3_ssd>;
7755a65505aSTobias Schramm	status = "okay";
7765a65505aSTobias Schramm};
7775a65505aSTobias Schramm
7785a65505aSTobias Schramm&pinctrl {
7795a65505aSTobias Schramm	buttons {
7805a65505aSTobias Schramm		pwrbtn_gpio: pwrbtn-gpio {
7815a65505aSTobias Schramm			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
7825a65505aSTobias Schramm		};
7835a65505aSTobias Schramm
7845a65505aSTobias Schramm		lidbtn_gpio: lidbtn-gpio {
7855a65505aSTobias Schramm			rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
7865a65505aSTobias Schramm		};
7875a65505aSTobias Schramm	};
7885a65505aSTobias Schramm
7895a65505aSTobias Schramm	dc-charger {
7905a65505aSTobias Schramm		dc_det_gpio: dc-det-gpio {
7917a87adbcSTobias Schramm			rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
7925a65505aSTobias Schramm		};
7935a65505aSTobias Schramm	};
7945a65505aSTobias Schramm
7955a65505aSTobias Schramm	es8316 {
7965a65505aSTobias Schramm		hp_det_gpio: hp-det-gpio {
79740df91a8STobias Schramm			rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
7985a65505aSTobias Schramm		};
7995a65505aSTobias Schramm	};
8005a65505aSTobias Schramm
8015a65505aSTobias Schramm	fusb302x {
8025a65505aSTobias Schramm		fusb0_int_gpio: fusb0-int-gpio {
8035a65505aSTobias Schramm			rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
8045a65505aSTobias Schramm		};
8055a65505aSTobias Schramm	};
8065a65505aSTobias Schramm
8075a65505aSTobias Schramm	i2s1 {
8085a65505aSTobias Schramm		i2s_8ch_mclk_gpio: i2s-8ch-mclk-gpio {
8095a65505aSTobias Schramm			rockchip,pins = <4 RK_PA0 1 &pcfg_pull_none>;
8105a65505aSTobias Schramm		};
8115a65505aSTobias Schramm	};
8125a65505aSTobias Schramm
8135a65505aSTobias Schramm	lcd-panel {
8145a65505aSTobias Schramm		lcdvcc_en_gpio: lcdvcc-en-gpio {
8155a65505aSTobias Schramm			rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
8165a65505aSTobias Schramm		};
8175a65505aSTobias Schramm
8185a65505aSTobias Schramm		panel_en_gpio: panel-en-gpio {
8195a65505aSTobias Schramm			rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
8205a65505aSTobias Schramm		};
8215a65505aSTobias Schramm
8225a65505aSTobias Schramm		lcd_panel_reset_gpio: lcd-panel-reset-gpio {
8235a65505aSTobias Schramm			rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
8245a65505aSTobias Schramm		};
8255a65505aSTobias Schramm	};
8265a65505aSTobias Schramm
8275a65505aSTobias Schramm	leds {
8285a65505aSTobias Schramm		pwrled_gpio: pwrled_gpio {
8295a65505aSTobias Schramm			rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
8305a65505aSTobias Schramm		};
8315a65505aSTobias Schramm
8325a65505aSTobias Schramm		slpled_gpio: slpled_gpio {
8335a65505aSTobias Schramm			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
8345a65505aSTobias Schramm		};
8355a65505aSTobias Schramm	};
8365a65505aSTobias Schramm
8375a65505aSTobias Schramm	pmic {
8385a65505aSTobias Schramm		pmic_int_l_gpio: pmic-int-l-gpio {
8395a65505aSTobias Schramm			rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
8405a65505aSTobias Schramm		};
8415a65505aSTobias Schramm
8425a65505aSTobias Schramm		vsel1_gpio: vsel1-gpio {
8435a65505aSTobias Schramm			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
8445a65505aSTobias Schramm		};
8455a65505aSTobias Schramm
8465a65505aSTobias Schramm		vsel2_gpio: vsel2-gpio {
8475a65505aSTobias Schramm			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
8485a65505aSTobias Schramm		};
8495a65505aSTobias Schramm	};
8505a65505aSTobias Schramm
8515a65505aSTobias Schramm	sdcard {
8525a65505aSTobias Schramm		sdmmc0_pwr_h_gpio: sdmmc0-pwr-h-gpio {
8535a65505aSTobias Schramm			rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
8545a65505aSTobias Schramm		};
8555a65505aSTobias Schramm
8565a65505aSTobias Schramm	};
8575a65505aSTobias Schramm
8585a65505aSTobias Schramm	sdio-pwrseq {
8595a65505aSTobias Schramm		wifi_enable_h_gpio: wifi-enable-h-gpio {
8605a65505aSTobias Schramm			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
8615a65505aSTobias Schramm		};
8625a65505aSTobias Schramm	};
8635a65505aSTobias Schramm
8645a65505aSTobias Schramm	usb-typec {
8655a65505aSTobias Schramm		vcc5v0_typec0_en_gpio: vcc5v0-typec0-en-gpio {
8665a65505aSTobias Schramm			rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
8675a65505aSTobias Schramm		};
8685a65505aSTobias Schramm	};
8695a65505aSTobias Schramm
8705a65505aSTobias Schramm	usb2 {
8715a65505aSTobias Schramm		pwr_5v_gpio: pwr-5v-gpio {
8725a65505aSTobias Schramm			rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
8735a65505aSTobias Schramm		};
8745a65505aSTobias Schramm
8755a65505aSTobias Schramm		vcc5v0_host_en_gpio: vcc5v0-host-en-gpio {
8765a65505aSTobias Schramm			rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
8775a65505aSTobias Schramm		};
8785a65505aSTobias Schramm	};
8795a65505aSTobias Schramm
8805a65505aSTobias Schramm	wireless-bluetooth {
8815a65505aSTobias Schramm		bt_wake_gpio: bt-wake-gpio {
8825a65505aSTobias Schramm			rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
8835a65505aSTobias Schramm		};
8845a65505aSTobias Schramm
8855a65505aSTobias Schramm		bt_host_wake_gpio: bt-host-wake-gpio {
8865a65505aSTobias Schramm			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
8875a65505aSTobias Schramm		};
8885a65505aSTobias Schramm
8895a65505aSTobias Schramm		bt_reset_gpio: bt-reset-gpio {
8905a65505aSTobias Schramm			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
8915a65505aSTobias Schramm		};
8925a65505aSTobias Schramm	};
8935a65505aSTobias Schramm};
8945a65505aSTobias Schramm
8955a65505aSTobias Schramm&pmu_io_domains {
8965a65505aSTobias Schramm	pmu1830-supply = <&vcc_3v0>;
8975a65505aSTobias Schramm	status = "okay";
8985a65505aSTobias Schramm};
8995a65505aSTobias Schramm
9005a65505aSTobias Schramm&pwm0 {
9015a65505aSTobias Schramm	status = "okay";
9025a65505aSTobias Schramm};
9035a65505aSTobias Schramm
9045a65505aSTobias Schramm&pwm2 {
9055a65505aSTobias Schramm	status = "okay";
9065a65505aSTobias Schramm};
9075a65505aSTobias Schramm
9085a65505aSTobias Schramm&saradc {
9095a65505aSTobias Schramm	vref-supply = <&vcca1v8_s3>;
9105a65505aSTobias Schramm	status = "okay";
9115a65505aSTobias Schramm};
9125a65505aSTobias Schramm
9135a65505aSTobias Schramm&sdmmc {
9145a65505aSTobias Schramm	bus-width = <4>;
9155a65505aSTobias Schramm	cap-mmc-highspeed;
9165a65505aSTobias Schramm	cap-sd-highspeed;
9175a65505aSTobias Schramm	cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
9185a65505aSTobias Schramm	disable-wp;
9195a65505aSTobias Schramm	pinctrl-names = "default";
9205a65505aSTobias Schramm	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
9215a65505aSTobias Schramm	sd-uhs-sdr104;
9225a65505aSTobias Schramm	vmmc-supply = <&vcc3v0_sd>;
9235a65505aSTobias Schramm	vqmmc-supply = <&vcc_sdio>;
9245a65505aSTobias Schramm	status = "okay";
9255a65505aSTobias Schramm};
9265a65505aSTobias Schramm
9275a65505aSTobias Schramm&sdio0 {
9285a65505aSTobias Schramm	bus-width = <4>;
9295a65505aSTobias Schramm	cap-sd-highspeed;
9305a65505aSTobias Schramm	cap-sdio-irq;
9315a65505aSTobias Schramm	keep-power-in-suspend;
9325a65505aSTobias Schramm	mmc-pwrseq = <&sdio_pwrseq>;
9335a65505aSTobias Schramm	non-removable;
9345a65505aSTobias Schramm	pinctrl-names = "default";
9355a65505aSTobias Schramm	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
9365a65505aSTobias Schramm	sd-uhs-sdr104;
9375a65505aSTobias Schramm	status = "okay";
9385a65505aSTobias Schramm};
9395a65505aSTobias Schramm
9405a65505aSTobias Schramm&sdhci {
9415a65505aSTobias Schramm	bus-width = <8>;
9425a65505aSTobias Schramm	mmc-hs200-1_8v;
9435a65505aSTobias Schramm	non-removable;
9445a65505aSTobias Schramm	status = "okay";
9455a65505aSTobias Schramm};
9465a65505aSTobias Schramm
9475a65505aSTobias Schramm&spi1 {
9485a65505aSTobias Schramm	max-freq = <10000000>;
9495a65505aSTobias Schramm	status = "okay";
9505a65505aSTobias Schramm
9515a65505aSTobias Schramm	spiflash: flash@0 {
9525a65505aSTobias Schramm		compatible = "jedec,spi-nor";
9535a65505aSTobias Schramm		reg = <0>;
9545a65505aSTobias Schramm		m25p,fast-read;
9555a65505aSTobias Schramm		spi-max-frequency = <10000000>;
9565a65505aSTobias Schramm	};
9575a65505aSTobias Schramm};
9585a65505aSTobias Schramm
9595a65505aSTobias Schramm&tcphy0 {
9605a65505aSTobias Schramm	status = "okay";
9615a65505aSTobias Schramm};
9625a65505aSTobias Schramm
9635a65505aSTobias Schramm&tcphy0_dp {
9645a65505aSTobias Schramm	port {
9655a65505aSTobias Schramm		tcphy0_typec_dp: endpoint {
9665a65505aSTobias Schramm			remote-endpoint = <&usbc_dp>;
9675a65505aSTobias Schramm		};
9685a65505aSTobias Schramm	};
9695a65505aSTobias Schramm};
9705a65505aSTobias Schramm
9715a65505aSTobias Schramm&tcphy0_usb3 {
9725a65505aSTobias Schramm	port {
9735a65505aSTobias Schramm		tcphy0_typec_ss: endpoint {
9745a65505aSTobias Schramm			remote-endpoint = <&usbc_ss>;
9755a65505aSTobias Schramm		};
9765a65505aSTobias Schramm	};
9775a65505aSTobias Schramm};
9785a65505aSTobias Schramm
9795a65505aSTobias Schramm&tcphy1 {
9805a65505aSTobias Schramm	status = "okay";
9815a65505aSTobias Schramm};
9825a65505aSTobias Schramm
9835a65505aSTobias Schramm&tsadc {
9845a65505aSTobias Schramm	/* tshut mode 0:CRU 1:GPIO */
9855a65505aSTobias Schramm	rockchip,hw-tshut-mode = <1>;
9865a65505aSTobias Schramm	/* tshut polarity 0:LOW 1:HIGH */
9875a65505aSTobias Schramm	rockchip,hw-tshut-polarity = <1>;
9885a65505aSTobias Schramm	status = "okay";
9895a65505aSTobias Schramm};
9905a65505aSTobias Schramm
9915a65505aSTobias Schramm&u2phy0 {
9925a65505aSTobias Schramm	status = "okay";
9935a65505aSTobias Schramm
9945a65505aSTobias Schramm	u2phy0_otg: otg-port {
9955a65505aSTobias Schramm		status = "okay";
9965a65505aSTobias Schramm	};
9975a65505aSTobias Schramm
9985a65505aSTobias Schramm	u2phy0_host: host-port {
9995a65505aSTobias Schramm		phy-supply = <&vcc5v0_otg>;
10005a65505aSTobias Schramm		status = "okay";
10015a65505aSTobias Schramm	};
10025a65505aSTobias Schramm
10035a65505aSTobias Schramm	port {
10045a65505aSTobias Schramm		u2phy0_typec_hs: endpoint {
10055a65505aSTobias Schramm			remote-endpoint = <&usbc_hs>;
10065a65505aSTobias Schramm		};
10075a65505aSTobias Schramm	};
10085a65505aSTobias Schramm};
10095a65505aSTobias Schramm
10105a65505aSTobias Schramm&u2phy1 {
10115a65505aSTobias Schramm	status = "okay";
10125a65505aSTobias Schramm
10135a65505aSTobias Schramm	u2phy1_otg: otg-port {
10145a65505aSTobias Schramm		status = "okay";
10155a65505aSTobias Schramm	};
10165a65505aSTobias Schramm
10175a65505aSTobias Schramm	u2phy1_host: host-port {
10185a65505aSTobias Schramm		phy-supply = <&vcc5v0_otg>;
10195a65505aSTobias Schramm		status = "okay";
10205a65505aSTobias Schramm	};
10215a65505aSTobias Schramm};
10225a65505aSTobias Schramm
10235a65505aSTobias Schramm&uart0 {
10245a65505aSTobias Schramm	pinctrl-names = "default";
10255a65505aSTobias Schramm	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
10265a65505aSTobias Schramm	uart-has-rtscts;
10275a65505aSTobias Schramm	status = "okay";
10285a65505aSTobias Schramm
10295a65505aSTobias Schramm	bluetooth {
10305a65505aSTobias Schramm		compatible = "brcm,bcm4345c5";
10315a65505aSTobias Schramm		clocks = <&rk808 1>;
10325a65505aSTobias Schramm		clock-names = "lpo";
10335a65505aSTobias Schramm		device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
10345a65505aSTobias Schramm		host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
10355a65505aSTobias Schramm		max-speed = <1500000>;
10365a65505aSTobias Schramm		pinctrl-names = "default";
10375a65505aSTobias Schramm		pinctrl-0 = <&bt_host_wake_gpio &bt_wake_gpio &bt_reset_gpio>;
10385a65505aSTobias Schramm		shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
10395a65505aSTobias Schramm		vbat-supply = <&wifi_bat>;
10405a65505aSTobias Schramm		vddio-supply = <&vcc_wl>;
10415a65505aSTobias Schramm	};
10425a65505aSTobias Schramm};
10435a65505aSTobias Schramm
10445a65505aSTobias Schramm&uart2 {
10455a65505aSTobias Schramm	status = "okay";
10465a65505aSTobias Schramm};
10475a65505aSTobias Schramm
10485a65505aSTobias Schramm&usb_host0_ehci {
10495a65505aSTobias Schramm	status = "okay";
10505a65505aSTobias Schramm};
10515a65505aSTobias Schramm
10525a65505aSTobias Schramm&usb_host0_ohci {
10535a65505aSTobias Schramm	status = "okay";
10545a65505aSTobias Schramm};
10555a65505aSTobias Schramm
10565a65505aSTobias Schramm&usb_host1_ehci {
10575a65505aSTobias Schramm	status = "okay";
10585a65505aSTobias Schramm};
10595a65505aSTobias Schramm
10605a65505aSTobias Schramm&usb_host1_ohci {
10615a65505aSTobias Schramm	status = "okay";
10625a65505aSTobias Schramm};
10635a65505aSTobias Schramm
10645a65505aSTobias Schramm&usbdrd3_0 {
10655a65505aSTobias Schramm	status = "okay";
10665a65505aSTobias Schramm};
10675a65505aSTobias Schramm
10685a65505aSTobias Schramm&usbdrd_dwc3_0 {
10695a65505aSTobias Schramm	dr_mode = "host";
10705a65505aSTobias Schramm	status = "okay";
10715a65505aSTobias Schramm};
10725a65505aSTobias Schramm
10735a65505aSTobias Schramm&usbdrd3_1 {
10745a65505aSTobias Schramm	status = "okay";
10755a65505aSTobias Schramm};
10765a65505aSTobias Schramm
10775a65505aSTobias Schramm&usbdrd_dwc3_1 {
10785a65505aSTobias Schramm	dr_mode = "host";
10795a65505aSTobias Schramm	status = "okay";
10805a65505aSTobias Schramm};
10815a65505aSTobias Schramm
10825a65505aSTobias Schramm&vopb {
10835a65505aSTobias Schramm	status = "okay";
10845a65505aSTobias Schramm};
10855a65505aSTobias Schramm
10865a65505aSTobias Schramm&vopb_mmu {
10875a65505aSTobias Schramm	status = "okay";
10885a65505aSTobias Schramm};
10895a65505aSTobias Schramm
10905a65505aSTobias Schramm&vopl {
10915a65505aSTobias Schramm	status = "okay";
10925a65505aSTobias Schramm};
10935a65505aSTobias Schramm
10945a65505aSTobias Schramm&vopl_mmu {
10955a65505aSTobias Schramm	status = "okay";
10965a65505aSTobias Schramm};
1097