Introduce a device tree for the Mahua-based Lenovo ThinkPad T14s Gen 7,
a Snapdragon X2 Elite laptop.  It follows the Qualcomm Glymur reference
design used by mahua-crd.

Currently working:
- Display (internal eDP panel)
- Audio playback and capture (2x WSA8845 speakers on swr0, DMICs via
  the VA macro)
- USB-C (host + charging on both ports)
- Wi-Fi (WCN7850 on PCIe4), Bluetooth (over uart14)
- NVMe on PCIe5
- HID-over-I2C touchpad, keyboard and TrackPoint on i2c0
- Lid switch
- WWAN wiring is included but remains untested due to lack of access
  to such a SKU.

Assisted-by: Claude:claude-opus-4-7
Signed-off-by: Srinivas Kandagatla <[email protected]>
---
 arch/arm64/boot/dts/qcom/Makefile             |    1 +
 .../qcom/mahua-lenovo-thinkpad-t14s-gen7.dts  | 1184 +++++++++++++++++
 2 files changed, 1185 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/mahua-lenovo-thinkpad-t14s-gen7.dts

diff --git a/arch/arm64/boot/dts/qcom/Makefile 
b/arch/arm64/boot/dts/qcom/Makefile
index 6c2ac11133ca..c71d536fc3e7 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -59,6 +59,7 @@ dtb-$(CONFIG_ARCH_QCOM)       += lemans-evk-el2.dtb
 lemans-evk-ifp-mezzanine-dtbs  := lemans-evk.dtb lemans-evk-ifp-mezzanine.dtbo
 dtb-$(CONFIG_ARCH_QCOM)        += lemans-evk-ifp-mezzanine.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += mahua-crd.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += mahua-lenovo-thinkpad-t14s-gen7.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += milos-fairphone-fp6.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += milos-nothing-asteroids.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += monaco-arduino-monza.dtb
diff --git a/arch/arm64/boot/dts/qcom/mahua-lenovo-thinkpad-t14s-gen7.dts 
b/arch/arm64/boot/dts/qcom/mahua-lenovo-thinkpad-t14s-gen7.dts
new file mode 100644
index 000000000000..be5f12bfe56a
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/mahua-lenovo-thinkpad-t14s-gen7.dts
@@ -0,0 +1,1184 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+/dts-v1/;
+
+#include "mahua.dtsi"
+
+#include "pmcx0102.dtsi"
+#include "pmh0101.dtsi"
+#include "pmh0110-glymur.dtsi"
+#include "pmh0104-glymur.dtsi"
+#include "pmk8850.dtsi"
+#include "smb2370.dtsi"
+
+#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>
+
+/* PMICs tied to Glymur's cluster2 are absent on Mahua. */
+/delete-node/ &pmcx0102_d_e0;
+/delete-node/ &pmcx0102_d0_thermal;
+/delete-node/ &pmh0104_i_e0;
+/delete-node/ &pmh0104_i0_thermal;
+/delete-node/ &pmh0104_j_e0;
+/delete-node/ &pmh0104_j0_thermal;
+
+/ {
+       model = "Lenovo ThinkPad T14s Gen 7";
+       compatible = "lenovo,thinkpad-t14s-gen7", "qcom,mahua";
+
+       aliases {
+               i2c0 = &i2c0;
+               i2c5 = &i2c5;
+
+               serial0 = &uart21;
+               serial1 = &uart14;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       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 = <&hall_int_n_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>;
+               };
+       };
+
+       pmic-glink {
+               compatible = "qcom,glymur-pmic-glink",
+                            "qcom,pmic-glink";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               /* Left-side USB-C 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 USB-C 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_misc_3p3: regulator-misc-3p3 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_MISC_3P3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&pmh0110_f_e0_gpios 6 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               regulator-boot-on;
+               regulator-always-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;
+       };
+
+       vreg_wwan: regulator-wwan {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_WWAN_3P3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 246 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&wwan_reg_en>;
+               pinctrl-names = "default";
+       };
+
+       vreg_edp_bl: regulator-edp-bl {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_EDP_BL";
+               regulator-min-microvolt = <3600000>;
+               regulator-max-microvolt = <3600000>;
+
+               gpio = <&tlmm 19 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&edp_bl_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       reserved-memory {
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       size = <0x0 0x10000000>;
+                       reusable;
+                       linux,cma-default;
+               };
+       };
+
+
+       sound {
+               compatible = "qcom,glymur-sndcard";
+               model = "Lenovo-ThinkPad-T14s-Gen-7";
+               audio-routing = "SpkrLeft IN", "WSA WSA_SPK1 OUT",
+                               "SpkrRight IN", "WSA WSA_SPK2 OUT",
+                               "VA DMIC0", "vdd-micb",
+                               "VA DMIC1", "vdd-micb";
+
+               wsa-dai-link {
+                       link-name = "WSA Playback";
+
+                       cpu {
+                               sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
+                       };
+
+                       codec {
+                               sound-dai = <&left_spk>, <&right_spk>,
+                                           <&swr0 0>, <&lpass_wsamacro 0>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6apm>;
+                       };
+               };
+
+               va-dai-link {
+                       link-name = "VA Capture";
+
+                       cpu {
+                               sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
+                       };
+
+                       codec {
+                               sound-dai = <&lpass_vamacro 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_bob1_e0: bob1 {
+                       regulator-name = "vreg_bob1_e0";
+                       regulator-min-microvolt = <2200000>;
+                       regulator-max-microvolt = <4224000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_bob2_e0: bob2 {
+                       regulator-name = "vreg_bob2_e0";
+                       regulator-min-microvolt = <2540000>;
+                       regulator-max-microvolt = <3600000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               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_l2b_e0_2p9: ldo2 {
+                       regulator-name = "vreg_l2b_e0_2p9";
+                       regulator-min-microvolt = <2904000>;
+                       regulator-max-microvolt = <2904000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7b_e0_2p79: ldo7 {
+                       regulator-name = "vreg_l7b_e0_2p79";
+                       regulator-min-microvolt = <2790000>;
+                       regulator-max-microvolt = <2792000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8b_e0_3p3: ldo8 {
+                       regulator-name = "vreg_l8b_e0_3p3";
+                       regulator-min-microvolt = <1504000>;
+                       regulator-max-microvolt = <3304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9b_e0_2p9: ldo9 {
+                       regulator-name = "vreg_l9b_e0_2p9";
+                       regulator-min-microvolt = <2704000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l10b_e0_1p8: ldo10 {
+                       regulator-name = "vreg_l10b_e0_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l11b_e0_1p2: ldo11 {
+                       regulator-name = "vreg_l11b_e0_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12b_e0_1p2: ldo12 {
+                       regulator-name = "vreg_l12b_e0_1p2";
+                       regulator-min-microvolt = <1144000>;
+                       regulator-max-microvolt = <1200000>;
+                       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>;
+                       regulator-always-on;
+               };
+
+               vreg_l17b_e0_2p4: ldo17 {
+                       regulator-name = "vreg_l17b_e0_2p4";
+                       regulator-min-microvolt = <2400000>;
+                       regulator-max-microvolt = <2700000>;
+                       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>;
+                       regulator-always-on;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,pmcx0102-rpmh-regulators";
+               qcom,pmic-id = "C_E1";
+
+               vreg_l1c_e1_0p82: ldo1 {
+                       regulator-name = "vreg_l1c_e1_0p82";
+                       regulator-min-microvolt = <832000>;
+                       regulator-max-microvolt = <832000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2c_e1_1p14: ldo2 {
+                       regulator-name = "vreg_l2c_e1_1p14";
+                       regulator-min-microvolt = <1144000>;
+                       regulator-max-microvolt = <1144000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3c_e1_0p89: ldo3 {
+                       regulator-name = "vreg_l3c_e1_0p89";
+                       regulator-min-microvolt = <890000>;
+                       regulator-max-microvolt = <980000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4c_e1_0p72: ldo4 {
+                       regulator-name = "vreg_l4c_e1_0p72";
+                       regulator-min-microvolt = <720000>;
+                       regulator-max-microvolt = <720000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-2 {
+               compatible = "qcom,pmh0110-rpmh-regulators";
+               qcom,pmic-id = "F_E0";
+
+               vreg_s7f_e0_1p32: smps7 {
+                       regulator-name = "vreg_s7f_e0_1p32";
+                       regulator-min-microvolt = <1320000>;
+                       regulator-max-microvolt = <1352000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s8f_e0_0p95: smps8 {
+                       regulator-name = "vreg_s8f_e0_0p95";
+                       regulator-min-microvolt = <952000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s9f_e0_1p9: smps9 {
+                       regulator-name = "vreg_s9f_e0_1p9";
+                       regulator-min-microvolt = <1900000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               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>;
+               };
+
+               vreg_l4f_e0_0p3: ldo4 {
+                       regulator-name = "vreg_l4f_e0_0p3";
+                       regulator-min-microvolt = <1080000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-3 {
+               compatible = "qcom,pmh0110-rpmh-regulators";
+               qcom,pmic-id = "F_E1";
+
+               vreg_s7f_e1_0p3: smps7 {
+                       regulator-name = "vreg_s7f_e1_0p3";
+                       regulator-min-microvolt = <300000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               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_0p9: ldo2 {
+                       regulator-name = "vreg_l2f_e1_0p9";
+                       regulator-min-microvolt = <904000>;
+                       regulator-max-microvolt = <904000>;
+                       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_0p72: ldo2 {
+                       regulator-name = "vreg_l2h_e0_0p72";
+                       regulator-min-microvolt = <832000>;
+                       regulator-max-microvolt = <832000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3h_e0_0p32: ldo3 {
+                       regulator-name = "vreg_l3h_e0_0p32";
+                       regulator-min-microvolt = <320000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4h_e0_1p2: ldo4 {
+                       regulator-name = "vreg_l4h_e0_1p2";
+                       regulator-min-microvolt = <1080000>;
+                       regulator-max-microvolt = <1320000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+};
+
+&i2c0 {
+       clock-frequency = <400000>;
+
+       status = "okay";
+
+       touchpad@2c {
+               compatible = "hid-over-i2c";
+               reg = <0x2c>;
+
+               hid-descr-addr = <0x20>;
+               interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>;
+
+               vdd-supply = <&vreg_misc_3p3>;
+               vddl-supply = <&vreg_l15b_e0_1p8>;
+
+               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>;
+
+               vdd-supply = <&vreg_misc_3p3>;
+               vddl-supply = <&vreg_l15b_e0_1p8>;
+
+               pinctrl-0 = <&kybd_default>;
+               pinctrl-names = "default";
+
+               wakeup-source;
+       };
+};
+
+&i2c5 {
+       clock-frequency = <400000>;
+
+       status = "okay";
+
+       /* eUSB2 redriver for USB Type-A ports on the MultiPort controller */
+       ptn3222_0: redriver@43 {
+               compatible = "nxp,ptn3222";
+               reg = <0x43>;
+
+               reset-gpios = <&tlmm 8 GPIO_ACTIVE_LOW>;
+
+               vdd3v3-supply = <&vreg_l8b_e0_3p3>;
+               vdd1v8-supply = <&vreg_l15b_e0_1p8>;
+
+               #phy-cells = <0>;
+       };
+
+       ptn3222_1: redriver@47 {
+               compatible = "nxp,ptn3222";
+               reg = <0x47>;
+
+               reset-gpios = <&tlmm 9 GPIO_ACTIVE_LOW>;
+
+               vdd3v3-supply = <&vreg_l8b_e0_3p3>;
+               vdd1v8-supply = <&vreg_l15b_e0_1p8>;
+
+               #phy-cells = <0>;
+       };
+};
+
+&lpass_vamacro {
+       pinctrl-0 = <&dmic01_default>;
+       pinctrl-names = "default";
+       qcom,dmic-sample-rate = <4800000>;
+       vdd-micb-supply = <&vreg_l1b_e0_1p8>;
+};
+
+&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>;
+};
+
+/* Internal eDP panel */
+&mdss_dp3 {
+       /delete-property/ #sound-dai-cells;
+
+       pinctrl-0 = <&edp0_hpd_default>;
+       pinctrl-names = "default";
+
+       status = "okay";
+
+       aux-bus {
+               panel {
+                       compatible = "edp-panel";
+                       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_0p9>;
+       vdda-pll-supply = <&vreg_l4f_e1_1p2>;
+
+       status = "okay";
+};
+
+/* PCIe4: on-board WLAN (WCN7850) */
+&pcie4 {
+       pinctrl-0 = <&pcie4_default>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&pcie4_phy {
+       vdda-phy-supply = <&vreg_l1c_e1_0p82>;
+       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: primary M.2 2280 NVMe */
+&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>;
+};
+
+/* PCIe6: optional WWAN M.2 3042 */
+&pcie6 {
+       vddpe-3v3-supply = <&vreg_wwan>;
+
+       pinctrl-0 = <&pcie6_default>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&pcie6_phy {
+       vdda-phy-supply = <&vreg_l1c_e1_0p82>;
+       vdda-pll-supply = <&vreg_l4f_e1_1p2>;
+
+       status = "okay";
+};
+
+&pcie6_port0 {
+       reset-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
+};
+
+&pmh0101_gpios {
+       nvme_reg_en: nvme-reg-en-state {
+               pins = "gpio14";
+               function = "normal";
+               bias-disable;
+       };
+};
+
+&pmh0110_f_e0_gpios {
+       misc_3p3_reg_en: misc-3p3-reg-en-state {
+               pins = "gpio6";
+               function = "normal";
+               bias-disable;
+               input-disable;
+               output-enable;
+               drive-push-pull;
+               power-source = <1>; /* 1.8 V */
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+       };
+};
+
+&pmk8850_rtc {
+       qcom,no-alarm;
+};
+
+&remoteproc_adsp {
+       firmware-name = "qcom/glymur/LENOVO/22A8/qcadsp8480.mbn",
+                       "qcom/glymur/LENOVO/22A8/adsp_dtbs.elf";
+
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       firmware-name = "qcom/glymur/LENOVO/22A8/qccdsp8480.mbn",
+                       "qcom/glymur/LENOVO/22A8/cdsp_dtbs.elf";
+
+       status = "okay";
+};
+
+&remoteproc_soccp {
+       status = "okay";
+};
+
+&swr0 {
+       status = "okay";
+
+       /* WSA8845, Left */
+       left_spk: speaker@0,0 {
+               compatible = "sdw20217020400";
+               reg = <0 0>;
+               reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
+               #sound-dai-cells = <0>;
+               sound-name-prefix = "SpkrLeft";
+               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 */
+       right_spk: speaker@0,1 {
+               compatible = "sdw20217020400";
+               reg = <0 1>;
+               reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
+               #sound-dai-cells = <0>;
+               sound-name-prefix = "SpkrRight";
+               vdd-1p8-supply = <&vreg_l15b_e0_1p8>;
+               vdd-io-supply = <&vreg_l18b_e0_1p2>;
+               qcom,port-mapping = <4 5 6 7 13 15>;
+       };
+};
+
+&smb2370_j_e2_eusb2_repeater {
+       vdd18-supply = <&vreg_l15b_e0_1p8>;
+       vdd3-supply = <&vreg_l7b_e0_2p79>;
+};
+
+&smb2370_k_e2_eusb2_repeater {
+       vdd18-supply = <&vreg_l15b_e0_1p8>;
+       vdd3-supply = <&vreg_l7b_e0_2p79>;
+};
+
+
+&tcsr {
+       vdda-qrefrpt0-0p9-supply = <&vreg_l2f_e1_0p9>;
+       vdda-qrefrpt1-0p9-supply = <&vreg_l2f_e1_0p9>;
+       vdda-qrefrpt2-0p9-supply = <&vreg_l2f_e1_0p9>;
+       vdda-qrefrpt3-0p9-supply = <&vreg_l2h_e0_0p72>;
+       vdda-qrefrpt4-0p9-supply = <&vreg_l2h_e0_0p72>;
+       vdda-qrefrpt5-0p9-supply = <&vreg_l2h_e0_0p72>;
+       vdda-qrefrx0-0p9-supply = <&vreg_l2f_e1_0p9>;
+       vdda-qrefrx1-0p9-supply = <&vreg_l2f_e1_0p9>;
+       vdda-qrefrx2-0p9-supply = <&vreg_l2f_e1_0p9>;
+       vdda-qrefrx3-0p9-supply = <&vreg_l2h_e0_0p72>;
+       vdda-qrefrx4-0p9-supply = <&vreg_l2h_e0_0p72>;
+       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 */
+                              <27 1>,  /* TZ trigger  */
+                              <44 4>,  /* TPM */
+                              <139 1>; /* TZ trigger */
+
+       edp_bl_en: edp-bl-en-state {
+               pins = "gpio18";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       edp_bl_reg_en: edp-bl-reg-en-state {
+               pins = "gpio19";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       edp_reg_en: edp-reg-en-state {
+               pins = "gpio70";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+       };
+
+       edp0_hpd_default: edp0-hpd-default-state {
+               pins = "gpio119";
+               function = "edp0_hot";
+               bias-disable;
+       };
+
+       hall_int_n_default: hall-int-n-state {
+               pins = "gpio92";
+               function = "gpio";
+               bias-disable;
+       };
+
+       kybd_default: kybd-default-state {
+               pins = "gpio67";
+               function = "gpio";
+               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;
+               };
+       };
+
+       pcie6_default: pcie6-default-state {
+               clkreq-n-pins {
+                       pins = "gpio150";
+                       function = "pcie6_clk_req_n";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               perst-n-pins {
+                       pins = "gpio149";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+
+               wake-n-pins {
+                       pins = "gpio151";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+
+       tpad_default: tpad-default-state {
+               pins = "gpio3";
+               function = "gpio";
+               bias-disable;
+       };
+
+       wcd_default: wcd-reset-n-active-state {
+               pins = "gpio191";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+               output-low;
+       };
+
+       wcn_wlan_bt_en: wcn-wlan-bt-en-state {
+               pins = "gpio116", "gpio117";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       wcn_sw_en: wcn-sw-en-state {
+               pins = "gpio94";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       wwan_reg_en: wwan-reg-en-state {
+               pins = "gpio246";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+};
+
+&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_l3f_e0_0p91>;
+       vdda-pll-supply = <&vreg_l4h_e0_1p2>;
+       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_l1h_e0_0p94>;
+       vdda-pll-supply = <&vreg_l4h_e0_1p2>;
+       refgen-supply = <&vreg_l2f_e0_0p94>;
+
+       status = "okay";
+};
+
+&usb_1_qmpphy_out {
+       remote-endpoint = <&pmic_glink_ss_in1>;
+};
+
+/* Two internal USB Type-A ports through the MultiPort host controller */
+&usb_mp {
+       status = "okay";
+};
+
+&usb_mp_hsphy0 {
+       vdd-supply = <&vreg_l2h_e0_0p72>;
+       vdda12-supply = <&vreg_l4h_e0_1p2>;
+
+       phys = <&ptn3222_0>;
+
+       status = "okay";
+};
+
+&usb_mp_hsphy1 {
+       vdd-supply = <&vreg_l2h_e0_0p72>;
+       vdda12-supply = <&vreg_l4h_e0_1p2>;
+
+       phys = <&ptn3222_1>;
+
+       status = "okay";
+};
+
+&usb_mp_qmpphy0 {
+       vdda-phy-supply = <&vreg_l2h_e0_0p72>;
+       vdda-pll-supply = <&vreg_l4h_e0_1p2>;
+       refgen-supply = <&vreg_l4f_e1_1p2>;
+
+       status = "okay";
+};
+
+&usb_mp_qmpphy1 {
+       vdda-phy-supply = <&vreg_l2h_e0_0p72>;
+       vdda-pll-supply = <&vreg_l4h_e0_1p2>;
+       refgen-supply = <&vreg_l4f_e1_1p2>;
+
+       status = "okay";
+};
-- 
2.53.0

Reply via email to