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