* [PATCH v7 0/3] Add initial DTS for Samsung Galaxy Book4 Edge
@ 2026-09-20 18:41 Maxim Storetvedt
2026-09-20 18:41 ` [PATCH v7 1/3] dt-bindings: arm: Add " Maxim Storetvedt
` (2 more replies)
0 siblings, 3 replies; 13+ messages in thread
From: Maxim Storetvedt @ 2026-09-20 18:41 UTC (permalink / raw)
To: andersson, robh, krzk+dt, conor+dt
Cc: marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel,
abel.vesa, abel.vesa, johan, konradybcio, kirill
This patch introduces devicetrees to support the hamoa Samsung Galaxy Book4
Edge, and includes the X1E80100 14-inch SKU and X1E84100 16-inch SKU.
It continues the earlier patch series started by Marcus Glocker, and the
previously submitted v6 [1].
Supported:
- Keyboard
- Touchpad
- USB type-c
- Display
- HDMI
- WiFi
- Bluetooth
- ADSP / CDSP
- GPU
- UFS
- Suspend
Other features (such as the camera and touchscreen) are also confirmed working,
but for now need multiple patches/changes out of scope for this submission.
These are tracked downstream in the meantime [2].
Changed from v6:
- Updated to match current linux-next
- Use 14 inch SKU as base for the dtsi
Changed from v5:
- Reworked DTS/DTSI for both 14- & 16-inch SKUs
- Added Galaxy Book4 Edge to QSEECOM
- Removed UFS node from the patch
Changed from v4:
* Fix previously missed commits:
- Improved commit messages.
- Added missing clock line for ufs.
- Removed invalid microamp lines for ufs.
Changed from v3:
- Improved commit messages.
- Added missing clock line for ufs.
- Removed invalid microamp lines for ufs.
Changed from v2:
- Squash Makefile patch to new DTS file patch.
Changed from v1:
- Provide the patch in the expected format.
- Added missing bindings.
- Removed sound node.
- Changed regulator syntax to be consistent.
- Changed touchscreen node comment, and removed false pin definition.
- Rename ufshc@ to ufs@.
[1] https://lore.kernel.org/all/20260322160317.424797-1-mstoretv@cern.ch/
[2] https://github.com/zensanp/linux-book4-edge/
Maxim Storetvedt (3):
dt-bindings: arm: Add Samsung Galaxy Book4 Edge
firmware: qcom: scm: Allow QSEECOM on the Samsung Galaxy Book4 Edge
arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees
.../devicetree/bindings/arm/qcom.yaml | 7 +
arch/arm64/boot/dts/qcom/Makefile | 2 +
.../qcom/x1-samsung-galaxy-book4-edge.dtsi | 1537 +++++++++++++++++
.../x1e80100-samsung-galaxy-book4-edge-14.dts | 28 +
.../x1e84100-samsung-galaxy-book4-edge-16.dts | 31 +
drivers/firmware/qcom/qcom_scm.c | 1 +
6 files changed, 1606 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts
create mode 100644 arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts
base-commit: 3f2425f5b5bbbdd991ca9cdfd5502e68d8895998
--
2.43.0
^ permalink raw reply [flat|nested] 13+ messages in thread* [PATCH v7 1/3] dt-bindings: arm: Add Samsung Galaxy Book4 Edge 2026-09-20 18:41 [PATCH v7 0/3] Add initial DTS for Samsung Galaxy Book4 Edge Maxim Storetvedt @ 2026-09-20 18:41 ` Maxim Storetvedt 2026-09-24 13:06 ` Krzysztof Kozlowski 2026-09-20 18:41 ` [PATCH v7 2/3] firmware: qcom: scm: Allow QSEECOM on the " Maxim Storetvedt 2026-09-20 18:41 ` [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees Maxim Storetvedt 2 siblings, 1 reply; 13+ messages in thread From: Maxim Storetvedt @ 2026-09-20 18:41 UTC (permalink / raw) To: andersson, robh, krzk+dt, conor+dt Cc: marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel, abel.vesa, abel.vesa, johan, konradybcio, kirill Add the Samsung Galaxy Book4 Edge compatibility bindings Signed-off-by: Maxim Storetvedt <mstoretv@cern.ch> --- Documentation/devicetree/bindings/arm/qcom.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml index cf9d940f7..439ae9778 100644 --- a/Documentation/devicetree/bindings/arm/qcom.yaml +++ b/Documentation/devicetree/bindings/arm/qcom.yaml @@ -1226,6 +1226,13 @@ properties: - qcom,x1e80100-qcp - const: qcom,x1e80100 + - items: + - enum: + - samsung,galaxy-book4-edge-14 + - samsung,galaxy-book4-edge-16 + - const: samsung,galaxy-book4-edge + - const: qcom,x1e80100 + - items: - enum: - qcom,hamoa-iot-evk -- 2.43.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v7 1/3] dt-bindings: arm: Add Samsung Galaxy Book4 Edge 2026-09-20 18:41 ` [PATCH v7 1/3] dt-bindings: arm: Add " Maxim Storetvedt @ 2026-09-24 13:06 ` Krzysztof Kozlowski 0 siblings, 0 replies; 13+ messages in thread From: Krzysztof Kozlowski @ 2026-09-24 13:06 UTC (permalink / raw) To: Maxim Storetvedt Cc: andersson, robh, krzk+dt, conor+dt, marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel, abel.vesa, abel.vesa, johan, konradybcio, kirill On Sun, Sep 20, 2026 at 08:41:02PM +0200, Maxim Storetvedt wrote: > Add the Samsung Galaxy Book4 Edge compatibility bindings > > Signed-off-by: Maxim Storetvedt <mstoretv@cern.ch> > --- <form letter> This is a friendly reminder during the review process. It looks like you received a tag and forgot to add it. If you do not know the process, here is a short explanation: Please add Acked-by/Reviewed-by/Tested-by tags when posting new versions of patchset, under or above your Signed-off-by tag, unless patch changed significantly (e.g. new properties added to the DT bindings). Tag is "received", when provided in a message replied to you on the mailing list. Tools like b4 can help here. However, there's no need to repost patches *only* to add the tags. The upstream maintainer will do that for tags received on the version they apply. Please read: https://elixir.bootlin.com/linux/v6.12-rc3/source/Documentation/process/submitting-patches.rst#L577 If a tag was not added on purpose, please state in the patch changelog or cover letter why and what changed. </form letter> Best regards, Krzysztof ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v7 2/3] firmware: qcom: scm: Allow QSEECOM on the Samsung Galaxy Book4 Edge 2026-09-20 18:41 [PATCH v7 0/3] Add initial DTS for Samsung Galaxy Book4 Edge Maxim Storetvedt 2026-09-20 18:41 ` [PATCH v7 1/3] dt-bindings: arm: Add " Maxim Storetvedt @ 2026-09-20 18:41 ` Maxim Storetvedt 2026-09-20 18:41 ` [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees Maxim Storetvedt 2 siblings, 0 replies; 13+ messages in thread From: Maxim Storetvedt @ 2026-09-20 18:41 UTC (permalink / raw) To: andersson, robh, krzk+dt, conor+dt Cc: marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel, abel.vesa, abel.vesa, johan, konradybcio, kirill Required for EFI variable access on this device Signed-off-by: Maxim Storetvedt <mstoretv@cern.ch> --- drivers/firmware/qcom/qcom_scm.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_scm.c index df20773dd..ddb2f5d1f 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -2253,6 +2253,7 @@ static const struct of_device_id qcom_scm_qseecom_allowlist[] __maybe_unused = { { .compatible = "qcom,x1e80100-crd" }, { .compatible = "qcom,x1e80100-qcp" }, { .compatible = "qcom,x1p42100-crd" }, + { .compatible = "samsung,galaxy-book4-edge" }, { } }; -- 2.43.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees 2026-09-20 18:41 [PATCH v7 0/3] Add initial DTS for Samsung Galaxy Book4 Edge Maxim Storetvedt 2026-09-20 18:41 ` [PATCH v7 1/3] dt-bindings: arm: Add " Maxim Storetvedt 2026-09-20 18:41 ` [PATCH v7 2/3] firmware: qcom: scm: Allow QSEECOM on the " Maxim Storetvedt @ 2026-09-20 18:41 ` Maxim Storetvedt 2026-09-20 18:54 ` sashiko-bot ` (2 more replies) 2 siblings, 3 replies; 13+ messages in thread From: Maxim Storetvedt @ 2026-09-20 18:41 UTC (permalink / raw) To: andersson, robh, krzk+dt, conor+dt Cc: marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel, abel.vesa, abel.vesa, johan, konradybcio, kirill Adds devicetrees for the 14-inch and 16-inch hamoa SKUs of the Samsung Galaxy Book4 Edge. These use a common dtsi derived from nodes that were able to work on Linux from the initial Galaxy Book4 Edge DTS by Marcus: Link: https://lore.kernel.org/all/p3mhtj2rp6y2ezuwpd2gu7dwx5cbckfu4s4pazcudi4j2wogtr@4yecb2bkeyms/ combined with the patch series the Honor Magicbook Art 14, which shares device similarities: Link: https://lore.kernel.org/all/20260629154812.9066-1-mail@etehtsea.me/ as well as a few more adjustments on top of that again to get additional features working. Special thanks to Jesse Ahn for helping expand on what would eventually become this dtsi. Based-on-a-patch-by: Marcus Glocker <marcus@nazgul.ch> Based-on-a-patch-by: Kirill A. Korinsky <kirill@korins.ky> Signed-off-by: Maxim Storetvedt <mstoretv@cern.ch> --- arch/arm64/boot/dts/qcom/Makefile | 2 + .../qcom/x1-samsung-galaxy-book4-edge.dtsi | 1537 +++++++++++++++++ .../x1e80100-samsung-galaxy-book4-edge-14.dts | 28 + .../x1e84100-samsung-galaxy-book4-edge-16.dts | 31 + 4 files changed, 1598 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts create mode 100644 arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile index 5c19f945c..d8273f86f 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -498,3 +498,5 @@ x1p64100-microsoft-denali-el2-dtbs := x1p64100-microsoft-denali.dtb x1-el2.dtbo dtb-$(CONFIG_ARCH_QCOM) += x1p64100-microsoft-denali.dtb x1p64100-microsoft-denali-el2.dtb x1p42100-microsoft-sp12in-el2-dtbs := x1p42100-microsoft-sp12in.dtb x1-el2.dtbo dtb-$(CONFIG_ARCH_QCOM) += x1p42100-microsoft-sp12in.dtb x1p42100-microsoft-sp12in-el2.dtb +dtb-$(CONFIG_ARCH_QCOM) += x1e80100-samsung-galaxy-book4-edge-14.dtb +dtb-$(CONFIG_ARCH_QCOM) += x1e84100-samsung-galaxy-book4-edge-16.dtb diff --git a/arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi b/arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi new file mode 100644 index 000000000..51ec68bba --- /dev/null +++ b/arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi @@ -0,0 +1,1537 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2025 Kirill A. Korinsky <kirill@korins.ky> + * Copyright (c) 2025 Valentin Manea <valentin.manea@mrs.ro> + */ + +/dts-v1/; + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/gpio-keys.h> +#include <dt-bindings/input/input.h> +#include <dt-bindings/pinctrl/qcom,pmic-gpio.h> +#include <dt-bindings/regulator/qcom,rpmh-regulator.h> + +#include "hamoa.dtsi" +#include "hamoa-pmics.dtsi" + +/ { + model = "Samsung Galaxy Book4 Edge"; + compatible = "samsung,galaxy-book4-edge", "qcom,x1e80100"; + chassis-type = "laptop"; + + aliases { + serial0 = &uart21; + serial1 = &uart14; + }; + + wcd938x: audio-codec { + compatible = "qcom,wcd9385-codec"; + + pinctrl-0 = <&wcd_default>; + pinctrl-names = "default"; + + qcom,micbias1-microvolt = <1800000>; + qcom,micbias2-microvolt = <1800000>; + qcom,micbias3-microvolt = <1800000>; + qcom,micbias4-microvolt = <1800000>; + qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>; + qcom,mbhc-headset-vthreshold-microvolt = <1700000>; + qcom,mbhc-headphone-vthreshold-microvolt = <50000>; + qcom,rx-device = <&wcd_rx>; + qcom,tx-device = <&wcd_tx>; + + reset-gpios = <&tlmm 191 GPIO_ACTIVE_LOW>; + + vdd-buck-supply = <&vreg_l15b_1p8>; + vdd-rxtx-supply = <&vreg_l15b_1p8>; + vdd-io-supply = <&vreg_l15b_1p8>; + vdd-mic-bias-supply = <&vreg_bob1>; + + #sound-dai-cells = <1>; + }; + + gpio-keys { + compatible = "gpio-keys"; + + pinctrl-0 = <&hall_int_n_default>; + pinctrl-names = "default"; + + switch-lid { + gpios = <&tlmm 92 GPIO_ACTIVE_LOW>; + linux,input-type = <EV_SW>; + linux,code = <SW_LID>; + wakeup-source; + wakeup-event-action = <EV_ACT_DEASSERTED>; + }; + }; + + hdmi-bridge { + compatible = "realtek,rtd2171"; + + pinctrl-0 = <&hdmi_hpd_default>; + pinctrl-names = "default"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + hdmi_bridge_dp_in: endpoint { + remote-endpoint = <&usb_1_ss2_qmpphy_out_dp>; + }; + }; + + port@1 { + reg = <1>; + + hdmi_bridge_tmds_out: endpoint { + remote-endpoint = <&hdmi_con>; + }; + }; + }; + }; + + hdmi-connector { + compatible = "hdmi-connector"; + type = "a"; + + port { + hdmi_con: endpoint { + remote-endpoint = <&hdmi_bridge_tmds_out>; + }; + }; + }; + + pmic-glink { + compatible = "qcom,x1e80100-pmic-glink", + "qcom,pmic-glink"; + #address-cells = <1>; + #size-cells = <0>; + orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>, + <&tlmm 123 GPIO_ACTIVE_HIGH>; + + /* Left-side rear port */ + connector@0 { + compatible = "usb-c-connector"; + reg = <0>; + power-role = "dual"; + data-role = "dual"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + pmic_glink_ss0_hs_in: endpoint { + remote-endpoint = <&usb_1_ss0_dwc3_hs>; + }; + }; + + port@1 { + reg = <1>; + + pmic_glink_ss0_ss_in: endpoint { + remote-endpoint = <&usb_1_ss0_qmpphy_out>; + }; + }; + + port@2 { + reg = <2>; + + pmic_glink_ss0_sbu: endpoint { + remote-endpoint = <&usb_1_ss0_sbu_mux>; + }; + }; + }; + }; + + /* Left-side front port */ + connector@1 { + compatible = "usb-c-connector"; + reg = <1>; + power-role = "dual"; + data-role = "dual"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + pmic_glink_ss1_hs_in: endpoint { + remote-endpoint = <&usb_1_ss1_dwc3_hs>; + }; + }; + + port@1 { + reg = <1>; + + pmic_glink_ss1_ss_in: endpoint { + remote-endpoint = <&usb_1_ss1_qmpphy_out>; + }; + }; + + port@2 { + reg = <2>; + + pmic_glink_ss1_sbu: endpoint { + remote-endpoint = <&usb_1_ss1_sbu_mux>; + }; + }; + }; + }; + }; + + reserved-memory { + linux,cma { + compatible = "shared-dma-pool"; + size = <0x0 0x8000000>; + reusable; + linux,cma-default; + }; + }; + + sound { + compatible = "qcom,x1e80100-sndcard"; + model = "X1E80100-GalaxyBook4Edge"; + audio-routing = "WooferLeft IN", "WSA WSA_SPK1 OUT", + "TweeterLeft IN", "WSA WSA_SPK2 OUT", + "WooferRight IN", "WSA2 WSA_SPK2 OUT", + "TweeterRight IN", "WSA2 WSA_SPK2 OUT", + "IN1_HPHL", "HPHL_OUT", + "IN2_HPHR", "HPHR_OUT", + "AMIC2", "MIC BIAS2", + "VA DMIC0", "MIC BIAS3", + "VA DMIC1", "MIC BIAS3", + "VA DMIC2", "MIC BIAS1", + "VA DMIC3", "MIC BIAS1", + "TX SWR_INPUT1", "ADC2_OUTPUT"; + + wcd-playback-dai-link { + link-name = "WCD Playback"; + + codec { + sound-dai = <&wcd938x 0>, <&swr1 0>, <&lpass_rxmacro 0>; + }; + + cpu { + sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>; + }; + + platform { + sound-dai = <&q6apm>; + }; + }; + + wcd-capture-dai-link { + link-name = "WCD Capture"; + + codec { + sound-dai = <&wcd938x 1>, <&swr2 1>, <&lpass_txmacro 0>; + }; + + cpu { + sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>; + }; + + platform { + sound-dai = <&q6apm>; + }; + }; + + wsa-dai-link { + link-name = "WSA Playback"; + + codec { + sound-dai = <&left_woofer>, <&left_tweeter>, + <&swr0 0>, <&lpass_wsamacro 0>, + <&right_woofer>, <&right_tweeter>, + <&swr3 0>, <&lpass_wsa2macro 0>; + }; + + cpu { + sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>; + }; + + platform { + sound-dai = <&q6apm>; + }; + }; + + va-dai-link { + link-name = "VA Capture"; + + codec { + sound-dai = <&lpass_vamacro 0>; + }; + + cpu { + sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>; + }; + + platform { + sound-dai = <&q6apm>; + }; + }; + }; + + vreg_octa_vdd: regulator-octa-vdd { + compatible = "regulator-fixed"; + + regulator-name = "VREG_OCTA_VDD"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + + gpio = <&tlmm 111 GPIO_ACTIVE_HIGH>; + enable-active-high; + + pinctrl-0 = <&octa_vdd_en>; + pinctrl-names = "default"; + + startup-delay-us = <1000>; + regulator-enable-ramp-delay = <1000>; + + regulator-always-on; + regulator-boot-on; + }; + + vreg_display_vdd: regulator-display-vdd { + compatible = "regulator-fixed"; + + regulator-name = "VREG_DISPLAY_VDD"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + + gpio = <&tlmm 120 GPIO_ACTIVE_HIGH>; + enable-active-high; + + pinctrl-0 = <&display_vdd_en>; + pinctrl-names = "default"; + + startup-delay-us = <400000>; + regulator-enable-ramp-delay = <400000>; + + vin-supply = <&vreg_octa_vdd>; + + regulator-always-on; + regulator-boot-on; + }; + + vreg_edp_3p3: regulator-edp-3p3 { + compatible = "regulator-fixed"; + + regulator-name = "VREG_EDP_3P3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + + gpio = <&tlmm 70 GPIO_ACTIVE_LOW>; + enable-active-low; + + pinctrl-0 = <&edp_reg_en>; + pinctrl-names = "default"; + + startup-delay-us = <1000>; + regulator-enable-ramp-delay = <1000>; + + vin-supply = <&vreg_display_vdd>; + + regulator-always-on; + regulator-boot-on; + }; + + + vreg_misc_3p3: regulator-misc-3p3 { + compatible = "regulator-fixed"; + + regulator-name = "VREG_MISC_3P3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + + gpio = <&pm8550ve_8_gpios 6 GPIO_ACTIVE_HIGH>; + enable-active-high; + + pinctrl-0 = <&misc_3p3_reg_en>; + pinctrl-names = "default"; + + regulator-boot-on; + regulator-always-on; + }; + + vph_pwr: regulator-vph-pwr { + compatible = "regulator-fixed"; + + regulator-name = "vph_pwr"; + regulator-min-microvolt = <3700000>; + regulator-max-microvolt = <3700000>; + + regulator-always-on; + regulator-boot-on; + }; + + vreg_wcn_3p3: regulator-wcn-3p3 { + compatible = "regulator-fixed"; + + regulator-name = "VREG_WCN_3P3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + + gpio = <&tlmm 214 GPIO_ACTIVE_HIGH>; + enable-active-high; + + pinctrl-0 = <&wcn_sw_en>; + pinctrl-names = "default"; + + regulator-boot-on; + regulator-always-on; + }; + + usb-1-ss0-sbu-mux { + compatible = "onnn,fsusb42", "gpio-sbu-mux"; + + enable-gpios = <&tlmm 168 GPIO_ACTIVE_LOW>; + select-gpios = <&tlmm 167 GPIO_ACTIVE_HIGH>; + + pinctrl-0 = <&usb_1_ss0_sbu_default>; + pinctrl-names = "default"; + + mode-switch; + orientation-switch; + + port { + usb_1_ss0_sbu_mux: endpoint { + remote-endpoint = <&pmic_glink_ss0_sbu>; + }; + }; + }; + + usb-1-ss1-sbu-mux { + compatible = "onnn,fsusb42", "gpio-sbu-mux"; + + enable-gpios = <&tlmm 179 GPIO_ACTIVE_LOW>; + select-gpios = <&tlmm 178 GPIO_ACTIVE_HIGH>; + + pinctrl-0 = <&usb_1_ss1_sbu_default>; + pinctrl-names = "default"; + + mode-switch; + orientation-switch; + + port { + usb_1_ss1_sbu_mux: endpoint { + remote-endpoint = <&pmic_glink_ss1_sbu>; + }; + }; + }; + + wcn7850-pmu { + compatible = "qcom,wcn7850-pmu"; + + wlan-enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>; + bt-enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>; + + pinctrl-0 = <&wcn_wlan_bt_en>; + pinctrl-names = "default"; + + regulators { + vreg_pmu_rfa_cmn: ldo0 { + regulator-name = "vreg_pmu_rfa_cmn"; + }; + + vreg_pmu_aon_0p59: ldo1 { + regulator-name = "vreg_pmu_aon_0p59"; + }; + + vreg_pmu_wlcx_0p8: ldo2 { + regulator-name = "vreg_pmu_wlcx_0p8"; + }; + + vreg_pmu_wlmx_0p85: ldo3 { + regulator-name = "vreg_pmu_wlmx_0p85"; + }; + + vreg_pmu_btcmx_0p85: ldo4 { + regulator-name = "vreg_pmu_btcmx_0p85"; + }; + + vreg_pmu_rfa_0p8: ldo5 { + regulator-name = "vreg_pmu_rfa_0p8"; + }; + + vreg_pmu_rfa_1p2: ldo6 { + regulator-name = "vreg_pmu_rfa_1p2"; + }; + + vreg_pmu_rfa_1p8: ldo7 { + regulator-name = "vreg_pmu_rfa_1p8"; + }; + + vreg_pmu_pcie_0p9: ldo8 { + regulator-name = "vreg_pmu_pcie_0p9"; + }; + + vreg_pmu_pcie_1p8: ldo9 { + regulator-name = "vreg_pmu_pcie_1p8"; + }; + }; + }; +}; + +&apps_rsc { + regulators-0 { + compatible = "qcom,pm8550-rpmh-regulators"; + qcom,pmic-id = "b"; + + vdd-bob1-supply = <&vph_pwr>; + vdd-bob2-supply = <&vph_pwr>; + vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>; + vdd-l2-l13-l14-supply = <&vreg_bob1>; + vdd-l5-l16-supply = <&vreg_bob1>; + vdd-l6-l7-supply = <&vreg_bob2>; + vdd-l8-l9-supply = <&vreg_bob1>; + vdd-l12-supply = <&vreg_s5j_1p2>; + vdd-l15-supply = <&vreg_s4c_1p8>; + vdd-l17-supply = <&vreg_bob2>; + + vreg_bob1: bob1 { + regulator-name = "vreg_bob1"; + regulator-min-microvolt = <3008000>; + regulator-max-microvolt = <3960000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_bob2: bob2 { + regulator-name = "vreg_bob2"; + regulator-min-microvolt = <2504000>; + regulator-max-microvolt = <3008000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l1b_1p8: ldo1 { + regulator-name = "vreg_l1b_1p8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l2b_3p0: ldo2 { + regulator-name = "vreg_l2b_3p0"; + regulator-min-microvolt = <3072000>; + regulator-max-microvolt = <3100000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l4b_1p8: ldo4 { + regulator-name = "vreg_l4b_1p8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l5b_3p0: ldo5 { + regulator-name = "vreg_l5b_3p0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l6b_1p8: ldo6 { + regulator-name = "vreg_l6b_1p8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2960000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l7b_2p8: ldo7 { + regulator-name = "vreg_l7b_2p8"; + regulator-always-on; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l8b_3p0: ldo8 { + regulator-name = "vreg_l8b_3p0"; + regulator-min-microvolt = <3072000>; + regulator-max-microvolt = <3072000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l9b_2p9: ldo9 { + regulator-name = "vreg_l9b_2p9"; + regulator-min-microvolt = <2960000>; + regulator-max-microvolt = <2960000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l10b_1p8: ldo10 { + regulator-name = "vreg_l10b_1p8"; + regulator-always-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l12b_1p2: ldo12 { + regulator-name = "vreg_l12b_1p2"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-always-on; + }; + + vreg_l13b_3p0: ldo13 { + regulator-name = "vreg_l13b_3p0"; + regulator-min-microvolt = <3072000>; + regulator-max-microvolt = <3100000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l14b_3p0: ldo14 { + regulator-name = "vreg_l14b_3p0"; + regulator-min-microvolt = <3072000>; + regulator-max-microvolt = <3072000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l15b_1p8: ldo15 { + regulator-name = "vreg_l15b_1p8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-always-on; + }; + + vreg_l16b_2p9: ldo16 { + regulator-name = "vreg_l16b_2p9"; + regulator-min-microvolt = <2912000>; + regulator-max-microvolt = <2912000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l17b_2p5: ldo17 { + regulator-name = "vreg_l17b_2p5"; + regulator-min-microvolt = <2504000>; + regulator-max-microvolt = <2504000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + }; + + regulators-1 { + compatible = "qcom,pm8550ve-rpmh-regulators"; + qcom,pmic-id = "c"; + + vdd-l1-supply = <&vreg_s5j_1p2>; + vdd-l2-supply = <&vreg_s1f_0p7>; + vdd-l3-supply = <&vreg_s1f_0p7>; + vdd-s4-supply = <&vph_pwr>; + + vreg_s4c_1p8: smps4 { + regulator-name = "vreg_s4c_1p8"; + regulator-min-microvolt = <1856000>; + regulator-max-microvolt = <2000000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l1c_1p2: ldo1 { + regulator-name = "vreg_l1c_1p2"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l2c_0p8: ldo2 { + regulator-name = "vreg_l2c_0p8"; + regulator-min-microvolt = <880000>; + regulator-max-microvolt = <920000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l3c_0p8: ldo3 { + regulator-name = "vreg_l3c_0p8"; + regulator-min-microvolt = <880000>; + regulator-max-microvolt = <920000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + }; + + regulators-2 { + compatible = "qcom,pmc8380-rpmh-regulators"; + qcom,pmic-id = "d"; + + vdd-l1-supply = <&vreg_s1f_0p7>; + vdd-l2-supply = <&vreg_s1f_0p7>; + vdd-l3-supply = <&vreg_s4c_1p8>; + vdd-s1-supply = <&vph_pwr>; + + vreg_l1d_0p8: ldo1 { + regulator-name = "vreg_l1d_0p8"; + regulator-min-microvolt = <880000>; + regulator-max-microvolt = <920000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l2d_0p9: ldo2 { + regulator-name = "vreg_l2d_0p9"; + regulator-min-microvolt = <912000>; + regulator-max-microvolt = <920000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l3d_1p8: ldo3 { + regulator-name = "vreg_l3d_1p8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + }; + + regulators-3 { + compatible = "qcom,pmc8380-rpmh-regulators"; + qcom,pmic-id = "e"; + + vdd-l2-supply = <&vreg_s1f_0p7>; + vdd-l3-supply = <&vreg_s5j_1p2>; + + vreg_l2e_0p8: ldo2 { + regulator-name = "vreg_l2e_0p8"; + regulator-min-microvolt = <880000>; + regulator-max-microvolt = <920000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l3e_1p2: ldo3 { + regulator-name = "vreg_l3e_1p2"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + }; + + regulators-4 { + compatible = "qcom,pmc8380-rpmh-regulators"; + qcom,pmic-id = "f"; + + vdd-l1-supply = <&vreg_s5j_1p2>; + vdd-l2-supply = <&vreg_s5j_1p2>; + vdd-l3-supply = <&vreg_s5j_1p2>; + vdd-s1-supply = <&vph_pwr>; + + vreg_s1f_0p7: smps1 { + regulator-name = "vreg_s1f_0p7"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1100000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l1f_1p0: ldo1 { + regulator-name = "vreg_l1f_1p0"; + regulator-min-microvolt = <1024000>; + regulator-max-microvolt = <1024000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l2f_1p0: ldo2 { + regulator-name = "vreg_l2f_1p0"; + regulator-min-microvolt = <1024000>; + regulator-max-microvolt = <1024000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l3f_1p0: ldo3 { + regulator-name = "vreg_l3f_1p0"; + regulator-min-microvolt = <1024000>; + regulator-max-microvolt = <1024000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + }; + + regulators-6 { + compatible = "qcom,pm8550ve-rpmh-regulators"; + qcom,pmic-id = "i"; + + vdd-l1-supply = <&vreg_s4c_1p8>; + vdd-l2-supply = <&vreg_s5j_1p2>; + vdd-l3-supply = <&vreg_s1f_0p7>; + vdd-s1-supply = <&vph_pwr>; + vdd-s2-supply = <&vph_pwr>; + + vreg_s1i_0p9: smps1 { + regulator-name = "vreg_s1i_0p9"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <920000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_s2i_1p0: smps2 { + regulator-name = "vreg_s2i_1p0"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1100000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l1i_1p8: ldo1 { + regulator-name = "vreg_l1i_1p8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l2i_1p2: ldo2 { + regulator-name = "vreg_l2i_1p2"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l3i_0p8: ldo3 { + regulator-name = "vreg_l3i_0p8"; + regulator-min-microvolt = <880000>; + regulator-max-microvolt = <920000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + }; + + regulators-7 { + compatible = "qcom,pm8550ve-rpmh-regulators"; + qcom,pmic-id = "j"; + + vdd-l1-supply = <&vreg_s1f_0p7>; + vdd-l2-supply = <&vreg_s5j_1p2>; + vdd-l3-supply = <&vreg_s1f_0p7>; + vdd-s5-supply = <&vph_pwr>; + + vreg_s5j_1p2: smps5 { + regulator-name = "vreg_s5j_1p2"; + regulator-min-microvolt = <1256000>; + regulator-max-microvolt = <1304000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l1j_0p8: ldo1 { + regulator-name = "vreg_l1j_0p8"; + regulator-min-microvolt = <880000>; + regulator-max-microvolt = <920000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l2j_1p2: ldo2 { + regulator-name = "vreg_l2j_1p2"; + regulator-min-microvolt = <1256000>; + regulator-max-microvolt = <1256000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l3j_0p8: ldo3 { + regulator-name = "vreg_l3j_0p8"; + regulator-min-microvolt = <880000>; + regulator-max-microvolt = <920000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + }; +}; + +&camcc { + status = "okay"; +}; + +&gpu { + status = "okay"; + + zap-shader { + firmware-name = "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/qcdxkmsuc8380.mbn"; + }; +}; + +&i2c0 { + clock-frequency = <400000>; + + status = "okay"; + + keyboard@5 { + compatible = "hid-over-i2c"; + reg = <0x5>; + + hid-descr-addr = <0x20>; + interrupts-extended = <&tlmm 67 IRQ_TYPE_LEVEL_LOW>; + + pinctrl-0 = <&kybd_default>; + pinctrl-names = "default"; + + wakeup-source; + }; +}; + +&i2c5 { + clock-frequency = <400000>; + + status = "okay"; + + eusb5_repeater: redriver@43 { + compatible = "nxp,ptn3222"; + reg = <0x43>; + #phy-cells = <0>; + + vdd3v3-supply = <&vreg_l13b_3p0>; + vdd1v8-supply = <&vreg_l4b_1p8>; + + reset-gpios = <&tlmm 7 GPIO_ACTIVE_LOW>; + + pinctrl-0 = <&eusb5_reset_n>; + pinctrl-names = "default"; + }; + + eusb6_repeater: redriver@4f { + compatible = "nxp,ptn3222"; + reg = <0x4f>; + #phy-cells = <0>; + + vdd3v3-supply = <&vreg_l13b_3p0>; + vdd1v8-supply = <&vreg_l4b_1p8>; + + reset-gpios = <&tlmm 184 GPIO_ACTIVE_LOW>; + + pinctrl-0 = <&eusb6_reset_n>; + pinctrl-names = "default"; + }; +}; + + +&i2c8 { + clock-frequency = <400000>; + + status = "okay"; + + touchscreen@5d { + compatible = "hid-over-i2c"; + reg = <0x5d>; + + hid-descr-addr = <0x1>; + //interrupts-extended = <&tlmm 34 IRQ_TYPE_LEVEL_LOW>; + + vdd-supply = <&vreg_misc_3p3>; + + //pinctrl-0 = <&ts0_default>; + //pinctrl-names = "default"; + }; +}; + +&i2c13 { + clock-frequency = <400000>; + + status = "okay"; +}; + +&lpass_tlmm { + spkr_01_sd_n_active: spkr-01-sd-n-active-state { + pins = "gpio12"; + function = "gpio"; + drive-strength = <16>; + bias-disable; + output-low; + }; + + spkr_23_sd_n_active: spkr-23-sd-n-active-state { + pins = "gpio13"; + function = "gpio"; + drive-strength = <16>; + bias-disable; + output-low; + }; +}; + +&lpass_vamacro { + pinctrl-0 = <&dmic01_default>, <&dmic23_default>; + pinctrl-names = "default"; + + vdd-micb-supply = <&vreg_l1b_1p8>; + qcom,dmic-sample-rate = <4800000>; +}; + +&mdss { + status = "okay"; +}; + +&mdss_dp0 { + status = "okay"; +}; + +&mdss_dp0_out { + data-lanes = <0 1>; + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>; +}; + +&mdss_dp1 { + status = "okay"; +}; + +&mdss_dp1_out { + data-lanes = <0 1>; + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>; +}; + +&mdss_dp2 { + status = "okay"; +}; + +&mdss_dp2_out { + data-lanes = <0 1 2 3>; +}; + +&mdss_dp3 { + /delete-property/ #sound-dai-cells; + + pinctrl-0 = <&edp0_hpd_default>; + pinctrl-names = "default"; + + status = "okay"; + + aux-bus { + panel: panel { + enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>; + power-supply = <&vreg_edp_3p3>; + no-hpd; + + pinctrl-0 = <&edp_bl_en>; + pinctrl-names = "default"; + + port { + edp_panel_in: endpoint { + remote-endpoint = <&mdss_dp3_out>; + }; + }; + }; + }; + + ports { + port@1 { + reg = <1>; + mdss_dp3_out: endpoint { + data-lanes = <0 1 2 3>; + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000>; + + remote-endpoint = <&edp_panel_in>; + }; + }; + }; +}; + + +&mdss_dp3_phy { + vdda-phy-supply = <&vreg_l3j_0p8>; + vdda-pll-supply = <&vreg_l2j_1p2>; + + status = "okay"; +}; + +&pcie4 { + perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>; + wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>; + + pinctrl-0 = <&pcie4_default>; + pinctrl-names = "default"; + + status = "okay"; +}; + +&pcie4_phy { + vdda-phy-supply = <&vreg_l3i_0p8>; + vdda-pll-supply = <&vreg_l3e_1p2>; + + status = "okay"; +}; + +&pcie4_port0 { + wifi@0 { + compatible = "pci17cb,1107"; + reg = <0x10000 0x0 0x0 0x0 0x0>; + + vddaon-supply = <&vreg_pmu_aon_0p59>; + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>; + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>; + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>; + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>; + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>; + vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>; + vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>; + vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>; + }; +}; + +&pm8550ve_8_gpios { + misc_3p3_reg_en: misc-3p3-reg-en-state { + pins = "gpio6"; + function = "normal"; + bias-disable; + input-disable; + output-enable; + drive-push-pull; + power-source = <1>; /* 1.8 V */ + qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>; + }; +}; + +&pmc8380_3_gpios { + edp_bl_en: edp-bl-en-state { + pins = "gpio4"; + function = "normal"; + power-source = <1>; /* 1.8V */ + input-disable; + output-enable; + }; +}; + +&qupv3_0 { + status = "okay"; +}; + +&qupv3_1 { + status = "okay"; +}; + +&qupv3_2 { + status = "okay"; +}; + +&remoteproc_adsp { + firmware-name = "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/qcadsp8380.mbn", + "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/adsp_dtbs.elf"; + + status = "okay"; +}; + +&remoteproc_cdsp { + firmware-name = "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/qccdsp8380.mbn", + "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/cdsp_dtbs.elf"; + + status = "okay"; +}; + +&swr0 { + status = "okay"; + + pinctrl-0 = <&wsa_swr_active>, <&spkr_01_sd_n_active>; + pinctrl-names = "default"; + + /* WSA8845, Left Woofer */ + left_woofer: speaker@0,0 { + compatible = "sdw20217020400"; + reg = <0 0>; + reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>; + #sound-dai-cells = <0>; + sound-name-prefix = "WooferLeft"; + vdd-1p8-supply = <&vreg_l15b_1p8>; + vdd-io-supply = <&vreg_l12b_1p2>; + qcom,port-mapping = <1 2 3 7 10 13>; + }; + + /* WSA8845, Left Tweeter */ + left_tweeter: speaker@0,1 { + compatible = "sdw20217020400"; + reg = <0 1>; + reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>; + #sound-dai-cells = <0>; + sound-name-prefix = "TweeterLeft"; + vdd-1p8-supply = <&vreg_l15b_1p8>; + vdd-io-supply = <&vreg_l12b_1p2>; + qcom,port-mapping = <4 5 6 7 11 13>; + }; +}; + +&swr1 { + status = "okay"; + + /* WCD9385 RX */ + wcd_rx: codec@0,4 { + compatible = "sdw20217010d00"; + reg = <0 4>; + qcom,rx-port-mapping = <1 2 3 4 5>; + }; +}; + +&swr2 { + status = "okay"; + + /* WCD9385 TX */ + wcd_tx: codec@0,3 { + compatible = "sdw20217010d00"; + reg = <0 3>; + qcom,tx-port-mapping = <2 2 3 4>; + }; +}; + +&swr3 { + status = "okay"; + + pinctrl-0 = <&wsa2_swr_active>, <&spkr_23_sd_n_active>; + pinctrl-names = "default"; + + /* WSA8845, Right Woofer */ + right_woofer: speaker@0,0 { + compatible = "sdw20217020400"; + reg = <0 0>; + reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>; + #sound-dai-cells = <0>; + sound-name-prefix = "WooferRight"; + vdd-1p8-supply = <&vreg_l15b_1p8>; + vdd-io-supply = <&vreg_l12b_1p2>; + qcom,port-mapping = <1 2 3 7 10 13>; + }; + + /* WSA8845, Right Tweeter */ + right_tweeter: speaker@0,1 { + compatible = "sdw20217020400"; + reg = <0 1>; + reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>; + #sound-dai-cells = <0>; + sound-name-prefix = "TweeterRight"; + vdd-1p8-supply = <&vreg_l15b_1p8>; + vdd-io-supply = <&vreg_l12b_1p2>; + qcom,port-mapping = <4 5 6 7 11 13>; + }; +}; + +&tlmm { + gpio-reserved-ranges = <34 2>, /* Unused */ + <44 4>; /* SPI (TPM) */ + + edp_reg_en: edp-reg-en-state { + pins = "gpio70"; + function = "gpio"; + drive-strength = <16>; + bias-pull-up; + output-low; + }; + + octa_vdd_en: octa-vdd-en-state { + pins = "gpio111"; + function = "gpio"; + drive-strength = <16>; + bias-pull-up; + output-high; + }; + + display_vdd_en: display-vdd-en-state { + pins = "gpio120"; + function = "gpio"; + drive-strength = <16>; + bias-pull-up; + output-high; + }; + + edp0_hpd_default: edp0-hpd-default-state { + pins = "gpio119"; + function = "edp0_hot"; + bias-pull-down; + input-enable; + drive-strength = <2>; + }; + + + hall_int_n_default: hall-int-n-state { + pins = "gpio92"; + function = "gpio"; + bias-disable; + }; + + kybd_default: kybd-default-state { + pins = "gpio67"; + function = "gpio"; + bias-disable; + }; + + hdmi_hpd_default: hdmi-hpd-default-state { + pins = "gpio126"; + function = "usb2_dp"; + bias-disable; + }; + + eusb5_reset_n: eusb5-reset-n-state { + pins = "gpio7"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + output-low; + }; + + eusb6_reset_n: eusb6-reset-n-state { + pins = "gpio184"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + output-low; + }; + + pcie4_default: pcie4-default-state { + clkreq-n-pins { + pins = "gpio147"; + function = "pcie4_clk"; + drive-strength = <2>; + bias-pull-up; + }; + + perst-n-pins { + pins = "gpio146"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + }; + + wake-n-pins { + pins = "gpio148"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + tpad_default: tpad-default-state { + pins = "gpio3"; + function = "gpio"; + bias-disable; + }; + + ts0_default: ts0-default-state { + int-n-pins { + pins = "gpio51"; + function = "gpio"; + bias-disable; + }; + + reset-n-pins { + pins = "gpio48"; + function = "gpio"; + output-high; + drive-strength = <16>; + }; + }; + + usb_1_ss0_sbu_default: usb-1-ss0-sbu-state { + mode-pins { + pins = "gpio166"; + function = "gpio"; + bias-disable; + drive-strength = <2>; + output-high; + }; + + oe-n-pins { + pins = "gpio168"; + function = "gpio"; + bias-disable; + drive-strength = <2>; + }; + + sel-pins { + pins = "gpio167"; + function = "gpio"; + bias-disable; + drive-strength = <2>; + }; + + }; + + usb_1_ss1_sbu_default: usb-1-ss1-sbu-state { + mode-pins { + pins = "gpio177"; + function = "gpio"; + bias-disable; + drive-strength = <2>; + output-high; + }; + + oe-n-pins { + pins = "gpio179"; + function = "gpio"; + bias-disable; + drive-strength = <2>; + }; + + sel-pins { + pins = "gpio178"; + function = "gpio"; + bias-disable; + drive-strength = <2>; + }; + }; + + wcn_sw_en: wcn-sw-en-state { + pins = "gpio214"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + }; + + wcn_wlan_bt_en: wcn-wlan-bt-en-state { + pins = "gpio116", "gpio117"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + }; + + wcd_default: wcd-reset-n-active-state { + pins = "gpio191"; + function = "gpio"; + drive-strength = <16>; + bias-disable; + output-low; + }; +}; + +&ufs_mem_hc { + status = "okay"; + + reset-gpios = <&tlmm 238 GPIO_ACTIVE_LOW>; + vcc-supply = <&vreg_l17b_2p5>; + vcc-max-microamp = <600000>; + + vccq-supply = <&vreg_l2i_1p2>; + vccq-max-microamp = <600000>; +}; + +&ufs_mem_phy { + status = "okay"; + + vdda-phy-supply = <&vreg_l3i_0p8>; + vdda-pll-supply = <&vreg_l3e_1p2>; +}; + +&uart14 { + status = "okay"; + + bluetooth { + compatible = "qcom,wcn7850-bt"; + max-speed = <3200000>; + + vddaon-supply = <&vreg_pmu_aon_0p59>; + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>; + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>; + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>; + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>; + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>; + vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>; + }; +}; + +&uart21 { + compatible = "qcom,geni-debug-uart"; + status = "okay"; +}; + +&usb_1_ss0 { + status = "okay"; +}; + +&usb_1_ss0_hsphy { + vdd-supply = <&vreg_l3j_0p8>; + vdda12-supply = <&vreg_l2j_1p2>; + + status = "okay"; +}; + +&usb_1_ss0_qmpphy { + vdda-phy-supply = <&vreg_l2j_1p2>; + vdda-pll-supply = <&vreg_l1j_0p8>; + + status = "okay"; +}; + +&usb_1_ss0 { + dr_mode = "host"; +}; + +&usb_1_ss0_dwc3_hs { + remote-endpoint = <&pmic_glink_ss0_hs_in>; +}; + +&usb_1_ss0_qmpphy_out { + remote-endpoint = <&pmic_glink_ss0_ss_in>; +}; + +&usb_1_ss1 { + status = "okay"; +}; + +&usb_1_ss1_hsphy { + vdd-supply = <&vreg_l3j_0p8>; + vdda12-supply = <&vreg_l2j_1p2>; + + status = "okay"; +}; + +&usb_1_ss1_qmpphy { + vdda-phy-supply = <&vreg_l2j_1p2>; + vdda-pll-supply = <&vreg_l2d_0p9>; + + status = "okay"; +}; + +&usb_1_ss1 { + dr_mode = "host"; +}; + +&usb_1_ss1_dwc3_hs { + remote-endpoint = <&pmic_glink_ss1_hs_in>; +}; + +&usb_1_ss1_qmpphy_out { + remote-endpoint = <&pmic_glink_ss1_ss_in>; +}; + +&usb_1_ss2_qmpphy { + vdda-phy-supply = <&vreg_l2j_1p2>; + vdda-pll-supply = <&vreg_l2d_0p9>; + + /delete-property/ mode-switch; + /delete-property/ orientation-switch; + + status = "okay"; + + ports { + port@0 { + #address-cells = <1>; + #size-cells = <0>; + + /delete-node/ endpoint; + + usb_1_ss2_qmpphy_out_dp: endpoint@0 { + reg = <0>; + + data-lanes = <3 2 1 0>; + remote-endpoint = <&hdmi_bridge_dp_in>; + }; + }; + }; +}; + + +/* MP0 goes to the USB-A port(USB3) and FPC */ +&usb_mp { + status = "okay"; + + /* Limit to single port */ + phys = <&usb_mp_hsphy0>, <&usb_mp_qmpphy0>; + phy-names = "usb2-0", "usb3-0"; +}; + +&usb_mp_hsphy0 { + vdd-supply = <&vreg_l2e_0p8>; + vdda12-supply = <&vreg_l3e_1p2>; + + phys = <&eusb6_repeater>; + + status = "okay"; +}; + +&usb_mp_qmpphy0 { + vdda-phy-supply = <&vreg_l3e_1p2>; + vdda-pll-supply = <&vreg_l3c_0p8>; + + status = "okay"; +}; diff --git a/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts b/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts new file mode 100644 index 000000000..333a69a8a --- /dev/null +++ b/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/dts-v1/; + +#include "x1-samsung-galaxy-book4-edge.dtsi" + +/ { + model = "Samsung Galaxy Book4 Edge (14 inch)"; + compatible = "samsung,galaxy-book4-edge-14", "samsung,galaxy-book4-edge", + "qcom,x1e80100"; +}; + +&i2c13 { + touchpad@40 { + compatible = "hid-over-i2c"; + reg = <0x40>; + + hid-descr-addr = <0xe>; + interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>; + + pinctrl-0 = <&tpad_default>; + pinctrl-names = "default"; + }; +}; + +&panel { + compatible = "samsung,atna40cu07", "samsung,atna33xc20"; +}; diff --git a/arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts b/arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts new file mode 100644 index 000000000..947eea411 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/dts-v1/; + +#include "x1-samsung-galaxy-book4-edge.dtsi" + +/ { + model = "Samsung Galaxy Book4 Edge (16 inch)"; + compatible = "samsung,galaxy-book4-edge-16", "samsung,galaxy-book4-edge", + "qcom,x1e80100"; +}; + +&i2c13 { + touchpad@50 { + compatible = "hid-over-i2c"; + reg = <0x50>; + + hid-descr-addr = <0xd1>; + interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>; + + vdd-supply = <&vreg_misc_3p3>; + vddl-supply = <&vreg_l15b_1p8>; + + pinctrl-0 = <&tpad_default>; + pinctrl-names = "default"; + }; +}; + +&panel { + compatible = "samsung,atna60cl07", "samsung,atna33xc20"; +}; -- 2.43.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees 2026-09-20 18:41 ` [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees Maxim Storetvedt @ 2026-09-20 18:54 ` sashiko-bot 2026-09-24 13:08 ` Krzysztof Kozlowski 2026-09-28 16:44 ` Antheas Kapenekakis 2 siblings, 0 replies; 13+ messages in thread From: sashiko-bot @ 2026-09-20 18:54 UTC (permalink / raw) To: Maxim Storetvedt; +Cc: conor+dt, devicetree, robh Thank you for your contribution! Sashiko AI review found 4 potential issue(s) to consider: - [Medium] dt-bindings: touchscreen@5d node missing interrupts property - [Medium] sound: incorrect audio routing for right speakers to same macro output - [Low] dt-bindings: invalid enable-active-low property in regulator-fixed node - [Low] dt-bindings: pmic-glink missing qcom,sm8550-pmic-glink fallback string -- commit 2d1c565b5f3cc1fc06395b66ffcf702541cf9a0d Author: Maxim Storetvedt <mstoretv@cern.ch> arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees This commit adds devicetrees for the 14-inch and 16-inch hamoa SKUs of the Samsung Galaxy Book4 Edge. It uses a common dtsi derived from nodes that were able to work on Linux. Link: https://lore.kernel.org/all/p3mhtj2rp6y2ezuwpd2gu7dwx5cbckfu4s4pazcudi4j2wogtr@4yecb2bkeyms/ Link: https://lore.kernel.org/all/20260629154812.9066-1-mail@etehtsea.me/ > 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 0000000000000..51ec68bbab141 > --- /dev/null > +++ b/arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi [ ... ] > + pmic-glink { > + compatible = "qcom,x1e80100-pmic-glink", > + "qcom,pmic-glink"; [Severity: Low] Does this violate the pmic-glink devicetree schema? The schema requires that "qcom,x1e80100-pmic-glink" must be followed by the "qcom,sm8550-pmic-glink" fallback string. Omitting the intermediate fallback will trigger dtbs_check warnings, even though the driver matches "qcom,x1e80100-pmic-glink" directly. [ ... ] > + sound { > + compatible = "qcom,x1e80100-sndcard"; > + model = "X1E80100-GalaxyBook4Edge"; > + audio-routing = "WooferLeft IN", "WSA WSA_SPK1 OUT", > + "TweeterLeft IN", "WSA WSA_SPK2 OUT", > + "WooferRight IN", "WSA2 WSA_SPK2 OUT", > + "TweeterRight IN", "WSA2 WSA_SPK2 OUT", [Severity: Medium] Is the right-side audio routing mapped correctly here? Both "WooferRight IN" and "TweeterRight IN" are mapped to the same "WSA2 WSA_SPK2 OUT" macro channel. It appears "WooferRight IN" should map to "WSA2 WSA_SPK1 OUT" to maintain discrete stereo/crossover separation for the right side, instead of routing both to the same output channel. [ ... ] > + 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; [Severity: Low] Is it correct to include the enable-active-low property here? The regulator-fixed bindings do not support this property (only enable-active-high is valid). Active-low polarity is already correctly and implicitly defined by the GPIO_ACTIVE_LOW flag in the gpio specifier. Leaving this in will trigger a dtbs_check schema validation error. [ ... ] > +&i2c8 { > + clock-frequency = <400000>; > + > + status = "okay"; > + > + touchscreen@5d { > + compatible = "hid-over-i2c"; > + reg = <0x5d>; > + > + hid-descr-addr = <0x1>; > + //interrupts-extended = <&tlmm 34 IRQ_TYPE_LEVEL_LOW>; > + > + vdd-supply = <&vreg_misc_3p3>; > + > + //pinctrl-0 = <&ts0_default>; > + //pinctrl-names = "default"; > + }; > +}; [Severity: Medium] Will this node fail to probe? The hid-over-i2c binding requires the interrupts or interrupts-extended property. Since interrupts-extended is commented out but the node remains active (no status = "disabled"), the i2c-hid driver will unconditionally fail to probe without an IRQ. This leaves the touchscreen non-functional and the devicetree schema invalid. Should this node either be properly configured or marked disabled? -- Sashiko AI review · https://sashiko.dev/#/patchset/20260920184148.31541-1-mstoretv@cern.ch?part=3 ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees 2026-09-20 18:41 ` [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees Maxim Storetvedt 2026-09-20 18:54 ` sashiko-bot @ 2026-09-24 13:08 ` Krzysztof Kozlowski 2026-09-24 20:46 ` Maxim Storetvedt 2026-09-28 16:44 ` Antheas Kapenekakis 2 siblings, 1 reply; 13+ messages in thread From: Krzysztof Kozlowski @ 2026-09-24 13:08 UTC (permalink / raw) To: Maxim Storetvedt Cc: andersson, robh, krzk+dt, conor+dt, marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel, abel.vesa, abel.vesa, johan, konradybcio, kirill On Sun, Sep 20, 2026 at 08:41:04PM +0200, Maxim Storetvedt wrote: > Adds devicetrees for the 14-inch and 16-inch hamoa SKUs of the Samsung Galaxy Book4 Edge. > > These use a common dtsi derived from nodes that were able to work on Linux > from the initial Galaxy Book4 Edge DTS by Marcus: > > Link: https://lore.kernel.org/all/p3mhtj2rp6y2ezuwpd2gu7dwx5cbckfu4s4pazcudi4j2wogtr@4yecb2bkeyms/ > > combined with the patch series the Honor Magicbook Art 14, which shares device similarities: > > Link: https://lore.kernel.org/all/20260629154812.9066-1-mail@etehtsea.me/ > > as well as a few more adjustments on top of that again to get additional features working. > Special thanks to Jesse Ahn for helping expand on what would eventually become this dtsi. > > Based-on-a-patch-by: Marcus Glocker <marcus@nazgul.ch> > Based-on-a-patch-by: Kirill A. Korinsky <kirill@korins.ky> There are no such tags. Don't invent own. Either they provided SoB for the code you used, or not. If they did, then you could take them. Otherwise not and read obligations on your side expressed in DCO. Also look at Co-developed tag, if that's applicable. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees 2026-09-24 13:08 ` Krzysztof Kozlowski @ 2026-09-24 20:46 ` Maxim Storetvedt 0 siblings, 0 replies; 13+ messages in thread From: Maxim Storetvedt @ 2026-09-24 20:46 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: andersson, robh, krzk+dt, conor+dt, marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel, abel.vesa, abel.vesa, johan, konradybcio, kirill On 9/24/26 15:08, Krzysztof Kozlowski wrote: > On Sun, Sep 20, 2026 at 08:41:04PM +0200, Maxim Storetvedt wrote: >> Adds devicetrees for the 14-inch and 16-inch hamoa SKUs of the Samsung Galaxy Book4 Edge. >> >> These use a common dtsi derived from nodes that were able to work on Linux >> from the initial Galaxy Book4 Edge DTS by Marcus: >> >> Link: https://lore.kernel.org/all/p3mhtj2rp6y2ezuwpd2gu7dwx5cbckfu4s4pazcudi4j2wogtr@4yecb2bkeyms/ >> >> combined with the patch series the Honor Magicbook Art 14, which shares device similarities: >> >> Link: https://lore.kernel.org/all/20260629154812.9066-1-mail@etehtsea.me/ >> >> as well as a few more adjustments on top of that again to get additional features working. >> Special thanks to Jesse Ahn for helping expand on what would eventually become this dtsi. >> >> Based-on-a-patch-by: Marcus Glocker <marcus@nazgul.ch> >> Based-on-a-patch-by: Kirill A. Korinsky <kirill@korins.ky> > > There are no such tags. Don't invent own. > > Either they provided SoB for the code you used, or not. If they did, > then you could take them. Otherwise not and read obligations on your > side expressed in DCO. > > Also look at Co-developed tag, if that's applicable. > > Best regards, > Krzysztof > Not formal tags by any means; both of these patches have been very useful though, and should somehow be highlighted. Bon, to be revisited. In the meantime, there seem to be some sashiko warnings that need to be addressed before this series can continue in any case. Cheers, -Max ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees 2026-09-20 18:41 ` [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees Maxim Storetvedt 2026-09-20 18:54 ` sashiko-bot 2026-09-24 13:08 ` Krzysztof Kozlowski @ 2026-09-28 16:44 ` Antheas Kapenekakis 2026-09-28 16:45 ` Antheas Kapenekakis 2026-09-28 18:41 ` Maxim Storetvedt 2 siblings, 2 replies; 13+ messages in thread From: Antheas Kapenekakis @ 2026-09-28 16:44 UTC (permalink / raw) To: Maxim Storetvedt Cc: andersson, robh, krzk+dt, conor+dt, marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel, abel.vesa, abel.vesa, johan, konradybcio, kirill On Sun, 20 Sept 2026 at 20:41, Maxim Storetvedt <mstoretv@cern.ch> wrote: > > Adds devicetrees for the 14-inch and 16-inch hamoa SKUs of the Samsung Galaxy Book4 Edge. > > These use a common dtsi derived from nodes that were able to work on Linux > from the initial Galaxy Book4 Edge DTS by Marcus: > > Link: https://lore.kernel.org/all/p3mhtj2rp6y2ezuwpd2gu7dwx5cbckfu4s4pazcudi4j2wogtr@4yecb2bkeyms/ > > combined with the patch series the Honor Magicbook Art 14, which shares device similarities: > > Link: https://lore.kernel.org/all/20260629154812.9066-1-mail@etehtsea.me/ Links go in the bottom, Based-on-a-patch is not a thing, you may add a Coby as noted in a parallel thread. > as well as a few more adjustments on top of that again to get additional features working. > Special thanks to Jesse Ahn for helping expand on what would eventually become this dtsi. Hi Maxim, I tested this series on a kernel with various other backports on two european (norwegian market) galaxy book4 edges. Specifically, the 14in NP940XMA and the 15.6in (not 16) NP750XQB. Specifically, the later is an X1Plus variant that came out a year later with cheaper components. It does not work properly on either on them. I was hoping that at least the 14in model would work as is but no. My test devices have proprietary Samsung battery controllers (ENE-KB9058) and type C controllers (Samsung EmuEC). Also the speaker amplifiers are different. So the battery reporting, audio, and USB C ports do not work at all using your DTs. The TPM does not bind either but you do not claim that it does. At least they got me to boot and for that I am grateful. Other stuff also does not work, but I am just listing the main ones. I suggest you change the -14/-16 suffixes on both models with something more specific. The prior patches in the series look fine to my eyes. I did not A/B test them, just pulled them in. Best, Antheas > Based-on-a-patch-by: Marcus Glocker <marcus@nazgul.ch> > Based-on-a-patch-by: Kirill A. Korinsky <kirill@korins.ky> > Signed-off-by: Maxim Storetvedt <mstoretv@cern.ch> > --- > arch/arm64/boot/dts/qcom/Makefile | 2 + > .../qcom/x1-samsung-galaxy-book4-edge.dtsi | 1537 +++++++++++++++++ > .../x1e80100-samsung-galaxy-book4-edge-14.dts | 28 + > .../x1e84100-samsung-galaxy-book4-edge-16.dts | 31 + > 4 files changed, 1598 insertions(+) > create mode 100644 arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi > create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts > create mode 100644 arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts > > diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile > index 5c19f945c..d8273f86f 100644 > --- a/arch/arm64/boot/dts/qcom/Makefile > +++ b/arch/arm64/boot/dts/qcom/Makefile > @@ -498,3 +498,5 @@ x1p64100-microsoft-denali-el2-dtbs := x1p64100-microsoft-denali.dtb x1-el2.dtbo > dtb-$(CONFIG_ARCH_QCOM) += x1p64100-microsoft-denali.dtb x1p64100-microsoft-denali-el2.dtb > x1p42100-microsoft-sp12in-el2-dtbs := x1p42100-microsoft-sp12in.dtb x1-el2.dtbo > dtb-$(CONFIG_ARCH_QCOM) += x1p42100-microsoft-sp12in.dtb x1p42100-microsoft-sp12in-el2.dtb > +dtb-$(CONFIG_ARCH_QCOM) += x1e80100-samsung-galaxy-book4-edge-14.dtb > +dtb-$(CONFIG_ARCH_QCOM) += x1e84100-samsung-galaxy-book4-edge-16.dtb > diff --git a/arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi b/arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi > new file mode 100644 > index 000000000..51ec68bba > --- /dev/null > +++ b/arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi > @@ -0,0 +1,1537 @@ > +// SPDX-License-Identifier: BSD-3-Clause > +/* > + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. > + * Copyright (c) 2025 Kirill A. Korinsky <kirill@korins.ky> > + * Copyright (c) 2025 Valentin Manea <valentin.manea@mrs.ro> > + */ > + > +/dts-v1/; > + > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/input/gpio-keys.h> > +#include <dt-bindings/input/input.h> > +#include <dt-bindings/pinctrl/qcom,pmic-gpio.h> > +#include <dt-bindings/regulator/qcom,rpmh-regulator.h> > + > +#include "hamoa.dtsi" > +#include "hamoa-pmics.dtsi" > + > +/ { > + model = "Samsung Galaxy Book4 Edge"; > + compatible = "samsung,galaxy-book4-edge", "qcom,x1e80100"; > + chassis-type = "laptop"; > + > + aliases { > + serial0 = &uart21; > + serial1 = &uart14; > + }; > + > + wcd938x: audio-codec { > + compatible = "qcom,wcd9385-codec"; > + > + pinctrl-0 = <&wcd_default>; > + pinctrl-names = "default"; > + > + qcom,micbias1-microvolt = <1800000>; > + qcom,micbias2-microvolt = <1800000>; > + qcom,micbias3-microvolt = <1800000>; > + qcom,micbias4-microvolt = <1800000>; > + qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>; > + qcom,mbhc-headset-vthreshold-microvolt = <1700000>; > + qcom,mbhc-headphone-vthreshold-microvolt = <50000>; > + qcom,rx-device = <&wcd_rx>; > + qcom,tx-device = <&wcd_tx>; > + > + reset-gpios = <&tlmm 191 GPIO_ACTIVE_LOW>; > + > + vdd-buck-supply = <&vreg_l15b_1p8>; > + vdd-rxtx-supply = <&vreg_l15b_1p8>; > + vdd-io-supply = <&vreg_l15b_1p8>; > + vdd-mic-bias-supply = <&vreg_bob1>; > + > + #sound-dai-cells = <1>; > + }; > + > + gpio-keys { > + compatible = "gpio-keys"; > + > + pinctrl-0 = <&hall_int_n_default>; > + pinctrl-names = "default"; > + > + switch-lid { > + gpios = <&tlmm 92 GPIO_ACTIVE_LOW>; > + linux,input-type = <EV_SW>; > + linux,code = <SW_LID>; > + wakeup-source; > + wakeup-event-action = <EV_ACT_DEASSERTED>; > + }; > + }; > + > + hdmi-bridge { > + compatible = "realtek,rtd2171"; > + > + pinctrl-0 = <&hdmi_hpd_default>; > + pinctrl-names = "default"; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + > + hdmi_bridge_dp_in: endpoint { > + remote-endpoint = <&usb_1_ss2_qmpphy_out_dp>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + > + hdmi_bridge_tmds_out: endpoint { > + remote-endpoint = <&hdmi_con>; > + }; > + }; > + }; > + }; > + > + hdmi-connector { > + compatible = "hdmi-connector"; > + type = "a"; > + > + port { > + hdmi_con: endpoint { > + remote-endpoint = <&hdmi_bridge_tmds_out>; > + }; > + }; > + }; > + > + pmic-glink { > + compatible = "qcom,x1e80100-pmic-glink", > + "qcom,pmic-glink"; > + #address-cells = <1>; > + #size-cells = <0>; > + orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>, > + <&tlmm 123 GPIO_ACTIVE_HIGH>; > + > + /* Left-side rear port */ > + connector@0 { > + compatible = "usb-c-connector"; > + reg = <0>; > + power-role = "dual"; > + data-role = "dual"; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + > + pmic_glink_ss0_hs_in: endpoint { > + remote-endpoint = <&usb_1_ss0_dwc3_hs>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + > + pmic_glink_ss0_ss_in: endpoint { > + remote-endpoint = <&usb_1_ss0_qmpphy_out>; > + }; > + }; > + > + port@2 { > + reg = <2>; > + > + pmic_glink_ss0_sbu: endpoint { > + remote-endpoint = <&usb_1_ss0_sbu_mux>; > + }; > + }; > + }; > + }; > + > + /* Left-side front port */ > + connector@1 { > + compatible = "usb-c-connector"; > + reg = <1>; > + power-role = "dual"; > + data-role = "dual"; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + > + pmic_glink_ss1_hs_in: endpoint { > + remote-endpoint = <&usb_1_ss1_dwc3_hs>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + > + pmic_glink_ss1_ss_in: endpoint { > + remote-endpoint = <&usb_1_ss1_qmpphy_out>; > + }; > + }; > + > + port@2 { > + reg = <2>; > + > + pmic_glink_ss1_sbu: endpoint { > + remote-endpoint = <&usb_1_ss1_sbu_mux>; > + }; > + }; > + }; > + }; > + }; > + > + reserved-memory { > + linux,cma { > + compatible = "shared-dma-pool"; > + size = <0x0 0x8000000>; > + reusable; > + linux,cma-default; > + }; > + }; > + > + sound { > + compatible = "qcom,x1e80100-sndcard"; > + model = "X1E80100-GalaxyBook4Edge"; > + audio-routing = "WooferLeft IN", "WSA WSA_SPK1 OUT", > + "TweeterLeft IN", "WSA WSA_SPK2 OUT", > + "WooferRight IN", "WSA2 WSA_SPK2 OUT", > + "TweeterRight IN", "WSA2 WSA_SPK2 OUT", > + "IN1_HPHL", "HPHL_OUT", > + "IN2_HPHR", "HPHR_OUT", > + "AMIC2", "MIC BIAS2", > + "VA DMIC0", "MIC BIAS3", > + "VA DMIC1", "MIC BIAS3", > + "VA DMIC2", "MIC BIAS1", > + "VA DMIC3", "MIC BIAS1", > + "TX SWR_INPUT1", "ADC2_OUTPUT"; > + > + wcd-playback-dai-link { > + link-name = "WCD Playback"; > + > + codec { > + sound-dai = <&wcd938x 0>, <&swr1 0>, <&lpass_rxmacro 0>; > + }; > + > + cpu { > + sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>; > + }; > + > + platform { > + sound-dai = <&q6apm>; > + }; > + }; > + > + wcd-capture-dai-link { > + link-name = "WCD Capture"; > + > + codec { > + sound-dai = <&wcd938x 1>, <&swr2 1>, <&lpass_txmacro 0>; > + }; > + > + cpu { > + sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>; > + }; > + > + platform { > + sound-dai = <&q6apm>; > + }; > + }; > + > + wsa-dai-link { > + link-name = "WSA Playback"; > + > + codec { > + sound-dai = <&left_woofer>, <&left_tweeter>, > + <&swr0 0>, <&lpass_wsamacro 0>, > + <&right_woofer>, <&right_tweeter>, > + <&swr3 0>, <&lpass_wsa2macro 0>; > + }; > + > + cpu { > + sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>; > + }; > + > + platform { > + sound-dai = <&q6apm>; > + }; > + }; > + > + va-dai-link { > + link-name = "VA Capture"; > + > + codec { > + sound-dai = <&lpass_vamacro 0>; > + }; > + > + cpu { > + sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>; > + }; > + > + platform { > + sound-dai = <&q6apm>; > + }; > + }; > + }; > + > + vreg_octa_vdd: regulator-octa-vdd { > + compatible = "regulator-fixed"; > + > + regulator-name = "VREG_OCTA_VDD"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + > + gpio = <&tlmm 111 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + > + pinctrl-0 = <&octa_vdd_en>; > + pinctrl-names = "default"; > + > + startup-delay-us = <1000>; > + regulator-enable-ramp-delay = <1000>; > + > + regulator-always-on; > + regulator-boot-on; > + }; > + > + vreg_display_vdd: regulator-display-vdd { > + compatible = "regulator-fixed"; > + > + regulator-name = "VREG_DISPLAY_VDD"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + > + gpio = <&tlmm 120 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + > + pinctrl-0 = <&display_vdd_en>; > + pinctrl-names = "default"; > + > + startup-delay-us = <400000>; > + regulator-enable-ramp-delay = <400000>; > + > + vin-supply = <&vreg_octa_vdd>; > + > + regulator-always-on; > + regulator-boot-on; > + }; > + > + vreg_edp_3p3: regulator-edp-3p3 { > + compatible = "regulator-fixed"; > + > + regulator-name = "VREG_EDP_3P3"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + > + gpio = <&tlmm 70 GPIO_ACTIVE_LOW>; > + enable-active-low; > + > + pinctrl-0 = <&edp_reg_en>; > + pinctrl-names = "default"; > + > + startup-delay-us = <1000>; > + regulator-enable-ramp-delay = <1000>; > + > + vin-supply = <&vreg_display_vdd>; > + > + regulator-always-on; > + regulator-boot-on; > + }; > + > + > + vreg_misc_3p3: regulator-misc-3p3 { > + compatible = "regulator-fixed"; > + > + regulator-name = "VREG_MISC_3P3"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + > + gpio = <&pm8550ve_8_gpios 6 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + > + pinctrl-0 = <&misc_3p3_reg_en>; > + pinctrl-names = "default"; > + > + regulator-boot-on; > + regulator-always-on; > + }; > + > + vph_pwr: regulator-vph-pwr { > + compatible = "regulator-fixed"; > + > + regulator-name = "vph_pwr"; > + regulator-min-microvolt = <3700000>; > + regulator-max-microvolt = <3700000>; > + > + regulator-always-on; > + regulator-boot-on; > + }; > + > + vreg_wcn_3p3: regulator-wcn-3p3 { > + compatible = "regulator-fixed"; > + > + regulator-name = "VREG_WCN_3P3"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + > + gpio = <&tlmm 214 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + > + pinctrl-0 = <&wcn_sw_en>; > + pinctrl-names = "default"; > + > + regulator-boot-on; > + regulator-always-on; > + }; > + > + usb-1-ss0-sbu-mux { > + compatible = "onnn,fsusb42", "gpio-sbu-mux"; > + > + enable-gpios = <&tlmm 168 GPIO_ACTIVE_LOW>; > + select-gpios = <&tlmm 167 GPIO_ACTIVE_HIGH>; > + > + pinctrl-0 = <&usb_1_ss0_sbu_default>; > + pinctrl-names = "default"; > + > + mode-switch; > + orientation-switch; > + > + port { > + usb_1_ss0_sbu_mux: endpoint { > + remote-endpoint = <&pmic_glink_ss0_sbu>; > + }; > + }; > + }; > + > + usb-1-ss1-sbu-mux { > + compatible = "onnn,fsusb42", "gpio-sbu-mux"; > + > + enable-gpios = <&tlmm 179 GPIO_ACTIVE_LOW>; > + select-gpios = <&tlmm 178 GPIO_ACTIVE_HIGH>; > + > + pinctrl-0 = <&usb_1_ss1_sbu_default>; > + pinctrl-names = "default"; > + > + mode-switch; > + orientation-switch; > + > + port { > + usb_1_ss1_sbu_mux: endpoint { > + remote-endpoint = <&pmic_glink_ss1_sbu>; > + }; > + }; > + }; > + > + wcn7850-pmu { > + compatible = "qcom,wcn7850-pmu"; > + > + wlan-enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>; > + bt-enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>; > + > + pinctrl-0 = <&wcn_wlan_bt_en>; > + pinctrl-names = "default"; > + > + regulators { > + vreg_pmu_rfa_cmn: ldo0 { > + regulator-name = "vreg_pmu_rfa_cmn"; > + }; > + > + vreg_pmu_aon_0p59: ldo1 { > + regulator-name = "vreg_pmu_aon_0p59"; > + }; > + > + vreg_pmu_wlcx_0p8: ldo2 { > + regulator-name = "vreg_pmu_wlcx_0p8"; > + }; > + > + vreg_pmu_wlmx_0p85: ldo3 { > + regulator-name = "vreg_pmu_wlmx_0p85"; > + }; > + > + vreg_pmu_btcmx_0p85: ldo4 { > + regulator-name = "vreg_pmu_btcmx_0p85"; > + }; > + > + vreg_pmu_rfa_0p8: ldo5 { > + regulator-name = "vreg_pmu_rfa_0p8"; > + }; > + > + vreg_pmu_rfa_1p2: ldo6 { > + regulator-name = "vreg_pmu_rfa_1p2"; > + }; > + > + vreg_pmu_rfa_1p8: ldo7 { > + regulator-name = "vreg_pmu_rfa_1p8"; > + }; > + > + vreg_pmu_pcie_0p9: ldo8 { > + regulator-name = "vreg_pmu_pcie_0p9"; > + }; > + > + vreg_pmu_pcie_1p8: ldo9 { > + regulator-name = "vreg_pmu_pcie_1p8"; > + }; > + }; > + }; > +}; > + > +&apps_rsc { > + regulators-0 { > + compatible = "qcom,pm8550-rpmh-regulators"; > + qcom,pmic-id = "b"; > + > + vdd-bob1-supply = <&vph_pwr>; > + vdd-bob2-supply = <&vph_pwr>; > + vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>; > + vdd-l2-l13-l14-supply = <&vreg_bob1>; > + vdd-l5-l16-supply = <&vreg_bob1>; > + vdd-l6-l7-supply = <&vreg_bob2>; > + vdd-l8-l9-supply = <&vreg_bob1>; > + vdd-l12-supply = <&vreg_s5j_1p2>; > + vdd-l15-supply = <&vreg_s4c_1p8>; > + vdd-l17-supply = <&vreg_bob2>; > + > + vreg_bob1: bob1 { > + regulator-name = "vreg_bob1"; > + regulator-min-microvolt = <3008000>; > + regulator-max-microvolt = <3960000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_bob2: bob2 { > + regulator-name = "vreg_bob2"; > + regulator-min-microvolt = <2504000>; > + regulator-max-microvolt = <3008000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l1b_1p8: ldo1 { > + regulator-name = "vreg_l1b_1p8"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l2b_3p0: ldo2 { > + regulator-name = "vreg_l2b_3p0"; > + regulator-min-microvolt = <3072000>; > + regulator-max-microvolt = <3100000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l4b_1p8: ldo4 { > + regulator-name = "vreg_l4b_1p8"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l5b_3p0: ldo5 { > + regulator-name = "vreg_l5b_3p0"; > + regulator-min-microvolt = <3000000>; > + regulator-max-microvolt = <3000000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l6b_1p8: ldo6 { > + regulator-name = "vreg_l6b_1p8"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <2960000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l7b_2p8: ldo7 { > + regulator-name = "vreg_l7b_2p8"; > + regulator-always-on; > + regulator-min-microvolt = <2800000>; > + regulator-max-microvolt = <2800000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l8b_3p0: ldo8 { > + regulator-name = "vreg_l8b_3p0"; > + regulator-min-microvolt = <3072000>; > + regulator-max-microvolt = <3072000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l9b_2p9: ldo9 { > + regulator-name = "vreg_l9b_2p9"; > + regulator-min-microvolt = <2960000>; > + regulator-max-microvolt = <2960000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l10b_1p8: ldo10 { > + regulator-name = "vreg_l10b_1p8"; > + regulator-always-on; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l12b_1p2: ldo12 { > + regulator-name = "vreg_l12b_1p2"; > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1200000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + regulator-always-on; > + }; > + > + vreg_l13b_3p0: ldo13 { > + regulator-name = "vreg_l13b_3p0"; > + regulator-min-microvolt = <3072000>; > + regulator-max-microvolt = <3100000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l14b_3p0: ldo14 { > + regulator-name = "vreg_l14b_3p0"; > + regulator-min-microvolt = <3072000>; > + regulator-max-microvolt = <3072000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l15b_1p8: ldo15 { > + regulator-name = "vreg_l15b_1p8"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + regulator-always-on; > + }; > + > + vreg_l16b_2p9: ldo16 { > + regulator-name = "vreg_l16b_2p9"; > + regulator-min-microvolt = <2912000>; > + regulator-max-microvolt = <2912000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l17b_2p5: ldo17 { > + regulator-name = "vreg_l17b_2p5"; > + regulator-min-microvolt = <2504000>; > + regulator-max-microvolt = <2504000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + }; > + > + regulators-1 { > + compatible = "qcom,pm8550ve-rpmh-regulators"; > + qcom,pmic-id = "c"; > + > + vdd-l1-supply = <&vreg_s5j_1p2>; > + vdd-l2-supply = <&vreg_s1f_0p7>; > + vdd-l3-supply = <&vreg_s1f_0p7>; > + vdd-s4-supply = <&vph_pwr>; > + > + vreg_s4c_1p8: smps4 { > + regulator-name = "vreg_s4c_1p8"; > + regulator-min-microvolt = <1856000>; > + regulator-max-microvolt = <2000000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l1c_1p2: ldo1 { > + regulator-name = "vreg_l1c_1p2"; > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1200000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l2c_0p8: ldo2 { > + regulator-name = "vreg_l2c_0p8"; > + regulator-min-microvolt = <880000>; > + regulator-max-microvolt = <920000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l3c_0p8: ldo3 { > + regulator-name = "vreg_l3c_0p8"; > + regulator-min-microvolt = <880000>; > + regulator-max-microvolt = <920000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + }; > + > + regulators-2 { > + compatible = "qcom,pmc8380-rpmh-regulators"; > + qcom,pmic-id = "d"; > + > + vdd-l1-supply = <&vreg_s1f_0p7>; > + vdd-l2-supply = <&vreg_s1f_0p7>; > + vdd-l3-supply = <&vreg_s4c_1p8>; > + vdd-s1-supply = <&vph_pwr>; > + > + vreg_l1d_0p8: ldo1 { > + regulator-name = "vreg_l1d_0p8"; > + regulator-min-microvolt = <880000>; > + regulator-max-microvolt = <920000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l2d_0p9: ldo2 { > + regulator-name = "vreg_l2d_0p9"; > + regulator-min-microvolt = <912000>; > + regulator-max-microvolt = <920000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l3d_1p8: ldo3 { > + regulator-name = "vreg_l3d_1p8"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + }; > + > + regulators-3 { > + compatible = "qcom,pmc8380-rpmh-regulators"; > + qcom,pmic-id = "e"; > + > + vdd-l2-supply = <&vreg_s1f_0p7>; > + vdd-l3-supply = <&vreg_s5j_1p2>; > + > + vreg_l2e_0p8: ldo2 { > + regulator-name = "vreg_l2e_0p8"; > + regulator-min-microvolt = <880000>; > + regulator-max-microvolt = <920000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l3e_1p2: ldo3 { > + regulator-name = "vreg_l3e_1p2"; > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1200000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + }; > + > + regulators-4 { > + compatible = "qcom,pmc8380-rpmh-regulators"; > + qcom,pmic-id = "f"; > + > + vdd-l1-supply = <&vreg_s5j_1p2>; > + vdd-l2-supply = <&vreg_s5j_1p2>; > + vdd-l3-supply = <&vreg_s5j_1p2>; > + vdd-s1-supply = <&vph_pwr>; > + > + vreg_s1f_0p7: smps1 { > + regulator-name = "vreg_s1f_0p7"; > + regulator-min-microvolt = <700000>; > + regulator-max-microvolt = <1100000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l1f_1p0: ldo1 { > + regulator-name = "vreg_l1f_1p0"; > + regulator-min-microvolt = <1024000>; > + regulator-max-microvolt = <1024000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l2f_1p0: ldo2 { > + regulator-name = "vreg_l2f_1p0"; > + regulator-min-microvolt = <1024000>; > + regulator-max-microvolt = <1024000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l3f_1p0: ldo3 { > + regulator-name = "vreg_l3f_1p0"; > + regulator-min-microvolt = <1024000>; > + regulator-max-microvolt = <1024000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + }; > + > + regulators-6 { > + compatible = "qcom,pm8550ve-rpmh-regulators"; > + qcom,pmic-id = "i"; > + > + vdd-l1-supply = <&vreg_s4c_1p8>; > + vdd-l2-supply = <&vreg_s5j_1p2>; > + vdd-l3-supply = <&vreg_s1f_0p7>; > + vdd-s1-supply = <&vph_pwr>; > + vdd-s2-supply = <&vph_pwr>; > + > + vreg_s1i_0p9: smps1 { > + regulator-name = "vreg_s1i_0p9"; > + regulator-min-microvolt = <900000>; > + regulator-max-microvolt = <920000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_s2i_1p0: smps2 { > + regulator-name = "vreg_s2i_1p0"; > + regulator-min-microvolt = <1000000>; > + regulator-max-microvolt = <1100000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l1i_1p8: ldo1 { > + regulator-name = "vreg_l1i_1p8"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l2i_1p2: ldo2 { > + regulator-name = "vreg_l2i_1p2"; > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1200000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l3i_0p8: ldo3 { > + regulator-name = "vreg_l3i_0p8"; > + regulator-min-microvolt = <880000>; > + regulator-max-microvolt = <920000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + }; > + > + regulators-7 { > + compatible = "qcom,pm8550ve-rpmh-regulators"; > + qcom,pmic-id = "j"; > + > + vdd-l1-supply = <&vreg_s1f_0p7>; > + vdd-l2-supply = <&vreg_s5j_1p2>; > + vdd-l3-supply = <&vreg_s1f_0p7>; > + vdd-s5-supply = <&vph_pwr>; > + > + vreg_s5j_1p2: smps5 { > + regulator-name = "vreg_s5j_1p2"; > + regulator-min-microvolt = <1256000>; > + regulator-max-microvolt = <1304000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l1j_0p8: ldo1 { > + regulator-name = "vreg_l1j_0p8"; > + regulator-min-microvolt = <880000>; > + regulator-max-microvolt = <920000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l2j_1p2: ldo2 { > + regulator-name = "vreg_l2j_1p2"; > + regulator-min-microvolt = <1256000>; > + regulator-max-microvolt = <1256000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l3j_0p8: ldo3 { > + regulator-name = "vreg_l3j_0p8"; > + regulator-min-microvolt = <880000>; > + regulator-max-microvolt = <920000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + }; > +}; > + > +&camcc { > + status = "okay"; > +}; > + > +&gpu { > + status = "okay"; > + > + zap-shader { > + firmware-name = "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/qcdxkmsuc8380.mbn"; > + }; > +}; > + > +&i2c0 { > + clock-frequency = <400000>; > + > + status = "okay"; > + > + keyboard@5 { > + compatible = "hid-over-i2c"; > + reg = <0x5>; > + > + hid-descr-addr = <0x20>; > + interrupts-extended = <&tlmm 67 IRQ_TYPE_LEVEL_LOW>; > + > + pinctrl-0 = <&kybd_default>; > + pinctrl-names = "default"; > + > + wakeup-source; > + }; > +}; > + > +&i2c5 { > + clock-frequency = <400000>; > + > + status = "okay"; > + > + eusb5_repeater: redriver@43 { > + compatible = "nxp,ptn3222"; > + reg = <0x43>; > + #phy-cells = <0>; > + > + vdd3v3-supply = <&vreg_l13b_3p0>; > + vdd1v8-supply = <&vreg_l4b_1p8>; > + > + reset-gpios = <&tlmm 7 GPIO_ACTIVE_LOW>; > + > + pinctrl-0 = <&eusb5_reset_n>; > + pinctrl-names = "default"; > + }; > + > + eusb6_repeater: redriver@4f { > + compatible = "nxp,ptn3222"; > + reg = <0x4f>; > + #phy-cells = <0>; > + > + vdd3v3-supply = <&vreg_l13b_3p0>; > + vdd1v8-supply = <&vreg_l4b_1p8>; > + > + reset-gpios = <&tlmm 184 GPIO_ACTIVE_LOW>; > + > + pinctrl-0 = <&eusb6_reset_n>; > + pinctrl-names = "default"; > + }; > +}; > + > + > +&i2c8 { > + clock-frequency = <400000>; > + > + status = "okay"; > + > + touchscreen@5d { > + compatible = "hid-over-i2c"; > + reg = <0x5d>; > + > + hid-descr-addr = <0x1>; > + //interrupts-extended = <&tlmm 34 IRQ_TYPE_LEVEL_LOW>; > + > + vdd-supply = <&vreg_misc_3p3>; > + > + //pinctrl-0 = <&ts0_default>; > + //pinctrl-names = "default"; > + }; > +}; > + > +&i2c13 { > + clock-frequency = <400000>; > + > + status = "okay"; > +}; > + > +&lpass_tlmm { > + spkr_01_sd_n_active: spkr-01-sd-n-active-state { > + pins = "gpio12"; > + function = "gpio"; > + drive-strength = <16>; > + bias-disable; > + output-low; > + }; > + > + spkr_23_sd_n_active: spkr-23-sd-n-active-state { > + pins = "gpio13"; > + function = "gpio"; > + drive-strength = <16>; > + bias-disable; > + output-low; > + }; > +}; > + > +&lpass_vamacro { > + pinctrl-0 = <&dmic01_default>, <&dmic23_default>; > + pinctrl-names = "default"; > + > + vdd-micb-supply = <&vreg_l1b_1p8>; > + qcom,dmic-sample-rate = <4800000>; > +}; > + > +&mdss { > + status = "okay"; > +}; > + > +&mdss_dp0 { > + status = "okay"; > +}; > + > +&mdss_dp0_out { > + data-lanes = <0 1>; > + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>; > +}; > + > +&mdss_dp1 { > + status = "okay"; > +}; > + > +&mdss_dp1_out { > + data-lanes = <0 1>; > + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>; > +}; > + > +&mdss_dp2 { > + status = "okay"; > +}; > + > +&mdss_dp2_out { > + data-lanes = <0 1 2 3>; > +}; > + > +&mdss_dp3 { > + /delete-property/ #sound-dai-cells; > + > + pinctrl-0 = <&edp0_hpd_default>; > + pinctrl-names = "default"; > + > + status = "okay"; > + > + aux-bus { > + panel: panel { > + enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>; > + power-supply = <&vreg_edp_3p3>; > + no-hpd; > + > + pinctrl-0 = <&edp_bl_en>; > + pinctrl-names = "default"; > + > + port { > + edp_panel_in: endpoint { > + remote-endpoint = <&mdss_dp3_out>; > + }; > + }; > + }; > + }; > + > + ports { > + port@1 { > + reg = <1>; > + mdss_dp3_out: endpoint { > + data-lanes = <0 1 2 3>; > + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000>; > + > + remote-endpoint = <&edp_panel_in>; > + }; > + }; > + }; > +}; > + > + > +&mdss_dp3_phy { > + vdda-phy-supply = <&vreg_l3j_0p8>; > + vdda-pll-supply = <&vreg_l2j_1p2>; > + > + status = "okay"; > +}; > + > +&pcie4 { > + perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>; > + wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>; > + > + pinctrl-0 = <&pcie4_default>; > + pinctrl-names = "default"; > + > + status = "okay"; > +}; > + > +&pcie4_phy { > + vdda-phy-supply = <&vreg_l3i_0p8>; > + vdda-pll-supply = <&vreg_l3e_1p2>; > + > + status = "okay"; > +}; > + > +&pcie4_port0 { > + wifi@0 { > + compatible = "pci17cb,1107"; > + reg = <0x10000 0x0 0x0 0x0 0x0>; > + > + vddaon-supply = <&vreg_pmu_aon_0p59>; > + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>; > + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>; > + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>; > + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>; > + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>; > + vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>; > + vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>; > + vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>; > + }; > +}; > + > +&pm8550ve_8_gpios { > + misc_3p3_reg_en: misc-3p3-reg-en-state { > + pins = "gpio6"; > + function = "normal"; > + bias-disable; > + input-disable; > + output-enable; > + drive-push-pull; > + power-source = <1>; /* 1.8 V */ > + qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>; > + }; > +}; > + > +&pmc8380_3_gpios { > + edp_bl_en: edp-bl-en-state { > + pins = "gpio4"; > + function = "normal"; > + power-source = <1>; /* 1.8V */ > + input-disable; > + output-enable; > + }; > +}; > + > +&qupv3_0 { > + status = "okay"; > +}; > + > +&qupv3_1 { > + status = "okay"; > +}; > + > +&qupv3_2 { > + status = "okay"; > +}; > + > +&remoteproc_adsp { > + firmware-name = "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/qcadsp8380.mbn", > + "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/adsp_dtbs.elf"; > + > + status = "okay"; > +}; > + > +&remoteproc_cdsp { > + firmware-name = "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/qccdsp8380.mbn", > + "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/cdsp_dtbs.elf"; > + > + status = "okay"; > +}; > + > +&swr0 { > + status = "okay"; > + > + pinctrl-0 = <&wsa_swr_active>, <&spkr_01_sd_n_active>; > + pinctrl-names = "default"; > + > + /* WSA8845, Left Woofer */ > + left_woofer: speaker@0,0 { > + compatible = "sdw20217020400"; > + reg = <0 0>; > + reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>; > + #sound-dai-cells = <0>; > + sound-name-prefix = "WooferLeft"; > + vdd-1p8-supply = <&vreg_l15b_1p8>; > + vdd-io-supply = <&vreg_l12b_1p2>; > + qcom,port-mapping = <1 2 3 7 10 13>; > + }; > + > + /* WSA8845, Left Tweeter */ > + left_tweeter: speaker@0,1 { > + compatible = "sdw20217020400"; > + reg = <0 1>; > + reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>; > + #sound-dai-cells = <0>; > + sound-name-prefix = "TweeterLeft"; > + vdd-1p8-supply = <&vreg_l15b_1p8>; > + vdd-io-supply = <&vreg_l12b_1p2>; > + qcom,port-mapping = <4 5 6 7 11 13>; > + }; > +}; > + > +&swr1 { > + status = "okay"; > + > + /* WCD9385 RX */ > + wcd_rx: codec@0,4 { > + compatible = "sdw20217010d00"; > + reg = <0 4>; > + qcom,rx-port-mapping = <1 2 3 4 5>; > + }; > +}; > + > +&swr2 { > + status = "okay"; > + > + /* WCD9385 TX */ > + wcd_tx: codec@0,3 { > + compatible = "sdw20217010d00"; > + reg = <0 3>; > + qcom,tx-port-mapping = <2 2 3 4>; > + }; > +}; > + > +&swr3 { > + status = "okay"; > + > + pinctrl-0 = <&wsa2_swr_active>, <&spkr_23_sd_n_active>; > + pinctrl-names = "default"; > + > + /* WSA8845, Right Woofer */ > + right_woofer: speaker@0,0 { > + compatible = "sdw20217020400"; > + reg = <0 0>; > + reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>; > + #sound-dai-cells = <0>; > + sound-name-prefix = "WooferRight"; > + vdd-1p8-supply = <&vreg_l15b_1p8>; > + vdd-io-supply = <&vreg_l12b_1p2>; > + qcom,port-mapping = <1 2 3 7 10 13>; > + }; > + > + /* WSA8845, Right Tweeter */ > + right_tweeter: speaker@0,1 { > + compatible = "sdw20217020400"; > + reg = <0 1>; > + reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>; > + #sound-dai-cells = <0>; > + sound-name-prefix = "TweeterRight"; > + vdd-1p8-supply = <&vreg_l15b_1p8>; > + vdd-io-supply = <&vreg_l12b_1p2>; > + qcom,port-mapping = <4 5 6 7 11 13>; > + }; > +}; > + > +&tlmm { > + gpio-reserved-ranges = <34 2>, /* Unused */ > + <44 4>; /* SPI (TPM) */ > + > + edp_reg_en: edp-reg-en-state { > + pins = "gpio70"; > + function = "gpio"; > + drive-strength = <16>; > + bias-pull-up; > + output-low; > + }; > + > + octa_vdd_en: octa-vdd-en-state { > + pins = "gpio111"; > + function = "gpio"; > + drive-strength = <16>; > + bias-pull-up; > + output-high; > + }; > + > + display_vdd_en: display-vdd-en-state { > + pins = "gpio120"; > + function = "gpio"; > + drive-strength = <16>; > + bias-pull-up; > + output-high; > + }; > + > + edp0_hpd_default: edp0-hpd-default-state { > + pins = "gpio119"; > + function = "edp0_hot"; > + bias-pull-down; > + input-enable; > + drive-strength = <2>; > + }; > + > + > + hall_int_n_default: hall-int-n-state { > + pins = "gpio92"; > + function = "gpio"; > + bias-disable; > + }; > + > + kybd_default: kybd-default-state { > + pins = "gpio67"; > + function = "gpio"; > + bias-disable; > + }; > + > + hdmi_hpd_default: hdmi-hpd-default-state { > + pins = "gpio126"; > + function = "usb2_dp"; > + bias-disable; > + }; > + > + eusb5_reset_n: eusb5-reset-n-state { > + pins = "gpio7"; > + function = "gpio"; > + drive-strength = <2>; > + bias-disable; > + output-low; > + }; > + > + eusb6_reset_n: eusb6-reset-n-state { > + pins = "gpio184"; > + function = "gpio"; > + drive-strength = <2>; > + bias-disable; > + output-low; > + }; > + > + pcie4_default: pcie4-default-state { > + clkreq-n-pins { > + pins = "gpio147"; > + function = "pcie4_clk"; > + drive-strength = <2>; > + bias-pull-up; > + }; > + > + perst-n-pins { > + pins = "gpio146"; > + function = "gpio"; > + drive-strength = <2>; > + bias-disable; > + }; > + > + wake-n-pins { > + pins = "gpio148"; > + function = "gpio"; > + drive-strength = <2>; > + bias-pull-up; > + }; > + }; > + > + tpad_default: tpad-default-state { > + pins = "gpio3"; > + function = "gpio"; > + bias-disable; > + }; > + > + ts0_default: ts0-default-state { > + int-n-pins { > + pins = "gpio51"; > + function = "gpio"; > + bias-disable; > + }; > + > + reset-n-pins { > + pins = "gpio48"; > + function = "gpio"; > + output-high; > + drive-strength = <16>; > + }; > + }; > + > + usb_1_ss0_sbu_default: usb-1-ss0-sbu-state { > + mode-pins { > + pins = "gpio166"; > + function = "gpio"; > + bias-disable; > + drive-strength = <2>; > + output-high; > + }; > + > + oe-n-pins { > + pins = "gpio168"; > + function = "gpio"; > + bias-disable; > + drive-strength = <2>; > + }; > + > + sel-pins { > + pins = "gpio167"; > + function = "gpio"; > + bias-disable; > + drive-strength = <2>; > + }; > + > + }; > + > + usb_1_ss1_sbu_default: usb-1-ss1-sbu-state { > + mode-pins { > + pins = "gpio177"; > + function = "gpio"; > + bias-disable; > + drive-strength = <2>; > + output-high; > + }; > + > + oe-n-pins { > + pins = "gpio179"; > + function = "gpio"; > + bias-disable; > + drive-strength = <2>; > + }; > + > + sel-pins { > + pins = "gpio178"; > + function = "gpio"; > + bias-disable; > + drive-strength = <2>; > + }; > + }; > + > + wcn_sw_en: wcn-sw-en-state { > + pins = "gpio214"; > + function = "gpio"; > + drive-strength = <2>; > + bias-disable; > + }; > + > + wcn_wlan_bt_en: wcn-wlan-bt-en-state { > + pins = "gpio116", "gpio117"; > + function = "gpio"; > + drive-strength = <2>; > + bias-disable; > + }; > + > + wcd_default: wcd-reset-n-active-state { > + pins = "gpio191"; > + function = "gpio"; > + drive-strength = <16>; > + bias-disable; > + output-low; > + }; > +}; > + > +&ufs_mem_hc { > + status = "okay"; > + > + reset-gpios = <&tlmm 238 GPIO_ACTIVE_LOW>; > + vcc-supply = <&vreg_l17b_2p5>; > + vcc-max-microamp = <600000>; > + > + vccq-supply = <&vreg_l2i_1p2>; > + vccq-max-microamp = <600000>; > +}; > + > +&ufs_mem_phy { > + status = "okay"; > + > + vdda-phy-supply = <&vreg_l3i_0p8>; > + vdda-pll-supply = <&vreg_l3e_1p2>; > +}; > + > +&uart14 { > + status = "okay"; > + > + bluetooth { > + compatible = "qcom,wcn7850-bt"; > + max-speed = <3200000>; > + > + vddaon-supply = <&vreg_pmu_aon_0p59>; > + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>; > + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>; > + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>; > + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>; > + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>; > + vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>; > + }; > +}; > + > +&uart21 { > + compatible = "qcom,geni-debug-uart"; > + status = "okay"; > +}; > + > +&usb_1_ss0 { > + status = "okay"; > +}; > + > +&usb_1_ss0_hsphy { > + vdd-supply = <&vreg_l3j_0p8>; > + vdda12-supply = <&vreg_l2j_1p2>; > + > + status = "okay"; > +}; > + > +&usb_1_ss0_qmpphy { > + vdda-phy-supply = <&vreg_l2j_1p2>; > + vdda-pll-supply = <&vreg_l1j_0p8>; > + > + status = "okay"; > +}; > + > +&usb_1_ss0 { > + dr_mode = "host"; > +}; > + > +&usb_1_ss0_dwc3_hs { > + remote-endpoint = <&pmic_glink_ss0_hs_in>; > +}; > + > +&usb_1_ss0_qmpphy_out { > + remote-endpoint = <&pmic_glink_ss0_ss_in>; > +}; > + > +&usb_1_ss1 { > + status = "okay"; > +}; > + > +&usb_1_ss1_hsphy { > + vdd-supply = <&vreg_l3j_0p8>; > + vdda12-supply = <&vreg_l2j_1p2>; > + > + status = "okay"; > +}; > + > +&usb_1_ss1_qmpphy { > + vdda-phy-supply = <&vreg_l2j_1p2>; > + vdda-pll-supply = <&vreg_l2d_0p9>; > + > + status = "okay"; > +}; > + > +&usb_1_ss1 { > + dr_mode = "host"; > +}; > + > +&usb_1_ss1_dwc3_hs { > + remote-endpoint = <&pmic_glink_ss1_hs_in>; > +}; > + > +&usb_1_ss1_qmpphy_out { > + remote-endpoint = <&pmic_glink_ss1_ss_in>; > +}; > + > +&usb_1_ss2_qmpphy { > + vdda-phy-supply = <&vreg_l2j_1p2>; > + vdda-pll-supply = <&vreg_l2d_0p9>; > + > + /delete-property/ mode-switch; > + /delete-property/ orientation-switch; > + > + status = "okay"; > + > + ports { > + port@0 { > + #address-cells = <1>; > + #size-cells = <0>; > + > + /delete-node/ endpoint; > + > + usb_1_ss2_qmpphy_out_dp: endpoint@0 { > + reg = <0>; > + > + data-lanes = <3 2 1 0>; > + remote-endpoint = <&hdmi_bridge_dp_in>; > + }; > + }; > + }; > +}; > + > + > +/* MP0 goes to the USB-A port(USB3) and FPC */ > +&usb_mp { > + status = "okay"; > + > + /* Limit to single port */ > + phys = <&usb_mp_hsphy0>, <&usb_mp_qmpphy0>; > + phy-names = "usb2-0", "usb3-0"; > +}; > + > +&usb_mp_hsphy0 { > + vdd-supply = <&vreg_l2e_0p8>; > + vdda12-supply = <&vreg_l3e_1p2>; > + > + phys = <&eusb6_repeater>; > + > + status = "okay"; > +}; > + > +&usb_mp_qmpphy0 { > + vdda-phy-supply = <&vreg_l3e_1p2>; > + vdda-pll-supply = <&vreg_l3c_0p8>; > + > + status = "okay"; > +}; > diff --git a/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts b/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts > new file mode 100644 > index 000000000..333a69a8a > --- /dev/null > +++ b/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts > @@ -0,0 +1,28 @@ > +// SPDX-License-Identifier: BSD-3-Clause > + > +/dts-v1/; > + > +#include "x1-samsung-galaxy-book4-edge.dtsi" > + > +/ { > + model = "Samsung Galaxy Book4 Edge (14 inch)"; > + compatible = "samsung,galaxy-book4-edge-14", "samsung,galaxy-book4-edge", > + "qcom,x1e80100"; > +}; > + > +&i2c13 { > + touchpad@40 { > + compatible = "hid-over-i2c"; > + reg = <0x40>; > + > + hid-descr-addr = <0xe>; > + interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>; > + > + pinctrl-0 = <&tpad_default>; > + pinctrl-names = "default"; > + }; > +}; > + > +&panel { > + compatible = "samsung,atna40cu07", "samsung,atna33xc20"; > +}; > diff --git a/arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts b/arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts > new file mode 100644 > index 000000000..947eea411 > --- /dev/null > +++ b/arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts > @@ -0,0 +1,31 @@ > +// SPDX-License-Identifier: BSD-3-Clause > + > +/dts-v1/; > + > +#include "x1-samsung-galaxy-book4-edge.dtsi" > + > +/ { > + model = "Samsung Galaxy Book4 Edge (16 inch)"; > + compatible = "samsung,galaxy-book4-edge-16", "samsung,galaxy-book4-edge", > + "qcom,x1e80100"; > +}; > + > +&i2c13 { > + touchpad@50 { > + compatible = "hid-over-i2c"; > + reg = <0x50>; > + > + hid-descr-addr = <0xd1>; > + interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>; > + > + vdd-supply = <&vreg_misc_3p3>; > + vddl-supply = <&vreg_l15b_1p8>; > + > + pinctrl-0 = <&tpad_default>; > + pinctrl-names = "default"; > + }; > +}; > + > +&panel { > + compatible = "samsung,atna60cl07", "samsung,atna33xc20"; > +}; > -- > 2.43.0 > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees 2026-09-28 16:44 ` Antheas Kapenekakis @ 2026-09-28 16:45 ` Antheas Kapenekakis 2026-09-28 18:41 ` Maxim Storetvedt 1 sibling, 0 replies; 13+ messages in thread From: Antheas Kapenekakis @ 2026-09-28 16:45 UTC (permalink / raw) To: Maxim Storetvedt Cc: andersson, robh, krzk+dt, conor+dt, marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel, abel.vesa, abel.vesa, johan, konradybcio, kirill On Mon, 28 Sept 2026 at 18:44, Antheas Kapenekakis <kapenekakis@gmail.com> wrote: > > On Sun, 20 Sept 2026 at 20:41, Maxim Storetvedt <mstoretv@cern.ch> wrote: > > > > Adds devicetrees for the 14-inch and 16-inch hamoa SKUs of the Samsung Galaxy Book4 Edge. > > > > These use a common dtsi derived from nodes that were able to work on Linux > > from the initial Galaxy Book4 Edge DTS by Marcus: > > > > Link: https://lore.kernel.org/all/p3mhtj2rp6y2ezuwpd2gu7dwx5cbckfu4s4pazcudi4j2wogtr@4yecb2bkeyms/ > > > > combined with the patch series the Honor Magicbook Art 14, which shares device similarities: > > > > Link: https://lore.kernel.org/all/20260629154812.9066-1-mail@etehtsea.me/ > > Links go in the bottom, Based-on-a-patch is not a thing, you may add a > Coby as noted in a parallel thread. > > > as well as a few more adjustments on top of that again to get additional features working. > > Special thanks to Jesse Ahn for helping expand on what would eventually become this dtsi. > > Hi Maxim, > I tested this series on a kernel with various other backports on two > european (norwegian market) galaxy book4 edges. > > Specifically, the 14in NP940XMA and the 15.6in (not 16) NP750XQB. > Specifically, the later is an X1Plus variant that came out a year > later with cheaper components. It does not work properly on either on > them. I was hoping that at least the 14in model would work as is but > no. > > My test devices have proprietary Samsung battery controllers > (ENE-KB9058) and type C controllers (Samsung EmuEC). Also the speaker > amplifiers are different. So the battery reporting, audio, and USB C > ports do not work at all using your DTs. The TPM does not bind either > but you do not claim that it does. At least they got me to boot and > for that I am grateful. > > Other stuff also does not work, but I am just listing the main ones. > > I suggest you change the -14/-16 suffixes on both models with > something more specific. > > The prior patches in the series look fine to my eyes. I did not A/B > test them, just pulled them in. Wrong email again. Sorry. Please reply to my kernel email, best. > Best, > Antheas > > > Based-on-a-patch-by: Marcus Glocker <marcus@nazgul.ch> > > Based-on-a-patch-by: Kirill A. Korinsky <kirill@korins.ky> > > Signed-off-by: Maxim Storetvedt <mstoretv@cern.ch> > > --- > > arch/arm64/boot/dts/qcom/Makefile | 2 + > > .../qcom/x1-samsung-galaxy-book4-edge.dtsi | 1537 +++++++++++++++++ > > .../x1e80100-samsung-galaxy-book4-edge-14.dts | 28 + > > .../x1e84100-samsung-galaxy-book4-edge-16.dts | 31 + > > 4 files changed, 1598 insertions(+) > > create mode 100644 arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi > > create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts > > create mode 100644 arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts > > > > diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile > > index 5c19f945c..d8273f86f 100644 > > --- a/arch/arm64/boot/dts/qcom/Makefile > > +++ b/arch/arm64/boot/dts/qcom/Makefile > > @@ -498,3 +498,5 @@ x1p64100-microsoft-denali-el2-dtbs := x1p64100-microsoft-denali.dtb x1-el2.dtbo > > dtb-$(CONFIG_ARCH_QCOM) += x1p64100-microsoft-denali.dtb x1p64100-microsoft-denali-el2.dtb > > x1p42100-microsoft-sp12in-el2-dtbs := x1p42100-microsoft-sp12in.dtb x1-el2.dtbo > > dtb-$(CONFIG_ARCH_QCOM) += x1p42100-microsoft-sp12in.dtb x1p42100-microsoft-sp12in-el2.dtb > > +dtb-$(CONFIG_ARCH_QCOM) += x1e80100-samsung-galaxy-book4-edge-14.dtb > > +dtb-$(CONFIG_ARCH_QCOM) += x1e84100-samsung-galaxy-book4-edge-16.dtb > > diff --git a/arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi b/arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi > > new file mode 100644 > > index 000000000..51ec68bba > > --- /dev/null > > +++ b/arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi > > @@ -0,0 +1,1537 @@ > > +// SPDX-License-Identifier: BSD-3-Clause > > +/* > > + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. > > + * Copyright (c) 2025 Kirill A. Korinsky <kirill@korins.ky> > > + * Copyright (c) 2025 Valentin Manea <valentin.manea@mrs.ro> > > + */ > > + > > +/dts-v1/; > > + > > +#include <dt-bindings/gpio/gpio.h> > > +#include <dt-bindings/input/gpio-keys.h> > > +#include <dt-bindings/input/input.h> > > +#include <dt-bindings/pinctrl/qcom,pmic-gpio.h> > > +#include <dt-bindings/regulator/qcom,rpmh-regulator.h> > > + > > +#include "hamoa.dtsi" > > +#include "hamoa-pmics.dtsi" > > + > > +/ { > > + model = "Samsung Galaxy Book4 Edge"; > > + compatible = "samsung,galaxy-book4-edge", "qcom,x1e80100"; > > + chassis-type = "laptop"; > > + > > + aliases { > > + serial0 = &uart21; > > + serial1 = &uart14; > > + }; > > + > > + wcd938x: audio-codec { > > + compatible = "qcom,wcd9385-codec"; > > + > > + pinctrl-0 = <&wcd_default>; > > + pinctrl-names = "default"; > > + > > + qcom,micbias1-microvolt = <1800000>; > > + qcom,micbias2-microvolt = <1800000>; > > + qcom,micbias3-microvolt = <1800000>; > > + qcom,micbias4-microvolt = <1800000>; > > + qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>; > > + qcom,mbhc-headset-vthreshold-microvolt = <1700000>; > > + qcom,mbhc-headphone-vthreshold-microvolt = <50000>; > > + qcom,rx-device = <&wcd_rx>; > > + qcom,tx-device = <&wcd_tx>; > > + > > + reset-gpios = <&tlmm 191 GPIO_ACTIVE_LOW>; > > + > > + vdd-buck-supply = <&vreg_l15b_1p8>; > > + vdd-rxtx-supply = <&vreg_l15b_1p8>; > > + vdd-io-supply = <&vreg_l15b_1p8>; > > + vdd-mic-bias-supply = <&vreg_bob1>; > > + > > + #sound-dai-cells = <1>; > > + }; > > + > > + gpio-keys { > > + compatible = "gpio-keys"; > > + > > + pinctrl-0 = <&hall_int_n_default>; > > + pinctrl-names = "default"; > > + > > + switch-lid { > > + gpios = <&tlmm 92 GPIO_ACTIVE_LOW>; > > + linux,input-type = <EV_SW>; > > + linux,code = <SW_LID>; > > + wakeup-source; > > + wakeup-event-action = <EV_ACT_DEASSERTED>; > > + }; > > + }; > > + > > + hdmi-bridge { > > + compatible = "realtek,rtd2171"; > > + > > + pinctrl-0 = <&hdmi_hpd_default>; > > + pinctrl-names = "default"; > > + > > + ports { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + port@0 { > > + reg = <0>; > > + > > + hdmi_bridge_dp_in: endpoint { > > + remote-endpoint = <&usb_1_ss2_qmpphy_out_dp>; > > + }; > > + }; > > + > > + port@1 { > > + reg = <1>; > > + > > + hdmi_bridge_tmds_out: endpoint { > > + remote-endpoint = <&hdmi_con>; > > + }; > > + }; > > + }; > > + }; > > + > > + hdmi-connector { > > + compatible = "hdmi-connector"; > > + type = "a"; > > + > > + port { > > + hdmi_con: endpoint { > > + remote-endpoint = <&hdmi_bridge_tmds_out>; > > + }; > > + }; > > + }; > > + > > + pmic-glink { > > + compatible = "qcom,x1e80100-pmic-glink", > > + "qcom,pmic-glink"; > > + #address-cells = <1>; > > + #size-cells = <0>; > > + orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>, > > + <&tlmm 123 GPIO_ACTIVE_HIGH>; > > + > > + /* Left-side rear port */ > > + connector@0 { > > + compatible = "usb-c-connector"; > > + reg = <0>; > > + power-role = "dual"; > > + data-role = "dual"; > > + > > + ports { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + port@0 { > > + reg = <0>; > > + > > + pmic_glink_ss0_hs_in: endpoint { > > + remote-endpoint = <&usb_1_ss0_dwc3_hs>; > > + }; > > + }; > > + > > + port@1 { > > + reg = <1>; > > + > > + pmic_glink_ss0_ss_in: endpoint { > > + remote-endpoint = <&usb_1_ss0_qmpphy_out>; > > + }; > > + }; > > + > > + port@2 { > > + reg = <2>; > > + > > + pmic_glink_ss0_sbu: endpoint { > > + remote-endpoint = <&usb_1_ss0_sbu_mux>; > > + }; > > + }; > > + }; > > + }; > > + > > + /* Left-side front port */ > > + connector@1 { > > + compatible = "usb-c-connector"; > > + reg = <1>; > > + power-role = "dual"; > > + data-role = "dual"; > > + > > + ports { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + port@0 { > > + reg = <0>; > > + > > + pmic_glink_ss1_hs_in: endpoint { > > + remote-endpoint = <&usb_1_ss1_dwc3_hs>; > > + }; > > + }; > > + > > + port@1 { > > + reg = <1>; > > + > > + pmic_glink_ss1_ss_in: endpoint { > > + remote-endpoint = <&usb_1_ss1_qmpphy_out>; > > + }; > > + }; > > + > > + port@2 { > > + reg = <2>; > > + > > + pmic_glink_ss1_sbu: endpoint { > > + remote-endpoint = <&usb_1_ss1_sbu_mux>; > > + }; > > + }; > > + }; > > + }; > > + }; > > + > > + reserved-memory { > > + linux,cma { > > + compatible = "shared-dma-pool"; > > + size = <0x0 0x8000000>; > > + reusable; > > + linux,cma-default; > > + }; > > + }; > > + > > + sound { > > + compatible = "qcom,x1e80100-sndcard"; > > + model = "X1E80100-GalaxyBook4Edge"; > > + audio-routing = "WooferLeft IN", "WSA WSA_SPK1 OUT", > > + "TweeterLeft IN", "WSA WSA_SPK2 OUT", > > + "WooferRight IN", "WSA2 WSA_SPK2 OUT", > > + "TweeterRight IN", "WSA2 WSA_SPK2 OUT", > > + "IN1_HPHL", "HPHL_OUT", > > + "IN2_HPHR", "HPHR_OUT", > > + "AMIC2", "MIC BIAS2", > > + "VA DMIC0", "MIC BIAS3", > > + "VA DMIC1", "MIC BIAS3", > > + "VA DMIC2", "MIC BIAS1", > > + "VA DMIC3", "MIC BIAS1", > > + "TX SWR_INPUT1", "ADC2_OUTPUT"; > > + > > + wcd-playback-dai-link { > > + link-name = "WCD Playback"; > > + > > + codec { > > + sound-dai = <&wcd938x 0>, <&swr1 0>, <&lpass_rxmacro 0>; > > + }; > > + > > + cpu { > > + sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>; > > + }; > > + > > + platform { > > + sound-dai = <&q6apm>; > > + }; > > + }; > > + > > + wcd-capture-dai-link { > > + link-name = "WCD Capture"; > > + > > + codec { > > + sound-dai = <&wcd938x 1>, <&swr2 1>, <&lpass_txmacro 0>; > > + }; > > + > > + cpu { > > + sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>; > > + }; > > + > > + platform { > > + sound-dai = <&q6apm>; > > + }; > > + }; > > + > > + wsa-dai-link { > > + link-name = "WSA Playback"; > > + > > + codec { > > + sound-dai = <&left_woofer>, <&left_tweeter>, > > + <&swr0 0>, <&lpass_wsamacro 0>, > > + <&right_woofer>, <&right_tweeter>, > > + <&swr3 0>, <&lpass_wsa2macro 0>; > > + }; > > + > > + cpu { > > + sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>; > > + }; > > + > > + platform { > > + sound-dai = <&q6apm>; > > + }; > > + }; > > + > > + va-dai-link { > > + link-name = "VA Capture"; > > + > > + codec { > > + sound-dai = <&lpass_vamacro 0>; > > + }; > > + > > + cpu { > > + sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>; > > + }; > > + > > + platform { > > + sound-dai = <&q6apm>; > > + }; > > + }; > > + }; > > + > > + vreg_octa_vdd: regulator-octa-vdd { > > + compatible = "regulator-fixed"; > > + > > + regulator-name = "VREG_OCTA_VDD"; > > + regulator-min-microvolt = <1800000>; > > + regulator-max-microvolt = <1800000>; > > + > > + gpio = <&tlmm 111 GPIO_ACTIVE_HIGH>; > > + enable-active-high; > > + > > + pinctrl-0 = <&octa_vdd_en>; > > + pinctrl-names = "default"; > > + > > + startup-delay-us = <1000>; > > + regulator-enable-ramp-delay = <1000>; > > + > > + regulator-always-on; > > + regulator-boot-on; > > + }; > > + > > + vreg_display_vdd: regulator-display-vdd { > > + compatible = "regulator-fixed"; > > + > > + regulator-name = "VREG_DISPLAY_VDD"; > > + regulator-min-microvolt = <3300000>; > > + regulator-max-microvolt = <3300000>; > > + > > + gpio = <&tlmm 120 GPIO_ACTIVE_HIGH>; > > + enable-active-high; > > + > > + pinctrl-0 = <&display_vdd_en>; > > + pinctrl-names = "default"; > > + > > + startup-delay-us = <400000>; > > + regulator-enable-ramp-delay = <400000>; > > + > > + vin-supply = <&vreg_octa_vdd>; > > + > > + regulator-always-on; > > + regulator-boot-on; > > + }; > > + > > + vreg_edp_3p3: regulator-edp-3p3 { > > + compatible = "regulator-fixed"; > > + > > + regulator-name = "VREG_EDP_3P3"; > > + regulator-min-microvolt = <3300000>; > > + regulator-max-microvolt = <3300000>; > > + > > + gpio = <&tlmm 70 GPIO_ACTIVE_LOW>; > > + enable-active-low; > > + > > + pinctrl-0 = <&edp_reg_en>; > > + pinctrl-names = "default"; > > + > > + startup-delay-us = <1000>; > > + regulator-enable-ramp-delay = <1000>; > > + > > + vin-supply = <&vreg_display_vdd>; > > + > > + regulator-always-on; > > + regulator-boot-on; > > + }; > > + > > + > > + vreg_misc_3p3: regulator-misc-3p3 { > > + compatible = "regulator-fixed"; > > + > > + regulator-name = "VREG_MISC_3P3"; > > + regulator-min-microvolt = <3300000>; > > + regulator-max-microvolt = <3300000>; > > + > > + gpio = <&pm8550ve_8_gpios 6 GPIO_ACTIVE_HIGH>; > > + enable-active-high; > > + > > + pinctrl-0 = <&misc_3p3_reg_en>; > > + pinctrl-names = "default"; > > + > > + regulator-boot-on; > > + regulator-always-on; > > + }; > > + > > + vph_pwr: regulator-vph-pwr { > > + compatible = "regulator-fixed"; > > + > > + regulator-name = "vph_pwr"; > > + regulator-min-microvolt = <3700000>; > > + regulator-max-microvolt = <3700000>; > > + > > + regulator-always-on; > > + regulator-boot-on; > > + }; > > + > > + vreg_wcn_3p3: regulator-wcn-3p3 { > > + compatible = "regulator-fixed"; > > + > > + regulator-name = "VREG_WCN_3P3"; > > + regulator-min-microvolt = <3300000>; > > + regulator-max-microvolt = <3300000>; > > + > > + gpio = <&tlmm 214 GPIO_ACTIVE_HIGH>; > > + enable-active-high; > > + > > + pinctrl-0 = <&wcn_sw_en>; > > + pinctrl-names = "default"; > > + > > + regulator-boot-on; > > + regulator-always-on; > > + }; > > + > > + usb-1-ss0-sbu-mux { > > + compatible = "onnn,fsusb42", "gpio-sbu-mux"; > > + > > + enable-gpios = <&tlmm 168 GPIO_ACTIVE_LOW>; > > + select-gpios = <&tlmm 167 GPIO_ACTIVE_HIGH>; > > + > > + pinctrl-0 = <&usb_1_ss0_sbu_default>; > > + pinctrl-names = "default"; > > + > > + mode-switch; > > + orientation-switch; > > + > > + port { > > + usb_1_ss0_sbu_mux: endpoint { > > + remote-endpoint = <&pmic_glink_ss0_sbu>; > > + }; > > + }; > > + }; > > + > > + usb-1-ss1-sbu-mux { > > + compatible = "onnn,fsusb42", "gpio-sbu-mux"; > > + > > + enable-gpios = <&tlmm 179 GPIO_ACTIVE_LOW>; > > + select-gpios = <&tlmm 178 GPIO_ACTIVE_HIGH>; > > + > > + pinctrl-0 = <&usb_1_ss1_sbu_default>; > > + pinctrl-names = "default"; > > + > > + mode-switch; > > + orientation-switch; > > + > > + port { > > + usb_1_ss1_sbu_mux: endpoint { > > + remote-endpoint = <&pmic_glink_ss1_sbu>; > > + }; > > + }; > > + }; > > + > > + wcn7850-pmu { > > + compatible = "qcom,wcn7850-pmu"; > > + > > + wlan-enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>; > > + bt-enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>; > > + > > + pinctrl-0 = <&wcn_wlan_bt_en>; > > + pinctrl-names = "default"; > > + > > + regulators { > > + vreg_pmu_rfa_cmn: ldo0 { > > + regulator-name = "vreg_pmu_rfa_cmn"; > > + }; > > + > > + vreg_pmu_aon_0p59: ldo1 { > > + regulator-name = "vreg_pmu_aon_0p59"; > > + }; > > + > > + vreg_pmu_wlcx_0p8: ldo2 { > > + regulator-name = "vreg_pmu_wlcx_0p8"; > > + }; > > + > > + vreg_pmu_wlmx_0p85: ldo3 { > > + regulator-name = "vreg_pmu_wlmx_0p85"; > > + }; > > + > > + vreg_pmu_btcmx_0p85: ldo4 { > > + regulator-name = "vreg_pmu_btcmx_0p85"; > > + }; > > + > > + vreg_pmu_rfa_0p8: ldo5 { > > + regulator-name = "vreg_pmu_rfa_0p8"; > > + }; > > + > > + vreg_pmu_rfa_1p2: ldo6 { > > + regulator-name = "vreg_pmu_rfa_1p2"; > > + }; > > + > > + vreg_pmu_rfa_1p8: ldo7 { > > + regulator-name = "vreg_pmu_rfa_1p8"; > > + }; > > + > > + vreg_pmu_pcie_0p9: ldo8 { > > + regulator-name = "vreg_pmu_pcie_0p9"; > > + }; > > + > > + vreg_pmu_pcie_1p8: ldo9 { > > + regulator-name = "vreg_pmu_pcie_1p8"; > > + }; > > + }; > > + }; > > +}; > > + > > +&apps_rsc { > > + regulators-0 { > > + compatible = "qcom,pm8550-rpmh-regulators"; > > + qcom,pmic-id = "b"; > > + > > + vdd-bob1-supply = <&vph_pwr>; > > + vdd-bob2-supply = <&vph_pwr>; > > + vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>; > > + vdd-l2-l13-l14-supply = <&vreg_bob1>; > > + vdd-l5-l16-supply = <&vreg_bob1>; > > + vdd-l6-l7-supply = <&vreg_bob2>; > > + vdd-l8-l9-supply = <&vreg_bob1>; > > + vdd-l12-supply = <&vreg_s5j_1p2>; > > + vdd-l15-supply = <&vreg_s4c_1p8>; > > + vdd-l17-supply = <&vreg_bob2>; > > + > > + vreg_bob1: bob1 { > > + regulator-name = "vreg_bob1"; > > + regulator-min-microvolt = <3008000>; > > + regulator-max-microvolt = <3960000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_bob2: bob2 { > > + regulator-name = "vreg_bob2"; > > + regulator-min-microvolt = <2504000>; > > + regulator-max-microvolt = <3008000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l1b_1p8: ldo1 { > > + regulator-name = "vreg_l1b_1p8"; > > + regulator-min-microvolt = <1800000>; > > + regulator-max-microvolt = <1800000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l2b_3p0: ldo2 { > > + regulator-name = "vreg_l2b_3p0"; > > + regulator-min-microvolt = <3072000>; > > + regulator-max-microvolt = <3100000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l4b_1p8: ldo4 { > > + regulator-name = "vreg_l4b_1p8"; > > + regulator-min-microvolt = <1800000>; > > + regulator-max-microvolt = <1800000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l5b_3p0: ldo5 { > > + regulator-name = "vreg_l5b_3p0"; > > + regulator-min-microvolt = <3000000>; > > + regulator-max-microvolt = <3000000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l6b_1p8: ldo6 { > > + regulator-name = "vreg_l6b_1p8"; > > + regulator-min-microvolt = <1800000>; > > + regulator-max-microvolt = <2960000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l7b_2p8: ldo7 { > > + regulator-name = "vreg_l7b_2p8"; > > + regulator-always-on; > > + regulator-min-microvolt = <2800000>; > > + regulator-max-microvolt = <2800000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l8b_3p0: ldo8 { > > + regulator-name = "vreg_l8b_3p0"; > > + regulator-min-microvolt = <3072000>; > > + regulator-max-microvolt = <3072000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l9b_2p9: ldo9 { > > + regulator-name = "vreg_l9b_2p9"; > > + regulator-min-microvolt = <2960000>; > > + regulator-max-microvolt = <2960000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l10b_1p8: ldo10 { > > + regulator-name = "vreg_l10b_1p8"; > > + regulator-always-on; > > + regulator-min-microvolt = <1800000>; > > + regulator-max-microvolt = <1800000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l12b_1p2: ldo12 { > > + regulator-name = "vreg_l12b_1p2"; > > + regulator-min-microvolt = <1200000>; > > + regulator-max-microvolt = <1200000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + regulator-always-on; > > + }; > > + > > + vreg_l13b_3p0: ldo13 { > > + regulator-name = "vreg_l13b_3p0"; > > + regulator-min-microvolt = <3072000>; > > + regulator-max-microvolt = <3100000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l14b_3p0: ldo14 { > > + regulator-name = "vreg_l14b_3p0"; > > + regulator-min-microvolt = <3072000>; > > + regulator-max-microvolt = <3072000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l15b_1p8: ldo15 { > > + regulator-name = "vreg_l15b_1p8"; > > + regulator-min-microvolt = <1800000>; > > + regulator-max-microvolt = <1800000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + regulator-always-on; > > + }; > > + > > + vreg_l16b_2p9: ldo16 { > > + regulator-name = "vreg_l16b_2p9"; > > + regulator-min-microvolt = <2912000>; > > + regulator-max-microvolt = <2912000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l17b_2p5: ldo17 { > > + regulator-name = "vreg_l17b_2p5"; > > + regulator-min-microvolt = <2504000>; > > + regulator-max-microvolt = <2504000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + }; > > + > > + regulators-1 { > > + compatible = "qcom,pm8550ve-rpmh-regulators"; > > + qcom,pmic-id = "c"; > > + > > + vdd-l1-supply = <&vreg_s5j_1p2>; > > + vdd-l2-supply = <&vreg_s1f_0p7>; > > + vdd-l3-supply = <&vreg_s1f_0p7>; > > + vdd-s4-supply = <&vph_pwr>; > > + > > + vreg_s4c_1p8: smps4 { > > + regulator-name = "vreg_s4c_1p8"; > > + regulator-min-microvolt = <1856000>; > > + regulator-max-microvolt = <2000000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l1c_1p2: ldo1 { > > + regulator-name = "vreg_l1c_1p2"; > > + regulator-min-microvolt = <1200000>; > > + regulator-max-microvolt = <1200000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l2c_0p8: ldo2 { > > + regulator-name = "vreg_l2c_0p8"; > > + regulator-min-microvolt = <880000>; > > + regulator-max-microvolt = <920000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l3c_0p8: ldo3 { > > + regulator-name = "vreg_l3c_0p8"; > > + regulator-min-microvolt = <880000>; > > + regulator-max-microvolt = <920000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + }; > > + > > + regulators-2 { > > + compatible = "qcom,pmc8380-rpmh-regulators"; > > + qcom,pmic-id = "d"; > > + > > + vdd-l1-supply = <&vreg_s1f_0p7>; > > + vdd-l2-supply = <&vreg_s1f_0p7>; > > + vdd-l3-supply = <&vreg_s4c_1p8>; > > + vdd-s1-supply = <&vph_pwr>; > > + > > + vreg_l1d_0p8: ldo1 { > > + regulator-name = "vreg_l1d_0p8"; > > + regulator-min-microvolt = <880000>; > > + regulator-max-microvolt = <920000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l2d_0p9: ldo2 { > > + regulator-name = "vreg_l2d_0p9"; > > + regulator-min-microvolt = <912000>; > > + regulator-max-microvolt = <920000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l3d_1p8: ldo3 { > > + regulator-name = "vreg_l3d_1p8"; > > + regulator-min-microvolt = <1800000>; > > + regulator-max-microvolt = <1800000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + }; > > + > > + regulators-3 { > > + compatible = "qcom,pmc8380-rpmh-regulators"; > > + qcom,pmic-id = "e"; > > + > > + vdd-l2-supply = <&vreg_s1f_0p7>; > > + vdd-l3-supply = <&vreg_s5j_1p2>; > > + > > + vreg_l2e_0p8: ldo2 { > > + regulator-name = "vreg_l2e_0p8"; > > + regulator-min-microvolt = <880000>; > > + regulator-max-microvolt = <920000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l3e_1p2: ldo3 { > > + regulator-name = "vreg_l3e_1p2"; > > + regulator-min-microvolt = <1200000>; > > + regulator-max-microvolt = <1200000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + }; > > + > > + regulators-4 { > > + compatible = "qcom,pmc8380-rpmh-regulators"; > > + qcom,pmic-id = "f"; > > + > > + vdd-l1-supply = <&vreg_s5j_1p2>; > > + vdd-l2-supply = <&vreg_s5j_1p2>; > > + vdd-l3-supply = <&vreg_s5j_1p2>; > > + vdd-s1-supply = <&vph_pwr>; > > + > > + vreg_s1f_0p7: smps1 { > > + regulator-name = "vreg_s1f_0p7"; > > + regulator-min-microvolt = <700000>; > > + regulator-max-microvolt = <1100000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l1f_1p0: ldo1 { > > + regulator-name = "vreg_l1f_1p0"; > > + regulator-min-microvolt = <1024000>; > > + regulator-max-microvolt = <1024000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l2f_1p0: ldo2 { > > + regulator-name = "vreg_l2f_1p0"; > > + regulator-min-microvolt = <1024000>; > > + regulator-max-microvolt = <1024000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l3f_1p0: ldo3 { > > + regulator-name = "vreg_l3f_1p0"; > > + regulator-min-microvolt = <1024000>; > > + regulator-max-microvolt = <1024000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + }; > > + > > + regulators-6 { > > + compatible = "qcom,pm8550ve-rpmh-regulators"; > > + qcom,pmic-id = "i"; > > + > > + vdd-l1-supply = <&vreg_s4c_1p8>; > > + vdd-l2-supply = <&vreg_s5j_1p2>; > > + vdd-l3-supply = <&vreg_s1f_0p7>; > > + vdd-s1-supply = <&vph_pwr>; > > + vdd-s2-supply = <&vph_pwr>; > > + > > + vreg_s1i_0p9: smps1 { > > + regulator-name = "vreg_s1i_0p9"; > > + regulator-min-microvolt = <900000>; > > + regulator-max-microvolt = <920000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_s2i_1p0: smps2 { > > + regulator-name = "vreg_s2i_1p0"; > > + regulator-min-microvolt = <1000000>; > > + regulator-max-microvolt = <1100000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l1i_1p8: ldo1 { > > + regulator-name = "vreg_l1i_1p8"; > > + regulator-min-microvolt = <1800000>; > > + regulator-max-microvolt = <1800000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l2i_1p2: ldo2 { > > + regulator-name = "vreg_l2i_1p2"; > > + regulator-min-microvolt = <1200000>; > > + regulator-max-microvolt = <1200000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l3i_0p8: ldo3 { > > + regulator-name = "vreg_l3i_0p8"; > > + regulator-min-microvolt = <880000>; > > + regulator-max-microvolt = <920000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + }; > > + > > + regulators-7 { > > + compatible = "qcom,pm8550ve-rpmh-regulators"; > > + qcom,pmic-id = "j"; > > + > > + vdd-l1-supply = <&vreg_s1f_0p7>; > > + vdd-l2-supply = <&vreg_s5j_1p2>; > > + vdd-l3-supply = <&vreg_s1f_0p7>; > > + vdd-s5-supply = <&vph_pwr>; > > + > > + vreg_s5j_1p2: smps5 { > > + regulator-name = "vreg_s5j_1p2"; > > + regulator-min-microvolt = <1256000>; > > + regulator-max-microvolt = <1304000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l1j_0p8: ldo1 { > > + regulator-name = "vreg_l1j_0p8"; > > + regulator-min-microvolt = <880000>; > > + regulator-max-microvolt = <920000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l2j_1p2: ldo2 { > > + regulator-name = "vreg_l2j_1p2"; > > + regulator-min-microvolt = <1256000>; > > + regulator-max-microvolt = <1256000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + > > + vreg_l3j_0p8: ldo3 { > > + regulator-name = "vreg_l3j_0p8"; > > + regulator-min-microvolt = <880000>; > > + regulator-max-microvolt = <920000>; > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > > + }; > > + }; > > +}; > > + > > +&camcc { > > + status = "okay"; > > +}; > > + > > +&gpu { > > + status = "okay"; > > + > > + zap-shader { > > + firmware-name = "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/qcdxkmsuc8380.mbn"; > > + }; > > +}; > > + > > +&i2c0 { > > + clock-frequency = <400000>; > > + > > + status = "okay"; > > + > > + keyboard@5 { > > + compatible = "hid-over-i2c"; > > + reg = <0x5>; > > + > > + hid-descr-addr = <0x20>; > > + interrupts-extended = <&tlmm 67 IRQ_TYPE_LEVEL_LOW>; > > + > > + pinctrl-0 = <&kybd_default>; > > + pinctrl-names = "default"; > > + > > + wakeup-source; > > + }; > > +}; > > + > > +&i2c5 { > > + clock-frequency = <400000>; > > + > > + status = "okay"; > > + > > + eusb5_repeater: redriver@43 { > > + compatible = "nxp,ptn3222"; > > + reg = <0x43>; > > + #phy-cells = <0>; > > + > > + vdd3v3-supply = <&vreg_l13b_3p0>; > > + vdd1v8-supply = <&vreg_l4b_1p8>; > > + > > + reset-gpios = <&tlmm 7 GPIO_ACTIVE_LOW>; > > + > > + pinctrl-0 = <&eusb5_reset_n>; > > + pinctrl-names = "default"; > > + }; > > + > > + eusb6_repeater: redriver@4f { > > + compatible = "nxp,ptn3222"; > > + reg = <0x4f>; > > + #phy-cells = <0>; > > + > > + vdd3v3-supply = <&vreg_l13b_3p0>; > > + vdd1v8-supply = <&vreg_l4b_1p8>; > > + > > + reset-gpios = <&tlmm 184 GPIO_ACTIVE_LOW>; > > + > > + pinctrl-0 = <&eusb6_reset_n>; > > + pinctrl-names = "default"; > > + }; > > +}; > > + > > + > > +&i2c8 { > > + clock-frequency = <400000>; > > + > > + status = "okay"; > > + > > + touchscreen@5d { > > + compatible = "hid-over-i2c"; > > + reg = <0x5d>; > > + > > + hid-descr-addr = <0x1>; > > + //interrupts-extended = <&tlmm 34 IRQ_TYPE_LEVEL_LOW>; > > + > > + vdd-supply = <&vreg_misc_3p3>; > > + > > + //pinctrl-0 = <&ts0_default>; > > + //pinctrl-names = "default"; > > + }; > > +}; > > + > > +&i2c13 { > > + clock-frequency = <400000>; > > + > > + status = "okay"; > > +}; > > + > > +&lpass_tlmm { > > + spkr_01_sd_n_active: spkr-01-sd-n-active-state { > > + pins = "gpio12"; > > + function = "gpio"; > > + drive-strength = <16>; > > + bias-disable; > > + output-low; > > + }; > > + > > + spkr_23_sd_n_active: spkr-23-sd-n-active-state { > > + pins = "gpio13"; > > + function = "gpio"; > > + drive-strength = <16>; > > + bias-disable; > > + output-low; > > + }; > > +}; > > + > > +&lpass_vamacro { > > + pinctrl-0 = <&dmic01_default>, <&dmic23_default>; > > + pinctrl-names = "default"; > > + > > + vdd-micb-supply = <&vreg_l1b_1p8>; > > + qcom,dmic-sample-rate = <4800000>; > > +}; > > + > > +&mdss { > > + status = "okay"; > > +}; > > + > > +&mdss_dp0 { > > + status = "okay"; > > +}; > > + > > +&mdss_dp0_out { > > + data-lanes = <0 1>; > > + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>; > > +}; > > + > > +&mdss_dp1 { > > + status = "okay"; > > +}; > > + > > +&mdss_dp1_out { > > + data-lanes = <0 1>; > > + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>; > > +}; > > + > > +&mdss_dp2 { > > + status = "okay"; > > +}; > > + > > +&mdss_dp2_out { > > + data-lanes = <0 1 2 3>; > > +}; > > + > > +&mdss_dp3 { > > + /delete-property/ #sound-dai-cells; > > + > > + pinctrl-0 = <&edp0_hpd_default>; > > + pinctrl-names = "default"; > > + > > + status = "okay"; > > + > > + aux-bus { > > + panel: panel { > > + enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>; > > + power-supply = <&vreg_edp_3p3>; > > + no-hpd; > > + > > + pinctrl-0 = <&edp_bl_en>; > > + pinctrl-names = "default"; > > + > > + port { > > + edp_panel_in: endpoint { > > + remote-endpoint = <&mdss_dp3_out>; > > + }; > > + }; > > + }; > > + }; > > + > > + ports { > > + port@1 { > > + reg = <1>; > > + mdss_dp3_out: endpoint { > > + data-lanes = <0 1 2 3>; > > + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000>; > > + > > + remote-endpoint = <&edp_panel_in>; > > + }; > > + }; > > + }; > > +}; > > + > > + > > +&mdss_dp3_phy { > > + vdda-phy-supply = <&vreg_l3j_0p8>; > > + vdda-pll-supply = <&vreg_l2j_1p2>; > > + > > + status = "okay"; > > +}; > > + > > +&pcie4 { > > + perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>; > > + wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>; > > + > > + pinctrl-0 = <&pcie4_default>; > > + pinctrl-names = "default"; > > + > > + status = "okay"; > > +}; > > + > > +&pcie4_phy { > > + vdda-phy-supply = <&vreg_l3i_0p8>; > > + vdda-pll-supply = <&vreg_l3e_1p2>; > > + > > + status = "okay"; > > +}; > > + > > +&pcie4_port0 { > > + wifi@0 { > > + compatible = "pci17cb,1107"; > > + reg = <0x10000 0x0 0x0 0x0 0x0>; > > + > > + vddaon-supply = <&vreg_pmu_aon_0p59>; > > + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>; > > + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>; > > + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>; > > + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>; > > + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>; > > + vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>; > > + vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>; > > + vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>; > > + }; > > +}; > > + > > +&pm8550ve_8_gpios { > > + misc_3p3_reg_en: misc-3p3-reg-en-state { > > + pins = "gpio6"; > > + function = "normal"; > > + bias-disable; > > + input-disable; > > + output-enable; > > + drive-push-pull; > > + power-source = <1>; /* 1.8 V */ > > + qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>; > > + }; > > +}; > > + > > +&pmc8380_3_gpios { > > + edp_bl_en: edp-bl-en-state { > > + pins = "gpio4"; > > + function = "normal"; > > + power-source = <1>; /* 1.8V */ > > + input-disable; > > + output-enable; > > + }; > > +}; > > + > > +&qupv3_0 { > > + status = "okay"; > > +}; > > + > > +&qupv3_1 { > > + status = "okay"; > > +}; > > + > > +&qupv3_2 { > > + status = "okay"; > > +}; > > + > > +&remoteproc_adsp { > > + firmware-name = "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/qcadsp8380.mbn", > > + "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/adsp_dtbs.elf"; > > + > > + status = "okay"; > > +}; > > + > > +&remoteproc_cdsp { > > + firmware-name = "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/qccdsp8380.mbn", > > + "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/cdsp_dtbs.elf"; > > + > > + status = "okay"; > > +}; > > + > > +&swr0 { > > + status = "okay"; > > + > > + pinctrl-0 = <&wsa_swr_active>, <&spkr_01_sd_n_active>; > > + pinctrl-names = "default"; > > + > > + /* WSA8845, Left Woofer */ > > + left_woofer: speaker@0,0 { > > + compatible = "sdw20217020400"; > > + reg = <0 0>; > > + reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>; > > + #sound-dai-cells = <0>; > > + sound-name-prefix = "WooferLeft"; > > + vdd-1p8-supply = <&vreg_l15b_1p8>; > > + vdd-io-supply = <&vreg_l12b_1p2>; > > + qcom,port-mapping = <1 2 3 7 10 13>; > > + }; > > + > > + /* WSA8845, Left Tweeter */ > > + left_tweeter: speaker@0,1 { > > + compatible = "sdw20217020400"; > > + reg = <0 1>; > > + reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>; > > + #sound-dai-cells = <0>; > > + sound-name-prefix = "TweeterLeft"; > > + vdd-1p8-supply = <&vreg_l15b_1p8>; > > + vdd-io-supply = <&vreg_l12b_1p2>; > > + qcom,port-mapping = <4 5 6 7 11 13>; > > + }; > > +}; > > + > > +&swr1 { > > + status = "okay"; > > + > > + /* WCD9385 RX */ > > + wcd_rx: codec@0,4 { > > + compatible = "sdw20217010d00"; > > + reg = <0 4>; > > + qcom,rx-port-mapping = <1 2 3 4 5>; > > + }; > > +}; > > + > > +&swr2 { > > + status = "okay"; > > + > > + /* WCD9385 TX */ > > + wcd_tx: codec@0,3 { > > + compatible = "sdw20217010d00"; > > + reg = <0 3>; > > + qcom,tx-port-mapping = <2 2 3 4>; > > + }; > > +}; > > + > > +&swr3 { > > + status = "okay"; > > + > > + pinctrl-0 = <&wsa2_swr_active>, <&spkr_23_sd_n_active>; > > + pinctrl-names = "default"; > > + > > + /* WSA8845, Right Woofer */ > > + right_woofer: speaker@0,0 { > > + compatible = "sdw20217020400"; > > + reg = <0 0>; > > + reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>; > > + #sound-dai-cells = <0>; > > + sound-name-prefix = "WooferRight"; > > + vdd-1p8-supply = <&vreg_l15b_1p8>; > > + vdd-io-supply = <&vreg_l12b_1p2>; > > + qcom,port-mapping = <1 2 3 7 10 13>; > > + }; > > + > > + /* WSA8845, Right Tweeter */ > > + right_tweeter: speaker@0,1 { > > + compatible = "sdw20217020400"; > > + reg = <0 1>; > > + reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>; > > + #sound-dai-cells = <0>; > > + sound-name-prefix = "TweeterRight"; > > + vdd-1p8-supply = <&vreg_l15b_1p8>; > > + vdd-io-supply = <&vreg_l12b_1p2>; > > + qcom,port-mapping = <4 5 6 7 11 13>; > > + }; > > +}; > > + > > +&tlmm { > > + gpio-reserved-ranges = <34 2>, /* Unused */ > > + <44 4>; /* SPI (TPM) */ > > + > > + edp_reg_en: edp-reg-en-state { > > + pins = "gpio70"; > > + function = "gpio"; > > + drive-strength = <16>; > > + bias-pull-up; > > + output-low; > > + }; > > + > > + octa_vdd_en: octa-vdd-en-state { > > + pins = "gpio111"; > > + function = "gpio"; > > + drive-strength = <16>; > > + bias-pull-up; > > + output-high; > > + }; > > + > > + display_vdd_en: display-vdd-en-state { > > + pins = "gpio120"; > > + function = "gpio"; > > + drive-strength = <16>; > > + bias-pull-up; > > + output-high; > > + }; > > + > > + edp0_hpd_default: edp0-hpd-default-state { > > + pins = "gpio119"; > > + function = "edp0_hot"; > > + bias-pull-down; > > + input-enable; > > + drive-strength = <2>; > > + }; > > + > > + > > + hall_int_n_default: hall-int-n-state { > > + pins = "gpio92"; > > + function = "gpio"; > > + bias-disable; > > + }; > > + > > + kybd_default: kybd-default-state { > > + pins = "gpio67"; > > + function = "gpio"; > > + bias-disable; > > + }; > > + > > + hdmi_hpd_default: hdmi-hpd-default-state { > > + pins = "gpio126"; > > + function = "usb2_dp"; > > + bias-disable; > > + }; > > + > > + eusb5_reset_n: eusb5-reset-n-state { > > + pins = "gpio7"; > > + function = "gpio"; > > + drive-strength = <2>; > > + bias-disable; > > + output-low; > > + }; > > + > > + eusb6_reset_n: eusb6-reset-n-state { > > + pins = "gpio184"; > > + function = "gpio"; > > + drive-strength = <2>; > > + bias-disable; > > + output-low; > > + }; > > + > > + pcie4_default: pcie4-default-state { > > + clkreq-n-pins { > > + pins = "gpio147"; > > + function = "pcie4_clk"; > > + drive-strength = <2>; > > + bias-pull-up; > > + }; > > + > > + perst-n-pins { > > + pins = "gpio146"; > > + function = "gpio"; > > + drive-strength = <2>; > > + bias-disable; > > + }; > > + > > + wake-n-pins { > > + pins = "gpio148"; > > + function = "gpio"; > > + drive-strength = <2>; > > + bias-pull-up; > > + }; > > + }; > > + > > + tpad_default: tpad-default-state { > > + pins = "gpio3"; > > + function = "gpio"; > > + bias-disable; > > + }; > > + > > + ts0_default: ts0-default-state { > > + int-n-pins { > > + pins = "gpio51"; > > + function = "gpio"; > > + bias-disable; > > + }; > > + > > + reset-n-pins { > > + pins = "gpio48"; > > + function = "gpio"; > > + output-high; > > + drive-strength = <16>; > > + }; > > + }; > > + > > + usb_1_ss0_sbu_default: usb-1-ss0-sbu-state { > > + mode-pins { > > + pins = "gpio166"; > > + function = "gpio"; > > + bias-disable; > > + drive-strength = <2>; > > + output-high; > > + }; > > + > > + oe-n-pins { > > + pins = "gpio168"; > > + function = "gpio"; > > + bias-disable; > > + drive-strength = <2>; > > + }; > > + > > + sel-pins { > > + pins = "gpio167"; > > + function = "gpio"; > > + bias-disable; > > + drive-strength = <2>; > > + }; > > + > > + }; > > + > > + usb_1_ss1_sbu_default: usb-1-ss1-sbu-state { > > + mode-pins { > > + pins = "gpio177"; > > + function = "gpio"; > > + bias-disable; > > + drive-strength = <2>; > > + output-high; > > + }; > > + > > + oe-n-pins { > > + pins = "gpio179"; > > + function = "gpio"; > > + bias-disable; > > + drive-strength = <2>; > > + }; > > + > > + sel-pins { > > + pins = "gpio178"; > > + function = "gpio"; > > + bias-disable; > > + drive-strength = <2>; > > + }; > > + }; > > + > > + wcn_sw_en: wcn-sw-en-state { > > + pins = "gpio214"; > > + function = "gpio"; > > + drive-strength = <2>; > > + bias-disable; > > + }; > > + > > + wcn_wlan_bt_en: wcn-wlan-bt-en-state { > > + pins = "gpio116", "gpio117"; > > + function = "gpio"; > > + drive-strength = <2>; > > + bias-disable; > > + }; > > + > > + wcd_default: wcd-reset-n-active-state { > > + pins = "gpio191"; > > + function = "gpio"; > > + drive-strength = <16>; > > + bias-disable; > > + output-low; > > + }; > > +}; > > + > > +&ufs_mem_hc { > > + status = "okay"; > > + > > + reset-gpios = <&tlmm 238 GPIO_ACTIVE_LOW>; > > + vcc-supply = <&vreg_l17b_2p5>; > > + vcc-max-microamp = <600000>; > > + > > + vccq-supply = <&vreg_l2i_1p2>; > > + vccq-max-microamp = <600000>; > > +}; > > + > > +&ufs_mem_phy { > > + status = "okay"; > > + > > + vdda-phy-supply = <&vreg_l3i_0p8>; > > + vdda-pll-supply = <&vreg_l3e_1p2>; > > +}; > > + > > +&uart14 { > > + status = "okay"; > > + > > + bluetooth { > > + compatible = "qcom,wcn7850-bt"; > > + max-speed = <3200000>; > > + > > + vddaon-supply = <&vreg_pmu_aon_0p59>; > > + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>; > > + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>; > > + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>; > > + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>; > > + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>; > > + vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>; > > + }; > > +}; > > + > > +&uart21 { > > + compatible = "qcom,geni-debug-uart"; > > + status = "okay"; > > +}; > > + > > +&usb_1_ss0 { > > + status = "okay"; > > +}; > > + > > +&usb_1_ss0_hsphy { > > + vdd-supply = <&vreg_l3j_0p8>; > > + vdda12-supply = <&vreg_l2j_1p2>; > > + > > + status = "okay"; > > +}; > > + > > +&usb_1_ss0_qmpphy { > > + vdda-phy-supply = <&vreg_l2j_1p2>; > > + vdda-pll-supply = <&vreg_l1j_0p8>; > > + > > + status = "okay"; > > +}; > > + > > +&usb_1_ss0 { > > + dr_mode = "host"; > > +}; > > + > > +&usb_1_ss0_dwc3_hs { > > + remote-endpoint = <&pmic_glink_ss0_hs_in>; > > +}; > > + > > +&usb_1_ss0_qmpphy_out { > > + remote-endpoint = <&pmic_glink_ss0_ss_in>; > > +}; > > + > > +&usb_1_ss1 { > > + status = "okay"; > > +}; > > + > > +&usb_1_ss1_hsphy { > > + vdd-supply = <&vreg_l3j_0p8>; > > + vdda12-supply = <&vreg_l2j_1p2>; > > + > > + status = "okay"; > > +}; > > + > > +&usb_1_ss1_qmpphy { > > + vdda-phy-supply = <&vreg_l2j_1p2>; > > + vdda-pll-supply = <&vreg_l2d_0p9>; > > + > > + status = "okay"; > > +}; > > + > > +&usb_1_ss1 { > > + dr_mode = "host"; > > +}; > > + > > +&usb_1_ss1_dwc3_hs { > > + remote-endpoint = <&pmic_glink_ss1_hs_in>; > > +}; > > + > > +&usb_1_ss1_qmpphy_out { > > + remote-endpoint = <&pmic_glink_ss1_ss_in>; > > +}; > > + > > +&usb_1_ss2_qmpphy { > > + vdda-phy-supply = <&vreg_l2j_1p2>; > > + vdda-pll-supply = <&vreg_l2d_0p9>; > > + > > + /delete-property/ mode-switch; > > + /delete-property/ orientation-switch; > > + > > + status = "okay"; > > + > > + ports { > > + port@0 { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + /delete-node/ endpoint; > > + > > + usb_1_ss2_qmpphy_out_dp: endpoint@0 { > > + reg = <0>; > > + > > + data-lanes = <3 2 1 0>; > > + remote-endpoint = <&hdmi_bridge_dp_in>; > > + }; > > + }; > > + }; > > +}; > > + > > + > > +/* MP0 goes to the USB-A port(USB3) and FPC */ > > +&usb_mp { > > + status = "okay"; > > + > > + /* Limit to single port */ > > + phys = <&usb_mp_hsphy0>, <&usb_mp_qmpphy0>; > > + phy-names = "usb2-0", "usb3-0"; > > +}; > > + > > +&usb_mp_hsphy0 { > > + vdd-supply = <&vreg_l2e_0p8>; > > + vdda12-supply = <&vreg_l3e_1p2>; > > + > > + phys = <&eusb6_repeater>; > > + > > + status = "okay"; > > +}; > > + > > +&usb_mp_qmpphy0 { > > + vdda-phy-supply = <&vreg_l3e_1p2>; > > + vdda-pll-supply = <&vreg_l3c_0p8>; > > + > > + status = "okay"; > > +}; > > diff --git a/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts b/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts > > new file mode 100644 > > index 000000000..333a69a8a > > --- /dev/null > > +++ b/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts > > @@ -0,0 +1,28 @@ > > +// SPDX-License-Identifier: BSD-3-Clause > > + > > +/dts-v1/; > > + > > +#include "x1-samsung-galaxy-book4-edge.dtsi" > > + > > +/ { > > + model = "Samsung Galaxy Book4 Edge (14 inch)"; > > + compatible = "samsung,galaxy-book4-edge-14", "samsung,galaxy-book4-edge", > > + "qcom,x1e80100"; > > +}; > > + > > +&i2c13 { > > + touchpad@40 { > > + compatible = "hid-over-i2c"; > > + reg = <0x40>; > > + > > + hid-descr-addr = <0xe>; > > + interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>; > > + > > + pinctrl-0 = <&tpad_default>; > > + pinctrl-names = "default"; > > + }; > > +}; > > + > > +&panel { > > + compatible = "samsung,atna40cu07", "samsung,atna33xc20"; > > +}; > > diff --git a/arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts b/arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts > > new file mode 100644 > > index 000000000..947eea411 > > --- /dev/null > > +++ b/arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts > > @@ -0,0 +1,31 @@ > > +// SPDX-License-Identifier: BSD-3-Clause > > + > > +/dts-v1/; > > + > > +#include "x1-samsung-galaxy-book4-edge.dtsi" > > + > > +/ { > > + model = "Samsung Galaxy Book4 Edge (16 inch)"; > > + compatible = "samsung,galaxy-book4-edge-16", "samsung,galaxy-book4-edge", > > + "qcom,x1e80100"; > > +}; > > + > > +&i2c13 { > > + touchpad@50 { > > + compatible = "hid-over-i2c"; > > + reg = <0x50>; > > + > > + hid-descr-addr = <0xd1>; > > + interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>; > > + > > + vdd-supply = <&vreg_misc_3p3>; > > + vddl-supply = <&vreg_l15b_1p8>; > > + > > + pinctrl-0 = <&tpad_default>; > > + pinctrl-names = "default"; > > + }; > > +}; > > + > > +&panel { > > + compatible = "samsung,atna60cl07", "samsung,atna33xc20"; > > +}; > > -- > > 2.43.0 > > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees 2026-09-28 16:44 ` Antheas Kapenekakis 2026-09-28 16:45 ` Antheas Kapenekakis @ 2026-09-28 18:41 ` Maxim Storetvedt 2026-09-28 19:09 ` Antheas Kapenekakis 1 sibling, 1 reply; 13+ messages in thread From: Maxim Storetvedt @ 2026-09-28 18:41 UTC (permalink / raw) To: Antheas Kapenekakis Cc: andersson, robh, krzk+dt, conor+dt, marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel, abel.vesa, abel.vesa, johan, konradybcio, kirill On 9/28/26 18:44, Antheas Kapenekakis wrote: > On Sun, 20 Sept 2026 at 20:41, Maxim Storetvedt <mstoretv@cern.ch> wrote: >> >> Adds devicetrees for the 14-inch and 16-inch hamoa SKUs of the Samsung Galaxy Book4 Edge. >> >> These use a common dtsi derived from nodes that were able to work on Linux >> from the initial Galaxy Book4 Edge DTS by Marcus: >> >> Link: https://lore.kernel.org/all/p3mhtj2rp6y2ezuwpd2gu7dwx5cbckfu4s4pazcudi4j2wogtr@4yecb2bkeyms/ >> >> combined with the patch series the Honor Magicbook Art 14, which shares device similarities: >> >> Link: https://lore.kernel.org/all/20260629154812.9066-1-mail@etehtsea.me/ > > Links go in the bottom, Based-on-a-patch is not a thing, you may add a > Coby as noted in a parallel thread. > >> as well as a few more adjustments on top of that again to get additional features working. >> Special thanks to Jesse Ahn for helping expand on what would eventually become this dtsi. > > Hi Maxim, > I tested this series on a kernel with various other backports on two > european (norwegian market) galaxy book4 edges. > > Specifically, the 14in NP940XMA and the 15.6in (not 16) NP750XQB. > Specifically, the later is an X1Plus variant that came out a year > later with cheaper components. It does not work properly on either on > them. I was hoping that at least the 14in model would work as is but > no. > > My test devices have proprietary Samsung battery controllers > (ENE-KB9058) and type C controllers (Samsung EmuEC). Also the speaker > amplifiers are different. So the battery reporting, audio, and USB C > ports do not work at all using your DTs. The TPM does not bind either > but you do not claim that it does. At least they got me to boot and > for that I am grateful. > > Other stuff also does not work, but I am just listing the main ones. > > I suggest you change the -14/-16 suffixes on both models with > something more specific. > > The prior patches in the series look fine to my eyes. I did not A/B > test them, just pulled them in. > > Best, > Antheas > Hi Antheas, Thanks for giving it a test! I think we both have the (almost) same device, and your experience on the 14" NP940XMA (NO) probably mirrors that of my NP940XMA (IT). USB-C should already work for this SKU with the patch DT, but not USB-C hotplug (yet). For now, everything is just left as already set up by the firmware, so peripherals plugged in after boot will not be detected. Everything inserted before boot, and hotplug on USB hubs, should still be fine. Could you give it a try on your device? Battery state monitoring should also be with the same caveats on both these devices, going via a separate protocol over I2C instead of following the other X1Es. There is a separate battery driver for this, and also other useful patches (like the webcam and kb backlight) downstream. For now at least, only the features listed in the cover are included here, but our repo linked there has pointers to the other relevant patches needed for now. On that topic, you will also find links to devicetrees for the X1P42100 Book4 Edge there (via Ciscobugger). This might not be the same X1P SKU, but could also be worth a try. Cheers, -Max ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees 2026-09-28 18:41 ` Maxim Storetvedt @ 2026-09-28 19:09 ` Antheas Kapenekakis 2026-09-28 22:22 ` Maxim Storetvedt 0 siblings, 1 reply; 13+ messages in thread From: Antheas Kapenekakis @ 2026-09-28 19:09 UTC (permalink / raw) To: Maxim Storetvedt Cc: andersson, robh, krzk+dt, conor+dt, marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel, abel.vesa, abel.vesa, johan, konradybcio, kirill On Mon, 28 Sept 2026 at 20:41, Maxim Storetvedt <mstoretv@cern.ch> wrote: > > > On 9/28/26 18:44, Antheas Kapenekakis wrote: > > On Sun, 20 Sept 2026 at 20:41, Maxim Storetvedt <mstoretv@cern.ch> wrote: > >> > >> Adds devicetrees for the 14-inch and 16-inch hamoa SKUs of the Samsung Galaxy Book4 Edge. > >> > >> These use a common dtsi derived from nodes that were able to work on Linux > >> from the initial Galaxy Book4 Edge DTS by Marcus: > >> > >> Link: https://lore.kernel.org/all/p3mhtj2rp6y2ezuwpd2gu7dwx5cbckfu4s4pazcudi4j2wogtr@4yecb2bkeyms/ > >> > >> combined with the patch series the Honor Magicbook Art 14, which shares device similarities: > >> > >> Link: https://lore.kernel.org/all/20260629154812.9066-1-mail@etehtsea.me/ > > > > Links go in the bottom, Based-on-a-patch is not a thing, you may add a > > Coby as noted in a parallel thread. > > > >> as well as a few more adjustments on top of that again to get additional features working. > >> Special thanks to Jesse Ahn for helping expand on what would eventually become this dtsi. > > > > Hi Maxim, > > I tested this series on a kernel with various other backports on two > > european (norwegian market) galaxy book4 edges. > > > > Specifically, the 14in NP940XMA and the 15.6in (not 16) NP750XQB. > > Specifically, the later is an X1Plus variant that came out a year > > later with cheaper components. It does not work properly on either on > > them. I was hoping that at least the 14in model would work as is but > > no. > > > > My test devices have proprietary Samsung battery controllers > > (ENE-KB9058) and type C controllers (Samsung EmuEC). Also the speaker > > amplifiers are different. So the battery reporting, audio, and USB C > > ports do not work at all using your DTs. The TPM does not bind either > > but you do not claim that it does. At least they got me to boot and > > for that I am grateful. > > > > Other stuff also does not work, but I am just listing the main ones. > > > > I suggest you change the -14/-16 suffixes on both models with > > something more specific. > > > > The prior patches in the series look fine to my eyes. I did not A/B > > test them, just pulled them in. > > > > Best, > > Antheas > > > > Hi Antheas, > > Thanks for giving it a test! I think we both have the (almost) same > device, and your experience on the 14" NP940XMA (NO) probably mirrors > that of my NP940XMA (IT). > > USB-C should already work for this SKU with the patch DT, but not USB-C > hotplug (yet). For now, everything is just left as already set up by the > firmware, so peripherals plugged in after boot will not be detected. > Everything inserted before boot, and hotplug on USB hubs, should still > be fine. Could you give it a try on your device? Yes, that mirrors my experience. But without a TypeC driver you don't get renegotiation. So no USB3, no fast charging, no hotplugging, and no DP alt mode. I wrote one but it's still buggy and a bit too complicated. > Battery state monitoring should also be with the same caveats on both > these devices, going via a separate protocol over I2C instead of > following the other X1Es. There is a separate battery driver for this, > and also other useful patches (like the webcam and kb backlight) > downstream. For now at least, only the features listed in the cover are > included here, but our repo linked there has pointers to the other > relevant patches needed for now. I did not find a battery driver so likewise I wrote mine. I think the battery driver is more upstreamable than the TypeC driver. That will take a lot of work. But it also means you have a spurious hunk on your dt then. The hunk that registers the dead battery and supposedly controls the TypeC connectors from qualcomm can be removed as it is not present on your device. It can then be replaced with one that registers the proper driver later. > On that topic, you will also find links to devicetrees for the X1P42100 > Book4 Edge there (via Ciscobugger). This might not be the same X1P SKU, > but could also be worth a try. I had a quick look at your repo. In my initial attempt, I tried to reference your upstream (not you) but quickly gave up due to the large number of commits and dtbs. I only see a polling commit in your tree after it diverges, I do not see a battery driver? I think the only realistic way forward for me is to wait for upstream to catch up and only add support for my reference devices (the 14 and 15.6) so I can flesh out my userspace until qualcomm starts to deliver results on mainline kernels. I attach my current tree below [1], note it is very unclean and I am currently doing fix commits. Once I get to a place where I am happy with base functionality, I will squash everything send it as a series. If you tell me that your device works with the drivers I wrote (note the LLM assistance), we can synergize. I do not expect the typec driver to get upstreamed unless someone more familiar with the type c internals gets involved, as a lot of the changes go over my head. But I think it is realistic for me to upstream the battery driver, unless you have a simpler alternative. the drivers relevant to you are ene-kb9058 and samsung-emuec. If they work with your laptop and are universal for these devices great. Note that they are both interrupt based so the battery reporting changes instantly. You can also take my dt for the 14 in for a spin or just deploy my tree as a test. I am contemplating whether an initial series using DTs, then a follow-up switching to ACPI is simpler for everyone involved. But as I see the huge amount of dts, I start to get concerned. So I might send my initial series that enables the device to boot using ACPI instead. As you know, Windows uses ACPI to boot the device and a lot of the dt i derived was from the ACPI tables I dumped in Windows. The DT was important for me to get an initial bring up for the device. I can now sync kernels to it in ~2 minutes so I can rapidly iterate. To that end, can anyone tell me why are we not attempting to use ACPI to boot these devices and relying on DTs on the ARM side? I know that traditionally for phones DTs are used but these are UEFI devices and contain proper BIOS data for autodiscovery. What is the current blocker? Switching to ACPI should let us drop all laptop specific DTs by adding parsers to their currently DT only drivers. Am I wrong? Antheas [1] https://github.com/anatase-org/patchwork/commits/7.2.7-an12 > Cheers, > -Max ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees 2026-09-28 19:09 ` Antheas Kapenekakis @ 2026-09-28 22:22 ` Maxim Storetvedt 0 siblings, 0 replies; 13+ messages in thread From: Maxim Storetvedt @ 2026-09-28 22:22 UTC (permalink / raw) To: Antheas Kapenekakis Cc: andersson, robh, krzk+dt, conor+dt, marcus, marijn.suijten, linux-arm-msm, devicetree, linux-kernel, abel.vesa, abel.vesa, johan, konradybcio, kirill On 9/28/26 21:09, Antheas Kapenekakis wrote: > On Mon, 28 Sept 2026 at 20:41, Maxim Storetvedt <mstoretv@cern.ch> wrote: >> >> >> On 9/28/26 18:44, Antheas Kapenekakis wrote: >>> On Sun, 20 Sept 2026 at 20:41, Maxim Storetvedt <mstoretv@cern.ch> wrote: >>>> >>>> Adds devicetrees for the 14-inch and 16-inch hamoa SKUs of the Samsung Galaxy Book4 Edge. >>>> >>>> These use a common dtsi derived from nodes that were able to work on Linux >>>> from the initial Galaxy Book4 Edge DTS by Marcus: >>>> >>>> Link: https://lore.kernel.org/all/p3mhtj2rp6y2ezuwpd2gu7dwx5cbckfu4s4pazcudi4j2wogtr@4yecb2bkeyms/ >>>> >>>> combined with the patch series the Honor Magicbook Art 14, which shares device similarities: >>>> >>>> Link: https://lore.kernel.org/all/20260629154812.9066-1-mail@etehtsea.me/ >>> >>> Links go in the bottom, Based-on-a-patch is not a thing, you may add a >>> Coby as noted in a parallel thread. >>> >>>> as well as a few more adjustments on top of that again to get additional features working. >>>> Special thanks to Jesse Ahn for helping expand on what would eventually become this dtsi. >>> >>> Hi Maxim, >>> I tested this series on a kernel with various other backports on two >>> european (norwegian market) galaxy book4 edges. >>> >>> Specifically, the 14in NP940XMA and the 15.6in (not 16) NP750XQB. >>> Specifically, the later is an X1Plus variant that came out a year >>> later with cheaper components. It does not work properly on either on >>> them. I was hoping that at least the 14in model would work as is but >>> no. >>> >>> My test devices have proprietary Samsung battery controllers >>> (ENE-KB9058) and type C controllers (Samsung EmuEC). Also the speaker >>> amplifiers are different. So the battery reporting, audio, and USB C >>> ports do not work at all using your DTs. The TPM does not bind either >>> but you do not claim that it does. At least they got me to boot and >>> for that I am grateful. >>> >>> Other stuff also does not work, but I am just listing the main ones. >>> >>> I suggest you change the -14/-16 suffixes on both models with >>> something more specific. >>> >>> The prior patches in the series look fine to my eyes. I did not A/B >>> test them, just pulled them in. >>> >>> Best, >>> Antheas >>> >> >> Hi Antheas, >> >> Thanks for giving it a test! I think we both have the (almost) same >> device, and your experience on the 14" NP940XMA (NO) probably mirrors >> that of my NP940XMA (IT). >> >> USB-C should already work for this SKU with the patch DT, but not USB-C >> hotplug (yet). For now, everything is just left as already set up by the >> firmware, so peripherals plugged in after boot will not be detected. >> Everything inserted before boot, and hotplug on USB hubs, should still >> be fine. Could you give it a try on your device? > > Yes, that mirrors my experience. But without a TypeC driver you don't > get renegotiation. So no USB3, no fast charging, no hotplugging, and > no DP alt mode. I wrote one but it's still buggy and a bit too > complicated. > >> Battery state monitoring should also be with the same caveats on both >> these devices, going via a separate protocol over I2C instead of >> following the other X1Es. There is a separate battery driver for this, >> and also other useful patches (like the webcam and kb backlight) >> downstream. For now at least, only the features listed in the cover are >> included here, but our repo linked there has pointers to the other >> relevant patches needed for now. > > I did not find a battery driver so likewise I wrote mine. I think the > battery driver is more upstreamable than the TypeC driver. That will > take a lot of work. > > But it also means you have a spurious hunk on your dt then. The hunk > that registers the dead battery and supposedly controls the TypeC > connectors from qualcomm can be removed as it is not present on your > device. It can then be replaced with one that registers the proper > driver later. Just left as-is as placeholders, but yes, can otherwise be removed. Do not really affect anything otherwise. > >> On that topic, you will also find links to devicetrees for the X1P42100 >> Book4 Edge there (via Ciscobugger). This might not be the same X1P SKU, >> but could also be worth a try. > > I had a quick look at your repo. In my initial attempt, I tried to > reference your upstream (not you) but quickly gave up due to the large > number of commits and dtbs. > > I only see a polling commit in your tree after it diverges, I do not > see a battery driver? > Plenty of old branches here, but README should always be up-to-date with links to all the patches used [1]. In this case, we just use the existing battery driver by Saddy [2]. > I think the only realistic way forward for me is to wait for upstream > to catch up and only add support for my reference devices (the 14 and > 15.6) so I can flesh out my userspace until qualcomm starts to deliver > results on mainline kernels. > > I attach my current tree below [1], note it is very unclean and I am > currently doing fix commits. Once I get to a place where I am happy > with base functionality, I will squash everything send it as a series. > If you tell me that your device works with the drivers I wrote (note > the LLM assistance), we can synergize. I do not expect the typec > driver to get upstreamed unless someone more familiar with the type c > internals gets involved, as a lot of the changes go over my head. But > I think it is realistic for me to upstream the battery driver, unless > you have a simpler alternative. > > the drivers relevant to you are ene-kb9058 and samsung-emuec. If they > work with your laptop and are universal for these devices great. Note > that they are both interrupt based so the battery reporting changes > instantly. You can also take my dt for the 14 in for a spin or just > deploy my tree as a test. > Thanks for that link! Tested your np940xma.dtb + ene-kb9058 and samsung-emuec drivers on top of my tree, and they seem to boot fine on my NP940XMA as well. Battery monitoring displayed, and there is hotplug detection (for the charger). > I am contemplating whether an initial series using DTs, then a > follow-up switching to ACPI is simpler for everyone involved. But as I > see the huge amount of dts, I start to get concerned. So I might send > my initial series that enables the device to boot using ACPI instead. > As you know, Windows uses ACPI to boot the device and a lot of the dt > i derived was from the ACPI tables I dumped in Windows. The DT was > important for me to get an initial bring up for the device. I can now > sync kernels to it in ~2 minutes so I can rapidly iterate. > > To that end, can anyone tell me why are we not attempting to use ACPI > to boot these devices and relying on DTs on the ARM side? I know that > traditionally for phones DTs are used but these are UEFI devices and > contain proper BIOS data for autodiscovery. What is the current > blocker? Switching to ACPI should let us drop all laptop specific DTs > by adding parsers to their currently DT only drivers. Am I wrong? > There's an interesting discussion for that here that's worth a look [3] Cheers, -Max [1] https://github.com/zensanp/linux-book4-edge/blob/x1e80100-book4e-7.2-14-tmp/README.md [2] https://github.com/Saddytech/Galaxy-Book4-Edge-linux/tree/main/driver [3] https://lore.kernel.org/linux-acpi/20260623145225.143218-1-johannes.goede@oss.qualcomm.com/ ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2026-09-28 22:22 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-09-20 18:41 [PATCH v7 0/3] Add initial DTS for Samsung Galaxy Book4 Edge Maxim Storetvedt 2026-09-20 18:41 ` [PATCH v7 1/3] dt-bindings: arm: Add " Maxim Storetvedt 2026-09-24 13:06 ` Krzysztof Kozlowski 2026-09-20 18:41 ` [PATCH v7 2/3] firmware: qcom: scm: Allow QSEECOM on the " Maxim Storetvedt 2026-09-20 18:41 ` [PATCH v7 3/3] arm64: dts: qcom: Add hamoa Samsung Galaxy Book4 Edge devicetrees Maxim Storetvedt 2026-09-20 18:54 ` sashiko-bot 2026-09-24 13:08 ` Krzysztof Kozlowski 2026-09-24 20:46 ` Maxim Storetvedt 2026-09-28 16:44 ` Antheas Kapenekakis 2026-09-28 16:45 ` Antheas Kapenekakis 2026-09-28 18:41 ` Maxim Storetvedt 2026-09-28 19:09 ` Antheas Kapenekakis 2026-09-28 22:22 ` Maxim Storetvedt
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).