mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v7 0/3] Add initial DTS for Samsung Galaxy Book4 Edge
@ 2026-09-20 18:41 Maxim Storetvedt
  2026-09-20 18:41 ` [PATCH v7 1/3] dt-bindings: arm: Add " Maxim Storetvedt
                   ` (3 more replies)
  0 siblings, 4 replies; 14+ messages in thread
From: Maxim Storetvedt @ 2026-09-20 18:41 UTC (permalink / raw)
  To: andersson, robh, krzk+dt, conor+dt
  Cc: marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel,
	abel.vesa, abel.vesa, johan, konradybcio, kirill

This patch introduces devicetrees to support the hamoa Samsung Galaxy Book4
Edge, and includes the X1E80100 14-inch SKU and X1E84100 16-inch SKU.

It continues the earlier patch series started by Marcus Glocker, and the
previously submitted v6 [1].

Supported:
- Keyboard
- Touchpad
- USB type-c
- Display
- HDMI
- WiFi
- Bluetooth
- ADSP / CDSP
- GPU
- UFS
- Suspend

Other features (such as the camera and touchscreen) are also confirmed working,
but for now need multiple patches/changes out of scope for this submission.
These are tracked downstream in the meantime [2].

Changed from v6:
- Updated to match current linux-next
- Use 14 inch SKU as base for the dtsi

Changed from v5:
- Reworked DTS/DTSI for both 14- & 16-inch SKUs
- Added Galaxy Book4 Edge to QSEECOM
- Removed UFS node from the patch

Changed from v4:
* Fix previously missed commits:
- Improved commit messages.
- Added missing clock line for ufs.
- Removed invalid microamp lines for ufs.

Changed from v3:
- Improved commit messages.
- Added missing clock line for ufs.
- Removed invalid microamp lines for ufs.

Changed from v2:
- Squash Makefile patch to new DTS file patch.

Changed from v1:
- Provide the patch in the expected format.
- Added missing bindings.
- Removed sound node.
- Changed regulator syntax to be consistent.
- Changed touchscreen node comment, and removed false pin definition.
- Rename ufshc@ to ufs@.

[1] https://lore.kernel.org/all/20260322160317.424797-1-mstoretv@cern.ch/
[2] https://github.com/zensanp/linux-book4-edge/

Maxim Storetvedt (3):
  dt-bindings: arm: Add Samsung Galaxy Book4 Edge
  firmware: qcom: scm: Allow QSEECOM on the Samsung Galaxy Book4 Edge
  arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees

 .../devicetree/bindings/arm/qcom.yaml         |    7 +
 arch/arm64/boot/dts/qcom/Makefile             |    2 +
 .../qcom/x1-samsung-galaxy-book4-edge.dtsi    | 1537 +++++++++++++++++
 .../x1e80100-samsung-galaxy-book4-edge-14.dts |   28 +
 .../x1e84100-samsung-galaxy-book4-edge-16.dts |   31 +
 drivers/firmware/qcom/qcom_scm.c              |    1 +
 6 files changed, 1606 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi
 create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts
 create mode 100644 arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts


base-commit: 3f2425f5b5bbbdd991ca9cdfd5502e68d8895998
-- 
2.43.0


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH v7 1/3] dt-bindings: arm: Add Samsung Galaxy Book4 Edge
  2026-09-20 18:41 [PATCH v7 0/3] Add initial DTS for Samsung Galaxy Book4 Edge Maxim Storetvedt
@ 2026-09-20 18:41 ` Maxim Storetvedt
  2026-09-24 13:06   ` Krzysztof Kozlowski
  2026-09-20 18:41 ` [PATCH v7 2/3] firmware: qcom: scm: Allow QSEECOM on the " Maxim Storetvedt
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 14+ messages in thread
From: Maxim Storetvedt @ 2026-09-20 18:41 UTC (permalink / raw)
  To: andersson, robh, krzk+dt, conor+dt
  Cc: marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel,
	abel.vesa, abel.vesa, johan, konradybcio, kirill

Add the Samsung Galaxy Book4 Edge compatibility bindings

Signed-off-by: Maxim Storetvedt <mstoretv@cern.ch>
---
 Documentation/devicetree/bindings/arm/qcom.yaml | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index cf9d940f7..439ae9778 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -1226,6 +1226,13 @@ properties:
               - qcom,x1e80100-qcp
           - const: qcom,x1e80100
 
+      - items:
+          - enum:
+              - samsung,galaxy-book4-edge-14
+              - samsung,galaxy-book4-edge-16
+          - const: samsung,galaxy-book4-edge
+          - const: qcom,x1e80100
+
       - items:
           - enum:
               - qcom,hamoa-iot-evk
-- 
2.43.0


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH v7 2/3] firmware: qcom: scm: Allow QSEECOM on the Samsung Galaxy Book4 Edge
  2026-09-20 18:41 [PATCH v7 0/3] Add initial DTS for Samsung Galaxy Book4 Edge Maxim Storetvedt
  2026-09-20 18:41 ` [PATCH v7 1/3] dt-bindings: arm: Add " Maxim Storetvedt
@ 2026-09-20 18:41 ` Maxim Storetvedt
  2026-09-20 18:41 ` [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees Maxim Storetvedt
  2026-09-29 10:22 ` [PATCH v7 0/3] Add initial DTS for Samsung Galaxy Book4 Edge Antheas Kapenekakis
  3 siblings, 0 replies; 14+ messages in thread
From: Maxim Storetvedt @ 2026-09-20 18:41 UTC (permalink / raw)
  To: andersson, robh, krzk+dt, conor+dt
  Cc: marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel,
	abel.vesa, abel.vesa, johan, konradybcio, kirill

Required for EFI variable access on this device

Signed-off-by: Maxim Storetvedt <mstoretv@cern.ch>
---
 drivers/firmware/qcom/qcom_scm.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_scm.c
index df20773dd..ddb2f5d1f 100644
--- a/drivers/firmware/qcom/qcom_scm.c
+++ b/drivers/firmware/qcom/qcom_scm.c
@@ -2253,6 +2253,7 @@ static const struct of_device_id qcom_scm_qseecom_allowlist[] __maybe_unused = {
 	{ .compatible = "qcom,x1e80100-crd" },
 	{ .compatible = "qcom,x1e80100-qcp" },
 	{ .compatible = "qcom,x1p42100-crd" },
+	{ .compatible = "samsung,galaxy-book4-edge" },
 	{ }
 };
 
-- 
2.43.0


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees
  2026-09-20 18:41 [PATCH v7 0/3] Add initial DTS for Samsung Galaxy Book4 Edge Maxim Storetvedt
  2026-09-20 18:41 ` [PATCH v7 1/3] dt-bindings: arm: Add " Maxim Storetvedt
  2026-09-20 18:41 ` [PATCH v7 2/3] firmware: qcom: scm: Allow QSEECOM on the " Maxim Storetvedt
@ 2026-09-20 18:41 ` Maxim Storetvedt
  2026-09-24 13:08   ` Krzysztof Kozlowski
  2026-09-28 16:44   ` Antheas Kapenekakis
  2026-09-29 10:22 ` [PATCH v7 0/3] Add initial DTS for Samsung Galaxy Book4 Edge Antheas Kapenekakis
  3 siblings, 2 replies; 14+ messages in thread
From: Maxim Storetvedt @ 2026-09-20 18:41 UTC (permalink / raw)
  To: andersson, robh, krzk+dt, conor+dt
  Cc: marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel,
	abel.vesa, abel.vesa, johan, konradybcio, kirill

Adds devicetrees for the 14-inch and 16-inch hamoa SKUs of the Samsung Galaxy Book4 Edge.

These use a common dtsi derived from nodes that were able to work on Linux
from the initial Galaxy Book4 Edge DTS by Marcus:

Link: https://lore.kernel.org/all/p3mhtj2rp6y2ezuwpd2gu7dwx5cbckfu4s4pazcudi4j2wogtr@4yecb2bkeyms/

combined with the patch series the Honor Magicbook Art 14, which shares device similarities:

Link: https://lore.kernel.org/all/20260629154812.9066-1-mail@etehtsea.me/

as well as a few more adjustments on top of that again to get additional features working.
Special thanks to Jesse Ahn for helping expand on what would eventually become this dtsi.

Based-on-a-patch-by: Marcus Glocker <marcus@nazgul.ch>
Based-on-a-patch-by: Kirill A. Korinsky <kirill@korins.ky>
Signed-off-by: Maxim Storetvedt <mstoretv@cern.ch>
---
 arch/arm64/boot/dts/qcom/Makefile             |    2 +
 .../qcom/x1-samsung-galaxy-book4-edge.dtsi    | 1537 +++++++++++++++++
 .../x1e80100-samsung-galaxy-book4-edge-14.dts |   28 +
 .../x1e84100-samsung-galaxy-book4-edge-16.dts |   31 +
 4 files changed, 1598 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi
 create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts
 create mode 100644 arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts

diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 5c19f945c..d8273f86f 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -498,3 +498,5 @@ x1p64100-microsoft-denali-el2-dtbs	:= x1p64100-microsoft-denali.dtb x1-el2.dtbo
 dtb-$(CONFIG_ARCH_QCOM)	+= x1p64100-microsoft-denali.dtb x1p64100-microsoft-denali-el2.dtb
 x1p42100-microsoft-sp12in-el2-dtbs	:= x1p42100-microsoft-sp12in.dtb x1-el2.dtbo
 dtb-$(CONFIG_ARCH_QCOM)	+= x1p42100-microsoft-sp12in.dtb x1p42100-microsoft-sp12in-el2.dtb
+dtb-$(CONFIG_ARCH_QCOM)	+= x1e80100-samsung-galaxy-book4-edge-14.dtb
+dtb-$(CONFIG_ARCH_QCOM)	+= x1e84100-samsung-galaxy-book4-edge-16.dtb
diff --git a/arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi b/arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi
new file mode 100644
index 000000000..51ec68bba
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi
@@ -0,0 +1,1537 @@
+// 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>
+ * Copyright (c) 2025 Valentin Manea <valentin.manea@mrs.ro>
+ */
+
+/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 "hamoa.dtsi"
+#include "hamoa-pmics.dtsi"
+
+/ {
+	model = "Samsung Galaxy Book4 Edge";
+	compatible = "samsung,galaxy-book4-edge", "qcom,x1e80100";
+	chassis-type = "laptop";
+
+	aliases {
+		serial0 = &uart21;
+		serial1 = &uart14;
+	};
+
+	wcd938x: audio-codec {
+		compatible = "qcom,wcd9385-codec";
+
+		pinctrl-0 = <&wcd_default>;
+		pinctrl-names = "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>;
+		};
+	};
+
+	hdmi-bridge {
+		compatible = "realtek,rtd2171";
+
+		pinctrl-0 = <&hdmi_hpd_default>;
+		pinctrl-names = "default";
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				hdmi_bridge_dp_in: endpoint {
+					remote-endpoint = <&usb_1_ss2_qmpphy_out_dp>;
+				};
+			};
+
+			port@1 {
+				reg = <1>;
+
+				hdmi_bridge_tmds_out: endpoint {
+					remote-endpoint = <&hdmi_con>;
+				};
+			};
+		};
+	};
+
+	hdmi-connector {
+		compatible = "hdmi-connector";
+		type = "a";
+
+		port {
+			hdmi_con: endpoint {
+				remote-endpoint = <&hdmi_bridge_tmds_out>;
+			};
+		};
+	};
+
+	pmic-glink {
+		compatible = "qcom,x1e80100-pmic-glink",
+			     "qcom,pmic-glink";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>,
+				    <&tlmm 123 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>;
+					};
+				};
+
+				port@2 {
+					reg = <2>;
+
+					pmic_glink_ss0_sbu: endpoint {
+						remote-endpoint = <&usb_1_ss0_sbu_mux>;
+					};
+				};
+			};
+		};
+
+		/* 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>;
+					};
+				};
+
+				port@2 {
+					reg = <2>;
+
+					pmic_glink_ss1_sbu: endpoint {
+						remote-endpoint = <&usb_1_ss1_sbu_mux>;
+					};
+				};
+			};
+		};
+	};
+
+	reserved-memory {
+		linux,cma {
+			compatible = "shared-dma-pool";
+			size = <0x0 0x8000000>;
+			reusable;
+			linux,cma-default;
+		};
+	};
+
+	sound {
+		compatible = "qcom,x1e80100-sndcard";
+		model = "X1E80100-GalaxyBook4Edge";
+		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",
+				"TX SWR_INPUT1", "ADC2_OUTPUT";
+
+		wcd-playback-dai-link {
+			link-name = "WCD Playback";
+
+			codec {
+				sound-dai = <&wcd938x 0>, <&swr1 0>, <&lpass_rxmacro 0>;
+			};
+
+			cpu {
+				sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
+			};
+
+			platform {
+				sound-dai = <&q6apm>;
+			};
+		};
+
+		wcd-capture-dai-link {
+			link-name = "WCD Capture";
+
+			codec {
+				sound-dai = <&wcd938x 1>, <&swr2 1>, <&lpass_txmacro 0>;
+			};
+
+			cpu {
+				sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>;
+			};
+
+			platform {
+				sound-dai = <&q6apm>;
+			};
+		};
+
+		wsa-dai-link {
+			link-name = "WSA Playback";
+
+			codec {
+				sound-dai = <&left_woofer>, <&left_tweeter>,
+					    <&swr0 0>, <&lpass_wsamacro 0>,
+					    <&right_woofer>, <&right_tweeter>,
+					    <&swr3 0>, <&lpass_wsa2macro 0>;
+			};
+
+			cpu {
+				sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
+			};
+
+			platform {
+				sound-dai = <&q6apm>;
+			};
+		};
+
+		va-dai-link {
+			link-name = "VA Capture";
+
+			codec {
+				sound-dai = <&lpass_vamacro 0>;
+			};
+
+			cpu {
+				sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
+			};
+
+			platform {
+				sound-dai = <&q6apm>;
+			};
+		};
+	};
+
+	vreg_octa_vdd: regulator-octa-vdd {
+		compatible = "regulator-fixed";
+
+		regulator-name = "VREG_OCTA_VDD";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+
+		gpio = <&tlmm 111 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&octa_vdd_en>;
+		pinctrl-names = "default";
+
+		startup-delay-us = <1000>;
+		regulator-enable-ramp-delay = <1000>;
+
+		regulator-always-on;
+		regulator-boot-on;
+	};
+
+	vreg_display_vdd: regulator-display-vdd {
+		compatible = "regulator-fixed";
+
+		regulator-name = "VREG_DISPLAY_VDD";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+
+		gpio = <&tlmm 120 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&display_vdd_en>;
+		pinctrl-names = "default";
+
+		startup-delay-us = <400000>;
+		regulator-enable-ramp-delay = <400000>;
+
+		vin-supply = <&vreg_octa_vdd>;
+
+		regulator-always-on;
+		regulator-boot-on;
+	};
+
+	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_LOW>;
+		enable-active-low;
+
+		pinctrl-0 = <&edp_reg_en>;
+		pinctrl-names = "default";
+
+		startup-delay-us = <1000>;
+		regulator-enable-ramp-delay = <1000>;
+
+		vin-supply = <&vreg_display_vdd>;
+
+		regulator-always-on;
+		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-0 = <&misc_3p3_reg_en>;
+		pinctrl-names = "default";
+
+		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;
+	};
+
+	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;
+		regulator-always-on;
+	};
+
+	usb-1-ss0-sbu-mux {
+		compatible = "onnn,fsusb42", "gpio-sbu-mux";
+
+		enable-gpios = <&tlmm 168 GPIO_ACTIVE_LOW>;
+		select-gpios = <&tlmm 167 GPIO_ACTIVE_HIGH>;
+
+		pinctrl-0 = <&usb_1_ss0_sbu_default>;
+		pinctrl-names = "default";
+
+		mode-switch;
+		orientation-switch;
+
+		port {
+			usb_1_ss0_sbu_mux: endpoint {
+				remote-endpoint = <&pmic_glink_ss0_sbu>;
+			};
+		};
+	};
+
+	usb-1-ss1-sbu-mux {
+		compatible = "onnn,fsusb42", "gpio-sbu-mux";
+
+		enable-gpios = <&tlmm 179 GPIO_ACTIVE_LOW>;
+		select-gpios = <&tlmm 178 GPIO_ACTIVE_HIGH>;
+
+		pinctrl-0 = <&usb_1_ss1_sbu_default>;
+		pinctrl-names = "default";
+
+		mode-switch;
+		orientation-switch;
+
+		port {
+			usb_1_ss1_sbu_mux: endpoint {
+				remote-endpoint = <&pmic_glink_ss1_sbu>;
+			};
+		};
+	};
+
+	wcn7850-pmu {
+		compatible = "qcom,wcn7850-pmu";
+
+		wlan-enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
+		bt-enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>;
+
+		pinctrl-0 = <&wcn_wlan_bt_en>;
+		pinctrl-names = "default";
+
+		regulators {
+			vreg_pmu_rfa_cmn: ldo0 {
+				regulator-name = "vreg_pmu_rfa_cmn";
+			};
+
+			vreg_pmu_aon_0p59: ldo1 {
+				regulator-name = "vreg_pmu_aon_0p59";
+			};
+
+			vreg_pmu_wlcx_0p8: ldo2 {
+				regulator-name = "vreg_pmu_wlcx_0p8";
+			};
+
+			vreg_pmu_wlmx_0p85: ldo3 {
+				regulator-name = "vreg_pmu_wlmx_0p85";
+			};
+
+			vreg_pmu_btcmx_0p85: ldo4 {
+				regulator-name = "vreg_pmu_btcmx_0p85";
+			};
+
+			vreg_pmu_rfa_0p8: ldo5 {
+				regulator-name = "vreg_pmu_rfa_0p8";
+			};
+
+			vreg_pmu_rfa_1p2: ldo6 {
+				regulator-name = "vreg_pmu_rfa_1p2";
+			};
+
+			vreg_pmu_rfa_1p8: ldo7 {
+				regulator-name = "vreg_pmu_rfa_1p8";
+			};
+
+			vreg_pmu_pcie_0p9: ldo8 {
+				regulator-name = "vreg_pmu_pcie_0p9";
+			};
+
+			vreg_pmu_pcie_1p8: ldo9 {
+				regulator-name = "vreg_pmu_pcie_1p8";
+			};
+		};
+	};
+};
+
+&apps_rsc {
+	regulators-0 {
+		compatible = "qcom,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-always-on;
+			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-always-on;
+			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>;
+			regulator-always-on;
+		};
+
+		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>;
+			regulator-always-on;
+		};
+
+		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 = <1256000>;
+			regulator-max-microvolt = <1256000>;
+			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>;
+		};
+	};
+};
+
+&camcc {
+	status = "okay";
+};
+
+&gpu {
+	status = "okay";
+
+	zap-shader {
+		firmware-name = "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/qcdxkmsuc8380.mbn";
+	};
+};
+
+&i2c0 {
+	clock-frequency = <400000>;
+
+	status = "okay";
+
+	keyboard@5 {
+		compatible = "hid-over-i2c";
+		reg = <0x5>;
+
+		hid-descr-addr = <0x20>;
+		interrupts-extended = <&tlmm 67 IRQ_TYPE_LEVEL_LOW>;
+
+		pinctrl-0 = <&kybd_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@5d {
+		compatible = "hid-over-i2c";
+		reg = <0x5d>;
+
+		hid-descr-addr = <0x1>;
+		//interrupts-extended = <&tlmm 34 IRQ_TYPE_LEVEL_LOW>;
+
+		vdd-supply = <&vreg_misc_3p3>;
+
+		//pinctrl-0 = <&ts0_default>;
+		//pinctrl-names = "default";
+	};
+};
+
+&i2c13 {
+	clock-frequency = <400000>;
+
+	status = "okay";
+};
+
+&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_dp0 {
+	status = "okay";
+};
+
+&mdss_dp0_out {
+	data-lanes = <0 1>;
+	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
+&mdss_dp1 {
+	status = "okay";
+};
+
+&mdss_dp1_out {
+	data-lanes = <0 1>;
+	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
+&mdss_dp2 {
+	status = "okay";
+};
+
+&mdss_dp2_out {
+	data-lanes = <0 1 2 3>;
+};
+
+&mdss_dp3 {
+	/delete-property/ #sound-dai-cells;
+
+	pinctrl-0 = <&edp0_hpd_default>;
+	pinctrl-names = "default";
+
+	status = "okay";
+
+	aux-bus {
+		panel: panel {
+			enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;
+			power-supply = <&vreg_edp_3p3>;
+			no-hpd;
+
+			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>;
+
+				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";
+};
+
+&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>;
+	};
+};
+
+&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/SAMSUNG/galaxy-book4-edge/qcadsp8380.mbn",
+			"qcom/x1e80100/SAMSUNG/galaxy-book4-edge/adsp_dtbs.elf";
+
+	status = "okay";
+};
+
+&remoteproc_cdsp {
+	firmware-name = "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/qccdsp8380.mbn",
+			"qcom/x1e80100/SAMSUNG/galaxy-book4-edge/cdsp_dtbs.elf";
+
+	status = "okay";
+};
+
+&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) */
+
+	edp_reg_en: edp-reg-en-state {
+		pins = "gpio70";
+		function = "gpio";
+		drive-strength = <16>;
+		bias-pull-up;
+		output-low;
+	};
+
+	octa_vdd_en: octa-vdd-en-state {
+		pins = "gpio111";
+		function = "gpio";
+		drive-strength = <16>;
+		bias-pull-up;
+		output-high;
+	};
+
+	display_vdd_en: display-vdd-en-state {
+		pins = "gpio120";
+		function = "gpio";
+		drive-strength = <16>;
+		bias-pull-up;
+		output-high;
+	};
+
+	edp0_hpd_default: edp0-hpd-default-state {
+		pins = "gpio119";
+		function = "edp0_hot";
+		bias-pull-down;
+		input-enable;
+		drive-strength = <2>;
+	};
+
+
+	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;
+	};
+
+	hdmi_hpd_default: hdmi-hpd-default-state {
+		pins = "gpio126";
+		function = "usb2_dp";
+		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;
+	};
+
+	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>;
+		};
+	};
+
+	usb_1_ss0_sbu_default: usb-1-ss0-sbu-state {
+		mode-pins {
+			pins = "gpio166";
+			function = "gpio";
+			bias-disable;
+			drive-strength = <2>;
+			output-high;
+		};
+
+		oe-n-pins {
+			pins = "gpio168";
+			function = "gpio";
+			bias-disable;
+			drive-strength = <2>;
+		};
+
+		sel-pins {
+			pins = "gpio167";
+			function = "gpio";
+			bias-disable;
+			drive-strength = <2>;
+		};
+
+	};
+
+	usb_1_ss1_sbu_default: usb-1-ss1-sbu-state {
+		mode-pins {
+			pins = "gpio177";
+			function = "gpio";
+			bias-disable;
+			drive-strength = <2>;
+			output-high;
+		};
+
+		oe-n-pins {
+			pins = "gpio179";
+			function = "gpio";
+			bias-disable;
+			drive-strength = <2>;
+		};
+
+		sel-pins {
+			pins = "gpio178";
+			function = "gpio";
+			bias-disable;
+			drive-strength = <2>;
+		};
+	};
+
+	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;
+	};
+
+	wcd_default: wcd-reset-n-active-state {
+		pins = "gpio191";
+		function = "gpio";
+		drive-strength = <16>;
+		bias-disable;
+		output-low;
+	};
+};
+
+&ufs_mem_hc {
+	status = "okay";
+
+	reset-gpios = <&tlmm 238 GPIO_ACTIVE_LOW>;
+	vcc-supply = <&vreg_l17b_2p5>;
+	vcc-max-microamp = <600000>;
+
+	vccq-supply = <&vreg_l2i_1p2>;
+	vccq-max-microamp = <600000>;
+};
+
+&ufs_mem_phy {
+	status = "okay";
+
+	vdda-phy-supply = <&vreg_l3i_0p8>;
+	vdda-pll-supply = <&vreg_l3e_1p2>;
+};
+
+&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";
+};
+
+&usb_1_ss0 {
+	status = "okay";
+};
+
+&usb_1_ss0_hsphy {
+	vdd-supply = <&vreg_l3j_0p8>;
+	vdda12-supply = <&vreg_l2j_1p2>;
+
+	status = "okay";
+};
+
+&usb_1_ss0_qmpphy {
+	vdda-phy-supply = <&vreg_l2j_1p2>;
+	vdda-pll-supply = <&vreg_l1j_0p8>;
+
+	status = "okay";
+};
+
+&usb_1_ss0 {
+	dr_mode = "host";
+};
+
+&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 {
+	status = "okay";
+};
+
+&usb_1_ss1_hsphy {
+	vdd-supply = <&vreg_l3j_0p8>;
+	vdda12-supply = <&vreg_l2j_1p2>;
+
+	status = "okay";
+};
+
+&usb_1_ss1_qmpphy {
+	vdda-phy-supply = <&vreg_l2j_1p2>;
+	vdda-pll-supply = <&vreg_l2d_0p9>;
+
+	status = "okay";
+};
+
+&usb_1_ss1 {
+	dr_mode = "host";
+};
+
+&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_1_ss2_qmpphy {
+	vdda-phy-supply = <&vreg_l2j_1p2>;
+	vdda-pll-supply = <&vreg_l2d_0p9>;
+
+	/delete-property/ mode-switch;
+	/delete-property/ orientation-switch;
+
+	status = "okay";
+
+	ports {
+		port@0 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			/delete-node/ endpoint;
+
+			usb_1_ss2_qmpphy_out_dp: endpoint@0 {
+				reg = <0>;
+
+				data-lanes = <3 2 1 0>;
+				remote-endpoint = <&hdmi_bridge_dp_in>;
+			};
+		};
+	};
+};
+
+
+/* MP0 goes to the USB-A port(USB3) and FPC */
+&usb_mp {
+	status = "okay";
+
+	/* Limit to single port */
+	phys = <&usb_mp_hsphy0>, <&usb_mp_qmpphy0>;
+	phy-names = "usb2-0", "usb3-0";
+};
+
+&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";
+};
diff --git a/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts b/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts
new file mode 100644
index 000000000..333a69a8a
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts
@@ -0,0 +1,28 @@
+// SPDX-License-Identifier: BSD-3-Clause
+
+/dts-v1/;
+
+#include "x1-samsung-galaxy-book4-edge.dtsi"
+
+/ {
+	model = "Samsung Galaxy Book4 Edge (14 inch)";
+	compatible = "samsung,galaxy-book4-edge-14", "samsung,galaxy-book4-edge",
+		     "qcom,x1e80100";
+};
+
+&i2c13 {
+	touchpad@40 {
+		compatible = "hid-over-i2c";
+		reg = <0x40>;
+
+		hid-descr-addr = <0xe>;
+		interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>;
+
+		pinctrl-0 = <&tpad_default>;
+		pinctrl-names = "default";
+	};
+};
+
+&panel {
+	compatible = "samsung,atna40cu07", "samsung,atna33xc20";
+};
diff --git a/arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts b/arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts
new file mode 100644
index 000000000..947eea411
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts
@@ -0,0 +1,31 @@
+// SPDX-License-Identifier: BSD-3-Clause
+
+/dts-v1/;
+
+#include "x1-samsung-galaxy-book4-edge.dtsi"
+
+/ {
+	model = "Samsung Galaxy Book4 Edge (16 inch)";
+	compatible = "samsung,galaxy-book4-edge-16", "samsung,galaxy-book4-edge",
+		     "qcom,x1e80100";
+};
+
+&i2c13 {
+	touchpad@50 {
+		compatible = "hid-over-i2c";
+		reg = <0x50>;
+
+		hid-descr-addr = <0xd1>;
+		interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>;
+
+		vdd-supply = <&vreg_misc_3p3>;
+		vddl-supply = <&vreg_l15b_1p8>;
+
+		pinctrl-0 = <&tpad_default>;
+		pinctrl-names = "default";
+	};
+};
+
+&panel {
+	compatible = "samsung,atna60cl07", "samsung,atna33xc20";
+};
-- 
2.43.0


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v7 1/3] dt-bindings: arm: Add Samsung Galaxy Book4 Edge
  2026-09-20 18:41 ` [PATCH v7 1/3] dt-bindings: arm: Add " Maxim Storetvedt
@ 2026-09-24 13:06   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 14+ messages in thread
From: Krzysztof Kozlowski @ 2026-09-24 13:06 UTC (permalink / raw)
  To: Maxim Storetvedt
  Cc: andersson, robh, krzk+dt, conor+dt, marcus, marijn.suijten,
	linux-arm-msm, devicetree, linux-kernel, abel.vesa, abel.vesa,
	johan, konradybcio, kirill

On Sun, Sep 20, 2026 at 08:41:02PM +0200, Maxim Storetvedt wrote:
> Add the Samsung Galaxy Book4 Edge compatibility bindings
> 
> Signed-off-by: Maxim Storetvedt <mstoretv@cern.ch>
> ---

<form letter>
This is a friendly reminder during the review process.

It looks like you received a tag and forgot to add it.

If you do not know the process, here is a short explanation:
Please add Acked-by/Reviewed-by/Tested-by tags when posting new
versions of patchset, under or above your Signed-off-by tag, unless
patch changed significantly (e.g. new properties added to the DT
bindings). Tag is "received", when provided in a message replied to you
on the mailing list. Tools like b4 can help here. However, there's no
need to repost patches *only* to add the tags. The upstream maintainer
will do that for tags received on the version they apply.

Please read:
https://elixir.bootlin.com/linux/v6.12-rc3/source/Documentation/process/submitting-patches.rst#L577

If a tag was not added on purpose, please state in the patch changelog
or cover letter why and what changed.
</form letter>

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees
  2026-09-20 18:41 ` [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees Maxim Storetvedt
@ 2026-09-24 13:08   ` Krzysztof Kozlowski
  2026-09-24 20:46     ` Maxim Storetvedt
  2026-09-28 16:44   ` Antheas Kapenekakis
  1 sibling, 1 reply; 14+ messages in thread
From: Krzysztof Kozlowski @ 2026-09-24 13:08 UTC (permalink / raw)
  To: Maxim Storetvedt
  Cc: andersson, robh, krzk+dt, conor+dt, marcus, marijn.suijten,
	linux-arm-msm, devicetree, linux-kernel, abel.vesa, abel.vesa,
	johan, konradybcio, kirill

On Sun, Sep 20, 2026 at 08:41:04PM +0200, Maxim Storetvedt wrote:
> Adds devicetrees for the 14-inch and 16-inch hamoa SKUs of the Samsung Galaxy Book4 Edge.
> 
> These use a common dtsi derived from nodes that were able to work on Linux
> from the initial Galaxy Book4 Edge DTS by Marcus:
> 
> Link: https://lore.kernel.org/all/p3mhtj2rp6y2ezuwpd2gu7dwx5cbckfu4s4pazcudi4j2wogtr@4yecb2bkeyms/
> 
> combined with the patch series the Honor Magicbook Art 14, which shares device similarities:
> 
> Link: https://lore.kernel.org/all/20260629154812.9066-1-mail@etehtsea.me/
> 
> as well as a few more adjustments on top of that again to get additional features working.
> Special thanks to Jesse Ahn for helping expand on what would eventually become this dtsi.
> 
> Based-on-a-patch-by: Marcus Glocker <marcus@nazgul.ch>
> Based-on-a-patch-by: Kirill A. Korinsky <kirill@korins.ky>

There are no such tags. Don't invent own.

Either they provided SoB for the code you used, or not. If they did,
then you could take them. Otherwise not and read obligations on your
side expressed in DCO.

Also look at Co-developed tag, if that's applicable.

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees
  2026-09-24 13:08   ` Krzysztof Kozlowski
@ 2026-09-24 20:46     ` Maxim Storetvedt
  0 siblings, 0 replies; 14+ messages in thread
From: Maxim Storetvedt @ 2026-09-24 20:46 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: andersson, robh, krzk+dt, conor+dt, marcus, marijn.suijten,
	linux-arm-msm, devicetree, linux-kernel, abel.vesa, abel.vesa,
	johan, konradybcio, kirill


On 9/24/26 15:08, Krzysztof Kozlowski wrote:
> On Sun, Sep 20, 2026 at 08:41:04PM +0200, Maxim Storetvedt wrote:
>> Adds devicetrees for the 14-inch and 16-inch hamoa SKUs of the Samsung Galaxy Book4 Edge.
>>
>> These use a common dtsi derived from nodes that were able to work on Linux
>> from the initial Galaxy Book4 Edge DTS by Marcus:
>>
>> Link: https://lore.kernel.org/all/p3mhtj2rp6y2ezuwpd2gu7dwx5cbckfu4s4pazcudi4j2wogtr@4yecb2bkeyms/
>>
>> combined with the patch series the Honor Magicbook Art 14, which shares device similarities:
>>
>> Link: https://lore.kernel.org/all/20260629154812.9066-1-mail@etehtsea.me/
>>
>> as well as a few more adjustments on top of that again to get additional features working.
>> Special thanks to Jesse Ahn for helping expand on what would eventually become this dtsi.
>>
>> Based-on-a-patch-by: Marcus Glocker <marcus@nazgul.ch>
>> Based-on-a-patch-by: Kirill A. Korinsky <kirill@korins.ky>
> 
> There are no such tags. Don't invent own.
> 
> Either they provided SoB for the code you used, or not. If they did,
> then you could take them. Otherwise not and read obligations on your
> side expressed in DCO.
> 
> Also look at Co-developed tag, if that's applicable.
> 
> Best regards,
> Krzysztof
> 

Not formal tags by any means; both of these patches have been very
useful though, and should somehow be highlighted. Bon, to be revisited.

In the meantime, there seem to be some sashiko warnings that need to be
addressed before this series can continue in any case.

Cheers,
-Max


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees
  2026-09-20 18:41 ` [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees Maxim Storetvedt
  2026-09-24 13:08   ` Krzysztof Kozlowski
@ 2026-09-28 16:44   ` Antheas Kapenekakis
  2026-09-28 16:45     ` Antheas Kapenekakis
  2026-09-28 18:41     ` Maxim Storetvedt
  1 sibling, 2 replies; 14+ messages in thread
From: Antheas Kapenekakis @ 2026-09-28 16:44 UTC (permalink / raw)
  To: Maxim Storetvedt
  Cc: andersson, robh, krzk+dt, conor+dt, marcus, marijn.suijten,
	linux-arm-msm, devicetree, linux-kernel, abel.vesa, abel.vesa,
	johan, konradybcio, kirill

On Sun, 20 Sept 2026 at 20:41, Maxim Storetvedt <mstoretv@cern.ch> wrote:
>
> Adds devicetrees for the 14-inch and 16-inch hamoa SKUs of the Samsung Galaxy Book4 Edge.
>
> These use a common dtsi derived from nodes that were able to work on Linux
> from the initial Galaxy Book4 Edge DTS by Marcus:
>
> Link: https://lore.kernel.org/all/p3mhtj2rp6y2ezuwpd2gu7dwx5cbckfu4s4pazcudi4j2wogtr@4yecb2bkeyms/
>
> combined with the patch series the Honor Magicbook Art 14, which shares device similarities:
>
> Link: https://lore.kernel.org/all/20260629154812.9066-1-mail@etehtsea.me/

Links go in the bottom, Based-on-a-patch is not a thing, you may add a
Coby as noted in a parallel thread.

> as well as a few more adjustments on top of that again to get additional features working.
> Special thanks to Jesse Ahn for helping expand on what would eventually become this dtsi.

Hi Maxim,
I tested this series on a kernel with various other backports on two
european (norwegian market) galaxy book4 edges.

Specifically, the 14in NP940XMA and the 15.6in (not 16) NP750XQB.
Specifically, the later is an X1Plus variant that came out a year
later with cheaper components. It does not work properly on either on
them. I was hoping that at least the 14in model would work as is but
no.

My test devices have proprietary Samsung battery controllers
(ENE-KB9058) and type C controllers (Samsung EmuEC). Also the speaker
amplifiers are different. So the battery reporting, audio, and USB C
ports do not work at all using your DTs. The TPM does not bind either
but you do not claim that it does. At least they got me to boot and
for that I am grateful.

Other stuff also does not work, but I am just listing the main ones.

I suggest you change the -14/-16 suffixes on both models with
something more specific.

The prior patches in the series look fine to my eyes. I did not A/B
test them, just pulled them in.

Best,
Antheas

> Based-on-a-patch-by: Marcus Glocker <marcus@nazgul.ch>
> Based-on-a-patch-by: Kirill A. Korinsky <kirill@korins.ky>
> Signed-off-by: Maxim Storetvedt <mstoretv@cern.ch>
> ---
>  arch/arm64/boot/dts/qcom/Makefile             |    2 +
>  .../qcom/x1-samsung-galaxy-book4-edge.dtsi    | 1537 +++++++++++++++++
>  .../x1e80100-samsung-galaxy-book4-edge-14.dts |   28 +
>  .../x1e84100-samsung-galaxy-book4-edge-16.dts |   31 +
>  4 files changed, 1598 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi
>  create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts
>  create mode 100644 arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 5c19f945c..d8273f86f 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -498,3 +498,5 @@ x1p64100-microsoft-denali-el2-dtbs  := x1p64100-microsoft-denali.dtb x1-el2.dtbo
>  dtb-$(CONFIG_ARCH_QCOM)        += x1p64100-microsoft-denali.dtb x1p64100-microsoft-denali-el2.dtb
>  x1p42100-microsoft-sp12in-el2-dtbs     := x1p42100-microsoft-sp12in.dtb x1-el2.dtbo
>  dtb-$(CONFIG_ARCH_QCOM)        += x1p42100-microsoft-sp12in.dtb x1p42100-microsoft-sp12in-el2.dtb
> +dtb-$(CONFIG_ARCH_QCOM)        += x1e80100-samsung-galaxy-book4-edge-14.dtb
> +dtb-$(CONFIG_ARCH_QCOM)        += x1e84100-samsung-galaxy-book4-edge-16.dtb
> diff --git a/arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi b/arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi
> new file mode 100644
> index 000000000..51ec68bba
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi
> @@ -0,0 +1,1537 @@
> +// 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>
> + * Copyright (c) 2025 Valentin Manea <valentin.manea@mrs.ro>
> + */
> +
> +/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 "hamoa.dtsi"
> +#include "hamoa-pmics.dtsi"
> +
> +/ {
> +       model = "Samsung Galaxy Book4 Edge";
> +       compatible = "samsung,galaxy-book4-edge", "qcom,x1e80100";
> +       chassis-type = "laptop";
> +
> +       aliases {
> +               serial0 = &uart21;
> +               serial1 = &uart14;
> +       };
> +
> +       wcd938x: audio-codec {
> +               compatible = "qcom,wcd9385-codec";
> +
> +               pinctrl-0 = <&wcd_default>;
> +               pinctrl-names = "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>;
> +               };
> +       };
> +
> +       hdmi-bridge {
> +               compatible = "realtek,rtd2171";
> +
> +               pinctrl-0 = <&hdmi_hpd_default>;
> +               pinctrl-names = "default";
> +
> +               ports {
> +                       #address-cells = <1>;
> +                       #size-cells = <0>;
> +
> +                       port@0 {
> +                               reg = <0>;
> +
> +                               hdmi_bridge_dp_in: endpoint {
> +                                       remote-endpoint = <&usb_1_ss2_qmpphy_out_dp>;
> +                               };
> +                       };
> +
> +                       port@1 {
> +                               reg = <1>;
> +
> +                               hdmi_bridge_tmds_out: endpoint {
> +                                       remote-endpoint = <&hdmi_con>;
> +                               };
> +                       };
> +               };
> +       };
> +
> +       hdmi-connector {
> +               compatible = "hdmi-connector";
> +               type = "a";
> +
> +               port {
> +                       hdmi_con: endpoint {
> +                               remote-endpoint = <&hdmi_bridge_tmds_out>;
> +                       };
> +               };
> +       };
> +
> +       pmic-glink {
> +               compatible = "qcom,x1e80100-pmic-glink",
> +                            "qcom,pmic-glink";
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +               orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>,
> +                                   <&tlmm 123 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>;
> +                                       };
> +                               };
> +
> +                               port@2 {
> +                                       reg = <2>;
> +
> +                                       pmic_glink_ss0_sbu: endpoint {
> +                                               remote-endpoint = <&usb_1_ss0_sbu_mux>;
> +                                       };
> +                               };
> +                       };
> +               };
> +
> +               /* 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>;
> +                                       };
> +                               };
> +
> +                               port@2 {
> +                                       reg = <2>;
> +
> +                                       pmic_glink_ss1_sbu: endpoint {
> +                                               remote-endpoint = <&usb_1_ss1_sbu_mux>;
> +                                       };
> +                               };
> +                       };
> +               };
> +       };
> +
> +       reserved-memory {
> +               linux,cma {
> +                       compatible = "shared-dma-pool";
> +                       size = <0x0 0x8000000>;
> +                       reusable;
> +                       linux,cma-default;
> +               };
> +       };
> +
> +       sound {
> +               compatible = "qcom,x1e80100-sndcard";
> +               model = "X1E80100-GalaxyBook4Edge";
> +               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",
> +                               "TX SWR_INPUT1", "ADC2_OUTPUT";
> +
> +               wcd-playback-dai-link {
> +                       link-name = "WCD Playback";
> +
> +                       codec {
> +                               sound-dai = <&wcd938x 0>, <&swr1 0>, <&lpass_rxmacro 0>;
> +                       };
> +
> +                       cpu {
> +                               sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
> +                       };
> +
> +                       platform {
> +                               sound-dai = <&q6apm>;
> +                       };
> +               };
> +
> +               wcd-capture-dai-link {
> +                       link-name = "WCD Capture";
> +
> +                       codec {
> +                               sound-dai = <&wcd938x 1>, <&swr2 1>, <&lpass_txmacro 0>;
> +                       };
> +
> +                       cpu {
> +                               sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>;
> +                       };
> +
> +                       platform {
> +                               sound-dai = <&q6apm>;
> +                       };
> +               };
> +
> +               wsa-dai-link {
> +                       link-name = "WSA Playback";
> +
> +                       codec {
> +                               sound-dai = <&left_woofer>, <&left_tweeter>,
> +                                           <&swr0 0>, <&lpass_wsamacro 0>,
> +                                           <&right_woofer>, <&right_tweeter>,
> +                                           <&swr3 0>, <&lpass_wsa2macro 0>;
> +                       };
> +
> +                       cpu {
> +                               sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
> +                       };
> +
> +                       platform {
> +                               sound-dai = <&q6apm>;
> +                       };
> +               };
> +
> +               va-dai-link {
> +                       link-name = "VA Capture";
> +
> +                       codec {
> +                               sound-dai = <&lpass_vamacro 0>;
> +                       };
> +
> +                       cpu {
> +                               sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
> +                       };
> +
> +                       platform {
> +                               sound-dai = <&q6apm>;
> +                       };
> +               };
> +       };
> +
> +       vreg_octa_vdd: regulator-octa-vdd {
> +               compatible = "regulator-fixed";
> +
> +               regulator-name = "VREG_OCTA_VDD";
> +               regulator-min-microvolt = <1800000>;
> +               regulator-max-microvolt = <1800000>;
> +
> +               gpio = <&tlmm 111 GPIO_ACTIVE_HIGH>;
> +               enable-active-high;
> +
> +               pinctrl-0 = <&octa_vdd_en>;
> +               pinctrl-names = "default";
> +
> +               startup-delay-us = <1000>;
> +               regulator-enable-ramp-delay = <1000>;
> +
> +               regulator-always-on;
> +               regulator-boot-on;
> +       };
> +
> +       vreg_display_vdd: regulator-display-vdd {
> +               compatible = "regulator-fixed";
> +
> +               regulator-name = "VREG_DISPLAY_VDD";
> +               regulator-min-microvolt = <3300000>;
> +               regulator-max-microvolt = <3300000>;
> +
> +               gpio = <&tlmm 120 GPIO_ACTIVE_HIGH>;
> +               enable-active-high;
> +
> +               pinctrl-0 = <&display_vdd_en>;
> +               pinctrl-names = "default";
> +
> +               startup-delay-us = <400000>;
> +               regulator-enable-ramp-delay = <400000>;
> +
> +               vin-supply = <&vreg_octa_vdd>;
> +
> +               regulator-always-on;
> +               regulator-boot-on;
> +       };
> +
> +       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_LOW>;
> +               enable-active-low;
> +
> +               pinctrl-0 = <&edp_reg_en>;
> +               pinctrl-names = "default";
> +
> +               startup-delay-us = <1000>;
> +               regulator-enable-ramp-delay = <1000>;
> +
> +               vin-supply = <&vreg_display_vdd>;
> +
> +               regulator-always-on;
> +               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-0 = <&misc_3p3_reg_en>;
> +               pinctrl-names = "default";
> +
> +               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;
> +       };
> +
> +       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;
> +               regulator-always-on;
> +       };
> +
> +       usb-1-ss0-sbu-mux {
> +               compatible = "onnn,fsusb42", "gpio-sbu-mux";
> +
> +               enable-gpios = <&tlmm 168 GPIO_ACTIVE_LOW>;
> +               select-gpios = <&tlmm 167 GPIO_ACTIVE_HIGH>;
> +
> +               pinctrl-0 = <&usb_1_ss0_sbu_default>;
> +               pinctrl-names = "default";
> +
> +               mode-switch;
> +               orientation-switch;
> +
> +               port {
> +                       usb_1_ss0_sbu_mux: endpoint {
> +                               remote-endpoint = <&pmic_glink_ss0_sbu>;
> +                       };
> +               };
> +       };
> +
> +       usb-1-ss1-sbu-mux {
> +               compatible = "onnn,fsusb42", "gpio-sbu-mux";
> +
> +               enable-gpios = <&tlmm 179 GPIO_ACTIVE_LOW>;
> +               select-gpios = <&tlmm 178 GPIO_ACTIVE_HIGH>;
> +
> +               pinctrl-0 = <&usb_1_ss1_sbu_default>;
> +               pinctrl-names = "default";
> +
> +               mode-switch;
> +               orientation-switch;
> +
> +               port {
> +                       usb_1_ss1_sbu_mux: endpoint {
> +                               remote-endpoint = <&pmic_glink_ss1_sbu>;
> +                       };
> +               };
> +       };
> +
> +       wcn7850-pmu {
> +               compatible = "qcom,wcn7850-pmu";
> +
> +               wlan-enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
> +               bt-enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>;
> +
> +               pinctrl-0 = <&wcn_wlan_bt_en>;
> +               pinctrl-names = "default";
> +
> +               regulators {
> +                       vreg_pmu_rfa_cmn: ldo0 {
> +                               regulator-name = "vreg_pmu_rfa_cmn";
> +                       };
> +
> +                       vreg_pmu_aon_0p59: ldo1 {
> +                               regulator-name = "vreg_pmu_aon_0p59";
> +                       };
> +
> +                       vreg_pmu_wlcx_0p8: ldo2 {
> +                               regulator-name = "vreg_pmu_wlcx_0p8";
> +                       };
> +
> +                       vreg_pmu_wlmx_0p85: ldo3 {
> +                               regulator-name = "vreg_pmu_wlmx_0p85";
> +                       };
> +
> +                       vreg_pmu_btcmx_0p85: ldo4 {
> +                               regulator-name = "vreg_pmu_btcmx_0p85";
> +                       };
> +
> +                       vreg_pmu_rfa_0p8: ldo5 {
> +                               regulator-name = "vreg_pmu_rfa_0p8";
> +                       };
> +
> +                       vreg_pmu_rfa_1p2: ldo6 {
> +                               regulator-name = "vreg_pmu_rfa_1p2";
> +                       };
> +
> +                       vreg_pmu_rfa_1p8: ldo7 {
> +                               regulator-name = "vreg_pmu_rfa_1p8";
> +                       };
> +
> +                       vreg_pmu_pcie_0p9: ldo8 {
> +                               regulator-name = "vreg_pmu_pcie_0p9";
> +                       };
> +
> +                       vreg_pmu_pcie_1p8: ldo9 {
> +                               regulator-name = "vreg_pmu_pcie_1p8";
> +                       };
> +               };
> +       };
> +};
> +
> +&apps_rsc {
> +       regulators-0 {
> +               compatible = "qcom,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-always-on;
> +                       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-always-on;
> +                       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>;
> +                       regulator-always-on;
> +               };
> +
> +               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>;
> +                       regulator-always-on;
> +               };
> +
> +               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 = <1256000>;
> +                       regulator-max-microvolt = <1256000>;
> +                       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>;
> +               };
> +       };
> +};
> +
> +&camcc {
> +       status = "okay";
> +};
> +
> +&gpu {
> +       status = "okay";
> +
> +       zap-shader {
> +               firmware-name = "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/qcdxkmsuc8380.mbn";
> +       };
> +};
> +
> +&i2c0 {
> +       clock-frequency = <400000>;
> +
> +       status = "okay";
> +
> +       keyboard@5 {
> +               compatible = "hid-over-i2c";
> +               reg = <0x5>;
> +
> +               hid-descr-addr = <0x20>;
> +               interrupts-extended = <&tlmm 67 IRQ_TYPE_LEVEL_LOW>;
> +
> +               pinctrl-0 = <&kybd_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@5d {
> +               compatible = "hid-over-i2c";
> +               reg = <0x5d>;
> +
> +               hid-descr-addr = <0x1>;
> +               //interrupts-extended = <&tlmm 34 IRQ_TYPE_LEVEL_LOW>;
> +
> +               vdd-supply = <&vreg_misc_3p3>;
> +
> +               //pinctrl-0 = <&ts0_default>;
> +               //pinctrl-names = "default";
> +       };
> +};
> +
> +&i2c13 {
> +       clock-frequency = <400000>;
> +
> +       status = "okay";
> +};
> +
> +&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_dp0 {
> +       status = "okay";
> +};
> +
> +&mdss_dp0_out {
> +       data-lanes = <0 1>;
> +       link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
> +};
> +
> +&mdss_dp1 {
> +       status = "okay";
> +};
> +
> +&mdss_dp1_out {
> +       data-lanes = <0 1>;
> +       link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
> +};
> +
> +&mdss_dp2 {
> +       status = "okay";
> +};
> +
> +&mdss_dp2_out {
> +       data-lanes = <0 1 2 3>;
> +};
> +
> +&mdss_dp3 {
> +       /delete-property/ #sound-dai-cells;
> +
> +       pinctrl-0 = <&edp0_hpd_default>;
> +       pinctrl-names = "default";
> +
> +       status = "okay";
> +
> +       aux-bus {
> +               panel: panel {
> +                       enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;
> +                       power-supply = <&vreg_edp_3p3>;
> +                       no-hpd;
> +
> +                       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>;
> +
> +                               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";
> +};
> +
> +&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>;
> +       };
> +};
> +
> +&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/SAMSUNG/galaxy-book4-edge/qcadsp8380.mbn",
> +                       "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/adsp_dtbs.elf";
> +
> +       status = "okay";
> +};
> +
> +&remoteproc_cdsp {
> +       firmware-name = "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/qccdsp8380.mbn",
> +                       "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/cdsp_dtbs.elf";
> +
> +       status = "okay";
> +};
> +
> +&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) */
> +
> +       edp_reg_en: edp-reg-en-state {
> +               pins = "gpio70";
> +               function = "gpio";
> +               drive-strength = <16>;
> +               bias-pull-up;
> +               output-low;
> +       };
> +
> +       octa_vdd_en: octa-vdd-en-state {
> +               pins = "gpio111";
> +               function = "gpio";
> +               drive-strength = <16>;
> +               bias-pull-up;
> +               output-high;
> +       };
> +
> +       display_vdd_en: display-vdd-en-state {
> +               pins = "gpio120";
> +               function = "gpio";
> +               drive-strength = <16>;
> +               bias-pull-up;
> +               output-high;
> +       };
> +
> +       edp0_hpd_default: edp0-hpd-default-state {
> +               pins = "gpio119";
> +               function = "edp0_hot";
> +               bias-pull-down;
> +               input-enable;
> +               drive-strength = <2>;
> +       };
> +
> +
> +       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;
> +       };
> +
> +       hdmi_hpd_default: hdmi-hpd-default-state {
> +               pins = "gpio126";
> +               function = "usb2_dp";
> +               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;
> +       };
> +
> +       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>;
> +               };
> +       };
> +
> +       usb_1_ss0_sbu_default: usb-1-ss0-sbu-state {
> +               mode-pins {
> +                       pins = "gpio166";
> +                       function = "gpio";
> +                       bias-disable;
> +                       drive-strength = <2>;
> +                       output-high;
> +               };
> +
> +               oe-n-pins {
> +                       pins = "gpio168";
> +                       function = "gpio";
> +                       bias-disable;
> +                       drive-strength = <2>;
> +               };
> +
> +               sel-pins {
> +                       pins = "gpio167";
> +                       function = "gpio";
> +                       bias-disable;
> +                       drive-strength = <2>;
> +               };
> +
> +       };
> +
> +       usb_1_ss1_sbu_default: usb-1-ss1-sbu-state {
> +               mode-pins {
> +                       pins = "gpio177";
> +                       function = "gpio";
> +                       bias-disable;
> +                       drive-strength = <2>;
> +                       output-high;
> +               };
> +
> +               oe-n-pins {
> +                       pins = "gpio179";
> +                       function = "gpio";
> +                       bias-disable;
> +                       drive-strength = <2>;
> +               };
> +
> +               sel-pins {
> +                       pins = "gpio178";
> +                       function = "gpio";
> +                       bias-disable;
> +                       drive-strength = <2>;
> +               };
> +       };
> +
> +       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;
> +       };
> +
> +       wcd_default: wcd-reset-n-active-state {
> +               pins = "gpio191";
> +               function = "gpio";
> +               drive-strength = <16>;
> +               bias-disable;
> +               output-low;
> +       };
> +};
> +
> +&ufs_mem_hc {
> +       status = "okay";
> +
> +       reset-gpios = <&tlmm 238 GPIO_ACTIVE_LOW>;
> +       vcc-supply = <&vreg_l17b_2p5>;
> +       vcc-max-microamp = <600000>;
> +
> +       vccq-supply = <&vreg_l2i_1p2>;
> +       vccq-max-microamp = <600000>;
> +};
> +
> +&ufs_mem_phy {
> +       status = "okay";
> +
> +       vdda-phy-supply = <&vreg_l3i_0p8>;
> +       vdda-pll-supply = <&vreg_l3e_1p2>;
> +};
> +
> +&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";
> +};
> +
> +&usb_1_ss0 {
> +       status = "okay";
> +};
> +
> +&usb_1_ss0_hsphy {
> +       vdd-supply = <&vreg_l3j_0p8>;
> +       vdda12-supply = <&vreg_l2j_1p2>;
> +
> +       status = "okay";
> +};
> +
> +&usb_1_ss0_qmpphy {
> +       vdda-phy-supply = <&vreg_l2j_1p2>;
> +       vdda-pll-supply = <&vreg_l1j_0p8>;
> +
> +       status = "okay";
> +};
> +
> +&usb_1_ss0 {
> +       dr_mode = "host";
> +};
> +
> +&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 {
> +       status = "okay";
> +};
> +
> +&usb_1_ss1_hsphy {
> +       vdd-supply = <&vreg_l3j_0p8>;
> +       vdda12-supply = <&vreg_l2j_1p2>;
> +
> +       status = "okay";
> +};
> +
> +&usb_1_ss1_qmpphy {
> +       vdda-phy-supply = <&vreg_l2j_1p2>;
> +       vdda-pll-supply = <&vreg_l2d_0p9>;
> +
> +       status = "okay";
> +};
> +
> +&usb_1_ss1 {
> +       dr_mode = "host";
> +};
> +
> +&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_1_ss2_qmpphy {
> +       vdda-phy-supply = <&vreg_l2j_1p2>;
> +       vdda-pll-supply = <&vreg_l2d_0p9>;
> +
> +       /delete-property/ mode-switch;
> +       /delete-property/ orientation-switch;
> +
> +       status = "okay";
> +
> +       ports {
> +               port@0 {
> +                       #address-cells = <1>;
> +                       #size-cells = <0>;
> +
> +                       /delete-node/ endpoint;
> +
> +                       usb_1_ss2_qmpphy_out_dp: endpoint@0 {
> +                               reg = <0>;
> +
> +                               data-lanes = <3 2 1 0>;
> +                               remote-endpoint = <&hdmi_bridge_dp_in>;
> +                       };
> +               };
> +       };
> +};
> +
> +
> +/* MP0 goes to the USB-A port(USB3) and FPC */
> +&usb_mp {
> +       status = "okay";
> +
> +       /* Limit to single port */
> +       phys = <&usb_mp_hsphy0>, <&usb_mp_qmpphy0>;
> +       phy-names = "usb2-0", "usb3-0";
> +};
> +
> +&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";
> +};
> diff --git a/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts b/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts
> new file mode 100644
> index 000000000..333a69a8a
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts
> @@ -0,0 +1,28 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +
> +/dts-v1/;
> +
> +#include "x1-samsung-galaxy-book4-edge.dtsi"
> +
> +/ {
> +       model = "Samsung Galaxy Book4 Edge (14 inch)";
> +       compatible = "samsung,galaxy-book4-edge-14", "samsung,galaxy-book4-edge",
> +                    "qcom,x1e80100";
> +};
> +
> +&i2c13 {
> +       touchpad@40 {
> +               compatible = "hid-over-i2c";
> +               reg = <0x40>;
> +
> +               hid-descr-addr = <0xe>;
> +               interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>;
> +
> +               pinctrl-0 = <&tpad_default>;
> +               pinctrl-names = "default";
> +       };
> +};
> +
> +&panel {
> +       compatible = "samsung,atna40cu07", "samsung,atna33xc20";
> +};
> diff --git a/arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts b/arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts
> new file mode 100644
> index 000000000..947eea411
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts
> @@ -0,0 +1,31 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +
> +/dts-v1/;
> +
> +#include "x1-samsung-galaxy-book4-edge.dtsi"
> +
> +/ {
> +       model = "Samsung Galaxy Book4 Edge (16 inch)";
> +       compatible = "samsung,galaxy-book4-edge-16", "samsung,galaxy-book4-edge",
> +                    "qcom,x1e80100";
> +};
> +
> +&i2c13 {
> +       touchpad@50 {
> +               compatible = "hid-over-i2c";
> +               reg = <0x50>;
> +
> +               hid-descr-addr = <0xd1>;
> +               interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>;
> +
> +               vdd-supply = <&vreg_misc_3p3>;
> +               vddl-supply = <&vreg_l15b_1p8>;
> +
> +               pinctrl-0 = <&tpad_default>;
> +               pinctrl-names = "default";
> +       };
> +};
> +
> +&panel {
> +       compatible = "samsung,atna60cl07", "samsung,atna33xc20";
> +};
> --
> 2.43.0
>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees
  2026-09-28 16:44   ` Antheas Kapenekakis
@ 2026-09-28 16:45     ` Antheas Kapenekakis
  2026-09-28 18:41     ` Maxim Storetvedt
  1 sibling, 0 replies; 14+ messages in thread
From: Antheas Kapenekakis @ 2026-09-28 16:45 UTC (permalink / raw)
  To: Maxim Storetvedt
  Cc: andersson, robh, krzk+dt, conor+dt, marcus, marijn.suijten,
	linux-arm-msm, devicetree, linux-kernel, abel.vesa, abel.vesa,
	johan, konradybcio, kirill

On Mon, 28 Sept 2026 at 18:44, Antheas Kapenekakis
<kapenekakis@gmail.com> wrote:
>
> On Sun, 20 Sept 2026 at 20:41, Maxim Storetvedt <mstoretv@cern.ch> wrote:
> >
> > Adds devicetrees for the 14-inch and 16-inch hamoa SKUs of the Samsung Galaxy Book4 Edge.
> >
> > These use a common dtsi derived from nodes that were able to work on Linux
> > from the initial Galaxy Book4 Edge DTS by Marcus:
> >
> > Link: https://lore.kernel.org/all/p3mhtj2rp6y2ezuwpd2gu7dwx5cbckfu4s4pazcudi4j2wogtr@4yecb2bkeyms/
> >
> > combined with the patch series the Honor Magicbook Art 14, which shares device similarities:
> >
> > Link: https://lore.kernel.org/all/20260629154812.9066-1-mail@etehtsea.me/
>
> Links go in the bottom, Based-on-a-patch is not a thing, you may add a
> Coby as noted in a parallel thread.
>
> > as well as a few more adjustments on top of that again to get additional features working.
> > Special thanks to Jesse Ahn for helping expand on what would eventually become this dtsi.
>
> Hi Maxim,
> I tested this series on a kernel with various other backports on two
> european (norwegian market) galaxy book4 edges.
>
> Specifically, the 14in NP940XMA and the 15.6in (not 16) NP750XQB.
> Specifically, the later is an X1Plus variant that came out a year
> later with cheaper components. It does not work properly on either on
> them. I was hoping that at least the 14in model would work as is but
> no.
>
> My test devices have proprietary Samsung battery controllers
> (ENE-KB9058) and type C controllers (Samsung EmuEC). Also the speaker
> amplifiers are different. So the battery reporting, audio, and USB C
> ports do not work at all using your DTs. The TPM does not bind either
> but you do not claim that it does. At least they got me to boot and
> for that I am grateful.
>
> Other stuff also does not work, but I am just listing the main ones.
>
> I suggest you change the -14/-16 suffixes on both models with
> something more specific.
>
> The prior patches in the series look fine to my eyes. I did not A/B
> test them, just pulled them in.

Wrong email again. Sorry. Please reply to my kernel email, best.

> Best,
> Antheas
>
> > Based-on-a-patch-by: Marcus Glocker <marcus@nazgul.ch>
> > Based-on-a-patch-by: Kirill A. Korinsky <kirill@korins.ky>
> > Signed-off-by: Maxim Storetvedt <mstoretv@cern.ch>
> > ---
> >  arch/arm64/boot/dts/qcom/Makefile             |    2 +
> >  .../qcom/x1-samsung-galaxy-book4-edge.dtsi    | 1537 +++++++++++++++++
> >  .../x1e80100-samsung-galaxy-book4-edge-14.dts |   28 +
> >  .../x1e84100-samsung-galaxy-book4-edge-16.dts |   31 +
> >  4 files changed, 1598 insertions(+)
> >  create mode 100644 arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi
> >  create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts
> >  create mode 100644 arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts
> >
> > diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> > index 5c19f945c..d8273f86f 100644
> > --- a/arch/arm64/boot/dts/qcom/Makefile
> > +++ b/arch/arm64/boot/dts/qcom/Makefile
> > @@ -498,3 +498,5 @@ x1p64100-microsoft-denali-el2-dtbs  := x1p64100-microsoft-denali.dtb x1-el2.dtbo
> >  dtb-$(CONFIG_ARCH_QCOM)        += x1p64100-microsoft-denali.dtb x1p64100-microsoft-denali-el2.dtb
> >  x1p42100-microsoft-sp12in-el2-dtbs     := x1p42100-microsoft-sp12in.dtb x1-el2.dtbo
> >  dtb-$(CONFIG_ARCH_QCOM)        += x1p42100-microsoft-sp12in.dtb x1p42100-microsoft-sp12in-el2.dtb
> > +dtb-$(CONFIG_ARCH_QCOM)        += x1e80100-samsung-galaxy-book4-edge-14.dtb
> > +dtb-$(CONFIG_ARCH_QCOM)        += x1e84100-samsung-galaxy-book4-edge-16.dtb
> > diff --git a/arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi b/arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi
> > new file mode 100644
> > index 000000000..51ec68bba
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi
> > @@ -0,0 +1,1537 @@
> > +// 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>
> > + * Copyright (c) 2025 Valentin Manea <valentin.manea@mrs.ro>
> > + */
> > +
> > +/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 "hamoa.dtsi"
> > +#include "hamoa-pmics.dtsi"
> > +
> > +/ {
> > +       model = "Samsung Galaxy Book4 Edge";
> > +       compatible = "samsung,galaxy-book4-edge", "qcom,x1e80100";
> > +       chassis-type = "laptop";
> > +
> > +       aliases {
> > +               serial0 = &uart21;
> > +               serial1 = &uart14;
> > +       };
> > +
> > +       wcd938x: audio-codec {
> > +               compatible = "qcom,wcd9385-codec";
> > +
> > +               pinctrl-0 = <&wcd_default>;
> > +               pinctrl-names = "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>;
> > +               };
> > +       };
> > +
> > +       hdmi-bridge {
> > +               compatible = "realtek,rtd2171";
> > +
> > +               pinctrl-0 = <&hdmi_hpd_default>;
> > +               pinctrl-names = "default";
> > +
> > +               ports {
> > +                       #address-cells = <1>;
> > +                       #size-cells = <0>;
> > +
> > +                       port@0 {
> > +                               reg = <0>;
> > +
> > +                               hdmi_bridge_dp_in: endpoint {
> > +                                       remote-endpoint = <&usb_1_ss2_qmpphy_out_dp>;
> > +                               };
> > +                       };
> > +
> > +                       port@1 {
> > +                               reg = <1>;
> > +
> > +                               hdmi_bridge_tmds_out: endpoint {
> > +                                       remote-endpoint = <&hdmi_con>;
> > +                               };
> > +                       };
> > +               };
> > +       };
> > +
> > +       hdmi-connector {
> > +               compatible = "hdmi-connector";
> > +               type = "a";
> > +
> > +               port {
> > +                       hdmi_con: endpoint {
> > +                               remote-endpoint = <&hdmi_bridge_tmds_out>;
> > +                       };
> > +               };
> > +       };
> > +
> > +       pmic-glink {
> > +               compatible = "qcom,x1e80100-pmic-glink",
> > +                            "qcom,pmic-glink";
> > +               #address-cells = <1>;
> > +               #size-cells = <0>;
> > +               orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>,
> > +                                   <&tlmm 123 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>;
> > +                                       };
> > +                               };
> > +
> > +                               port@2 {
> > +                                       reg = <2>;
> > +
> > +                                       pmic_glink_ss0_sbu: endpoint {
> > +                                               remote-endpoint = <&usb_1_ss0_sbu_mux>;
> > +                                       };
> > +                               };
> > +                       };
> > +               };
> > +
> > +               /* 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>;
> > +                                       };
> > +                               };
> > +
> > +                               port@2 {
> > +                                       reg = <2>;
> > +
> > +                                       pmic_glink_ss1_sbu: endpoint {
> > +                                               remote-endpoint = <&usb_1_ss1_sbu_mux>;
> > +                                       };
> > +                               };
> > +                       };
> > +               };
> > +       };
> > +
> > +       reserved-memory {
> > +               linux,cma {
> > +                       compatible = "shared-dma-pool";
> > +                       size = <0x0 0x8000000>;
> > +                       reusable;
> > +                       linux,cma-default;
> > +               };
> > +       };
> > +
> > +       sound {
> > +               compatible = "qcom,x1e80100-sndcard";
> > +               model = "X1E80100-GalaxyBook4Edge";
> > +               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",
> > +                               "TX SWR_INPUT1", "ADC2_OUTPUT";
> > +
> > +               wcd-playback-dai-link {
> > +                       link-name = "WCD Playback";
> > +
> > +                       codec {
> > +                               sound-dai = <&wcd938x 0>, <&swr1 0>, <&lpass_rxmacro 0>;
> > +                       };
> > +
> > +                       cpu {
> > +                               sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
> > +                       };
> > +
> > +                       platform {
> > +                               sound-dai = <&q6apm>;
> > +                       };
> > +               };
> > +
> > +               wcd-capture-dai-link {
> > +                       link-name = "WCD Capture";
> > +
> > +                       codec {
> > +                               sound-dai = <&wcd938x 1>, <&swr2 1>, <&lpass_txmacro 0>;
> > +                       };
> > +
> > +                       cpu {
> > +                               sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>;
> > +                       };
> > +
> > +                       platform {
> > +                               sound-dai = <&q6apm>;
> > +                       };
> > +               };
> > +
> > +               wsa-dai-link {
> > +                       link-name = "WSA Playback";
> > +
> > +                       codec {
> > +                               sound-dai = <&left_woofer>, <&left_tweeter>,
> > +                                           <&swr0 0>, <&lpass_wsamacro 0>,
> > +                                           <&right_woofer>, <&right_tweeter>,
> > +                                           <&swr3 0>, <&lpass_wsa2macro 0>;
> > +                       };
> > +
> > +                       cpu {
> > +                               sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
> > +                       };
> > +
> > +                       platform {
> > +                               sound-dai = <&q6apm>;
> > +                       };
> > +               };
> > +
> > +               va-dai-link {
> > +                       link-name = "VA Capture";
> > +
> > +                       codec {
> > +                               sound-dai = <&lpass_vamacro 0>;
> > +                       };
> > +
> > +                       cpu {
> > +                               sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
> > +                       };
> > +
> > +                       platform {
> > +                               sound-dai = <&q6apm>;
> > +                       };
> > +               };
> > +       };
> > +
> > +       vreg_octa_vdd: regulator-octa-vdd {
> > +               compatible = "regulator-fixed";
> > +
> > +               regulator-name = "VREG_OCTA_VDD";
> > +               regulator-min-microvolt = <1800000>;
> > +               regulator-max-microvolt = <1800000>;
> > +
> > +               gpio = <&tlmm 111 GPIO_ACTIVE_HIGH>;
> > +               enable-active-high;
> > +
> > +               pinctrl-0 = <&octa_vdd_en>;
> > +               pinctrl-names = "default";
> > +
> > +               startup-delay-us = <1000>;
> > +               regulator-enable-ramp-delay = <1000>;
> > +
> > +               regulator-always-on;
> > +               regulator-boot-on;
> > +       };
> > +
> > +       vreg_display_vdd: regulator-display-vdd {
> > +               compatible = "regulator-fixed";
> > +
> > +               regulator-name = "VREG_DISPLAY_VDD";
> > +               regulator-min-microvolt = <3300000>;
> > +               regulator-max-microvolt = <3300000>;
> > +
> > +               gpio = <&tlmm 120 GPIO_ACTIVE_HIGH>;
> > +               enable-active-high;
> > +
> > +               pinctrl-0 = <&display_vdd_en>;
> > +               pinctrl-names = "default";
> > +
> > +               startup-delay-us = <400000>;
> > +               regulator-enable-ramp-delay = <400000>;
> > +
> > +               vin-supply = <&vreg_octa_vdd>;
> > +
> > +               regulator-always-on;
> > +               regulator-boot-on;
> > +       };
> > +
> > +       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_LOW>;
> > +               enable-active-low;
> > +
> > +               pinctrl-0 = <&edp_reg_en>;
> > +               pinctrl-names = "default";
> > +
> > +               startup-delay-us = <1000>;
> > +               regulator-enable-ramp-delay = <1000>;
> > +
> > +               vin-supply = <&vreg_display_vdd>;
> > +
> > +               regulator-always-on;
> > +               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-0 = <&misc_3p3_reg_en>;
> > +               pinctrl-names = "default";
> > +
> > +               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;
> > +       };
> > +
> > +       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;
> > +               regulator-always-on;
> > +       };
> > +
> > +       usb-1-ss0-sbu-mux {
> > +               compatible = "onnn,fsusb42", "gpio-sbu-mux";
> > +
> > +               enable-gpios = <&tlmm 168 GPIO_ACTIVE_LOW>;
> > +               select-gpios = <&tlmm 167 GPIO_ACTIVE_HIGH>;
> > +
> > +               pinctrl-0 = <&usb_1_ss0_sbu_default>;
> > +               pinctrl-names = "default";
> > +
> > +               mode-switch;
> > +               orientation-switch;
> > +
> > +               port {
> > +                       usb_1_ss0_sbu_mux: endpoint {
> > +                               remote-endpoint = <&pmic_glink_ss0_sbu>;
> > +                       };
> > +               };
> > +       };
> > +
> > +       usb-1-ss1-sbu-mux {
> > +               compatible = "onnn,fsusb42", "gpio-sbu-mux";
> > +
> > +               enable-gpios = <&tlmm 179 GPIO_ACTIVE_LOW>;
> > +               select-gpios = <&tlmm 178 GPIO_ACTIVE_HIGH>;
> > +
> > +               pinctrl-0 = <&usb_1_ss1_sbu_default>;
> > +               pinctrl-names = "default";
> > +
> > +               mode-switch;
> > +               orientation-switch;
> > +
> > +               port {
> > +                       usb_1_ss1_sbu_mux: endpoint {
> > +                               remote-endpoint = <&pmic_glink_ss1_sbu>;
> > +                       };
> > +               };
> > +       };
> > +
> > +       wcn7850-pmu {
> > +               compatible = "qcom,wcn7850-pmu";
> > +
> > +               wlan-enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
> > +               bt-enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>;
> > +
> > +               pinctrl-0 = <&wcn_wlan_bt_en>;
> > +               pinctrl-names = "default";
> > +
> > +               regulators {
> > +                       vreg_pmu_rfa_cmn: ldo0 {
> > +                               regulator-name = "vreg_pmu_rfa_cmn";
> > +                       };
> > +
> > +                       vreg_pmu_aon_0p59: ldo1 {
> > +                               regulator-name = "vreg_pmu_aon_0p59";
> > +                       };
> > +
> > +                       vreg_pmu_wlcx_0p8: ldo2 {
> > +                               regulator-name = "vreg_pmu_wlcx_0p8";
> > +                       };
> > +
> > +                       vreg_pmu_wlmx_0p85: ldo3 {
> > +                               regulator-name = "vreg_pmu_wlmx_0p85";
> > +                       };
> > +
> > +                       vreg_pmu_btcmx_0p85: ldo4 {
> > +                               regulator-name = "vreg_pmu_btcmx_0p85";
> > +                       };
> > +
> > +                       vreg_pmu_rfa_0p8: ldo5 {
> > +                               regulator-name = "vreg_pmu_rfa_0p8";
> > +                       };
> > +
> > +                       vreg_pmu_rfa_1p2: ldo6 {
> > +                               regulator-name = "vreg_pmu_rfa_1p2";
> > +                       };
> > +
> > +                       vreg_pmu_rfa_1p8: ldo7 {
> > +                               regulator-name = "vreg_pmu_rfa_1p8";
> > +                       };
> > +
> > +                       vreg_pmu_pcie_0p9: ldo8 {
> > +                               regulator-name = "vreg_pmu_pcie_0p9";
> > +                       };
> > +
> > +                       vreg_pmu_pcie_1p8: ldo9 {
> > +                               regulator-name = "vreg_pmu_pcie_1p8";
> > +                       };
> > +               };
> > +       };
> > +};
> > +
> > +&apps_rsc {
> > +       regulators-0 {
> > +               compatible = "qcom,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-always-on;
> > +                       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-always-on;
> > +                       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>;
> > +                       regulator-always-on;
> > +               };
> > +
> > +               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>;
> > +                       regulator-always-on;
> > +               };
> > +
> > +               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 = <1256000>;
> > +                       regulator-max-microvolt = <1256000>;
> > +                       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>;
> > +               };
> > +       };
> > +};
> > +
> > +&camcc {
> > +       status = "okay";
> > +};
> > +
> > +&gpu {
> > +       status = "okay";
> > +
> > +       zap-shader {
> > +               firmware-name = "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/qcdxkmsuc8380.mbn";
> > +       };
> > +};
> > +
> > +&i2c0 {
> > +       clock-frequency = <400000>;
> > +
> > +       status = "okay";
> > +
> > +       keyboard@5 {
> > +               compatible = "hid-over-i2c";
> > +               reg = <0x5>;
> > +
> > +               hid-descr-addr = <0x20>;
> > +               interrupts-extended = <&tlmm 67 IRQ_TYPE_LEVEL_LOW>;
> > +
> > +               pinctrl-0 = <&kybd_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@5d {
> > +               compatible = "hid-over-i2c";
> > +               reg = <0x5d>;
> > +
> > +               hid-descr-addr = <0x1>;
> > +               //interrupts-extended = <&tlmm 34 IRQ_TYPE_LEVEL_LOW>;
> > +
> > +               vdd-supply = <&vreg_misc_3p3>;
> > +
> > +               //pinctrl-0 = <&ts0_default>;
> > +               //pinctrl-names = "default";
> > +       };
> > +};
> > +
> > +&i2c13 {
> > +       clock-frequency = <400000>;
> > +
> > +       status = "okay";
> > +};
> > +
> > +&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_dp0 {
> > +       status = "okay";
> > +};
> > +
> > +&mdss_dp0_out {
> > +       data-lanes = <0 1>;
> > +       link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
> > +};
> > +
> > +&mdss_dp1 {
> > +       status = "okay";
> > +};
> > +
> > +&mdss_dp1_out {
> > +       data-lanes = <0 1>;
> > +       link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
> > +};
> > +
> > +&mdss_dp2 {
> > +       status = "okay";
> > +};
> > +
> > +&mdss_dp2_out {
> > +       data-lanes = <0 1 2 3>;
> > +};
> > +
> > +&mdss_dp3 {
> > +       /delete-property/ #sound-dai-cells;
> > +
> > +       pinctrl-0 = <&edp0_hpd_default>;
> > +       pinctrl-names = "default";
> > +
> > +       status = "okay";
> > +
> > +       aux-bus {
> > +               panel: panel {
> > +                       enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;
> > +                       power-supply = <&vreg_edp_3p3>;
> > +                       no-hpd;
> > +
> > +                       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>;
> > +
> > +                               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";
> > +};
> > +
> > +&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>;
> > +       };
> > +};
> > +
> > +&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/SAMSUNG/galaxy-book4-edge/qcadsp8380.mbn",
> > +                       "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/adsp_dtbs.elf";
> > +
> > +       status = "okay";
> > +};
> > +
> > +&remoteproc_cdsp {
> > +       firmware-name = "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/qccdsp8380.mbn",
> > +                       "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/cdsp_dtbs.elf";
> > +
> > +       status = "okay";
> > +};
> > +
> > +&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) */
> > +
> > +       edp_reg_en: edp-reg-en-state {
> > +               pins = "gpio70";
> > +               function = "gpio";
> > +               drive-strength = <16>;
> > +               bias-pull-up;
> > +               output-low;
> > +       };
> > +
> > +       octa_vdd_en: octa-vdd-en-state {
> > +               pins = "gpio111";
> > +               function = "gpio";
> > +               drive-strength = <16>;
> > +               bias-pull-up;
> > +               output-high;
> > +       };
> > +
> > +       display_vdd_en: display-vdd-en-state {
> > +               pins = "gpio120";
> > +               function = "gpio";
> > +               drive-strength = <16>;
> > +               bias-pull-up;
> > +               output-high;
> > +       };
> > +
> > +       edp0_hpd_default: edp0-hpd-default-state {
> > +               pins = "gpio119";
> > +               function = "edp0_hot";
> > +               bias-pull-down;
> > +               input-enable;
> > +               drive-strength = <2>;
> > +       };
> > +
> > +
> > +       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;
> > +       };
> > +
> > +       hdmi_hpd_default: hdmi-hpd-default-state {
> > +               pins = "gpio126";
> > +               function = "usb2_dp";
> > +               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;
> > +       };
> > +
> > +       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>;
> > +               };
> > +       };
> > +
> > +       usb_1_ss0_sbu_default: usb-1-ss0-sbu-state {
> > +               mode-pins {
> > +                       pins = "gpio166";
> > +                       function = "gpio";
> > +                       bias-disable;
> > +                       drive-strength = <2>;
> > +                       output-high;
> > +               };
> > +
> > +               oe-n-pins {
> > +                       pins = "gpio168";
> > +                       function = "gpio";
> > +                       bias-disable;
> > +                       drive-strength = <2>;
> > +               };
> > +
> > +               sel-pins {
> > +                       pins = "gpio167";
> > +                       function = "gpio";
> > +                       bias-disable;
> > +                       drive-strength = <2>;
> > +               };
> > +
> > +       };
> > +
> > +       usb_1_ss1_sbu_default: usb-1-ss1-sbu-state {
> > +               mode-pins {
> > +                       pins = "gpio177";
> > +                       function = "gpio";
> > +                       bias-disable;
> > +                       drive-strength = <2>;
> > +                       output-high;
> > +               };
> > +
> > +               oe-n-pins {
> > +                       pins = "gpio179";
> > +                       function = "gpio";
> > +                       bias-disable;
> > +                       drive-strength = <2>;
> > +               };
> > +
> > +               sel-pins {
> > +                       pins = "gpio178";
> > +                       function = "gpio";
> > +                       bias-disable;
> > +                       drive-strength = <2>;
> > +               };
> > +       };
> > +
> > +       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;
> > +       };
> > +
> > +       wcd_default: wcd-reset-n-active-state {
> > +               pins = "gpio191";
> > +               function = "gpio";
> > +               drive-strength = <16>;
> > +               bias-disable;
> > +               output-low;
> > +       };
> > +};
> > +
> > +&ufs_mem_hc {
> > +       status = "okay";
> > +
> > +       reset-gpios = <&tlmm 238 GPIO_ACTIVE_LOW>;
> > +       vcc-supply = <&vreg_l17b_2p5>;
> > +       vcc-max-microamp = <600000>;
> > +
> > +       vccq-supply = <&vreg_l2i_1p2>;
> > +       vccq-max-microamp = <600000>;
> > +};
> > +
> > +&ufs_mem_phy {
> > +       status = "okay";
> > +
> > +       vdda-phy-supply = <&vreg_l3i_0p8>;
> > +       vdda-pll-supply = <&vreg_l3e_1p2>;
> > +};
> > +
> > +&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";
> > +};
> > +
> > +&usb_1_ss0 {
> > +       status = "okay";
> > +};
> > +
> > +&usb_1_ss0_hsphy {
> > +       vdd-supply = <&vreg_l3j_0p8>;
> > +       vdda12-supply = <&vreg_l2j_1p2>;
> > +
> > +       status = "okay";
> > +};
> > +
> > +&usb_1_ss0_qmpphy {
> > +       vdda-phy-supply = <&vreg_l2j_1p2>;
> > +       vdda-pll-supply = <&vreg_l1j_0p8>;
> > +
> > +       status = "okay";
> > +};
> > +
> > +&usb_1_ss0 {
> > +       dr_mode = "host";
> > +};
> > +
> > +&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 {
> > +       status = "okay";
> > +};
> > +
> > +&usb_1_ss1_hsphy {
> > +       vdd-supply = <&vreg_l3j_0p8>;
> > +       vdda12-supply = <&vreg_l2j_1p2>;
> > +
> > +       status = "okay";
> > +};
> > +
> > +&usb_1_ss1_qmpphy {
> > +       vdda-phy-supply = <&vreg_l2j_1p2>;
> > +       vdda-pll-supply = <&vreg_l2d_0p9>;
> > +
> > +       status = "okay";
> > +};
> > +
> > +&usb_1_ss1 {
> > +       dr_mode = "host";
> > +};
> > +
> > +&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_1_ss2_qmpphy {
> > +       vdda-phy-supply = <&vreg_l2j_1p2>;
> > +       vdda-pll-supply = <&vreg_l2d_0p9>;
> > +
> > +       /delete-property/ mode-switch;
> > +       /delete-property/ orientation-switch;
> > +
> > +       status = "okay";
> > +
> > +       ports {
> > +               port@0 {
> > +                       #address-cells = <1>;
> > +                       #size-cells = <0>;
> > +
> > +                       /delete-node/ endpoint;
> > +
> > +                       usb_1_ss2_qmpphy_out_dp: endpoint@0 {
> > +                               reg = <0>;
> > +
> > +                               data-lanes = <3 2 1 0>;
> > +                               remote-endpoint = <&hdmi_bridge_dp_in>;
> > +                       };
> > +               };
> > +       };
> > +};
> > +
> > +
> > +/* MP0 goes to the USB-A port(USB3) and FPC */
> > +&usb_mp {
> > +       status = "okay";
> > +
> > +       /* Limit to single port */
> > +       phys = <&usb_mp_hsphy0>, <&usb_mp_qmpphy0>;
> > +       phy-names = "usb2-0", "usb3-0";
> > +};
> > +
> > +&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";
> > +};
> > diff --git a/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts b/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts
> > new file mode 100644
> > index 000000000..333a69a8a
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts
> > @@ -0,0 +1,28 @@
> > +// SPDX-License-Identifier: BSD-3-Clause
> > +
> > +/dts-v1/;
> > +
> > +#include "x1-samsung-galaxy-book4-edge.dtsi"
> > +
> > +/ {
> > +       model = "Samsung Galaxy Book4 Edge (14 inch)";
> > +       compatible = "samsung,galaxy-book4-edge-14", "samsung,galaxy-book4-edge",
> > +                    "qcom,x1e80100";
> > +};
> > +
> > +&i2c13 {
> > +       touchpad@40 {
> > +               compatible = "hid-over-i2c";
> > +               reg = <0x40>;
> > +
> > +               hid-descr-addr = <0xe>;
> > +               interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>;
> > +
> > +               pinctrl-0 = <&tpad_default>;
> > +               pinctrl-names = "default";
> > +       };
> > +};
> > +
> > +&panel {
> > +       compatible = "samsung,atna40cu07", "samsung,atna33xc20";
> > +};
> > diff --git a/arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts b/arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts
> > new file mode 100644
> > index 000000000..947eea411
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts
> > @@ -0,0 +1,31 @@
> > +// SPDX-License-Identifier: BSD-3-Clause
> > +
> > +/dts-v1/;
> > +
> > +#include "x1-samsung-galaxy-book4-edge.dtsi"
> > +
> > +/ {
> > +       model = "Samsung Galaxy Book4 Edge (16 inch)";
> > +       compatible = "samsung,galaxy-book4-edge-16", "samsung,galaxy-book4-edge",
> > +                    "qcom,x1e80100";
> > +};
> > +
> > +&i2c13 {
> > +       touchpad@50 {
> > +               compatible = "hid-over-i2c";
> > +               reg = <0x50>;
> > +
> > +               hid-descr-addr = <0xd1>;
> > +               interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>;
> > +
> > +               vdd-supply = <&vreg_misc_3p3>;
> > +               vddl-supply = <&vreg_l15b_1p8>;
> > +
> > +               pinctrl-0 = <&tpad_default>;
> > +               pinctrl-names = "default";
> > +       };
> > +};
> > +
> > +&panel {
> > +       compatible = "samsung,atna60cl07", "samsung,atna33xc20";
> > +};
> > --
> > 2.43.0
> >


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees
  2026-09-28 16:44   ` Antheas Kapenekakis
  2026-09-28 16:45     ` Antheas Kapenekakis
@ 2026-09-28 18:41     ` Maxim Storetvedt
  2026-09-28 19:09       ` Antheas Kapenekakis
  1 sibling, 1 reply; 14+ messages in thread
From: Maxim Storetvedt @ 2026-09-28 18:41 UTC (permalink / raw)
  To: Antheas Kapenekakis
  Cc: andersson, robh, krzk+dt, conor+dt, marcus, marijn.suijten,
	linux-arm-msm, devicetree, linux-kernel, abel.vesa, abel.vesa,
	johan, konradybcio, kirill


On 9/28/26 18:44, Antheas Kapenekakis wrote:
> On Sun, 20 Sept 2026 at 20:41, Maxim Storetvedt <mstoretv@cern.ch> wrote:
>>
>> Adds devicetrees for the 14-inch and 16-inch hamoa SKUs of the Samsung Galaxy Book4 Edge.
>>
>> These use a common dtsi derived from nodes that were able to work on Linux
>> from the initial Galaxy Book4 Edge DTS by Marcus:
>>
>> Link: https://lore.kernel.org/all/p3mhtj2rp6y2ezuwpd2gu7dwx5cbckfu4s4pazcudi4j2wogtr@4yecb2bkeyms/
>>
>> combined with the patch series the Honor Magicbook Art 14, which shares device similarities:
>>
>> Link: https://lore.kernel.org/all/20260629154812.9066-1-mail@etehtsea.me/
> 
> Links go in the bottom, Based-on-a-patch is not a thing, you may add a
> Coby as noted in a parallel thread.
> 
>> as well as a few more adjustments on top of that again to get additional features working.
>> Special thanks to Jesse Ahn for helping expand on what would eventually become this dtsi.
> 
> Hi Maxim,
> I tested this series on a kernel with various other backports on two
> european (norwegian market) galaxy book4 edges.
> 
> Specifically, the 14in NP940XMA and the 15.6in (not 16) NP750XQB.
> Specifically, the later is an X1Plus variant that came out a year
> later with cheaper components. It does not work properly on either on
> them. I was hoping that at least the 14in model would work as is but
> no.
> 
> My test devices have proprietary Samsung battery controllers
> (ENE-KB9058) and type C controllers (Samsung EmuEC). Also the speaker
> amplifiers are different. So the battery reporting, audio, and USB C
> ports do not work at all using your DTs. The TPM does not bind either
> but you do not claim that it does. At least they got me to boot and
> for that I am grateful.
> 
> Other stuff also does not work, but I am just listing the main ones.
> 
> I suggest you change the -14/-16 suffixes on both models with
> something more specific.
> 
> The prior patches in the series look fine to my eyes. I did not A/B
> test them, just pulled them in.
> 
> Best,
> Antheas
> 

Hi Antheas,

Thanks for giving it a test! I think we both have the (almost) same
device, and your experience on the 14" NP940XMA (NO) probably mirrors
that of my NP940XMA (IT).

USB-C should already work for this SKU with the patch DT, but not USB-C
hotplug (yet). For now, everything is just left as already set up by the
firmware, so peripherals plugged in after boot will not be detected.
Everything inserted before boot, and hotplug on USB hubs, should still
be fine. Could you give it a try on your device?

Battery state monitoring should also be with the same caveats on both
these devices, going via a separate protocol over I2C instead of
following the other X1Es. There is a separate battery driver for this,
and also other useful patches (like the webcam and kb backlight)
downstream. For now at least, only the features listed in the cover are
included here, but our repo linked there has pointers to the other
relevant patches needed for now.

On that topic, you will also find links to devicetrees for the X1P42100
Book4 Edge there (via Ciscobugger). This might not be the same X1P SKU,
but could also be worth a try.

Cheers,
-Max

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees
  2026-09-28 18:41     ` Maxim Storetvedt
@ 2026-09-28 19:09       ` Antheas Kapenekakis
  2026-09-28 22:22         ` Maxim Storetvedt
  0 siblings, 1 reply; 14+ messages in thread
From: Antheas Kapenekakis @ 2026-09-28 19:09 UTC (permalink / raw)
  To: Maxim Storetvedt
  Cc: andersson, robh, krzk+dt, conor+dt, marcus, marijn.suijten,
	linux-arm-msm, devicetree, linux-kernel, abel.vesa, abel.vesa,
	johan, konradybcio, kirill

On Mon, 28 Sept 2026 at 20:41, Maxim Storetvedt <mstoretv@cern.ch> wrote:
>
>
> On 9/28/26 18:44, Antheas Kapenekakis wrote:
> > On Sun, 20 Sept 2026 at 20:41, Maxim Storetvedt <mstoretv@cern.ch> wrote:
> >>
> >> Adds devicetrees for the 14-inch and 16-inch hamoa SKUs of the Samsung Galaxy Book4 Edge.
> >>
> >> These use a common dtsi derived from nodes that were able to work on Linux
> >> from the initial Galaxy Book4 Edge DTS by Marcus:
> >>
> >> Link: https://lore.kernel.org/all/p3mhtj2rp6y2ezuwpd2gu7dwx5cbckfu4s4pazcudi4j2wogtr@4yecb2bkeyms/
> >>
> >> combined with the patch series the Honor Magicbook Art 14, which shares device similarities:
> >>
> >> Link: https://lore.kernel.org/all/20260629154812.9066-1-mail@etehtsea.me/
> >
> > Links go in the bottom, Based-on-a-patch is not a thing, you may add a
> > Coby as noted in a parallel thread.
> >
> >> as well as a few more adjustments on top of that again to get additional features working.
> >> Special thanks to Jesse Ahn for helping expand on what would eventually become this dtsi.
> >
> > Hi Maxim,
> > I tested this series on a kernel with various other backports on two
> > european (norwegian market) galaxy book4 edges.
> >
> > Specifically, the 14in NP940XMA and the 15.6in (not 16) NP750XQB.
> > Specifically, the later is an X1Plus variant that came out a year
> > later with cheaper components. It does not work properly on either on
> > them. I was hoping that at least the 14in model would work as is but
> > no.
> >
> > My test devices have proprietary Samsung battery controllers
> > (ENE-KB9058) and type C controllers (Samsung EmuEC). Also the speaker
> > amplifiers are different. So the battery reporting, audio, and USB C
> > ports do not work at all using your DTs. The TPM does not bind either
> > but you do not claim that it does. At least they got me to boot and
> > for that I am grateful.
> >
> > Other stuff also does not work, but I am just listing the main ones.
> >
> > I suggest you change the -14/-16 suffixes on both models with
> > something more specific.
> >
> > The prior patches in the series look fine to my eyes. I did not A/B
> > test them, just pulled them in.
> >
> > Best,
> > Antheas
> >
>
> Hi Antheas,
>
> Thanks for giving it a test! I think we both have the (almost) same
> device, and your experience on the 14" NP940XMA (NO) probably mirrors
> that of my NP940XMA (IT).
>
> USB-C should already work for this SKU with the patch DT, but not USB-C
> hotplug (yet). For now, everything is just left as already set up by the
> firmware, so peripherals plugged in after boot will not be detected.
> Everything inserted before boot, and hotplug on USB hubs, should still
> be fine. Could you give it a try on your device?

Yes, that mirrors my experience. But without a TypeC driver you don't
get renegotiation. So no USB3, no fast charging, no hotplugging, and
no DP alt mode. I wrote one but it's still buggy and a bit too
complicated.

> Battery state monitoring should also be with the same caveats on both
> these devices, going via a separate protocol over I2C instead of
> following the other X1Es. There is a separate battery driver for this,
> and also other useful patches (like the webcam and kb backlight)
> downstream. For now at least, only the features listed in the cover are
> included here, but our repo linked there has pointers to the other
> relevant patches needed for now.

I did not find a battery driver so likewise I wrote mine. I think the
battery driver is more upstreamable than the TypeC driver. That will
take a lot of work.

But it also means you have a spurious hunk on your dt then. The hunk
that registers the dead battery and supposedly controls the TypeC
connectors from qualcomm can be removed as it is not present on your
device. It can then be replaced with one that registers the proper
driver later.

> On that topic, you will also find links to devicetrees for the X1P42100
> Book4 Edge there (via Ciscobugger). This might not be the same X1P SKU,
> but could also be worth a try.

I had a quick look at your repo. In my initial attempt, I tried to
reference your upstream (not you) but quickly gave up due to the large
number of commits and dtbs.

I only see a polling commit in your tree after it diverges, I do not
see a battery driver?

I think the only realistic way forward for me is to wait for upstream
to catch up and only add support for my reference devices (the 14 and
15.6) so I can flesh out my userspace until qualcomm starts to deliver
results on mainline kernels.

I attach my current tree below [1], note it is very unclean and I am
currently doing fix commits. Once I get to a place where I am happy
with base functionality, I will squash everything send it as a series.
If you tell me that your device works with the drivers I wrote (note
the LLM assistance), we can synergize. I do not expect the typec
driver to get upstreamed unless someone more familiar with the type c
internals gets involved, as a lot of the changes go over my head. But
I think it is realistic for me to upstream the battery driver, unless
you have a simpler alternative.

the drivers relevant to you are ene-kb9058 and samsung-emuec. If they
work with your laptop and are universal for these devices great. Note
that they are both interrupt based so the battery reporting changes
instantly. You can also take my dt for the 14 in for a spin or just
deploy my tree as a test.

I am contemplating whether an initial series using DTs, then a
follow-up switching to ACPI is simpler for everyone involved. But as I
see the huge amount of dts, I start to get concerned. So I might send
my initial series that enables the device to boot using ACPI instead.
As you know, Windows uses ACPI to boot the device and a lot of the dt
i derived was from the ACPI tables I dumped in Windows. The DT was
important for me to get an initial bring up for the device. I can now
sync kernels to it in ~2 minutes so I can rapidly iterate.

To that end, can anyone tell me why are we not attempting to use ACPI
to boot these devices and relying on DTs on the ARM side? I know that
traditionally for phones DTs are used but these are UEFI devices and
contain proper BIOS data for autodiscovery. What is the current
blocker? Switching to ACPI should let us drop all laptop specific DTs
by adding parsers to their currently DT only drivers. Am I wrong?

Antheas

[1] https://github.com/anatase-org/patchwork/commits/7.2.7-an12

> Cheers,
> -Max


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees
  2026-09-28 19:09       ` Antheas Kapenekakis
@ 2026-09-28 22:22         ` Maxim Storetvedt
  2026-09-29 10:15           ` Antheas Kapenekakis
  0 siblings, 1 reply; 14+ messages in thread
From: Maxim Storetvedt @ 2026-09-28 22:22 UTC (permalink / raw)
  To: Antheas Kapenekakis
  Cc: andersson, robh, krzk+dt, conor+dt, marcus, marijn.suijten,
	linux-arm-msm, devicetree, linux-kernel, abel.vesa, abel.vesa,
	johan, konradybcio, kirill


On 9/28/26 21:09, Antheas Kapenekakis wrote:
> On Mon, 28 Sept 2026 at 20:41, Maxim Storetvedt <mstoretv@cern.ch> wrote:
>>
>>
>> On 9/28/26 18:44, Antheas Kapenekakis wrote:
>>> On Sun, 20 Sept 2026 at 20:41, Maxim Storetvedt <mstoretv@cern.ch> wrote:
>>>>
>>>> Adds devicetrees for the 14-inch and 16-inch hamoa SKUs of the Samsung Galaxy Book4 Edge.
>>>>
>>>> These use a common dtsi derived from nodes that were able to work on Linux
>>>> from the initial Galaxy Book4 Edge DTS by Marcus:
>>>>
>>>> Link: https://lore.kernel.org/all/p3mhtj2rp6y2ezuwpd2gu7dwx5cbckfu4s4pazcudi4j2wogtr@4yecb2bkeyms/
>>>>
>>>> combined with the patch series the Honor Magicbook Art 14, which shares device similarities:
>>>>
>>>> Link: https://lore.kernel.org/all/20260629154812.9066-1-mail@etehtsea.me/
>>>
>>> Links go in the bottom, Based-on-a-patch is not a thing, you may add a
>>> Coby as noted in a parallel thread.
>>>
>>>> as well as a few more adjustments on top of that again to get additional features working.
>>>> Special thanks to Jesse Ahn for helping expand on what would eventually become this dtsi.
>>>
>>> Hi Maxim,
>>> I tested this series on a kernel with various other backports on two
>>> european (norwegian market) galaxy book4 edges.
>>>
>>> Specifically, the 14in NP940XMA and the 15.6in (not 16) NP750XQB.
>>> Specifically, the later is an X1Plus variant that came out a year
>>> later with cheaper components. It does not work properly on either on
>>> them. I was hoping that at least the 14in model would work as is but
>>> no.
>>>
>>> My test devices have proprietary Samsung battery controllers
>>> (ENE-KB9058) and type C controllers (Samsung EmuEC). Also the speaker
>>> amplifiers are different. So the battery reporting, audio, and USB C
>>> ports do not work at all using your DTs. The TPM does not bind either
>>> but you do not claim that it does. At least they got me to boot and
>>> for that I am grateful.
>>>
>>> Other stuff also does not work, but I am just listing the main ones.
>>>
>>> I suggest you change the -14/-16 suffixes on both models with
>>> something more specific.
>>>
>>> The prior patches in the series look fine to my eyes. I did not A/B
>>> test them, just pulled them in.
>>>
>>> Best,
>>> Antheas
>>>
>>
>> Hi Antheas,
>>
>> Thanks for giving it a test! I think we both have the (almost) same
>> device, and your experience on the 14" NP940XMA (NO) probably mirrors
>> that of my NP940XMA (IT).
>>
>> USB-C should already work for this SKU with the patch DT, but not USB-C
>> hotplug (yet). For now, everything is just left as already set up by the
>> firmware, so peripherals plugged in after boot will not be detected.
>> Everything inserted before boot, and hotplug on USB hubs, should still
>> be fine. Could you give it a try on your device?
> 
> Yes, that mirrors my experience. But without a TypeC driver you don't
> get renegotiation. So no USB3, no fast charging, no hotplugging, and
> no DP alt mode. I wrote one but it's still buggy and a bit too
> complicated.
> 
>> Battery state monitoring should also be with the same caveats on both
>> these devices, going via a separate protocol over I2C instead of
>> following the other X1Es. There is a separate battery driver for this,
>> and also other useful patches (like the webcam and kb backlight)
>> downstream. For now at least, only the features listed in the cover are
>> included here, but our repo linked there has pointers to the other
>> relevant patches needed for now.
> 
> I did not find a battery driver so likewise I wrote mine. I think the
> battery driver is more upstreamable than the TypeC driver. That will
> take a lot of work.
> 
> But it also means you have a spurious hunk on your dt then. The hunk
> that registers the dead battery and supposedly controls the TypeC
> connectors from qualcomm can be removed as it is not present on your
> device. It can then be replaced with one that registers the proper
> driver later.

Just left as-is as placeholders, but yes, can otherwise be removed.
Do not really affect anything otherwise.

> 
>> On that topic, you will also find links to devicetrees for the X1P42100
>> Book4 Edge there (via Ciscobugger). This might not be the same X1P SKU,
>> but could also be worth a try.
> 
> I had a quick look at your repo. In my initial attempt, I tried to
> reference your upstream (not you) but quickly gave up due to the large
> number of commits and dtbs.
> 
> I only see a polling commit in your tree after it diverges, I do not
> see a battery driver?
> 

Plenty of old branches here, but README should always be up-to-date with
links to all the patches used [1]. In this case, we just use the
existing battery driver by Saddy [2].

> I think the only realistic way forward for me is to wait for upstream
> to catch up and only add support for my reference devices (the 14 and
> 15.6) so I can flesh out my userspace until qualcomm starts to deliver
> results on mainline kernels.
> 
> I attach my current tree below [1], note it is very unclean and I am
> currently doing fix commits. Once I get to a place where I am happy
> with base functionality, I will squash everything send it as a series.
> If you tell me that your device works with the drivers I wrote (note
> the LLM assistance), we can synergize. I do not expect the typec
> driver to get upstreamed unless someone more familiar with the type c
> internals gets involved, as a lot of the changes go over my head. But
> I think it is realistic for me to upstream the battery driver, unless
> you have a simpler alternative.
> 
> the drivers relevant to you are ene-kb9058 and samsung-emuec. If they
> work with your laptop and are universal for these devices great. Note
> that they are both interrupt based so the battery reporting changes
> instantly. You can also take my dt for the 14 in for a spin or just
> deploy my tree as a test.
> 

Thanks for that link! Tested your np940xma.dtb + ene-kb9058 and
samsung-emuec drivers on top of my tree, and they seem to boot
fine on my NP940XMA as well. Battery monitoring displayed, and there
is hotplug detection (for the charger).

> I am contemplating whether an initial series using DTs, then a
> follow-up switching to ACPI is simpler for everyone involved. But as I
> see the huge amount of dts, I start to get concerned. So I might send
> my initial series that enables the device to boot using ACPI instead.
> As you know, Windows uses ACPI to boot the device and a lot of the dt
> i derived was from the ACPI tables I dumped in Windows. The DT was
> important for me to get an initial bring up for the device. I can now
> sync kernels to it in ~2 minutes so I can rapidly iterate.
> 
> To that end, can anyone tell me why are we not attempting to use ACPI
> to boot these devices and relying on DTs on the ARM side? I know that
> traditionally for phones DTs are used but these are UEFI devices and
> contain proper BIOS data for autodiscovery. What is the current
> blocker? Switching to ACPI should let us drop all laptop specific DTs
> by adding parsers to their currently DT only drivers. Am I wrong?
> 

There's an interesting discussion for that here that's worth a look [3]

Cheers,
-Max

[1]
https://github.com/zensanp/linux-book4-edge/blob/x1e80100-book4e-7.2-14-tmp/README.md
[2] https://github.com/Saddytech/Galaxy-Book4-Edge-linux/tree/main/driver
[3]
https://lore.kernel.org/linux-acpi/20260623145225.143218-1-johannes.goede@oss.qualcomm.com/


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees
  2026-09-28 22:22         ` Maxim Storetvedt
@ 2026-09-29 10:15           ` Antheas Kapenekakis
  0 siblings, 0 replies; 14+ messages in thread
From: Antheas Kapenekakis @ 2026-09-29 10:15 UTC (permalink / raw)
  To: Maxim Storetvedt
  Cc: andersson, robh, krzk+dt, conor+dt, marcus, marijn.suijten,
	linux-arm-msm, devicetree, linux-kernel, abel.vesa, abel.vesa,
	johan, konradybcio, kirill

On Tue, 29 Sept 2026 at 00:22, Maxim Storetvedt <mstoretv@cern.ch> wrote:
>
>
> On 9/28/26 21:09, Antheas Kapenekakis wrote:
> > On Mon, 28 Sept 2026 at 20:41, Maxim Storetvedt <mstoretv@cern.ch> wrote:
> >>
> >>
> >> On 9/28/26 18:44, Antheas Kapenekakis wrote:
> >>> On Sun, 20 Sept 2026 at 20:41, Maxim Storetvedt <mstoretv@cern.ch> wrote:
> >>>>
> >>>> Adds devicetrees for the 14-inch and 16-inch hamoa SKUs of the Samsung Galaxy Book4 Edge.
> >>>>
> >>>> These use a common dtsi derived from nodes that were able to work on Linux
> >>>> from the initial Galaxy Book4 Edge DTS by Marcus:
> >>>>
> >>>> Link: https://lore.kernel.org/all/p3mhtj2rp6y2ezuwpd2gu7dwx5cbckfu4s4pazcudi4j2wogtr@4yecb2bkeyms/
> >>>>
> >>>> combined with the patch series the Honor Magicbook Art 14, which shares device similarities:
> >>>>
> >>>> Link: https://lore.kernel.org/all/20260629154812.9066-1-mail@etehtsea.me/
> >>>
> >>> Links go in the bottom, Based-on-a-patch is not a thing, you may add a
> >>> Coby as noted in a parallel thread.
> >>>
> >>>> as well as a few more adjustments on top of that again to get additional features working.
> >>>> Special thanks to Jesse Ahn for helping expand on what would eventually become this dtsi.
> >>>
> >>> Hi Maxim,
> >>> I tested this series on a kernel with various other backports on two
> >>> european (norwegian market) galaxy book4 edges.
> >>>
> >>> Specifically, the 14in NP940XMA and the 15.6in (not 16) NP750XQB.
> >>> Specifically, the later is an X1Plus variant that came out a year
> >>> later with cheaper components. It does not work properly on either on
> >>> them. I was hoping that at least the 14in model would work as is but
> >>> no.
> >>>
> >>> My test devices have proprietary Samsung battery controllers
> >>> (ENE-KB9058) and type C controllers (Samsung EmuEC). Also the speaker
> >>> amplifiers are different. So the battery reporting, audio, and USB C
> >>> ports do not work at all using your DTs. The TPM does not bind either
> >>> but you do not claim that it does. At least they got me to boot and
> >>> for that I am grateful.
> >>>
> >>> Other stuff also does not work, but I am just listing the main ones.
> >>>
> >>> I suggest you change the -14/-16 suffixes on both models with
> >>> something more specific.
> >>>
> >>> The prior patches in the series look fine to my eyes. I did not A/B
> >>> test them, just pulled them in.
> >>>
> >>> Best,
> >>> Antheas
> >>>
> >>
> >> Hi Antheas,
> >>
> >> Thanks for giving it a test! I think we both have the (almost) same
> >> device, and your experience on the 14" NP940XMA (NO) probably mirrors
> >> that of my NP940XMA (IT).
> >>
> >> USB-C should already work for this SKU with the patch DT, but not USB-C
> >> hotplug (yet). For now, everything is just left as already set up by the
> >> firmware, so peripherals plugged in after boot will not be detected.
> >> Everything inserted before boot, and hotplug on USB hubs, should still
> >> be fine. Could you give it a try on your device?
> >
> > Yes, that mirrors my experience. But without a TypeC driver you don't
> > get renegotiation. So no USB3, no fast charging, no hotplugging, and
> > no DP alt mode. I wrote one but it's still buggy and a bit too
> > complicated.
> >
> >> Battery state monitoring should also be with the same caveats on both
> >> these devices, going via a separate protocol over I2C instead of
> >> following the other X1Es. There is a separate battery driver for this,
> >> and also other useful patches (like the webcam and kb backlight)
> >> downstream. For now at least, only the features listed in the cover are
> >> included here, but our repo linked there has pointers to the other
> >> relevant patches needed for now.
> >
> > I did not find a battery driver so likewise I wrote mine. I think the
> > battery driver is more upstreamable than the TypeC driver. That will
> > take a lot of work.
> >
> > But it also means you have a spurious hunk on your dt then. The hunk
> > that registers the dead battery and supposedly controls the TypeC
> > connectors from qualcomm can be removed as it is not present on your
> > device. It can then be replaced with one that registers the proper
> > driver later.
>
> Just left as-is as placeholders, but yes, can otherwise be removed.
> Do not really affect anything otherwise.

Unfortunately, there is no such thing as placeholder. When your series
merges it will have no placeholders. Fold the contents of [1] into
this patch for next revision. This node should not be included and is
not used for these devices. This will drop the duplicate battery and
also allow you to drop your external rule.

[1] https://github.com/anatase-org/patchwork/commit/4b9fe35f55c78342b24c2ab309acc8dc38a890cf

> >
> >> On that topic, you will also find links to devicetrees for the X1P42100
> >> Book4 Edge there (via Ciscobugger). This might not be the same X1P SKU,
> >> but could also be worth a try.
> >
> > I had a quick look at your repo. In my initial attempt, I tried to
> > reference your upstream (not you) but quickly gave up due to the large
> > number of commits and dtbs.
> >
> > I only see a polling commit in your tree after it diverges, I do not
> > see a battery driver?
> >
>
> Plenty of old branches here, but README should always be up-to-date with
> links to all the patches used [1]. In this case, we just use the
> existing battery driver by Saddy [2].
>
> > I think the only realistic way forward for me is to wait for upstream
> > to catch up and only add support for my reference devices (the 14 and
> > 15.6) so I can flesh out my userspace until qualcomm starts to deliver
> > results on mainline kernels.
> >
> > I attach my current tree below [1], note it is very unclean and I am
> > currently doing fix commits. Once I get to a place where I am happy
> > with base functionality, I will squash everything send it as a series.
> > If you tell me that your device works with the drivers I wrote (note
> > the LLM assistance), we can synergize. I do not expect the typec
> > driver to get upstreamed unless someone more familiar with the type c
> > internals gets involved, as a lot of the changes go over my head. But
> > I think it is realistic for me to upstream the battery driver, unless
> > you have a simpler alternative.
> >
> > the drivers relevant to you are ene-kb9058 and samsung-emuec. If they
> > work with your laptop and are universal for these devices great. Note
> > that they are both interrupt based so the battery reporting changes
> > instantly. You can also take my dt for the 14 in for a spin or just
> > deploy my tree as a test.
> >
>
> Thanks for that link! Tested your np940xma.dtb + ene-kb9058 and
> samsung-emuec drivers on top of my tree, and they seem to boot
> fine on my NP940XMA as well. Battery monitoring displayed, and there
> is hotplug detection (for the charger).

Good to know. I will base on your V7 going forward and only do my
changes on top (removing the separate dbts I did thinking there was a
deviation). This will hopefully help you to push this through.

> > I am contemplating whether an initial series using DTs, then a
> > follow-up switching to ACPI is simpler for everyone involved. But as I
> > see the huge amount of dts, I start to get concerned. So I might send
> > my initial series that enables the device to boot using ACPI instead.
> > As you know, Windows uses ACPI to boot the device and a lot of the dt
> > i derived was from the ACPI tables I dumped in Windows. The DT was
> > important for me to get an initial bring up for the device. I can now
> > sync kernels to it in ~2 minutes so I can rapidly iterate.
> >
> > To that end, can anyone tell me why are we not attempting to use ACPI
> > to boot these devices and relying on DTs on the ARM side? I know that
> > traditionally for phones DTs are used but these are UEFI devices and
> > contain proper BIOS data for autodiscovery. What is the current
> > blocker? Switching to ACPI should let us drop all laptop specific DTs
> > by adding parsers to their currently DT only drivers. Am I wrong?
> >
>
> There's an interesting discussion for that here that's worth a look [3]

I had a look. Interesting discussion. So that's where Hans went. Good
to know. Great hire by Qualcomm. I will consider his points and track
followups for ACPI

Best,
Antheas

> Cheers,
> -Max
>
> [1]
> https://github.com/zensanp/linux-book4-edge/blob/x1e80100-book4e-7.2-14-tmp/README.md
> [2] https://github.com/Saddytech/Galaxy-Book4-Edge-linux/tree/main/driver
> [3]
> https://lore.kernel.org/linux-acpi/20260623145225.143218-1-johannes.goede@oss.qualcomm.com/
>
>


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v7 0/3] Add initial DTS for Samsung Galaxy Book4 Edge
  2026-09-20 18:41 [PATCH v7 0/3] Add initial DTS for Samsung Galaxy Book4 Edge Maxim Storetvedt
                   ` (2 preceding siblings ...)
  2026-09-20 18:41 ` [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees Maxim Storetvedt
@ 2026-09-29 10:22 ` Antheas Kapenekakis
  3 siblings, 0 replies; 14+ messages in thread
From: Antheas Kapenekakis @ 2026-09-29 10:22 UTC (permalink / raw)
  To: Maxim Storetvedt
  Cc: andersson, robh, krzk+dt, conor+dt, marcus, marijn.suijten,
	linux-arm-msm, devicetree, linux-kernel, abel.vesa, abel.vesa,
	johan, konradybcio, kirill

On Sun, 20 Sept 2026 at 20:41, Maxim Storetvedt <mstoretv@cern.ch> wrote:
>
> This patch introduces devicetrees to support the hamoa Samsung Galaxy Book4
> Edge, and includes the X1E80100 14-inch SKU and X1E84100 16-inch SKU.
>
> It continues the earlier patch series started by Marcus Glocker, and the
> previously submitted v6 [1].
>
> Supported:
> - Keyboard
> - Touchpad
> - USB type-c

On the next revision, specify that USB type A is fully supported (16
in) and Type C is supported as initialized by UEFI only

> - Display

Consider fixing the Touchscreen too. If I recall the goodix driver
works as is. At least on my device. Update the dbt. You may reference
my oot dbt for this.

I will add my reviewed-by/tested-by on the final revision and that's
enough for me. You don't need to give me more credit than that.

Best,
Antheas

> - HDMI
> - WiFi
> - Bluetooth
> - ADSP / CDSP
> - GPU
> - UFS
> - Suspend
>
> Other features (such as the camera and touchscreen) are also confirmed working,
> but for now need multiple patches/changes out of scope for this submission.
> These are tracked downstream in the meantime [2].
>
> Changed from v6:
> - Updated to match current linux-next
> - Use 14 inch SKU as base for the dtsi
>
> Changed from v5:
> - Reworked DTS/DTSI for both 14- & 16-inch SKUs
> - Added Galaxy Book4 Edge to QSEECOM
> - Removed UFS node from the patch
>
> Changed from v4:
> * Fix previously missed commits:
> - Improved commit messages.
> - Added missing clock line for ufs.
> - Removed invalid microamp lines for ufs.
>
> Changed from v3:
> - Improved commit messages.
> - Added missing clock line for ufs.
> - Removed invalid microamp lines for ufs.
>
> Changed from v2:
> - Squash Makefile patch to new DTS file patch.
>
> Changed from v1:
> - Provide the patch in the expected format.
> - Added missing bindings.
> - Removed sound node.
> - Changed regulator syntax to be consistent.
> - Changed touchscreen node comment, and removed false pin definition.
> - Rename ufshc@ to ufs@.
>
> [1] https://lore.kernel.org/all/20260322160317.424797-1-mstoretv@cern.ch/
> [2] https://github.com/zensanp/linux-book4-edge/
>
> Maxim Storetvedt (3):
>   dt-bindings: arm: Add Samsung Galaxy Book4 Edge
>   firmware: qcom: scm: Allow QSEECOM on the Samsung Galaxy Book4 Edge
>   arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees
>
>  .../devicetree/bindings/arm/qcom.yaml         |    7 +
>  arch/arm64/boot/dts/qcom/Makefile             |    2 +
>  .../qcom/x1-samsung-galaxy-book4-edge.dtsi    | 1537 +++++++++++++++++
>  .../x1e80100-samsung-galaxy-book4-edge-14.dts |   28 +
>  .../x1e84100-samsung-galaxy-book4-edge-16.dts |   31 +
>  drivers/firmware/qcom/qcom_scm.c              |    1 +
>  6 files changed, 1606 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi
>  create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts
>  create mode 100644 arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts
>
>
> base-commit: 3f2425f5b5bbbdd991ca9cdfd5502e68d8895998
> --
> 2.43.0
>

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2026-09-29 10:23 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-20 18:41 [PATCH v7 0/3] Add initial DTS for Samsung Galaxy Book4 Edge Maxim Storetvedt
2026-09-20 18:41 ` [PATCH v7 1/3] dt-bindings: arm: Add " Maxim Storetvedt
2026-09-24 13:06   ` Krzysztof Kozlowski
2026-09-20 18:41 ` [PATCH v7 2/3] firmware: qcom: scm: Allow QSEECOM on the " Maxim Storetvedt
2026-09-20 18:41 ` [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees Maxim Storetvedt
2026-09-24 13:08   ` Krzysztof Kozlowski
2026-09-24 20:46     ` Maxim Storetvedt
2026-09-28 16:44   ` Antheas Kapenekakis
2026-09-28 16:45     ` Antheas Kapenekakis
2026-09-28 18:41     ` Maxim Storetvedt
2026-09-28 19:09       ` Antheas Kapenekakis
2026-09-28 22:22         ` Maxim Storetvedt
2026-09-29 10:15           ` Antheas Kapenekakis
2026-09-29 10:22 ` [PATCH v7 0/3] Add initial DTS for Samsung Galaxy Book4 Edge Antheas Kapenekakis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®