From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:46114) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jGwLt-0005Bn-VC for guix-patches@gnu.org; Tue, 24 Mar 2020 23:05:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jGwLm-0000CX-QK for guix-patches@gnu.org; Tue, 24 Mar 2020 23:05:06 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:49854) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jGwLm-0000Bu-JV for guix-patches@gnu.org; Tue, 24 Mar 2020 23:05:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jGwLm-0008QI-E6 for guix-patches@gnu.org; Tue, 24 Mar 2020 23:05:02 -0400 Subject: [bug#40218] linux-libre patch to support pinebook pro Resent-Message-ID: Received: from eggs.gnu.org ([2001:470:142:3::10]:46019) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jGwL1-0005A9-SF for guix-patches@gnu.org; Tue, 24 Mar 2020 23:04:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jGwKy-0007jE-6y for guix-patches@gnu.org; Tue, 24 Mar 2020 23:04:15 -0400 Received: from cascadia.aikidev.net ([2600:3c01:e000:267:0:a171:de7:c]:43672) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1jGwKx-0007dD-5y for guix-patches@gnu.org; Tue, 24 Mar 2020 23:04:11 -0400 Received: from localhost (unknown [IPv6:2600:3c01:e000:21:21:21:0:100b]) (Authenticated sender: vagrant@cascadia.debian.net) by cascadia.aikidev.net (Postfix) with ESMTPSA id 44F011A9BD for ; Tue, 24 Mar 2020 20:04:06 -0700 (PDT) From: Vagrant Cascadian Date: Tue, 24 Mar 2020 20:04:02 -0700 Message-ID: <87a74516fx.fsf@yucca> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 40218@debbugs.gnu.org --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain I've got a backported linux patch to support pinebook pro with linux-libre 5.4.x. It's very limited support... no LCD, no battery status, no RTC, etc. but it works! The one reason I haven't pushed the patch is it would cause useless rebuilds of linux-libre for x86_64, i686 and armhf; I've been trying to make that conditional for aarch64 and not been very successful at it; if someone could help with that, or give me the go-ahead to merge as is ... that'd be great! live well, vagrant --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-gnu-linux-libre-5.4-source-Add-patch-to-support-pine.patch Content-Transfer-Encoding: quoted-printable From=208a5e3cf012634bda0df4e7562494d3bab43004a2 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Sat, 14 Mar 2020 23:20:12 -0700 Subject: [PATCH] gnu: linux-libre-5.4-source: Add patch to support pinebook pro. * gnu/packages/patches/linux-libre-Add-initial-support-for-Pinebook-.patch: New file. * gnu/local.mk (dist_patch_DATA): Update accordingly. * gnu/packages/linux (linux-libre-5.4-source): Add patch. =2D-- gnu/local.mk | 1 + gnu/packages/linux.scm | 6 +- ...re-Add-initial-support-for-Pinebook-.patch | 1135 +++++++++++++++++ 3 files changed, 1141 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/linux-libre-Add-initial-support-fo= r-Pinebook-.patch diff --git a/gnu/local.mk b/gnu/local.mk index 7cce60b7c0..345d72090e 100644 =2D-- a/gnu/local.mk +++ b/gnu/local.mk @@ -1158,6 +1158,7 @@ dist_patch_DATA =3D \ %D%/packages/patches/lierolibre-remove-arch-warning.patch \ %D%/packages/patches/lierolibre-try-building-other-arch.patch \ %D%/packages/patches/linkchecker-tests-require-network.patch \ + %D%/packages/patches/linux-libre-Add-initial-support-for-Pinebook-.patch= \ %D%/packages/patches/linux-pam-no-setfsuid.patch \ %D%/packages/patches/lirc-localstatedir.patch \ %D%/packages/patches/lirc-reproducible-build.patch \ diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index f2dcc325ff..dfddf366eb 100644 =2D-- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -433,7 +433,11 @@ corresponding UPSTREAM-SOURCE (an origin), using the g= iven DEBLOB-SCRIPTS." (define-public linux-libre-5.4-source (source-with-patches linux-libre-5.4-pristine-source (list %boot-logo-patch =2D %linux-libre-arm-export-__sync_icache_dcach= e-patch))) + %linux-libre-arm-export-__sync_icache_dcache-= patch + ;; Pinebook Pro patch from linux-next, + ;; can be dropped for linux-libre 5.7 + (search-patch + "linux-libre-Add-initial-support-for-Pineboo= k-.patch")))) =20 (define-public linux-libre-4.19-source (source-with-patches linux-libre-4.19-pristine-source diff --git a/gnu/packages/patches/linux-libre-Add-initial-support-for-Pineb= ook-.patch b/gnu/packages/patches/linux-libre-Add-initial-support-for-Pineb= ook-.patch new file mode 100644 index 0000000000..659e10cba6 =2D-- /dev/null +++ b/gnu/packages/patches/linux-libre-Add-initial-support-for-Pinebook-.pa= tch @@ -0,0 +1,1135 @@ +From d87a8072e8129a579246d8d31a591ca2aec05275 Mon Sep 17 00:00:00 2001 +From: Tobias Schramm +Date: Wed, 4 Mar 2020 22:30:23 +0100 +Subject: [PATCH] arm64: dts: rockchip: Add initial support for Pinebook Pro + +This commit adds initial dt support for the rk3399 based Pinebook Pro. + +Signed-off-by: Tobias Schramm +Link: https://lore.kernel.org/r/20200304213023.689983-3-t.schramm@manjaro.= org +Signed-off-by: Heiko Stuebner + +Taken from next-20200313 commit 5a65505a6988443b211d3bf3f5bb5b79907c33b9 +--- + arch/arm64/boot/dts/rockchip/Makefile | 1 + + .../boot/dts/rockchip/rk3399-pinebook-pro.dts | 1096 +++++++++++++++++ + 2 files changed, 1097 insertions(+) + create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts + +diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/r= ockchip/Makefile +index 1f18a9392d15..7de9b61d6415 100644 +--- a/arch/arm64/boot/dts/rockchip/Makefile ++++ b/arch/arm64/boot/dts/rockchip/Makefile +@@ -25,6 +25,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D rk3399-nanopc-t4.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D rk3399-nanopi-m4.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D rk3399-nanopi-neo4.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D rk3399-orangepi.dtb ++dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D rk3399-pinebook-pro.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D rk3399-puma-haikou.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D rk3399-roc-pc.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D rk3399-rock-pi-4.dtb +diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts b/arch/a= rm64/boot/dts/rockchip/rk3399-pinebook-pro.dts +new file mode 100644 +index 000000000000..5ea281b55fe2 +--- /dev/null ++++ b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts +@@ -0,0 +1,1096 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++/* ++ * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd. ++ * Copyright (c) 2018 Akash Gajjar ++ * Copyright (c) 2020 Tobias Schramm ++ */ ++ ++/dts-v1/; ++#include ++#include ++#include ++#include ++#include ++#include "rk3399.dtsi" ++#include "rk3399-opp.dtsi" ++ ++/ { ++ model =3D "Pine64 Pinebook Pro"; ++ compatible =3D "pine64,pinebook-pro", "rockchip,rk3399"; ++ ++ chosen { ++ stdout-path =3D "serial2:1500000n8"; ++ }; ++ ++ backlight: edp-backlight { ++ compatible =3D "pwm-backlight"; ++ power-supply =3D <&vcc_12v>; ++ pwms =3D <&pwm0 0 740740 0>; ++ }; ++ ++ edp_panel: edp-panel { ++ compatible =3D "boe,nv140fhmn49"; ++ backlight =3D <&backlight>; ++ enable-gpios =3D <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>; ++ pinctrl-names =3D "default"; ++ pinctrl-0 =3D <&panel_en_gpio>; ++ power-supply =3D <&vcc3v3_panel>; ++ ++ ports { ++ #address-cells =3D <1>; ++ #size-cells =3D <0>; ++ ++ port@0 { ++ reg =3D <0>; ++ #address-cells =3D <1>; ++ #size-cells =3D <0>; ++ ++ panel_in_edp: endpoint@0 { ++ reg =3D <0>; ++ remote-endpoint =3D <&edp_out_panel>; ++ }; ++ }; ++ }; ++ }; ++ ++ /* ++ * Use separate nodes for gpio-keys to allow for selective deactivation ++ * of wakeup sources via sysfs without disabling the whole key ++ */ ++ gpio-key-lid { ++ compatible =3D "gpio-keys"; ++ pinctrl-names =3D "default"; ++ pinctrl-0 =3D <&lidbtn_gpio>; ++ ++ lid { ++ debounce-interval =3D <20>; ++ gpios =3D <&gpio1 RK_PA1 GPIO_ACTIVE_LOW>; ++ label =3D "Lid"; ++ linux,code =3D ; ++ linux,input-type =3D ; ++ wakeup-event-action =3D ; ++ wakeup-source; ++ }; ++ }; ++ ++ gpio-key-power { ++ compatible =3D "gpio-keys"; ++ pinctrl-names =3D "default"; ++ pinctrl-0 =3D <&pwrbtn_gpio>; ++ ++ power { ++ debounce-interval =3D <20>; ++ gpios =3D <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; ++ label =3D "Power"; ++ linux,code =3D ; ++ wakeup-source; ++ }; ++ }; ++ ++ leds { ++ compatible =3D "gpio-leds"; ++ pinctrl-names =3D "default"; ++ pinctrl-0 =3D <&pwrled_gpio &slpled_gpio>; ++ ++ green-led { ++ color =3D ; ++ default-state =3D "on"; ++ function =3D LED_FUNCTION_POWER; ++ gpios =3D <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>; ++ label =3D "green:power"; ++ }; ++ ++ red-led { ++ color =3D ; ++ default-state =3D "off"; ++ function =3D LED_FUNCTION_STANDBY; ++ gpios =3D <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>; ++ label =3D "red:standby"; ++ panic-indicator; ++ retain-state-suspended; ++ }; ++ }; ++ ++ /* Power sequence for SDIO WiFi module */ ++ sdio_pwrseq: sdio-pwrseq { ++ compatible =3D "mmc-pwrseq-simple"; ++ clocks =3D <&rk808 1>; ++ clock-names =3D "ext_clock"; ++ pinctrl-names =3D "default"; ++ pinctrl-0 =3D <&wifi_enable_h_gpio>; ++ post-power-on-delay-ms =3D <100>; ++ power-off-delay-us =3D <500000>; ++ ++ /* WL_REG_ON on module */ ++ reset-gpios =3D <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; ++ }; ++ ++ /* Audio components */ ++ es8316-sound { ++ compatible =3D "simple-audio-card"; ++ pinctrl-names =3D "default"; ++ pinctrl-0 =3D <&hp_det_gpio>; ++ simple-audio-card,name =3D "rockchip,es8316-codec"; ++ simple-audio-card,format =3D "i2s"; ++ simple-audio-card,mclk-fs =3D <256>; ++ ++ simple-audio-card,widgets =3D ++ "Microphone", "Mic Jack", ++ "Headphone", "Headphones", ++ "Speaker", "Speaker"; ++ simple-audio-card,routing =3D ++ "MIC1", "Mic Jack", ++ "Headphones", "HPOL", ++ "Headphones", "HPOR", ++ "Speaker Amplifier INL", "HPOL", ++ "Speaker Amplifier INR", "HPOR", ++ "Speaker", "Speaker Amplifier OUTL", ++ "Speaker", "Speaker Amplifier OUTR"; ++ ++ simple-audio-card,hp-det-gpio =3D <&gpio0 RK_PB0 GPIO_ACTIVE_LOW>; ++ simple-audio-card,aux-devs =3D <&speaker_amp>; ++ simple-audio-card,pin-switches =3D "Speaker"; ++ ++ simple-audio-card,cpu { ++ sound-dai =3D <&i2s1>; ++ }; ++ ++ simple-audio-card,codec { ++ sound-dai =3D <&es8316>; ++ }; ++ }; ++ ++ speaker_amp: speaker-amplifier { ++ compatible =3D "simple-audio-amplifier"; ++ enable-gpios =3D <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>; ++ sound-name-prefix =3D "Speaker Amplifier"; ++ VCC-supply =3D <&pa_5v>; ++ }; ++ ++ /* Power tree */ ++ /* Root power source */ ++ vcc_sysin: vcc-sysin { ++ compatible =3D "regulator-fixed"; ++ regulator-name =3D "vcc_sysin"; ++ regulator-always-on; ++ regulator-boot-on; ++ }; ++ ++ /* Regulators supplied by vcc_sysin */ ++ /* LCD backlight supply */ ++ vcc_12v: vcc-12v { ++ compatible =3D "regulator-fixed"; ++ regulator-name =3D "vcc_12v"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt =3D <12000000>; ++ regulator-max-microvolt =3D <12000000>; ++ vin-supply =3D <&vcc_sysin>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ ++ /* Main 3.3 V supply */ ++ vcc3v3_sys: wifi_bat: vcc3v3-sys { ++ compatible =3D "regulator-fixed"; ++ regulator-name =3D "vcc3v3_sys"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt =3D <3300000>; ++ regulator-max-microvolt =3D <3300000>; ++ vin-supply =3D <&vcc_sysin>; ++ ++ regulator-state-mem { ++ regulator-on-in-suspend; ++ }; ++ }; ++ ++ /* 5 V USB power supply */ ++ vcc5v0_usb: pa_5v: vcc5v0-usb-regulator { ++ compatible =3D "regulator-fixed"; ++ enable-active-high; ++ gpio =3D <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>; ++ pinctrl-names =3D "default"; ++ pinctrl-0 =3D <&pwr_5v_gpio>; ++ regulator-name =3D "vcc5v0_usb"; ++ regulator-always-on; ++ regulator-min-microvolt =3D <5000000>; ++ regulator-max-microvolt =3D <5000000>; ++ vin-supply =3D <&vcc_sysin>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ ++ /* RK3399 logic supply */ ++ vdd_log: vdd-log { ++ compatible =3D "pwm-regulator"; ++ pwms =3D <&pwm2 0 25000 1>; ++ regulator-name =3D "vdd_log"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt =3D <800000>; ++ regulator-max-microvolt =3D <1400000>; ++ vin-supply =3D <&vcc_sysin>; ++ ++ regulator-state-mem { ++ regulator-on-in-suspend; ++ }; ++ }; ++ ++ /* Regulators supplied by vcc3v3_sys */ ++ /* 0.9 V supply, always on */ ++ vcc_0v9: vcc-0v9 { ++ compatible =3D "regulator-fixed"; ++ regulator-name =3D "vcc_0v9"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt =3D <900000>; ++ regulator-max-microvolt =3D <900000>; ++ vin-supply =3D <&vcc3v3_sys>; ++ }; ++ ++ /* S3 1.8 V supply, switched by vcc1v8_s3 */ ++ vcca1v8_s3: vcc1v8-s3 { ++ compatible =3D "regulator-fixed"; ++ regulator-name =3D "vcca1v8_s3"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt =3D <1800000>; ++ regulator-max-microvolt =3D <1800000>; ++ vin-supply =3D <&vcc3v3_sys>; ++ }; ++ ++ /* micro SD card power */ ++ vcc3v0_sd: vcc3v0-sd { ++ compatible =3D "regulator-fixed"; ++ enable-active-high; ++ gpio =3D <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>; ++ pinctrl-names =3D "default"; ++ pinctrl-0 =3D <&sdmmc0_pwr_h_gpio>; ++ regulator-name =3D "vcc3v0_sd"; ++ regulator-always-on; ++ regulator-min-microvolt =3D <3000000>; ++ regulator-max-microvolt =3D <3000000>; ++ vin-supply =3D <&vcc3v3_sys>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ ++ /* LCD panel power, called VCC3V3_S0 in schematic */ ++ vcc3v3_panel: vcc3v3-panel { ++ compatible =3D "regulator-fixed"; ++ enable-active-high; ++ gpio =3D <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>; ++ pinctrl-names =3D "default"; ++ pinctrl-0 =3D <&lcdvcc_en_gpio>; ++ regulator-name =3D "vcc3v3_panel"; ++ regulator-always-on; ++ regulator-min-microvolt =3D <3300000>; ++ regulator-max-microvolt =3D <3300000>; ++ regulator-enable-ramp-delay =3D <100000>; ++ vin-supply =3D <&vcc3v3_sys>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ ++ /* M.2 adapter power, switched by vcc1v8_s3 */ ++ vcc3v3_ssd: vcc3v3-ssd { ++ compatible =3D "regulator-fixed"; ++ regulator-name =3D "vcc3v3_ssd"; ++ regulator-min-microvolt =3D <3300000>; ++ regulator-max-microvolt =3D <3300000>; ++ vin-supply =3D <&vcc3v3_sys>; ++ }; ++ ++ /* Regulators supplied by vcc5v0_usb */ ++ /* USB 3 port power supply regulator */ ++ vcc5v0_otg: vcc5v0-otg { ++ compatible =3D "regulator-fixed"; ++ enable-active-high; ++ gpio =3D <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; ++ pinctrl-names =3D "default"; ++ pinctrl-0 =3D <&vcc5v0_host_en_gpio>; ++ regulator-name =3D "vcc5v0_otg"; ++ regulator-always-on; ++ regulator-min-microvolt =3D <5000000>; ++ regulator-max-microvolt =3D <5000000>; ++ vin-supply =3D <&vcc5v0_usb>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ ++ /* Regulators supplied by vcc5v0_usb */ ++ /* Type C port power supply regulator */ ++ vbus_5vout: vbus_typec: vbus-5vout { ++ compatible =3D "regulator-fixed"; ++ enable-active-high; ++ gpio =3D <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>; ++ pinctrl-names =3D "default"; ++ pinctrl-0 =3D <&vcc5v0_typec0_en_gpio>; ++ regulator-name =3D "vbus_5vout"; ++ regulator-min-microvolt =3D <5000000>; ++ regulator-max-microvolt =3D <5000000>; ++ vin-supply =3D <&vcc5v0_usb>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ ++ /* Regulators supplied by vcc_1v8 */ ++ /* Primary 0.9 V LDO */ ++ vcca0v9_s3: vcca0v9-s3 { ++ compatible =3D "regulator-fixed"; ++ regulator-name =3D "vcc0v9_s3"; ++ regulator-min-microvolt =3D <5000000>; ++ regulator-max-microvolt =3D <5000000>; ++ vin-supply =3D <&vcc_1v8>; ++ ++ regulator-state-mem { ++ regulator-on-in-suspend; ++ }; ++ }; ++ ++ mains_charger: dc-charger { ++ compatible =3D "gpio-charger"; ++ charger-type =3D "mains"; ++ gpios =3D <&gpio4 RK_PD0 GPIO_ACTIVE_LOW>; ++ ++ /* Also triggered by USB charger */ ++ pinctrl-names =3D "default"; ++ pinctrl-0 =3D <&dc_det_gpio>; ++ }; ++}; ++ ++&cdn_dp { ++ status =3D "okay"; ++}; ++ ++&cpu_b0 { ++ cpu-supply =3D <&vdd_cpu_b>; ++}; ++ ++&cpu_b1 { ++ cpu-supply =3D <&vdd_cpu_b>; ++}; ++ ++&cpu_l0 { ++ cpu-supply =3D <&vdd_cpu_l>; ++}; ++ ++&cpu_l1 { ++ cpu-supply =3D <&vdd_cpu_l>; ++}; ++ ++&cpu_l2 { ++ cpu-supply =3D <&vdd_cpu_l>; ++}; ++ ++&cpu_l3 { ++ cpu-supply =3D <&vdd_cpu_l>; ++}; ++ ++&edp { ++ force-hpd; ++ pinctrl-names =3D "default"; ++ pinctrl-0 =3D <&edp_hpd>; ++ status =3D "okay"; ++ ++ ports { ++ edp_out: port@1 { ++ reg =3D <1>; ++ #address-cells =3D <1>; ++ #size-cells =3D <0>; ++ ++ edp_out_panel: endpoint@0 { ++ reg =3D <0>; ++ remote-endpoint =3D <&panel_in_edp>; ++ }; ++ }; ++ }; ++}; ++ ++&emmc_phy { ++ status =3D "okay"; ++}; ++ ++&gpu { ++ mali-supply =3D <&vdd_gpu>; ++ status =3D "okay"; ++}; ++ ++&hdmi_sound { ++ status =3D "okay"; ++}; ++ ++&i2c0 { ++ clock-frequency =3D <400000>; ++ i2c-scl-falling-time-ns =3D <4>; ++ i2c-scl-rising-time-ns =3D <168>; ++ status =3D "okay"; ++ ++ rk808: pmic@1b { ++ compatible =3D "rockchip,rk808"; ++ reg =3D <0x1b>; ++ #clock-cells =3D <1>; ++ clock-output-names =3D "xin32k", "rk808-clkout2"; ++ interrupt-parent =3D <&gpio3>; ++ interrupts =3D <10 IRQ_TYPE_LEVEL_LOW>; ++ pinctrl-names =3D "default"; ++ pinctrl-0 =3D <&pmic_int_l_gpio>; ++ rockchip,system-power-controller; ++ wakeup-source; ++ ++ vcc1-supply =3D <&vcc_sysin>; ++ vcc2-supply =3D <&vcc_sysin>; ++ vcc3-supply =3D <&vcc_sysin>; ++ vcc4-supply =3D <&vcc_sysin>; ++ vcc6-supply =3D <&vcc_sysin>; ++ vcc7-supply =3D <&vcc_sysin>; ++ vcc8-supply =3D <&vcc3v3_sys>; ++ vcc9-supply =3D <&vcc_sysin>; ++ vcc10-supply =3D <&vcc_sysin>; ++ vcc11-supply =3D <&vcc_sysin>; ++ vcc12-supply =3D <&vcc3v3_sys>; ++ vcc13-supply =3D <&vcc_sysin>; ++ vcc14-supply =3D <&vcc_sysin>; ++ ++ regulators { ++ /* rk3399 center logic supply */ ++ vdd_center: DCDC_REG1 { ++ regulator-name =3D "vdd_center"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt =3D <750000>; ++ regulator-max-microvolt =3D <1350000>; ++ regulator-ramp-delay =3D <6001>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ ++ vdd_cpu_l: DCDC_REG2 { ++ regulator-name =3D "vdd_cpu_l"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt =3D <750000>; ++ regulator-max-microvolt =3D <1350000>; ++ regulator-ramp-delay =3D <6001>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ ++ vcc_ddr: DCDC_REG3 { ++ regulator-name =3D "vcc_ddr"; ++ regulator-always-on; ++ regulator-boot-on; ++ ++ regulator-state-mem { ++ regulator-on-in-suspend; ++ }; ++ }; ++ ++ vcc_1v8: vcc_wl: DCDC_REG4 { ++ regulator-name =3D "vcc_1v8"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt =3D <1800000>; ++ regulator-max-microvolt =3D <1800000>; ++ ++ regulator-state-mem { ++ regulator-on-in-suspend; ++ regulator-suspend-microvolt =3D <1800000>; ++ }; ++ }; ++ ++ /* not used */ ++ LDO_REG1 { ++ }; ++ ++ /* not used */ ++ LDO_REG2 { ++ }; ++ ++ vcc1v8_pmupll: LDO_REG3 { ++ regulator-name =3D "vcc1v8_pmupll"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt =3D <1800000>; ++ regulator-max-microvolt =3D <1800000>; ++ ++ regulator-state-mem { ++ regulator-on-in-suspend; ++ regulator-suspend-microvolt =3D <1800000>; ++ }; ++ }; ++ ++ vcc_sdio: LDO_REG4 { ++ regulator-name =3D "vcc_sdio"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt =3D <1800000>; ++ regulator-max-microvolt =3D <3000000>; ++ ++ regulator-state-mem { ++ regulator-on-in-suspend; ++ regulator-suspend-microvolt =3D <3000000>; ++ }; ++ }; ++ ++ vcca3v0_codec: LDO_REG5 { ++ regulator-name =3D "vcca3v0_codec"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt =3D <3000000>; ++ regulator-max-microvolt =3D <3000000>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ ++ vcc_1v5: LDO_REG6 { ++ regulator-name =3D "vcc_1v5"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt =3D <1500000>; ++ regulator-max-microvolt =3D <1500000>; ++ ++ regulator-state-mem { ++ regulator-on-in-suspend; ++ regulator-suspend-microvolt =3D <1500000>; ++ }; ++ }; ++ ++ vcca1v8_codec: LDO_REG7 { ++ regulator-name =3D "vcca1v8_codec"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt =3D <1800000>; ++ regulator-max-microvolt =3D <1800000>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ ++ vcc_3v0: LDO_REG8 { ++ regulator-name =3D "vcc_3v0"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt =3D <3000000>; ++ regulator-max-microvolt =3D <3000000>; ++ ++ regulator-state-mem { ++ regulator-on-in-suspend; ++ regulator-suspend-microvolt =3D <3000000>; ++ }; ++ }; ++ ++ vcc3v3_s3: SWITCH_REG1 { ++ regulator-name =3D "vcc3v3_s3"; ++ regulator-always-on; ++ regulator-boot-on; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ ++ vcc3v3_s0: SWITCH_REG2 { ++ regulator-name =3D "vcc3v3_s0"; ++ regulator-always-on; ++ regulator-boot-on; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ }; ++ }; ++ ++ vdd_cpu_b: regulator@40 { ++ compatible =3D "silergy,syr827"; ++ reg =3D <0x40>; ++ fcs,suspend-voltage-selector =3D <1>; ++ pinctrl-names =3D "default"; ++ pinctrl-0 =3D <&vsel1_gpio>; ++ regulator-name =3D "vdd_cpu_b"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt =3D <712500>; ++ regulator-max-microvolt =3D <1500000>; ++ regulator-ramp-delay =3D <1000>; ++ vin-supply =3D <&vcc_1v8>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ ++ vdd_gpu: regulator@41 { ++ compatible =3D "silergy,syr828"; ++ reg =3D <0x41>; ++ fcs,suspend-voltage-selector =3D <1>; ++ pinctrl-names =3D "default"; ++ pinctrl-0 =3D <&vsel2_gpio>; ++ regulator-name =3D "vdd_gpu"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt =3D <712500>; ++ regulator-max-microvolt =3D <1500000>; ++ regulator-ramp-delay =3D <1000>; ++ vin-supply =3D <&vcc_1v8>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++}; ++ ++&i2c1 { ++ clock-frequency =3D <100000>; ++ i2c-scl-falling-time-ns =3D <4>; ++ i2c-scl-rising-time-ns =3D <168>; ++ status =3D "okay"; ++ ++ es8316: es8316@11 { ++ compatible =3D "everest,es8316"; ++ reg =3D <0x11>; ++ clocks =3D <&cru SCLK_I2S_8CH_OUT>; ++ clock-names =3D "mclk"; ++ #sound-dai-cells =3D <0>; ++ }; ++}; ++ ++&i2c3 { ++ i2c-scl-falling-time-ns =3D <15>; ++ i2c-scl-rising-time-ns =3D <450>; ++ status =3D "okay"; ++}; ++ ++&i2c4 { ++ i2c-scl-falling-time-ns =3D <20>; ++ i2c-scl-rising-time-ns =3D <600>; ++ status =3D "okay"; ++ ++ fusb0: fusb30x@22 { ++ compatible =3D "fcs,fusb302"; ++ reg =3D <0x22>; ++ fcs,int_n =3D <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>; ++ pinctrl-names =3D "default"; ++ pinctrl-0 =3D <&fusb0_int_gpio>; ++ vbus-supply =3D <&vbus_typec>; ++ ++ connector { ++ compatible =3D "usb-c-connector"; ++ data-role =3D "host"; ++ label =3D "USB-C"; ++ op-sink-microwatt =3D <1000000>; ++ power-role =3D "dual"; ++ sink-pdos =3D ++ ; ++ source-pdos =3D ++ ; ++ try-power-role =3D "sink"; ++ ++ ports { ++ #address-cells =3D <1>; ++ #size-cells =3D <0>; ++ ++ port@0 { ++ reg =3D <0>; ++ ++ usbc_hs: endpoint { ++ remote-endpoint =3D ++ <&u2phy0_typec_hs>; ++ }; ++ }; ++ ++ port@1 { ++ reg =3D <1>; ++ ++ usbc_ss: endpoint { ++ remote-endpoint =3D ++ <&tcphy0_typec_ss>; ++ }; ++ }; ++ ++ port@2 { ++ reg =3D <2>; ++ ++ usbc_dp: endpoint { ++ remote-endpoint =3D ++ <&tcphy0_typec_dp>; ++ }; ++ }; ++ }; ++ }; ++ }; ++}; ++ ++&i2s1 { ++ #sound-dai-cells =3D <0>; ++ pinctrl-names =3D "default"; ++ pinctrl-0 =3D <&i2s_8ch_mclk_gpio>, <&i2s1_2ch_bus>; ++ rockchip,capture-channels =3D <8>; ++ rockchip,playback-channels =3D <8>; ++ status =3D "okay"; ++}; ++ ++&io_domains { ++ audio-supply =3D <&vcc_3v0>; ++ gpio1830-supply =3D <&vcc_3v0>; ++ sdmmc-supply =3D <&vcc_sdio>; ++ status =3D "okay"; ++}; ++ ++&pcie_phy { ++ status =3D "okay"; ++}; ++ ++&pcie0 { ++ bus-scan-delay-ms =3D <1000>; ++ ep-gpios =3D <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>; ++ max-link-speed =3D <2>; ++ num-lanes =3D <4>; ++ pinctrl-names =3D "default"; ++ pinctrl-0 =3D <&pcie_clkreqn_cpm>; ++ vpcie0v9-supply =3D <&vcca0v9_s3>; ++ vpcie1v8-supply =3D <&vcca1v8_s3>; ++ vpcie3v3-supply =3D <&vcc3v3_ssd>; ++ status =3D "okay"; ++}; ++ ++&pinctrl { ++ buttons { ++ pwrbtn_gpio: pwrbtn-gpio { ++ rockchip,pins =3D <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; ++ }; ++ ++ lidbtn_gpio: lidbtn-gpio { ++ rockchip,pins =3D <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>; ++ }; ++ }; ++ ++ dc-charger { ++ dc_det_gpio: dc-det-gpio { ++ rockchip,pins =3D <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++ ++ es8316 { ++ hp_det_gpio: hp-det-gpio { ++ rockchip,pins =3D <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_down>; ++ }; ++ }; ++ ++ fusb302x { ++ fusb0_int_gpio: fusb0-int-gpio { ++ rockchip,pins =3D <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; ++ }; ++ }; ++ ++ i2s1 { ++ i2s_8ch_mclk_gpio: i2s-8ch-mclk-gpio { ++ rockchip,pins =3D <4 RK_PA0 1 &pcfg_pull_none>; ++ }; ++ }; ++ ++ lcd-panel { ++ lcdvcc_en_gpio: lcdvcc-en-gpio { ++ rockchip,pins =3D <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ panel_en_gpio: panel-en-gpio { ++ rockchip,pins =3D <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ lcd_panel_reset_gpio: lcd-panel-reset-gpio { ++ rockchip,pins =3D <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>; ++ }; ++ }; ++ ++ leds { ++ pwrled_gpio: pwrled_gpio { ++ rockchip,pins =3D <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ slpled_gpio: slpled_gpio { ++ rockchip,pins =3D <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++ ++ pmic { ++ pmic_int_l_gpio: pmic-int-l-gpio { ++ rockchip,pins =3D <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>; ++ }; ++ ++ vsel1_gpio: vsel1-gpio { ++ rockchip,pins =3D <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>; ++ }; ++ ++ vsel2_gpio: vsel2-gpio { ++ rockchip,pins =3D <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>; ++ }; ++ }; ++ ++ sdcard { ++ sdmmc0_pwr_h_gpio: sdmmc0-pwr-h-gpio { ++ rockchip,pins =3D <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ }; ++ ++ sdio-pwrseq { ++ wifi_enable_h_gpio: wifi-enable-h-gpio { ++ rockchip,pins =3D <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++ ++ usb-typec { ++ vcc5v0_typec0_en_gpio: vcc5v0-typec0-en-gpio { ++ rockchip,pins =3D <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; ++ }; ++ }; ++ ++ usb2 { ++ pwr_5v_gpio: pwr-5v-gpio { ++ rockchip,pins =3D <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ vcc5v0_host_en_gpio: vcc5v0-host-en-gpio { ++ rockchip,pins =3D <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++ ++ wireless-bluetooth { ++ bt_wake_gpio: bt-wake-gpio { ++ rockchip,pins =3D <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ bt_host_wake_gpio: bt-host-wake-gpio { ++ rockchip,pins =3D <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ bt_reset_gpio: bt-reset-gpio { ++ rockchip,pins =3D <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++}; ++ ++&pmu_io_domains { ++ pmu1830-supply =3D <&vcc_3v0>; ++ status =3D "okay"; ++}; ++ ++&pwm0 { ++ status =3D "okay"; ++}; ++ ++&pwm2 { ++ status =3D "okay"; ++}; ++ ++&saradc { ++ vref-supply =3D <&vcca1v8_s3>; ++ status =3D "okay"; ++}; ++ ++&sdmmc { ++ bus-width =3D <4>; ++ cap-mmc-highspeed; ++ cap-sd-highspeed; ++ cd-gpios =3D <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>; ++ disable-wp; ++ pinctrl-names =3D "default"; ++ pinctrl-0 =3D <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>; ++ sd-uhs-sdr104; ++ vmmc-supply =3D <&vcc3v0_sd>; ++ vqmmc-supply =3D <&vcc_sdio>; ++ status =3D "okay"; ++}; ++ ++&sdio0 { ++ bus-width =3D <4>; ++ cap-sd-highspeed; ++ cap-sdio-irq; ++ keep-power-in-suspend; ++ mmc-pwrseq =3D <&sdio_pwrseq>; ++ non-removable; ++ pinctrl-names =3D "default"; ++ pinctrl-0 =3D <&sdio0_bus4 &sdio0_cmd &sdio0_clk>; ++ sd-uhs-sdr104; ++ status =3D "okay"; ++}; ++ ++&sdhci { ++ bus-width =3D <8>; ++ mmc-hs200-1_8v; ++ non-removable; ++ status =3D "okay"; ++}; ++ ++&spi1 { ++ max-freq =3D <10000000>; ++ status =3D "okay"; ++ ++ spiflash: flash@0 { ++ compatible =3D "jedec,spi-nor"; ++ reg =3D <0>; ++ m25p,fast-read; ++ spi-max-frequency =3D <10000000>; ++ }; ++}; ++ ++&tcphy0 { ++ status =3D "okay"; ++}; ++ ++&tcphy0_dp { ++ port { ++ tcphy0_typec_dp: endpoint { ++ remote-endpoint =3D <&usbc_dp>; ++ }; ++ }; ++}; ++ ++&tcphy0_usb3 { ++ port { ++ tcphy0_typec_ss: endpoint { ++ remote-endpoint =3D <&usbc_ss>; ++ }; ++ }; ++}; ++ ++&tcphy1 { ++ status =3D "okay"; ++}; ++ ++&tsadc { ++ /* tshut mode 0:CRU 1:GPIO */ ++ rockchip,hw-tshut-mode =3D <1>; ++ /* tshut polarity 0:LOW 1:HIGH */ ++ rockchip,hw-tshut-polarity =3D <1>; ++ status =3D "okay"; ++}; ++ ++&u2phy0 { ++ status =3D "okay"; ++ ++ u2phy0_otg: otg-port { ++ status =3D "okay"; ++ }; ++ ++ u2phy0_host: host-port { ++ phy-supply =3D <&vcc5v0_otg>; ++ status =3D "okay"; ++ }; ++ ++ port { ++ u2phy0_typec_hs: endpoint { ++ remote-endpoint =3D <&usbc_hs>; ++ }; ++ }; ++}; ++ ++&u2phy1 { ++ status =3D "okay"; ++ ++ u2phy1_otg: otg-port { ++ status =3D "okay"; ++ }; ++ ++ u2phy1_host: host-port { ++ phy-supply =3D <&vcc5v0_otg>; ++ status =3D "okay"; ++ }; ++}; ++ ++&uart0 { ++ pinctrl-names =3D "default"; ++ pinctrl-0 =3D <&uart0_xfer &uart0_cts &uart0_rts>; ++ uart-has-rtscts; ++ status =3D "okay"; ++ ++ bluetooth { ++ compatible =3D "brcm,bcm4345c5"; ++ clocks =3D <&rk808 1>; ++ clock-names =3D "lpo"; ++ device-wakeup-gpios =3D <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>; ++ host-wakeup-gpios =3D <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>; ++ max-speed =3D <1500000>; ++ pinctrl-names =3D "default"; ++ pinctrl-0 =3D <&bt_host_wake_gpio &bt_wake_gpio &bt_reset_gpio>; ++ shutdown-gpios =3D <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>; ++ vbat-supply =3D <&wifi_bat>; ++ vddio-supply =3D <&vcc_wl>; ++ }; ++}; ++ ++&uart2 { ++ status =3D "okay"; ++}; ++ ++&usb_host0_ehci { ++ status =3D "okay"; ++}; ++ ++&usb_host0_ohci { ++ status =3D "okay"; ++}; ++ ++&usb_host1_ehci { ++ status =3D "okay"; ++}; ++ ++&usb_host1_ohci { ++ status =3D "okay"; ++}; ++ ++&usbdrd3_0 { ++ status =3D "okay"; ++}; ++ ++&usbdrd_dwc3_0 { ++ dr_mode =3D "host"; ++ status =3D "okay"; ++}; ++ ++&usbdrd3_1 { ++ status =3D "okay"; ++}; ++ ++&usbdrd_dwc3_1 { ++ dr_mode =3D "host"; ++ status =3D "okay"; ++}; ++ ++&vopb { ++ status =3D "okay"; ++}; ++ ++&vopb_mmu { ++ status =3D "okay"; ++}; ++ ++&vopl { ++ status =3D "okay"; ++}; ++ ++&vopl_mmu { ++ status =3D "okay"; ++}; +--=20 +2.25.1 + =2D-=20 2.20.1 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCXnrKIwAKCRDcUY/If5cW qhW4AQDn4sf78ieHrs97DIYcHimuXJ3NKwsTeb1n2iManEylyQEA0x1E0cfrXbDV VN+0w9x/LfREHKbMlKiPexiOuW0ThgU= =0zc4 -----END PGP SIGNATURE----- --==-=-=--