[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <njknmya7qcxypc5pb3ddj27oulvtf723hkzgx2qdtyt2tuefh2@lbo55224blkq>
Date: Wed, 1 Oct 2025 22:27:56 -0500
From: Bjorn Andersson <andersson@...nel.org>
To: Jingzhou Zhu <newwheatzjz@...omail.com>
Cc: konradybcio@...nel.org, robh@...nel.org, krzk+dt@...nel.org,
conor+dt@...nel.org, linux-arm-msm@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 2/2] arm64: dts: qcom: Add support for Huawei MateBook
E 2019
On Wed, Oct 01, 2025 at 10:21:07PM +0800, Jingzhou Zhu wrote:
> Add device tree for Huawei MateBook E 2019, which is a 2-in-1 tablet based
> on Qualcomm's sdm850 platform.
>
> Supported features:
> - ACSP, CDSP and SLPI
> - Volume Key
> - Power Key
> - Tablet Mode Switching
> - Display
> - Touchscreen
> - Stylus
> - WiFi
> - Bluetooth
> - GPU
> - USB
> - Keyboard
> - Touchpad
> - UFS
> - SD Card
> - Audio (right internal mic and headphone mic not working)
> - Mobile Network
>
> Features not supported yet:
> - Panel Backlight
> - Lid Detection
> - Battery
> - EFI Variable Access
> - Cameras
>
> 1. Panel backlight, lid detection and battery will be supported with the
> EC driver upstreamed.
> 2. EFI variables can only be read with the QSEECOM driver, and will be
> enabled when the driver is fixed.
> 3. Cameras are tested to work with modified downstream driver, and once
> drivers for these camera modules are included in the tree, cameras can
> be enabled.
>
> Features won't be supported:
> - External Display
> - Fingerprint
>
> 1. To make external display work, more reverse engineering may be required,
> but it's beyond my ability.
> 2. Fingerprint is controlled by TrustZone, meaning direct access to it
> isn't possible.
>
> Signed-off-by: Jingzhou Zhu <newwheatzjz@...omail.com>
> ---
> arch/arm64/boot/dts/qcom/Makefile | 1 +
> .../qcom/sdm850-huawei-matebook-e-2019.dts | 962 ++++++++++++++++++
> 2 files changed, 963 insertions(+)
> create mode 100644 arch/arm64/boot/dts/qcom/sdm850-huawei-matebook-e-2019.dts
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 296688f7cb26..a6bcebe66dd7 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -258,6 +258,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sdm845-xiaomi-beryllium-ebbg.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sdm845-xiaomi-beryllium-tianma.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sdm845-xiaomi-polaris.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sdm845-shift-axolotl.dtb
> +dtb-$(CONFIG_ARCH_QCOM) += sdm850-huawei-matebook-e-2019.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sdm850-lenovo-yoga-c630.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sdm850-samsung-w737.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sdx75-idp.dtb
> diff --git a/arch/arm64/boot/dts/qcom/sdm850-huawei-matebook-e-2019.dts b/arch/arm64/boot/dts/qcom/sdm850-huawei-matebook-e-2019.dts
> new file mode 100644
> index 000000000000..ec786286a604
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/sdm850-huawei-matebook-e-2019.dts
> @@ -0,0 +1,962 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Huawei MateBook E 2019
> + *
> + * Copyright (c) 2025, Jingzhou Zhu <newwheatzjz@...omail.com>
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/input/gpio-keys.h>
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/leds/common.h>
> +#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
> +#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
> +#include <dt-bindings/sound/qcom,q6afe.h>
> +#include <dt-bindings/sound/qcom,q6asm.h>
> +#include <dt-bindings/sound/qcom,wcd934x.h>
> +#include "sdm850.dtsi"
> +#include "sdm845-wcd9340.dtsi"
> +#include "pm8998.dtsi"
> +
> +/*
> + * Update following upstream (sdm845.dtsi) reserved
> + * memory mappings for firmware loading to succeed
> + * and enable the IPA device.
> + */
> +/delete-node/ &tz_mem;
> +/delete-node/ &rmtfs_mem;
> +/delete-node/ &qseecom_mem;
> +/delete-node/ &ipa_fw_mem;
> +/delete-node/ &ipa_gsi_mem;
> +/delete-node/ &gpu_mem;
> +/delete-node/ &adsp_mem;
> +/delete-node/ &wlan_msa_mem;
> +/delete-node/ &slpi_mem;
> +
> +/ {
> + model = "Huawei MateBook E 2019";
> + compatible = "huawei,planck", "qcom,sdm845";
> + chassis-type = "convertible";
> +
> + aliases {
> + serial0 = &uart9;
> + serial1 = &uart6;
> + };
> +
> + gpio-keys {
> + compatible = "gpio-keys";
> +
> + pinctrl-0 = <&volume_up_gpio &mode_pin_active>;
> + pinctrl-names = "default";
> +
> + key-vol-up {
> + label = "Volume up";
> + gpios = <&pm8998_gpios 6 GPIO_ACTIVE_LOW>;
> + linux,code = <KEY_VOLUMEUP>;
> + debounce-interval = <15>;
> + wakeup-source;
> + };
> +
> + switch-mode {
> + label = "Tablet mode switch";
> + gpios = <&tlmm 79 GPIO_ACTIVE_HIGH>;
> + linux,input-type = <EV_SW>;
> + linux,code = <SW_TABLET_MODE>;
> + wakeup-source;
> + };
> + };
> +
> + reserved-memory {
> + cont_splash_mem: framebuffer@...00000 {
> + reg = <0 0x80100000 0 0xd00000>;
> + no-map;
> + };
> +
> + tz_mem: tz@...00000 {
> + reg = <0 0x86d00000 0 0x4600000>;
> + no-map;
> + };
> +
> + qseecom_mem: qseecom@...00000 {
> + reg = <0 0x8b500000 0 0xa00000>;
> + no-map;
> + };
> +
> + wlan_msa_mem: wlan-msa@...00000 {
> + reg = <0 0x8c400000 0 0x100000>;
> + no-map;
> + };
> +
> + adsp_mem: adsp@...00000 {
> + reg = <0 0x8c500000 0 0x1a00000>;
> + no-map;
> + };
> +
> + ipa_fw_mem: ipa-fw@...00000 {
> + reg = <0 0x8df00000 0 0x100000>;
> + no-map;
> + };
> +
> + slpi_mem: slpi@...00000 {
> + reg = <0 0x96700000 0 0x1200000>;
> + };
> +
> + gpu_mem: gpu@...00000 {
> + reg = <0 0x97900000 0 0x5000>;
> + no-map;
> + };
> +
> + rmtfs_mem: rmtfs@...00000 {
> + compatible = "qcom,rmtfs-mem";
> + reg = <0 0x97c00000 0 0x200000>;
> + no-map;
> +
> + qcom,client-id = <1>;
> + qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
> +
> + };
> + };
> +
> + sw_edp_1p2: edp-1p2-regulator {
Please see and adjust according to "Order of Nodes" section in
Documentation/devicetree/bindings/dts-coding-style.rst ("edp" <
"leds" < "regulator" < "reserved" ...)
> + compatible = "regulator-fixed";
> + regulator-name = "sw_edp_1p2";
> +
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> +
> + pinctrl-0 = <&sw_edp_1p2_en>;
> + pinctrl-names = "default";
> +
> + gpio = <&pm8998_gpios 9 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> +
> + vin-supply = <&vreg_l2a_1p2>;
> + };
> +
> + sn65dsi86_refclk: sn65dsi86-refclk {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> +
> + clock-frequency = <19200000>;
> + };
> +
[..]
> +&i2c5 {
> + status = "okay";
And for these, look at the "Order of Properties in Device Node" section.
> + clock-frequency = <400000>;
> +
Regards,
Bjorn
Powered by blists - more mailing lists