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