From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:52825) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jHHtK-000471-97 for guix-patches@gnu.org; Wed, 25 Mar 2020 22:05:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jHHtG-0003Ek-KE for guix-patches@gnu.org; Wed, 25 Mar 2020 22:05:06 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:52030) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jHHtG-0003Ee-FT for guix-patches@gnu.org; Wed, 25 Mar 2020 22:05:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jHHtG-00088G-AF for guix-patches@gnu.org; Wed, 25 Mar 2020 22:05:02 -0400 Subject: bug#40218: linux-libre patch to support pinebook pro Resent-To: guix-patches@gnu.org Resent-Message-ID: From: Vagrant Cascadian In-Reply-To: <87a74516fx.fsf@yucca> References: <87a74516fx.fsf@yucca> Date: Wed, 25 Mar 2020 19:03:56 -0700 Message-ID: <87o8sjkh2r.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-done@debbugs.gnu.org --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On 2020-03-24, Vagrant Cascadian wrote: > 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! Since 5.4.28 was just pushed and not yet built, I went ahead and pushed this patch without figuring out how to do the conditional. live well, vagrant > > live well, > vagrant > From 8a5e3cf012634bda0df4e7562494d3bab43004a2 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 pinebo= ok > pro. > > * gnu/packages/patches/linux-libre-Add-initial-support-for-Pinebook-.patc= h: > New file. > * gnu/local.mk (dist_patch_DATA): Update accordingly. > * gnu/packages/linux (linux-libre-5.4-source): Add patch. > --- > 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-= for-Pinebook-.patch > > diff --git a/gnu/local.mk b/gnu/local.mk > index 7cce60b7c0..345d72090e 100644 > --- 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-.pat= ch \ > %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 > --- a/gnu/packages/linux.scm > +++ b/gnu/packages/linux.scm > @@ -433,7 +433,11 @@ corresponding UPSTREAM-SOURCE (an origin), using the= given DEBLOB-SCRIPTS." > (define-public linux-libre-5.4-source > (source-with-patches linux-libre-5.4-pristine-source > (list %boot-logo-patch > - %linux-libre-arm-export-__sync_icache_dcach= e-patch))) > + %linux-libre-arm-export-__sync_icache_dcach= e-patch > + ;; Pinebook Pro patch from linux-next, > + ;; can be dropped for linux-libre 5.7 > + (search-patch > + "linux-libre-Add-initial-support-for-Pineb= ook-.patch")))) >=20=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-Pin= ebook-.patch b/gnu/packages/patches/linux-libre-Add-initial-support-for-Pin= ebook-.patch > new file mode 100644 > index 0000000000..659e10cba6 > --- /dev/null > +++ b/gnu/packages/patches/linux-libre-Add-initial-support-for-Pinebook-.= patch > @@ -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@manjar= o.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= /rockchip/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= /arm64/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 > + > --=20 > 2.20.1 --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCXnwNjQAKCRDcUY/If5cW qsniAQD6vbXOON6LI1h6eOFzgz9Xaghg/10GAFu+5R/jGxnR3QD+J6soOeiYJV+i uRltx1qwV2qS0oAe4oxXwndH8f2uwgA= =U8wB -----END PGP SIGNATURE----- --=-=-=--