From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vagrant Cascadian Subject: RFC: Linux-Libre 5.5.x on pinebook pro Date: Thu, 19 Mar 2020 12:14:11 -0700 Message-ID: <87k13gqhrw.fsf@ponder> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:54448) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jF0cd-0000gq-2L for guix-devel@gnu.org; Thu, 19 Mar 2020 15:14:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jF0cZ-0005Y6-BP for guix-devel@gnu.org; Thu, 19 Mar 2020 15:14:26 -0400 Received: from cascadia.aikidev.net ([2600:3c01:e000:267:0:a171:de7:c]:37886) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1jF0cY-0005X2-SW for guix-devel@gnu.org; Thu, 19 Mar 2020 15:14:23 -0400 List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane-mx.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain I've been working on trying to get a mainline or nearly mainline kernel working for pinebook pro, and there's a little better support in linux-libre 5.5. According to: https://linux-libre.fsfla.org/pub/linux-libre/releases/ The 5.5 patches have been available since late January, and seem to be getting regular updates as needed. So far, I haven't had time to test and update linux-libre 5.5 with the kernel configs and so on, so I've been working on a linux-libre-arm64-generic package that uses the defconfig (much like linux-libre-arm-generic) and linux-libre 5.5.x. 5.4 is a long term support kernel, so I guess that would likely stick around regardless. 5.6 is probably going to come out soon, so wondering if it's worth updating to 5.5.x? Any issues with pushing a linux-libre-arm64-generic package to master based on 5.5.x? The following patches add linux-libre 5.5.9 (leaving the default at 5.4), linux-libre-arm64-generic, and adds a patch from linux-next to enable limited support for pinebook-pro. Once I've tested 5.5.10, i'd probably end up pushing that. live well, vagrant --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-gnu-Add-linux-libre-5.5.patch Content-Transfer-Encoding: quoted-printable From=20ffef750306d4f2ee3a228938620647270fabc85a Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Sat, 14 Mar 2020 18:54:50 -0700 Subject: [PATCH 1/3] gnu: Add linux-libre 5.5. * gnu/packages/linux (deblob-scripts-5.5): New variable. (linux-libre-5.5-version): New variable. (linux-libre-5.5-pristine-source): New variable. (linux-libre-5.5-source): New variable. (linux-libre-headers-5.5): New variable. (linux-libre-5.5): New variable. =2D-- gnu/packages/linux.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 8dd5061b6c..0b93f0156d 100644 =2D-- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -192,6 +192,12 @@ defconfig. Return the appropriate make target if appl= icable, otherwise return "deblob-check")) (sha256 deblob-check-hash)))) =20 +(define deblob-scripts-5.5 + (linux-libre-deblob-scripts + "5.5.9" + (base32 "1vj3rnrbkhj86lkabhrcm8qiqcz1lqi0lk54ysmg3lanf2vqgvab") + (base32 "1j44hx6kis6gz9r6yb0s3f17ham24qv0nih6sxsnd2gwxdsid535"))) + (define deblob-scripts-5.4 (linux-libre-deblob-scripts "5.4.19" @@ -362,6 +368,14 @@ corresponding UPSTREAM-SOURCE (an origin), using the g= iven DEBLOB-SCRIPTS." "linux-" version ".tar.xz")) (sha256 hash))) =20 +(define-public linux-libre-5.5-version "5.5.9") +(define-public linux-libre-5.5-pristine-source + (let ((version linux-libre-5.5-version) + (hash (base32 "0y58gkzadjwfqfry5568g4w4p2mpx2sw50sk95i07s5va1ly2dd= 4"))) + (make-linux-libre-source version + (%upstream-linux-source version hash) + deblob-scripts-5.5))) + (define-public linux-libre-5.4-version "5.4.25") (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) @@ -430,6 +444,11 @@ corresponding UPSTREAM-SOURCE (an origin), using the g= iven DEBLOB-SCRIPTS." (patches (append (origin-patches source) patches)))) =20 +(define-public linux-libre-5.5-source + (source-with-patches linux-libre-5.5-pristine-source + (list %boot-logo-patch + %linux-libre-arm-export-__sync_icache_dcache-= patch))) + (define-public linux-libre-5.4-source (source-with-patches linux-libre-5.4-pristine-source (list %boot-logo-patch @@ -525,6 +544,10 @@ corresponding UPSTREAM-SOURCE (an origin), using the g= iven DEBLOB-SCRIPTS." (description "Headers of the Linux-Libre kernel.") (license license:gpl2))) =20 +(define-public linux-libre-headers-5.5 + (make-linux-libre-headers* linux-libre-5.5-version + linux-libre-5.5-source)) + (define-public linux-libre-headers-5.4 (make-linux-libre-headers* linux-libre-5.4-version linux-libre-5.4-source)) @@ -782,6 +805,12 @@ It has been modified to remove all non-free binary blo= bs.") ;;; Generic kernel packages. ;;; =20 +(define-public linux-libre-5.5 + (make-linux-libre* linux-libre-5.5-version + linux-libre-5.5-source + '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "riscv6= 4-linux") + #:configuration-file kernel-config)) + (define-public linux-libre-5.4 (make-linux-libre* linux-libre-5.4-version linux-libre-5.4-source =2D-=20 2.20.1 --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0002-gnu-Add-linux-libre-arm64-generic.patch Content-Transfer-Encoding: quoted-printable From=20b1858687d666fa31710098540052822a0aa3b0de Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Sat, 14 Mar 2020 18:58:05 -0700 Subject: [PATCH 2/3] gnu: Add linux-libre-arm64-generic. * gnu/packages/linux (linux-libre-arm64-generic): New variable. =2D-- gnu/packages/linux.scm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 0b93f0156d..756b4a051e 100644 =2D-- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -906,6 +906,13 @@ It has been modified to remove all non-free binary blo= bs.") #:defconfig "omap2plus_defconfig" #:extra-version "arm-omap2plus")) =20 +(define-public linux-libre-arm64-generic + (make-linux-libre* linux-libre-5.5-version + linux-libre-5.5-source + '("aarch64-linux") + #:defconfig "defconfig" + #:extra-version "arm64-generic")) + (define-public linux-libre-riscv64-generic (make-linux-libre* linux-libre-version linux-libre-source =2D-=20 2.20.1 --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0003-Add-patch-from-linux-next-20200313-to-add-device-tre.patch Content-Transfer-Encoding: quoted-printable From=20888c3c08c7cda9e5f0a48294aba34d3433b65346 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Sat, 14 Mar 2020 23:20:12 -0700 Subject: [PATCH 3/3] Add patch from linux next-20200313 to add device-tree = for pinebook pro. =2D-- gnu/packages/linux.scm | 4 +- ...re-Add-initial-support-for-Pinebook-.patch | 1135 +++++++++++++++++ 2 files changed, 1138 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/linux-libre-Add-initial-support-fo= r-Pinebook-.patch diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 756b4a051e..a1138ca0e5 100644 =2D-- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -447,7 +447,9 @@ corresponding UPSTREAM-SOURCE (an origin), using the gi= ven DEBLOB-SCRIPTS." (define-public linux-libre-5.5-source (source-with-patches linux-libre-5.5-pristine-source (list %boot-logo-patch =2D %linux-libre-arm-export-__sync_icache_dcach= e-patch))) + %linux-libre-arm-export-__sync_icache_dcache-= patch + (search-patch + "linux-libre-Add-initial-support-for-Pineboo= k-.patch")))) =20 (define-public linux-libre-5.4-source (source-with-patches linux-libre-5.4-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/If5cWqgUCXnPEhgAKCRDcUY/If5cW qkyjAP42NWZ7O1j52jGxOV6/LTGRc28a850QlfMfR+vQ5sqCeAEAylBAva6LRw2m 7gNBBEGwcMEKkIa+9yRNXHiVbGmm1gk= =u6QU -----END PGP SIGNATURE----- --==-=-=--