Sunday, January 26, 2025

Re: Update arm64-qcom-dtb firmware

On Sat, Jan 25, 2025 at 01:55:16PM GMT, Mark Kettenis wrote:

> > Date: Tue, 21 Jan 2025 21:56:41 +0100
> > From: Kirill A. Korinsky <kirill@korins.ky>
> >
> > On Tue, 21 Jan 2025 21:42:40 +0100,
> > Mark Kettenis <mark.kettenis@xs4all.nl> wrote:
> > >
> > > [ Now with diff ]
> > >
> > > This rebases things on top of Linux 6.13 and adds some recent patches from:
> > >
> > > https://github.com/SpieringsAE/linux/tree/wip/x1e80100-6.13
> > >
> > > which in turn includes patches from:
> > >
> > > https://github.com/jhovold/linux/tree/wip/x1e80100-6.13
> > >
> > > The vast majority of these patches have received positive reviews on
> > > the relevant Linux mailing list, and some of them are already present
> > > in linux-next. They mostly bring support for more USB ports on t14s
> > > and vivobook.
> > >
> > > Probably needs some testing, especially on the hp and samsung
> > > machines as those devices are not present upstream.
> > >
> > > ok?
> > >
> >
> > May I ask you to incluide DTS for
> > https://lore.kernel.org/linux-devicetree/87jzazzx17.wl-kirill@korins.ky/
>
> New diff that includes that.
>
> ok?

Successfully re-tested on the samsung.

ok mglocker@

> Index: sysutils/firmware/arm64-qcom-dtb/Makefile
> ===================================================================
> RCS file: /cvs/ports/sysutils/firmware/arm64-qcom-dtb/Makefile,v
> diff -u -p -r1.20 Makefile
> --- sysutils/firmware/arm64-qcom-dtb/Makefile 17 Nov 2024 16:45:15 -0000 1.20
> +++ sysutils/firmware/arm64-qcom-dtb/Makefile 25 Jan 2025 12:51:42 -0000
> @@ -1,7 +1,7 @@
> FW_DRIVER= arm64-qcom-dtb
> -FW_VER= 2.3
> +FW_VER= 2.4
>
> -DISTNAME= devicetree-rebasing-6.11-dts
> +DISTNAME= devicetree-rebasing-6.13-dts
>
> # can be redistributed, but shouldn't be in normal packages directory as
> # this is only meant for use with fw_update.
> @@ -20,8 +20,14 @@ MAKE_ENV += CPP=clang-cpp
> DTBS= sc8280xp-lenovo-thinkpad-x13s.dtb \
> x1e78100-lenovo-thinkpad-t14s.dtb \
> x1e80100-asus-vivobook-s15.dtb \
> + x1e80100-crd.dtb \
> + x1e80100-dell-xps13-9345.dtb \
> + x1e80100-honor-magicbook-art-14.dtb \
> x1e80100-hp-omnibook-x14.dtb \
> x1e80100-lenovo-yoga-slim7x.dtb \
> + x1e80100-microsoft-romulus13.dtb \
> + x1e80100-microsoft-romulus15.dtb \
> + x1e80100-qcp.dtb \
> x1e80100-samsung-galaxy-book4-edge.dtb
>
> ALL_TARGET=
> Index: sysutils/firmware/arm64-qcom-dtb/distinfo
> ===================================================================
> RCS file: /cvs/ports/sysutils/firmware/arm64-qcom-dtb/distinfo,v
> diff -u -p -r1.2 distinfo
> --- sysutils/firmware/arm64-qcom-dtb/distinfo 21 Sep 2024 17:14:17 -0000 1.2
> +++ sysutils/firmware/arm64-qcom-dtb/distinfo 25 Jan 2025 12:51:42 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (firmware/devicetree-rebasing-6.11-dts.tar.gz) = cSkEweN++8qCEaUaST73Rbkw7JVl4eTeRODFd3LgBKA=
> -SIZE (firmware/devicetree-rebasing-6.11-dts.tar.gz) = 9145072
> +SHA256 (firmware/devicetree-rebasing-6.13-dts.tar.gz) = ukVSSdtl5Vf2G3/vsvWZC4wGOI8kIzNeK1A+qrMNF1o=
> +SIZE (firmware/devicetree-rebasing-6.13-dts.tar.gz) = 9463945
> Index: sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_sc8280xp-lenovo-thinkpad-x13s_dts
> ===================================================================
> RCS file: /cvs/ports/sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_sc8280xp-lenovo-thinkpad-x13s_dts,v
> diff -u -p -r1.3 patch-src_arm64_qcom_sc8280xp-lenovo-thinkpad-x13s_dts
> --- sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_sc8280xp-lenovo-thinkpad-x13s_dts 23 Sep 2024 17:48:28 -0000 1.3
> +++ sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_sc8280xp-lenovo-thinkpad-x13s_dts 25 Jan 2025 12:51:42 -0000
> @@ -1,7 +1,7 @@
> Index: src/arm64/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> --- src/arm64/qcom/sc8280xp-lenovo-thinkpad-x13s.dts.orig
> +++ src/arm64/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> -@@ -847,14 +847,14 @@
> +@@ -959,14 +959,14 @@
> pinctrl-names = "default";
> pinctrl-0 = <&pcie3a_default>;
>
> @@ -18,7 +18,7 @@ Index: src/arm64/qcom/sc8280xp-lenovo-th
> };
>
> &pcie4 {
> -@@ -1299,7 +1299,7 @@
> +@@ -1417,7 +1417,7 @@
> };
>
> &usb_2 {
> Index: sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e78100-lenovo-thinkpad-t14s_dts
> ===================================================================
> RCS file: /cvs/ports/sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e78100-lenovo-thinkpad-t14s_dts,v
> diff -u -p -r1.2 patch-src_arm64_qcom_x1e78100-lenovo-thinkpad-t14s_dts
> --- sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e78100-lenovo-thinkpad-t14s_dts 21 Sep 2024 17:14:17 -0000 1.2
> +++ sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e78100-lenovo-thinkpad-t14s_dts 25 Jan 2025 12:51:42 -0000
> @@ -1,815 +1,729 @@
> Index: src/arm64/qcom/x1e78100-lenovo-thinkpad-t14s.dts
> --- src/arm64/qcom/x1e78100-lenovo-thinkpad-t14s.dts.orig
> +++ src/arm64/qcom/x1e78100-lenovo-thinkpad-t14s.dts
> -@@ -0,0 +1,811 @@
> -+// SPDX-License-Identifier: BSD-3-Clause
> -+/*
> -+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
> -+ * Copyright (c) 2024, Linaro Limited
> -+ */
> -+
> -+/dts-v1/;
> -+
> -+#include <dt-bindings/gpio/gpio.h>
> -+#include <dt-bindings/input/gpio-keys.h>
> -+#include <dt-bindings/input/input.h>
> -+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
> -+
> -+#include "x1e80100.dtsi"
> -+#include "x1e80100-pmics.dtsi"
> -+
> -+/ {
> -+ model = "Lenovo ThinkPad T14s Gen 6";
> -+ compatible = "lenovo,thinkpad-t14s", "qcom,x1e78100", "qcom,x1e80100";
> -+ chassis-type = "laptop";
> -+
> -+ gpio-keys {
> -+ compatible = "gpio-keys";
> -+
> -+ pinctrl-0 = <&hall_int_n_default>;
> -+ pinctrl-names = "default";
> -+
> -+ switch-lid {
> -+ gpios = <&tlmm 92 GPIO_ACTIVE_LOW>;
> -+ linux,input-type = <EV_SW>;
> -+ linux,code = <SW_LID>;
> -+ wakeup-source;
> -+ wakeup-event-action = <EV_ACT_DEASSERTED>;
> -+ };
> -+ };
> +@@ -19,6 +19,10 @@
> + compatible = "lenovo,thinkpad-t14s", "qcom,x1e78100", "qcom,x1e80100";
> + chassis-type = "laptop";
> +
> ++ aliases {
> ++ serial1 = &uart14;
> ++ };
> ++
> + gpio-keys {
> + compatible = "gpio-keys";
> +
> +@@ -66,9 +70,17 @@
> + reg = <1>;
> +
> + pmic_glink_ss0_ss_in: endpoint {
> +- remote-endpoint = <&usb_1_ss0_qmpphy_out>;
> ++ remote-endpoint = <&retimer_ss0_ss_out>;
> + };
> + };
> +
> -+ pmic-glink {
> -+ compatible = "qcom,x1e80100-pmic-glink",
> -+ "qcom,sm8550-pmic-glink",
> -+ "qcom,pmic-glink";
> -+ orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>,
> -+ <&tlmm 123 GPIO_ACTIVE_HIGH>;
> -+ #address-cells = <1>;
> -+ #size-cells = <0>;
> -+
> -+ /* Display-adjacent port */
> -+ connector@0 {
> -+ compatible = "usb-c-connector";
> -+ reg = <0>;
> -+ power-role = "dual";
> -+ data-role = "dual";
> -+
> -+ ports {
> -+ #address-cells = <1>;
> -+ #size-cells = <0>;
> ++ port@2 {
> ++ reg = <2>;
> +
> -+ port@0 {
> -+ reg = <0>;
> -+
> -+ pmic_glink_ss0_hs_in: endpoint {
> -+ remote-endpoint = <&usb_1_ss0_dwc3_hs>;
> ++ pmic_glink_ss0_con_sbu_in: endpoint {
> ++ remote-endpoint = <&retimer_ss0_con_sbu_out>;
> + };
> + };
> + };
> + };
> +
> +@@ -95,9 +107,17 @@
> + reg = <1>;
> +
> + pmic_glink_ss1_ss_in: endpoint {
> +- remote-endpoint = <&usb_1_ss1_qmpphy_out>;
> ++ remote-endpoint = <&retimer_ss1_ss_out>;
> + };
> + };
> +
> -+ port@1 {
> -+ reg = <1>;
> ++ port@2 {
> ++ reg = <2>;
> +
> -+ pmic_glink_ss0_ss_in: endpoint {
> -+ remote-endpoint = <&usb_1_ss0_qmpphy_out>;
> ++ pmic_glink_ss1_con_sbu_in: endpoint {
> ++ remote-endpoint = <&retimer_ss1_con_sbu_out>;
> + };
> + };
> -+ };
> -+ };
> -+
> -+ /* User-adjacent port */
> -+ connector@1 {
> -+ compatible = "usb-c-connector";
> -+ reg = <1>;
> -+ power-role = "dual";
> -+ data-role = "dual";
> -+
> -+ ports {
> -+ #address-cells = <1>;
> -+ #size-cells = <0>;
> + };
> + };
> + };
> +@@ -143,6 +163,102 @@
> + regulator-boot-on;
> + };
> +
> ++ vreg_rtmr0_1p15: regulator-rtmr0-1p15 {
> ++ compatible = "regulator-fixed";
> +
> -+ port@0 {
> -+ reg = <0>;
> ++ regulator-name = "VREG_RTMR0_1P15";
> ++ regulator-min-microvolt = <1150000>;
> ++ regulator-max-microvolt = <1150000>;
> +
> -+ pmic_glink_ss1_hs_in: endpoint {
> -+ remote-endpoint = <&usb_1_ss1_dwc3_hs>;
> -+ };
> -+ };
> -+
> -+ port@1 {
> -+ reg = <1>;
> ++ gpio = <&pmc8380_5_gpios 8 GPIO_ACTIVE_HIGH>;
> ++ enable-active-high;
> +
> -+ pmic_glink_ss1_ss_in: endpoint {
> -+ remote-endpoint = <&usb_1_ss1_qmpphy_out>;
> -+ };
> -+ };
> -+ };
> -+ };
> -+ };
> ++ pinctrl-0 = <&usb0_pwr_1p15_reg_en>;
> ++ pinctrl-names = "default";
> +
> -+ reserved-memory {
> -+ linux,cma {
> -+ compatible = "shared-dma-pool";
> -+ size = <0x0 0x8000000>;
> -+ reusable;
> -+ linux,cma-default;
> -+ };
> ++ regulator-boot-on;
> + };
> +
> -+ vreg_edp_3p3: regulator-edp-3p3 {
> ++ vreg_rtmr0_1p8: regulator-rtmr0-1p8 {
> + compatible = "regulator-fixed";
> +
> -+ regulator-name = "VREG_EDP_3P3";
> -+ regulator-min-microvolt = <3300000>;
> -+ regulator-max-microvolt = <3300000>;
> ++ regulator-name = "VREG_RTMR0_1P8";
> ++ regulator-min-microvolt = <1800000>;
> ++ regulator-max-microvolt = <1800000>;
> +
> -+ gpio = <&tlmm 70 GPIO_ACTIVE_HIGH>;
> ++ gpio = <&pm8550ve_9_gpios 8 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> +
> -+ pinctrl-0 = <&edp_reg_en>;
> ++ pinctrl-0 = <&usb0_1p8_reg_en>;
> + pinctrl-names = "default";
> +
> + regulator-boot-on;
> + };
> +
> -+ vreg_nvme: regulator-nvme {
> ++ vreg_rtmr0_3p3: regulator-rtmr0-3p3 {
> + compatible = "regulator-fixed";
> +
> -+ regulator-name = "VREG_NVME_3P3";
> ++ regulator-name = "VREG_RTMR0_3P3";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> +
> -+ gpio = <&tlmm 18 GPIO_ACTIVE_HIGH>;
> ++ gpio = <&pm8550_gpios 11 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> +
> -+ pinctrl-0 = <&nvme_reg_en>;
> ++ pinctrl-0 = <&usb0_3p3_reg_en>;
> + pinctrl-names = "default";
> ++
> ++ regulator-boot-on;
> + };
> +
> -+ vph_pwr: regulator-vph-pwr {
> ++ vreg_rtmr1_1p15: regulator-rtmr1-1p15 {
> + compatible = "regulator-fixed";
> +
> -+ regulator-name = "vph_pwr";
> -+ regulator-min-microvolt = <3700000>;
> -+ regulator-max-microvolt = <3700000>;
> ++ regulator-name = "VREG_RTMR1_1P15";
> ++ regulator-min-microvolt = <1150000>;
> ++ regulator-max-microvolt = <1150000>;
> ++
> ++ gpio = <&tlmm 188 GPIO_ACTIVE_HIGH>;
> ++ enable-active-high;
> ++
> ++ pinctrl-0 = <&usb1_pwr_1p15_reg_en>;
> ++ pinctrl-names = "default";
> +
> -+ regulator-always-on;
> + regulator-boot-on;
> + };
> -+};
> -+
> -+&apps_rsc {
> -+ regulators-0 {
> -+ compatible = "qcom,pm8550-rpmh-regulators";
> -+ qcom,pmic-id = "b";
> -+
> -+ vdd-bob1-supply = <&vph_pwr>;
> -+ vdd-bob2-supply = <&vph_pwr>;
> -+ vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>;
> -+ vdd-l2-l13-l14-supply = <&vreg_bob1>;
> -+ vdd-l5-l16-supply = <&vreg_bob1>;
> -+ vdd-l6-l7-supply = <&vreg_bob2>;
> -+ vdd-l8-l9-supply = <&vreg_bob1>;
> -+ vdd-l12-supply = <&vreg_s5j_1p2>;
> -+ vdd-l15-supply = <&vreg_s4c_1p8>;
> -+ vdd-l17-supply = <&vreg_bob2>;
> -+
> -+ vreg_bob1: bob1 {
> -+ regulator-name = "vreg_bob1";
> -+ regulator-min-microvolt = <3008000>;
> -+ regulator-max-microvolt = <3960000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> +
> -+ vreg_bob2: bob2 {
> -+ regulator-name = "vreg_bob2";
> -+ regulator-min-microvolt = <2504000>;
> -+ regulator-max-microvolt = <3008000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> ++ vreg_rtmr1_1p8: regulator-rtmr1-1p8 {
> ++ compatible = "regulator-fixed";
> +
> -+ vreg_l2b_3p0: ldo2 {
> -+ regulator-name = "vreg_l2b_3p0";
> -+ regulator-min-microvolt = <3072000>;
> -+ regulator-max-microvolt = <3072000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> ++ regulator-name = "VREG_RTMR1_1P8";
> ++ regulator-min-microvolt = <1800000>;
> ++ regulator-max-microvolt = <1800000>;
> +
> -+ vreg_l4b_1p8: ldo4 {
> -+ regulator-name = "vreg_l4b_1p8";
> -+ regulator-min-microvolt = <1800000>;
> -+ regulator-max-microvolt = <1800000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> ++ gpio = <&tlmm 175 GPIO_ACTIVE_HIGH>;
> ++ enable-active-high;
> +
> -+ vreg_l6b_1p8: ldo6 {
> -+ regulator-name = "vreg_l6b_1p8";
> -+ regulator-min-microvolt = <1800000>;
> -+ regulator-max-microvolt = <2960000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> ++ pinctrl-0 = <&usb1_pwr_1p8_reg_en>;
> ++ pinctrl-names = "default";
> +
> -+ vreg_l8b_3p0: ldo8 {
> -+ regulator-name = "vreg_l8b_3p0";
> -+ regulator-min-microvolt = <3072000>;
> -+ regulator-max-microvolt = <3072000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> ++ regulator-boot-on;
> ++ };
> +
> -+ vreg_l9b_2p9: ldo9 {
> -+ regulator-name = "vreg_l9b_2p9";
> -+ regulator-min-microvolt = <2960000>;
> -+ regulator-max-microvolt = <2960000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> ++ vreg_rtmr1_3p3: regulator-rtmr1-3p3 {
> ++ compatible = "regulator-fixed";
> +
> -+ vreg_l10b_1p8: ldo10 {
> -+ regulator-name = "vreg_l10b_1p8";
> -+ regulator-min-microvolt = <1800000>;
> -+ regulator-max-microvolt = <1800000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> ++ regulator-name = "VREG_RTMR1_3P3";
> ++ regulator-min-microvolt = <3300000>;
> ++ regulator-max-microvolt = <3300000>;
> +
> -+ vreg_l12b_1p2: ldo12 {
> -+ regulator-name = "vreg_l12b_1p2";
> -+ regulator-min-microvolt = <1200000>;
> -+ regulator-max-microvolt = <1200000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> ++ gpio = <&tlmm 186 GPIO_ACTIVE_HIGH>;
> ++ enable-active-high;
> +
> -+ vreg_l13b_3p0: ldo13 {
> -+ regulator-name = "vreg_l13b_3p0";
> -+ regulator-min-microvolt = <3072000>;
> -+ regulator-max-microvolt = <3072000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> ++ pinctrl-0 = <&usb1_pwr_3p3_reg_en>;
> ++ pinctrl-names = "default";
> +
> -+ vreg_l14b_3p0: ldo14 {
> -+ regulator-name = "vreg_l14b_3p0";
> -+ regulator-min-microvolt = <3072000>;
> -+ regulator-max-microvolt = <3072000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> ++ regulator-boot-on;
> ++ };
> +
> -+ vreg_l15b_1p8: ldo15 {
> -+ regulator-name = "vreg_l15b_1p8";
> -+ regulator-min-microvolt = <1800000>;
> -+ regulator-max-microvolt = <1800000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> + vph_pwr: regulator-vph-pwr {
> + compatible = "regulator-fixed";
> +
> +@@ -153,6 +269,107 @@
> + regulator-always-on;
> + regulator-boot-on;
> + };
> +
> -+ vreg_l17b_2p5: ldo17 {
> -+ regulator-name = "vreg_l17b_2p5";
> -+ regulator-min-microvolt = <2504000>;
> -+ regulator-max-microvolt = <2504000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> -+ };
> ++ vreg_wcn_3p3: regulator-wcn-3p3 {
> ++ compatible = "regulator-fixed";
> +
> -+ regulators-1 {
> -+ compatible = "qcom,pm8550ve-rpmh-regulators";
> -+ qcom,pmic-id = "c";
> -+
> -+ vdd-l1-supply = <&vreg_s5j_1p2>;
> -+ vdd-l2-supply = <&vreg_s1f_0p7>;
> -+ vdd-l3-supply = <&vreg_s1f_0p7>;
> -+ vdd-s4-supply = <&vph_pwr>;
> -+
> -+ vreg_s4c_1p8: smps4 {
> -+ regulator-name = "vreg_s4c_1p8";
> -+ regulator-min-microvolt = <1856000>;
> -+ regulator-max-microvolt = <2000000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> ++ regulator-name = "VREG_WCN_3P3";
> ++ regulator-min-microvolt = <3300000>;
> ++ regulator-max-microvolt = <3300000>;
> +
> -+ vreg_l1c_1p2: ldo1 {
> -+ regulator-name = "vreg_l1c_1p2";
> -+ regulator-min-microvolt = <1200000>;
> -+ regulator-max-microvolt = <1200000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> ++ gpio = <&tlmm 214 GPIO_ACTIVE_HIGH>;
> ++ enable-active-high;
> +
> -+ vreg_l2c_0p8: ldo2 {
> -+ regulator-name = "vreg_l2c_0p8";
> -+ regulator-min-microvolt = <880000>;
> -+ regulator-max-microvolt = <880000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> ++ pinctrl-0 = <&wcn_sw_en>;
> ++ pinctrl-names = "default";
> +
> -+ vreg_l3c_0p8: ldo3 {
> -+ regulator-name = "vreg_l3c_0p8";
> -+ regulator-min-microvolt = <912000>;
> -+ regulator-max-microvolt = <912000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> ++ regulator-boot-on;
> + };
> +
> -+ regulators-2 {
> -+ compatible = "qcom,pmc8380-rpmh-regulators";
> -+ qcom,pmic-id = "d";
> -+
> -+ vdd-l1-supply = <&vreg_s1f_0p7>;
> -+ vdd-l2-supply = <&vreg_s1f_0p7>;
> -+ vdd-l3-supply = <&vreg_s4c_1p8>;
> -+ vdd-s1-supply = <&vph_pwr>;
> -+
> -+ vreg_l1d_0p8: ldo1 {
> -+ regulator-name = "vreg_l1d_0p8";
> -+ regulator-min-microvolt = <880000>;
> -+ regulator-max-microvolt = <880000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> ++ /*
> ++ * TODO: These two regulators are actually part of the removable M.2
> ++ * card and not the CRD mainboard. Need to describe this differently.
> ++ * Functionally it works correctly, because all we need to do is to
> ++ * turn on the actual 3.3V supply above.
> ++ */
> ++ vreg_wcn_0p95: regulator-wcn-0p95 {
> ++ compatible = "regulator-fixed";
> +
> -+ vreg_l2d_0p9: ldo2 {
> -+ regulator-name = "vreg_l2d_0p9";
> -+ regulator-min-microvolt = <912000>;
> -+ regulator-max-microvolt = <912000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> ++ regulator-name = "VREG_WCN_0P95";
> ++ regulator-min-microvolt = <950000>;
> ++ regulator-max-microvolt = <950000>;
> +
> -+ vreg_l3d_1p8: ldo3 {
> -+ regulator-name = "vreg_l3d_1p8";
> -+ regulator-min-microvolt = <1800000>;
> -+ regulator-max-microvolt = <1800000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> ++ vin-supply = <&vreg_wcn_3p3>;
> + };
> +
> -+ regulators-3 {
> -+ compatible = "qcom,pmc8380-rpmh-regulators";
> -+ qcom,pmic-id = "e";
> -+
> -+ vdd-l2-supply = <&vreg_s1f_0p7>;
> -+ vdd-l3-supply = <&vreg_s5j_1p2>;
> -+
> -+ vreg_l2e_0p8: ldo2 {
> -+ regulator-name = "vreg_l2e_0p8";
> -+ regulator-min-microvolt = <880000>;
> -+ regulator-max-microvolt = <880000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> ++ vreg_wcn_1p9: regulator-wcn-1p9 {
> ++ compatible = "regulator-fixed";
> +
> -+ vreg_l3e_1p2: ldo3 {
> -+ regulator-name = "vreg_l3e_1p2";
> -+ regulator-min-microvolt = <1200000>;
> -+ regulator-max-microvolt = <1200000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> -+ };
> ++ regulator-name = "VREG_WCN_1P9";
> ++ regulator-min-microvolt = <1900000>;
> ++ regulator-max-microvolt = <1900000>;
> +
> -+ regulators-4 {
> -+ compatible = "qcom,pmc8380-rpmh-regulators";
> -+ qcom,pmic-id = "f";
> -+
> -+ vdd-l1-supply = <&vreg_s5j_1p2>;
> -+ vdd-l2-supply = <&vreg_s5j_1p2>;
> -+ vdd-l3-supply = <&vreg_s5j_1p2>;
> -+ vdd-s1-supply = <&vph_pwr>;
> -+
> -+ vreg_s1f_0p7: smps1 {
> -+ regulator-name = "vreg_s1f_0p7";
> -+ regulator-min-microvolt = <700000>;
> -+ regulator-max-microvolt = <1100000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> ++ vin-supply = <&vreg_wcn_3p3>;
> + };
> +
> -+ regulators-6 {
> -+ compatible = "qcom,pm8550ve-rpmh-regulators";
> -+ qcom,pmic-id = "i";
> -+
> -+ vdd-l1-supply = <&vreg_s4c_1p8>;
> -+ vdd-l2-supply = <&vreg_s5j_1p2>;
> -+ vdd-l3-supply = <&vreg_s1f_0p7>;
> -+ vdd-s1-supply = <&vph_pwr>;
> -+ vdd-s2-supply = <&vph_pwr>;
> -+
> -+ vreg_l1i_1p8: ldo1 {
> -+ regulator-name = "vreg_l1i_1p8";
> -+ regulator-min-microvolt = <1800000>;
> -+ regulator-max-microvolt = <1800000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> ++ wcn7850-pmu {
> ++ compatible = "qcom,wcn7850-pmu";
> +
> -+ vreg_l2i_1p2: ldo2 {
> -+ regulator-name = "vreg_l2i_1p2";
> -+ regulator-min-microvolt = <1200000>;
> -+ regulator-max-microvolt = <1200000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> ++ vdd-supply = <&vreg_wcn_0p95>;
> ++ vddio-supply = <&vreg_l15b_1p8>;
> ++ vddaon-supply = <&vreg_wcn_0p95>;
> ++ vdddig-supply = <&vreg_wcn_0p95>;
> ++ vddrfa1p2-supply = <&vreg_wcn_1p9>;
> ++ vddrfa1p8-supply = <&vreg_wcn_1p9>;
> +
> -+ vreg_l3i_0p8: ldo3 {
> -+ regulator-name = "vreg_l3i_0p8";
> -+ regulator-min-microvolt = <880000>;
> -+ regulator-max-microvolt = <880000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> -+ };
> ++ wlan-enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
> ++ bt-enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>;
> +
> -+ regulators-7 {
> -+ compatible = "qcom,pm8550ve-rpmh-regulators";
> -+ qcom,pmic-id = "j";
> -+
> -+ vdd-l1-supply = <&vreg_s1f_0p7>;
> -+ vdd-l2-supply = <&vreg_s5j_1p2>;
> -+ vdd-l3-supply = <&vreg_s1f_0p7>;
> -+ vdd-s5-supply = <&vph_pwr>;
> -+
> -+ vreg_s5j_1p2: smps5 {
> -+ regulator-name = "vreg_s5j_1p2";
> -+ regulator-min-microvolt = <1256000>;
> -+ regulator-max-microvolt = <1304000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> ++ pinctrl-0 = <&wcn_wlan_bt_en>;
> ++ pinctrl-names = "default";
> +
> -+ vreg_l1j_0p8: ldo1 {
> -+ regulator-name = "vreg_l1j_0p8";
> -+ regulator-min-microvolt = <912000>;
> -+ regulator-max-microvolt = <912000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> ++ regulators {
> ++ vreg_pmu_rfa_cmn: ldo0 {
> ++ regulator-name = "vreg_pmu_rfa_cmn";
> ++ };
> +
> -+ vreg_l2j_1p2: ldo2 {
> -+ regulator-name = "vreg_l2j_1p2";
> -+ regulator-min-microvolt = <1256000>;
> -+ regulator-max-microvolt = <1256000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> ++ vreg_pmu_aon_0p59: ldo1 {
> ++ regulator-name = "vreg_pmu_aon_0p59";
> ++ };
> +
> -+ vreg_l3j_0p8: ldo3 {
> -+ regulator-name = "vreg_l3j_0p8";
> -+ regulator-min-microvolt = <880000>;
> -+ regulator-max-microvolt = <880000>;
> -+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> -+ };
> -+ };
> -+};
> ++ vreg_pmu_wlcx_0p8: ldo2 {
> ++ regulator-name = "vreg_pmu_wlcx_0p8";
> ++ };
> +
> -+&gpu {
> -+ status = "okay";
> ++ vreg_pmu_wlmx_0p85: ldo3 {
> ++ regulator-name = "vreg_pmu_wlmx_0p85";
> ++ };
> +
> -+ zap-shader {
> -+ firmware-name = "qcom/x1e80100/LENOVO/21N1/qcdxkmsuc8380.mbn";
> -+ };
> -+};
> ++ vreg_pmu_btcmx_0p85: ldo4 {
> ++ regulator-name = "vreg_pmu_btcmx_0p85";
> ++ };
> ++
> ++ vreg_pmu_rfa_0p8: ldo5 {
> ++ regulator-name = "vreg_pmu_rfa_0p8";
> ++ };
> +
> -+&i2c0 {
> ++ 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 {
> +@@ -495,6 +712,169 @@
> + };
> + };
> +
> ++&i2c3 {
> + clock-frequency = <400000>;
> +
> + status = "okay";
> +
> -+ /* ELAN06E2 or ELAN06E3 */
> -+ touchpad@15 {
> -+ compatible = "hid-over-i2c";
> -+ reg = <0x15>;
> ++ typec-mux@8 {
> ++ compatible = "parade,ps8830";
> ++ reg = <0x08>;
> ++
> ++ clocks = <&rpmhcc RPMH_RF_CLK3>;
> ++
> ++ vdd-supply = <&vreg_rtmr0_1p15>;
> ++ vdd33-supply = <&vreg_rtmr0_3p3>;
> ++ vdd33-cap-supply = <&vreg_rtmr0_3p3>;
> ++ vddar-supply = <&vreg_rtmr0_1p15>;
> ++ vddat-supply = <&vreg_rtmr0_1p15>;
> ++ vddio-supply = <&vreg_rtmr0_1p8>;
> +
> -+ hid-descr-addr = <0x1>;
> -+ interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>;
> ++ reset-gpios = <&pm8550_gpios 10 GPIO_ACTIVE_LOW>;
> +
> -+ pinctrl-0 = <&tpad_default>;
> ++ pinctrl-0 = <&rtmr0_default>;
> + pinctrl-names = "default";
> +
> -+ wakeup-source;
> -+ };
> ++ orientation-switch;
> ++ retimer-switch;
> +
> -+ /* TODO: second-sourced SYNA8022 or SYNA8024 touchpad @ 0x2c */
> ++ ports {
> ++ #address-cells = <1>;
> ++ #size-cells = <0>;
> +
> -+ /* ELAN06F1 or SYNA06F2 */
> -+ keyboard@3a {
> -+ compatible = "hid-over-i2c";
> -+ reg = <0x3a>;
> ++ port@0 {
> ++ reg = <0>;
> +
> -+ hid-descr-addr = <0x1>;
> -+ interrupts-extended = <&tlmm 67 IRQ_TYPE_LEVEL_LOW>;
> ++ retimer_ss0_ss_out: endpoint {
> ++ remote-endpoint = <&pmic_glink_ss0_ss_in>;
> ++ };
> ++ };
> +
> -+ pinctrl-0 = <&kybd_default>;
> -+ pinctrl-names = "default";
> ++ port@1 {
> ++ reg = <1>;
> ++
> ++ retimer_ss0_ss_in: endpoint {
> ++ remote-endpoint = <&usb_1_ss0_qmpphy_out>;
> ++ };
> ++ };
> +
> -+ wakeup-source;
> ++ port@2 {
> ++ reg = <2>;
> ++
> ++ retimer_ss0_con_sbu_out: endpoint {
> ++ remote-endpoint = <&pmic_glink_ss0_con_sbu_in>;
> ++ };
> ++ };
> ++ };
> + };
> +};
> +
> -+&i2c8 {
> ++&i2c5 {
> + clock-frequency = <400000>;
> +
> + status = "okay";
> +
> -+ /* ILIT2911 or GTCH1563 */
> -+ touchscreen@10 {
> -+ compatible = "hid-over-i2c";
> -+ reg = <0x10>;
> ++ eusb5_repeater: redriver@43 {
> ++ compatible = "nxp,ptn3222";
> ++ reg = <0x43>;
> ++ #phy-cells = <0>;
> ++
> ++ vdd3v3-supply = <&vreg_l13b_3p0>;
> ++ vdd1v8-supply = <&vreg_l4b_1p8>;
> +
> -+ hid-descr-addr = <0x1>;
> -+ interrupts-extended = <&tlmm 51 IRQ_TYPE_LEVEL_LOW>;
> ++ reset-gpios = <&tlmm 7 GPIO_ACTIVE_LOW>;
> +
> -+ pinctrl-0 = <&ts0_default>;
> ++ pinctrl-0 = <&eusb5_reset_n>;
> + pinctrl-names = "default";
> + };
> +
> -+ /* TODO: second-sourced touchscreen @ 0x41 */
> -+};
> ++ eusb3_repeater: redriver@47 {
> ++ compatible = "nxp,ptn3222";
> ++ reg = <0x47>;
> ++ #phy-cells = <0>;
> +
> -+&mdss {
> -+ status = "okay";
> -+};
> ++ vdd3v3-supply = <&vreg_l13b_3p0>;
> ++ vdd1v8-supply = <&vreg_l4b_1p8>;
> +
> -+&mdss_dp3 {
> -+ compatible = "qcom,x1e80100-dp";
> -+ /delete-property/ #sound-dai-cells;
> ++ reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
> +
> -+ status = "okay";
> ++ pinctrl-0 = <&eusb3_reset_n>;
> ++ pinctrl-names = "default";
> ++ };
> +
> -+ aux-bus {
> -+ panel {
> -+ compatible = "edp-panel";
> -+ enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;
> -+ power-supply = <&vreg_edp_3p3>;
> ++ eusb6_repeater: redriver@4f {
> ++ compatible = "nxp,ptn3222";
> ++ reg = <0x4f>;
> ++ #phy-cells = <0>;
> +
> -+ pinctrl-0 = <&edp_bl_en>;
> -+ pinctrl-names = "default";
> ++ vdd3v3-supply = <&vreg_l13b_3p0>;
> ++ vdd1v8-supply = <&vreg_l4b_1p8>;
> +
> -+ port {
> -+ edp_panel_in: endpoint {
> -+ remote-endpoint = <&mdss_dp3_out>;
> -+ };
> -+ };
> -+ };
> -+ };
> ++ reset-gpios = <&tlmm 184 GPIO_ACTIVE_LOW>;
> +
> -+ ports {
> -+ port@1 {
> -+ reg = <1>;
> -+
> -+ mdss_dp3_out: endpoint {
> -+ data-lanes = <0 1 2 3>;
> -+ link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
> -+
> -+ remote-endpoint = <&edp_panel_in>;
> -+ };
> -+ };
> ++ pinctrl-0 = <&eusb6_reset_n>;
> ++ pinctrl-names = "default";
> + };
> +};
> +
> -+&mdss_dp3_phy {
> -+ vdda-phy-supply = <&vreg_l3j_0p8>;
> -+ vdda-pll-supply = <&vreg_l2j_1p2>;
> ++&i2c7 {
> ++ clock-frequency = <400000>;
> +
> + status = "okay";
> -+};
> +
> -+&pcie4 {
> -+ perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
> -+ wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
> ++ typec-mux@8 {
> ++ compatible = "parade,ps8830";
> ++ reg = <0x8>;
> ++
> ++ clocks = <&rpmhcc RPMH_RF_CLK4>;
> ++
> ++ vdd-supply = <&vreg_rtmr1_1p15>;
> ++ vdd33-supply = <&vreg_rtmr1_3p3>;
> ++ vdd33-cap-supply = <&vreg_rtmr1_3p3>;
> ++ vddar-supply = <&vreg_rtmr1_1p15>;
> ++ vddat-supply = <&vreg_rtmr1_1p15>;
> ++ vddio-supply = <&vreg_rtmr1_1p8>;
> +
> -+ pinctrl-0 = <&pcie4_default>;
> -+ pinctrl-names = "default";
> ++ reset-gpios = <&tlmm 176 GPIO_ACTIVE_LOW>;
> +
> -+ status = "okay";
> -+};
> ++ pinctrl-0 = <&rtmr1_default>;
> ++ pinctrl-names = "default";
> +
> -+&pcie4_phy {
> -+ vdda-phy-supply = <&vreg_l3i_0p8>;
> -+ vdda-pll-supply = <&vreg_l3e_1p2>;
> ++ retimer-switch;
> ++ orientation-switch;
> +
> -+ status = "okay";
> -+};
> ++ ports {
> ++ #address-cells = <1>;
> ++ #size-cells = <0>;
> +
> -+&pcie6a {
> -+ perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
> -+ wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
> ++ port@0 {
> ++ reg = <0>;
> +
> -+ vddpe-3v3-supply = <&vreg_nvme>;
> ++ retimer_ss1_ss_out: endpoint {
> ++ remote-endpoint = <&pmic_glink_ss1_ss_in>;
> ++ };
> ++ };
> +
> -+ pinctrl-0 = <&pcie6a_default>;
> -+ pinctrl-names = "default";
> ++ port@1 {
> ++ reg = <1>;
> +
> -+ status = "okay";
> -+};
> ++ retimer_ss1_ss_in: endpoint {
> ++ remote-endpoint = <&usb_1_ss1_qmpphy_out>;
> ++ };
> ++ };
> +
> -+&pcie6a_phy {
> -+ vdda-phy-supply = <&vreg_l1d_0p8>;
> -+ vdda-pll-supply = <&vreg_l2j_1p2>;
> ++ port@2 {
> ++ reg = <2>;
> +
> -+ status = "okay";
> -+};
> ++ retimer_ss1_con_sbu_out: endpoint {
> ++ remote-endpoint = <&pmic_glink_ss1_con_sbu_in>;
> ++ };
> ++ };
> +
> -+&pmc8380_3_gpios {
> -+ edp_bl_en: edp-bl-en-state {
> -+ pins = "gpio4";
> -+ function = "normal";
> -+ power-source = <1>;
> -+ input-disable;
> -+ output-enable;
> ++ };
> + };
> +};
> +
> -+&qupv3_0 {
> + &i2c8 {
> + clock-frequency = <400000>;
> +
> +@@ -519,6 +899,22 @@
> + status = "okay";
> + };
> +
> ++&mdss_dp0 {
> + status = "okay";
> +};
> +
> -+&qupv3_1 {
> ++&mdss_dp0_out {
> ++ data-lanes = <0 1>;
> ++};
> ++
> ++&mdss_dp1 {
> + status = "okay";
> +};
> +
> -+&qupv3_2 {
> -+ status = "okay";
> -+};
> -+
> -+&remoteproc_adsp {
> -+ firmware-name = "qcom/x1e80100/LENOVO/21N1/qcadsp8380.mbn",
> -+ "qcom/x1e80100/LENOVO/21N1/adsp_dtbs.elf";
> -+
> -+ status = "okay";
> ++&mdss_dp1_out {
> ++ data-lanes = <0 1>;
> ++};
> ++
> + &mdss_dp3 {
> + compatible = "qcom,x1e80100-dp";
> + /delete-property/ #sound-dai-cells;
> +@@ -580,6 +976,23 @@
> + status = "okay";
> + };
> +
> ++&pcie4_port0 {
> ++ 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>;
> ++ };
> +};
> +
> -+&remoteproc_cdsp {
> -+ firmware-name = "qcom/x1e80100/LENOVO/21N1/qccdsp8380.mbn",
> -+ "qcom/x1e80100/LENOVO/21N1/cdsp_dtbs.elf";
> + &pcie6a {
> + perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
> + wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
> +@@ -599,6 +1012,37 @@
> + status = "okay";
> + };
> +
> ++&pm8550_gpios {
> ++ rtmr0_default: rtmr0-reset-n-active-state {
> ++ pins = "gpio10";
> ++ function = "normal";
> ++ power-source = <1>; /* 1.8V */
> ++ bias-disable;
> ++ input-disable;
> ++ output-enable;
> ++ };
> +
> -+ status = "okay";
> ++ usb0_3p3_reg_en: usb0-3p3-reg-en-state {
> ++ pins = "gpio11";
> ++ function = "normal";
> ++ power-source = <1>; /* 1.8V */
> ++ bias-disable;
> ++ input-disable;
> ++ output-enable;
> ++ };
> +};
> +
> -+&smb2360_0_eusb2_repeater {
> -+ vdd18-supply = <&vreg_l3d_1p8>;
> -+ vdd3-supply = <&vreg_l2b_3p0>;
> ++&pm8550ve_9_gpios {
> ++ usb0_1p8_reg_en: usb0-1p8-reg-en-state {
> ++ pins = "gpio8";
> ++ function = "normal";
> ++ power-source = <1>; /* 1.8V */
> ++ bias-disable;
> ++ input-disable;
> ++ output-enable;
> ++ };
> +};
> +
> -+&smb2360_1_eusb2_repeater {
> -+ vdd18-supply = <&vreg_l3d_1p8>;
> -+ vdd3-supply = <&vreg_l14b_3p0>;
> + &pmc8380_3_gpios {
> + edp_bl_en: edp-bl-en-state {
> + pins = "gpio4";
> +@@ -609,6 +1053,17 @@
> + };
> + };
> +
> ++&pmc8380_5_gpios {
> ++ usb0_pwr_1p15_reg_en: usb0-pwr-1p15-reg-en-state {
> ++ pins = "gpio8";
> ++ function = "normal";
> ++ power-source = <1>; /* 1.8V */
> ++ bias-disable;
> ++ input-disable;
> ++ output-enable;
> ++ };
> +};
> +
> -+&tlmm {
> -+ gpio-reserved-ranges = <34 2>, /* Unused */
> -+ <44 4>, /* SPI (TPM) */
> -+ <72 2>, /* Secure EC I2C connection (?) */
> -+ <238 1>; /* UFS Reset */
> -+
> -+ tpad_default: tpad-default-state {
> -+ pins = "gpio3";
> + &qupv3_0 {
> + status = "okay";
> + };
> +@@ -651,6 +1106,30 @@
> + <72 2>, /* Secure EC I2C connection (?) */
> + <238 1>; /* UFS Reset */
> +
> ++ eusb3_reset_n: eusb3-reset-n-state {
> ++ pins = "gpio6";
> + function = "gpio";
> -+ bias-pull-up;
> ++ drive-strength = <2>;
> ++ bias-disable;
> ++ output-low;
> + };
> +
> -+ nvme_reg_en: nvme-reg-en-state {
> -+ pins = "gpio18";
> ++ eusb5_reset_n: eusb5-reset-n-state {
> ++ pins = "gpio7";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> ++ output-low;
> + };
> +
> -+ ts0_default: ts0-default-state {
> -+ reset-n-pins {
> -+ pins = "gpio48";
> -+ function = "gpio";
> -+ output-high;
> -+ drive-strength = <16>;
> -+ };
> -+
> -+ int-n-pins {
> -+ pins = "gpio51";
> -+ function = "gpio";
> -+ bias-disable;
> -+ };
> -+ };
> -+
> -+ kybd_default: kybd-default-state {
> -+ pins = "gpio67";
> ++ eusb6_reset_n: eusb6-reset-n-state {
> ++ pins = "gpio184";
> + function = "gpio";
> ++ drive-strength = <2>;
> + bias-disable;
> ++ output-low;
> + };
> +
> -+ edp_reg_en: edp-reg-en-state {
> -+ pins = "gpio70";
> + tpad_default: tpad-default-state {
> + pins = "gpio3";
> + function = "gpio";
> +@@ -744,6 +1223,34 @@
> + };
> + };
> +
> ++ rtmr1_default: rtmr1-reset-n-active-state {
> ++ pins = "gpio176";
> + function = "gpio";
> -+ drive-strength = <16>;
> ++ drive-strength = <2>;
> + bias-disable;
> + };
> +
> -+ hall_int_n_default: hall-int-n-state {
> -+ pins = "gpio92";
> ++ usb1_pwr_1p15_reg_en: usb1-pwr-1p15-reg-en-state {
> ++ pins = "gpio188";
> + function = "gpio";
> ++ drive-strength = <2>;
> + bias-disable;
> + };
> +
> -+ pcie4_default: pcie4-default-state {
> -+ clkreq-n-pins {
> -+ pins = "gpio147";
> -+ function = "pcie4_clk";
> -+ 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;
> -+ };
> -+ };
> -+
> -+ pcie6a_default: pcie6a-default-state {
> -+ clkreq-n-pins {
> -+ pins = "gpio153";
> -+ function = "pcie6a_clk";
> -+ 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;
> -+ };
> ++ usb1_pwr_1p8_reg_en: usb1-pwr-1p8-reg-en-state {
> ++ pins = "gpio175";
> ++ function = "gpio";
> ++ drive-strength = <2>;
> ++ bias-disable;
> + };
> +
> -+ wcd_default: wcd-reset-n-active-state {
> -+ pins = "gpio191";
> ++ usb1_pwr_3p3_reg_en: usb1-pwr-3p3-reg-en-state {
> ++ pins = "gpio186";
> + function = "gpio";
> -+ drive-strength = <16>;
> ++ drive-strength = <2>;
> + bias-disable;
> -+ output-low;
> + };
> -+};
> -+
> -+&usb_1_ss0_hsphy {
> -+ vdd-supply = <&vreg_l3j_0p8>;
> -+ vdda12-supply = <&vreg_l2j_1p2>;
> +
> -+ phys = <&smb2360_0_eusb2_repeater>;
> -+
> -+ status = "okay";
> -+};
> -+
> -+&usb_1_ss0_qmpphy {
> -+ vdda-phy-supply = <&vreg_l3e_1p2>;
> -+ vdda-pll-supply = <&vreg_l1j_0p8>;
> -+
> -+ status = "okay";
> + wcd_default: wcd-reset-n-active-state {
> + pins = "gpio191";
> + function = "gpio";
> +@@ -751,8 +1258,39 @@
> + bias-disable;
> + output-low;
> + };
> ++
> ++ wcn_sw_en: wcn-sw-en-state {
> ++ pins = "gpio214";
> ++ 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;
> ++ };
> + };
> +
> ++&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_1_ss0_hsphy {
> + vdd-supply = <&vreg_l3j_0p8>;
> + vdda12-supply = <&vreg_l2j_1p2>;
> +@@ -763,7 +1301,7 @@
> + };
> +
> + &usb_1_ss0_qmpphy {
> +- vdda-phy-supply = <&vreg_l3e_1p2>;
> ++ vdda-phy-supply = <&vreg_l2j_1p2>;
> + vdda-pll-supply = <&vreg_l1j_0p8>;
> +
> + status = "okay";
> +@@ -782,7 +1320,7 @@
> + };
> +
> + &usb_1_ss0_qmpphy_out {
> +- remote-endpoint = <&pmic_glink_ss0_ss_in>;
> ++ remote-endpoint = <&retimer_ss0_ss_in>;
> + };
> +
> + &usb_1_ss1_hsphy {
> +@@ -795,7 +1333,7 @@
> + };
> +
> + &usb_1_ss1_qmpphy {
> +- vdda-phy-supply = <&vreg_l3e_1p2>;
> ++ vdda-phy-supply = <&vreg_l2j_1p2>;
> + vdda-pll-supply = <&vreg_l2d_0p9>;
> +
> + status = "okay";
> +@@ -814,5 +1352,58 @@
> + };
> +
> + &usb_1_ss1_qmpphy_out {
> +- remote-endpoint = <&pmic_glink_ss1_ss_in>;
> ++ remote-endpoint = <&retimer_ss1_ss_in>;
> +};
> +
> -+&usb_1_ss0 {
> ++&usb_2 {
> + status = "okay";
> +};
> +
> -+&usb_1_ss0_dwc3 {
> ++&usb_2_dwc3 {
> + dr_mode = "host";
> +};
> +
> -+&usb_1_ss0_dwc3_hs {
> -+ remote-endpoint = <&pmic_glink_ss0_hs_in>;
> ++&usb_2_hsphy {
> ++ vdd-supply = <&vreg_l2e_0p8>;
> ++ vdda12-supply = <&vreg_l3e_1p2>;
> ++
> ++ phys = <&eusb5_repeater>;
> ++
> ++ status = "okay";
> +};
> +
> -+&usb_1_ss0_qmpphy_out {
> -+ remote-endpoint = <&pmic_glink_ss0_ss_in>;
> ++&usb_mp {
> ++ status = "okay";
> +};
> +
> -+&usb_1_ss1_hsphy {
> -+ vdd-supply = <&vreg_l3j_0p8>;
> -+ vdda12-supply = <&vreg_l2j_1p2>;
> ++&usb_mp_hsphy0 {
> ++ vdd-supply = <&vreg_l2e_0p8>;
> ++ vdda12-supply = <&vreg_l3e_1p2>;
> +
> -+ phys = <&smb2360_1_eusb2_repeater>;
> ++ phys = <&eusb6_repeater>;
> +
> + status = "okay";
> +};
> +
> -+&usb_1_ss1_qmpphy {
> ++&usb_mp_qmpphy0 {
> + vdda-phy-supply = <&vreg_l3e_1p2>;
> -+ vdda-pll-supply = <&vreg_l2d_0p9>;
> ++ vdda-pll-supply = <&vreg_l3c_0p8>;
> +
> + status = "okay";
> +};
> +
> -+&usb_1_ss1 {
> -+ status = "okay";
> -+};
> ++&usb_mp_hsphy1 {
> ++ vdd-supply = <&vreg_l2e_0p8>;
> ++ vdda12-supply = <&vreg_l3e_1p2>;
> +
> -+&usb_1_ss1_dwc3 {
> -+ dr_mode = "host";
> -+};
> ++ phys = <&eusb3_repeater>;
> +
> -+&usb_1_ss1_dwc3_hs {
> -+ remote-endpoint = <&pmic_glink_ss1_hs_in>;
> ++ status = "okay";
> +};
> +
> -+&usb_1_ss1_qmpphy_out {
> -+ remote-endpoint = <&pmic_glink_ss1_ss_in>;
> -+};
> ++&usb_mp_qmpphy1 {
> ++ vdda-phy-supply = <&vreg_l3e_1p2>;
> ++ vdda-pll-supply = <&vreg_l3c_0p8>;
> +
> -+&usb_mp {
> + status = "okay";
> -+};
> + };
> Index: sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-asus-vivobook-s15_dts
> ===================================================================
> RCS file: /cvs/ports/sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-asus-vivobook-s15_dts,v
> diff -u -p -r1.2 patch-src_arm64_qcom_x1e80100-asus-vivobook-s15_dts
> --- sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-asus-vivobook-s15_dts 21 Sep 2024 17:14:17 -0000 1.2
> +++ sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-asus-vivobook-s15_dts 25 Jan 2025 12:51:42 -0000
> @@ -1,23 +1,472 @@
> Index: src/arm64/qcom/x1e80100-asus-vivobook-s15.dts
> --- src/arm64/qcom/x1e80100-asus-vivobook-s15.dts.orig
> +++ src/arm64/qcom/x1e80100-asus-vivobook-s15.dts
> -@@ -501,10 +501,6 @@
> - vdd3-supply = <&vreg_l14b_3p0>;
> +@@ -7,7 +7,9 @@
> + /dts-v1/;
> +
> + #include <dt-bindings/gpio/gpio.h>
> ++#include <dt-bindings/input/gpio-keys.h>
> + #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
> ++#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
> +
> + #include "x1e80100.dtsi"
> + #include "x1e80100-pmics.dtsi"
> +@@ -17,6 +19,24 @@
> + compatible = "asus,vivobook-s15", "qcom,x1e80100";
> + chassis-type = "laptop";
> +
> ++ aliases {
> ++ serial1 = &uart14;
> ++ };
> ++
> ++ gpio-keys {
> ++ compatible = "gpio-keys";
> ++ pinctrl-0 = <&hall_int_n_default>;
> ++ pinctrl-names = "default";
> ++
> ++ switch-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,x1e80100-pmic-glink",
> + "qcom,sm8550-pmic-glink",
> +@@ -137,6 +157,101 @@
> + regulator-always-on;
> + 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_1p9: regulator-wcn-1p9 {
> ++ compatible = "regulator-fixed";
> ++
> ++ regulator-name = "VREG_WCN_1P9";
> ++ regulator-min-microvolt = <1900000>;
> ++ regulator-max-microvolt = <1900000>;
> ++
> ++ 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 214 GPIO_ACTIVE_HIGH>;
> ++ enable-active-high;
> ++
> ++ pinctrl-0 = <&wcn_sw_en>;
> ++ pinctrl-names = "default";
> ++
> ++ regulator-boot-on;
> ++ };
> ++
> ++ wcn7850-pmu {
> ++ compatible = "qcom,wcn7850-pmu";
> ++
> ++ vdd-supply = <&vreg_wcn_0p95>;
> ++ vddio-supply = <&vreg_l15b_1p8>;
> ++ vddaon-supply = <&vreg_wcn_0p95>;
> ++ vdddig-supply = <&vreg_wcn_0p95>;
> ++ vddrfa1p2-supply = <&vreg_wcn_1p9>;
> ++ vddrfa1p8-supply = <&vreg_wcn_1p9>;
> ++
> ++ wlan-enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
> ++ bt-enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>;
> ++
> ++ pinctrl-0 = <&wcn_wlan_en>, <&wcn_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 {
> +@@ -176,12 +291,33 @@
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> ++ vreg_l4b_1p8: ldo4 {
> ++ regulator-name = "vreg_l4b_1p8";
> ++ regulator-min-microvolt = <1800000>;
> ++ regulator-max-microvolt = <1800000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l13b_3p0: ldo13 {
> ++ regulator-name = "vreg_l13b_3p0";
> ++ regulator-min-microvolt = <3072000>;
> ++ regulator-max-microvolt = <3072000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> + vreg_l14b_3p0: ldo14 {
> + regulator-name = "vreg_l14b_3p0";
> + regulator-min-microvolt = <3072000>;
> + regulator-max-microvolt = <3072000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> ++
> ++ vreg_l15b_1p8: ldo15 {
> ++ regulator-name = "vreg_l15b_1p8";
> ++ regulator-min-microvolt = <1800000>;
> ++ regulator-max-microvolt = <1800000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> + };
> +
> + regulators-1 {
> +@@ -193,6 +329,13 @@
> + vdd-l3-supply = <&vreg_s1f_0p7>;
> + vdd-s4-supply = <&vph_pwr>;
> +
> ++ vreg_l3c_0p8: ldo3 {
> ++ regulator-name = "vreg_l3c_0p8";
> ++ regulator-min-microvolt = <912000>;
> ++ regulator-max-microvolt = <912000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> + vreg_s4c_1p8: smps4 {
> + regulator-name = "vreg_s4c_1p8";
> + regulator-min-microvolt = <1856000>;
> +@@ -328,6 +471,14 @@
> + };
> };
>
> --&smb2360_2 {
> -- status = "disabled";
> --};
> --
> - &tlmm {
> - gpio-reserved-ranges = <34 2>, /* Unused */
> - <44 4>, /* SPI (TPM) */
> -@@ -649,4 +645,8 @@
> ++&gpu {
> ++ status = "okay";
> ++
> ++ zap-shader {
> ++ firmware-name = "qcom/x1e80100/ASUSTeK/vivobook-s15/qcdxkmsuc8380.mbn";
> ++ };
> ++};
> ++
> + &i2c0 {
> + clock-frequency = <400000>;
> + status = "okay";
> +@@ -377,7 +528,49 @@
> + wakeup-source;
> + };
> +
> +- /* EC? @ 0x5b, 0x76 */
> ++ eusb5_repeater: redriver@43 {
> ++ compatible = "nxp,ptn3222";
> ++ reg = <0x43>;
> ++ #phy-cells = <0>;
> ++
> ++ vdd3v3-supply = <&vreg_l13b_3p0>;
> ++ vdd1v8-supply = <&vreg_l4b_1p8>;
> ++
> ++ reset-gpios = <&tlmm 7 GPIO_ACTIVE_LOW>;
> ++
> ++ pinctrl-0 = <&eusb5_reset_n>;
> ++ pinctrl-names = "default";
> ++ };
> ++
> ++ eusb3_repeater: redriver@47 {
> ++ compatible = "nxp,ptn3222";
> ++ reg = <0x47>;
> ++ #phy-cells = <0>;
> ++
> ++ vdd3v3-supply = <&vreg_l13b_3p0>;
> ++ vdd1v8-supply = <&vreg_l4b_1p8>;
> ++
> ++ reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
> ++
> ++ pinctrl-0 = <&eusb3_reset_n>;
> ++ pinctrl-names = "default";
> ++ };
> ++
> ++ eusb6_repeater: redriver@4f {
> ++ compatible = "nxp,ptn3222";
> ++ reg = <0x4f>;
> ++ #phy-cells = <0>;
> ++
> ++ vdd3v3-supply = <&vreg_l13b_3p0>;
> ++ vdd1v8-supply = <&vreg_l4b_1p8>;
> ++
> ++ reset-gpios = <&tlmm 184 GPIO_ACTIVE_LOW>;
> ++
> ++ pinctrl-0 = <&eusb6_reset_n>;
> ++ pinctrl-names = "default";
> ++ };
> ++
> ++ /* EC @ 0x76 */
> + };
> +
> + &i2c7 {
> +@@ -399,9 +592,13 @@
> +
> + aux-bus {
> + panel {
> +- compatible = "edp-panel";
> ++ compatible = "samsung,atna56ac03", "samsung,atna33xc20";
> ++ enable-gpios = <&pmc8380_3_gpios 4 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>;
> +@@ -448,6 +645,23 @@
> + status = "okay";
> + };
> +
> ++&pcie4_port0 {
> ++ 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>;
> ++ };
> ++};
> ++
> + &pcie6a {
> + perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
> + wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
> +@@ -467,6 +681,18 @@
> + status = "okay";
> + };
> +
> ++&pmc8380_3_gpios {
> ++ edp_bl_en: edp-bl-en-state {
> ++ pins = "gpio4";
> ++ function = "normal";
> ++ power-source = <1>; /* 1.8 V */
> ++ qcom,drive-strength = <PMIC_GPIO_STRENGTH_MED>;
> ++ bias-pull-down;
> ++ input-disable;
> ++ output-enable;
> ++ };
> ++};
> ++
> + &qupv3_0 {
> + status = "okay";
> + };
> +@@ -515,6 +741,36 @@
> + bias-disable;
> + };
> +
> ++ eusb3_reset_n: eusb3-reset-n-state {
> ++ pins = "gpio6";
> ++ function = "gpio";
> ++ drive-strength = <2>;
> ++ bias-pull-up;
> ++ output-low;
> ++ };
> ++
> ++ eusb5_reset_n: eusb5-reset-n-state {
> ++ pins = "gpio7";
> ++ function = "gpio";
> ++ drive-strength = <2>;
> ++ bias-pull-up;
> ++ output-low;
> ++ };
> ++
> ++ eusb6_reset_n: eusb6-reset-n-state {
> ++ pins = "gpio184";
> ++ function = "gpio";
> ++ drive-strength = <2>;
> ++ bias-pull-up;
> ++ output-low;
> ++ };
> ++
> ++ hall_int_n_default: hall-int-n-state {
> ++ pins = "gpio92";
> ++ function = "gpio";
> ++ bias-disable;
> ++ };
> ++
> + kybd_default: kybd-default-state {
> + pins = "gpio67";
> + function = "gpio";
> +@@ -579,8 +835,46 @@
> + function = "gpio";
> + bias-disable;
> + };
> ++
> ++ wcn_bt_en: wcn-bt-en-state {
> ++ pins = "gpio116";
> ++ function = "gpio";
> ++ drive-strength = <16>;
> ++ bias-pull-down;
> ++ };
> ++
> ++ wcn_sw_en: wcn-sw-en-state {
> ++ pins = "gpio214";
> ++ function = "gpio";
> ++ drive-strength = <16>;
> ++ bias-disable;
> ++ };
> ++
> ++ wcn_wlan_en: wcn-wlan-en-state {
> ++ pins = "gpio117";
> ++ function = "gpio";
> ++ drive-strength = <16>;
> ++ 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_1_ss0_hsphy {
> + vdd-supply = <&vreg_l3j_0p8>;
> + vdda12-supply = <&vreg_l2j_1p2>;
> +@@ -591,7 +885,7 @@
> + };
> +
> + &usb_1_ss0_qmpphy {
> +- vdda-phy-supply = <&vreg_l3e_1p2>;
> ++ vdda-phy-supply = <&vreg_l2j_1p2>;
> + vdda-pll-supply = <&vreg_l1j_0p8>;
> +
> + status = "okay";
> +@@ -623,7 +917,7 @@
> + };
> +
> + &usb_1_ss1_qmpphy {
> +- vdda-phy-supply = <&vreg_l3e_1p2>;
> ++ vdda-phy-supply = <&vreg_l2j_1p2>;
> + vdda-pll-supply = <&vreg_l2d_0p9>;
> +
> + status = "okay";
> +@@ -643,4 +937,57 @@
>
> &usb_1_ss1_qmpphy_out {
> remote-endpoint = <&pmic_glink_ss1_ss_in>;
> +};
> +
> ++&usb_2 {
> ++ status = "okay";
> ++};
> ++
> ++&usb_2_dwc3 {
> ++ dr_mode = "host";
> ++};
> ++
> ++&usb_2_hsphy {
> ++ vdd-supply = <&vreg_l2e_0p8>;
> ++ vdda12-supply = <&vreg_l3e_1p2>;
> ++
> ++ phys = <&eusb5_repeater>;
> ++
> ++ status = "okay";
> ++};
> ++
> +&usb_mp {
> ++ status = "okay";
> ++};
> ++
> ++&usb_mp_hsphy0 {
> ++ vdd-supply = <&vreg_l2e_0p8>;
> ++ vdda12-supply = <&vreg_l3e_1p2>;
> ++
> ++ phys = <&eusb6_repeater>;
> ++
> ++ status = "okay";
> ++};
> ++
> ++&usb_mp_hsphy1 {
> ++ vdd-supply = <&vreg_l2e_0p8>;
> ++ vdda12-supply = <&vreg_l3e_1p2>;
> ++
> ++ phys = <&eusb3_repeater>;
> ++
> ++ status = "okay";
> ++};
> ++
> ++&usb_mp_qmpphy0 {
> ++ vdda-phy-supply = <&vreg_l3e_1p2>;
> ++ vdda-pll-supply = <&vreg_l3c_0p8>;
> ++
> ++ status = "okay";
> ++};
> ++
> ++&usb_mp_qmpphy1 {
> ++ vdda-phy-supply = <&vreg_l3e_1p2>;
> ++ vdda-pll-supply = <&vreg_l3c_0p8>;
> ++
> + status = "okay";
> };
> Index: sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-crd_dts
> ===================================================================
> RCS file: sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-crd_dts
> diff -N sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-crd_dts
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-crd_dts 25 Jan 2025 12:51:42 -0000
> @@ -0,0 +1,798 @@
> +Index: src/arm64/qcom/x1e80100-crd.dts
> +--- src/arm64/qcom/x1e80100-crd.dts.orig
> ++++ src/arm64/qcom/x1e80100-crd.dts
> +@@ -20,6 +20,7 @@
> +
> + aliases {
> + serial0 = &uart21;
> ++ serial1 = &uart14;
> + };
> +
> + wcd938x: audio-codec {
> +@@ -100,9 +101,17 @@
> + reg = <1>;
> +
> + pmic_glink_ss0_ss_in: endpoint {
> +- remote-endpoint = <&usb_1_ss0_qmpphy_out>;
> ++ remote-endpoint = <&retimer_ss0_ss_out>;
> + };
> + };
> ++
> ++ port@2 {
> ++ reg = <2>;
> ++
> ++ pmic_glink_ss0_con_sbu_in: endpoint {
> ++ remote-endpoint = <&retimer_ss0_con_sbu_out>;
> ++ };
> ++ };
> + };
> + };
> +
> +@@ -129,9 +138,17 @@
> + reg = <1>;
> +
> + pmic_glink_ss1_ss_in: endpoint {
> +- remote-endpoint = <&usb_1_ss1_qmpphy_out>;
> ++ remote-endpoint = <&retimer_ss1_ss_out>;
> + };
> + };
> ++
> ++ port@2 {
> ++ reg = <2>;
> ++
> ++ pmic_glink_ss1_con_sbu_in: endpoint {
> ++ remote-endpoint = <&retimer_ss1_con_sbu_out>;
> ++ };
> ++ };
> + };
> + };
> +
> +@@ -158,9 +175,17 @@
> + reg = <1>;
> +
> + pmic_glink_ss2_ss_in: endpoint {
> +- remote-endpoint = <&usb_1_ss2_qmpphy_out>;
> ++ remote-endpoint = <&retimer_ss2_ss_out>;
> + };
> + };
> ++
> ++ port@2 {
> ++ reg = <2>;
> ++
> ++ pmic_glink_ss2_con_sbu_in: endpoint {
> ++ remote-endpoint = <&retimer_ss2_con_sbu_out>;
> ++ };
> ++ };
> + };
> + };
> + };
> +@@ -311,6 +336,150 @@
> + regulator-boot-on;
> + };
> +
> ++ vreg_rtmr0_1p15: regulator-rtmr0-1p15 {
> ++ compatible = "regulator-fixed";
> ++
> ++ regulator-name = "VREG_RTMR0_1P15";
> ++ regulator-min-microvolt = <1150000>;
> ++ regulator-max-microvolt = <1150000>;
> ++
> ++ gpio = <&pmc8380_5_gpios 8 GPIO_ACTIVE_HIGH>;
> ++ enable-active-high;
> ++
> ++ pinctrl-0 = <&usb0_pwr_1p15_reg_en>;
> ++ pinctrl-names = "default";
> ++
> ++ regulator-boot-on;
> ++ };
> ++
> ++ vreg_rtmr0_1p8: regulator-rtmr0-1p8 {
> ++ compatible = "regulator-fixed";
> ++
> ++ regulator-name = "VREG_RTMR0_1P8";
> ++ regulator-min-microvolt = <1800000>;
> ++ regulator-max-microvolt = <1800000>;
> ++
> ++ gpio = <&pm8550ve_9_gpios 8 GPIO_ACTIVE_HIGH>;
> ++ enable-active-high;
> ++
> ++ pinctrl-0 = <&usb0_1p8_reg_en>;
> ++ pinctrl-names = "default";
> ++
> ++ regulator-boot-on;
> ++ };
> ++
> ++ vreg_rtmr0_3p3: regulator-rtmr0-3p3 {
> ++ compatible = "regulator-fixed";
> ++
> ++ regulator-name = "VREG_RTMR0_3P3";
> ++ regulator-min-microvolt = <3300000>;
> ++ regulator-max-microvolt = <3300000>;
> ++
> ++ gpio = <&pm8550_gpios 11 GPIO_ACTIVE_HIGH>;
> ++ enable-active-high;
> ++
> ++ pinctrl-0 = <&usb0_3p3_reg_en>;
> ++ pinctrl-names = "default";
> ++
> ++ regulator-boot-on;
> ++ };
> ++
> ++ vreg_rtmr1_1p15: regulator-rtmr1-1p15 {
> ++ compatible = "regulator-fixed";
> ++
> ++ regulator-name = "VREG_RTMR1_1P15";
> ++ regulator-min-microvolt = <1150000>;
> ++ regulator-max-microvolt = <1150000>;
> ++
> ++ gpio = <&tlmm 188 GPIO_ACTIVE_HIGH>;
> ++ enable-active-high;
> ++
> ++ pinctrl-0 = <&usb1_pwr_1p15_reg_en>;
> ++ pinctrl-names = "default";
> ++
> ++ regulator-boot-on;
> ++ };
> ++
> ++ vreg_rtmr1_1p8: regulator-rtmr1-1p8 {
> ++ compatible = "regulator-fixed";
> ++
> ++ regulator-name = "VREG_RTMR1_1P8";
> ++ regulator-min-microvolt = <1800000>;
> ++ regulator-max-microvolt = <1800000>;
> ++
> ++ gpio = <&tlmm 175 GPIO_ACTIVE_HIGH>;
> ++ enable-active-high;
> ++
> ++ pinctrl-0 = <&usb1_pwr_1p8_reg_en>;
> ++ pinctrl-names = "default";
> ++
> ++ regulator-boot-on;
> ++ };
> ++
> ++ vreg_rtmr1_3p3: regulator-rtmr1-3p3 {
> ++ compatible = "regulator-fixed";
> ++
> ++ regulator-name = "VREG_RTMR1_3P3";
> ++ regulator-min-microvolt = <3300000>;
> ++ regulator-max-microvolt = <3300000>;
> ++
> ++ gpio = <&tlmm 186 GPIO_ACTIVE_HIGH>;
> ++ enable-active-high;
> ++
> ++ pinctrl-0 = <&usb1_pwr_3p3_reg_en>;
> ++ pinctrl-names = "default";
> ++
> ++ regulator-boot-on;
> ++ };
> ++
> ++ vreg_rtmr2_1p15: regulator-rtmr2-1p15 {
> ++ compatible = "regulator-fixed";
> ++
> ++ regulator-name = "VREG_RTMR2_1P15";
> ++ regulator-min-microvolt = <1150000>;
> ++ regulator-max-microvolt = <1150000>;
> ++
> ++ gpio = <&tlmm 189 GPIO_ACTIVE_HIGH>;
> ++ enable-active-high;
> ++
> ++ pinctrl-0 = <&usb2_pwr_1p15_reg_en>;
> ++ pinctrl-names = "default";
> ++
> ++ regulator-boot-on;
> ++ };
> ++
> ++ vreg_rtmr2_1p8: regulator-rtmr2-1p8 {
> ++ compatible = "regulator-fixed";
> ++
> ++ regulator-name = "VREG_RTMR2_1P8";
> ++ regulator-min-microvolt = <1800000>;
> ++ regulator-max-microvolt = <1800000>;
> ++
> ++ gpio = <&tlmm 126 GPIO_ACTIVE_HIGH>;
> ++ enable-active-high;
> ++
> ++ pinctrl-0 = <&usb2_pwr_1p8_reg_en>;
> ++ pinctrl-names = "default";
> ++
> ++ regulator-boot-on;
> ++ };
> ++
> ++ vreg_rtmr2_3p3: regulator-rtmr2-3p3 {
> ++ compatible = "regulator-fixed";
> ++
> ++ regulator-name = "VREG_RTMR2_3P3";
> ++ regulator-min-microvolt = <3300000>;
> ++ regulator-max-microvolt = <3300000>;
> ++
> ++ gpio = <&tlmm 187 GPIO_ACTIVE_HIGH>;
> ++ enable-active-high;
> ++
> ++ pinctrl-0 = <&usb2_pwr_3p3_reg_en>;
> ++ pinctrl-names = "default";
> ++
> ++ regulator-boot-on;
> ++ };
> ++
> + vph_pwr: regulator-vph-pwr {
> + compatible = "regulator-fixed";
> +
> +@@ -322,6 +491,48 @@
> + regulator-boot-on;
> + };
> +
> ++ vreg_wcn_3p3: regulator-wcn-3p3 {
> ++ compatible = "regulator-fixed";
> ++
> ++ regulator-name = "VREG_WCN_3P3";
> ++ regulator-min-microvolt = <3300000>;
> ++ regulator-max-microvolt = <3300000>;
> ++
> ++ gpio = <&tlmm 214 GPIO_ACTIVE_HIGH>;
> ++ enable-active-high;
> ++
> ++ pinctrl-0 = <&wcn_sw_en>;
> ++ pinctrl-names = "default";
> ++
> ++ regulator-boot-on;
> ++ };
> ++
> ++ /*
> ++ * TODO: These two regulators are actually part of the removable M.2
> ++ * card and not the CRD mainboard. Need to describe this differently.
> ++ * Functionally it works correctly, because all we need to do is to
> ++ * turn on the actual 3.3V supply above.
> ++ */
> ++ 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_1p9: regulator-wcn-1p9 {
> ++ compatible = "regulator-fixed";
> ++
> ++ regulator-name = "VREG_WCN_1P9";
> ++ regulator-min-microvolt = <1900000>;
> ++ regulator-max-microvolt = <1900000>;
> ++
> ++ vin-supply = <&vreg_wcn_3p3>;
> ++ };
> ++
> + vreg_wwan: regulator-wwan {
> + compatible = "regulator-fixed";
> +
> +@@ -337,6 +548,65 @@
> +
> + regulator-boot-on;
> + };
> ++
> ++ wcn7850-pmu {
> ++ compatible = "qcom,wcn7850-pmu";
> ++
> ++ vdd-supply = <&vreg_wcn_0p95>;
> ++ vddio-supply = <&vreg_l15b_1p8>;
> ++ vddaon-supply = <&vreg_wcn_0p95>;
> ++ vdddig-supply = <&vreg_wcn_0p95>;
> ++ vddrfa1p2-supply = <&vreg_wcn_1p9>;
> ++ vddrfa1p8-supply = <&vreg_wcn_1p9>;
> ++
> ++ 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 {
> +@@ -735,6 +1005,178 @@
> + };
> + };
> +
> ++&i2c1 {
> ++ clock-frequency = <400000>;
> ++
> ++ status = "okay";
> ++
> ++ typec-mux@8 {
> ++ compatible = "parade,ps8830";
> ++ reg = <0x08>;
> ++
> ++ clocks = <&rpmhcc RPMH_RF_CLK5>;
> ++
> ++ vdd-supply = <&vreg_rtmr2_1p15>;
> ++ vdd33-supply = <&vreg_rtmr2_3p3>;
> ++ vdd33-cap-supply = <&vreg_rtmr2_3p3>;
> ++ vddar-supply = <&vreg_rtmr2_1p15>;
> ++ vddat-supply = <&vreg_rtmr2_1p15>;
> ++ vddio-supply = <&vreg_rtmr2_1p8>;
> ++
> ++ reset-gpios = <&tlmm 185 GPIO_ACTIVE_LOW>;
> ++
> ++ pinctrl-0 = <&rtmr2_default>;
> ++ pinctrl-names = "default";
> ++
> ++ orientation-switch;
> ++ retimer-switch;
> ++
> ++ ports {
> ++ #address-cells = <1>;
> ++ #size-cells = <0>;
> ++
> ++ port@0 {
> ++ reg = <0>;
> ++
> ++ retimer_ss2_ss_out: endpoint {
> ++ remote-endpoint = <&pmic_glink_ss2_ss_in>;
> ++ };
> ++ };
> ++
> ++ port@1 {
> ++ reg = <1>;
> ++
> ++ retimer_ss2_ss_in: endpoint {
> ++ remote-endpoint = <&usb_1_ss2_qmpphy_out>;
> ++ };
> ++ };
> ++
> ++ port@2 {
> ++ reg = <2>;
> ++
> ++ retimer_ss2_con_sbu_out: endpoint {
> ++ remote-endpoint = <&pmic_glink_ss2_con_sbu_in>;
> ++ };
> ++ };
> ++ };
> ++ };
> ++};
> ++
> ++&i2c3 {
> ++ clock-frequency = <400000>;
> ++
> ++ status = "okay";
> ++
> ++ typec-mux@8 {
> ++ compatible = "parade,ps8830";
> ++ reg = <0x08>;
> ++
> ++ clocks = <&rpmhcc RPMH_RF_CLK3>;
> ++
> ++ vdd-supply = <&vreg_rtmr0_1p15>;
> ++ vdd33-supply = <&vreg_rtmr0_3p3>;
> ++ vdd33-cap-supply = <&vreg_rtmr0_3p3>;
> ++ vddar-supply = <&vreg_rtmr0_1p15>;
> ++ vddat-supply = <&vreg_rtmr0_1p15>;
> ++ vddio-supply = <&vreg_rtmr0_1p8>;
> ++
> ++ reset-gpios = <&pm8550_gpios 10 GPIO_ACTIVE_LOW>;
> ++
> ++ pinctrl-0 = <&rtmr0_default>;
> ++ pinctrl-names = "default";
> ++
> ++ retimer-switch;
> ++ orientation-switch;
> ++
> ++ ports {
> ++ #address-cells = <1>;
> ++ #size-cells = <0>;
> ++
> ++ port@0 {
> ++ reg = <0>;
> ++
> ++ retimer_ss0_ss_out: endpoint {
> ++ remote-endpoint = <&pmic_glink_ss0_ss_in>;
> ++ };
> ++ };
> ++
> ++ port@1 {
> ++ reg = <1>;
> ++
> ++ retimer_ss0_ss_in: endpoint {
> ++ remote-endpoint = <&usb_1_ss0_qmpphy_out>;
> ++ };
> ++ };
> ++
> ++ port@2 {
> ++ reg = <2>;
> ++
> ++ retimer_ss0_con_sbu_out: endpoint {
> ++ remote-endpoint = <&pmic_glink_ss0_con_sbu_in>;
> ++ };
> ++ };
> ++ };
> ++ };
> ++};
> ++
> ++&i2c7 {
> ++ clock-frequency = <400000>;
> ++
> ++ status = "okay";
> ++
> ++ typec-mux@8 {
> ++ compatible = "parade,ps8830";
> ++ reg = <0x8>;
> ++
> ++ clocks = <&rpmhcc RPMH_RF_CLK4>;
> ++
> ++ vdd-supply = <&vreg_rtmr1_1p15>;
> ++ vdd33-supply = <&vreg_rtmr1_3p3>;
> ++ vdd33-cap-supply = <&vreg_rtmr1_3p3>;
> ++ vddar-supply = <&vreg_rtmr1_1p15>;
> ++ vddat-supply = <&vreg_rtmr1_1p15>;
> ++ vddio-supply = <&vreg_rtmr1_1p8>;
> ++
> ++ reset-gpios = <&tlmm 176 GPIO_ACTIVE_LOW>;
> ++
> ++ pinctrl-0 = <&rtmr1_default>;
> ++ pinctrl-names = "default";
> ++
> ++ retimer-switch;
> ++ orientation-switch;
> ++
> ++ ports {
> ++ #address-cells = <1>;
> ++ #size-cells = <0>;
> ++
> ++ port@0 {
> ++ reg = <0>;
> ++
> ++ retimer_ss1_ss_out: endpoint {
> ++ remote-endpoint = <&pmic_glink_ss1_ss_in>;
> ++ };
> ++ };
> ++
> ++ port@1 {
> ++ reg = <1>;
> ++
> ++ retimer_ss1_ss_in: endpoint {
> ++ remote-endpoint = <&usb_1_ss1_qmpphy_out>;
> ++ };
> ++ };
> ++
> ++ port@2 {
> ++ reg = <2>;
> ++
> ++ retimer_ss1_con_sbu_out: endpoint {
> ++ remote-endpoint = <&pmic_glink_ss1_con_sbu_in>;
> ++ };
> ++ };
> ++
> ++ };
> ++ };
> ++};
> ++
> + &i2c8 {
> + clock-frequency = <400000>;
> +
> +@@ -785,6 +1227,30 @@
> + status = "okay";
> + };
> +
> ++&mdss_dp0 {
> ++ status = "okay";
> ++};
> ++
> ++&mdss_dp0_out {
> ++ data-lanes = <0 1>;
> ++};
> ++
> ++&mdss_dp1 {
> ++ status = "okay";
> ++};
> ++
> ++&mdss_dp1_out {
> ++ data-lanes = <0 1>;
> ++};
> ++
> ++&mdss_dp2 {
> ++ status = "okay";
> ++};
> ++
> ++&mdss_dp2_out {
> ++ data-lanes = <0 1>;
> ++};
> ++
> + &mdss_dp3 {
> + compatible = "qcom,x1e80100-dp";
> + /delete-property/ #sound-dai-cells;
> +@@ -845,6 +1311,23 @@
> + status = "okay";
> + };
> +
> ++&pcie4_port0 {
> ++ 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 {
> + perst-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
> + wake-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
> +@@ -883,6 +1366,26 @@
> + status = "okay";
> + };
> +
> ++&pm8550_gpios {
> ++ rtmr0_default: rtmr0-reset-n-active-state {
> ++ pins = "gpio10";
> ++ function = "normal";
> ++ power-source = <1>; /* 1.8V */
> ++ bias-disable;
> ++ input-disable;
> ++ output-enable;
> ++ };
> ++
> ++ usb0_3p3_reg_en: usb0-3p3-reg-en-state {
> ++ pins = "gpio11";
> ++ function = "normal";
> ++ power-source = <1>; /* 1.8V */
> ++ bias-disable;
> ++ input-disable;
> ++ output-enable;
> ++ };
> ++};
> ++
> + &pm8550ve_8_gpios {
> + misc_3p3_reg_en: misc-3p3-reg-en-state {
> + pins = "gpio6";
> +@@ -896,6 +1399,17 @@
> + };
> + };
> +
> ++&pm8550ve_9_gpios {
> ++ usb0_1p8_reg_en: usb0-1p8-reg-en-state {
> ++ pins = "gpio8";
> ++ function = "normal";
> ++ power-source = <1>; /* 1.8V */
> ++ bias-disable;
> ++ input-disable;
> ++ output-enable;
> ++ };
> ++};
> ++
> + &pmc8380_3_gpios {
> + edp_bl_en: edp-bl-en-state {
> + pins = "gpio4";
> +@@ -906,6 +1420,17 @@
> + };
> + };
> +
> ++&pmc8380_5_gpios {
> ++ usb0_pwr_1p15_reg_en: usb0-pwr-1p15-reg-en-state {
> ++ pins = "gpio8";
> ++ function = "normal";
> ++ power-source = <1>; /* 1.8V */
> ++ bias-disable;
> ++ input-disable;
> ++ output-enable;
> ++ };
> ++};
> ++
> + &qupv3_0 {
> + status = "okay";
> + };
> +@@ -1135,6 +1660,20 @@
> + };
> + };
> +
> ++ rtmr1_default: rtmr1-reset-n-active-state {
> ++ pins = "gpio176";
> ++ function = "gpio";
> ++ drive-strength = <2>;
> ++ bias-disable;
> ++ };
> ++
> ++ rtmr2_default: rtmr2-reset-n-active-state {
> ++ pins = "gpio185";
> ++ function = "gpio";
> ++ drive-strength = <2>;
> ++ bias-disable;
> ++ };
> ++
> + tpad_default: tpad-default-state {
> + pins = "gpio3";
> + function = "gpio";
> +@@ -1156,6 +1695,48 @@
> + };
> + };
> +
> ++ usb1_pwr_1p15_reg_en: usb1-pwr-1p15-reg-en-state {
> ++ pins = "gpio188";
> ++ function = "gpio";
> ++ drive-strength = <2>;
> ++ bias-disable;
> ++ };
> ++
> ++ usb1_pwr_1p8_reg_en: usb1-pwr-1p8-reg-en-state {
> ++ pins = "gpio175";
> ++ function = "gpio";
> ++ drive-strength = <2>;
> ++ bias-disable;
> ++ };
> ++
> ++ usb1_pwr_3p3_reg_en: usb1-pwr-3p3-reg-en-state {
> ++ pins = "gpio186";
> ++ function = "gpio";
> ++ drive-strength = <2>;
> ++ bias-disable;
> ++ };
> ++
> ++ usb2_pwr_1p15_reg_en: usb2-pwr-1p15-reg-en-state {
> ++ pins = "gpio189";
> ++ function = "gpio";
> ++ drive-strength = <2>;
> ++ bias-disable;
> ++ };
> ++
> ++ usb2_pwr_1p8_reg_en: usb2-pwr-1p8-reg-en-state {
> ++ pins = "gpio126";
> ++ function = "gpio";
> ++ drive-strength = <2>;
> ++ bias-disable;
> ++ };
> ++
> ++ usb2_pwr_3p3_reg_en: usb2-pwr-3p3-reg-en-state {
> ++ pins = "gpio187";
> ++ function = "gpio";
> ++ drive-strength = <2>;
> ++ bias-disable;
> ++ };
> ++
> + wcd_default: wcd-reset-n-active-state {
> + pins = "gpio191";
> + function = "gpio";
> +@@ -1164,6 +1745,20 @@
> + output-low;
> + };
> +
> ++ wcn_sw_en: wcn-sw-en-state {
> ++ pins = "gpio214";
> ++ 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;
> ++ };
> ++
> + wwan_sw_en: wwan-sw-en-state {
> + pins = "gpio221";
> + function = "gpio";
> +@@ -1172,6 +1767,23 @@
> + };
> + };
> +
> ++&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>;
> ++ };
> ++};
> ++
> + &uart21 {
> + compatible = "qcom,geni-debug-uart";
> + status = "okay";
> +@@ -1187,7 +1799,7 @@
> + };
> +
> + &usb_1_ss0_qmpphy {
> +- vdda-phy-supply = <&vreg_l3e_1p2>;
> ++ vdda-phy-supply = <&vreg_l2j_1p2>;
> + vdda-pll-supply = <&vreg_l1j_0p8>;
> +
> + status = "okay";
> +@@ -1206,7 +1818,7 @@
> + };
> +
> + &usb_1_ss0_qmpphy_out {
> +- remote-endpoint = <&pmic_glink_ss0_ss_in>;
> ++ remote-endpoint = <&retimer_ss0_ss_in>;
> + };
> +
> + &usb_1_ss1_hsphy {
> +@@ -1219,7 +1831,7 @@
> + };
> +
> + &usb_1_ss1_qmpphy {
> +- vdda-phy-supply = <&vreg_l3e_1p2>;
> ++ vdda-phy-supply = <&vreg_l2j_1p2>;
> + vdda-pll-supply = <&vreg_l2d_0p9>;
> +
> + status = "okay";
> +@@ -1238,7 +1850,7 @@
> + };
> +
> + &usb_1_ss1_qmpphy_out {
> +- remote-endpoint = <&pmic_glink_ss1_ss_in>;
> ++ remote-endpoint = <&retimer_ss1_ss_in>;
> + };
> +
> + &usb_1_ss2_hsphy {
> +@@ -1251,7 +1863,7 @@
> + };
> +
> + &usb_1_ss2_qmpphy {
> +- vdda-phy-supply = <&vreg_l3e_1p2>;
> ++ vdda-phy-supply = <&vreg_l2j_1p2>;
> + vdda-pll-supply = <&vreg_l2d_0p9>;
> +
> + status = "okay";
> +@@ -1270,5 +1882,5 @@
> + };
> +
> + &usb_1_ss2_qmpphy_out {
> +- remote-endpoint = <&pmic_glink_ss2_ss_in>;
> ++ remote-endpoint = <&retimer_ss2_ss_in>;
> + };
> Index: sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-dell-xps13-9345_dts
> ===================================================================
> RCS file: sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-dell-xps13-9345_dts
> diff -N sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-dell-xps13-9345_dts
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-dell-xps13-9345_dts 25 Jan 2025 12:51:42 -0000
> @@ -0,0 +1,21 @@
> +Index: src/arm64/qcom/x1e80100-dell-xps13-9345.dts
> +--- src/arm64/qcom/x1e80100-dell-xps13-9345.dts.orig
> ++++ src/arm64/qcom/x1e80100-dell-xps13-9345.dts
> +@@ -820,7 +820,7 @@
> + };
> +
> + &usb_1_ss0_qmpphy {
> +- vdda-phy-supply = <&vreg_l3e_1p2>;
> ++ vdda-phy-supply = <&vreg_l2j_1p2>;
> + vdda-pll-supply = <&vreg_l1j_0p9>;
> +
> + status = "okay";
> +@@ -852,7 +852,7 @@
> + };
> +
> + &usb_1_ss1_qmpphy {
> +- vdda-phy-supply = <&vreg_l3e_1p2>;
> ++ vdda-phy-supply = <&vreg_l2j_1p2>;
> + vdda-pll-supply = <&vreg_l2d_0p9>;
> +
> + status = "okay";
> Index: sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-honor-magicbook-art-14_dts
> ===================================================================
> RCS file: sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-honor-magicbook-art-14_dts
> diff -N sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-honor-magicbook-art-14_dts
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-honor-magicbook-art-14_dts 25 Jan 2025 12:51:42 -0000
> @@ -0,0 +1,1212 @@
> +Index: src/arm64/qcom/x1e80100-honor-magicbook-art-14.dts
> +--- src/arm64/qcom/x1e80100-honor-magicbook-art-14.dts.orig
> ++++ src/arm64/qcom/x1e80100-honor-magicbook-art-14.dts
> +@@ -0,0 +1,1208 @@
> ++// SPDX-License-Identifier: BSD-3-Clause
> ++/*
> ++ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
> ++ * Copyright (c) 2025 Kirill A. Korinsky <kirill@korins.ky>
> ++ */
> ++
> ++/dts-v1/;
> ++
> ++#include <dt-bindings/gpio/gpio.h>
> ++#include <dt-bindings/input/gpio-keys.h>
> ++#include <dt-bindings/input/input.h>
> ++#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
> ++#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
> ++
> ++#include "x1e80100.dtsi"
> ++#include "x1e80100-pmics.dtsi"
> ++
> ++/ {
> ++ model = "HONOR MagicBook Art 14 Snapdragon";
> ++ compatible = "honor,magicbook-art-14-snapdragon", "qcom,x1e80100";
> ++ chassis-type = "laptop";
> ++
> ++ aliases {
> ++ serial0 = &uart21;
> ++ };
> ++
> ++ wcd938x: audio-codec {
> ++ compatible = "qcom,wcd9385-codec";
> ++
> ++ pinctrl-names = "default";
> ++ pinctrl-0 = <&wcd_default>;
> ++
> ++ qcom,micbias1-microvolt = <1800000>;
> ++ qcom,micbias2-microvolt = <1800000>;
> ++ qcom,micbias3-microvolt = <1800000>;
> ++ qcom,micbias4-microvolt = <1800000>;
> ++ qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;
> ++ qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
> ++ qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
> ++ qcom,rx-device = <&wcd_rx>;
> ++ qcom,tx-device = <&wcd_tx>;
> ++
> ++ reset-gpios = <&tlmm 191 GPIO_ACTIVE_LOW>;
> ++
> ++ vdd-buck-supply = <&vreg_l15b_1p8>;
> ++ vdd-rxtx-supply = <&vreg_l15b_1p8>;
> ++ vdd-io-supply = <&vreg_l15b_1p8>;
> ++ vdd-mic-bias-supply = <&vreg_bob1>;
> ++
> ++ #sound-dai-cells = <1>;
> ++ };
> ++
> ++ gpio-keys {
> ++ compatible = "gpio-keys";
> ++
> ++ pinctrl-0 = <&hall_int_n_default>;
> ++ pinctrl-names = "default";
> ++
> ++ switch-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,x1e80100-pmic-glink",
> ++ "qcom,sm8550-pmic-glink",
> ++ "qcom,pmic-glink";
> ++ #address-cells = <1>;
> ++ #size-cells = <0>;
> ++ orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>,
> ++ <&tlmm 123 GPIO_ACTIVE_HIGH>,
> ++ <&tlmm 125 GPIO_ACTIVE_HIGH>;
> ++
> ++ /* Left-side rear 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_ss0_hs_in: endpoint {
> ++ remote-endpoint = <&usb_1_ss0_dwc3_hs>;
> ++ };
> ++ };
> ++
> ++ port@1 {
> ++ reg = <1>;
> ++
> ++ pmic_glink_ss0_ss_in: endpoint {
> ++ remote-endpoint = <&usb_1_ss0_qmpphy_out>;
> ++ };
> ++ };
> ++ };
> ++ };
> ++
> ++ /* Left-side front 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_ss1_hs_in: endpoint {
> ++ remote-endpoint = <&usb_1_ss1_dwc3_hs>;
> ++ };
> ++ };
> ++
> ++ port@1 {
> ++ reg = <1>;
> ++
> ++ pmic_glink_ss1_ss_in: endpoint {
> ++ remote-endpoint = <&usb_1_ss1_qmpphy_out>;
> ++ };
> ++ };
> ++ };
> ++ };
> ++
> ++ /* Magnetic camera */
> ++ connector@2 {
> ++ compatible = "usb-c-connector";
> ++ reg = <2>;
> ++ power-role = "dual";
> ++ data-role = "dual";
> ++
> ++ ports {
> ++ #address-cells = <1>;
> ++ #size-cells = <0>;
> ++
> ++ port@0 {
> ++ reg = <0>;
> ++
> ++ pmic_glink_usb_2_hs_in: endpoint {
> ++ remote-endpoint = <&usb_2_dwc3_hs>;
> ++ };
> ++ };
> ++ };
> ++ };
> ++
> ++ };
> ++
> ++ reserved-memory {
> ++ linux,cma {
> ++ compatible = "shared-dma-pool";
> ++ size = <0x0 0x8000000>;
> ++ reusable;
> ++ linux,cma-default;
> ++ };
> ++ };
> ++
> ++ sound {
> ++ compatible = "qcom,x1e80100-sndcard";
> ++ model = "X1E80100-CRD";
> ++ audio-routing = "WooferLeft IN", "WSA WSA_SPK1 OUT",
> ++ "TweeterLeft IN", "WSA WSA_SPK2 OUT",
> ++ "WooferRight IN", "WSA2 WSA_SPK2 OUT",
> ++ "TweeterRight IN", "WSA2 WSA_SPK2 OUT",
> ++ "IN1_HPHL", "HPHL_OUT",
> ++ "IN2_HPHR", "HPHR_OUT",
> ++ "AMIC2", "MIC BIAS2",
> ++ "VA DMIC0", "MIC BIAS3",
> ++ "VA DMIC1", "MIC BIAS3",
> ++ "VA DMIC2", "MIC BIAS1",
> ++ "VA DMIC3", "MIC BIAS1",
> ++ "VA DMIC0", "VA MIC BIAS3",
> ++ "VA DMIC1", "VA MIC BIAS3",
> ++ "VA DMIC2", "VA MIC BIAS1",
> ++ "VA DMIC3", "VA MIC BIAS1",
> ++ "TX SWR_INPUT1", "ADC2_OUTPUT";
> ++
> ++ wcd-playback-dai-link {
> ++ link-name = "WCD Playback";
> ++
> ++ cpu {
> ++ sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
> ++ };
> ++
> ++ codec {
> ++ sound-dai = <&wcd938x 0>, <&swr1 0>, <&lpass_rxmacro 0>;
> ++ };
> ++
> ++ platform {
> ++ sound-dai = <&q6apm>;
> ++ };
> ++ };
> ++
> ++ wcd-capture-dai-link {
> ++ link-name = "WCD Capture";
> ++
> ++ cpu {
> ++ sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>;
> ++ };
> ++
> ++ codec {
> ++ sound-dai = <&wcd938x 1>, <&swr2 1>, <&lpass_txmacro 0>;
> ++ };
> ++
> ++ platform {
> ++ sound-dai = <&q6apm>;
> ++ };
> ++ };
> ++
> ++ wsa-dai-link {
> ++ link-name = "WSA Playback";
> ++
> ++ cpu {
> ++ sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
> ++ };
> ++
> ++ codec {
> ++ sound-dai = <&left_woofer>, <&left_tweeter>,
> ++ <&swr0 0>, <&lpass_wsamacro 0>,
> ++ <&right_woofer>, <&right_tweeter>,
> ++ <&swr3 0>, <&lpass_wsa2macro 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>;
> ++ };
> ++ };
> ++ };
> ++
> ++ 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 = <&pm8550ve_8_gpios 6 GPIO_ACTIVE_HIGH>;
> ++ enable-active-high;
> ++
> ++ pinctrl-names = "default";
> ++ pinctrl-0 = <&misc_3p3_reg_en>;
> ++
> ++ regulator-boot-on;
> ++ regulator-always-on;
> ++ };
> ++
> ++ vph_pwr: regulator-vph-pwr {
> ++ compatible = "regulator-fixed";
> ++
> ++ regulator-name = "vph_pwr";
> ++ regulator-min-microvolt = <3700000>;
> ++ regulator-max-microvolt = <3700000>;
> ++
> ++ regulator-always-on;
> ++ regulator-boot-on;
> ++ };
> ++};
> ++
> ++&apps_rsc {
> ++ regulators-0 {
> ++ compatible = "qcom,pm8550-rpmh-regulators";
> ++ qcom,pmic-id = "b";
> ++
> ++ vdd-bob1-supply = <&vph_pwr>;
> ++ vdd-bob2-supply = <&vph_pwr>;
> ++ vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>;
> ++ vdd-l2-l13-l14-supply = <&vreg_bob1>;
> ++ vdd-l5-l16-supply = <&vreg_bob1>;
> ++ vdd-l6-l7-supply = <&vreg_bob2>;
> ++ vdd-l8-l9-supply = <&vreg_bob1>;
> ++ vdd-l12-supply = <&vreg_s5j_1p2>;
> ++ vdd-l15-supply = <&vreg_s4c_1p8>;
> ++ vdd-l17-supply = <&vreg_bob2>;
> ++
> ++ vreg_bob1: bob1 {
> ++ regulator-name = "vreg_bob1";
> ++ regulator-min-microvolt = <3008000>;
> ++ regulator-max-microvolt = <3960000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_bob2: bob2 {
> ++ regulator-name = "vreg_bob2";
> ++ regulator-min-microvolt = <2504000>;
> ++ regulator-max-microvolt = <3008000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l1b_1p8: ldo1 {
> ++ regulator-name = "vreg_l1b_1p8";
> ++ regulator-min-microvolt = <1800000>;
> ++ regulator-max-microvolt = <1800000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l2b_3p0: ldo2 {
> ++ regulator-name = "vreg_l2b_3p0";
> ++ regulator-min-microvolt = <3072000>;
> ++ regulator-max-microvolt = <3100000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l4b_1p8: ldo4 {
> ++ regulator-name = "vreg_l4b_1p8";
> ++ regulator-min-microvolt = <1800000>;
> ++ regulator-max-microvolt = <1800000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l5b_3p0: ldo5 {
> ++ regulator-name = "vreg_l5b_3p0";
> ++ regulator-min-microvolt = <3000000>;
> ++ regulator-max-microvolt = <3000000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l6b_1p8: ldo6 {
> ++ regulator-name = "vreg_l6b_1p8";
> ++ regulator-min-microvolt = <1800000>;
> ++ regulator-max-microvolt = <2960000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l7b_2p8: ldo7 {
> ++ regulator-name = "vreg_l7b_2p8";
> ++ regulator-min-microvolt = <2800000>;
> ++ regulator-max-microvolt = <2800000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l8b_3p0: ldo8 {
> ++ regulator-name = "vreg_l8b_3p0";
> ++ regulator-min-microvolt = <3072000>;
> ++ regulator-max-microvolt = <3072000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l9b_2p9: ldo9 {
> ++ regulator-name = "vreg_l9b_2p9";
> ++ regulator-min-microvolt = <2960000>;
> ++ regulator-max-microvolt = <2960000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l10b_1p8: ldo10 {
> ++ regulator-name = "vreg_l10b_1p8";
> ++ regulator-min-microvolt = <1800000>;
> ++ regulator-max-microvolt = <1800000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l12b_1p2: ldo12 {
> ++ regulator-name = "vreg_l12b_1p2";
> ++ regulator-min-microvolt = <1200000>;
> ++ regulator-max-microvolt = <1200000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l13b_3p0: ldo13 {
> ++ regulator-name = "vreg_l13b_3p0";
> ++ regulator-min-microvolt = <3072000>;
> ++ regulator-max-microvolt = <3100000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l14b_3p0: ldo14 {
> ++ regulator-name = "vreg_l14b_3p0";
> ++ regulator-min-microvolt = <3072000>;
> ++ regulator-max-microvolt = <3072000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l15b_1p8: ldo15 {
> ++ regulator-name = "vreg_l15b_1p8";
> ++ regulator-min-microvolt = <1800000>;
> ++ regulator-max-microvolt = <1800000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l16b_2p9: ldo16 {
> ++ regulator-name = "vreg_l16b_2p9";
> ++ regulator-min-microvolt = <2912000>;
> ++ regulator-max-microvolt = <2912000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l17b_2p5: ldo17 {
> ++ regulator-name = "vreg_l17b_2p5";
> ++ regulator-min-microvolt = <2504000>;
> ++ regulator-max-microvolt = <2504000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++ };
> ++
> ++ regulators-1 {
> ++ compatible = "qcom,pm8550ve-rpmh-regulators";
> ++ qcom,pmic-id = "c";
> ++
> ++ vdd-l1-supply = <&vreg_s5j_1p2>;
> ++ vdd-l2-supply = <&vreg_s1f_0p7>;
> ++ vdd-l3-supply = <&vreg_s1f_0p7>;
> ++ vdd-s4-supply = <&vph_pwr>;
> ++
> ++ vreg_s4c_1p8: smps4 {
> ++ regulator-name = "vreg_s4c_1p8";
> ++ regulator-min-microvolt = <1856000>;
> ++ regulator-max-microvolt = <2000000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l1c_1p2: ldo1 {
> ++ regulator-name = "vreg_l1c_1p2";
> ++ regulator-min-microvolt = <1200000>;
> ++ regulator-max-microvolt = <1200000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l2c_0p8: ldo2 {
> ++ regulator-name = "vreg_l2c_0p8";
> ++ regulator-min-microvolt = <880000>;
> ++ regulator-max-microvolt = <920000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l3c_0p8: ldo3 {
> ++ regulator-name = "vreg_l3c_0p8";
> ++ regulator-min-microvolt = <880000>;
> ++ regulator-max-microvolt = <920000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++ };
> ++
> ++ regulators-2 {
> ++ compatible = "qcom,pmc8380-rpmh-regulators";
> ++ qcom,pmic-id = "d";
> ++
> ++ vdd-l1-supply = <&vreg_s1f_0p7>;
> ++ vdd-l2-supply = <&vreg_s1f_0p7>;
> ++ vdd-l3-supply = <&vreg_s4c_1p8>;
> ++ vdd-s1-supply = <&vph_pwr>;
> ++
> ++ vreg_l1d_0p8: ldo1 {
> ++ regulator-name = "vreg_l1d_0p8";
> ++ regulator-min-microvolt = <880000>;
> ++ regulator-max-microvolt = <920000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l2d_0p9: ldo2 {
> ++ regulator-name = "vreg_l2d_0p9";
> ++ regulator-min-microvolt = <912000>;
> ++ regulator-max-microvolt = <920000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l3d_1p8: ldo3 {
> ++ regulator-name = "vreg_l3d_1p8";
> ++ regulator-min-microvolt = <1800000>;
> ++ regulator-max-microvolt = <1800000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++ };
> ++
> ++ regulators-3 {
> ++ compatible = "qcom,pmc8380-rpmh-regulators";
> ++ qcom,pmic-id = "e";
> ++
> ++ vdd-l2-supply = <&vreg_s1f_0p7>;
> ++ vdd-l3-supply = <&vreg_s5j_1p2>;
> ++
> ++ vreg_l2e_0p8: ldo2 {
> ++ regulator-name = "vreg_l2e_0p8";
> ++ regulator-min-microvolt = <880000>;
> ++ regulator-max-microvolt = <920000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l3e_1p2: ldo3 {
> ++ regulator-name = "vreg_l3e_1p2";
> ++ regulator-min-microvolt = <1200000>;
> ++ regulator-max-microvolt = <1200000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++ };
> ++
> ++ regulators-4 {
> ++ compatible = "qcom,pmc8380-rpmh-regulators";
> ++ qcom,pmic-id = "f";
> ++
> ++ vdd-l1-supply = <&vreg_s5j_1p2>;
> ++ vdd-l2-supply = <&vreg_s5j_1p2>;
> ++ vdd-l3-supply = <&vreg_s5j_1p2>;
> ++ vdd-s1-supply = <&vph_pwr>;
> ++
> ++ vreg_s1f_0p7: smps1 {
> ++ regulator-name = "vreg_s1f_0p7";
> ++ regulator-min-microvolt = <700000>;
> ++ regulator-max-microvolt = <1100000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l1f_1p0: ldo1 {
> ++ regulator-name = "vreg_l1f_1p0";
> ++ regulator-min-microvolt = <1024000>;
> ++ regulator-max-microvolt = <1024000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l2f_1p0: ldo2 {
> ++ regulator-name = "vreg_l2f_1p0";
> ++ regulator-min-microvolt = <1024000>;
> ++ regulator-max-microvolt = <1024000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l3f_1p0: ldo3 {
> ++ regulator-name = "vreg_l3f_1p0";
> ++ regulator-min-microvolt = <1024000>;
> ++ regulator-max-microvolt = <1024000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++ };
> ++
> ++ regulators-6 {
> ++ compatible = "qcom,pm8550ve-rpmh-regulators";
> ++ qcom,pmic-id = "i";
> ++
> ++ vdd-l1-supply = <&vreg_s4c_1p8>;
> ++ vdd-l2-supply = <&vreg_s5j_1p2>;
> ++ vdd-l3-supply = <&vreg_s1f_0p7>;
> ++ vdd-s1-supply = <&vph_pwr>;
> ++ vdd-s2-supply = <&vph_pwr>;
> ++
> ++ vreg_s1i_0p9: smps1 {
> ++ regulator-name = "vreg_s1i_0p9";
> ++ regulator-min-microvolt = <900000>;
> ++ regulator-max-microvolt = <920000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_s2i_1p0: smps2 {
> ++ regulator-name = "vreg_s2i_1p0";
> ++ regulator-min-microvolt = <1000000>;
> ++ regulator-max-microvolt = <1100000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l1i_1p8: ldo1 {
> ++ regulator-name = "vreg_l1i_1p8";
> ++ regulator-min-microvolt = <1800000>;
> ++ regulator-max-microvolt = <1800000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l2i_1p2: ldo2 {
> ++ regulator-name = "vreg_l2i_1p2";
> ++ regulator-min-microvolt = <1200000>;
> ++ regulator-max-microvolt = <1200000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l3i_0p8: ldo3 {
> ++ regulator-name = "vreg_l3i_0p8";
> ++ regulator-min-microvolt = <880000>;
> ++ regulator-max-microvolt = <920000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++ };
> ++
> ++ regulators-7 {
> ++ compatible = "qcom,pm8550ve-rpmh-regulators";
> ++ qcom,pmic-id = "j";
> ++
> ++ vdd-l1-supply = <&vreg_s1f_0p7>;
> ++ vdd-l2-supply = <&vreg_s5j_1p2>;
> ++ vdd-l3-supply = <&vreg_s1f_0p7>;
> ++ vdd-s5-supply = <&vph_pwr>;
> ++
> ++ vreg_s5j_1p2: smps5 {
> ++ regulator-name = "vreg_s5j_1p2";
> ++ regulator-min-microvolt = <1256000>;
> ++ regulator-max-microvolt = <1304000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l1j_0p8: ldo1 {
> ++ regulator-name = "vreg_l1j_0p8";
> ++ regulator-min-microvolt = <880000>;
> ++ regulator-max-microvolt = <920000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l2j_1p2: ldo2 {
> ++ regulator-name = "vreg_l2j_1p2";
> ++ regulator-min-microvolt = <1200000>;
> ++ regulator-max-microvolt = <1200000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++
> ++ vreg_l3j_0p8: ldo3 {
> ++ regulator-name = "vreg_l3j_0p8";
> ++ regulator-min-microvolt = <880000>;
> ++ regulator-max-microvolt = <920000>;
> ++ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> ++ };
> ++ };
> ++};
> ++
> ++&gpu {
> ++ status = "okay";
> ++
> ++ zap-shader {
> ++ firmware-name = "qcom/x1e80100/HONOR/MRO-XXX/qcdxkmsuc8380.mbn";
> ++ };
> ++};
> ++
> ++&i2c1 {
> ++ clock-frequency = <400000>;
> ++
> ++ status = "okay";
> ++
> ++ touchpad@5d {
> ++ compatible = "hid-over-i2c";
> ++ reg = <0x5d>;
> ++
> ++ hid-descr-addr = <0x1>;
> ++ interrupts-extended = <&tlmm 24 IRQ_TYPE_LEVEL_LOW>;
> ++
> ++ vdd-supply = <&vreg_misc_3p3>;
> ++ vddl-supply = <&vreg_l12b_1p2>;
> ++
> ++ pinctrl-0 = <&tpad_default>;
> ++ pinctrl-names = "default";
> ++
> ++ wakeup-source;
> ++ };
> ++};
> ++
> ++&i2c5 {
> ++ clock-frequency = <400000>;
> ++
> ++ status = "okay";
> ++
> ++ eusb5_repeater: redriver@43 {
> ++ compatible = "nxp,ptn3222";
> ++ reg = <0x43>;
> ++ #phy-cells = <0>;
> ++
> ++ vdd3v3-supply = <&vreg_l13b_3p0>;
> ++ vdd1v8-supply = <&vreg_l4b_1p8>;
> ++
> ++ reset-gpios = <&tlmm 7 GPIO_ACTIVE_LOW>;
> ++
> ++ pinctrl-0 = <&eusb5_reset_n>;
> ++ pinctrl-names = "default";
> ++ };
> ++
> ++ eusb6_repeater: redriver@4f {
> ++ compatible = "nxp,ptn3222";
> ++ reg = <0x4f>;
> ++ #phy-cells = <0>;
> ++
> ++ vdd3v3-supply = <&vreg_l13b_3p0>;
> ++ vdd1v8-supply = <&vreg_l4b_1p8>;
> ++
> ++ reset-gpios = <&tlmm 184 GPIO_ACTIVE_LOW>;
> ++
> ++ pinctrl-0 = <&eusb6_reset_n>;
> ++ pinctrl-names = "default";
> ++ };
> ++};
> ++
> ++&i2c8 {
> ++ clock-frequency = <400000>;
> ++
> ++ status = "okay";
> ++
> ++ touchscreen@38 {
> ++ compatible = "hid-over-i2c";
> ++ reg = <0x38>;
> ++
> ++ hid-descr-addr = <0x1>;
> ++ interrupts-extended = <&tlmm 51 IRQ_TYPE_LEVEL_LOW>;
> ++
> ++ vdd-supply = <&vreg_misc_3p3>;
> ++ /* Lower power supply is not enoug to work. */
> ++ // vddl-supply = <&vreg_l15b_1p8>;
> ++
> ++ pinctrl-0 = <&ts0_default>;
> ++ pinctrl-names = "default";
> ++ };
> ++};
> ++
> ++&i2c9 {
> ++ clock-frequency = <400000>;
> ++
> ++ status = "okay";
> ++
> ++ 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_l12b_1p2>;
> ++
> ++ pinctrl-0 = <&kybd_default>;
> ++ pinctrl-names = "default";
> ++
> ++ wakeup-source;
> ++ };
> ++};
> ++
> ++&lpass_tlmm {
> ++ spkr_01_sd_n_active: spkr-01-sd-n-active-state {
> ++ pins = "gpio12";
> ++ function = "gpio";
> ++ drive-strength = <16>;
> ++ bias-disable;
> ++ output-low;
> ++ };
> ++
> ++ spkr_23_sd_n_active: spkr-23-sd-n-active-state {
> ++ pins = "gpio13";
> ++ function = "gpio";
> ++ drive-strength = <16>;
> ++ bias-disable;
> ++ output-low;
> ++ };
> ++};
> ++
> ++&lpass_vamacro {
> ++ pinctrl-0 = <&dmic01_default>, <&dmic23_default>;
> ++ pinctrl-names = "default";
> ++
> ++ vdd-micb-supply = <&vreg_l1b_1p8>;
> ++ qcom,dmic-sample-rate = <4800000>;
> ++};
> ++
> ++&mdss {
> ++ status = "okay";
> ++};
> ++
> ++&mdss_dp3 {
> ++ compatible = "qcom,x1e80100-dp";
> ++ /delete-property/ #sound-dai-cells;
> ++
> ++ status = "okay";
> ++
> ++ aux-bus {
> ++ panel {
> ++ compatible = "samsung,atna45af01", "samsung,atna33xc20";
> ++ enable-gpios = <&pmc8380_3_gpios 4 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>;
> ++ };
> ++ };
> ++ };
> ++ };
> ++
> ++ ports {
> ++ port@1 {
> ++ reg = <1>;
> ++ mdss_dp3_out: endpoint {
> ++ 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_l3j_0p8>;
> ++ vdda-pll-supply = <&vreg_l2j_1p2>;
> ++
> ++ status = "okay";
> ++};
> ++
> ++&pcie4 {
> ++ perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
> ++ wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
> ++
> ++ pinctrl-0 = <&pcie4_default>;
> ++ pinctrl-names = "default";
> ++
> ++ status = "okay";
> ++};
> ++
> ++&pcie4_phy {
> ++ vdda-phy-supply = <&vreg_l3i_0p8>;
> ++ vdda-pll-supply = <&vreg_l3e_1p2>;
> ++
> ++ status = "okay";
> ++};
> ++
> ++&pm8550ve_8_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>;
> ++ };
> ++};
> ++
> ++&pmc8380_3_gpios {
> ++ edp_bl_en: edp-bl-en-state {
> ++ pins = "gpio4";
> ++ function = "normal";
> ++ power-source = <1>; /* 1.8V */
> ++ input-disable;
> ++ output-enable;
> ++ };
> ++};
> ++
> ++&qupv3_0 {
> ++ status = "okay";
> ++};
> ++
> ++&qupv3_1 {
> ++ status = "okay";
> ++};
> ++
> ++&qupv3_2 {
> ++ status = "okay";
> ++};
> ++
> ++&remoteproc_adsp {
> ++ firmware-name = "qcom/x1e80100/HONOR/MRO-XXX/qcadsp8380.mbn",
> ++ "qcom/x1e80100/HONOR/MRO-XXX/adsp_dtbs.elf";
> ++
> ++ status = "okay";
> ++};
> ++
> ++&remoteproc_cdsp {
> ++ firmware-name = "qcom/x1e80100/HONOR/MRO-XXX/qccdsp8380.mbn",
> ++ "qcom/x1e80100/HONOR/MRO-XXX/cdsp_dtbs.elf";
> ++
> ++ status = "okay";
> ++};
> ++
> ++&smb2360_0_eusb2_repeater {
> ++ vdd18-supply = <&vreg_l3d_1p8>;
> ++ vdd3-supply = <&vreg_l2b_3p0>;
> ++};
> ++
> ++&smb2360_1_eusb2_repeater {
> ++ vdd18-supply = <&vreg_l3d_1p8>;
> ++ vdd3-supply = <&vreg_l14b_3p0>;
> ++};
> ++
> ++&smb2360_2 {
> ++ status = "okay";
> ++};
> ++
> ++&smb2360_2_eusb2_repeater {
> ++ vdd18-supply = <&vreg_l3d_1p8>;
> ++ vdd3-supply = <&vreg_l8b_3p0>;
> ++};
> ++
> ++&swr0 {
> ++ status = "okay";
> ++
> ++ pinctrl-0 = <&wsa_swr_active>, <&spkr_01_sd_n_active>;
> ++ pinctrl-names = "default";
> ++
> ++ /* 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_1p8>;
> ++ vdd-io-supply = <&vreg_l12b_1p2>;
> ++ qcom,port-mapping = <1 2 3 7 10 13>;
> ++ };
> ++
> ++ /* 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_1p8>;
> ++ vdd-io-supply = <&vreg_l12b_1p2>;
> ++ qcom,port-mapping = <4 5 6 7 11 13>;
> ++ };
> ++};
> ++
> ++&swr1 {
> ++ status = "okay";
> ++
> ++ /* WCD9385 RX */
> ++ wcd_rx: codec@0,4 {
> ++ compatible = "sdw20217010d00";
> ++ reg = <0 4>;
> ++ qcom,rx-port-mapping = <1 2 3 4 5>;
> ++ };
> ++};
> ++
> ++&swr2 {
> ++ status = "okay";
> ++
> ++ /* WCD9385 TX */
> ++ wcd_tx: codec@0,3 {
> ++ compatible = "sdw20217010d00";
> ++ reg = <0 3>;
> ++ qcom,tx-port-mapping = <2 2 3 4>;
> ++ };
> ++};
> ++
> ++&swr3 {
> ++ status = "okay";
> ++
> ++ pinctrl-0 = <&wsa2_swr_active>, <&spkr_23_sd_n_active>;
> ++ pinctrl-names = "default";
> ++
> ++ /* 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_1p8>;
> ++ vdd-io-supply = <&vreg_l12b_1p2>;
> ++ qcom,port-mapping = <1 2 3 7 10 13>;
> ++ };
> ++
> ++ /* 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_1p8>;
> ++ vdd-io-supply = <&vreg_l12b_1p2>;
> ++ qcom,port-mapping = <4 5 6 7 11 13>;
> ++ };
> ++};
> ++
> ++&tlmm {
> ++ gpio-reserved-ranges = <34 2>, /* Unused */
> ++ <44 4>, /* SPI (TPM) */
> ++ <238 1>; /* UFS Reset */
> ++
> ++ edp_reg_en: edp-reg-en-state {
> ++ pins = "gpio70";
> ++ function = "gpio";
> ++ drive-strength = <16>;
> ++ bias-disable;
> ++ };
> ++
> ++ eusb5_reset_n: eusb5-reset-n-state {
> ++ pins = "gpio7";
> ++ function = "gpio";
> ++ drive-strength = <2>;
> ++ bias-disable;
> ++ output-low;
> ++ };
> ++
> ++ eusb6_reset_n: eusb6-reset-n-state {
> ++ pins = "gpio184";
> ++ function = "gpio";
> ++ drive-strength = <2>;
> ++ bias-disable;
> ++ output-low;
> ++ };
> ++
> ++ 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";
> ++ 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;
> ++ };
> ++ };
> ++
> ++ tpad_default: tpad-default-state {
> ++ pins = "gpio3";
> ++ function = "gpio";
> ++ bias-disable;
> ++ };
> ++
> ++ ts0_default: ts0-default-state {
> ++ int-n-pins {
> ++ pins = "gpio51";
> ++ function = "gpio";
> ++ bias-disable;
> ++ };
> ++
> ++ reset-n-pins {
> ++ pins = "gpio48";
> ++ function = "gpio";
> ++ output-high;
> ++ drive-strength = <16>;
> ++ };
> ++ };
> ++
> ++ wcd_default: wcd-reset-n-active-state {
> ++ pins = "gpio191";
> ++ function = "gpio";
> ++ drive-strength = <16>;
> ++ bias-disable;
> ++ output-low;
> ++ };
> ++};
> ++
> ++&ufs_mem_hc {
> ++ status = "okay";
> ++
> ++ vcc-supply = <&vreg_l9b_2p9>;
> ++ vcc-max-microamp = <600000>;
> ++ vccq2-supply = <&vreg_l4b_1p8>;
> ++ vccq2-max-microamp = <600000>;
> ++};
> ++
> ++&ufs_mem_phy {
> ++ status = "okay";
> ++
> ++ vdda-phy-supply = <&vreg_l2c_0p8>;
> ++ vdda-phy-max-microamp = <62900>;
> ++ vdda-pll-supply = <&vreg_l12b_1p2>;
> ++ vdda-pll-max-microamp = <18300>;
> ++};
> ++
> ++&uart21 {
> ++ compatible = "qcom,geni-debug-uart";
> ++ status = "okay";
> ++};
> ++
> ++&usb_1_ss0_hsphy {
> ++ vdd-supply = <&vreg_l3j_0p8>;
> ++ vdda12-supply = <&vreg_l2j_1p2>;
> ++
> ++ phys = <&smb2360_0_eusb2_repeater>;
> ++
> ++ status = "okay";
> ++};
> ++
> ++&usb_1_ss0_qmpphy {
> ++ vdda-phy-supply = <&vreg_l3e_1p2>;
> ++ vdda-pll-supply = <&vreg_l1j_0p8>;
> ++
> ++ status = "okay";
> ++};
> ++
> ++&usb_1_ss0 {
> ++ status = "okay";
> ++};
> ++
> ++&usb_1_ss0_dwc3_hs {
> ++ remote-endpoint = <&pmic_glink_ss0_hs_in>;
> ++};
> ++
> ++&usb_1_ss0_qmpphy_out {
> ++ remote-endpoint = <&pmic_glink_ss0_ss_in>;
> ++};
> ++
> ++&usb_1_ss1_hsphy {
> ++ vdd-supply = <&vreg_l3j_0p8>;
> ++ vdda12-supply = <&vreg_l2j_1p2>;
> ++
> ++ phys = <&smb2360_1_eusb2_repeater>;
> ++
> ++ status = "okay";
> ++};
> ++
> ++&usb_1_ss1_qmpphy {
> ++ vdda-phy-supply = <&vreg_l3e_1p2>;
> ++ vdda-pll-supply = <&vreg_l2d_0p9>;
> ++
> ++ status = "okay";
> ++};
> ++
> ++&usb_1_ss1 {
> ++ status = "okay";
> ++};
> ++
> ++&usb_1_ss1_dwc3_hs {
> ++ remote-endpoint = <&pmic_glink_ss1_hs_in>;
> ++};
> ++
> ++&usb_1_ss1_qmpphy_out {
> ++ remote-endpoint = <&pmic_glink_ss1_ss_in>;
> ++};
> ++
> ++&usb_2_hsphy {
> ++ vdd-supply = <&vreg_l3j_0p8>;
> ++ vdda12-supply = <&vreg_l2j_1p2>;
> ++
> ++ phys = <&eusb5_repeater>;
> ++
> ++ status = "okay";
> ++};
> ++
> ++&usb_2_dwc3_hs {
> ++ remote-endpoint = <&pmic_glink_usb_2_hs_in>;
> ++};
> ++
> ++&usb_2 {
> ++ status = "okay";
> ++};
> ++
> ++&usb_mp_hsphy0 {
> ++ vdd-supply = <&vreg_l2e_0p8>;
> ++ vdda12-supply = <&vreg_l3e_1p2>;
> ++
> ++ phys = <&eusb6_repeater>;
> ++
> ++ status = "okay";
> ++};
> ++
> ++&usb_mp_qmpphy0 {
> ++ vdda-phy-supply = <&vreg_l3e_1p2>;
> ++ vdda-pll-supply = <&vreg_l3c_0p8>;
> ++
> ++ status = "okay";
> ++};
> ++
> ++/* MP0 goes to the USB-A port */
> ++&usb_mp {
> ++ status = "okay";
> ++};
> Index: sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-lenovo-yoga-slim7x_dts
> ===================================================================
> RCS file: /cvs/ports/sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-lenovo-yoga-slim7x_dts,v
> diff -u -p -r1.2 patch-src_arm64_qcom_x1e80100-lenovo-yoga-slim7x_dts
> --- sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-lenovo-yoga-slim7x_dts 21 Sep 2024 17:14:17 -0000 1.2
> +++ sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-lenovo-yoga-slim7x_dts 25 Jan 2025 12:51:42 -0000
> @@ -1,54 +1,30 @@
> Index: src/arm64/qcom/x1e80100-lenovo-yoga-slim7x.dts
> --- src/arm64/qcom/x1e80100-lenovo-yoga-slim7x.dts.orig
> +++ src/arm64/qcom/x1e80100-lenovo-yoga-slim7x.dts
> -@@ -190,7 +190,6 @@
> - pinctrl-0 = <&edp_reg_en>;
> - pinctrl-names = "default";
> -
> -- regulator-always-on;
> - regulator-boot-on;
> - };
> -
> -@@ -592,9 +591,13 @@
> -
> - aux-bus {
> - panel {
> -- compatible = "edp-panel";
> -+ compatible = "samsung,atna45dc02", "samsung,atna33xc20";
> -+ enable-gpios = <&pmc8380_3_gpios 4 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>;
> -@@ -669,6 +672,16 @@
> - status = "okay";
> +@@ -908,7 +908,7 @@
> };
>
> -+&pmc8380_3_gpios {
> -+ edp_bl_en: edp-bl-en-state {
> -+ pins = "gpio4";
> -+ function = "normal";
> -+ power-source = <0>;
> -+ input-disable;
> -+ output-enable;
> -+ };
> -+};
> -+
> - &qupv3_0 {
> + &usb_1_ss0_qmpphy {
> +- vdda-phy-supply = <&vreg_l3e_1p2>;
> ++ vdda-phy-supply = <&vreg_l2j_1p2>;
> + vdda-pll-supply = <&vreg_l1j_0p8>;
> +
> status = "okay";
> +@@ -940,7 +940,7 @@
> };
> -@@ -702,6 +715,10 @@
> - &smb2360_1_eusb2_repeater {
> - vdd18-supply = <&vreg_l3d_1p8>;
> - vdd3-supply = <&vreg_l14b_3p0>;
> -+};
> -+
> -+&smb2360_2 {
> -+ status = "okay";
> +
> + &usb_1_ss1_qmpphy {
> +- vdda-phy-supply = <&vreg_l3e_1p2>;
> ++ vdda-phy-supply = <&vreg_l2j_1p2>;
> + vdda-pll-supply = <&vreg_l2d_0p9>;
> +
> + status = "okay";
> +@@ -972,7 +972,7 @@
> };
>
> - &smb2360_2_eusb2_repeater {
> + &usb_1_ss2_qmpphy {
> +- vdda-phy-supply = <&vreg_l3e_1p2>;
> ++ vdda-phy-supply = <&vreg_l2j_1p2>;
> + vdda-pll-supply = <&vreg_l2d_0p9>;
> +
> + status = "okay";
> Index: sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-microsoft-romulus_dtsi
> ===================================================================
> RCS file: sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-microsoft-romulus_dtsi
> diff -N sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-microsoft-romulus_dtsi
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-microsoft-romulus_dtsi 25 Jan 2025 12:51:42 -0000
> @@ -0,0 +1,21 @@
> +Index: src/arm64/qcom/x1e80100-microsoft-romulus.dtsi
> +--- src/arm64/qcom/x1e80100-microsoft-romulus.dtsi.orig
> ++++ src/arm64/qcom/x1e80100-microsoft-romulus.dtsi
> +@@ -823,7 +823,7 @@
> + };
> +
> + &usb_1_ss0_qmpphy {
> +- vdda-phy-supply = <&vreg_l3e>;
> ++ vdda-phy-supply = <&vreg_l2j>;
> + vdda-pll-supply = <&vreg_l1j>;
> +
> + status = "okay";
> +@@ -855,7 +855,7 @@
> + };
> +
> + &usb_1_ss1_qmpphy {
> +- vdda-phy-supply = <&vreg_l3e>;
> ++ vdda-phy-supply = <&vreg_l2j>;
> + vdda-pll-supply = <&vreg_l2d>;
> +
> + status = "okay";
> Index: sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-pmics_dtsi
> ===================================================================
> RCS file: sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-pmics_dtsi
> diff -N sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-pmics_dtsi
> --- sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-pmics_dtsi 21 Sep 2024 17:14:17 -0000 1.2
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,27 +0,0 @@
> -Index: src/arm64/qcom/x1e80100-pmics.dtsi
> ---- src/arm64/qcom/x1e80100-pmics.dtsi.orig
> -+++ src/arm64/qcom/x1e80100-pmics.dtsi
> -@@ -249,6 +249,14 @@
> - interrupt-controller;
> - #interrupt-cells = <2>;
> - };
> -+
> -+ pmk8550_pwm: pwm {
> -+ compatible = "qcom,pmk8550-pwm";
> -+
> -+ #pwm-cells = <2>;
> -+
> -+ status = "disabled";
> -+ };
> - };
> -
> - /* PMC8380C */
> -@@ -508,6 +516,8 @@
> - reg = <0xb SPMI_USID>;
> - #address-cells = <1>;
> - #size-cells = <0>;
> -+
> -+ status = "disabled";
> -
> - smb2360_2_eusb2_repeater: phy@fd00 {
> - compatible = "qcom,smb2360-eusb2-repeater";
> Index: sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-qcp_dts
> ===================================================================
> RCS file: sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-qcp_dts
> diff -N sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-qcp_dts
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100-qcp_dts 25 Jan 2025 12:51:42 -0000
> @@ -0,0 +1,204 @@
> +Index: src/arm64/qcom/x1e80100-qcp.dts
> +--- src/arm64/qcom/x1e80100-qcp.dts.orig
> ++++ src/arm64/qcom/x1e80100-qcp.dts
> +@@ -17,6 +17,7 @@
> +
> + aliases {
> + serial0 = &uart21;
> ++ serial1 = &uart14;
> + };
> +
> + wcd938x: audio-codec {
> +@@ -256,6 +257,101 @@
> +
> + regulator-boot-on;
> + };
> ++
> ++ vreg_wcn_3p3: regulator-wcn-3p3 {
> ++ compatible = "regulator-fixed";
> ++
> ++ regulator-name = "VREG_WCN_3P3";
> ++ regulator-min-microvolt = <3300000>;
> ++ regulator-max-microvolt = <3300000>;
> ++
> ++ gpio = <&tlmm 214 GPIO_ACTIVE_HIGH>;
> ++ enable-active-high;
> ++
> ++ pinctrl-0 = <&wcn_sw_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_1p9: regulator-wcn-1p9 {
> ++ compatible = "regulator-fixed";
> ++
> ++ regulator-name = "VREG_WCN_1P9";
> ++ regulator-min-microvolt = <1900000>;
> ++ regulator-max-microvolt = <1900000>;
> ++
> ++ vin-supply = <&vreg_wcn_3p3>;
> ++ };
> ++
> ++ wcn7850-pmu {
> ++ compatible = "qcom,wcn7850-pmu";
> ++
> ++ vdd-supply = <&vreg_wcn_0p95>;
> ++ vddio-supply = <&vreg_l15b_1p8>;
> ++ vddaon-supply = <&vreg_wcn_0p95>;
> ++ vdddig-supply = <&vreg_wcn_0p95>;
> ++ vddrfa1p2-supply = <&vreg_wcn_1p9>;
> ++ vddrfa1p8-supply = <&vreg_wcn_1p9>;
> ++
> ++ 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 {
> +@@ -686,6 +782,23 @@
> + status = "okay";
> + };
> +
> ++&pcie4_port0 {
> ++ 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>;
> ++ };
> ++};
> ++
> + &pcie6a {
> + perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
> + wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
> +@@ -879,8 +992,39 @@
> + 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 = "gpio214";
> ++ 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>;
> ++ };
> ++};
> ++
> + &uart21 {
> + compatible = "qcom,geni-debug-uart";
> + status = "okay";
> +@@ -896,7 +1040,7 @@
> + };
> +
> + &usb_1_ss0_qmpphy {
> +- vdda-phy-supply = <&vreg_l3e_1p2>;
> ++ vdda-phy-supply = <&vreg_l2j_1p2>;
> + vdda-pll-supply = <&vreg_l1j_0p8>;
> +
> + status = "okay";
> +@@ -928,7 +1072,7 @@
> + };
> +
> + &usb_1_ss1_qmpphy {
> +- vdda-phy-supply = <&vreg_l3e_1p2>;
> ++ vdda-phy-supply = <&vreg_l2j_1p2>;
> + vdda-pll-supply = <&vreg_l2d_0p9>;
> +
> + status = "okay";
> +@@ -960,7 +1104,7 @@
> + };
> +
> + &usb_1_ss2_qmpphy {
> +- vdda-phy-supply = <&vreg_l3e_1p2>;
> ++ vdda-phy-supply = <&vreg_l2j_1p2>;
> + vdda-pll-supply = <&vreg_l2d_0p9>;
> +
> + status = "okay";
> Index: sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100_dtsi
> ===================================================================
> RCS file: /cvs/ports/sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100_dtsi,v
> diff -u -p -r1.3 patch-src_arm64_qcom_x1e80100_dtsi
> --- sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100_dtsi 17 Nov 2024 16:45:15 -0000 1.3
> +++ sysutils/firmware/arm64-qcom-dtb/patches/patch-src_arm64_qcom_x1e80100_dtsi 25 Jan 2025 12:51:42 -0000
> @@ -1,149 +1,141 @@
> Index: src/arm64/qcom/x1e80100.dtsi
> --- src/arm64/qcom/x1e80100.dtsi.orig
> +++ src/arm64/qcom/x1e80100.dtsi
> -@@ -4,6 +4,7 @@
> - */
> -
> - #include <dt-bindings/clock/qcom,rpmh.h>
> -+#include <dt-bindings/clock/qcom,sc8280xp-lpasscc.h>
> - #include <dt-bindings/clock/qcom,x1e80100-dispcc.h>
> - #include <dt-bindings/clock/qcom,x1e80100-gcc.h>
> - #include <dt-bindings/clock/qcom,x1e80100-gpucc.h>
> -@@ -70,8 +71,8 @@
> +@@ -71,8 +71,8 @@
> reg = <0x0 0x0>;
> enable-method = "psci";
> - next-level-cache = <&L2_0>;
> -- power-domains = <&CPU_PD0>;
> + next-level-cache = <&l2_0>;
> +- power-domains = <&cpu_pd0>;
> - power-domain-names = "psci";
> -+ power-domains = <&CPU_PD0>, <&scmi_dvfs 0>;
> ++ power-domains = <&cpu_pd0>, <&scmi_dvfs 0>;
> + power-domain-names = "psci", "perf";
> - cpu-idle-states = <&CLUSTER_C4>;
> + cpu-idle-states = <&cluster_c4>;
>
> - L2_0: l2-cache {
> -@@ -87,8 +88,8 @@
> + l2_0: l2-cache {
> +@@ -88,8 +88,8 @@
> reg = <0x0 0x100>;
> enable-method = "psci";
> - next-level-cache = <&L2_0>;
> -- power-domains = <&CPU_PD1>;
> + next-level-cache = <&l2_0>;
> +- power-domains = <&cpu_pd1>;
> - power-domain-names = "psci";
> -+ power-domains = <&CPU_PD1>, <&scmi_dvfs 0>;
> ++ power-domains = <&cpu_pd1>, <&scmi_dvfs 0>;
> + power-domain-names = "psci", "perf";
> - cpu-idle-states = <&CLUSTER_C4>;
> + cpu-idle-states = <&cluster_c4>;
> };
>
> -@@ -98,8 +99,8 @@
> +@@ -99,8 +99,8 @@
> reg = <0x0 0x200>;
> enable-method = "psci";
> - next-level-cache = <&L2_0>;
> -- power-domains = <&CPU_PD2>;
> + next-level-cache = <&l2_0>;
> +- power-domains = <&cpu_pd2>;
> - power-domain-names = "psci";
> -+ power-domains = <&CPU_PD2>, <&scmi_dvfs 0>;
> ++ power-domains = <&cpu_pd2>, <&scmi_dvfs 0>;
> + power-domain-names = "psci", "perf";
> - cpu-idle-states = <&CLUSTER_C4>;
> + cpu-idle-states = <&cluster_c4>;
> };
>
> -@@ -109,8 +110,8 @@
> +@@ -110,8 +110,8 @@
> reg = <0x0 0x300>;
> enable-method = "psci";
> - next-level-cache = <&L2_0>;
> -- power-domains = <&CPU_PD3>;
> + next-level-cache = <&l2_0>;
> +- power-domains = <&cpu_pd3>;
> - power-domain-names = "psci";
> -+ power-domains = <&CPU_PD3>, <&scmi_dvfs 0>;
> ++ power-domains = <&cpu_pd3>, <&scmi_dvfs 0>;
> + power-domain-names = "psci", "perf";
> - cpu-idle-states = <&CLUSTER_C4>;
> + cpu-idle-states = <&cluster_c4>;
> };
>
> -@@ -120,8 +121,8 @@
> +@@ -121,8 +121,8 @@
> reg = <0x0 0x10000>;
> enable-method = "psci";
> - next-level-cache = <&L2_1>;
> -- power-domains = <&CPU_PD4>;
> + next-level-cache = <&l2_1>;
> +- power-domains = <&cpu_pd4>;
> - power-domain-names = "psci";
> -+ power-domains = <&CPU_PD4>, <&scmi_dvfs 1>;
> ++ power-domains = <&cpu_pd4>, <&scmi_dvfs 1>;
> + power-domain-names = "psci", "perf";
> - cpu-idle-states = <&CLUSTER_C4>;
> + cpu-idle-states = <&cluster_c4>;
>
> - L2_1: l2-cache {
> -@@ -137,8 +138,8 @@
> + l2_1: l2-cache {
> +@@ -138,8 +138,8 @@
> reg = <0x0 0x10100>;
> enable-method = "psci";
> - next-level-cache = <&L2_1>;
> -- power-domains = <&CPU_PD5>;
> + next-level-cache = <&l2_1>;
> +- power-domains = <&cpu_pd5>;
> - power-domain-names = "psci";
> -+ power-domains = <&CPU_PD5>, <&scmi_dvfs 1>;
> ++ power-domains = <&cpu_pd5>, <&scmi_dvfs 1>;
> + power-domain-names = "psci", "perf";
> - cpu-idle-states = <&CLUSTER_C4>;
> + cpu-idle-states = <&cluster_c4>;
> };
>
> -@@ -148,8 +149,8 @@
> +@@ -149,8 +149,8 @@
> reg = <0x0 0x10200>;
> enable-method = "psci";
> - next-level-cache = <&L2_1>;
> -- power-domains = <&CPU_PD6>;
> + next-level-cache = <&l2_1>;
> +- power-domains = <&cpu_pd6>;
> - power-domain-names = "psci";
> -+ power-domains = <&CPU_PD6>, <&scmi_dvfs 1>;
> ++ power-domains = <&cpu_pd6>, <&scmi_dvfs 1>;
> + power-domain-names = "psci", "perf";
> - cpu-idle-states = <&CLUSTER_C4>;
> + cpu-idle-states = <&cluster_c4>;
> };
>
> -@@ -159,8 +160,8 @@
> +@@ -160,8 +160,8 @@
> reg = <0x0 0x10300>;
> enable-method = "psci";
> - next-level-cache = <&L2_1>;
> -- power-domains = <&CPU_PD7>;
> + next-level-cache = <&l2_1>;
> +- power-domains = <&cpu_pd7>;
> - power-domain-names = "psci";
> -+ power-domains = <&CPU_PD7>, <&scmi_dvfs 1>;
> ++ power-domains = <&cpu_pd7>, <&scmi_dvfs 1>;
> + power-domain-names = "psci", "perf";
> - cpu-idle-states = <&CLUSTER_C4>;
> + cpu-idle-states = <&cluster_c4>;
> };
>
> -@@ -170,8 +171,8 @@
> +@@ -171,8 +171,8 @@
> reg = <0x0 0x20000>;
> enable-method = "psci";
> - next-level-cache = <&L2_2>;
> -- power-domains = <&CPU_PD8>;
> + next-level-cache = <&l2_2>;
> +- power-domains = <&cpu_pd8>;
> - power-domain-names = "psci";
> -+ power-domains = <&CPU_PD8>, <&scmi_dvfs 2>;
> ++ power-domains = <&cpu_pd8>, <&scmi_dvfs 2>;
> + power-domain-names = "psci", "perf";
> - cpu-idle-states = <&CLUSTER_C4>;
> + cpu-idle-states = <&cluster_c4>;
>
> - L2_2: l2-cache {
> -@@ -187,8 +188,8 @@
> + l2_2: l2-cache {
> +@@ -188,8 +188,8 @@
> reg = <0x0 0x20100>;
> enable-method = "psci";
> - next-level-cache = <&L2_2>;
> -- power-domains = <&CPU_PD9>;
> + next-level-cache = <&l2_2>;
> +- power-domains = <&cpu_pd9>;
> - power-domain-names = "psci";
> -+ power-domains = <&CPU_PD9>, <&scmi_dvfs 2>;
> ++ power-domains = <&cpu_pd9>, <&scmi_dvfs 2>;
> + power-domain-names = "psci", "perf";
> - cpu-idle-states = <&CLUSTER_C4>;
> + cpu-idle-states = <&cluster_c4>;
> };
>
> -@@ -198,8 +199,8 @@
> +@@ -199,8 +199,8 @@
> reg = <0x0 0x20200>;
> enable-method = "psci";
> - next-level-cache = <&L2_2>;
> -- power-domains = <&CPU_PD10>;
> + next-level-cache = <&l2_2>;
> +- power-domains = <&cpu_pd10>;
> - power-domain-names = "psci";
> -+ power-domains = <&CPU_PD10>, <&scmi_dvfs 2>;
> ++ power-domains = <&cpu_pd10>, <&scmi_dvfs 2>;
> + power-domain-names = "psci", "perf";
> - cpu-idle-states = <&CLUSTER_C4>;
> + cpu-idle-states = <&cluster_c4>;
> };
>
> -@@ -209,8 +210,8 @@
> +@@ -210,8 +210,8 @@
> reg = <0x0 0x20300>;
> enable-method = "psci";
> - next-level-cache = <&L2_2>;
> -- power-domains = <&CPU_PD11>;
> + next-level-cache = <&l2_2>;
> +- power-domains = <&cpu_pd11>;
> - power-domain-names = "psci";
> -+ power-domains = <&CPU_PD11>, <&scmi_dvfs 2>;
> ++ power-domains = <&cpu_pd11>, <&scmi_dvfs 2>;
> + power-domain-names = "psci", "perf";
> - cpu-idle-states = <&CLUSTER_C4>;
> + cpu-idle-states = <&cluster_c4>;
> };
>
> -@@ -310,6 +311,21 @@
> - interconnects = <&aggre2_noc MASTER_CRYPTO QCOM_ICC_TAG_ALWAYS
> +@@ -310,6 +310,21 @@
> &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
> + qcom,dload-mode = <&tcsr 0x19000>;
> };
> +
> + scmi {
> @@ -163,193 +155,575 @@ Index: src/arm64/qcom/x1e80100.dtsi
> };
>
> clk_virt: interconnect-0 {
> -@@ -745,7 +761,7 @@
> - <&sleep_clk>,
> - <0>,
> - <&pcie4_phy>,
> -- <0>,
> -+ <&pcie5_phy>,
> - <&pcie6a_phy>,
> - <0>,
> - <&usb_1_ss0_qmpphy QMP_USB43DP_USB3_PIPE_CLK>,
> -@@ -1979,7 +1995,7 @@
> -
> - i2c0: i2c@b80000 {
> - compatible = "qcom,geni-i2c";
> -- reg = <0 0xb80000 0 0x4000>;
> -+ reg = <0 0x00b80000 0 0x4000>;
> -
> - interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
> +@@ -677,6 +692,34 @@
> + };
> + };
>
> -@@ -2142,9 +2158,31 @@
> ++ qup_opp_table_100mhz: opp-table-qup100mhz {
> ++ compatible = "operating-points-v2";
> ++
> ++ opp-75000000 {
> ++ opp-hz = /bits/ 64 <75000000>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++ };
> ++
> ++ opp-100000000 {
> ++ opp-hz = /bits/ 64 <100000000>;
> ++ required-opps = <&rpmhpd_opp_svs>;
> ++ };
> ++ };
> ++
> ++ qup_opp_table_120mhz: opp-table-qup120mhz {
> ++ compatible = "operating-points-v2";
> ++
> ++ opp-75000000 {
> ++ opp-hz = /bits/ 64 <75000000>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++ };
> ++
> ++ opp-120000000 {
> ++ opp-hz = /bits/ 64 <120000000>;
> ++ required-opps = <&rpmhpd_opp_svs>;
> ++ };
> ++ };
> ++
> + smp2p-adsp {
> + compatible = "qcom,smp2p";
> +
> +@@ -831,6 +874,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++
> + dmas = <&gpi_dma2 0 0 QCOM_GPI_I2C>,
> + <&gpi_dma2 1 0 QCOM_GPI_I2C>;
> + dma-names = "tx",
> +@@ -864,6 +910,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_120mhz>;
> ++
> + dmas = <&gpi_dma2 0 0 QCOM_GPI_SPI>,
> + <&gpi_dma2 1 0 QCOM_GPI_SPI>;
> + dma-names = "tx",
> +@@ -897,6 +946,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++
> + dmas = <&gpi_dma2 0 1 QCOM_GPI_I2C>,
> + <&gpi_dma2 1 1 QCOM_GPI_I2C>;
> + dma-names = "tx",
> +@@ -930,6 +982,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_120mhz>;
> ++
> + dmas = <&gpi_dma2 0 1 QCOM_GPI_SPI>,
> + <&gpi_dma2 1 1 QCOM_GPI_SPI>;
> + dma-names = "tx",
> +@@ -963,6 +1018,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++
> + dmas = <&gpi_dma2 0 2 QCOM_GPI_I2C>,
> + <&gpi_dma2 1 2 QCOM_GPI_I2C>;
> + dma-names = "tx",
> +@@ -996,6 +1054,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_100mhz>;
> ++
> + dmas = <&gpi_dma2 0 2 QCOM_GPI_SPI>,
> + <&gpi_dma2 1 2 QCOM_GPI_SPI>;
> + dma-names = "tx",
> +@@ -1029,6 +1090,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++
> + dmas = <&gpi_dma2 0 3 QCOM_GPI_I2C>,
> + <&gpi_dma2 1 3 QCOM_GPI_I2C>;
> + dma-names = "tx",
> +@@ -1062,6 +1126,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_100mhz>;
> ++
> + dmas = <&gpi_dma2 0 3 QCOM_GPI_SPI>,
> + <&gpi_dma2 1 3 QCOM_GPI_SPI>;
> + dma-names = "tx",
> +@@ -1095,6 +1162,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++
> + dmas = <&gpi_dma2 0 4 QCOM_GPI_I2C>,
> + <&gpi_dma2 1 4 QCOM_GPI_I2C>;
> + dma-names = "tx",
> +@@ -1128,6 +1198,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_100mhz>;
> ++
> + dmas = <&gpi_dma2 0 4 QCOM_GPI_SPI>,
> + <&gpi_dma2 1 4 QCOM_GPI_SPI>;
> + dma-names = "tx",
> +@@ -1161,6 +1234,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++
> + dmas = <&gpi_dma2 0 5 QCOM_GPI_I2C>,
> + <&gpi_dma2 1 5 QCOM_GPI_I2C>;
> + dma-names = "tx",
> +@@ -1194,6 +1270,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_100mhz>;
> ++
> + dmas = <&gpi_dma2 0 5 QCOM_GPI_SPI>,
> + <&gpi_dma2 1 5 QCOM_GPI_SPI>;
> + dma-names = "tx",
> +@@ -1224,6 +1303,9 @@
> + interconnect-names = "qup-core",
> + "qup-config";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_100mhz>;
> ++
> + pinctrl-0 = <&qup_uart21_default>;
> + pinctrl-names = "default";
> +
> +@@ -1249,6 +1331,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++
> + dmas = <&gpi_dma2 0 6 QCOM_GPI_I2C>,
> + <&gpi_dma2 1 6 QCOM_GPI_I2C>;
> + dma-names = "tx",
> +@@ -1282,6 +1367,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_100mhz>;
> ++
> + dmas = <&gpi_dma2 0 6 QCOM_GPI_SPI>,
> + <&gpi_dma2 1 6 QCOM_GPI_SPI>;
> + dma-names = "tx",
> +@@ -1315,6 +1403,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++
> + dmas = <&gpi_dma2 0 7 QCOM_GPI_I2C>,
> + <&gpi_dma2 1 7 QCOM_GPI_I2C>;
> + dma-names = "tx",
> +@@ -1348,6 +1439,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_100mhz>;
> ++
> + dmas = <&gpi_dma2 0 7 QCOM_GPI_SPI>,
> + <&gpi_dma2 1 7 QCOM_GPI_SPI>;
> + dma-names = "tx",
> +@@ -1425,6 +1519,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++
> + dmas = <&gpi_dma1 0 0 QCOM_GPI_I2C>,
> + <&gpi_dma1 1 0 QCOM_GPI_I2C>;
> + dma-names = "tx",
> +@@ -1458,6 +1555,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_120mhz>;
> ++
> + dmas = <&gpi_dma1 0 0 QCOM_GPI_SPI>,
> + <&gpi_dma1 1 0 QCOM_GPI_SPI>;
> + dma-names = "tx",
> +@@ -1491,6 +1591,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++
> + dmas = <&gpi_dma1 0 1 QCOM_GPI_I2C>,
> + <&gpi_dma1 1 1 QCOM_GPI_I2C>;
> + dma-names = "tx",
> +@@ -1524,6 +1627,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_120mhz>;
> ++
> + dmas = <&gpi_dma1 0 1 QCOM_GPI_SPI>,
> + <&gpi_dma1 1 1 QCOM_GPI_SPI>;
> + dma-names = "tx",
> +@@ -1557,6 +1663,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++
> + dmas = <&gpi_dma1 0 2 QCOM_GPI_I2C>,
> + <&gpi_dma1 1 2 QCOM_GPI_I2C>;
> + dma-names = "tx",
> +@@ -1590,6 +1699,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_100mhz>;
> ++
> + dmas = <&gpi_dma1 0 2 QCOM_GPI_SPI>,
> + <&gpi_dma1 1 2 QCOM_GPI_SPI>;
> + dma-names = "tx",
> +@@ -1623,6 +1735,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++
> + dmas = <&gpi_dma1 0 3 QCOM_GPI_I2C>,
> + <&gpi_dma1 1 3 QCOM_GPI_I2C>;
> + dma-names = "tx",
> +@@ -1656,6 +1771,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_100mhz>;
> ++
> + dmas = <&gpi_dma1 0 3 QCOM_GPI_SPI>,
> + <&gpi_dma1 1 3 QCOM_GPI_SPI>;
> + dma-names = "tx",
> +@@ -1689,6 +1807,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++
> + dmas = <&gpi_dma1 0 4 QCOM_GPI_I2C>,
> + <&gpi_dma1 1 4 QCOM_GPI_I2C>;
> + dma-names = "tx",
> +@@ -1722,6 +1843,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_100mhz>;
> ++
> + dmas = <&gpi_dma1 0 4 QCOM_GPI_SPI>,
> + <&gpi_dma1 1 4 QCOM_GPI_SPI>;
> + dma-names = "tx",
> +@@ -1755,6 +1879,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++
> + dmas = <&gpi_dma1 0 5 QCOM_GPI_I2C>,
> + <&gpi_dma1 1 5 QCOM_GPI_I2C>;
> + dma-names = "tx",
> +@@ -1788,6 +1915,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_100mhz>;
> ++
> + dmas = <&gpi_dma1 0 5 QCOM_GPI_SPI>,
> + <&gpi_dma1 1 5 QCOM_GPI_SPI>;
> + dma-names = "tx",
> +@@ -1821,6 +1951,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++
> + dmas = <&gpi_dma1 0 6 QCOM_GPI_I2C>,
> + <&gpi_dma1 1 6 QCOM_GPI_I2C>;
> + dma-names = "tx",
> +@@ -1854,6 +1987,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_100mhz>;
> ++
> + dmas = <&gpi_dma1 0 6 QCOM_GPI_SPI>,
> + <&gpi_dma1 1 6 QCOM_GPI_SPI>;
> + dma-names = "tx",
> +@@ -1868,6 +2004,31 @@
> status = "disabled";
> };
>
> -+ uart2: serial@b88000 {
> ++ uart14: serial@a98000 {
> + compatible = "qcom,geni-uart";
> -+ reg = <0 0x00b88000 0 0x4000>;
> ++ reg = <0 0x00a98000 0 0x4000>;
> +
> -+ interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>;
> ++ interrupts = <GIC_SPI 806 IRQ_TYPE_LEVEL_HIGH>;
> +
> -+ clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
> ++ clocks = <&gcc GCC_QUPV3_WRAP1_S6_CLK>;
> + clock-names = "se";
> +
> -+ interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
> -+ &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
> ++ interconnects = <&clk_virt MASTER_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS
> ++ &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
> + <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
> -+ &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>;
> ++ &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ALWAYS>;
> + interconnect-names = "qup-core",
> + "qup-config";
> +
> -+ pinctrl-0 = <&qup_uart2_default>;
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_100mhz>;
> ++
> ++ pinctrl-0 = <&qup_uart14_default>;
> + pinctrl-names = "default";
> +
> + status = "disabled";
> + };
> +
> - spi2: spi@b88000 {
> - compatible = "qcom,geni-spi";
> -- reg = <0 0xb88000 0 0x4000>;
> -+ reg = <0 0x00b88000 0 0x4000>;
> -
> - interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>;
> -
> -@@ -2243,7 +2281,7 @@
> -
> - i2c4: i2c@b90000 {
> + i2c15: i2c@a9c000 {
> compatible = "qcom,geni-i2c";
> -- reg = <0 0xb90000 0 0x4000>;
> -+ reg = <0 0x00b90000 0 0x4000>;
> -
> - interrupts = <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH>;
> -
> -@@ -2603,6 +2641,8 @@
> - #clock-cells = <1>;
> - #phy-cells = <1>;
> -
> -+ orientation-switch;
> -+
> + reg = <0 0x00a9c000 0 0x4000>;
> +@@ -1887,6 +2048,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++
> + dmas = <&gpi_dma1 0 7 QCOM_GPI_I2C>,
> + <&gpi_dma1 1 7 QCOM_GPI_I2C>;
> + dma-names = "tx",
> +@@ -1920,6 +2084,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_100mhz>;
> ++
> + dmas = <&gpi_dma1 0 7 QCOM_GPI_SPI>,
> + <&gpi_dma1 1 7 QCOM_GPI_SPI>;
> + dma-names = "tx",
> +@@ -1996,6 +2163,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++
> + dmas = <&gpi_dma0 0 0 QCOM_GPI_I2C>,
> + <&gpi_dma0 1 0 QCOM_GPI_I2C>;
> + dma-names = "tx",
> +@@ -2029,6 +2199,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_120mhz>;
> ++
> + dmas = <&gpi_dma0 0 0 QCOM_GPI_SPI>,
> + <&gpi_dma0 1 0 QCOM_GPI_SPI>;
> + dma-names = "tx",
> +@@ -2062,6 +2235,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++
> + dmas = <&gpi_dma0 0 1 QCOM_GPI_I2C>,
> + <&gpi_dma0 1 1 QCOM_GPI_I2C>;
> + dma-names = "tx",
> +@@ -2095,6 +2271,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_120mhz>;
> ++
> + dmas = <&gpi_dma0 0 1 QCOM_GPI_SPI>,
> + <&gpi_dma0 1 1 QCOM_GPI_SPI>;
> + dma-names = "tx",
> +@@ -2128,6 +2307,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++
> + dmas = <&gpi_dma0 0 2 QCOM_GPI_I2C>,
> + <&gpi_dma0 1 2 QCOM_GPI_I2C>;
> + dma-names = "tx",
> +@@ -2158,6 +2340,9 @@
> + interconnect-names = "qup-core",
> + "qup-config";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_100mhz>;
> ++
> + pinctrl-0 = <&qup_uart2_default>;
> + pinctrl-names = "default";
> +
> +@@ -2183,6 +2368,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_100mhz>;
> ++
> + dmas = <&gpi_dma0 0 2 QCOM_GPI_SPI>,
> + <&gpi_dma0 1 2 QCOM_GPI_SPI>;
> + dma-names = "tx",
> +@@ -2216,6 +2404,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++
> + dmas = <&gpi_dma0 0 3 QCOM_GPI_I2C>,
> + <&gpi_dma0 1 3 QCOM_GPI_I2C>;
> + dma-names = "tx",
> +@@ -2249,6 +2440,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_100mhz>;
> ++
> + dmas = <&gpi_dma0 0 3 QCOM_GPI_SPI>,
> + <&gpi_dma0 1 3 QCOM_GPI_SPI>;
> + dma-names = "tx",
> +@@ -2282,6 +2476,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++
> + dmas = <&gpi_dma0 0 4 QCOM_GPI_I2C>,
> + <&gpi_dma0 1 4 QCOM_GPI_I2C>;
> + dma-names = "tx",
> +@@ -2315,6 +2512,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_100mhz>;
> ++
> + dmas = <&gpi_dma0 0 4 QCOM_GPI_SPI>,
> + <&gpi_dma0 1 4 QCOM_GPI_SPI>;
> + dma-names = "tx",
> +@@ -2348,6 +2548,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++
> + dmas = <&gpi_dma0 0 5 QCOM_GPI_I2C>,
> + <&gpi_dma0 1 5 QCOM_GPI_I2C>;
> + dma-names = "tx",
> +@@ -2381,6 +2584,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_100mhz>;
> ++
> + dmas = <&gpi_dma0 0 5 QCOM_GPI_SPI>,
> + <&gpi_dma0 1 5 QCOM_GPI_SPI>;
> + dma-names = "tx",
> +@@ -2414,6 +2620,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++
> + dmas = <&gpi_dma0 0 6 QCOM_GPI_I2C>,
> + <&gpi_dma0 1 6 QCOM_GPI_I2C>;
> + dma-names = "tx",
> +@@ -2447,6 +2656,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_100mhz>;
> ++
> + dmas = <&gpi_dma0 0 6 QCOM_GPI_SPI>,
> + <&gpi_dma0 1 6 QCOM_GPI_SPI>;
> + dma-names = "tx",
> +@@ -2480,6 +2692,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ required-opps = <&rpmhpd_opp_low_svs>;
> ++
> + dmas = <&gpi_dma0 0 7 QCOM_GPI_I2C>,
> + <&gpi_dma0 1 7 QCOM_GPI_I2C>;
> + dma-names = "tx",
> +@@ -2513,6 +2728,9 @@
> + "qup-config",
> + "qup-memory";
> +
> ++ power-domains = <&rpmhpd RPMHPD_CX>;
> ++ operating-points-v2 = <&qup_opp_table_100mhz>;
> ++
> + dmas = <&gpi_dma0 0 7 QCOM_GPI_SPI>,
> + <&gpi_dma0 1 7 QCOM_GPI_SPI>;
> + dma-names = "tx",
> +@@ -3291,6 +3509,77 @@
> status = "disabled";
> -
> - ports {
> -@@ -2671,6 +2711,8 @@
> - #clock-cells = <1>;
> - #phy-cells = <1>;
> -
> -+ orientation-switch;
> -+
> - status = "disabled";
> -
> - ports {
> -@@ -2739,6 +2781,8 @@
> - #clock-cells = <1>;
> - #phy-cells = <1>;
> -
> -+ orientation-switch;
> -+
> - status = "disabled";
> -
> - ports {
> -@@ -2772,7 +2816,7 @@
> -
> - cnoc_main: interconnect@1500000 {
> - compatible = "qcom,x1e80100-cnoc-main";
> -- reg = <0 0x1500000 0 0x14400>;
> -+ reg = <0 0x01500000 0 0x14400>;
> -
> - qcom,bcm-voters = <&apps_bcm_voter>;
> -
> -@@ -2781,7 +2825,7 @@
> -
> - config_noc: interconnect@1600000 {
> - compatible = "qcom,x1e80100-cnoc-cfg";
> -- reg = <0 0x1600000 0 0x6600>;
> -+ reg = <0 0x01600000 0 0x6600>;
> -
> - qcom,bcm-voters = <&apps_bcm_voter>;
> -
> -@@ -2790,7 +2834,7 @@
> -
> - system_noc: interconnect@1680000 {
> - compatible = "qcom,x1e80100-system-noc";
> -- reg = <0 0x1680000 0 0x1c080>;
> -+ reg = <0 0x01680000 0 0x1c080>;
> -
> - qcom,bcm-voters = <&apps_bcm_voter>;
> -
> -@@ -2799,7 +2843,7 @@
> -
> - pcie_south_anoc: interconnect@16c0000 {
> - compatible = "qcom,x1e80100-pcie-south-anoc";
> -- reg = <0 0x16c0000 0 0xd080>;
> -+ reg = <0 0x016c0000 0 0xd080>;
> -
> - qcom,bcm-voters = <&apps_bcm_voter>;
> -
> -@@ -2808,7 +2852,7 @@
> -
> - pcie_center_anoc: interconnect@16d0000 {
> - compatible = "qcom,x1e80100-pcie-center-anoc";
> -- reg = <0 0x16d0000 0 0x7000>;
> -+ reg = <0 0x016d0000 0 0x7000>;
> -
> - qcom,bcm-voters = <&apps_bcm_voter>;
> -
> -@@ -2817,7 +2861,7 @@
> -
> - aggre1_noc: interconnect@16e0000 {
> - compatible = "qcom,x1e80100-aggre1-noc";
> -- reg = <0 0x16E0000 0 0x14400>;
> -+ reg = <0 0x016e0000 0 0x14400>;
> -
> - qcom,bcm-voters = <&apps_bcm_voter>;
> -
> -@@ -2826,7 +2870,7 @@
> -
> - aggre2_noc: interconnect@1700000 {
> - compatible = "qcom,x1e80100-aggre2-noc";
> -- reg = <0 0x1700000 0 0x1c400>;
> -+ reg = <0 0x01700000 0 0x1c400>;
> -
> - qcom,bcm-voters = <&apps_bcm_voter>;
> -
> -@@ -2835,7 +2879,7 @@
> -
> - pcie_north_anoc: interconnect@1740000 {
> - compatible = "qcom,x1e80100-pcie-north-anoc";
> -- reg = <0 0x1740000 0 0x9080>;
> -+ reg = <0 0x01740000 0 0x9080>;
> -
> - qcom,bcm-voters = <&apps_bcm_voter>;
> -
> -@@ -2844,7 +2888,7 @@
> -
> - usb_center_anoc: interconnect@1750000 {
> - compatible = "qcom,x1e80100-usb-center-anoc";
> -- reg = <0 0x1750000 0 0x8800>;
> -+ reg = <0 0x01750000 0 0x8800>;
> -
> - qcom,bcm-voters = <&apps_bcm_voter>;
> -
> -@@ -2853,7 +2897,7 @@
> -
> - usb_north_anoc: interconnect@1760000 {
> - compatible = "qcom,x1e80100-usb-north-anoc";
> -- reg = <0 0x1760000 0 0x7080>;
> -+ reg = <0 0x01760000 0 0x7080>;
> -
> - qcom,bcm-voters = <&apps_bcm_voter>;
> -
> -@@ -2862,16 +2906,87 @@
> -
> - usb_south_anoc: interconnect@1770000 {
> - compatible = "qcom,x1e80100-usb-south-anoc";
> -- reg = <0 0x1770000 0 0xf080>;
> -+ reg = <0 0x01770000 0 0xf080>;
> -
> - qcom,bcm-voters = <&apps_bcm_voter>;
> -
> - #interconnect-cells = <2>;
> };
>
> + ufs_mem_hc: ufshc@1d84000 {
> @@ -423,585 +797,108 @@ Index: src/arm64/qcom/x1e80100.dtsi
> + clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
> + };
> +
> - mmss_noc: interconnect@1780000 {
> - compatible = "qcom,x1e80100-mmss-noc";
> -- reg = <0 0x1780000 0 0x5B800>;
> -+ reg = <0 0x01780000 0 0x5B800>;
> -
> - qcom,bcm-voters = <&apps_bcm_voter>;
> -
> -@@ -3000,6 +3115,126 @@
> - status = "disabled";
> - };
> + tcsr_mutex: hwlock@1f40000 {
> + compatible = "qcom,tcsr-mutex";
> + reg = <0 0x01f40000 0 0x20000>;
> +@@ -4063,6 +4352,8 @@
> + snps,dis_u2_susphy_quirk;
> + snps,dis_enblslpm_quirk;
> + snps,usb3_lpm_capable;
> ++ snps,dis-u1-entry-quirk;
> ++ snps,dis-u2-entry-quirk;
> +
> + dma-coherent;
> +
> +@@ -4118,7 +4409,7 @@
> + <&gcc GCC_USB20_MASTER_CLK>;
> + assigned-clock-rates = <19200000>, <200000000>;
> +
> +- interrupts-extended = <&intc GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
> ++ interrupts-extended = <&intc GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>,
> + <&pdc 50 IRQ_TYPE_EDGE_BOTH>,
> + <&pdc 49 IRQ_TYPE_EDGE_BOTH>;
> + interrupt-names = "pwr_event",
> +@@ -4144,12 +4435,16 @@
> + usb_2_dwc3: usb@a200000 {
> + compatible = "snps,dwc3";
> + reg = <0 0x0a200000 0 0xcd00>;
> +- interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
> ++ interrupts = <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>;
> + iommus = <&apps_smmu 0x14e0 0x0>;
> + phys = <&usb_2_hsphy>;
> + phy-names = "usb2-phy";
> + maximum-speed = "high-speed";
> ++ snps,dis-u1-entry-quirk;
> ++ snps,dis-u2-entry-quirk;
>
> -+ pcie5: pci@1c00000 {
> -+ device_type = "pci";
> -+ compatible = "qcom,pcie-x1e80100";
> -+ reg = <0 0x01c00000 0 0x3000>,
> -+ <0 0x7e000000 0 0xf1d>,
> -+ <0 0x7e000f40 0 0xa8>,
> -+ <0 0x7e001000 0 0x1000>,
> -+ <0 0x7e100000 0 0x100000>,
> -+ <0 0x01c03000 0 0x1000>;
> -+ reg-names = "parf",
> -+ "dbi",
> -+ "elbi",
> -+ "atu",
> -+ "config",
> -+ "mhi";
> -+ #address-cells = <3>;
> -+ #size-cells = <2>;
> -+ ranges = <0x01000000 0x0 0x00000000 0x0 0x7e200000 0x0 0x100000>,
> -+ <0x02000000 0x0 0x7e300000 0x0 0x7e300000 0x0 0x1d00000>;
> -+ bus-range = <0x00 0xff>;
> -+
> -+ dma-coherent;
> -+
> -+ linux,pci-domain = <5>;
> -+ num-lanes = <2>;
> -+
> -+ interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
> -+ <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
> -+ <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
> -+ <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
> -+ <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
> -+ <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>,
> -+ <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
> -+ <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
> -+ interrupt-names = "msi0",
> -+ "msi1",
> -+ "msi2",
> -+ "msi3",
> -+ "msi4",
> -+ "msi5",
> -+ "msi6",
> -+ "msi7";
> -+
> -+ #interrupt-cells = <1>;
> -+ interrupt-map-mask = <0 0 0 0x7>;
> -+ interrupt-map = <0 0 0 1 &intc 0 0 0 70 IRQ_TYPE_LEVEL_HIGH>,
> -+ <0 0 0 2 &intc 0 0 0 71 IRQ_TYPE_LEVEL_HIGH>,
> -+ <0 0 0 3 &intc 0 0 0 72 IRQ_TYPE_LEVEL_HIGH>,
> -+ <0 0 0 4 &intc 0 0 0 73 IRQ_TYPE_LEVEL_HIGH>;
> -+
> -+ clocks = <&gcc GCC_PCIE_5_AUX_CLK>,
> -+ <&gcc GCC_PCIE_5_CFG_AHB_CLK>,
> -+ <&gcc GCC_PCIE_5_MSTR_AXI_CLK>,
> -+ <&gcc GCC_PCIE_5_SLV_AXI_CLK>,
> -+ <&gcc GCC_PCIE_5_SLV_Q2A_AXI_CLK>,
> -+ <&gcc GCC_CFG_NOC_PCIE_ANOC_NORTH_AHB_CLK>,
> -+ <&gcc GCC_CNOC_PCIE_NORTH_SF_AXI_CLK>;
> -+ clock-names = "aux",
> -+ "cfg",
> -+ "bus_master",
> -+ "bus_slave",
> -+ "slave_q2a",
> -+ "noc_aggr",
> -+ "cnoc_sf_axi";
> -+
> -+ assigned-clocks = <&gcc GCC_PCIE_5_AUX_CLK>;
> -+ assigned-clock-rates = <19200000>;
> -+
> -+ interconnects = <&pcie_south_anoc MASTER_PCIE_5 QCOM_ICC_TAG_ALWAYS
> -+ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
> -+ <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
> -+ &cnoc_main SLAVE_PCIE_5 QCOM_ICC_TAG_ALWAYS>;
> -+ interconnect-names = "pcie-mem",
> -+ "cpu-pcie";
> -+
> -+ resets = <&gcc GCC_PCIE_5_BCR>,
> -+ <&gcc GCC_PCIE_5_LINK_DOWN_BCR>;
> -+ reset-names = "pci",
> -+ "link_down";
> -+
> -+ power-domains = <&gcc GCC_PCIE_5_GDSC>;
> -+ required-opps = <&rpmhpd_opp_nom>;
> -+
> -+ phys = <&pcie5_phy>;
> -+ phy-names = "pciephy";
> -+
> -+ status = "disabled";
> -+ };
> -+
> -+ pcie5_phy: phy@1c06000 {
> -+ compatible = "qcom,x1e80100-qmp-gen3x2-pcie-phy";
> -+ reg = <0 0x01c06000 0 0x2000>;
> -+
> -+ clocks = <&gcc GCC_PCIE_5_AUX_CLK>,
> -+ <&gcc GCC_PCIE_5_CFG_AHB_CLK>,
> -+ <&rpmhcc RPMH_CXO_CLK>,
> -+ <&gcc GCC_PCIE_5_PHY_RCHNG_CLK>,
> -+ <&gcc GCC_PCIE_5_PIPE_CLK>;
> -+ clock-names = "aux",
> -+ "cfg_ahb",
> -+ "ref",
> -+ "rchng",
> -+ "pipe";
> -+
> -+ resets = <&gcc GCC_PCIE_5_PHY_BCR>;
> -+ reset-names = "phy";
> -+
> -+ assigned-clocks = <&gcc GCC_PCIE_5_PHY_RCHNG_CLK>;
> -+ assigned-clock-rates = <100000000>;
> -+
> -+ power-domains = <&gcc GCC_PCIE_5_PHY_GDSC>;
> -+
> -+ #clock-cells = <0>;
> -+ clock-output-names = "pcie5_pipe_clk";
> -+
> -+ #phy-cells = <0>;
> -+
> -+ status = "disabled";
> -+ };
> ++ dma-coherent;
> +
> - pcie4: pci@1c08000 {
> - device_type = "pci";
> - compatible = "qcom,pcie-x1e80100";
> -@@ -3350,7 +3585,7 @@
> -
> - nsp_noc: interconnect@320c0000 {
> - compatible = "qcom,x1e80100-nsp-noc";
> -- reg = <0 0x320C0000 0 0xE080>;
> -+ reg = <0 0x320C0000 0 0xe080>;
> -
> - qcom,bcm-voters = <&apps_bcm_voter>;
> -
> -@@ -3385,6 +3620,8 @@
> -
> - pinctrl-0 = <&wsa2_swr_active>;
> - pinctrl-names = "default";
> -+ resets = <&lpass_audiocc LPASS_AUDIO_SWR_WSA2_CGCR>;
> -+ reset-names = "swr_audio_cgcr";
> -
> - qcom,din-ports = <4>;
> - qcom,dout-ports = <9>;
> -@@ -3433,6 +3670,8 @@
> - pinctrl-0 = <&rx_swr_active>;
> - pinctrl-names = "default";
> -
> -+ resets = <&lpass_audiocc LPASS_AUDIO_SWR_RX_CGCR>;
> -+ reset-names = "swr_audio_cgcr";
> - qcom,din-ports = <1>;
> - qcom,dout-ports = <11>;
> -
> -@@ -3497,6 +3736,8 @@
> -
> - pinctrl-0 = <&wsa_swr_active>;
> - pinctrl-names = "default";
> -+ resets = <&lpass_audiocc LPASS_AUDIO_SWR_WSA_CGCR>;
> -+ reset-names = "swr_audio_cgcr";
> -
> - qcom,din-ports = <4>;
> - qcom,dout-ports = <9>;
> -@@ -3517,6 +3758,13 @@
> - status = "disabled";
> - };
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +@@ -4245,6 +4540,8 @@
> + snps,dis_u2_susphy_quirk;
> + snps,dis_enblslpm_quirk;
> + snps,usb3_lpm_capable;
> ++ snps,dis-u1-entry-quirk;
> ++ snps,dis-u2-entry-quirk;
>
> -+ lpass_audiocc: clock-controller@6b6c000 {
> -+ compatible = "qcom,x1e80100-lpassaudiocc", "qcom,sc8280xp-lpassaudiocc";
> -+ reg = <0 0x06b6c000 0 0x1000>;
> -+ #clock-cells = <1>;
> -+ #reset-cells = <1>;
> -+ };
> -+
> - swr2: soundwire@6d30000 {
> - compatible = "qcom,soundwire-v2.0.0";
> - reg = <0 0x06d30000 0 0x10000>;
> -@@ -3526,6 +3774,8 @@
> - <GIC_SPI 520 IRQ_TYPE_LEVEL_HIGH>;
> - interrupt-names = "core", "wakeup";
> - label = "TX";
> -+ resets = <&lpasscc LPASS_AUDIO_SWR_TX_CGCR>;
> -+ reset-names = "swr_audio_cgcr";
> -
> - pinctrl-0 = <&tx_swr_active>;
> - pinctrl-names = "default";
> -@@ -3682,9 +3932,16 @@
> + dma-coherent;
> };
> - };
> -
> -+ lpasscc: clock-controller@6ea0000 {
> -+ compatible = "qcom,x1e80100-lpasscc", "qcom,sc8280xp-lpasscc";
> -+ reg = <0 0x06ea0000 0 0x12000>;
> -+ #clock-cells = <1>;
> -+ #reset-cells = <1>;
> -+ };
> -+
> - lpass_ag_noc: interconnect@7e40000 {
> - compatible = "qcom,x1e80100-lpass-ag-noc";
> -- reg = <0 0x7e40000 0 0xE080>;
> -+ reg = <0 0x07e40000 0 0xe080>;
> -
> - qcom,bcm-voters = <&apps_bcm_voter>;
> -
> -@@ -3693,7 +3950,7 @@
> -
> - lpass_lpiaon_noc: interconnect@7400000 {
> - compatible = "qcom,x1e80100-lpass-lpiaon-noc";
> -- reg = <0 0x7400000 0 0x19080>;
> -+ reg = <0 0x07400000 0 0x19080>;
> -
> - qcom,bcm-voters = <&apps_bcm_voter>;
> +@@ -4316,6 +4613,8 @@
> + snps,dis_u2_susphy_quirk;
> + snps,dis_enblslpm_quirk;
> + snps,usb3_lpm_capable;
> ++ snps,dis-u1-entry-quirk;
> ++ snps,dis-u2-entry-quirk;
> +
> + dma-coherent;
> +
> +@@ -4414,6 +4713,8 @@
> + snps,dis_u2_susphy_quirk;
> + snps,dis_enblslpm_quirk;
> + snps,usb3_lpm_capable;
> ++ snps,dis-u1-entry-quirk;
> ++ snps,dis-u2-entry-quirk;
>
> -@@ -3702,7 +3959,7 @@
> -
> - lpass_lpicx_noc: interconnect@7430000 {
> - compatible = "qcom,x1e80100-lpass-lpicx-noc";
> -- reg = <0 0x7430000 0 0x3A200>;
> -+ reg = <0 0x07430000 0 0x3A200>;
> -
> - qcom,bcm-voters = <&apps_bcm_voter>;
> -
> -@@ -3723,6 +3980,90 @@
> - status = "disabled";
> - };
> -
> -+ usb_mp_hsphy0: phy@88e1000 {
> -+ compatible = "qcom,x1e80100-snps-eusb2-phy",
> -+ "qcom,sm8550-snps-eusb2-phy";
> -+ reg = <0 0x088e1000 0 0x154>;
> -+ #phy-cells = <0>;
> -+
> -+ clocks = <&tcsr TCSR_USB3_MP0_CLKREF_EN>;
> -+ clock-names = "ref";
> -+
> -+ resets = <&gcc GCC_QUSB2PHY_HS0_MP_BCR>;
> -+
> -+ status = "disabled";
> -+ };
> -+
> -+ usb_mp_hsphy1: phy@88e2000 {
> -+ compatible = "qcom,x1e80100-snps-eusb2-phy",
> -+ "qcom,sm8550-snps-eusb2-phy";
> -+ reg = <0 0x088e2000 0 0x154>;
> -+ #phy-cells = <0>;
> -+
> -+ clocks = <&tcsr TCSR_USB3_MP1_CLKREF_EN>;
> -+ clock-names = "ref";
> -+
> -+ resets = <&gcc GCC_QUSB2PHY_HS1_MP_BCR>;
> -+
> -+ status = "disabled";
> -+ };
> -+
> -+ usb_mp_qmpphy0: phy@88e3000 {
> -+ compatible = "qcom,x1e80100-qmp-usb3-uni-phy";
> -+ reg = <0 0x088e3000 0 0x2000>;
> -+
> -+ clocks = <&gcc GCC_USB3_MP_PHY_AUX_CLK>,
> -+ <&rpmhcc RPMH_CXO_CLK>,
> -+ <&gcc GCC_USB3_MP_PHY_COM_AUX_CLK>,
> -+ <&gcc GCC_USB3_MP_PHY_PIPE_0_CLK>;
> -+ clock-names = "aux",
> -+ "ref",
> -+ "com_aux",
> -+ "pipe";
> -+
> -+ resets = <&gcc GCC_USB3_UNIPHY_MP0_BCR>,
> -+ <&gcc GCC_USB3UNIPHY_PHY_MP0_BCR>;
> -+ reset-names = "phy",
> -+ "phy_phy";
> -+
> -+ power-domains = <&gcc GCC_USB3_MP_SS0_PHY_GDSC>;
> -+
> -+ #clock-cells = <0>;
> -+ clock-output-names = "usb_mp_phy0_pipe_clk";
> -+
> -+ #phy-cells = <0>;
> -+
> -+ status = "disabled";
> -+ };
> -+
> -+ usb_mp_qmpphy1: phy@88e5000 {
> -+ compatible = "qcom,x1e80100-qmp-usb3-uni-phy";
> -+ reg = <0 0x088e5000 0 0x2000>;
> -+
> -+ clocks = <&gcc GCC_USB3_MP_PHY_AUX_CLK>,
> -+ <&rpmhcc RPMH_CXO_CLK>,
> -+ <&gcc GCC_USB3_MP_PHY_COM_AUX_CLK>,
> -+ <&gcc GCC_USB3_MP_PHY_PIPE_1_CLK>;
> -+ clock-names = "aux",
> -+ "ref",
> -+ "com_aux",
> -+ "pipe";
> -+
> -+ resets = <&gcc GCC_USB3_UNIPHY_MP1_BCR>,
> -+ <&gcc GCC_USB3UNIPHY_PHY_MP1_BCR>;
> -+ reset-names = "phy",
> -+ "phy_phy";
> -+
> -+ power-domains = <&gcc GCC_USB3_MP_SS1_PHY_GDSC>;
> -+
> -+ #clock-cells = <0>;
> -+ clock-output-names = "usb_mp_phy1_pipe_clk";
> -+
> -+ #phy-cells = <0>;
> -+
> -+ status = "disabled";
> -+ };
> -+
> - usb_1_ss2: usb@a0f8800 {
> - compatible = "qcom,x1e80100-dwc3", "qcom,dwc3";
> - reg = <0 0x0a0f8800 0 0x400>;
> -@@ -3897,6 +4238,92 @@
> - };
> - };
> + dma-coherent;
>
> -+ usb_mp: usb@a4f8800 {
> -+ compatible = "qcom,x1e80100-dwc3-mp", "qcom,dwc3";
> -+ reg = <0 0x0a4f8800 0 0x400>;
> -+
> -+ clocks = <&gcc GCC_CFG_NOC_USB3_MP_AXI_CLK>,
> -+ <&gcc GCC_USB30_MP_MASTER_CLK>,
> -+ <&gcc GCC_AGGRE_USB3_MP_AXI_CLK>,
> -+ <&gcc GCC_USB30_MP_SLEEP_CLK>,
> -+ <&gcc GCC_USB30_MP_MOCK_UTMI_CLK>,
> -+ <&gcc GCC_AGGRE_USB_NOC_AXI_CLK>,
> -+ <&gcc GCC_AGGRE_NOC_USB_NORTH_AXI_CLK>,
> -+ <&gcc GCC_AGGRE_NOC_USB_SOUTH_AXI_CLK>,
> -+ <&gcc GCC_SYS_NOC_USB_AXI_CLK>;
> -+ clock-names = "cfg_noc",
> -+ "core",
> -+ "iface",
> -+ "sleep",
> -+ "mock_utmi",
> -+ "noc_aggr",
> -+ "noc_aggr_north",
> -+ "noc_aggr_south",
> -+ "noc_sys";
> -+
> -+ assigned-clocks = <&gcc GCC_USB30_MP_MOCK_UTMI_CLK>,
> -+ <&gcc GCC_USB30_MP_MASTER_CLK>;
> -+ assigned-clock-rates = <19200000>,
> -+ <200000000>;
> -+
> -+ interrupts-extended = <&intc GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH>,
> -+ <&intc GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>,
> -+ <&intc GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>,
> -+ <&intc GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>,
> -+ <&pdc 52 IRQ_TYPE_EDGE_BOTH>,
> -+ <&pdc 51 IRQ_TYPE_EDGE_BOTH>,
> -+ <&pdc 54 IRQ_TYPE_EDGE_BOTH>,
> -+ <&pdc 53 IRQ_TYPE_EDGE_BOTH>,
> -+ <&pdc 55 IRQ_TYPE_LEVEL_HIGH>,
> -+ <&pdc 56 IRQ_TYPE_LEVEL_HIGH>;
> -+ interrupt-names = "pwr_event_1", "pwr_event_2",
> -+ "hs_phy_1", "hs_phy_2",
> -+ "dp_hs_phy_1", "dm_hs_phy_1",
> -+ "dp_hs_phy_2", "dm_hs_phy_2",
> -+ "ss_phy_1", "ss_phy_2";
> -+
> -+ power-domains = <&gcc GCC_USB30_MP_GDSC>;
> -+ required-opps = <&rpmhpd_opp_nom>;
> -+
> -+ resets = <&gcc GCC_USB30_MP_BCR>;
> -+
> -+ interconnects = <&usb_north_anoc MASTER_USB3_MP QCOM_ICC_TAG_ALWAYS
> -+ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
> -+ <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
> -+ &config_noc SLAVE_USB3_MP QCOM_ICC_TAG_ALWAYS>;
> -+ interconnect-names = "usb-ddr",
> -+ "apps-usb";
> -+
> -+ wakeup-source;
> -+
> -+ #address-cells = <2>;
> -+ #size-cells = <2>;
> -+ ranges;
> -+
> -+ status = "disabled";
> -+
> -+ usb_mp_dwc3: usb@a400000 {
> -+ compatible = "snps,dwc3";
> -+ reg = <0 0x0a400000 0 0xcd00>;
> -+
> -+ interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>;
> -+
> -+ iommus = <&apps_smmu 0x1400 0x0>;
> -+
> -+ phys = <&usb_mp_hsphy0>, <&usb_mp_qmpphy0>,
> -+ <&usb_mp_hsphy1>, <&usb_mp_qmpphy1>;
> -+ phy-names = "usb2-0", "usb3-0",
> -+ "usb2-1", "usb3-1";
> -+ dr_mode = "host";
> -+
> -+ snps,dis_u2_susphy_quirk;
> -+ snps,dis_enblslpm_quirk;
> -+ snps,usb3_lpm_capable;
> -+
> -+ dma-coherent;
> -+ };
> -+ };
> -+
> - usb_1_ss0: usb@a6f8800 {
> - compatible = "qcom,x1e80100-dwc3", "qcom,dwc3";
> - reg = <0 0x0a6f8800 0 0x400>;
> -@@ -4215,11 +4642,11 @@
> -
> - mdss_dp0: displayport-controller@ae90000 {
> - compatible = "qcom,x1e80100-dp";
> -- reg = <0 0xae90000 0 0x200>,
> -- <0 0xae90200 0 0x200>,
> -- <0 0xae90400 0 0x600>,
> -- <0 0xae91000 0 0x400>,
> -- <0 0xae91400 0 0x400>;
> -+ reg = <0 0x0ae90000 0 0x200>,
> -+ <0 0x0ae90200 0 0x200>,
> -+ <0 0x0ae90400 0 0x600>,
> -+ <0 0x0ae91000 0 0x400>,
> -+ <0 0x0ae91400 0 0x400>;
> -
> - interrupts-extended = <&mdss 12>;
> -
> -@@ -4298,11 +4725,11 @@
> -
> - mdss_dp1: displayport-controller@ae98000 {
> - compatible = "qcom,x1e80100-dp";
> -- reg = <0 0xae98000 0 0x200>,
> -- <0 0xae98200 0 0x200>,
> -- <0 0xae98400 0 0x600>,
> -- <0 0xae99000 0 0x400>,
> -- <0 0xae99400 0 0x400>;
> -+ reg = <0 0x0ae98000 0 0x200>,
> -+ <0 0x0ae98200 0 0x200>,
> -+ <0 0x0ae98400 0 0x600>,
> -+ <0 0x0ae99000 0 0x400>,
> -+ <0 0x0ae99400 0 0x400>;
> -
> - interrupts-extended = <&mdss 13>;
> -
> -@@ -4381,11 +4808,11 @@
> -
> - mdss_dp2: displayport-controller@ae9a000 {
> - compatible = "qcom,x1e80100-dp";
> -- reg = <0 0xae9a000 0 0x200>,
> -- <0 0xae9a200 0 0x200>,
> -- <0 0xae9a400 0 0x600>,
> -- <0 0xae9b000 0 0x400>,
> -- <0 0xae9b400 0 0x400>;
> -+ reg = <0 0x0ae9a000 0 0x200>,
> -+ <0 0x0ae9a200 0 0x200>,
> -+ <0 0x0ae9a400 0 0x600>,
> -+ <0 0x0ae9b000 0 0x400>,
> -+ <0 0x0ae9b400 0 0x400>;
> -
> - interrupts-extended = <&mdss 14>;
> -
> -@@ -4402,14 +4829,14 @@
> -
> - assigned-clocks = <&dispcc DISP_CC_MDSS_DPTX2_LINK_CLK_SRC>,
> - <&dispcc DISP_CC_MDSS_DPTX2_PIXEL0_CLK_SRC>;
> -- assigned-clock-parents = <&mdss_dp2_phy 0>,
> -- <&mdss_dp2_phy 1>;
> -+ assigned-clock-parents = <&usb_1_ss2_qmpphy QMP_USB43DP_DP_LINK_CLK>,
> -+ <&usb_1_ss2_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>;
> -
> - operating-points-v2 = <&mdss_dp2_opp_table>;
> -
> - power-domains = <&rpmhpd RPMHPD_MMCX>;
> -
> -- phys = <&mdss_dp2_phy>;
> -+ phys = <&usb_1_ss2_qmpphy QMP_USB43DP_DP_PHY>;
> - phy-names = "dp";
> -
> - #sound-dai-cells = <0>;
> -@@ -4463,11 +4890,11 @@
> -
> - mdss_dp3: displayport-controller@aea0000 {
> - compatible = "qcom,x1e80100-dp";
> -- reg = <0 0xaea0000 0 0x200>,
> -- <0 0xaea0200 0 0x200>,
> -- <0 0xaea0400 0 0x600>,
> -- <0 0xaea1000 0 0x400>,
> -- <0 0xaea1400 0 0x400>;
> -+ reg = <0 0x0aea0000 0 0x200>,
> -+ <0 0x0aea0200 0 0x200>,
> -+ <0 0x0aea0400 0 0x600>,
> -+ <0 0x0aea1000 0 0x400>,
> -+ <0 0x0aea1400 0 0x400>;
> -
> - interrupts-extended = <&mdss 15>;
> -
> -@@ -4597,8 +5024,8 @@
> - <&usb_1_ss0_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>,
> - <&usb_1_ss1_qmpphy QMP_USB43DP_DP_LINK_CLK>, /* dp1 */
> - <&usb_1_ss1_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>,
> -- <&mdss_dp2_phy 0>, /* dp2 */
> -- <&mdss_dp2_phy 1>,
> -+ <&usb_1_ss2_qmpphy QMP_USB43DP_DP_LINK_CLK>, /* dp2 */
> -+ <&usb_1_ss2_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>,
> - <&mdss_dp3_phy 0>, /* dp3 */
> - <&mdss_dp3_phy 1>;
> - power-domains = <&rpmhpd RPMHPD_MMCX>;
> -@@ -4631,6 +5058,11 @@
> - #clock-cells = <0>;
> - };
> -
> -+ sram@c3f0000 {
> -+ compatible = "qcom,rpmh-stats";
> -+ reg = <0 0x0c3f0000 0 0x400>;
> -+ };
> -+
> - spmi: arbiter@c400000 {
> - compatible = "qcom,x1e80100-spmi-pmic-arb";
> - reg = <0 0x0c400000 0 0x3000>,
> -@@ -5241,12 +5673,50 @@
> - bias-disable;
> +@@ -5629,6 +5930,34 @@
> + };
> };
>
> -+ qup_uart2_default: qup-uart2-default-state {
> ++ qup_uart14_default: qup-uart14-default-state {
> + cts-pins {
> -+ pins = "gpio8";
> -+ function = "qup0_se2";
> -+ drive-strength = <2>;
> -+ bias-disable;
> ++ pins = "gpio56";
> ++ function = "qup1_se6";
> ++ bias-bus-hold;
> + };
> +
> + rts-pins {
> -+ pins = "gpio9";
> -+ function = "qup0_se2";
> ++ pins = "gpio57";
> ++ function = "qup1_se6";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + tx-pins {
> -+ pins = "gpio10";
> -+ function = "qup0_se2";
> ++ pins = "gpio58";
> ++ function = "qup1_se6";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + rx-pins {
> -+ pins = "gpio11";
> -+ function = "qup0_se2";
> -+ drive-strength = <2>;
> -+ bias-disable;
> ++ pins = "gpio59";
> ++ function = "qup1_se6";
> ++ bias-pull-up;
> + };
> + };
> +
> qup_uart21_default: qup-uart21-default-state {
> -- /* TX, RX */
> -- pins = "gpio86", "gpio87";
> -- function = "qup2_se5";
> -- drive-strength = <2>;
> -- bias-disable;
> -+ tx-pins {
> -+ pins = "gpio86";
> -+ function = "qup2_se5";
> -+ drive-strength = <2>;
> -+ bias-disable;
> -+ };
> -+
> -+ rx-pins {
> -+ pins = "gpio87";
> -+ function = "qup2_se5";
> -+ drive-strength = <2>;
> -+ bias-disable;
> -+ };
> - };
> - };
> -
> -@@ -5384,6 +5854,13 @@
> + tx-pins {
> + pins = "gpio86";
> +@@ -5780,6 +6109,13 @@
> };
> };
>
> @@ -1015,7 +912,7 @@ Index: src/arm64/qcom/x1e80100.dtsi
> apps_rsc: rsc@17500000 {
> compatible = "qcom,rpmh-rsc";
> reg = <0 0x17500000 0 0x10000>,
> -@@ -5564,6 +6041,25 @@
> +@@ -5960,6 +6296,25 @@
> frame-number = <6>;
>
> status = "disabled";
> Index: sysutils/firmware/arm64-qcom-dtb/pkg/PLIST
> ===================================================================
> RCS file: /cvs/ports/sysutils/firmware/arm64-qcom-dtb/pkg/PLIST,v
> diff -u -p -r1.5 PLIST
> --- sysutils/firmware/arm64-qcom-dtb/pkg/PLIST 22 Sep 2024 15:05:10 -0000 1.5
> +++ sysutils/firmware/arm64-qcom-dtb/pkg/PLIST 25 Jan 2025 12:51:42 -0000
> @@ -3,6 +3,12 @@ firmware/dtb/qcom/
> firmware/dtb/qcom/sc8280xp-lenovo-thinkpad-x13s.dtb
> firmware/dtb/qcom/x1e78100-lenovo-thinkpad-t14s.dtb
> firmware/dtb/qcom/x1e80100-asus-vivobook-s15.dtb
> +firmware/dtb/qcom/x1e80100-crd.dtb
> +firmware/dtb/qcom/x1e80100-dell-xps13-9345.dtb
> +firmware/dtb/qcom/x1e80100-honor-magicbook-art-14.dtb
> firmware/dtb/qcom/x1e80100-hp-omnibook-x14.dtb
> firmware/dtb/qcom/x1e80100-lenovo-yoga-slim7x.dtb
> +firmware/dtb/qcom/x1e80100-microsoft-romulus13.dtb
> +firmware/dtb/qcom/x1e80100-microsoft-romulus15.dtb
> +firmware/dtb/qcom/x1e80100-qcp.dtb
> firmware/dtb/qcom/x1e80100-samsung-galaxy-book4-edge.dtb
>

No comments:

Post a Comment