public inbox for linux-arm-msm@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 0/6] Add initial DTS for Samsung Galaxy Book4 Edge
@ 2024-08-17 20:32 Marcus Glocker
  2024-08-17 20:33 ` [PATCH v5 1/6] dt-bindings: crypto: Add X1E80100 Crypto Engine Marcus Glocker
                   ` (6 more replies)
  0 siblings, 7 replies; 32+ messages in thread
From: Marcus Glocker @ 2024-08-17 20:32 UTC (permalink / raw)
  To: Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: Marijn Suijten, linux-arm-msm, devicetree, linux-kernel,
	Abel Vesa, Johan Hovold, Konrad Dybcio

This DTS adds initial support for the Samsung Galaxy Book4 Edge laptop.
Keyboard, Touch-pad, and UFS are working.  The Touch-screen needs further
investigation, and is therefore disabled for now.

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@.

Marcus Glocker (6):
  dt-bindings: crypto: Add X1E80100 Crypto Engine
  dt-bindings: phy: Add X1E80100 UFS
  dt-bindings: ufs: Add X1E80100 UFS
  arm64: dts: qcom: Add UFS node
  dt-bindings: arm: Add Samsung Galaxy Book4 Edge
  arm64: dts: qcom: Add Samsung Galaxy Book4 Edge DTS

 .../devicetree/bindings/arm/qcom.yaml         |   1 +
 .../crypto/qcom,inline-crypto-engine.yaml     |   1 +
 .../phy/qcom,sc8280xp-qmp-ufs-phy.yaml        |   2 +
 .../devicetree/bindings/ufs/qcom,ufs.yaml     |   2 +
 arch/arm64/boot/dts/qcom/Makefile             |   1 +
 .../x1e80100-samsung-galaxy-book4-edge.dts    | 957 ++++++++++++++++++
 arch/arm64/boot/dts/qcom/x1e80100.dtsi        |  72 ++
 7 files changed, 1036 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge.dts

-- 
2.39.2


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

* [PATCH v5 1/6] dt-bindings: crypto: Add X1E80100 Crypto Engine
  2024-08-17 20:32 [PATCH v5 0/6] Add initial DTS for Samsung Galaxy Book4 Edge Marcus Glocker
@ 2024-08-17 20:33 ` Marcus Glocker
  2024-08-17 20:34 ` [PATCH v5 2/6] dt-bindings: phy: Add X1E80100 UFS Marcus Glocker
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 32+ messages in thread
From: Marcus Glocker @ 2024-08-17 20:33 UTC (permalink / raw)
  To: Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: Marijn Suijten, linux-arm-msm, devicetree, linux-kernel,
	Abel Vesa, Johan Hovold, Konrad Dybcio

Add the UFS Crypto Engine binding.

Signed-off-by: Marcus Glocker <marcus@nazgul.ch>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 .../devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml    | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml b/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml
index 0304f074cf08..915db3d28892 100644
--- a/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml
+++ b/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml
@@ -19,6 +19,7 @@ properties:
           - qcom,sm8450-inline-crypto-engine
           - qcom,sm8550-inline-crypto-engine
           - qcom,sm8650-inline-crypto-engine
+          - qcom,x1e80100-inline-crypto-engine
       - const: qcom,inline-crypto-engine
 
   reg:
-- 
2.39.2


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

* [PATCH v5 2/6] dt-bindings: phy: Add X1E80100 UFS
  2024-08-17 20:32 [PATCH v5 0/6] Add initial DTS for Samsung Galaxy Book4 Edge Marcus Glocker
  2024-08-17 20:33 ` [PATCH v5 1/6] dt-bindings: crypto: Add X1E80100 Crypto Engine Marcus Glocker
@ 2024-08-17 20:34 ` Marcus Glocker
  2024-08-17 20:36 ` [PATCH v5 3/6] dt-bindings: ufs: " Marcus Glocker
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 32+ messages in thread
From: Marcus Glocker @ 2024-08-17 20:34 UTC (permalink / raw)
  To: Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: Marijn Suijten, linux-arm-msm, devicetree, linux-kernel,
	Abel Vesa, Johan Hovold, Konrad Dybcio

Document the qmp ufs phy compatible for the Qualcomm X1E80100.

Signed-off-by: Marcus Glocker <marcus@nazgul.ch>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 .../devicetree/bindings/phy/qcom,sc8280xp-qmp-ufs-phy.yaml      | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-ufs-phy.yaml b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-ufs-phy.yaml
index f9cfbd0b2de6..c8a61cddb311 100644
--- a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-ufs-phy.yaml
+++ b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-ufs-phy.yaml
@@ -35,6 +35,7 @@ properties:
       - qcom,sm8475-qmp-ufs-phy
       - qcom,sm8550-qmp-ufs-phy
       - qcom,sm8650-qmp-ufs-phy
+      - qcom,x1e80100-qmp-ufs-phy
 
   reg:
     maxItems: 1
@@ -102,6 +103,7 @@ allOf:
               - qcom,sm8475-qmp-ufs-phy
               - qcom,sm8550-qmp-ufs-phy
               - qcom,sm8650-qmp-ufs-phy
+              - qcom,x1e80100-qmp-ufs-phy
     then:
       properties:
         clocks:
-- 
2.39.2


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

* [PATCH v5 3/6] dt-bindings: ufs: Add X1E80100 UFS
  2024-08-17 20:32 [PATCH v5 0/6] Add initial DTS for Samsung Galaxy Book4 Edge Marcus Glocker
  2024-08-17 20:33 ` [PATCH v5 1/6] dt-bindings: crypto: Add X1E80100 Crypto Engine Marcus Glocker
  2024-08-17 20:34 ` [PATCH v5 2/6] dt-bindings: phy: Add X1E80100 UFS Marcus Glocker
@ 2024-08-17 20:36 ` Marcus Glocker
  2024-08-18  6:41   ` Krzysztof Kozlowski
  2024-08-17 20:38 ` [PATCH v5 4/6] arm64: dts: qcom: Add UFS node Marcus Glocker
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 32+ messages in thread
From: Marcus Glocker @ 2024-08-17 20:36 UTC (permalink / raw)
  To: Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: Marijn Suijten, linux-arm-msm, devicetree, linux-kernel,
	Abel Vesa, Johan Hovold, Konrad Dybcio

Document the ufs host controller compatible for the Qualcomm X1E80100.

Signed-off-by: Marcus Glocker <marcus@nazgul.ch>
---
 Documentation/devicetree/bindings/ufs/qcom,ufs.yaml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml b/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml
index 25a5edeea164..4cb3fea53651 100644
--- a/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml
+++ b/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml
@@ -41,6 +41,7 @@ properties:
           - qcom,sm8450-ufshc
           - qcom,sm8550-ufshc
           - qcom,sm8650-ufshc
+          - qcom,x1e80100-ufshc
       - const: qcom,ufshc
       - const: jedec,ufs-2.0
 
@@ -121,6 +122,7 @@ allOf:
           contains:
             enum:
               - qcom,sc7180-ufshc
+              - qcom,x1e80100-ufshc
     then:
       properties:
         clocks:
-- 
2.39.2


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

* [PATCH v5 4/6] arm64: dts: qcom: Add UFS node
  2024-08-17 20:32 [PATCH v5 0/6] Add initial DTS for Samsung Galaxy Book4 Edge Marcus Glocker
                   ` (2 preceding siblings ...)
  2024-08-17 20:36 ` [PATCH v5 3/6] dt-bindings: ufs: " Marcus Glocker
@ 2024-08-17 20:38 ` Marcus Glocker
  2024-08-30  0:05   ` Konrad Dybcio
  2024-08-30  7:02   ` Johan Hovold
  2024-08-17 20:40 ` [PATCH v5 5/6] dt-bindings: arm: Add Samsung Galaxy Book4 Edge Marcus Glocker
                   ` (2 subsequent siblings)
  6 siblings, 2 replies; 32+ messages in thread
From: Marcus Glocker @ 2024-08-17 20:38 UTC (permalink / raw)
  To: Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: Marijn Suijten, linux-arm-msm, devicetree, linux-kernel,
	Abel Vesa, Johan Hovold, Konrad Dybcio

Add the UFS Host Controller node.  This was basically copied from the
arch/arm64/boot/dts/qcom/sc7180.dtsi file.

Signed-off-by: Marcus Glocker <marcus@nazgul.ch>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 arch/arm64/boot/dts/qcom/x1e80100.dtsi | 72 ++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
index 7bca5fcd7d52..9f01b3ff3737 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
@@ -2878,6 +2878,78 @@ mmss_noc: interconnect@1780000 {
 			#interconnect-cells = <2>;
 		};
 
+		ufs_mem_hc: ufs@1d84000 {
+			compatible = "qcom,x1e80100-ufshc", "qcom,ufshc",
+				     "jedec,ufs-2.0";
+			reg = <0 0x01d84000 0 0x3000>;
+			interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
+			phys = <&ufs_mem_phy>;
+			phy-names = "ufsphy";
+			lanes-per-direction = <1>;
+			#reset-cells = <1>;
+			resets = <&gcc GCC_UFS_PHY_BCR>;
+			reset-names = "rst";
+
+			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
+
+			iommus = <&apps_smmu 0xa0 0x0>;
+
+			clock-names = "core_clk",
+				      "bus_aggr_clk",
+				      "iface_clk",
+				      "core_clk_unipro",
+				      "ref_clk",
+				      "tx_lane0_sync_clk",
+				      "rx_lane0_sync_clk";
+			clocks = <&gcc GCC_UFS_PHY_AXI_CLK>,
+				 <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
+				 <&gcc GCC_UFS_PHY_AHB_CLK>,
+				 <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
+				 <&rpmhcc RPMH_CXO_CLK>,
+				 <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
+				 <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>;
+			freq-table-hz = <50000000 200000000>,
+					<0 0>,
+					<0 0>,
+					<37500000 150000000>,
+					<0 0>,
+					<0 0>,
+					<0 0>;
+
+			interconnects = <&aggre1_noc MASTER_UFS_MEM QCOM_ICC_TAG_ALWAYS
+					 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+					<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+					 &config_noc SLAVE_UFS_MEM_CFG QCOM_ICC_TAG_ALWAYS>;
+			interconnect-names = "ufs-ddr", "cpu-ufs";
+
+			qcom,ice = <&ice>;
+
+			status = "disabled";
+		};
+
+		ufs_mem_phy: phy@1d87000 {
+			compatible = "qcom,x1e80100-qmp-ufs-phy";
+			reg = <0 0x01d87000 0 0x1000>;
+			clocks = <&rpmhcc RPMH_CXO_CLK>,
+				 <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
+				 <&tcsr TCSR_UFS_PHY_CLKREF_EN>;
+			clock-names = "ref",
+				      "ref_aux",
+				      "qref";
+			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
+			resets = <&ufs_mem_hc 0>;
+			reset-names = "ufsphy";
+			#phy-cells = <0>;
+			status = "disabled";
+		};
+
+		ice: crypto@1d90000 {
+			compatible = "qcom,x1e80100-inline-crypto-engine",
+				     "qcom,inline-crypto-engine";
+			reg = <0 0x01d90000 0 0x8000>;
+			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+		};
+
 		pcie6a: pci@1bf8000 {
 			device_type = "pci";
 			compatible = "qcom,pcie-x1e80100";
-- 
2.39.2


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

* [PATCH v5 5/6] dt-bindings: arm: Add Samsung Galaxy Book4 Edge
  2024-08-17 20:32 [PATCH v5 0/6] Add initial DTS for Samsung Galaxy Book4 Edge Marcus Glocker
                   ` (3 preceding siblings ...)
  2024-08-17 20:38 ` [PATCH v5 4/6] arm64: dts: qcom: Add UFS node Marcus Glocker
@ 2024-08-17 20:40 ` Marcus Glocker
  2024-08-17 20:41 ` [PATCH v5 6/6] arm64: dts: qcom: Add Samsung Galaxy Book4 Edge DTS Marcus Glocker
  2026-03-22 16:03 ` [PATCH v6 0/3] Add initial DTS for Samsung Galaxy Book4 Edge Maxim Storetvedt
  6 siblings, 0 replies; 32+ messages in thread
From: Marcus Glocker @ 2024-08-17 20:40 UTC (permalink / raw)
  To: Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: Marijn Suijten, linux-arm-msm, devicetree, linux-kernel,
	Abel Vesa, Johan Hovold, Konrad Dybcio

Add the Samsung Galaxy Book4 Edge compatibility binding.

Signed-off-by: Marcus Glocker <marcus@nazgul.ch>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index f08e13b61172..c8a32e5d2c74 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -1044,6 +1044,7 @@ properties:
               - lenovo,yoga-slim7x
               - qcom,x1e80100-crd
               - qcom,x1e80100-qcp
+              - samsung,galaxy-book4-edge
           - const: qcom,x1e80100
 
   # Board compatibles go above
-- 
2.39.2


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

* [PATCH v5 6/6] arm64: dts: qcom: Add Samsung Galaxy Book4 Edge DTS
  2024-08-17 20:32 [PATCH v5 0/6] Add initial DTS for Samsung Galaxy Book4 Edge Marcus Glocker
                   ` (4 preceding siblings ...)
  2024-08-17 20:40 ` [PATCH v5 5/6] dt-bindings: arm: Add Samsung Galaxy Book4 Edge Marcus Glocker
@ 2024-08-17 20:41 ` Marcus Glocker
  2026-03-22 16:03 ` [PATCH v6 0/3] Add initial DTS for Samsung Galaxy Book4 Edge Maxim Storetvedt
  6 siblings, 0 replies; 32+ messages in thread
From: Marcus Glocker @ 2024-08-17 20:41 UTC (permalink / raw)
  To: Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: Marijn Suijten, linux-arm-msm, devicetree, linux-kernel,
	Abel Vesa, Johan Hovold, Konrad Dybcio

Add the initial DTS file for the Samsung Galaxy Book4 Edge laptop.
This was a copy of the arch/arm64/boot/dts/qcom/x1e80100-crd.dts file and
adapted to our needs.

Signed-off-by: Marcus Glocker <marcus@nazgul.ch>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 arch/arm64/boot/dts/qcom/Makefile             |   1 +
 .../x1e80100-samsung-galaxy-book4-edge.dts    | 957 ++++++++++++++++++
 2 files changed, 958 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge.dts

diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 0e5c810304fb..77a48a5780ed 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -265,3 +265,4 @@ dtb-$(CONFIG_ARCH_QCOM)	+= x1e80100-asus-vivobook-s15.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= x1e80100-crd.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= x1e80100-lenovo-yoga-slim7x.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= x1e80100-qcp.dtb
+dtb-$(CONFIG_ARCH_QCOM)	+= x1e80100-samsung-galaxy-book4-edge.dtb
diff --git a/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge.dts b/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge.dts
new file mode 100644
index 000000000000..894854399a93
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge.dts
@@ -0,0 +1,957 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+
+#include "x1e80100.dtsi"
+#include "x1e80100-pmics.dtsi"
+
+/ {
+	model = "Samsung Galaxy Book4 Edge";
+	compatible = "samsung,galaxy-book4-edge", "qcom,x1e80100";
+	chassis-type = "laptop";
+
+	pmic-glink {
+		compatible = "qcom,x1e80100-pmic-glink",
+			     "qcom,sm8550-pmic-glink",
+			     "qcom,pmic-glink";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>,
+				    <&tlmm 123 GPIO_ACTIVE_HIGH>,
+				    <&tlmm 125 GPIO_ACTIVE_HIGH>;
+
+		/* Left-side rear port */
+		connector@0 {
+			compatible = "usb-c-connector";
+			reg = <0>;
+			power-role = "dual";
+			data-role = "dual";
+
+			ports {
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				port@0 {
+					reg = <0>;
+
+					pmic_glink_ss0_hs_in: endpoint {
+						remote-endpoint = <&usb_1_ss0_dwc3_hs>;
+					};
+				};
+
+				port@1 {
+					reg = <1>;
+
+					pmic_glink_ss0_ss_in: endpoint {
+						remote-endpoint = <&usb_1_ss0_qmpphy_out>;
+					};
+				};
+			};
+		};
+
+		/* Left-side front port */
+		connector@1 {
+			compatible = "usb-c-connector";
+			reg = <1>;
+			power-role = "dual";
+			data-role = "dual";
+
+			ports {
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				port@0 {
+					reg = <0>;
+
+					pmic_glink_ss1_hs_in: endpoint {
+						remote-endpoint = <&usb_1_ss1_dwc3_hs>;
+					};
+				};
+
+				port@1 {
+					reg = <1>;
+
+					pmic_glink_ss1_ss_in: endpoint {
+						remote-endpoint = <&usb_1_ss1_qmpphy_out>;
+					};
+				};
+			};
+		};
+
+		/* Right-side port */
+		connector@2 {
+			compatible = "usb-c-connector";
+			reg = <2>;
+			power-role = "dual";
+			data-role = "dual";
+
+			ports {
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				port@0 {
+					reg = <0>;
+
+					pmic_glink_ss2_hs_in: endpoint {
+						remote-endpoint = <&usb_1_ss2_dwc3_hs>;
+					};
+				};
+
+				port@1 {
+					reg = <1>;
+
+					pmic_glink_ss2_ss_in: endpoint {
+						remote-endpoint = <&usb_1_ss2_qmpphy_out>;
+					};
+				};
+			};
+		};
+	};
+
+	reserved-memory {
+		linux,cma {
+			compatible = "shared-dma-pool";
+			size = <0x0 0x8000000>;
+			reusable;
+			linux,cma-default;
+		};
+	};
+
+	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_edp_3p3: regulator-edp-3p3 {
+		compatible = "regulator-fixed";
+
+		regulator-name = "VREG_EDP_3P3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+
+		gpio = <&tlmm 70 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&edp_reg_en>;
+		pinctrl-names = "default";
+
+		regulator-always-on;
+		regulator-boot-on;
+	};
+};
+
+&apps_rsc {
+	regulators-0 {
+		compatible = "qcom,pm8550-rpmh-regulators";
+		qcom,pmic-id = "b";
+
+		vdd-bob1-supply = <&vph_pwr>;
+		vdd-bob2-supply = <&vph_pwr>;
+		vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>;
+		vdd-l2-l13-l14-supply = <&vreg_bob1>;
+		vdd-l5-l16-supply = <&vreg_bob1>;
+		vdd-l6-l7-supply = <&vreg_bob2>;
+		vdd-l8-l9-supply = <&vreg_bob1>;
+		vdd-l12-supply = <&vreg_s5j_1p2>;
+		vdd-l15-supply = <&vreg_s4c_1p8>;
+		vdd-l17-supply = <&vreg_bob2>;
+
+		vreg_bob1: bob1 {
+			regulator-name = "vreg_bob1";
+			regulator-min-microvolt = <3008000>;
+			regulator-max-microvolt = <3960000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_bob2: bob2 {
+			regulator-name = "vreg_bob2";
+			regulator-min-microvolt = <2504000>;
+			regulator-max-microvolt = <3008000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l1b_1p8: ldo1 {
+			regulator-name = "vreg_l1b_1p8";
+			regulator-min-microvolt = <1800000>;
+			regulator-max-microvolt = <1800000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l2b_3p0: ldo2 {
+			regulator-name = "vreg_l2b_3p0";
+			regulator-min-microvolt = <3072000>;
+			regulator-max-microvolt = <3100000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l4b_1p8: ldo4 {
+			regulator-name = "vreg_l4b_1p8";
+			regulator-min-microvolt = <1800000>;
+			regulator-max-microvolt = <1800000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l5b_3p0: ldo5 {
+			regulator-name = "vreg_l5b_3p0";
+			regulator-min-microvolt = <3000000>;
+			regulator-max-microvolt = <3000000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l6b_1p8: ldo6 {
+			regulator-name = "vreg_l6b_1p8";
+			regulator-min-microvolt = <1800000>;
+			regulator-max-microvolt = <2960000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l7b_2p8: ldo7 {
+			regulator-name = "vreg_l7b_2p8";
+			regulator-min-microvolt = <2800000>;
+			regulator-max-microvolt = <2800000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l8b_3p0: ldo8 {
+			regulator-name = "vreg_l8b_3p0";
+			regulator-min-microvolt = <3072000>;
+			regulator-max-microvolt = <3072000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l9b_2p9: ldo9 {
+			regulator-name = "vreg_l9b_2p9";
+			regulator-min-microvolt = <2960000>;
+			regulator-max-microvolt = <2960000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l10b_1p8: ldo10 {
+			regulator-name = "vreg_l10b_1p8";
+			regulator-min-microvolt = <1800000>;
+			regulator-max-microvolt = <1800000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l12b_1p2: ldo12 {
+			regulator-name = "vreg_l12b_1p2";
+			regulator-min-microvolt = <1200000>;
+			regulator-max-microvolt = <1200000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l13b_3p0: ldo13 {
+			regulator-name = "vreg_l13b_3p0";
+			regulator-min-microvolt = <3072000>;
+			regulator-max-microvolt = <3100000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l14b_3p0: ldo14 {
+			regulator-name = "vreg_l14b_3p0";
+			regulator-min-microvolt = <3072000>;
+			regulator-max-microvolt = <3072000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l15b_1p8: ldo15 {
+			regulator-name = "vreg_l15b_1p8";
+			regulator-min-microvolt = <1800000>;
+			regulator-max-microvolt = <1800000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l16b_2p9: ldo16 {
+			regulator-name = "vreg_l16b_2p9";
+			regulator-min-microvolt = <2912000>;
+			regulator-max-microvolt = <2912000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l17b_2p5: ldo17 {
+			regulator-name = "vreg_l17b_2p5";
+			regulator-min-microvolt = <2504000>;
+			regulator-max-microvolt = <2504000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+	};
+
+	regulators-1 {
+		compatible = "qcom,pm8550ve-rpmh-regulators";
+		qcom,pmic-id = "c";
+
+		vdd-l1-supply = <&vreg_s5j_1p2>;
+		vdd-l2-supply = <&vreg_s1f_0p7>;
+		vdd-l3-supply = <&vreg_s1f_0p7>;
+		vdd-s4-supply = <&vph_pwr>;
+
+		vreg_s4c_1p8: smps4 {
+			regulator-name = "vreg_s4c_1p8";
+			regulator-min-microvolt = <1856000>;
+			regulator-max-microvolt = <2000000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l1c_1p2: ldo1 {
+			regulator-name = "vreg_l1c_1p2";
+			regulator-min-microvolt = <1200000>;
+			regulator-max-microvolt = <1200000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l2c_0p8: ldo2 {
+			regulator-name = "vreg_l2c_0p8";
+			regulator-min-microvolt = <880000>;
+			regulator-max-microvolt = <920000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l3c_0p8: ldo3 {
+			regulator-name = "vreg_l3c_0p8";
+			regulator-min-microvolt = <880000>;
+			regulator-max-microvolt = <920000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+	};
+
+	regulators-2 {
+		compatible = "qcom,pmc8380-rpmh-regulators";
+		qcom,pmic-id = "d";
+
+		vdd-l1-supply = <&vreg_s1f_0p7>;
+		vdd-l2-supply = <&vreg_s1f_0p7>;
+		vdd-l3-supply = <&vreg_s4c_1p8>;
+		vdd-s1-supply = <&vph_pwr>;
+
+		vreg_l1d_0p8: ldo1 {
+			regulator-name = "vreg_l1d_0p8";
+			regulator-min-microvolt = <880000>;
+			regulator-max-microvolt = <920000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l2d_0p9: ldo2 {
+			regulator-name = "vreg_l2d_0p9";
+			regulator-min-microvolt = <912000>;
+			regulator-max-microvolt = <920000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l3d_1p8: ldo3 {
+			regulator-name = "vreg_l3d_1p8";
+			regulator-min-microvolt = <1800000>;
+			regulator-max-microvolt = <1800000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+	};
+
+	regulators-3 {
+		compatible = "qcom,pmc8380-rpmh-regulators";
+		qcom,pmic-id = "e";
+
+		vdd-l2-supply = <&vreg_s1f_0p7>;
+		vdd-l3-supply = <&vreg_s5j_1p2>;
+
+		vreg_l2e_0p8: ldo2 {
+			regulator-name = "vreg_l2e_0p8";
+			regulator-min-microvolt = <880000>;
+			regulator-max-microvolt = <920000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l3e_1p2: ldo3 {
+			regulator-name = "vreg_l3e_1p2";
+			regulator-min-microvolt = <1200000>;
+			regulator-max-microvolt = <1200000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+	};
+
+	regulators-4 {
+		compatible = "qcom,pmc8380-rpmh-regulators";
+		qcom,pmic-id = "f";
+
+		vdd-l1-supply = <&vreg_s5j_1p2>;
+		vdd-l2-supply = <&vreg_s5j_1p2>;
+		vdd-l3-supply = <&vreg_s5j_1p2>;
+		vdd-s1-supply = <&vph_pwr>;
+
+		vreg_s1f_0p7: smps1 {
+			regulator-name = "vreg_s1f_0p7";
+			regulator-min-microvolt = <700000>;
+			regulator-max-microvolt = <1100000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l1f_1p0: ldo1 {
+			regulator-name = "vreg_l1f_1p0";
+			regulator-min-microvolt = <1024000>;
+			regulator-max-microvolt = <1024000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l2f_1p0: ldo2 {
+			regulator-name = "vreg_l2f_1p0";
+			regulator-min-microvolt = <1024000>;
+			regulator-max-microvolt = <1024000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l3f_1p0: ldo3 {
+			regulator-name = "vreg_l3f_1p0";
+			regulator-min-microvolt = <1024000>;
+			regulator-max-microvolt = <1024000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+	};
+
+	regulators-6 {
+		compatible = "qcom,pm8550ve-rpmh-regulators";
+		qcom,pmic-id = "i";
+
+		vdd-l1-supply = <&vreg_s4c_1p8>;
+		vdd-l2-supply = <&vreg_s5j_1p2>;
+		vdd-l3-supply = <&vreg_s1f_0p7>;
+		vdd-s1-supply = <&vph_pwr>;
+		vdd-s2-supply = <&vph_pwr>;
+
+		vreg_s1i_0p9: smps1 {
+			regulator-name = "vreg_s1i_0p9";
+			regulator-min-microvolt = <900000>;
+			regulator-max-microvolt = <920000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_s2i_1p0: smps2 {
+			regulator-name = "vreg_s2i_1p0";
+			regulator-min-microvolt = <1000000>;
+			regulator-max-microvolt = <1100000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l1i_1p8: ldo1 {
+			regulator-name = "vreg_l1i_1p8";
+			regulator-min-microvolt = <1800000>;
+			regulator-max-microvolt = <1800000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l2i_1p2: ldo2 {
+			regulator-name = "vreg_l2i_1p2";
+			regulator-min-microvolt = <1200000>;
+			regulator-max-microvolt = <1200000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l3i_0p8: ldo3 {
+			regulator-name = "vreg_l3i_0p8";
+			regulator-min-microvolt = <880000>;
+			regulator-max-microvolt = <920000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+	};
+
+	regulators-7 {
+		compatible = "qcom,pm8550ve-rpmh-regulators";
+		qcom,pmic-id = "j";
+
+		vdd-l1-supply = <&vreg_s1f_0p7>;
+		vdd-l2-supply = <&vreg_s5j_1p2>;
+		vdd-l3-supply = <&vreg_s1f_0p7>;
+		vdd-s5-supply = <&vph_pwr>;
+
+		vreg_s5j_1p2: smps5 {
+			regulator-name = "vreg_s5j_1p2";
+			regulator-min-microvolt = <1256000>;
+			regulator-max-microvolt = <1304000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l1j_0p8: ldo1 {
+			regulator-name = "vreg_l1j_0p8";
+			regulator-min-microvolt = <880000>;
+			regulator-max-microvolt = <920000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l2j_1p2: ldo2 {
+			regulator-name = "vreg_l2j_1p2";
+			regulator-min-microvolt = <1200000>;
+			regulator-max-microvolt = <1200000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l3j_0p8: ldo3 {
+			regulator-name = "vreg_l3j_0p8";
+			regulator-min-microvolt = <880000>;
+			regulator-max-microvolt = <920000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+	};
+};
+
+&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;
+	};
+};
+
+&i2c8 {
+	clock-frequency = <400000>;
+
+	status = "disabled";
+
+	touchscreen@5d {
+		compatible = "hid-over-i2c";
+		reg = <0x5d>;
+
+		hid-descr-addr = <0x1>;
+		/* XXX: Pin 51 is creating an interrupt storm. */
+		interrupts-extended = <&tlmm 51 IRQ_TYPE_LEVEL_LOW>;
+
+		pinctrl-0 = <&ts0_default>;
+		pinctrl-names = "default";
+	};
+};
+
+&i2c13 {
+	clock-frequency = <400000>;
+
+	status = "okay";
+
+	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";
+	};
+};
+
+&lpass_tlmm {
+	spkr_01_sd_n_active: spkr-01-sd-n-active-state {
+		pins = "gpio12";
+		function = "gpio";
+		drive-strength = <16>;
+		bias-disable;
+		output-low;
+	};
+
+	spkr_23_sd_n_active: spkr-23-sd-n-active-state {
+		pins = "gpio13";
+		function = "gpio";
+		drive-strength = <16>;
+		bias-disable;
+		output-low;
+	};
+};
+
+&lpass_vamacro {
+	pinctrl-0 = <&dmic01_default>, <&dmic23_default>;
+	pinctrl-names = "default";
+
+	vdd-micb-supply = <&vreg_l1b_1p8>;
+	qcom,dmic-sample-rate = <4800000>;
+};
+
+&mdss {
+	status = "okay";
+};
+
+&mdss_dp3 {
+	compatible = "qcom,x1e80100-dp";
+	/delete-property/ #sound-dai-cells;
+
+	status = "okay";
+
+	aux-bus {
+		panel {
+			compatible = "edp-panel";
+			power-supply = <&vreg_edp_3p3>;
+
+			port {
+				edp_panel_in: endpoint {
+					remote-endpoint = <&mdss_dp3_out>;
+				};
+			};
+		};
+	};
+
+	ports {
+		port@1 {
+			reg = <1>;
+			mdss_dp3_out: endpoint {
+				data-lanes = <0 1 2 3>;
+				link-frequencies =
+				    /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+
+				remote-endpoint = <&edp_panel_in>;
+			};
+		};
+	};
+};
+
+&mdss_dp3_phy {
+	vdda-phy-supply = <&vreg_l3j_0p8>;
+	vdda-pll-supply = <&vreg_l2j_1p2>;
+
+	status = "okay";
+};
+
+&pcie4 {
+	perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
+	wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
+
+	pinctrl-0 = <&pcie4_default>;
+	pinctrl-names = "default";
+
+	status = "okay";
+};
+
+&pcie4_phy {
+	vdda-phy-supply = <&vreg_l3i_0p8>;
+	vdda-pll-supply = <&vreg_l3e_1p2>;
+
+	status = "okay";
+};
+
+&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";
+};
+
+&smb2360_0_eusb2_repeater {
+	vdd18-supply = <&vreg_l3d_1p8>;
+	vdd3-supply = <&vreg_l2b_3p0>;
+};
+
+&smb2360_1_eusb2_repeater {
+	vdd18-supply = <&vreg_l3d_1p8>;
+	vdd3-supply = <&vreg_l14b_3p0>;
+};
+
+&smb2360_2 {
+	status = "okay";
+};
+
+&smb2360_2_eusb2_repeater {
+	vdd18-supply = <&vreg_l3d_1p8>;
+	vdd3-supply = <&vreg_l8b_3p0>;
+};
+
+&swr0 {
+	status = "okay";
+
+	pinctrl-0 = <&wsa_swr_active>, <&spkr_01_sd_n_active>;
+	pinctrl-names = "default";
+
+	/* WSA8845, Left Woofer */
+	left_woofer: speaker@0,0 {
+		compatible = "sdw20217020400";
+		reg = <0 0>;
+		reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
+		#sound-dai-cells = <0>;
+		sound-name-prefix = "WooferLeft";
+		vdd-1p8-supply = <&vreg_l15b_1p8>;
+		vdd-io-supply = <&vreg_l12b_1p2>;
+	};
+
+	/* 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 = "TwitterLeft";
+		vdd-1p8-supply = <&vreg_l15b_1p8>;
+		vdd-io-supply = <&vreg_l12b_1p2>;
+	};
+};
+
+&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>;
+	};
+
+	/* 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 = "TwitterRight";
+		vdd-1p8-supply = <&vreg_l15b_1p8>;
+		vdd-io-supply = <&vreg_l12b_1p2>;
+	};
+};
+
+&tlmm {
+	gpio-reserved-ranges = <34 2>, /* Unused */
+			       <44 4>, /* SPI (TPM) */
+			       <238 1>; /* UFS Reset */
+
+	edp_reg_en: edp-reg-en-state {
+		pins = "gpio70";
+		function = "gpio";
+		drive-strength = <16>;
+		bias-disable;
+	};
+
+	kybd_default: kybd-default-state {
+		pins = "gpio67";
+		function = "gpio";
+		bias-disable;
+	};
+
+	pcie4_default: pcie4-default-state {
+		clkreq-n-pins {
+			pins = "gpio147";
+			function = "pcie4_clk";
+			drive-strength = <2>;
+			bias-pull-up;
+		};
+
+		perst-n-pins {
+			pins = "gpio146";
+			function = "gpio";
+			drive-strength = <2>;
+			bias-disable;
+		};
+
+		wake-n-pins {
+			pins = "gpio148";
+			function = "gpio";
+			drive-strength = <2>;
+			bias-pull-up;
+		};
+	};
+
+	tpad_default: tpad-default-state {
+		pins = "gpio3";
+		function = "gpio";
+		bias-disable;
+	};
+
+	ts0_default: ts0-default-state {
+		int-n-pins {
+			pins = "gpio51";
+			function = "gpio";
+			bias-disable;
+		};
+
+		reset-n-pins {
+			pins = "gpio48";
+			function = "gpio";
+			output-high;
+			drive-strength = <16>;
+		};
+	};
+
+	wcd_default: wcd-reset-n-active-state {
+		pins = "gpio191";
+		function = "gpio";
+		drive-strength = <16>;
+		bias-disable;
+		output-low;
+	};
+};
+
+&ufs_mem_hc {
+	status = "okay";
+
+	vcc-supply = <&vreg_l9b_2p9>;
+	vcc-max-microamp = <600000>;
+	vccq2-supply = <&vreg_l4b_1p8>;
+	vccq2-max-microamp = <600000>;
+};
+
+&ufs_mem_phy {
+	status = "okay";
+
+	vdda-phy-supply = <&vreg_l2c_0p8>;
+	vdda-pll-supply = <&vreg_l12b_1p2>;
+};
+
+&uart21 {
+	compatible = "qcom,geni-debug-uart";
+	status = "okay";
+};
+
+&usb_1_ss0_hsphy {
+	vdd-supply = <&vreg_l3j_0p8>;
+	vdda12-supply = <&vreg_l2j_1p2>;
+
+	phys = <&smb2360_0_eusb2_repeater>;
+
+	status = "okay";
+};
+
+&usb_1_ss0_qmpphy {
+	vdda-phy-supply = <&vreg_l3e_1p2>;
+	vdda-pll-supply = <&vreg_l1j_0p8>;
+
+	status = "okay";
+};
+
+&usb_1_ss0 {
+	status = "okay";
+};
+
+&usb_1_ss0_dwc3 {
+	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_hsphy {
+	vdd-supply = <&vreg_l3j_0p8>;
+	vdda12-supply = <&vreg_l2j_1p2>;
+
+	phys = <&smb2360_1_eusb2_repeater>;
+
+	status = "okay";
+};
+
+&usb_1_ss1_qmpphy {
+	vdda-phy-supply = <&vreg_l3e_1p2>;
+	vdda-pll-supply = <&vreg_l2d_0p9>;
+
+	status = "okay";
+};
+
+&usb_1_ss1 {
+	status = "okay";
+};
+
+&usb_1_ss1_dwc3 {
+	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_hsphy {
+	vdd-supply = <&vreg_l3j_0p8>;
+	vdda12-supply = <&vreg_l2j_1p2>;
+
+	phys = <&smb2360_2_eusb2_repeater>;
+
+	status = "okay";
+};
+
+&usb_1_ss2_qmpphy {
+	vdda-phy-supply = <&vreg_l3e_1p2>;
+	vdda-pll-supply = <&vreg_l2d_0p9>;
+
+	status = "okay";
+};
+
+&usb_1_ss2 {
+	status = "okay";
+};
+
+&usb_1_ss2_dwc3 {
+	dr_mode = "host";
+};
+
+&usb_1_ss2_dwc3_hs {
+	remote-endpoint = <&pmic_glink_ss2_hs_in>;
+};
+
+&usb_1_ss2_qmpphy_out {
+	remote-endpoint = <&pmic_glink_ss2_ss_in>;
+};
-- 
2.39.2


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

* Re: [PATCH v5 3/6] dt-bindings: ufs: Add X1E80100 UFS
  2024-08-17 20:36 ` [PATCH v5 3/6] dt-bindings: ufs: " Marcus Glocker
@ 2024-08-18  6:41   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 32+ messages in thread
From: Krzysztof Kozlowski @ 2024-08-18  6:41 UTC (permalink / raw)
  To: Marcus Glocker, Bjorn Andersson, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: Marijn Suijten, linux-arm-msm, devicetree, linux-kernel,
	Abel Vesa, Johan Hovold, Konrad Dybcio

On 17/08/2024 22:36, Marcus Glocker wrote:
> Document the ufs host controller compatible for the Qualcomm X1E80100.
> 
> Signed-off-by: Marcus Glocker <marcus@nazgul.ch>
> ---

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Best regards,
Krzysztof


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

* Re: [PATCH v5 4/6] arm64: dts: qcom: Add UFS node
  2024-08-17 20:38 ` [PATCH v5 4/6] arm64: dts: qcom: Add UFS node Marcus Glocker
@ 2024-08-30  0:05   ` Konrad Dybcio
  2024-08-30 17:25     ` Marcus Glocker
  2024-08-30  7:02   ` Johan Hovold
  1 sibling, 1 reply; 32+ messages in thread
From: Konrad Dybcio @ 2024-08-30  0:05 UTC (permalink / raw)
  To: Marcus Glocker, Bjorn Andersson, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: Marijn Suijten, linux-arm-msm, devicetree, linux-kernel,
	Abel Vesa, Johan Hovold, Konrad Dybcio

On 17.08.2024 10:38 PM, Marcus Glocker wrote:
> Add the UFS Host Controller node.  This was basically copied from the
> arch/arm64/boot/dts/qcom/sc7180.dtsi file.
> 
> Signed-off-by: Marcus Glocker <marcus@nazgul.ch>
> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
>  arch/arm64/boot/dts/qcom/x1e80100.dtsi | 72 ++++++++++++++++++++++++++
>  1 file changed, 72 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> index 7bca5fcd7d52..9f01b3ff3737 100644
> --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> @@ -2878,6 +2878,78 @@ mmss_noc: interconnect@1780000 {
>  			#interconnect-cells = <2>;
>  		};
>  
> +		ufs_mem_hc: ufs@1d84000 {
> +			compatible = "qcom,x1e80100-ufshc", "qcom,ufshc",
> +				     "jedec,ufs-2.0";
> +			reg = <0 0x01d84000 0 0x3000>;
> +			interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
> +			phys = <&ufs_mem_phy>;
> +			phy-names = "ufsphy";
> +			lanes-per-direction = <1>;
> +			#reset-cells = <1>;
> +			resets = <&gcc GCC_UFS_PHY_BCR>;
> +			reset-names = "rst";
> +
> +			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
> +
> +			iommus = <&apps_smmu 0xa0 0x0>;

Looks like this should be 0x1a0 maybe
> +
> +			clock-names = "core_clk",
> +				      "bus_aggr_clk",
> +				      "iface_clk",
> +				      "core_clk_unipro",
> +				      "ref_clk",
> +				      "tx_lane0_sync_clk",
> +				      "rx_lane0_sync_clk";
> +			clocks = <&gcc GCC_UFS_PHY_AXI_CLK>,
> +				 <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
> +				 <&gcc GCC_UFS_PHY_AHB_CLK>,
> +				 <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
> +				 <&rpmhcc RPMH_CXO_CLK>,
> +				 <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
> +				 <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>;

You also want

<&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>

> +			freq-table-hz = <50000000 200000000>,
25000000 300000000

> +					<0 0>,
> +					<0 0>,
> +					<37500000 150000000>,
75000000 300000000

> +					<0 0>,
> +					<0 0>,
> +					<0 0>;
> +
> +			interconnects = <&aggre1_noc MASTER_UFS_MEM QCOM_ICC_TAG_ALWAYS
> +					 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
> +					<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
> +					 &config_noc SLAVE_UFS_MEM_CFG QCOM_ICC_TAG_ALWAYS>;
> +			interconnect-names = "ufs-ddr", "cpu-ufs";
> +
> +			qcom,ice = <&ice>;
> +
> +			status = "disabled";
> +		};
> +
> +		ufs_mem_phy: phy@1d87000 {
> +			compatible = "qcom,x1e80100-qmp-ufs-phy";
> +			reg = <0 0x01d87000 0 0x1000>;

most definitely should be 0x01d80000 with a size of 0x2000

> +			clocks = <&rpmhcc RPMH_CXO_CLK>,
> +				 <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
> +				 <&tcsr TCSR_UFS_PHY_CLKREF_EN>;
> +			clock-names = "ref",
> +				      "ref_aux",
> +				      "qref";
> +			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
> +			resets = <&ufs_mem_hc 0>;
> +			reset-names = "ufsphy";
> +			#phy-cells = <0>;
> +			status = "disabled";
> +		};
> +
> +		ice: crypto@1d90000 {
> +			compatible = "qcom,x1e80100-inline-crypto-engine",
> +				     "qcom,inline-crypto-engine";
> +			reg = <0 0x01d90000 0 0x8000>;

0x1d88000


All this combined means you probably wrote your init sequence into some
free(?) register space and the one left over from the bootloader was
good enough :P

Konrad

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

* Re: [PATCH v5 4/6] arm64: dts: qcom: Add UFS node
  2024-08-17 20:38 ` [PATCH v5 4/6] arm64: dts: qcom: Add UFS node Marcus Glocker
  2024-08-30  0:05   ` Konrad Dybcio
@ 2024-08-30  7:02   ` Johan Hovold
  1 sibling, 0 replies; 32+ messages in thread
From: Johan Hovold @ 2024-08-30  7:02 UTC (permalink / raw)
  To: Marcus Glocker
  Cc: Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Marijn Suijten, linux-arm-msm, devicetree, linux-kernel,
	Abel Vesa, Konrad Dybcio

On Sat, Aug 17, 2024 at 10:38:39PM +0200, Marcus Glocker wrote:
> Add the UFS Host Controller node.  This was basically copied from the
> arch/arm64/boot/dts/qcom/sc7180.dtsi file.
> 
> Signed-off-by: Marcus Glocker <marcus@nazgul.ch>
> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Also, when respinning, please add the missing "x1e80100: " to the
Subject prefix.

Johan

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

* Re: [PATCH v5 4/6] arm64: dts: qcom: Add UFS node
  2024-08-30  0:05   ` Konrad Dybcio
@ 2024-08-30 17:25     ` Marcus Glocker
  2024-11-09 23:31       ` Daniel Gomez
  0 siblings, 1 reply; 32+ messages in thread
From: Marcus Glocker @ 2024-08-30 17:25 UTC (permalink / raw)
  To: Konrad Dybcio
  Cc: Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Marijn Suijten, linux-arm-msm, devicetree, linux-kernel,
	Abel Vesa, Johan Hovold

On Fri, Aug 30, 2024 at 02:05:48AM +0200, Konrad Dybcio wrote:

> On 17.08.2024 10:38 PM, Marcus Glocker wrote:
> > Add the UFS Host Controller node.  This was basically copied from the
> > arch/arm64/boot/dts/qcom/sc7180.dtsi file.
> >
> > Signed-off-by: Marcus Glocker <marcus@nazgul.ch>
> > Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> > ---
> >  arch/arm64/boot/dts/qcom/x1e80100.dtsi | 72 ++++++++++++++++++++++++++
> >  1 file changed, 72 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi 
> > b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> > index 7bca5fcd7d52..9f01b3ff3737 100644
> > --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> > +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> > @@ -2878,6 +2878,78 @@ mmss_noc: interconnect@1780000 {
> >  			#interconnect-cells = <2>;
> >  		};
> >
> > +		ufs_mem_hc: ufs@1d84000 {
> > +			compatible = "qcom,x1e80100-ufshc", "qcom,ufshc",
> > +				     "jedec,ufs-2.0";
> > +			reg = <0 0x01d84000 0 0x3000>;
> > +			interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
> > +			phys = <&ufs_mem_phy>;
> > +			phy-names = "ufsphy";
> > +			lanes-per-direction = <1>;
> > +			#reset-cells = <1>;
> > +			resets = <&gcc GCC_UFS_PHY_BCR>;
> > +			reset-names = "rst";
> > +
> > +			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
> > +
> > +			iommus = <&apps_smmu 0xa0 0x0>;
> 
> Looks like this should be 0x1a0 maybe
> > +
> > +			clock-names = "core_clk",
> > +				      "bus_aggr_clk",
> > +				      "iface_clk",
> > +				      "core_clk_unipro",
> > +				      "ref_clk",
> > +				      "tx_lane0_sync_clk",
> > +				      "rx_lane0_sync_clk";
> > +			clocks = <&gcc GCC_UFS_PHY_AXI_CLK>,
> > +				 <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
> > +				 <&gcc GCC_UFS_PHY_AHB_CLK>,
> > +				 <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
> > +				 <&rpmhcc RPMH_CXO_CLK>,
> > +				 <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
> > +				 <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>;
> 
> You also want
> 
> <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>
> 
> > +			freq-table-hz = <50000000 200000000>,
> 25000000 300000000
> 
> > +					<0 0>,
> > +					<0 0>,
> > +					<37500000 150000000>,
> 75000000 300000000
> 
> > +					<0 0>,
> > +					<0 0>,
> > +					<0 0>;
> > +
> > +			interconnects = <&aggre1_noc MASTER_UFS_MEM QCOM_ICC_TAG_ALWAYS
> > +					 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
> > +					<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
> > +					 &config_noc SLAVE_UFS_MEM_CFG QCOM_ICC_TAG_ALWAYS>;
> > +			interconnect-names = "ufs-ddr", "cpu-ufs";
> > +
> > +			qcom,ice = <&ice>;
> > +
> > +			status = "disabled";
> > +		};
> > +
> > +		ufs_mem_phy: phy@1d87000 {
> > +			compatible = "qcom,x1e80100-qmp-ufs-phy";
> > +			reg = <0 0x01d87000 0 0x1000>;
> 
> most definitely should be 0x01d80000 with a size of 0x2000
> 
> > +			clocks = <&rpmhcc RPMH_CXO_CLK>,
> > +				 <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
> > +				 <&tcsr TCSR_UFS_PHY_CLKREF_EN>;
> > +			clock-names = "ref",
> > +				      "ref_aux",
> > +				      "qref";
> > +			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
> > +			resets = <&ufs_mem_hc 0>;
> > +			reset-names = "ufsphy";
> > +			#phy-cells = <0>;
> > +			status = "disabled";
> > +		};
> > +
> > +		ice: crypto@1d90000 {
> > +			compatible = "qcom,x1e80100-inline-crypto-engine",
> > +				     "qcom,inline-crypto-engine";
> > +			reg = <0 0x01d90000 0 0x8000>;
> 
> 0x1d88000
> 
> 
> All this combined means you probably wrote your init sequence into some
> free(?) register space and the one left over from the bootloader was
> good enough :P
> 
> Konrad

I have not done anything special in our sub-system to boot this DTB.
Changing the values as suggested by you also doesn't make any difference
to me.

Anyway, I think I'll give up at this point, since this process is
getting too time consuming for me.  We'll go ahead with out downstream
patches, which works for us so far.

Cheers,
Marcus

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

* Re: [PATCH v5 4/6] arm64: dts: qcom: Add UFS node
  2024-08-30 17:25     ` Marcus Glocker
@ 2024-11-09 23:31       ` Daniel Gomez
  2025-01-02 21:38         ` Wesley Cheng
  0 siblings, 1 reply; 32+ messages in thread
From: Daniel Gomez @ 2024-11-09 23:31 UTC (permalink / raw)
  To: Marcus Glocker, Konrad Dybcio
  Cc: Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Marijn Suijten, linux-arm-msm, devicetree, linux-kernel,
	Abel Vesa, Johan Hovold

On Fri Aug 30, 2024 at 7:25 PM CEST, Marcus Glocker wrote:
> On Fri, Aug 30, 2024 at 02:05:48AM +0200, Konrad Dybcio wrote:
>
>> On 17.08.2024 10:38 PM, Marcus Glocker wrote:
>> > Add the UFS Host Controller node.  This was basically copied from the
>> > arch/arm64/boot/dts/qcom/sc7180.dtsi file.
>> >
>> > Signed-off-by: Marcus Glocker <marcus@nazgul.ch>
>> > Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
>> > ---
>> >  arch/arm64/boot/dts/qcom/x1e80100.dtsi | 72 ++++++++++++++++++++++++++
>> >  1 file changed, 72 insertions(+)
>> >
>> > diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi 
>> > b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>> > index 7bca5fcd7d52..9f01b3ff3737 100644
>> > --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>> > +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>> > @@ -2878,6 +2878,78 @@ mmss_noc: interconnect@1780000 {
>> >  			#interconnect-cells = <2>;
>> >  		};
>> >
>> > +		ufs_mem_hc: ufs@1d84000 {
>> > +			compatible = "qcom,x1e80100-ufshc", "qcom,ufshc",
>> > +				     "jedec,ufs-2.0";
>> > +			reg = <0 0x01d84000 0 0x3000>;
>> > +			interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
>> > +			phys = <&ufs_mem_phy>;
>> > +			phy-names = "ufsphy";
>> > +			lanes-per-direction = <1>;
>> > +			#reset-cells = <1>;
>> > +			resets = <&gcc GCC_UFS_PHY_BCR>;
>> > +			reset-names = "rst";
>> > +
>> > +			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
>> > +
>> > +			iommus = <&apps_smmu 0xa0 0x0>;
>> 
>> Looks like this should be 0x1a0 maybe
>> > +
>> > +			clock-names = "core_clk",
>> > +				      "bus_aggr_clk",
>> > +				      "iface_clk",
>> > +				      "core_clk_unipro",
>> > +				      "ref_clk",
>> > +				      "tx_lane0_sync_clk",
>> > +				      "rx_lane0_sync_clk";
>> > +			clocks = <&gcc GCC_UFS_PHY_AXI_CLK>,
>> > +				 <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
>> > +				 <&gcc GCC_UFS_PHY_AHB_CLK>,
>> > +				 <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
>> > +				 <&rpmhcc RPMH_CXO_CLK>,
>> > +				 <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
>> > +				 <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>;
>> 
>> You also want
>> 
>> <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>
>> 
>> > +			freq-table-hz = <50000000 200000000>,
>> 25000000 300000000
>> 
>> > +					<0 0>,
>> > +					<0 0>,
>> > +					<37500000 150000000>,
>> 75000000 300000000
>> 
>> > +					<0 0>,
>> > +					<0 0>,
>> > +					<0 0>;
>> > +
>> > +			interconnects = <&aggre1_noc MASTER_UFS_MEM QCOM_ICC_TAG_ALWAYS
>> > +					 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
>> > +					<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
>> > +					 &config_noc SLAVE_UFS_MEM_CFG QCOM_ICC_TAG_ALWAYS>;
>> > +			interconnect-names = "ufs-ddr", "cpu-ufs";
>> > +
>> > +			qcom,ice = <&ice>;
>> > +
>> > +			status = "disabled";
>> > +		};
>> > +
>> > +		ufs_mem_phy: phy@1d87000 {
>> > +			compatible = "qcom,x1e80100-qmp-ufs-phy";
>> > +			reg = <0 0x01d87000 0 0x1000>;
>> 
>> most definitely should be 0x01d80000 with a size of 0x2000
>> 
>> > +			clocks = <&rpmhcc RPMH_CXO_CLK>,
>> > +				 <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
>> > +				 <&tcsr TCSR_UFS_PHY_CLKREF_EN>;
>> > +			clock-names = "ref",
>> > +				      "ref_aux",
>> > +				      "qref";
>> > +			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
>> > +			resets = <&ufs_mem_hc 0>;
>> > +			reset-names = "ufsphy";
>> > +			#phy-cells = <0>;
>> > +			status = "disabled";
>> > +		};
>> > +
>> > +		ice: crypto@1d90000 {
>> > +			compatible = "qcom,x1e80100-inline-crypto-engine",
>> > +				     "qcom,inline-crypto-engine";
>> > +			reg = <0 0x01d90000 0 0x8000>;
>> 
>> 0x1d88000
>> 
>> 
>> All this combined means you probably wrote your init sequence into some
>> free(?) register space and the one left over from the bootloader was
>> good enough :P
>> 
>> Konrad
>
> I have not done anything special in our sub-system to boot this DTB.
> Changing the values as suggested by you also doesn't make any difference
> to me.
>
> Anyway, I think I'll give up at this point, since this process is
> getting too time consuming for me.  We'll go ahead with out downstream
> patches, which works for us so far.

Hi Marcus,

I came across this and I'd be interested in picking up the patches for testing.
Is there any guide or documentation available that I could follow to boot Linux
on this machine using this patchset? Also, could you share where I might be able
to find those downstream patches?

Thanks,
Daniel

>
> Cheers,
> Marcus


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

* Re: [PATCH v5 4/6] arm64: dts: qcom: Add UFS node
  2024-11-09 23:31       ` Daniel Gomez
@ 2025-01-02 21:38         ` Wesley Cheng
  2025-01-02 23:17           ` Marcus Glocker
  0 siblings, 1 reply; 32+ messages in thread
From: Wesley Cheng @ 2025-01-02 21:38 UTC (permalink / raw)
  To: Daniel Gomez, Marcus Glocker, Konrad Dybcio
  Cc: Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Marijn Suijten, linux-arm-msm, devicetree, linux-kernel,
	Abel Vesa, Johan Hovold


On 11/9/2024 3:31 PM, Daniel Gomez wrote:
> On Fri Aug 30, 2024 at 7:25 PM CEST, Marcus Glocker wrote:
>> On Fri, Aug 30, 2024 at 02:05:48AM +0200, Konrad Dybcio wrote:
>>
>>> On 17.08.2024 10:38 PM, Marcus Glocker wrote:
>>>> Add the UFS Host Controller node.  This was basically copied from the
>>>> arch/arm64/boot/dts/qcom/sc7180.dtsi file.
>>>>
>>>> Signed-off-by: Marcus Glocker <marcus@nazgul.ch>
>>>> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
>>>> ---
>>>>  arch/arm64/boot/dts/qcom/x1e80100.dtsi | 72 ++++++++++++++++++++++++++
>>>>  1 file changed, 72 insertions(+)
>>>>
>>>> diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi 
>>>> b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>>>> index 7bca5fcd7d52..9f01b3ff3737 100644
>>>> --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>>>> +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>>>> @@ -2878,6 +2878,78 @@ mmss_noc: interconnect@1780000 {
>>>>  			#interconnect-cells = <2>;
>>>>  		};
>>>>
>>>> +		ufs_mem_hc: ufs@1d84000 {
>>>> +			compatible = "qcom,x1e80100-ufshc", "qcom,ufshc",
>>>> +				     "jedec,ufs-2.0";
>>>> +			reg = <0 0x01d84000 0 0x3000>;
>>>> +			interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
>>>> +			phys = <&ufs_mem_phy>;
>>>> +			phy-names = "ufsphy";
>>>> +			lanes-per-direction = <1>;
>>>> +			#reset-cells = <1>;
>>>> +			resets = <&gcc GCC_UFS_PHY_BCR>;
>>>> +			reset-names = "rst";
>>>> +
>>>> +			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
>>>> +
>>>> +			iommus = <&apps_smmu 0xa0 0x0>;
>>> Looks like this should be 0x1a0 maybe
>>>> +
>>>> +			clock-names = "core_clk",
>>>> +				      "bus_aggr_clk",
>>>> +				      "iface_clk",
>>>> +				      "core_clk_unipro",
>>>> +				      "ref_clk",
>>>> +				      "tx_lane0_sync_clk",
>>>> +				      "rx_lane0_sync_clk";
>>>> +			clocks = <&gcc GCC_UFS_PHY_AXI_CLK>,
>>>> +				 <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
>>>> +				 <&gcc GCC_UFS_PHY_AHB_CLK>,
>>>> +				 <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
>>>> +				 <&rpmhcc RPMH_CXO_CLK>,
>>>> +				 <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
>>>> +				 <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>;
>>> You also want
>>>
>>> <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>
>>>
>>>> +			freq-table-hz = <50000000 200000000>,
>>> 25000000 300000000
>>>
>>>> +					<0 0>,
>>>> +					<0 0>,
>>>> +					<37500000 150000000>,
>>> 75000000 300000000
>>>
>>>> +					<0 0>,
>>>> +					<0 0>,
>>>> +					<0 0>;
>>>> +
>>>> +			interconnects = <&aggre1_noc MASTER_UFS_MEM QCOM_ICC_TAG_ALWAYS
>>>> +					 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
>>>> +					<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
>>>> +					 &config_noc SLAVE_UFS_MEM_CFG QCOM_ICC_TAG_ALWAYS>;
>>>> +			interconnect-names = "ufs-ddr", "cpu-ufs";
>>>> +
>>>> +			qcom,ice = <&ice>;
>>>> +
>>>> +			status = "disabled";
>>>> +		};
>>>> +
>>>> +		ufs_mem_phy: phy@1d87000 {
>>>> +			compatible = "qcom,x1e80100-qmp-ufs-phy";
>>>> +			reg = <0 0x01d87000 0 0x1000>;
>>> most definitely should be 0x01d80000 with a size of 0x2000
>>>
>>>> +			clocks = <&rpmhcc RPMH_CXO_CLK>,
>>>> +				 <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
>>>> +				 <&tcsr TCSR_UFS_PHY_CLKREF_EN>;
>>>> +			clock-names = "ref",
>>>> +				      "ref_aux",
>>>> +				      "qref";
>>>> +			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
>>>> +			resets = <&ufs_mem_hc 0>;
>>>> +			reset-names = "ufsphy";
>>>> +			#phy-cells = <0>;
>>>> +			status = "disabled";
>>>> +		};
>>>> +
>>>> +		ice: crypto@1d90000 {
>>>> +			compatible = "qcom,x1e80100-inline-crypto-engine",
>>>> +				     "qcom,inline-crypto-engine";
>>>> +			reg = <0 0x01d90000 0 0x8000>;
>>> 0x1d88000
>>>
>>>
>>> All this combined means you probably wrote your init sequence into some
>>> free(?) register space and the one left over from the bootloader was
>>> good enough :P
>>>
>>> Konrad
>> I have not done anything special in our sub-system to boot this DTB.
>> Changing the values as suggested by you also doesn't make any difference
>> to me.
>>
>> Anyway, I think I'll give up at this point, since this process is
>> getting too time consuming for me.  We'll go ahead with out downstream
>> patches, which works for us so far.


Hi Marcus,


Do you mind if I take over this series?  I started working on getting at least the UFS and USB portions of the DT file to work on my Samsung Galaxy book4 with your patches, along with some required modifications.  If you're OK, I'll keep you as the author for the main DT file, and submit my changes on top.


Thanks

Wesley Cheng


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

* Re: [PATCH v5 4/6] arm64: dts: qcom: Add UFS node
  2025-01-02 21:38         ` Wesley Cheng
@ 2025-01-02 23:17           ` Marcus Glocker
  2026-03-07 16:01             ` Maxim Storetvedt
  0 siblings, 1 reply; 32+ messages in thread
From: Marcus Glocker @ 2025-01-02 23:17 UTC (permalink / raw)
  To: Wesley Cheng
  Cc: Daniel Gomez, Konrad Dybcio, Bjorn Andersson, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Marijn Suijten, linux-arm-msm,
	devicetree, linux-kernel, Abel Vesa, Johan Hovold

On Thu, Jan 02, 2025 at 01:38:10PM GMT, Wesley Cheng wrote:

> 
> On 11/9/2024 3:31 PM, Daniel Gomez wrote:
> > On Fri Aug 30, 2024 at 7:25 PM CEST, Marcus Glocker wrote:
> >> On Fri, Aug 30, 2024 at 02:05:48AM +0200, Konrad Dybcio wrote:
> >>
> >>> On 17.08.2024 10:38 PM, Marcus Glocker wrote:
> >>>> Add the UFS Host Controller node.  This was basically copied from the
> >>>> arch/arm64/boot/dts/qcom/sc7180.dtsi file.
> >>>>
> >>>> Signed-off-by: Marcus Glocker <marcus@nazgul.ch>
> >>>> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> >>>> ---
> >>>>  arch/arm64/boot/dts/qcom/x1e80100.dtsi | 72 ++++++++++++++++++++++++++
> >>>>  1 file changed, 72 insertions(+)
> >>>>
> >>>> diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi 
> >>>> b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> >>>> index 7bca5fcd7d52..9f01b3ff3737 100644
> >>>> --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> >>>> +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> >>>> @@ -2878,6 +2878,78 @@ mmss_noc: interconnect@1780000 {
> >>>>  			#interconnect-cells = <2>;
> >>>>  		};
> >>>>
> >>>> +		ufs_mem_hc: ufs@1d84000 {
> >>>> +			compatible = "qcom,x1e80100-ufshc", "qcom,ufshc",
> >>>> +				     "jedec,ufs-2.0";
> >>>> +			reg = <0 0x01d84000 0 0x3000>;
> >>>> +			interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
> >>>> +			phys = <&ufs_mem_phy>;
> >>>> +			phy-names = "ufsphy";
> >>>> +			lanes-per-direction = <1>;
> >>>> +			#reset-cells = <1>;
> >>>> +			resets = <&gcc GCC_UFS_PHY_BCR>;
> >>>> +			reset-names = "rst";
> >>>> +
> >>>> +			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
> >>>> +
> >>>> +			iommus = <&apps_smmu 0xa0 0x0>;
> >>> Looks like this should be 0x1a0 maybe
> >>>> +
> >>>> +			clock-names = "core_clk",
> >>>> +				      "bus_aggr_clk",
> >>>> +				      "iface_clk",
> >>>> +				      "core_clk_unipro",
> >>>> +				      "ref_clk",
> >>>> +				      "tx_lane0_sync_clk",
> >>>> +				      "rx_lane0_sync_clk";
> >>>> +			clocks = <&gcc GCC_UFS_PHY_AXI_CLK>,
> >>>> +				 <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
> >>>> +				 <&gcc GCC_UFS_PHY_AHB_CLK>,
> >>>> +				 <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
> >>>> +				 <&rpmhcc RPMH_CXO_CLK>,
> >>>> +				 <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
> >>>> +				 <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>;
> >>> You also want
> >>>
> >>> <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>
> >>>
> >>>> +			freq-table-hz = <50000000 200000000>,
> >>> 25000000 300000000
> >>>
> >>>> +					<0 0>,
> >>>> +					<0 0>,
> >>>> +					<37500000 150000000>,
> >>> 75000000 300000000
> >>>
> >>>> +					<0 0>,
> >>>> +					<0 0>,
> >>>> +					<0 0>;
> >>>> +
> >>>> +			interconnects = <&aggre1_noc MASTER_UFS_MEM QCOM_ICC_TAG_ALWAYS
> >>>> +					 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
> >>>> +					<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
> >>>> +					 &config_noc SLAVE_UFS_MEM_CFG QCOM_ICC_TAG_ALWAYS>;
> >>>> +			interconnect-names = "ufs-ddr", "cpu-ufs";
> >>>> +
> >>>> +			qcom,ice = <&ice>;
> >>>> +
> >>>> +			status = "disabled";
> >>>> +		};
> >>>> +
> >>>> +		ufs_mem_phy: phy@1d87000 {
> >>>> +			compatible = "qcom,x1e80100-qmp-ufs-phy";
> >>>> +			reg = <0 0x01d87000 0 0x1000>;
> >>> most definitely should be 0x01d80000 with a size of 0x2000
> >>>
> >>>> +			clocks = <&rpmhcc RPMH_CXO_CLK>,
> >>>> +				 <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
> >>>> +				 <&tcsr TCSR_UFS_PHY_CLKREF_EN>;
> >>>> +			clock-names = "ref",
> >>>> +				      "ref_aux",
> >>>> +				      "qref";
> >>>> +			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
> >>>> +			resets = <&ufs_mem_hc 0>;
> >>>> +			reset-names = "ufsphy";
> >>>> +			#phy-cells = <0>;
> >>>> +			status = "disabled";
> >>>> +		};
> >>>> +
> >>>> +		ice: crypto@1d90000 {
> >>>> +			compatible = "qcom,x1e80100-inline-crypto-engine",
> >>>> +				     "qcom,inline-crypto-engine";
> >>>> +			reg = <0 0x01d90000 0 0x8000>;
> >>> 0x1d88000
> >>>
> >>>
> >>> All this combined means you probably wrote your init sequence into some
> >>> free(?) register space and the one left over from the bootloader was
> >>> good enough :P
> >>>
> >>> Konrad
> >> I have not done anything special in our sub-system to boot this DTB.
> >> Changing the values as suggested by you also doesn't make any difference
> >> to me.
> >>
> >> Anyway, I think I'll give up at this point, since this process is
> >> getting too time consuming for me.  We'll go ahead with out downstream
> >> patches, which works for us so far.
> 
> 
> Hi Marcus,
> 
> 
> Do you mind if I take over this series??? I started working on getting at least the UFS and USB portions of the DT file to work on my Samsung Galaxy book4 with your patches, along with some required modifications.?? If you're OK, I'll keep you as the author for the main DT file, and submit my changes on top.
> 
> 
> Thanks
> 
> Wesley Cheng

Hi Wesley,

Perfectly fine for me.  I'm glad if there is progress.

Thanks and Regards,
Marcus

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

* Re: [PATCH v5 4/6] arm64: dts: qcom: Add UFS node
  2025-01-02 23:17           ` Marcus Glocker
@ 2026-03-07 16:01             ` Maxim Storetvedt
  2026-03-08 20:35               ` Marcus Glocker
  0 siblings, 1 reply; 32+ messages in thread
From: Maxim Storetvedt @ 2026-03-07 16:01 UTC (permalink / raw)
  To: Marcus Glocker, Wesley Cheng
  Cc: Daniel Gomez, Konrad Dybcio, Bjorn Andersson, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Marijn Suijten, linux-arm-msm,
	devicetree, linux-kernel, Abel Vesa, Johan Hovold


On 1/3/25 00:17, Marcus Glocker wrote:
> On Thu, Jan 02, 2025 at 01:38:10PM GMT, Wesley Cheng wrote:
> 
>>
>> On 11/9/2024 3:31 PM, Daniel Gomez wrote:
>>> On Fri Aug 30, 2024 at 7:25 PM CEST, Marcus Glocker wrote:
>>>> On Fri, Aug 30, 2024 at 02:05:48AM +0200, Konrad Dybcio wrote:
>>>>
>>>>> On 17.08.2024 10:38 PM, Marcus Glocker wrote:
>>>>>> Add the UFS Host Controller node.  This was basically copied from the
>>>>>> arch/arm64/boot/dts/qcom/sc7180.dtsi file.
>>>>>>
>>>>>> Signed-off-by: Marcus Glocker <marcus@nazgul.ch>
>>>>>> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
>>>>>> ---
>>>>>>  arch/arm64/boot/dts/qcom/x1e80100.dtsi | 72 ++++++++++++++++++++++++++
>>>>>>  1 file changed, 72 insertions(+)
>>>>>>
>>>>>> diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi 
>>>>>> b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>>>>>> index 7bca5fcd7d52..9f01b3ff3737 100644
>>>>>> --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>>>>>> +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>>>>>> @@ -2878,6 +2878,78 @@ mmss_noc: interconnect@1780000 {
>>>>>>  			#interconnect-cells = <2>;
>>>>>>  		};
>>>>>>
>>>>>> +		ufs_mem_hc: ufs@1d84000 {
>>>>>> +			compatible = "qcom,x1e80100-ufshc", "qcom,ufshc",
>>>>>> +				     "jedec,ufs-2.0";
>>>>>> +			reg = <0 0x01d84000 0 0x3000>;
>>>>>> +			interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
>>>>>> +			phys = <&ufs_mem_phy>;
>>>>>> +			phy-names = "ufsphy";
>>>>>> +			lanes-per-direction = <1>;
>>>>>> +			#reset-cells = <1>;
>>>>>> +			resets = <&gcc GCC_UFS_PHY_BCR>;
>>>>>> +			reset-names = "rst";
>>>>>> +
>>>>>> +			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
>>>>>> +
>>>>>> +			iommus = <&apps_smmu 0xa0 0x0>;
>>>>> Looks like this should be 0x1a0 maybe
>>>>>> +
>>>>>> +			clock-names = "core_clk",
>>>>>> +				      "bus_aggr_clk",
>>>>>> +				      "iface_clk",
>>>>>> +				      "core_clk_unipro",
>>>>>> +				      "ref_clk",
>>>>>> +				      "tx_lane0_sync_clk",
>>>>>> +				      "rx_lane0_sync_clk";
>>>>>> +			clocks = <&gcc GCC_UFS_PHY_AXI_CLK>,
>>>>>> +				 <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
>>>>>> +				 <&gcc GCC_UFS_PHY_AHB_CLK>,
>>>>>> +				 <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
>>>>>> +				 <&rpmhcc RPMH_CXO_CLK>,
>>>>>> +				 <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
>>>>>> +				 <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>;
>>>>> You also want
>>>>>
>>>>> <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>
>>>>>
>>>>>> +			freq-table-hz = <50000000 200000000>,
>>>>> 25000000 300000000
>>>>>
>>>>>> +					<0 0>,
>>>>>> +					<0 0>,
>>>>>> +					<37500000 150000000>,
>>>>> 75000000 300000000
>>>>>
>>>>>> +					<0 0>,
>>>>>> +					<0 0>,
>>>>>> +					<0 0>;
>>>>>> +
>>>>>> +			interconnects = <&aggre1_noc MASTER_UFS_MEM QCOM_ICC_TAG_ALWAYS
>>>>>> +					 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
>>>>>> +					<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
>>>>>> +					 &config_noc SLAVE_UFS_MEM_CFG QCOM_ICC_TAG_ALWAYS>;
>>>>>> +			interconnect-names = "ufs-ddr", "cpu-ufs";
>>>>>> +
>>>>>> +			qcom,ice = <&ice>;
>>>>>> +
>>>>>> +			status = "disabled";
>>>>>> +		};
>>>>>> +
>>>>>> +		ufs_mem_phy: phy@1d87000 {
>>>>>> +			compatible = "qcom,x1e80100-qmp-ufs-phy";
>>>>>> +			reg = <0 0x01d87000 0 0x1000>;
>>>>> most definitely should be 0x01d80000 with a size of 0x2000
>>>>>
>>>>>> +			clocks = <&rpmhcc RPMH_CXO_CLK>,
>>>>>> +				 <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
>>>>>> +				 <&tcsr TCSR_UFS_PHY_CLKREF_EN>;
>>>>>> +			clock-names = "ref",
>>>>>> +				      "ref_aux",
>>>>>> +				      "qref";
>>>>>> +			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
>>>>>> +			resets = <&ufs_mem_hc 0>;
>>>>>> +			reset-names = "ufsphy";
>>>>>> +			#phy-cells = <0>;
>>>>>> +			status = "disabled";
>>>>>> +		};
>>>>>> +
>>>>>> +		ice: crypto@1d90000 {
>>>>>> +			compatible = "qcom,x1e80100-inline-crypto-engine",
>>>>>> +				     "qcom,inline-crypto-engine";
>>>>>> +			reg = <0 0x01d90000 0 0x8000>;
>>>>> 0x1d88000
>>>>>
>>>>>
>>>>> All this combined means you probably wrote your init sequence into some
>>>>> free(?) register space and the one left over from the bootloader was
>>>>> good enough :P
>>>>>
>>>>> Konrad
>>>> I have not done anything special in our sub-system to boot this DTB.
>>>> Changing the values as suggested by you also doesn't make any difference
>>>> to me.
>>>>
>>>> Anyway, I think I'll give up at this point, since this process is
>>>> getting too time consuming for me.  We'll go ahead with out downstream
>>>> patches, which works for us so far.
>>
>>
>> Hi Marcus,
>>
>>
>> Do you mind if I take over this series??? I started working on getting at least the UFS and USB portions of the DT file to work on my Samsung Galaxy book4 with your patches, along with some required modifications.?? If you're OK, I'll keep you as the author for the main DT file, and submit my changes on top.
>>
>>
>> Thanks
>>
>> Wesley Cheng
> 
> Hi Wesley,
> 
> Perfectly fine for me.  I'm glad if there is progress.
> 
> Thanks and Regards,
> Marcus
> 

Hi Marcus, Wesley,

We've continued to iterate on this device over at its thread on
Launchpad, and been able to get a fairly usable system up and running on
Linux for both the 14" and 16" SKUs. I'd be happy to update the series
with the changes.

Cheers,
-Max

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

* Re: [PATCH v5 4/6] arm64: dts: qcom: Add UFS node
  2026-03-07 16:01             ` Maxim Storetvedt
@ 2026-03-08 20:35               ` Marcus Glocker
  2026-03-19 11:31                 ` Konrad Dybcio
  0 siblings, 1 reply; 32+ messages in thread
From: Marcus Glocker @ 2026-03-08 20:35 UTC (permalink / raw)
  To: Maxim Storetvedt
  Cc: Wesley Cheng, Daniel Gomez, Konrad Dybcio, Bjorn Andersson,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Marijn Suijten,
	linux-arm-msm, devicetree, linux-kernel, Abel Vesa, Johan Hovold

On Sat, Mar 07, 2026 at 05:01:14PM +0100, Maxim Storetvedt wrote:

> 
> On 1/3/25 00:17, Marcus Glocker wrote:
> > On Thu, Jan 02, 2025 at 01:38:10PM GMT, Wesley Cheng wrote:
> > 
> >>
> >> On 11/9/2024 3:31 PM, Daniel Gomez wrote:
> >>> On Fri Aug 30, 2024 at 7:25 PM CEST, Marcus Glocker wrote:
> >>>> On Fri, Aug 30, 2024 at 02:05:48AM +0200, Konrad Dybcio wrote:
> >>>>
> >>>>> On 17.08.2024 10:38 PM, Marcus Glocker wrote:
> >>>>>> Add the UFS Host Controller node.  This was basically copied from the
> >>>>>> arch/arm64/boot/dts/qcom/sc7180.dtsi file.
> >>>>>>
> >>>>>> Signed-off-by: Marcus Glocker <marcus@nazgul.ch>
> >>>>>> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> >>>>>> ---
> >>>>>>  arch/arm64/boot/dts/qcom/x1e80100.dtsi | 72 ++++++++++++++++++++++++++
> >>>>>>  1 file changed, 72 insertions(+)
> >>>>>>
> >>>>>> diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi 
> >>>>>> b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> >>>>>> index 7bca5fcd7d52..9f01b3ff3737 100644
> >>>>>> --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> >>>>>> +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> >>>>>> @@ -2878,6 +2878,78 @@ mmss_noc: interconnect@1780000 {
> >>>>>>  			#interconnect-cells = <2>;
> >>>>>>  		};
> >>>>>>
> >>>>>> +		ufs_mem_hc: ufs@1d84000 {
> >>>>>> +			compatible = "qcom,x1e80100-ufshc", "qcom,ufshc",
> >>>>>> +				     "jedec,ufs-2.0";
> >>>>>> +			reg = <0 0x01d84000 0 0x3000>;
> >>>>>> +			interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
> >>>>>> +			phys = <&ufs_mem_phy>;
> >>>>>> +			phy-names = "ufsphy";
> >>>>>> +			lanes-per-direction = <1>;
> >>>>>> +			#reset-cells = <1>;
> >>>>>> +			resets = <&gcc GCC_UFS_PHY_BCR>;
> >>>>>> +			reset-names = "rst";
> >>>>>> +
> >>>>>> +			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
> >>>>>> +
> >>>>>> +			iommus = <&apps_smmu 0xa0 0x0>;
> >>>>> Looks like this should be 0x1a0 maybe
> >>>>>> +
> >>>>>> +			clock-names = "core_clk",
> >>>>>> +				      "bus_aggr_clk",
> >>>>>> +				      "iface_clk",
> >>>>>> +				      "core_clk_unipro",
> >>>>>> +				      "ref_clk",
> >>>>>> +				      "tx_lane0_sync_clk",
> >>>>>> +				      "rx_lane0_sync_clk";
> >>>>>> +			clocks = <&gcc GCC_UFS_PHY_AXI_CLK>,
> >>>>>> +				 <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
> >>>>>> +				 <&gcc GCC_UFS_PHY_AHB_CLK>,
> >>>>>> +				 <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
> >>>>>> +				 <&rpmhcc RPMH_CXO_CLK>,
> >>>>>> +				 <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
> >>>>>> +				 <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>;
> >>>>> You also want
> >>>>>
> >>>>> <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>
> >>>>>
> >>>>>> +			freq-table-hz = <50000000 200000000>,
> >>>>> 25000000 300000000
> >>>>>
> >>>>>> +					<0 0>,
> >>>>>> +					<0 0>,
> >>>>>> +					<37500000 150000000>,
> >>>>> 75000000 300000000
> >>>>>
> >>>>>> +					<0 0>,
> >>>>>> +					<0 0>,
> >>>>>> +					<0 0>;
> >>>>>> +
> >>>>>> +			interconnects = <&aggre1_noc MASTER_UFS_MEM QCOM_ICC_TAG_ALWAYS
> >>>>>> +					 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
> >>>>>> +					<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
> >>>>>> +					 &config_noc SLAVE_UFS_MEM_CFG QCOM_ICC_TAG_ALWAYS>;
> >>>>>> +			interconnect-names = "ufs-ddr", "cpu-ufs";
> >>>>>> +
> >>>>>> +			qcom,ice = <&ice>;
> >>>>>> +
> >>>>>> +			status = "disabled";
> >>>>>> +		};
> >>>>>> +
> >>>>>> +		ufs_mem_phy: phy@1d87000 {
> >>>>>> +			compatible = "qcom,x1e80100-qmp-ufs-phy";
> >>>>>> +			reg = <0 0x01d87000 0 0x1000>;
> >>>>> most definitely should be 0x01d80000 with a size of 0x2000
> >>>>>
> >>>>>> +			clocks = <&rpmhcc RPMH_CXO_CLK>,
> >>>>>> +				 <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
> >>>>>> +				 <&tcsr TCSR_UFS_PHY_CLKREF_EN>;
> >>>>>> +			clock-names = "ref",
> >>>>>> +				      "ref_aux",
> >>>>>> +				      "qref";
> >>>>>> +			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
> >>>>>> +			resets = <&ufs_mem_hc 0>;
> >>>>>> +			reset-names = "ufsphy";
> >>>>>> +			#phy-cells = <0>;
> >>>>>> +			status = "disabled";
> >>>>>> +		};
> >>>>>> +
> >>>>>> +		ice: crypto@1d90000 {
> >>>>>> +			compatible = "qcom,x1e80100-inline-crypto-engine",
> >>>>>> +				     "qcom,inline-crypto-engine";
> >>>>>> +			reg = <0 0x01d90000 0 0x8000>;
> >>>>> 0x1d88000
> >>>>>
> >>>>>
> >>>>> All this combined means you probably wrote your init sequence into some
> >>>>> free(?) register space and the one left over from the bootloader was
> >>>>> good enough :P
> >>>>>
> >>>>> Konrad
> >>>> I have not done anything special in our sub-system to boot this DTB.
> >>>> Changing the values as suggested by you also doesn't make any difference
> >>>> to me.
> >>>>
> >>>> Anyway, I think I'll give up at this point, since this process is
> >>>> getting too time consuming for me.  We'll go ahead with out downstream
> >>>> patches, which works for us so far.
> >>
> >>
> >> Hi Marcus,
> >>
> >>
> >> Do you mind if I take over this series??? I started working on getting at least the UFS and USB portions of the DT file to work on my Samsung Galaxy book4 with your patches, along with some required modifications.?? If you're OK, I'll keep you as the author for the main DT file, and submit my changes on top.
> >>
> >>
> >> Thanks
> >>
> >> Wesley Cheng
> > 
> > Hi Wesley,
> > 
> > Perfectly fine for me.  I'm glad if there is progress.
> > 
> > Thanks and Regards,
> > Marcus
> > 
> 
> Hi Marcus, Wesley,
> 
> We've continued to iterate on this device over at its thread on
> Launchpad, and been able to get a fairly usable system up and running on
> Linux for both the 14" and 16" SKUs. I'd be happy to update the series
> with the changes.
> 
> Cheers,
> -Max

Hi Max,

Good to read!  Sure, I would welcome to see your changes.  If you also
could send me your full DTS to my e-mail address, I could also test it
with OpenBSD.

Thanks,
Marcus

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

* Re: [PATCH v5 4/6] arm64: dts: qcom: Add UFS node
  2026-03-08 20:35               ` Marcus Glocker
@ 2026-03-19 11:31                 ` Konrad Dybcio
  0 siblings, 0 replies; 32+ messages in thread
From: Konrad Dybcio @ 2026-03-19 11:31 UTC (permalink / raw)
  To: Marcus Glocker, Maxim Storetvedt
  Cc: Wesley Cheng, Daniel Gomez, Konrad Dybcio, Bjorn Andersson,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Marijn Suijten,
	linux-arm-msm, devicetree, linux-kernel, Abel Vesa, Johan Hovold

On 3/8/26 9:35 PM, Marcus Glocker wrote:
> On Sat, Mar 07, 2026 at 05:01:14PM +0100, Maxim Storetvedt wrote:
> 
>>
>> On 1/3/25 00:17, Marcus Glocker wrote:
>>> On Thu, Jan 02, 2025 at 01:38:10PM GMT, Wesley Cheng wrote:
>>>
>>>>
>>>> On 11/9/2024 3:31 PM, Daniel Gomez wrote:
>>>>> On Fri Aug 30, 2024 at 7:25 PM CEST, Marcus Glocker wrote:
>>>>>> On Fri, Aug 30, 2024 at 02:05:48AM +0200, Konrad Dybcio wrote:
>>>>>>
>>>>>>> On 17.08.2024 10:38 PM, Marcus Glocker wrote:
>>>>>>>> Add the UFS Host Controller node.  This was basically copied from the
>>>>>>>> arch/arm64/boot/dts/qcom/sc7180.dtsi file.
>>>>>>>>
>>>>>>>> Signed-off-by: Marcus Glocker <marcus@nazgul.ch>
>>>>>>>> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
>>>>>>>> ---
>>>>>>>>  arch/arm64/boot/dts/qcom/x1e80100.dtsi | 72 ++++++++++++++++++++++++++
>>>>>>>>  1 file changed, 72 insertions(+)
>>>>>>>>
>>>>>>>> diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi 
>>>>>>>> b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>>>>>>>> index 7bca5fcd7d52..9f01b3ff3737 100644
>>>>>>>> --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>>>>>>>> +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
>>>>>>>> @@ -2878,6 +2878,78 @@ mmss_noc: interconnect@1780000 {
>>>>>>>>  			#interconnect-cells = <2>;
>>>>>>>>  		};
>>>>>>>>
>>>>>>>> +		ufs_mem_hc: ufs@1d84000 {
>>>>>>>> +			compatible = "qcom,x1e80100-ufshc", "qcom,ufshc",
>>>>>>>> +				     "jedec,ufs-2.0";
>>>>>>>> +			reg = <0 0x01d84000 0 0x3000>;
>>>>>>>> +			interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
>>>>>>>> +			phys = <&ufs_mem_phy>;
>>>>>>>> +			phy-names = "ufsphy";
>>>>>>>> +			lanes-per-direction = <1>;
>>>>>>>> +			#reset-cells = <1>;
>>>>>>>> +			resets = <&gcc GCC_UFS_PHY_BCR>;
>>>>>>>> +			reset-names = "rst";
>>>>>>>> +
>>>>>>>> +			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
>>>>>>>> +
>>>>>>>> +			iommus = <&apps_smmu 0xa0 0x0>;
>>>>>>> Looks like this should be 0x1a0 maybe
>>>>>>>> +
>>>>>>>> +			clock-names = "core_clk",
>>>>>>>> +				      "bus_aggr_clk",
>>>>>>>> +				      "iface_clk",
>>>>>>>> +				      "core_clk_unipro",
>>>>>>>> +				      "ref_clk",
>>>>>>>> +				      "tx_lane0_sync_clk",
>>>>>>>> +				      "rx_lane0_sync_clk";
>>>>>>>> +			clocks = <&gcc GCC_UFS_PHY_AXI_CLK>,
>>>>>>>> +				 <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
>>>>>>>> +				 <&gcc GCC_UFS_PHY_AHB_CLK>,
>>>>>>>> +				 <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
>>>>>>>> +				 <&rpmhcc RPMH_CXO_CLK>,
>>>>>>>> +				 <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
>>>>>>>> +				 <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>;
>>>>>>> You also want
>>>>>>>
>>>>>>> <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>
>>>>>>>
>>>>>>>> +			freq-table-hz = <50000000 200000000>,
>>>>>>> 25000000 300000000
>>>>>>>
>>>>>>>> +					<0 0>,
>>>>>>>> +					<0 0>,
>>>>>>>> +					<37500000 150000000>,
>>>>>>> 75000000 300000000
>>>>>>>
>>>>>>>> +					<0 0>,
>>>>>>>> +					<0 0>,
>>>>>>>> +					<0 0>;
>>>>>>>> +
>>>>>>>> +			interconnects = <&aggre1_noc MASTER_UFS_MEM QCOM_ICC_TAG_ALWAYS
>>>>>>>> +					 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
>>>>>>>> +					<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
>>>>>>>> +					 &config_noc SLAVE_UFS_MEM_CFG QCOM_ICC_TAG_ALWAYS>;
>>>>>>>> +			interconnect-names = "ufs-ddr", "cpu-ufs";
>>>>>>>> +
>>>>>>>> +			qcom,ice = <&ice>;
>>>>>>>> +
>>>>>>>> +			status = "disabled";
>>>>>>>> +		};
>>>>>>>> +
>>>>>>>> +		ufs_mem_phy: phy@1d87000 {
>>>>>>>> +			compatible = "qcom,x1e80100-qmp-ufs-phy";
>>>>>>>> +			reg = <0 0x01d87000 0 0x1000>;
>>>>>>> most definitely should be 0x01d80000 with a size of 0x2000
>>>>>>>
>>>>>>>> +			clocks = <&rpmhcc RPMH_CXO_CLK>,
>>>>>>>> +				 <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
>>>>>>>> +				 <&tcsr TCSR_UFS_PHY_CLKREF_EN>;
>>>>>>>> +			clock-names = "ref",
>>>>>>>> +				      "ref_aux",
>>>>>>>> +				      "qref";
>>>>>>>> +			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
>>>>>>>> +			resets = <&ufs_mem_hc 0>;
>>>>>>>> +			reset-names = "ufsphy";
>>>>>>>> +			#phy-cells = <0>;
>>>>>>>> +			status = "disabled";
>>>>>>>> +		};
>>>>>>>> +
>>>>>>>> +		ice: crypto@1d90000 {
>>>>>>>> +			compatible = "qcom,x1e80100-inline-crypto-engine",
>>>>>>>> +				     "qcom,inline-crypto-engine";
>>>>>>>> +			reg = <0 0x01d90000 0 0x8000>;
>>>>>>> 0x1d88000
>>>>>>>
>>>>>>>
>>>>>>> All this combined means you probably wrote your init sequence into some
>>>>>>> free(?) register space and the one left over from the bootloader was
>>>>>>> good enough :P
>>>>>>>
>>>>>>> Konrad
>>>>>> I have not done anything special in our sub-system to boot this DTB.
>>>>>> Changing the values as suggested by you also doesn't make any difference
>>>>>> to me.
>>>>>>
>>>>>> Anyway, I think I'll give up at this point, since this process is
>>>>>> getting too time consuming for me.  We'll go ahead with out downstream
>>>>>> patches, which works for us so far.
>>>>
>>>>
>>>> Hi Marcus,
>>>>
>>>>
>>>> Do you mind if I take over this series??? I started working on getting at least the UFS and USB portions of the DT file to work on my Samsung Galaxy book4 with your patches, along with some required modifications.?? If you're OK, I'll keep you as the author for the main DT file, and submit my changes on top.
>>>>
>>>>
>>>> Thanks
>>>>
>>>> Wesley Cheng
>>>
>>> Hi Wesley,
>>>
>>> Perfectly fine for me.  I'm glad if there is progress.
>>>
>>> Thanks and Regards,
>>> Marcus
>>>
>>
>> Hi Marcus, Wesley,
>>
>> We've continued to iterate on this device over at its thread on
>> Launchpad, and been able to get a fairly usable system up and running on
>> Linux for both the 14" and 16" SKUs. I'd be happy to update the series
>> with the changes.
>>
>> Cheers,
>> -Max
> 
> Hi Max,
> 
> Good to read!  Sure, I would welcome to see your changes.  If you also
> could send me your full DTS to my e-mail address, I could also test it
> with OpenBSD.

JFYI

https://lore.kernel.org/linux-arm-msm/20260211132926.3716716-4-pradeep.pragallapati@oss.qualcomm.com/

Konrad

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

* [PATCH v6 0/3] Add initial DTS for Samsung Galaxy Book4 Edge
  2024-08-17 20:32 [PATCH v5 0/6] Add initial DTS for Samsung Galaxy Book4 Edge Marcus Glocker
                   ` (5 preceding siblings ...)
  2024-08-17 20:41 ` [PATCH v5 6/6] arm64: dts: qcom: Add Samsung Galaxy Book4 Edge DTS Marcus Glocker
@ 2026-03-22 16:03 ` Maxim Storetvedt
  2026-03-22 16:03   ` [PATCH v6 1/3] firmware: qcom: scm: Allow QSEECOM on " Maxim Storetvedt
                     ` (2 more replies)
  6 siblings, 3 replies; 32+ messages in thread
From: Maxim Storetvedt @ 2026-03-22 16:03 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 Samsung Galaxy Book4 Edge laptop,
and includes the X1E80100 14-inch SKU and X1E84100 16-inch SKU.

It continues the earlier patch series for this device, originally submitted
by Marcus Glocker (v5):

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

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

UFS requires changes that are now in the process of being upstreamed
as part of another patch, specifically:

Link: https://lore.kernel.org/all/20260211132926.3716716-1-pradeep.pragallapati@oss.qualcomm.com/

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@.

Marcus Glocker (1):
  dt-bindings: arm: Add Samsung Galaxy Book4 Edge

Maxim Storetvedt (2):
  firmware: qcom: scm: Allow QSEECOM on Samsung Galaxy Book4 Edge
  arm64: dts: qcom: Add Samsung Galaxy Book4 Edge DTS/DTSI

 .../devicetree/bindings/arm/qcom.yaml         |    1 +
 arch/arm64/boot/dts/qcom/Makefile             |    2 +
 .../qcom/x1-samsung-galaxy-book4-edge.dtsi    | 1518 +++++++++++++++++
 .../x1e80100-samsung-galaxy-book4-edge-14.dts |   39 +
 .../x1e84100-samsung-galaxy-book4-edge-16.dts |   29 +
 drivers/firmware/qcom/qcom_scm.c              |    1 +
 6 files changed, 1590 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

-- 
2.43.0


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

* [PATCH v6 1/3] firmware: qcom: scm: Allow QSEECOM on Samsung Galaxy Book4 Edge
  2026-03-22 16:03 ` [PATCH v6 0/3] Add initial DTS for Samsung Galaxy Book4 Edge Maxim Storetvedt
@ 2026-03-22 16:03   ` Maxim Storetvedt
  2026-03-22 18:40     ` Dmitry Baryshkov
  2026-03-22 16:03   ` [PATCH v6 2/3] dt-bindings: arm: Add " Maxim Storetvedt
  2026-03-22 16:03   ` [PATCH v6 3/3] arm64: dts: qcom: Add Samsung Galaxy Book4 Edge DTS/DTSI Maxim Storetvedt
  2 siblings, 1 reply; 32+ messages in thread
From: Maxim Storetvedt @ 2026-03-22 16:03 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

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 5c4375a7f..5d3de476c 100644
--- a/drivers/firmware/qcom/qcom_scm.c
+++ b/drivers/firmware/qcom/qcom_scm.c
@@ -2318,6 +2318,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 related	[flat|nested] 32+ messages in thread

* [PATCH v6 2/3] dt-bindings: arm: Add Samsung Galaxy Book4 Edge
  2026-03-22 16:03 ` [PATCH v6 0/3] Add initial DTS for Samsung Galaxy Book4 Edge Maxim Storetvedt
  2026-03-22 16:03   ` [PATCH v6 1/3] firmware: qcom: scm: Allow QSEECOM on " Maxim Storetvedt
@ 2026-03-22 16:03   ` Maxim Storetvedt
  2026-03-26 11:44     ` Krzysztof Kozlowski
  2026-03-22 16:03   ` [PATCH v6 3/3] arm64: dts: qcom: Add Samsung Galaxy Book4 Edge DTS/DTSI Maxim Storetvedt
  2 siblings, 1 reply; 32+ messages in thread
From: Maxim Storetvedt @ 2026-03-22 16:03 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

From: Marcus Glocker <marcus@nazgul.ch>

Add the Samsung Galaxy Book4 Edge compatibility binding.

Signed-off-by: Marcus Glocker <marcus@nazgul.ch>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index d054a8f56..b82ddf167 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -1129,6 +1129,7 @@ properties:
               - microsoft,romulus15
               - qcom,x1e80100-crd
               - qcom,x1e80100-qcp
+              - samsung,galaxy-book4-edge
           - const: qcom,x1e80100
 
       - items:
-- 
2.43.0


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

* [PATCH v6 3/3] arm64: dts: qcom: Add Samsung Galaxy Book4 Edge DTS/DTSI
  2026-03-22 16:03 ` [PATCH v6 0/3] Add initial DTS for Samsung Galaxy Book4 Edge Maxim Storetvedt
  2026-03-22 16:03   ` [PATCH v6 1/3] firmware: qcom: scm: Allow QSEECOM on " Maxim Storetvedt
  2026-03-22 16:03   ` [PATCH v6 2/3] dt-bindings: arm: Add " Maxim Storetvedt
@ 2026-03-22 16:03   ` Maxim Storetvedt
  2026-03-23 12:17     ` Konrad Dybcio
  2 siblings, 1 reply; 32+ messages in thread
From: Maxim Storetvedt @ 2026-03-22 16:03 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 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 ongoing patch for the Honor Magicbook Art 14, and its downstream by
Valentin Manea, which shares device similarities:

Link: https://lore.kernel.org/all/871px910m1.wl-kirill@korins.ky/
Link: https://github.com/vamanea/linux-magicbook (downstream)

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    | 1518 +++++++++++++++++
 .../x1e80100-samsung-galaxy-book4-edge-14.dts |   39 +
 .../x1e84100-samsung-galaxy-book4-edge-16.dts |   29 +
 4 files changed, 1588 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 02921a495..3546a3be9 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -398,6 +398,8 @@ x1e80100-microsoft-romulus15-el2-dtbs	:= x1e80100-microsoft-romulus15.dtb x1-el2
 dtb-$(CONFIG_ARCH_QCOM)	+= x1e80100-microsoft-romulus15.dtb x1e80100-microsoft-romulus15-el2.dtb
 x1e80100-qcp-el2-dtbs	:= x1e80100-qcp.dtb x1-el2.dtbo
 dtb-$(CONFIG_ARCH_QCOM)	+= x1e80100-qcp.dtb x1e80100-qcp-el2.dtb
+dtb-$(CONFIG_ARCH_QCOM)	+= x1e80100-samsung-galaxy-book4-edge-14.dtb
+dtb-$(CONFIG_ARCH_QCOM)	+= x1e84100-samsung-galaxy-book4-edge-16.dtb
 x1p42100-asus-vivobook-s15-el2-dtbs	:= x1p42100-asus-vivobook-s15.dtb x1-el2.dtbo
 dtb-$(CONFIG_ARCH_QCOM)	+= x1p42100-asus-vivobook-s15.dtb x1p42100-asus-vivobook-s15-el2.dtb
 x1p42100-asus-zenbook-a14-el2-dtbs	:= x1p42100-asus-zenbook-a14.dtb x1-el2.dtbo
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..2f9e76a82
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi
@@ -0,0 +1,1518 @@
+// 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-names = "default";
+		pinctrl-0 = <&wcd_default>;
+
+		qcom,micbias1-microvolt = <1800000>;
+		qcom,micbias2-microvolt = <1800000>;
+		qcom,micbias3-microvolt = <1800000>;
+		qcom,micbias4-microvolt = <1800000>;
+		qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;
+		qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
+		qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
+		qcom,rx-device = <&wcd_rx>;
+		qcom,tx-device = <&wcd_tx>;
+
+		reset-gpios = <&tlmm 191 GPIO_ACTIVE_LOW>;
+
+		vdd-buck-supply = <&vreg_l15b_1p8>;
+		vdd-rxtx-supply = <&vreg_l15b_1p8>;
+		vdd-io-supply = <&vreg_l15b_1p8>;
+		vdd-mic-bias-supply = <&vreg_bob1>;
+
+		#sound-dai-cells = <1>;
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		pinctrl-0 = <&hall_int_n_default>;
+		pinctrl-names = "default";
+
+		switch-lid {
+			gpios = <&tlmm 92 GPIO_ACTIVE_LOW>;
+			linux,input-type = <EV_SW>;
+			linux,code = <SW_LID>;
+			wakeup-source;
+			wakeup-event-action = <EV_ACT_DEASSERTED>;
+		};
+	};
+
+	hdmi-connector {
+		compatible = "hdmi-connector";
+		type = "a";
+		pinctrl-0 = <&hdmi_hpd_default>;
+		pinctrl-names = "default";
+
+		port {
+			hdmi_con: endpoint {
+				remote-endpoint = <&usb_1_ss2_qmpphy_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>,
+				    <&tlmm 125 GPIO_ACTIVE_HIGH>;
+
+		/* Left-side rear port */
+		connector@0 {
+			compatible = "usb-c-connector";
+			reg = <0>;
+			power-role = "dual";
+			data-role = "dual";
+
+			ports {
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				port@0 {
+					reg = <0>;
+
+					pmic_glink_ss0_hs_in: endpoint {
+						remote-endpoint = <&usb_1_ss0_dwc3_hs>;
+					};
+				};
+
+				port@1 {
+					reg = <1>;
+
+					pmic_glink_ss0_ss_in: endpoint {
+						remote-endpoint = <&usb_1_ss0_qmpphy_out>;
+					};
+				};
+
+				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-CRD";
+		audio-routing = "WooferLeft IN", "WSA WSA_SPK1 OUT",
+				"TweeterLeft IN", "WSA WSA_SPK2 OUT",
+				"WooferRight IN", "WSA2 WSA_SPK2 OUT",
+				"TweeterRight IN", "WSA2 WSA_SPK2 OUT",
+				"IN1_HPHL", "HPHL_OUT",
+				"IN2_HPHR", "HPHR_OUT",
+				"AMIC2", "MIC BIAS2",
+				"VA DMIC0", "MIC BIAS3",
+				"VA DMIC1", "MIC BIAS3",
+				"VA DMIC2", "MIC BIAS1",
+				"VA DMIC3", "MIC BIAS1",
+				"VA DMIC0", "VA MIC BIAS3",
+				"VA DMIC1", "VA MIC BIAS3",
+				"VA DMIC2", "VA MIC BIAS1",
+				"VA DMIC3", "VA MIC BIAS1",
+				"TX SWR_INPUT1", "ADC2_OUTPUT";
+
+		wcd-playback-dai-link {
+			link-name = "WCD Playback";
+
+			cpu {
+				sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
+			};
+
+			codec {
+				sound-dai = <&wcd938x 0>, <&swr1 0>, <&lpass_rxmacro 0>;
+			};
+
+			platform {
+				sound-dai = <&q6apm>;
+			};
+		};
+
+		wcd-capture-dai-link {
+			link-name = "WCD Capture";
+
+			cpu {
+				sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>;
+			};
+
+			codec {
+				sound-dai = <&wcd938x 1>, <&swr2 1>, <&lpass_txmacro 0>;
+			};
+
+			platform {
+				sound-dai = <&q6apm>;
+			};
+		};
+
+		wsa-dai-link {
+			link-name = "WSA Playback";
+
+			cpu {
+				sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
+			};
+
+			codec {
+				sound-dai = <&left_woofer>, <&left_tweeter>,
+					    <&swr0 0>, <&lpass_wsamacro 0>,
+					    <&right_woofer>, <&right_tweeter>,
+					    <&swr3 0>, <&lpass_wsa2macro 0>;
+			};
+
+			platform {
+				sound-dai = <&q6apm>;
+			};
+		};
+
+		va-dai-link {
+			link-name = "VA Capture";
+
+			cpu {
+				sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
+			};
+
+			codec {
+				sound-dai = <&lpass_vamacro 0>;
+			};
+
+			platform {
+				sound-dai = <&q6apm>;
+			};
+		};
+	};
+
+	vreg_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-names = "default";
+		pinctrl-0 = <&misc_3p3_reg_en>;
+
+		regulator-boot-on;
+		regulator-always-on;
+	};
+
+	vph_pwr: regulator-vph-pwr {
+		compatible = "regulator-fixed";
+
+		regulator-name = "vph_pwr";
+		regulator-min-microvolt = <3700000>;
+		regulator-max-microvolt = <3700000>;
+
+		regulator-always-on;
+		regulator-boot-on;
+	};
+
+	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-always-on;
+		regulator-boot-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>;
+
+		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>;
+
+		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-min-microvolt = <2800000>;
+			regulator-max-microvolt = <2800000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l8b_3p0: ldo8 {
+			regulator-name = "vreg_l8b_3p0";
+			regulator-min-microvolt = <3072000>;
+			regulator-max-microvolt = <3072000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l9b_2p9: ldo9 {
+			regulator-name = "vreg_l9b_2p9";
+			regulator-min-microvolt = <2960000>;
+			regulator-max-microvolt = <2960000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l10b_1p8: ldo10 {
+			regulator-name = "vreg_l10b_1p8";
+			regulator-min-microvolt = <1800000>;
+			regulator-max-microvolt = <1800000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l12b_1p2: ldo12 {
+			regulator-name = "vreg_l12b_1p2";
+			regulator-min-microvolt = <1200000>;
+			regulator-max-microvolt = <1200000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+			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>;
+		};
+	};
+};
+
+&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;
+	};
+};
+
+&i2c2 {
+	clock-frequency = <400000>;
+
+	status = "okay";
+
+	eusb0_repeater: redriver@4f {
+		compatible = "nxp,ptn3222";
+		reg = <0x4f>;
+		#phy-cells = <0>;
+
+		vdd3v3-supply = <&vreg_l2b_3p0>;
+		vdd1v8-supply = <&vreg_l3d_1p8>;
+
+		reset-gpios = <&tlmm 10 GPIO_ACTIVE_LOW>;
+
+		pinctrl-0 = <&eusb0_reset_n>;
+		pinctrl-names = "default";
+	};
+};
+
+&i2c4 {
+	clock-frequency = <400000>;
+
+	status = "okay";
+
+	eusb1_repeater: redriver@4f {
+		compatible = "nxp,ptn3222";
+		reg = <0x4f>;
+		#phy-cells = <0>;
+
+		vdd3v3-supply = <&vreg_l14b_3p0>;
+		vdd1v8-supply = <&vreg_l3d_1p8>;
+
+		reset-gpios = <&tlmm 19 GPIO_ACTIVE_LOW>;
+
+		pinctrl-0 = <&eusb1_reset_n>;
+		pinctrl-names = "default";
+	};
+};
+
+&i2c6 {
+	clock-frequency = <400000>;
+
+	status = "okay";
+
+	eusb5_repeater: redriver@4f {
+		compatible = "nxp,ptn3222";
+		reg = <0x4f>;
+		#phy-cells = <0>;
+
+		vdd3v3-supply = <&vreg_l8b_3p0>;
+		vdd1v8-supply = <&vreg_l3d_1p8>;
+
+		reset-gpios = <&tlmm 26 GPIO_ACTIVE_LOW>;
+
+		pinctrl-0 = <&eusb5_reset_n>;
+		pinctrl-names = "default";
+	};
+};
+
+&i2c18 {
+	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 74 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>;
+		/* Lower power supply is not enoug to work. */
+		// vddl-supply = <&vreg_l15b_1p8>;
+
+		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 {
+			compatible = "samsung,atna60cl07", "samsung,atna33xc20";
+			enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;
+			power-supply = <&vreg_edp_3p3>;
+			hpd-gpios = <&tlmm 119 GPIO_ACTIVE_HIGH>;
+
+			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;
+	};
+
+	eusb0_reset_n: eusb0-reset-n-state {
+		pins = "gpio10";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+		output-low;
+	};
+
+	eusb1_reset_n: eusb1-reset-n-state {
+		pins = "gpio19";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+		output-low;
+	};
+
+	eusb5_reset_n: eusb5-reset-n-state {
+		pins = "gpio26";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+		output-low;
+	};
+
+	eusb6_reset_n: eusb6-reset-n-state {
+		pins = "gpio74";
+		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 = "gpio34";
+			function = "gpio";
+			bias-disable;
+		};
+
+		reset-n-pins {
+			pins = "gpio48";
+			function = "gpio";
+			output-high;
+			drive-strength = <16>;
+		};
+	};
+
+	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";
+};
+
+/* usb1 covers left side typec ports */
+
+/* back(towards the display) typec port */
+&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_dwc3 {
+	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>;
+};
+
+/* front typec port */
+&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_dwc3 {
+	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>;
+};
+
+/* DP-HDMI bridge connected here? */
+&usb_1_ss2_qmpphy {
+	vdda-phy-supply = <&vreg_l2j_1p2>;
+	vdda-pll-supply = <&vreg_l2d_0p9>;
+
+	qcom,combo-initial-mode = "dp";
+
+	/delete-property/ mode-switch;
+	/delete-property/ orientation-switch;
+
+	status = "okay";
+};
+
+&usb_1_ss2_qmpphy_out {
+	remote-endpoint = <&hdmi_con>;
+};
+
+
+/* MP0 goes to the USB-A port(USB3) and FPC */
+&usb_mp {
+	status = "okay";
+};
+
+&usb_mp_hsphy0 {
+	vdd-supply = <&vreg_l2e_0p8>;
+	vdda12-supply = <&vreg_l3e_1p2>;
+
+	status = "okay";
+};
+
+&usb_mp_hsphy1 {
+	vdd-supply = <&vreg_l2e_0p8>;
+	vdda12-supply = <&vreg_l3e_1p2>;
+
+	status = "okay";
+};
+
+&usb_mp_qmpphy0 {
+	vdda-phy-supply = <&vreg_l3e_1p2>;
+	vdda-pll-supply = <&vreg_l3c_0p8>;
+
+	status = "okay";
+};
+
+&usb_mp_qmpphy1 {
+	vdda-phy-supply = <&vreg_l3e_1p2>;
+	vdda-pll-supply = <&vreg_l3c_0p8>;
+
+	status = "okay";
+};
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..1713ea4ce
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts
@@ -0,0 +1,39 @@
+// SPDX-License-Identifier: BSD-3-Clause
+
+#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";
+	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>;
+		};
+	};
+};
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..1bc49d994
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts
@@ -0,0 +1,29 @@
+// SPDX-License-Identifier: BSD-3-Clause
+
+#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";
+	};
+};
+
+
+
+
-- 
2.43.0


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

* Re: [PATCH v6 1/3] firmware: qcom: scm: Allow QSEECOM on Samsung Galaxy Book4 Edge
  2026-03-22 16:03   ` [PATCH v6 1/3] firmware: qcom: scm: Allow QSEECOM on " Maxim Storetvedt
@ 2026-03-22 18:40     ` Dmitry Baryshkov
  0 siblings, 0 replies; 32+ messages in thread
From: Dmitry Baryshkov @ 2026-03-22 18:40 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, Mar 22, 2026 at 05:03:10PM +0100, Maxim Storetvedt wrote:
> Signed-off-by: Maxim Storetvedt <mstoretv@cern.ch>
> ---
>  drivers/firmware/qcom/qcom_scm.c | 1 +
>  1 file changed, 1 insertion(+)

Missing commit message.

Also, please don't send next iterations as a reply to the previous
series. Always start a new thread.

> 
> diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_scm.c
> index 5c4375a7f..5d3de476c 100644
> --- a/drivers/firmware/qcom/qcom_scm.c
> +++ b/drivers/firmware/qcom/qcom_scm.c
> @@ -2318,6 +2318,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
> 

-- 
With best wishes
Dmitry

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

* Re: [PATCH v6 3/3] arm64: dts: qcom: Add Samsung Galaxy Book4 Edge DTS/DTSI
  2026-03-22 16:03   ` [PATCH v6 3/3] arm64: dts: qcom: Add Samsung Galaxy Book4 Edge DTS/DTSI Maxim Storetvedt
@ 2026-03-23 12:17     ` Konrad Dybcio
  2026-03-25 18:30       ` Maxim Storetvedt
  0 siblings, 1 reply; 32+ messages in thread
From: Konrad Dybcio @ 2026-03-23 12:17 UTC (permalink / raw)
  To: Maxim Storetvedt, andersson, robh, krzk+dt, conor+dt
  Cc: marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel,
	abel.vesa, abel.vesa, johan, konradybcio, kirill

On 3/22/26 5:03 PM, Maxim Storetvedt wrote:
> Adds devicetrees for the 14-inch and 16-inch 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 ongoing patch for the Honor Magicbook Art 14, and its downstream by
> Valentin Manea, which shares device similarities:

[...]

> +	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-names = "default";
> +		pinctrl-0 = <&wcd_default>;

property-n
property-names

in this order, file-wide, please

[...]

> +	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>,
> +				    <&tlmm 125 GPIO_ACTIVE_HIGH>;

You provide 3 orientation-gpios but there's only two ports

[...]

> +	sound {
> +		compatible = "qcom,x1e80100-sndcard";
> +		model = "X1E80100-CRD";

This should reflect the actual machine

> +		audio-routing = "WooferLeft IN", "WSA WSA_SPK1 OUT",
> +				"TweeterLeft IN", "WSA WSA_SPK2 OUT",
> +				"WooferRight IN", "WSA2 WSA_SPK2 OUT",
> +				"TweeterRight IN", "WSA2 WSA_SPK2 OUT",
> +				"IN1_HPHL", "HPHL_OUT",
> +				"IN2_HPHR", "HPHR_OUT",
> +				"AMIC2", "MIC BIAS2",
> +				"VA DMIC0", "MIC BIAS3",
> +				"VA DMIC1", "MIC BIAS3",
> +				"VA DMIC2", "MIC BIAS1",
> +				"VA DMIC3", "MIC BIAS1",
> +				"VA DMIC0", "VA MIC BIAS3",
> +				"VA DMIC1", "VA MIC BIAS3",
> +				"VA DMIC2", "VA MIC BIAS1",
> +				"VA DMIC3", "VA MIC BIAS1",

See:

b49e37de8e70 ("arm64: dts: qcom: x1e80100-crd: Drop duplicate DMIC supplies")


> +				"TX SWR_INPUT1", "ADC2_OUTPUT";
> +
> +		wcd-playback-dai-link {
> +			link-name = "WCD Playback";
> +
> +			cpu {
> +				sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
> +			};
> +
> +			codec {

'co'dec < 'cp'u, please reorder

[...]

> +&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>;
> +		/* Lower power supply is not enoug to work. */
> +		// vddl-supply = <&vreg_l15b_1p8>;

How should we interpret that?

[...]

> +/* usb1 covers left side typec ports */
> +
> +/* back(towards the display) typec port */

You already have these comments near the type-c connector definitions
at the top of the file

[...]

> +/* DP-HDMI bridge connected here? */
> +&usb_1_ss2_qmpphy {
> +	vdda-phy-supply = <&vreg_l2j_1p2>;
> +	vdda-pll-supply = <&vreg_l2d_0p9>;
> +
> +	qcom,combo-initial-mode = "dp";

This was used in some previous version of the QMPPHY-DP-only patchset,
see e.g. x1p42100-lenovo-thinkbook-16.dts and align with that to get
it working again

[...]

> +&panel {
> +	compatible = "samsung,atna40cu07", "samsung,atna33xc20";

I think it'd make sense to move the compatible from 'common' to the
16in DTS then too

> +	enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;

this matches the common definition

> +	power-supply = <&vreg_edp_3p3>;

ditto

> +	no-hpd;

really??

Konrad

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

* Re: [PATCH v6 3/3] arm64: dts: qcom: Add Samsung Galaxy Book4 Edge DTS/DTSI
  2026-03-23 12:17     ` Konrad Dybcio
@ 2026-03-25 18:30       ` Maxim Storetvedt
  2026-03-26 11:33         ` Konrad Dybcio
  0 siblings, 1 reply; 32+ messages in thread
From: Maxim Storetvedt @ 2026-03-25 18:30 UTC (permalink / raw)
  To: Konrad Dybcio, andersson, robh, krzk+dt, conor+dt
  Cc: marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel,
	abel.vesa, abel.vesa, johan, konradybcio, kirill



On 3/23/26 13:17, Konrad Dybcio wrote:
> On 3/22/26 5:03 PM, Maxim Storetvedt wrote:
>> Adds devicetrees for the 14-inch and 16-inch 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 ongoing patch for the Honor Magicbook Art 14, and its downstream by
>> Valentin Manea, which shares device similarities:
> 
> [...]
> 
>> +&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>;
>> +		/* Lower power supply is not enoug to work. */
>> +		// vddl-supply = <&vreg_l15b_1p8>;
> 
> How should we interpret that?
> 

This was in the original patch, but using that same regulator appears to
be enough to also get touchscreen working on the 16" book4e. That said,
it still does not work on the 14". Something to revisit later...

> 
> [...]
> 
>> +&panel {
>> +	compatible = "samsung,atna40cu07", "samsung,atna33xc20";
> 
> I think it'd make sense to move the compatible from 'common' to the
> 16in DTS then too
> 
>> +	enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;
> 
> this matches the common definition
> 
>> +	power-supply = <&vreg_edp_3p3>;
> 
> ditto
> 
>> +	no-hpd;
> 
> really??
> 
One less thing to debug while previously attempting to work around the
"illegal link rate" error, which turned out to be related to eDP 1.4
(similar to the sp11). I've kept it as-is in case other SKUs attempt
booting from this dts, such as the x1e80100 16" (as it might be getting
a black screen using the current x1e84100 16" dts, though this is not
fully tested).


Worth mentioning is that we originally had two separate devicetrees for
the 14" and 16" SKUs, and the dts for the 16" eventually became this
dtsi. More could indeed still be cleaned and likewise moved to what is
now the 16" dts (i.e. for v7).

Cheers,
-Max

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

* Re: [PATCH v6 3/3] arm64: dts: qcom: Add Samsung Galaxy Book4 Edge DTS/DTSI
  2026-03-25 18:30       ` Maxim Storetvedt
@ 2026-03-26 11:33         ` Konrad Dybcio
  2026-03-26 18:30           ` Maxim Storetvedt
  0 siblings, 1 reply; 32+ messages in thread
From: Konrad Dybcio @ 2026-03-26 11:33 UTC (permalink / raw)
  To: Maxim Storetvedt, andersson, robh, krzk+dt, conor+dt
  Cc: marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel,
	abel.vesa, abel.vesa, johan, konradybcio, kirill

On 3/25/26 7:30 PM, Maxim Storetvedt wrote:
> 
> 
> On 3/23/26 13:17, Konrad Dybcio wrote:
>> On 3/22/26 5:03 PM, Maxim Storetvedt wrote:
>>> Adds devicetrees for the 14-inch and 16-inch 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 ongoing patch for the Honor Magicbook Art 14, and its downstream by
>>> Valentin Manea, which shares device similarities:
>>
>> [...]
>>
>>> +&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>;
>>> +		/* Lower power supply is not enoug to work. */
>>> +		// vddl-supply = <&vreg_l15b_1p8>;
>>
>> How should we interpret that?
>>
> 
> This was in the original patch, but using that same regulator appears to
> be enough to also get touchscreen working on the 16" book4e. That said,
> it still does not work on the 14". Something to revisit later...
> 
>>
>> [...]
>>
>>> +&panel {
>>> +	compatible = "samsung,atna40cu07", "samsung,atna33xc20";
>>
>> I think it'd make sense to move the compatible from 'common' to the
>> 16in DTS then too
>>
>>> +	enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;
>>
>> this matches the common definition
>>
>>> +	power-supply = <&vreg_edp_3p3>;
>>
>> ditto
>>
>>> +	no-hpd;
>>
>> really??
>>
> One less thing to debug while previously attempting to work around the
> "illegal link rate" error, which turned out to be related to eDP 1.4
> (similar to the sp11). I've kept it as-is in case other SKUs attempt
> booting from this dts, such as the x1e80100 16" (as it might be getting
> a black screen using the current x1e84100 16" dts, though this is not
> fully tested).

So do the 80100 and 84100-equipped SKUs of the laptop come with different
displays?

Konrad

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

* Re: [PATCH v6 2/3] dt-bindings: arm: Add Samsung Galaxy Book4 Edge
  2026-03-22 16:03   ` [PATCH v6 2/3] dt-bindings: arm: Add " Maxim Storetvedt
@ 2026-03-26 11:44     ` Krzysztof Kozlowski
  2026-03-26 18:40       ` Maxim Storetvedt
  0 siblings, 1 reply; 32+ messages in thread
From: Krzysztof Kozlowski @ 2026-03-26 11:44 UTC (permalink / raw)
  To: Maxim Storetvedt, andersson, robh, krzk+dt, conor+dt
  Cc: marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel,
	abel.vesa, abel.vesa, johan, konradybcio, kirill

On 22/03/2026 17:03, Maxim Storetvedt wrote:
> From: Marcus Glocker <marcus@nazgul.ch>
> 
> Add the Samsung Galaxy Book4 Edge compatibility binding.
> 
> Signed-off-by: Marcus Glocker <marcus@nazgul.ch>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Incomplete DCO. Please read submitting patches about certification you
have to make.

Do not attach (thread) your patchsets to some other threads (unrelated
or older versions). This buries them deep in the mailbox and might
interfere with applying entire sets. See also:
https://elixir.bootlin.com/linux/v6.16-rc2/source/Documentation/process/submitting-patches.rst#L830

Please organize the patch documenting the compatible (DT bindings)
before the patch using that compatible.
See also:
https://elixir.bootlin.com/linux/v6.14-rc6/source/Documentation/devicetree/bindings/submitting-patches.rst#L46

Best regards,
Krzysztof

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

* Re: [PATCH v6 3/3] arm64: dts: qcom: Add Samsung Galaxy Book4 Edge DTS/DTSI
  2026-03-26 11:33         ` Konrad Dybcio
@ 2026-03-26 18:30           ` Maxim Storetvedt
  2026-03-30 10:41             ` Konrad Dybcio
  0 siblings, 1 reply; 32+ messages in thread
From: Maxim Storetvedt @ 2026-03-26 18:30 UTC (permalink / raw)
  To: Konrad Dybcio, andersson, robh, krzk+dt, conor+dt
  Cc: marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel,
	abel.vesa, abel.vesa, johan, konradybcio, kirill



On 3/26/26 12:33, Konrad Dybcio wrote:
> On 3/25/26 7:30 PM, Maxim Storetvedt wrote:
>>
>>
>> On 3/23/26 13:17, Konrad Dybcio wrote:
>>> On 3/22/26 5:03 PM, Maxim Storetvedt wrote:
>>>> Adds devicetrees for the 14-inch and 16-inch 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 ongoing patch for the Honor Magicbook Art 14, and its downstream by
>>>> Valentin Manea, which shares device similarities:
>>>
>>> [...]
>>>
>>>> +&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>;
>>>> +		/* Lower power supply is not enoug to work. */
>>>> +		// vddl-supply = <&vreg_l15b_1p8>;
>>>
>>> How should we interpret that?
>>>
>>
>> This was in the original patch, but using that same regulator appears to
>> be enough to also get touchscreen working on the 16" book4e. That said,
>> it still does not work on the 14". Something to revisit later...
>>
>>>
>>> [...]
>>>
>>>> +&panel {
>>>> +	compatible = "samsung,atna40cu07", "samsung,atna33xc20";
>>>
>>> I think it'd make sense to move the compatible from 'common' to the
>>> 16in DTS then too
>>>
>>>> +	enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;
>>>
>>> this matches the common definition
>>>
>>>> +	power-supply = <&vreg_edp_3p3>;
>>>
>>> ditto
>>>
>>>> +	no-hpd;
>>>
>>> really??
>>>
>> One less thing to debug while previously attempting to work around the
>> "illegal link rate" error, which turned out to be related to eDP 1.4
>> (similar to the sp11). I've kept it as-is in case other SKUs attempt
>> booting from this dts, such as the x1e80100 16" (as it might be getting
>> a black screen using the current x1e84100 16" dts, though this is not
>> fully tested).
> 
> So do the 80100 and 84100-equipped SKUs of the laptop come with different
> displays?
> 
> Konrad

So far assumed both 16" variants to be fairly similar, though one
valiant 16" 80100 user over in the debug thread did try to boot via the
84100 dts, with no success. Instead having the screen go dark after the
first post-tux kernel prints.

This was strapped together via WSL though, so could be there was
something else at fault, but strange it didn't at least fall back to a
visible initramfs shell.

Cheers,
-Max

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

* Re: [PATCH v6 2/3] dt-bindings: arm: Add Samsung Galaxy Book4 Edge
  2026-03-26 11:44     ` Krzysztof Kozlowski
@ 2026-03-26 18:40       ` Maxim Storetvedt
  0 siblings, 0 replies; 32+ messages in thread
From: Maxim Storetvedt @ 2026-03-26 18:40 UTC (permalink / raw)
  To: Krzysztof Kozlowski, andersson, robh, krzk+dt, conor+dt
  Cc: marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel,
	abel.vesa, abel.vesa, johan, konradybcio, kirill



On 3/26/26 12:44, Krzysztof Kozlowski wrote:
> On 22/03/2026 17:03, Maxim Storetvedt wrote:
>> From: Marcus Glocker <marcus@nazgul.ch>
>>
>> Add the Samsung Galaxy Book4 Edge compatibility binding.
>>
>> Signed-off-by: Marcus Glocker <marcus@nazgul.ch>
>> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> 
> Incomplete DCO. Please read submitting patches about certification you
> have to make.
> 
> Do not attach (thread) your patchsets to some other threads (unrelated
> or older versions). This buries them deep in the mailbox and might
> interfere with applying entire sets. See also:
> https://elixir.bootlin.com/linux/v6.16-rc2/source/Documentation/process/submitting-patches.rst#L830
> 
> Please organize the patch documenting the compatible (DT bindings)
> before the patch using that compatible.
> See also:
> https://elixir.bootlin.com/linux/v6.14-rc6/source/Documentation/devicetree/bindings/submitting-patches.rst#L46
> 
> Best regards,
> Krzysztof

Duly noted. There's already plenty of useful info/feedback added here,
so appreciate the responses despite the entangled thread. To be
continued in next (and hopefully correctly threaded) patch revision.

Cheers,
-Max

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

* Re: [PATCH v6 3/3] arm64: dts: qcom: Add Samsung Galaxy Book4 Edge DTS/DTSI
  2026-03-26 18:30           ` Maxim Storetvedt
@ 2026-03-30 10:41             ` Konrad Dybcio
  2026-03-30 10:54               ` Dmitry Baryshkov
  2026-03-31 16:34               ` Maxim Storetvedt
  0 siblings, 2 replies; 32+ messages in thread
From: Konrad Dybcio @ 2026-03-30 10:41 UTC (permalink / raw)
  To: Maxim Storetvedt, andersson, robh, krzk+dt, conor+dt
  Cc: marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel,
	abel.vesa, abel.vesa, johan, konradybcio, kirill

On 3/26/26 7:30 PM, Maxim Storetvedt wrote:
> 
> 
> On 3/26/26 12:33, Konrad Dybcio wrote:
>> On 3/25/26 7:30 PM, Maxim Storetvedt wrote:
>>>
>>>
>>> On 3/23/26 13:17, Konrad Dybcio wrote:
>>>> On 3/22/26 5:03 PM, Maxim Storetvedt wrote:
>>>>> Adds devicetrees for the 14-inch and 16-inch 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 ongoing patch for the Honor Magicbook Art 14, and its downstream by
>>>>> Valentin Manea, which shares device similarities:
>>>>
>>>> [...]
>>>>
>>>>> +&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>;
>>>>> +		/* Lower power supply is not enoug to work. */
>>>>> +		// vddl-supply = <&vreg_l15b_1p8>;
>>>>
>>>> How should we interpret that?
>>>>
>>>
>>> This was in the original patch, but using that same regulator appears to
>>> be enough to also get touchscreen working on the 16" book4e. That said,
>>> it still does not work on the 14". Something to revisit later...
>>>
>>>>
>>>> [...]
>>>>
>>>>> +&panel {
>>>>> +	compatible = "samsung,atna40cu07", "samsung,atna33xc20";
>>>>
>>>> I think it'd make sense to move the compatible from 'common' to the
>>>> 16in DTS then too
>>>>
>>>>> +	enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;
>>>>
>>>> this matches the common definition
>>>>
>>>>> +	power-supply = <&vreg_edp_3p3>;
>>>>
>>>> ditto
>>>>
>>>>> +	no-hpd;
>>>>
>>>> really??
>>>>
>>> One less thing to debug while previously attempting to work around the
>>> "illegal link rate" error, which turned out to be related to eDP 1.4
>>> (similar to the sp11). I've kept it as-is in case other SKUs attempt
>>> booting from this dts, such as the x1e80100 16" (as it might be getting
>>> a black screen using the current x1e84100 16" dts, though this is not
>>> fully tested).
>>
>> So do the 80100 and 84100-equipped SKUs of the laptop come with different
>> displays?
>>
>> Konrad
> 
> So far assumed both 16" variants to be fairly similar, though one
> valiant 16" 80100 user over in the debug thread did try to boot via the
> 84100 dts, with no success. Instead having the screen go dark after the
> first post-tux kernel prints.

Does switching to the generic edp-panel compatible (which will parse the
EDID and try not to be overly smart about it) help here?

> This was strapped together via WSL though, so could be there was
> something else at fault, but strange it didn't at least fall back to a
> visible initramfs shell.

You mean the kernel had been compiled via WSL? That shouldn't be a problem..

Konrad

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

* Re: [PATCH v6 3/3] arm64: dts: qcom: Add Samsung Galaxy Book4 Edge DTS/DTSI
  2026-03-30 10:41             ` Konrad Dybcio
@ 2026-03-30 10:54               ` Dmitry Baryshkov
  2026-03-31 16:34               ` Maxim Storetvedt
  1 sibling, 0 replies; 32+ messages in thread
From: Dmitry Baryshkov @ 2026-03-30 10:54 UTC (permalink / raw)
  To: Konrad Dybcio
  Cc: Maxim Storetvedt, andersson, robh, krzk+dt, conor+dt, marcus,
	marijn.suijten, linux-arm-msm, devicetree, linux-kernel,
	abel.vesa, abel.vesa, johan, konradybcio, kirill

On Mon, Mar 30, 2026 at 12:41:57PM +0200, Konrad Dybcio wrote:
> On 3/26/26 7:30 PM, Maxim Storetvedt wrote:
> > 
> > 
> > On 3/26/26 12:33, Konrad Dybcio wrote:
> >> On 3/25/26 7:30 PM, Maxim Storetvedt wrote:
> >>>
> >>>
> >>> On 3/23/26 13:17, Konrad Dybcio wrote:
> >>>> On 3/22/26 5:03 PM, Maxim Storetvedt wrote:
> >>>>> Adds devicetrees for the 14-inch and 16-inch 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 ongoing patch for the Honor Magicbook Art 14, and its downstream by
> >>>>> Valentin Manea, which shares device similarities:
> >>>>
> >>>> [...]
> >>>>
> >>>>> +&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>;
> >>>>> +		/* Lower power supply is not enoug to work. */
> >>>>> +		// vddl-supply = <&vreg_l15b_1p8>;
> >>>>
> >>>> How should we interpret that?
> >>>>
> >>>
> >>> This was in the original patch, but using that same regulator appears to
> >>> be enough to also get touchscreen working on the 16" book4e. That said,
> >>> it still does not work on the 14". Something to revisit later...
> >>>
> >>>>
> >>>> [...]
> >>>>
> >>>>> +&panel {
> >>>>> +	compatible = "samsung,atna40cu07", "samsung,atna33xc20";
> >>>>
> >>>> I think it'd make sense to move the compatible from 'common' to the
> >>>> 16in DTS then too
> >>>>
> >>>>> +	enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;
> >>>>
> >>>> this matches the common definition
> >>>>
> >>>>> +	power-supply = <&vreg_edp_3p3>;
> >>>>
> >>>> ditto
> >>>>
> >>>>> +	no-hpd;
> >>>>
> >>>> really??
> >>>>
> >>> One less thing to debug while previously attempting to work around the
> >>> "illegal link rate" error, which turned out to be related to eDP 1.4
> >>> (similar to the sp11). I've kept it as-is in case other SKUs attempt
> >>> booting from this dts, such as the x1e80100 16" (as it might be getting
> >>> a black screen using the current x1e84100 16" dts, though this is not
> >>> fully tested).
> >>
> >> So do the 80100 and 84100-equipped SKUs of the laptop come with different
> >> displays?
> >>
> >> Konrad
> > 
> > So far assumed both 16" variants to be fairly similar, though one
> > valiant 16" 80100 user over in the debug thread did try to boot via the
> > 84100 dts, with no success. Instead having the screen go dark after the
> > first post-tux kernel prints.
> 
> Does switching to the generic edp-panel compatible (which will parse the
> EDID and try not to be overly smart about it) help here?

I think it was not possible because those panels need special treatment.

> 
> > This was strapped together via WSL though, so could be there was
> > something else at fault, but strange it didn't at least fall back to a
> > visible initramfs shell.
> 
> You mean the kernel had been compiled via WSL? That shouldn't be a problem..
> 
> Konrad

-- 
With best wishes
Dmitry

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

* Re: [PATCH v6 3/3] arm64: dts: qcom: Add Samsung Galaxy Book4 Edge DTS/DTSI
  2026-03-30 10:41             ` Konrad Dybcio
  2026-03-30 10:54               ` Dmitry Baryshkov
@ 2026-03-31 16:34               ` Maxim Storetvedt
  2026-04-07 11:55                 ` Konrad Dybcio
  1 sibling, 1 reply; 32+ messages in thread
From: Maxim Storetvedt @ 2026-03-31 16:34 UTC (permalink / raw)
  To: Konrad Dybcio, andersson, robh, krzk+dt, conor+dt
  Cc: marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel,
	abel.vesa, abel.vesa, johan, konradybcio, kirill



On 3/30/26 12:41, Konrad Dybcio wrote:
> On 3/26/26 7:30 PM, Maxim Storetvedt wrote:
>>
>>
>> On 3/26/26 12:33, Konrad Dybcio wrote:
>>> On 3/25/26 7:30 PM, Maxim Storetvedt wrote:
>>>>
>>>>
>>>> On 3/23/26 13:17, Konrad Dybcio wrote:
>>>>> On 3/22/26 5:03 PM, Maxim Storetvedt wrote:
>>>>>> Adds devicetrees for the 14-inch and 16-inch 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 ongoing patch for the Honor Magicbook Art 14, and its downstream by
>>>>>> Valentin Manea, which shares device similarities:
>>>>>
>>>>> [...]
>>>>>
>>>>>> +&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>;
>>>>>> +		/* Lower power supply is not enoug to work. */
>>>>>> +		// vddl-supply = <&vreg_l15b_1p8>;
>>>>>
>>>>> How should we interpret that?
>>>>>
>>>>
>>>> This was in the original patch, but using that same regulator appears to
>>>> be enough to also get touchscreen working on the 16" book4e. That said,
>>>> it still does not work on the 14". Something to revisit later...
>>>>
>>>>>
>>>>> [...]
>>>>>
>>>>>> +&panel {
>>>>>> +	compatible = "samsung,atna40cu07", "samsung,atna33xc20";
>>>>>
>>>>> I think it'd make sense to move the compatible from 'common' to the
>>>>> 16in DTS then too
>>>>>
>>>>>> +	enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;
>>>>>
>>>>> this matches the common definition
>>>>>
>>>>>> +	power-supply = <&vreg_edp_3p3>;
>>>>>
>>>>> ditto
>>>>>
>>>>>> +	no-hpd;
>>>>>
>>>>> really??
>>>>>
>>>> One less thing to debug while previously attempting to work around the
>>>> "illegal link rate" error, which turned out to be related to eDP 1.4
>>>> (similar to the sp11). I've kept it as-is in case other SKUs attempt
>>>> booting from this dts, such as the x1e80100 16" (as it might be getting
>>>> a black screen using the current x1e84100 16" dts, though this is not
>>>> fully tested).
>>>
>>> So do the 80100 and 84100-equipped SKUs of the laptop come with different
>>> displays?
>>>
>>> Konrad
>>
>> So far assumed both 16" variants to be fairly similar, though one
>> valiant 16" 80100 user over in the debug thread did try to boot via the
>> 84100 dts, with no success. Instead having the screen go dark after the
>> first post-tux kernel prints.
> 
> Does switching to the generic edp-panel compatible (which will parse the
> EDID and try not to be overly smart about it) help here?
> 
>> This was strapped together via WSL though, so could be there was
>> something else at fault, but strange it didn't at least fall back to a
>> visible initramfs shell.
> 
> You mean the kernel had been compiled via WSL? That shouldn't be a problem..
> 
> Konrad

Kernel was one shared by me in advance (same I've been using as a
daily), so it should be OK, but there was an uphill battle in creating
the modified system image afaik (that would boot).

Can only speculate until there is another go at this, but could likewise
be something completely unrelated that's simple to fix, e.g. older mesa
in image, but final attempt at boot used a dts with gpu node enabled.

Cheers,
-Max

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

* Re: [PATCH v6 3/3] arm64: dts: qcom: Add Samsung Galaxy Book4 Edge DTS/DTSI
  2026-03-31 16:34               ` Maxim Storetvedt
@ 2026-04-07 11:55                 ` Konrad Dybcio
  0 siblings, 0 replies; 32+ messages in thread
From: Konrad Dybcio @ 2026-04-07 11:55 UTC (permalink / raw)
  To: Maxim Storetvedt, andersson, robh, krzk+dt, conor+dt
  Cc: marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel,
	abel.vesa, abel.vesa, johan, konradybcio, kirill

On 3/31/26 6:34 PM, Maxim Storetvedt wrote:
> 
> 
> On 3/30/26 12:41, Konrad Dybcio wrote:
>> On 3/26/26 7:30 PM, Maxim Storetvedt wrote:
>>>
>>>
>>> On 3/26/26 12:33, Konrad Dybcio wrote:
>>>> On 3/25/26 7:30 PM, Maxim Storetvedt wrote:
>>>>>
>>>>>
>>>>> On 3/23/26 13:17, Konrad Dybcio wrote:
>>>>>> On 3/22/26 5:03 PM, Maxim Storetvedt wrote:
>>>>>>> Adds devicetrees for the 14-inch and 16-inch 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 ongoing patch for the Honor Magicbook Art 14, and its downstream by
>>>>>>> Valentin Manea, which shares device similarities:
>>>>>>
>>>>>> [...]
>>>>>>
>>>>>>> +&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>;
>>>>>>> +		/* Lower power supply is not enoug to work. */
>>>>>>> +		// vddl-supply = <&vreg_l15b_1p8>;
>>>>>>
>>>>>> How should we interpret that?
>>>>>>
>>>>>
>>>>> This was in the original patch, but using that same regulator appears to
>>>>> be enough to also get touchscreen working on the 16" book4e. That said,
>>>>> it still does not work on the 14". Something to revisit later...
>>>>>
>>>>>>
>>>>>> [...]
>>>>>>
>>>>>>> +&panel {
>>>>>>> +	compatible = "samsung,atna40cu07", "samsung,atna33xc20";
>>>>>>
>>>>>> I think it'd make sense to move the compatible from 'common' to the
>>>>>> 16in DTS then too
>>>>>>
>>>>>>> +	enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;
>>>>>>
>>>>>> this matches the common definition
>>>>>>
>>>>>>> +	power-supply = <&vreg_edp_3p3>;
>>>>>>
>>>>>> ditto
>>>>>>
>>>>>>> +	no-hpd;
>>>>>>
>>>>>> really??
>>>>>>
>>>>> One less thing to debug while previously attempting to work around the
>>>>> "illegal link rate" error, which turned out to be related to eDP 1.4
>>>>> (similar to the sp11). I've kept it as-is in case other SKUs attempt
>>>>> booting from this dts, such as the x1e80100 16" (as it might be getting
>>>>> a black screen using the current x1e84100 16" dts, though this is not
>>>>> fully tested).
>>>>
>>>> So do the 80100 and 84100-equipped SKUs of the laptop come with different
>>>> displays?
>>>>
>>>> Konrad
>>>
>>> So far assumed both 16" variants to be fairly similar, though one
>>> valiant 16" 80100 user over in the debug thread did try to boot via the
>>> 84100 dts, with no success. Instead having the screen go dark after the
>>> first post-tux kernel prints.
>>
>> Does switching to the generic edp-panel compatible (which will parse the
>> EDID and try not to be overly smart about it) help here?
>>
>>> This was strapped together via WSL though, so could be there was
>>> something else at fault, but strange it didn't at least fall back to a
>>> visible initramfs shell.
>>
>> You mean the kernel had been compiled via WSL? That shouldn't be a problem..
>>
>> Konrad
> 
> Kernel was one shared by me in advance (same I've been using as a
> daily), so it should be OK, but there was an uphill battle in creating
> the modified system image afaik (that would boot).
> 
> Can only speculate until there is another go at this, but could likewise
> be something completely unrelated that's simple to fix, e.g. older mesa
> in image, but final attempt at boot used a dts with gpu node enabled.

FWIW the GPU and display engine are completely disjoint, so mesa itself
shouldn't be an issue (unless something was caught in a restart loop due
to poor error handling.. I've seen that N years ago but have no clue
that would still be a problem nowadays)

Konrad

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

end of thread, other threads:[~2026-04-07 11:55 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-17 20:32 [PATCH v5 0/6] Add initial DTS for Samsung Galaxy Book4 Edge Marcus Glocker
2024-08-17 20:33 ` [PATCH v5 1/6] dt-bindings: crypto: Add X1E80100 Crypto Engine Marcus Glocker
2024-08-17 20:34 ` [PATCH v5 2/6] dt-bindings: phy: Add X1E80100 UFS Marcus Glocker
2024-08-17 20:36 ` [PATCH v5 3/6] dt-bindings: ufs: " Marcus Glocker
2024-08-18  6:41   ` Krzysztof Kozlowski
2024-08-17 20:38 ` [PATCH v5 4/6] arm64: dts: qcom: Add UFS node Marcus Glocker
2024-08-30  0:05   ` Konrad Dybcio
2024-08-30 17:25     ` Marcus Glocker
2024-11-09 23:31       ` Daniel Gomez
2025-01-02 21:38         ` Wesley Cheng
2025-01-02 23:17           ` Marcus Glocker
2026-03-07 16:01             ` Maxim Storetvedt
2026-03-08 20:35               ` Marcus Glocker
2026-03-19 11:31                 ` Konrad Dybcio
2024-08-30  7:02   ` Johan Hovold
2024-08-17 20:40 ` [PATCH v5 5/6] dt-bindings: arm: Add Samsung Galaxy Book4 Edge Marcus Glocker
2024-08-17 20:41 ` [PATCH v5 6/6] arm64: dts: qcom: Add Samsung Galaxy Book4 Edge DTS Marcus Glocker
2026-03-22 16:03 ` [PATCH v6 0/3] Add initial DTS for Samsung Galaxy Book4 Edge Maxim Storetvedt
2026-03-22 16:03   ` [PATCH v6 1/3] firmware: qcom: scm: Allow QSEECOM on " Maxim Storetvedt
2026-03-22 18:40     ` Dmitry Baryshkov
2026-03-22 16:03   ` [PATCH v6 2/3] dt-bindings: arm: Add " Maxim Storetvedt
2026-03-26 11:44     ` Krzysztof Kozlowski
2026-03-26 18:40       ` Maxim Storetvedt
2026-03-22 16:03   ` [PATCH v6 3/3] arm64: dts: qcom: Add Samsung Galaxy Book4 Edge DTS/DTSI Maxim Storetvedt
2026-03-23 12:17     ` Konrad Dybcio
2026-03-25 18:30       ` Maxim Storetvedt
2026-03-26 11:33         ` Konrad Dybcio
2026-03-26 18:30           ` Maxim Storetvedt
2026-03-30 10:41             ` Konrad Dybcio
2026-03-30 10:54               ` Dmitry Baryshkov
2026-03-31 16:34               ` Maxim Storetvedt
2026-04-07 11:55                 ` Konrad Dybcio

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