Re: [PATCH v3 2/3] arm64: dts: qcom: Add HP EliteBook X G2q 14 AI
From: Jason Pettit
Date: Sun Aug 16 2026 - 14:29:30 EST
> On Wed, Aug 12, 2026 at 6:04 AM Tobias Heider <tobias.heider@xxxxxxxxxxxxx> wrote:
>>
>> On Sun, Aug 09, 2026 at 02:29:22PM -0700, Jason Pettit wrote:
>> > Add board support for the HP EliteBook X G2q 14" Next Gen AI PC
>> > (product SKU C4JG0AV, board 8E91), a Snapdragon X2 Elite (Glymur)
>> > laptop, using the "hp,elitebook-x-g2q" / "qcom,glymur" compatible.
>> >
>> > Enabled by this device tree:
>> >
>> > - internal eDP panel (samsung,atna33xc20)
>> > - 2x USB Type-C with DisplayPort alt-mode and USB
>> > - chassis HDMI output
>> > - chassis USB-A host port (usb_mp multiport controller)
>> > - internal eUSB2 host with the Elan fingerprint reader
>> > - NVMe SSD on PCIe5
>> > - Wi-Fi and Bluetooth
>> > - HID-over-I2C keyboard, touchpad, touchscreen; lid switch
>> > - Adreno GPU and GMU (Freedreno GL on Mesa)
>> > - audio playback and capture
>> > - real-time clock
>> > - compute DSP (cDSP)
>> >
>> > The HDMI jack is driven by a power-only DisplayPort-to-HDMI LSPCON on
>> > the usb_2 combo-PHY DP lanes rather than being a third USB-C port; HPD
>> > is on gpio126. The LSPCON is on an I/O sub-board with no I2C/AUX control
>> > path, so it is modelled with the generic simple-bridge "parade,ps185hdm"
>> > compatible used by the in-tree x1e80100 HDMI-bridge boards (the exact
>> > bridge part is unconfirmed) and it needs CONFIG_DRM_SIMPLE_BRIDGE.
>> >
>> > The &gpu/&gmu enable, the audio nodes and &remoteproc_soccp opt into
>> > glymur.dtsi SoC nodes that are still in-flight; those series are
>> > declared as prerequisites in the cover letter.
>> >
>> > Assisted-by: Claude:claude-opus-4-8
>> > Signed-off-by: Jason Pettit <jason.pettit@xxxxxxxxxxxxxxxx>
>> > ---
>> > arch/arm64/boot/dts/qcom/Makefile | 1 +
>> > .../boot/dts/qcom/glymur-hp-elitebook-x-g2q.dts | 1039 ++++++++++++++++++++
>> > 2 files changed, 1040 insertions(+)
>> >
>> > diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
>> > index 1c86e7e98f55..146955de4606 100644
>> > --- a/arch/arm64/boot/dts/qcom/Makefile
>> > +++ b/arch/arm64/boot/dts/qcom/Makefile
>> > @@ -18,6 +18,7 @@ dtb-$(CONFIG_ARCH_QCOM) += eliza-cqs-evk.dtb
>> > dtb-$(CONFIG_ARCH_QCOM) += eliza-mtp.dtb
>> > dtb-$(CONFIG_ARCH_QCOM) += glymur-asus-zenbook-a16-ux3607oa.dtb
>> > dtb-$(CONFIG_ARCH_QCOM) += glymur-crd.dtb
>> > +dtb-$(CONFIG_ARCH_QCOM) += glymur-hp-elitebook-x-g2q.dtb
>> > dtb-$(CONFIG_ARCH_QCOM) += hamoa-iot-evk.dtb
>> >
>> > hamoa-iot-evk-el2-dtbs := hamoa-iot-evk.dtb x1-el2.dtbo
>> > diff --git a/arch/arm64/boot/dts/qcom/glymur-hp-elitebook-x-g2q.dts b/arch/arm64/boot/dts/qcom/glymur-hp-elitebook-x-g2q.dts
>> > new file mode 100644
>> > index 000000000000..8d0fe276bf83
>> > --- /dev/null
>> > +++ b/arch/arm64/boot/dts/qcom/glymur-hp-elitebook-x-g2q.dts
>> > @@ -0,0 +1,1039 @@
>> > +// SPDX-License-Identifier: BSD-3-Clause
>> > +/*
>> > + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
>> > + */
>> > +/dts-v1/;
>> > +
>> > +#include "glymur.dtsi"
>> > +
>> > +#include "pmcx0102.dtsi" /* SPMI0: SID-2/3 SPMI1: SID-2/3 */
>> > +#include "pmh0101.dtsi" /* SPMI0: SID-1 */
>> > +#include "pmh0110-glymur.dtsi" /* SPMI0: SID-5/7 SPMI1: SID-5 */
>> > +#include "pmh0104-glymur.dtsi" /* SPMI0: SID-8/9 SPMI1: SID-11 */
>> > +#include "pmk8850.dtsi" /* SPMI0: SID-0 */
>> > +#include "smb2370.dtsi" /* SPMI2: SID-9/10 */
>> > +
>> > +#include <dt-bindings/gpio/gpio.h>
>> > +#include <dt-bindings/input/gpio-keys.h>
>> > +#include <dt-bindings/input/input.h>
>> > +#include <dt-bindings/interrupt-controller/irq.h>
>> > +#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
>> > +#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
>> > +
>> > +/ {
>> > + model = "HP EliteBook X G2q 14 AI";
>> > + compatible = "hp,elitebook-x-g2q", "qcom,glymur";
>> > +
>> > + aliases {
>> > + serial1 = &uart14;
>> > + };
>> > +
>> > + clocks {
>> > + xo_board: xo-board {
>> > + compatible = "fixed-clock";
>> > + clock-frequency = <38400000>;
>> > + #clock-cells = <0>;
>> > + };
>> > +
>> > + sleep_clk: sleep-clk {
>> > + compatible = "fixed-clock";
>> > + clock-frequency = <32000>;
>> > + #clock-cells = <0>;
>> > + };
>> > + };
>> > +
>> > + gpio-keys {
>> > + compatible = "gpio-keys";
>> > +
>> > + pinctrl-0 = <&lid_default>;
>> > + pinctrl-names = "default";
>> > +
>> > + switch-lid {
>> > + label = "lid";
>> > + gpios = <&tlmm 92 GPIO_ACTIVE_LOW>;
>> > + linux,input-type = <EV_SW>;
>> > + linux,code = <SW_LID>;
>> > + wakeup-source;
>> > + wakeup-event-action = <EV_ACT_DEASSERTED>;
>> > + };
>> > + };
>> > +
>> > + hdmi-bridge {
>> > + compatible = "parade,ps185hdm";
>> > +
>> > + pinctrl-0 = <&usb2_dp_hot_plug_detect>;
>> > + pinctrl-names = "default";
>> > +
>> > + ports {
>> > + #address-cells = <1>;
>> > + #size-cells = <0>;
>> > +
>> > + port@0 {
>> > + reg = <0>;
>> > +
>> > + hdmi_bridge_in: endpoint {
>> > + remote-endpoint = <&usb_2_qmpphy_out_dp>;
>> > + };
>> > + };
>> > +
>> > + port@1 {
>> > + reg = <1>;
>> > +
>> > + hdmi_bridge_out: endpoint {
>> > + remote-endpoint = <&hdmi_con>;
>> > + };
>> > + };
>> > + };
>> > + };
>> > +
>> > + hdmi-connector {
>> > + compatible = "hdmi-connector";
>> > + type = "a";
>> > +
>> > + port {
>> > + hdmi_con: endpoint {
>> > + remote-endpoint = <&hdmi_bridge_out>;
>> > + };
>> > + };
>> > + };
>> > +
>> > + pmic-glink {
>> > + compatible = "qcom,glymur-pmic-glink",
>> > + "qcom,pmic-glink";
>> > + #address-cells = <1>;
>> > + #size-cells = <0>;
>> > +
>> > + /* Left side port */
>> > + connector@0 {
>> > + compatible = "usb-c-connector";
>> > + reg = <0>;
>> > + power-role = "dual";
>> > + data-role = "dual";
>> > +
>> > + ports {
>> > + #address-cells = <1>;
>> > + #size-cells = <0>;
>> > +
>> > + port@0 {
>> > + reg = <0>;
>> > +
>> > + pmic_glink_hs_in: endpoint {
>> > + remote-endpoint = <&usb_0_dwc3_hs>;
>> > + };
>> > + };
>> > +
>> > + port@1 {
>> > + reg = <1>;
>> > +
>> > + pmic_glink_ss_in: endpoint {
>> > + remote-endpoint = <&usb_0_qmpphy_out>;
>> > + };
>> > + };
>> > + };
>> > + };
>> > +
>> > + /* Right side port */
>> > + connector@1 {
>> > + compatible = "usb-c-connector";
>> > + reg = <1>;
>> > + power-role = "dual";
>> > + data-role = "dual";
>> > +
>> > + ports {
>> > + #address-cells = <1>;
>> > + #size-cells = <0>;
>> > +
>> > + port@0 {
>> > + reg = <0>;
>> > +
>> > + pmic_glink_hs_in1: endpoint {
>> > + remote-endpoint = <&usb_1_dwc3_hs>;
>> > + };
>> > + };
>> > +
>> > + port@1 {
>> > + reg = <1>;
>> > +
>> > + pmic_glink_ss_in1: endpoint {
>> > + remote-endpoint = <&usb_1_qmpphy_out>;
>> > + };
>> > + };
>> > + };
>> > + };
>> > + };
>> > +
>> > + vreg_edp_3p3: regulator-edp-3p3 {
>> > + compatible = "regulator-fixed";
>> > +
>> > + regulator-name = "VREG_EDP_3P3";
>> > + regulator-min-microvolt = <3300000>;
>> > + regulator-max-microvolt = <3300000>;
>> > +
>> > + gpio = <&tlmm 70 GPIO_ACTIVE_HIGH>;
>> > + enable-active-high;
>> > +
>> > + pinctrl-0 = <&edp_reg_en>;
>> > + pinctrl-names = "default";
>> > +
>> > + regulator-boot-on;
>> > + };
>> > +
>> > + vreg_nvme: regulator-nvme {
>> > + compatible = "regulator-fixed";
>> > +
>> > + regulator-name = "VREG_NVME_3P3";
>> > + regulator-min-microvolt = <3300000>;
>> > + regulator-max-microvolt = <3300000>;
>> > +
>> > + gpio = <&pmh0101_gpios 14 GPIO_ACTIVE_HIGH>;
>> > + enable-active-high;
>> > +
>> > + pinctrl-0 = <&nvme_reg_en>;
>> > + pinctrl-names = "default";
>> > +
>> > + regulator-boot-on;
>> > + };
>> > +
>> > + vreg_wcn_0p95: regulator-wcn-0p95 {
>> > + compatible = "regulator-fixed";
>> > +
>> > + regulator-name = "VREG_WCN_0P95";
>> > + regulator-min-microvolt = <950000>;
>> > + regulator-max-microvolt = <950000>;
>> > +
>> > + vin-supply = <&vreg_wcn_3p3>;
>> > + };
>> > +
>> > + vreg_wcn_3p3: regulator-wcn-3p3 {
>> > + compatible = "regulator-fixed";
>> > +
>> > + regulator-name = "VREG_WCN_3P3";
>> > + regulator-min-microvolt = <3300000>;
>> > + regulator-max-microvolt = <3300000>;
>> > +
>> > + gpio = <&tlmm 94 GPIO_ACTIVE_HIGH>;
>> > + enable-active-high;
>> > +
>> > + pinctrl-0 = <&wcn_sw_en>;
>> > + pinctrl-names = "default";
>> > +
>> > + regulator-boot-on;
>> > + };
>> > +
>> > + sound {
>> > + compatible = "qcom,glymur-sndcard";
>> > + model = "GLYMUR-HP-EliteBook-X-G2q";
>> > +
>> > + audio-routing = "WooferLeft IN", "WSA WSA_SPK1 OUT",
>> > + "TweeterLeft IN", "WSA WSA_SPK2 OUT",
>> > + "WooferRight IN", "WSA2 WSA_SPK1 OUT",
>> > + "TweeterRight IN", "WSA2 WSA_SPK2 OUT",
>> > + "VA DMIC0", "vdd-micb",
>> > + "VA DMIC1", "vdd-micb",
>> > + "VA DMIC2", "vdd-micb",
>> > + "VA DMIC3", "vdd-micb";
>> > +
>> > + va-dai-link {
>> > + link-name = "VA Capture";
>> > +
>> > + codec {
>> > + sound-dai = <&lpass_vamacro 0>;
>> > + };
>> > +
>> > + cpu {
>> > + sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
>> > + };
>> > +
>> > + platform {
>> > + sound-dai = <&q6apm>;
>> > + };
>> > + };
>> > +
>> > + wsa-dai-link {
>> > + link-name = "WSA Playback";
>> > +
>> > + codec {
>> > + sound-dai = <&left_woofer>, <&left_tweeter>,
>> > + <&swr0 0>, <&lpass_wsamacro 0>,
>> > + <&right_woofer>, <&right_tweeter>,
>> > + <&swr3 0>, <&lpass_wsa2macro 0>;
>> > + };
>> > +
>> > + cpu {
>> > + sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
>> > + };
>> > +
>> > + platform {
>> > + sound-dai = <&q6apm>;
>> > + };
>> > + };
>> > + };
>> > +
>> > + wcn7850-pmu {
>> > + compatible = "qcom,wcn7850-pmu";
>> > +
>> > + vdd-supply = <&vreg_wcn_0p95>;
>> > + vddio-supply = <&vreg_l15b_e0_1p8>;
>> > + vddaon-supply = <&vreg_l15b_e0_1p8>;
>> > + vdddig-supply = <&vreg_l15b_e0_1p8>;
>> > + vddrfa1p2-supply = <&vreg_l15b_e0_1p8>;
>> > + vddrfa1p8-supply = <&vreg_l15b_e0_1p8>;
>> > +
>> > + wlan-enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
>> > + bt-enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>;
>> > +
>> > + pinctrl-0 = <&wcn_wlan_bt_en>;
>> > + pinctrl-names = "default";
>> > +
>> > + regulators {
>> > + vreg_pmu_rfa_cmn: ldo0 {
>> > + regulator-name = "vreg_pmu_rfa_cmn";
>> > + };
>> > +
>> > + vreg_pmu_aon_0p59: ldo1 {
>> > + regulator-name = "vreg_pmu_aon_0p59";
>> > + };
>> > +
>> > + vreg_pmu_wlcx_0p8: ldo2 {
>> > + regulator-name = "vreg_pmu_wlcx_0p8";
>> > + };
>> > +
>> > + vreg_pmu_wlmx_0p85: ldo3 {
>> > + regulator-name = "vreg_pmu_wlmx_0p85";
>> > + };
>> > +
>> > + vreg_pmu_btcmx_0p85: ldo4 {
>> > + regulator-name = "vreg_pmu_btcmx_0p85";
>> > + };
>> > +
>> > + vreg_pmu_rfa_0p8: ldo5 {
>> > + regulator-name = "vreg_pmu_rfa_0p8";
>> > + };
>> > +
>> > + vreg_pmu_rfa_1p2: ldo6 {
>> > + regulator-name = "vreg_pmu_rfa_1p2";
>> > + };
>> > +
>> > + vreg_pmu_rfa_1p8: ldo7 {
>> > + regulator-name = "vreg_pmu_rfa_1p8";
>> > + };
>> > +
>> > + vreg_pmu_pcie_0p9: ldo8 {
>> > + regulator-name = "vreg_pmu_pcie_0p9";
>> > + };
>> > +
>> > + vreg_pmu_pcie_1p8: ldo9 {
>> > + regulator-name = "vreg_pmu_pcie_1p8";
>> > + };
>> > + };
>> > + };
>> > +};
>> > +
>> > +&apps_rsc {
>> > + regulators-0 {
>> > + compatible = "qcom,pmh0101-rpmh-regulators";
>> > + qcom,pmic-id = "B_E0";
>> > +
>> > + vreg_l1b_e0_1p8: ldo1 {
>> > + regulator-name = "vreg_l1b_e0_1p8";
>> > + regulator-min-microvolt = <1800000>;
>> > + regulator-max-microvolt = <1800000>;
>> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> > + };
>> > +
>> > + vreg_l7b_e0_3p1: ldo7 {
>> > + regulator-name = "vreg_l7b_e0_3p1";
>> > + regulator-min-microvolt = <3072000>;
>> > + regulator-max-microvolt = <3072000>;
>> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> > + };
>> > +
>> > + vreg_l15b_e0_1p8: ldo15 {
>> > + regulator-name = "vreg_l15b_e0_1p8";
>> > + regulator-min-microvolt = <1800000>;
>> > + regulator-max-microvolt = <1800000>;
>> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> > + };
>> > +
>> > + vreg_l18b_e0_1p2: ldo18 {
>> > + regulator-name = "vreg_l18b_e0_1p2";
>> > + regulator-min-microvolt = <1200000>;
>> > + regulator-max-microvolt = <1200000>;
>> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> > + };
>> > + };
>> > +
>> > + regulators-1 {
>> > + compatible = "qcom,pmcx0102-rpmh-regulators";
>> > + qcom,pmic-id = "C_E1";
>> > +
>> > + vreg_l1c_e1_0p91: ldo1 {
>> > + regulator-name = "vreg_l1c_e1_0p91";
>> > + regulator-min-microvolt = <912000>;
>> > + regulator-max-microvolt = <912000>;
>> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> > + };
>> > + };
>> > +
>> > + regulators-2 {
>> > + compatible = "qcom,pmh0110-rpmh-regulators";
>> > + qcom,pmic-id = "F_E0";
>> > +
>> > + vreg_l2f_e0_0p94: ldo2 {
>> > + regulator-name = "vreg_l2f_e0_0p94";
>> > + regulator-min-microvolt = <936000>;
>> > + regulator-max-microvolt = <936000>;
>> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> > + };
>> > +
>> > + vreg_l3f_e0_0p91: ldo3 {
>> > + regulator-name = "vreg_l3f_e0_0p91";
>> > + regulator-min-microvolt = <912000>;
>> > + regulator-max-microvolt = <912000>;
>> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> > + };
>> > + };
>> > +
>> > + regulators-3 {
>> > + compatible = "qcom,pmh0110-rpmh-regulators";
>> > + qcom,pmic-id = "F_E1";
>> > +
>> > + vreg_l1f_e1_0p88: ldo1 {
>> > + regulator-name = "vreg_l1f_e1_0p88";
>> > + regulator-min-microvolt = <880000>;
>> > + regulator-max-microvolt = <880000>;
>> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> > + };
>> > +
>> > + vreg_l2f_e1_0p88: ldo2 {
>> > + regulator-name = "vreg_l2f_e1_0p88";
>> > + regulator-min-microvolt = <880000>;
>> > + regulator-max-microvolt = <880000>;
>> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> > + };
>> > +
>> > + vreg_l4f_e1_1p2: ldo4 {
>> > + regulator-name = "vreg_l4f_e1_1p2";
>> > + regulator-min-microvolt = <1200000>;
>> > + regulator-max-microvolt = <1200000>;
>> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> > + };
>> > + };
>> > +
>> > + regulators-4 {
>> > + compatible = "qcom,pmh0110-rpmh-regulators";
>> > + qcom,pmic-id = "H_E0";
>> > +
>> > + vreg_l1h_e0_0p94: ldo1 {
>> > + regulator-name = "vreg_l1h_e0_0p94";
>> > + regulator-min-microvolt = <936000>;
>> > + regulator-max-microvolt = <936000>;
>> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> > + };
>> > +
>> > + vreg_l2h_e0_0p88: ldo2 {
>> > + regulator-name = "vreg_l2h_e0_0p88";
>> > + regulator-min-microvolt = <880000>;
>> > + regulator-max-microvolt = <880000>;
>> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> > + };
>> > +
>> > + vreg_l4h_e0_1p2: ldo4 {
>> > + regulator-name = "vreg_l4h_e0_1p2";
>> > + regulator-min-microvolt = <1200000>;
>> > + regulator-max-microvolt = <1200000>;
>> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> > + };
>> > + };
>> > +};
>> > +
>> > +&gmu {
>> > + status = "okay";
>> > +};
>> > +
>> > +&gpu {
>> > + status = "okay";
>> > +};
>> > +
>> > +&i2c0 {
>> > + clock-frequency = <400000>;
>> > +
>> > + status = "okay";
>> > +
>> > + touchpad@2c {
>> > + compatible = "hid-over-i2c";
>> > + reg = <0x2c>;
>> > +
>> > + hid-descr-addr = <0x20>;
>> > + interrupts-extended = <&tlmm 66 IRQ_TYPE_LEVEL_LOW>;
>> > +
>> > + pinctrl-0 = <&tpad_default>;
>> > + pinctrl-names = "default";
>> > +
>> > + wakeup-source;
>> > + };
>> > +
>> > + keyboard@3a {
>> > + compatible = "hid-over-i2c";
>> > + reg = <0x3a>;
>> > +
>> > + hid-descr-addr = <0x1>;
>> > + interrupts-extended = <&tlmm 67 IRQ_TYPE_LEVEL_LOW>;
>> > +
>> > + pinctrl-0 = <&kybd_default>;
>> > + pinctrl-names = "default";
>> > +
>> > + wakeup-source;
>> > + };
>> > +};
>> > +
>> > +&i2c8 {
>> > + clock-frequency = <400000>;
>> > +
>> > + status = "okay";
>> > +
>> > + touchscreen@10 {
>> > + compatible = "hid-over-i2c";
>> > + reg = <0x10>;
>> > +
>> > + hid-descr-addr = <0x1>;
>> > + interrupts-extended = <&tlmm 51 IRQ_TYPE_LEVEL_LOW>;
>> > +
>> > + post-power-on-delay-ms = <200>;
>> > +
>> > + pinctrl-0 = <&ts0_default>;
>> > + pinctrl-names = "default";
>> > + };
>> > +};
>> > +
>> > +&lpass_vamacro {
>> > + vdd-micb-supply = <&vreg_l1b_e0_1p8>;
>> > +
>> > + pinctrl-0 = <&dmic01_default>, <&dmic23_default>;
>> > + pinctrl-names = "default";
>> > +
>> > + qcom,dmic-sample-rate = <4800000>;
>> > +};
>> > +
>> > +&mdss {
>> > + status = "okay";
>> > +};
>> > +
>> > +&mdss_dp0 {
>> > + status = "okay";
>> > +};
>> > +
>> > +&mdss_dp0_out {
>> > + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
>> > +};
>> > +
>> > +&mdss_dp1 {
>> > + status = "okay";
>> > +};
>> > +
>> > +&mdss_dp1_out {
>> > + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
>> > +};
>> > +
>> > +&mdss_dp2 {
>> > + status = "okay";
>> > +};
>> > +
>> > +&mdss_dp2_out {
>> > + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
>> > +};
>> > +
>> > +&mdss_dp3 {
>> > + /delete-property/ #sound-dai-cells;
>> > +
>> > + status = "okay";
>> > +
>> > + aux-bus {
>> > + panel {
>> > + compatible = "samsung,atna33xc20";
>> > + enable-gpios = <&tlmm 18 GPIO_ACTIVE_HIGH>;
>> > + power-supply = <&vreg_edp_3p3>;
>> > +
>> > + pinctrl-0 = <&edp_bl_en>;
>> > + pinctrl-names = "default";
>> > +
>> > + port {
>> > + edp_panel_in: endpoint {
>> > + remote-endpoint = <&mdss_dp3_out>;
>> > + };
>> > + };
>> > + };
>> > + };
>> > +};
>> > +
>> > +&mdss_dp3_out {
>> > + data-lanes = <0 1 2 3>;
>> > + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
>> > +
>> > + remote-endpoint = <&edp_panel_in>;
>> > +};
>> > +
>> > +&mdss_dp3_phy {
>> > + vdda-phy-supply = <&vreg_l2f_e1_0p88>;
>> > + vdda-pll-supply = <&vreg_l4f_e1_1p2>;
>> > +
>> > + status = "okay";
>> > +};
>> > +
>> > +&pcie4 {
>> > + pinctrl-0 = <&pcie4_default>;
>> > + pinctrl-names = "default";
>> > +
>> > + status = "okay";
>> > +};
>> > +
>> > +&pcie4_phy {
>> > + vdda-phy-supply = <&vreg_l1c_e1_0p91>;
>> > + vdda-pll-supply = <&vreg_l4f_e1_1p2>;
>> > +
>> > + status = "okay";
>> > +};
>> > +
>> > +&pcie4_port0 {
>> > + reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
>> > + wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
>> > +
>> > + wifi@0 {
>> > + compatible = "pci17cb,1107";
>> > + reg = <0x10000 0x0 0x0 0x0 0x0>;
>> > +
>> > + vddaon-supply = <&vreg_pmu_aon_0p59>;
>> > + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
>> > + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
>> > + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
>> > + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
>> > + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
>> > + vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
>> > + vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
>> > + vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
>> > + };
>> > +};
>> > +
>> > +&pcie5 {
>> > + vddpe-3v3-supply = <&vreg_nvme>;
>> > +
>> > + pinctrl-0 = <&pcie5_default>;
>> > + pinctrl-names = "default";
>> > +
>> > + status = "okay";
>> > +};
>> > +
>> > +&pcie5_phy {
>> > + vdda-phy-supply = <&vreg_l2f_e0_0p94>;
>> > + vdda-pll-supply = <&vreg_l4h_e0_1p2>;
>> > +
>> > + status = "okay";
>> > +};
>> > +
>> > +&pcie5_port0 {
>> > + reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
>> > + wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
>> > +
>> > + status = "okay";
>> > +};
>> > +
>> > +&pmh0101_gpios {
>> > + nvme_reg_en: nvme-reg-en-state {
>> > + pins = "gpio14";
>> > + function = "normal";
>> > + bias-disable;
>> > + };
>> > +};
>> > +
>> > +&pmk8850_rtc {
>> > + qcom,no-alarm;
>> > + qcom,uefi-rtc-info;
>> > +};
>> > +
>> > +&remoteproc_adsp {
>> > + firmware-name = "qcom/glymur/hp/elitebook-x-g2q/adsp.mbn",
>> > + "qcom/glymur/hp/elitebook-x-g2q/adsp_dtb.mbn";
>> > +
>> > + status = "okay";
>> > +};
>> > +
>> > +&remoteproc_cdsp {
>> > + firmware-name = "qcom/glymur/hp/elitebook-x-g2q/cdsp.mbn",
>> > + "qcom/glymur/hp/elitebook-x-g2q/cdsp_dtb.mbn";
>>
>> Those firwmare names seem to diverge from the earlier Lenovo Yoga Slim 7x Gen11 patch
>> and the X1E laptops currently in the tree.
>>
>> Generally it seems for consumer devices we have been sticking to the Windows firmware
>> names in the past which would be:
>>
>> adsp.mbn -> qcadsp8480.mbn
>> adsp_dtb.mbn -> adsp_dtbs.elf
>> cdsp.mbn -> qccdsp8480.mbn
>> cdsp_dtb.mbn -> cdsp_dtbs.elf
>>
>> See https://lore.kernel.org/all/20260731-topic-yoga_submission-v2-2-f1887031da4f@xxxxxxxxxxxxxxxx/
>>
Thank you. I will adopt this in v4.
Jason
>> > +
>> > + status = "okay";
>> > +};
>> > +
>> > +&remoteproc_soccp {
>> > + status = "okay";
>> > +};
>> > +
>> > +&smb2370_j_e2_eusb2_repeater {
>> > + vdd18-supply = <&vreg_l15b_e0_1p8>;
>> > + vdd3-supply = <&vreg_l7b_e0_3p1>;
>> > +};
>> > +
>> > +&smb2370_k_e2_eusb2_repeater {
>> > + vdd18-supply = <&vreg_l15b_e0_1p8>;
>> > + vdd3-supply = <&vreg_l7b_e0_3p1>;
>> > +};
>> > +
>> > +/* SID-11 (smb2370_l) does not enumerate on this board; keep it disabled. */
>> > +&smb2370_l_e2 {
>> > + status = "disabled";
>> > +};
>> > +
>> > +&swr0 {
>> > + status = "okay";
>> > +
>> > + /* WSA8845, left woofer */
>> > + left_woofer: speaker@0,0 {
>> > + compatible = "sdw20217020400";
>> > + reg = <0 0>;
>> > + reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
>> > + #sound-dai-cells = <0>;
>> > + sound-name-prefix = "WooferLeft";
>> > + vdd-1p8-supply = <&vreg_l15b_e0_1p8>;
>> > + vdd-io-supply = <&vreg_l18b_e0_1p2>;
>> > + qcom,port-mapping = <1 2 3 7 12 14>;
>> > + };
>> > +
>> > + /* WSA8845, left tweeter */
>> > + left_tweeter: speaker@0,1 {
>> > + compatible = "sdw20217020400";
>> > + reg = <0 1>;
>> > + reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
>> > + #sound-dai-cells = <0>;
>> > + sound-name-prefix = "TweeterLeft";
>> > + vdd-1p8-supply = <&vreg_l15b_e0_1p8>;
>> > + vdd-io-supply = <&vreg_l18b_e0_1p2>;
>> > + qcom,port-mapping = <4 5 6 7 13 15>;
>> > + };
>> > +};
>> > +
>> > +&swr3 {
>> > + status = "okay";
>> > +
>> > + /* WSA8845, right woofer */
>> > + right_woofer: speaker@0,0 {
>> > + compatible = "sdw20217020400";
>> > + reg = <0 0>;
>> > + reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>;
>> > + #sound-dai-cells = <0>;
>> > + sound-name-prefix = "WooferRight";
>> > + vdd-1p8-supply = <&vreg_l15b_e0_1p8>;
>> > + vdd-io-supply = <&vreg_l18b_e0_1p2>;
>> > + qcom,port-mapping = <1 2 3 7 12 14>;
>> > + };
>> > +
>> > + /* WSA8845, right tweeter */
>> > + right_tweeter: speaker@0,1 {
>> > + compatible = "sdw20217020400";
>> > + reg = <0 1>;
>> > + reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>;
>> > + #sound-dai-cells = <0>;
>> > + sound-name-prefix = "TweeterRight";
>> > + vdd-1p8-supply = <&vreg_l15b_e0_1p8>;
>> > + vdd-io-supply = <&vreg_l18b_e0_1p2>;
>> > + qcom,port-mapping = <4 5 6 7 13 15>;
>> > + };
>> > +};
>> > +
>> > +&tcsr {
>> > + vdda-qrefrpt0-0p9-supply = <&vreg_l2f_e1_0p88>;
>> > + vdda-qrefrpt1-0p9-supply = <&vreg_l2f_e1_0p88>;
>> > + vdda-qrefrpt2-0p9-supply = <&vreg_l2f_e1_0p88>;
>> > + vdda-qrefrpt3-0p9-supply = <&vreg_l2h_e0_0p88>;
>> > + vdda-qrefrpt4-0p9-supply = <&vreg_l2h_e0_0p88>;
>> > + vdda-qrefrx0-0p9-supply = <&vreg_l2f_e1_0p88>;
>> > + vdda-qrefrx1-0p9-supply = <&vreg_l2f_e1_0p88>;
>> > + vdda-qrefrx2-0p9-supply = <&vreg_l2f_e1_0p88>;
>> > + vdda-qrefrx4-0p9-supply = <&vreg_l2h_e0_0p88>;
>> > + vdda-qrefrx5-0p9-supply = <&vreg_l3f_e0_0p91>;
>> > + vdda-qreftx0-0p9-supply = <&vreg_l3f_e0_0p91>;
>> > + vdda-qreftx0-1p2-supply = <&vreg_l4h_e0_1p2>;
>> > + vdda-qreftx1-0p9-supply = <&vreg_l1f_e1_0p88>;
>> > + vdda-refgen3-0p9-supply = <&vreg_l2f_e0_0p94>;
>> > + vdda-refgen3-1p2-supply = <&vreg_l4h_e0_1p2>;
>> > + vdda-refgen4-0p9-supply = <&vreg_l1f_e1_0p88>;
>> > + vdda-refgen4-1p2-supply = <&vreg_l4f_e1_1p2>;
>> > +};
>> > +
>> > +&tlmm {
>> > + gpio-reserved-ranges = <4 4>, /* EC TZ Secure I3C */
>> > + <10 2>, /* OOB UART */
>> > + <44 4>, /* Security SPI (TPM) */
>> > + <65 1>; /* EC reset */
>> > +
>> > + edp_bl_en: edp-bl-en-state {
>> > + pins = "gpio18";
>> > + function = "gpio";
>> > + drive-strength = <16>;
>> > + bias-disable;
>> > + };
>> > +
>> > + ts0_default: ts0-default-state {
>> > + pins = "gpio51";
>> > + function = "gpio";
>> > + bias-disable;
>> > + };
>> > +
>> > + tpad_default: tpad-default-state {
>> > + pins = "gpio66";
>> > + function = "gpio";
>> > + bias-disable;
>> > + };
>> > +
>> > + kybd_default: kybd-default-state {
>> > + pins = "gpio67";
>> > + function = "gpio";
>> > + bias-disable;
>> > + };
>> > +
>> > + edp_reg_en: edp-reg-en-state {
>> > + pins = "gpio70";
>> > + function = "gpio";
>> > + drive-strength = <16>;
>> > + bias-disable;
>> > + };
>> > +
>> > + lid_default: lid-default-state {
>> > + pins = "gpio92";
>> > + function = "gpio";
>> > + bias-disable;
>> > + };
>> > +
>> > + wcn_sw_en: wcn-sw-en-state {
>> > + pins = "gpio94";
>> > + function = "gpio";
>> > + drive-strength = <2>;
>> > + bias-disable;
>> > + };
>> > +
>> > + wcn_wlan_bt_en: wcn-wlan-bt-en-state {
>> > + pins = "gpio116", "gpio117";
>> > + function = "gpio";
>> > + drive-strength = <2>;
>> > + bias-disable;
>> > + };
>> > +
>> > + usb2_dp_hot_plug_detect: usb2-dp-hot-plug-detect-state {
>> > + pins = "gpio126";
>> > + function = "usb2_dp";
>> > + bias-disable;
>> > + };
>> > +
>> > + pcie4_default: pcie4-default-state {
>> > + clkreq-n-pins {
>> > + pins = "gpio147";
>> > + function = "pcie4_clk_req_n";
>> > + drive-strength = <2>;
>> > + bias-pull-up;
>> > + };
>> > +
>> > + perst-n-pins {
>> > + pins = "gpio146";
>> > + function = "gpio";
>> > + drive-strength = <2>;
>> > + bias-disable;
>> > + };
>> > +
>> > + wake-n-pins {
>> > + pins = "gpio148";
>> > + function = "gpio";
>> > + drive-strength = <2>;
>> > + bias-pull-up;
>> > + };
>> > + };
>> > +
>> > + pcie5_default: pcie5-default-state {
>> > + clkreq-n-pins {
>> > + pins = "gpio153";
>> > + function = "pcie5_clk_req_n";
>> > + drive-strength = <2>;
>> > + bias-pull-up;
>> > + };
>> > +
>> > + perst-n-pins {
>> > + pins = "gpio152";
>> > + function = "gpio";
>> > + drive-strength = <2>;
>> > + bias-disable;
>> > + };
>> > +
>> > + wake-n-pins {
>> > + pins = "gpio154";
>> > + function = "gpio";
>> > + drive-strength = <2>;
>> > + bias-pull-up;
>> > + };
>> > + };
>> > +};
>> > +
>> > +&uart14 {
>> > + status = "okay";
>> > +
>> > + bluetooth {
>> > + compatible = "qcom,wcn7850-bt";
>> > + max-speed = <3200000>;
>> > +
>> > + vddaon-supply = <&vreg_pmu_aon_0p59>;
>> > + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
>> > + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
>> > + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
>> > + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
>> > + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
>> > + vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
>> > + };
>> > +};
>> > +
>> > +&usb_0 {
>> > + status = "okay";
>> > +};
>> > +
>> > +&usb_0_dwc3_hs {
>> > + remote-endpoint = <&pmic_glink_hs_in>;
>> > +};
>> > +
>> > +&usb_0_hsphy {
>> > + vdd-supply = <&vreg_l3f_e0_0p91>;
>> > + vdda12-supply = <&vreg_l4h_e0_1p2>;
>> > +
>> > + phys = <&smb2370_j_e2_eusb2_repeater>;
>> > +
>> > + status = "okay";
>> > +};
>> > +
>> > +&usb_0_qmpphy {
>> > + vdda-phy-supply = <&vreg_l4h_e0_1p2>;
>> > + vdda-pll-supply = <&vreg_l3f_e0_0p91>;
>> > + refgen-supply = <&vreg_l2f_e0_0p94>;
>> > +
>> > + status = "okay";
>> > +};
>> > +
>> > +&usb_0_qmpphy_out {
>> > + remote-endpoint = <&pmic_glink_ss_in>;
>> > +};
>> > +
>> > +&usb_1 {
>> > + status = "okay";
>> > +};
>> > +
>> > +&usb_1_dwc3_hs {
>> > + remote-endpoint = <&pmic_glink_hs_in1>;
>> > +};
>> > +
>> > +&usb_1_hsphy {
>> > + vdd-supply = <&vreg_l3f_e0_0p91>;
>> > + vdda12-supply = <&vreg_l4h_e0_1p2>;
>> > +
>> > + phys = <&smb2370_k_e2_eusb2_repeater>;
>> > +
>> > + status = "okay";
>> > +};
>> > +
>> > +&usb_1_qmpphy {
>> > + vdda-phy-supply = <&vreg_l4h_e0_1p2>;
>> > + vdda-pll-supply = <&vreg_l1h_e0_0p94>;
>> > + refgen-supply = <&vreg_l2f_e0_0p94>;
>> > +
>> > + status = "okay";
>> > +};
>> > +
>> > +&usb_1_qmpphy_out {
>> > + remote-endpoint = <&pmic_glink_ss_in1>;
>> > +};
>> > +
>> > +/* usb_2's combo PHY drives the HDMI bridge over DP; keep the dwc3 enabled. */
>> > +&usb_2 {
>> > + maximum-speed = "high-speed";
>> > +
>> > + phys = <&usb_2_hsphy>;
>> > + phy-names = "usb2-phy";
>> > +
>> > + status = "okay";
>> > +};
>> > +
>> > +&usb_2_hsphy {
>> > + vdd-supply = <&vreg_l3f_e0_0p91>;
>> > + vdda12-supply = <&vreg_l4h_e0_1p2>;
>> > +
>> > + status = "okay";
>> > +};
>> > +
>> > +&usb_2_qmpphy {
>> > + vdda-phy-supply = <&vreg_l4h_e0_1p2>;
>> > + vdda-pll-supply = <&vreg_l3f_e0_0p91>;
>> > + refgen-supply = <&vreg_l2f_e0_0p94>;
>> > +
>> > + /delete-property/ mode-switch;
>> > + /delete-property/ orientation-switch;
>> > +
>> > + status = "okay";
>> > +
>> > + ports {
>> > + port@0 {
>> > + #address-cells = <1>;
>> > + #size-cells = <0>;
>> > +
>> > + /delete-node/ endpoint;
>> > +
>> > + usb_2_qmpphy_out_dp: endpoint@0 {
>> > + reg = <0>;
>> > +
>> > + data-lanes = <3 2 1 0>;
>> > + remote-endpoint = <&hdmi_bridge_in>;
>> > + };
>> > + };
>> > + };
>> > +};
>> > +
>> > +/* Internal USB2 host for the Elan fingerprint reader (usb 04f3:0ca8). */
>> > +&usb_hs {
>> > + dr_mode = "host";
>> > +
>> > + status = "okay";
>> > +};
>> > +
>> > +&usb_hs_phy {
>> > + vdd-supply = <&vreg_l2h_e0_0p88>;
>> > + vdda12-supply = <&vreg_l4h_e0_1p2>;
>> > +
>> > + status = "okay";
>> > +};
>> > +
>> > +/* Multiport host: port 0 = chassis USB-A, port 1 = internal USB HID. */
>> > +&usb_mp {
>> > + status = "okay";
>> > +};
>> > +
>> > +&usb_mp_hsphy0 {
>> > + vdd-supply = <&vreg_l2h_e0_0p88>;
>> > + vdda12-supply = <&vreg_l4h_e0_1p2>;
>> > +
>> > + status = "okay";
>> > +};
>> > +
>> > +&usb_mp_hsphy1 {
>> > + vdd-supply = <&vreg_l2h_e0_0p88>;
>> > + vdda12-supply = <&vreg_l4h_e0_1p2>;
>> > +
>> > + status = "okay";
>> > +};
>> > +
>> > +&usb_mp_qmpphy0 {
>> > + vdda-phy-supply = <&vreg_l4h_e0_1p2>;
>> > + vdda-pll-supply = <&vreg_l2h_e0_0p88>;
>> > + refgen-supply = <&vreg_l4f_e1_1p2>;
>> > +
>> > + status = "okay";
>> > +};
>> > +
>> > +&usb_mp_qmpphy1 {
>> > + vdda-phy-supply = <&vreg_l4h_e0_1p2>;
>> > + vdda-pll-supply = <&vreg_l2h_e0_0p88>;
>> > + refgen-supply = <&vreg_l4f_e1_1p2>;
>> > +
>> > + status = "okay";
>> > +};
>> >
>> > --
>> > 2.50.1
>> >
>> >