* [PATCH v4 0/2] Add device tree for Acer Swift Go Pro AI (SFA14-11)
@ 2026-10-06 8:54 Kaipeng Zeng
2026-10-06 8:54 ` [PATCH v4 1/2] dt-bindings: arm: qcom: Add " Kaipeng Zeng
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Kaipeng Zeng @ 2026-10-06 8:54 UTC (permalink / raw)
To: devicetree
Cc: linux-arm-msm, conor+dt, krzk+dt, robh, konradybcio, andersson,
Kaipeng Zeng
The work started with x1-crd.dtsi as initial template.
HDMI refers to ThinkPad T14s.
Bluetooth refers to x1-crd.dtsi from the ubuntu-concept kernel [1].
PWM brightness control refers to Ratizux's GitHub repository [2].
Tested on linux-next / Ubuntu 26.04 LTS.
Tested and working devices:
- NVMe
- Keyboard & Touchpad
- USB Type-A, Type-C
- Battery & charging status (broken under EL2 mode)
- Internal display & Backlight brightness control
- HDMI & Type-C display
- Bluetooth & Wi-Fi
- Webcam (usb_2)
- GPU
[1] https://git.launchpad.net/~ubuntu-concept/ubuntu/+source/linux/+git/resolute
[2] https://github.com/Ratizux/linux-device-acer-sfa14-11.git
---
Changelog:
V4:
- Add -el2-dtbs. (Sashiko)
- The "audio-routing" of "sound" is from x1-crd.dtsi, audio doesn't totally work,
and I didn't see any improvements when I followed Sashiko's advice,
so I just kept it the same as x1-crd.dtsi. (Sashiko)
- Tested in EL2 mode:
Successfully boots with the kernel parameter: "iommu.passthrough=1",
The above features work as in EL1 mode except battery status.
- Fix missing newline before "wsa-dai-link". (Val Packett)
V3:
- Re-sort *-link and its sub-nodes. (Konrad Dybcio)
- Keep a '\n' before 'status'. (Konrad Dybcio)
- Remove 'output-low' from wcd_default. (Konrad Dybcio)
V2:
- Fix Makefile entry ordering. (Krzysztof Kozlowski)
- Use readable compatible string. (Krzysztof Kozlowski)
- Fix sound card model name for this device. (Krzysztof Kozlowski & Konrad Dybcio)
- Re-sort nodes, pinctrl-*. (Krzysztof Kozlowski & Konrad Dybcio)
- Remove those regulators without consumer and lack of a required value in DSDT. (Konrad Dybcio)
- Remove ADSP/CDSP fastrpc memory. (Konrad Dybcio)
- Add iris firmware path. (Konrad Dybcio)
- Delete usb_1_ss1_qmpphy/usb_1_ss2_qmpphy properties of Type-C. (Sashiko)
- Delete usb_1_ss2_hsphy. (Sashiko)
- Remove unused pmic-glink orientation-gpio. (Sashiko)
- Remove node related to WWAN.
- The Webcam is a USB device, can be probed without any additional
node. (Sashiko)
- Using reset-gpios in swr* seems common in X1E devices, like Lenovo
Yoga Slim7x, ThinkPad t14s and Microsoft Romulus.
Because speakers do not completely work and I could not see any
effect of changing it, just retain it. (Sashiko)
- Also, the HDMI audio is the same reason as above. (Sashiko)
- Link to V1: https://lore.kernel.org/linux-devicetree/20260702063156.35169-1-kaipeng94@gmail.com/
Kaipeng Zeng (2):
dt-bindings: arm: qcom: Add Acer Swift Go Pro AI (SFA14-11)
arm64: dts: qcom: Add support for Acer Swift Go Pro AI (SFA14-11)
.../devicetree/bindings/arm/qcom.yaml | 1 +
arch/arm64/boot/dts/qcom/Makefile | 2 +
.../boot/dts/qcom/x1e78100-acer-sfa14-11.dts | 1484 +++++++++++++++++
3 files changed, 1487 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts
base-commit: 0d33d21e47d9dc66f91e44da3fc9220c74d93df7
--
2.53.0
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v4 1/2] dt-bindings: arm: qcom: Add Acer Swift Go Pro AI (SFA14-11)
2026-10-06 8:54 [PATCH v4 0/2] Add device tree for Acer Swift Go Pro AI (SFA14-11) Kaipeng Zeng
@ 2026-10-06 8:54 ` Kaipeng Zeng
2026-10-06 8:54 ` [PATCH v4 2/2] arm64: dts: qcom: Add support for " Kaipeng Zeng
2026-10-08 10:34 ` [PATCH v4 0/2] Add device tree " Jianfeng Liu
2 siblings, 0 replies; 9+ messages in thread
From: Kaipeng Zeng @ 2026-10-06 8:54 UTC (permalink / raw)
To: devicetree
Cc: linux-arm-msm, conor+dt, krzk+dt, robh, konradybcio, andersson,
Kaipeng Zeng, Krzysztof Kozlowski
Add Acer Swift Go Pro AI (SFA14-11), a laptop based on the Snapdragon X
Elite (X1E78100) SoC.
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Kaipeng Zeng <kaipeng94@gmail.com>
---
Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index c7c9a9279684..da653b787d4d 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -1180,6 +1180,7 @@ properties:
- items:
- enum:
+ - acer,swift-go-sfa14-11
- medion,sprchrgd14s1
- tuxedo,elite14gen1
- const: qcom,x1e78100
--
2.53.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v4 2/2] arm64: dts: qcom: Add support for Acer Swift Go Pro AI (SFA14-11)
2026-10-06 8:54 [PATCH v4 0/2] Add device tree for Acer Swift Go Pro AI (SFA14-11) Kaipeng Zeng
2026-10-06 8:54 ` [PATCH v4 1/2] dt-bindings: arm: qcom: Add " Kaipeng Zeng
@ 2026-10-06 8:54 ` Kaipeng Zeng
2026-10-06 9:07 ` sashiko-bot
2026-10-08 10:34 ` [PATCH v4 0/2] Add device tree " Jianfeng Liu
2 siblings, 1 reply; 9+ messages in thread
From: Kaipeng Zeng @ 2026-10-06 8:54 UTC (permalink / raw)
To: devicetree
Cc: linux-arm-msm, conor+dt, krzk+dt, robh, konradybcio, andersson,
Kaipeng Zeng
Introduce device tree for the Acer Swift Go Pro AI (SFA14-11).
It is a laptop based on the Qualcomm Snapdragon X Elite (X1E78100) SoC.
This device tree implementation references nodes from the x1-crd.dtsi.
Supported features:
- Internal display & Brightness control
- Keyboard & Touchpad
- USB Type-C, Type-A
- Wi-Fi & Bluetooth
- ADSP & CDSP
- Adreno X1-85 GPU
- HDMI & USB Type-C display
- Webcam
Signed-off-by: Kaipeng Zeng <kaipeng94@gmail.com>
---
arch/arm64/boot/dts/qcom/Makefile | 2 +
.../boot/dts/qcom/x1e78100-acer-sfa14-11.dts | 1484 +++++++++++++++++
2 files changed, 1486 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index e05414290d8e..d20d65a99c63 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -422,6 +422,8 @@ talos-evk-lvds-auo,g133han01-dtbs := \
dtb-$(CONFIG_ARCH_QCOM) += talos-evk-lvds-auo,g133han01.dtb
x1e001de-devkit-el2-dtbs := x1e001de-devkit.dtb x1-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += x1e001de-devkit.dtb x1e001de-devkit-el2.dtb
+x1e78100-acer-sfa14-11-el2-dtbs := x1e78100-acer-sfa14-11.dtb x1-el2.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += x1e78100-acer-sfa14-11.dtb x1e78100-acer-sfa14-11-el2.dtb
x1e78100-lenovo-thinkpad-t14s-el2-dtbs := x1e78100-lenovo-thinkpad-t14s.dtb x1-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += x1e78100-lenovo-thinkpad-t14s.dtb x1e78100-lenovo-thinkpad-t14s-el2.dtb
x1e78100-lenovo-thinkpad-t14s-oled-el2-dtbs := x1e78100-lenovo-thinkpad-t14s-oled.dtb x1-el2.dtbo
diff --git a/arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts b/arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts
new file mode 100644
index 000000000000..dafe7f08fa95
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts
@@ -0,0 +1,1484 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2026, Kaipeng Zeng <kaipeng94@gmail.com>
+ */
+
+/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 = "Acer Swift Go Pro AI (SFA14-11)";
+ compatible = "acer,swift-go-sfa14-11", "qcom,x1e78100", "qcom,x1e80100";
+
+ 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>;
+ };
+
+ backlight: backlight {
+ compatible = "pwm-backlight";
+
+ pwms = <&pm8550_pwm 3 5000000>;
+
+ brightness-levels = <254 225 200 175 150 125 100 75 65 60 55>;
+ default-brightness-level = <8>;
+
+ power-supply = <&vreg_edp_bl>;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ pinctrl-0 = <&hall_int_n_default>, <&kypd_vol_up_n>;
+ pinctrl-names = "default";
+
+ key-vol-up {
+ label = "volume_up";
+ gpios = <&pm8550_gpios 6 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_VOLUMEUP>;
+ wakeup-source;
+ };
+
+ switch-lid {
+ label = "lid";
+ gpios = <&tlmm 92 GPIO_ACTIVE_LOW>;
+ linux,input-type = <EV_SW>;
+ linux,code = <SW_LID>;
+ wakeup-source;
+ wakeup-event-action = <EV_ACT_DEASSERTED>;
+ };
+ };
+
+ 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,sm8550-pmic-glink",
+ "qcom,pmic-glink";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>;
+
+ nvmem-cells = <&charge_limit_en>,
+ <&charge_limit_end>,
+ <&charge_limit_delta>;
+ nvmem-cell-names = "charge_limit_en",
+ "charge_limit_end",
+ "charge_limit_delta";
+
+ 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 = <&retimer_ss0_ss_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ pmic_glink_ss0_con_sbu_in: endpoint {
+ remote-endpoint = <&retimer_ss0_con_sbu_out>;
+ };
+ };
+ };
+ };
+ };
+
+ reserved-memory {
+ linux,cma {
+ compatible = "shared-dma-pool";
+ size = <0x0 0x8000000>;
+ reusable;
+ linux,cma-default;
+ };
+ };
+
+ sound {
+ compatible = "qcom,x1e80100-sndcard";
+ model = "X1E78100-ACER-Swift-Go-SFA14-11";
+ 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";
+
+ displayport-0-dai-link {
+ link-name = "DisplayPort0 Playback";
+
+ codec {
+ sound-dai = <&mdss_dp0>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai DISPLAY_PORT_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>;
+ };
+ };
+
+ 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>;
+ };
+ };
+
+ 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>;
+ };
+ };
+
+ 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>;
+ };
+ };
+ };
+
+ vreg_edp_3p3: regulator-edp-3p3 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_EDP_3P3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&tlmm 70 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&edp_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-always-on;
+ };
+
+ vreg_edp_bl: regulator-edp-bl {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VBL9";
+ regulator-min-microvolt = <3600000>;
+ regulator-max-microvolt = <3600000>;
+
+ 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;
+ };
+
+ vreg_nvme: regulator-nvme {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_NVME_3P3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&tlmm 18 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&nvme_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vreg_rtmr0_1p15: regulator-rtmr0-1p15 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_RTMR0_1P15";
+ regulator-min-microvolt = <1150000>;
+ regulator-max-microvolt = <1150000>;
+
+ gpio = <&pmc8380_5_gpios 8 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&usb0_pwr_1p15_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vreg_rtmr0_1p8: regulator-rtmr0-1p8 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_RTMR0_1P8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ gpio = <&pm8550ve_9_gpios 8 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&usb0_1p8_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vreg_rtmr0_3p3: regulator-rtmr0-3p3 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_RTMR0_3P3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&pm8550_gpios 11 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&usb0_3p3_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ 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_0p95: regulator-wcn-0p95 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_WCN_0P95";
+ regulator-min-microvolt = <950000>;
+ regulator-max-microvolt = <950000>;
+
+ vin-supply = <&vreg_wcn_3p3>;
+ };
+
+ vreg_wcn_1p9: regulator-wcn-1p9 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_WCN_1P9";
+ regulator-min-microvolt = <1900000>;
+ regulator-max-microvolt = <1900000>;
+
+ vin-supply = <&vreg_wcn_3p3>;
+ };
+
+ vreg_wcn_3p3: regulator-wcn-3p3 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_WCN_3P3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&tlmm 214 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&wcn_sw_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ wcn7850-pmu {
+ compatible = "qcom,wcn7850-pmu";
+
+ vdd-supply = <&vreg_wcn_0p95>;
+ vddio-supply = <&vreg_l15b_1p8>;
+ vddaon-supply = <&vreg_wcn_0p95>;
+ vdddig-supply = <&vreg_wcn_0p95>;
+ vddrfa1p2-supply = <&vreg_wcn_1p9>;
+ vddrfa1p8-supply = <&vreg_wcn_1p9>;
+
+ wlan-enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
+ bt-enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>;
+
+ pinctrl-0 = <&wcn_wlan_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_l8b_3p0: ldo8 {
+ regulator-name = "vreg_l8b_3p0";
+ regulator-min-microvolt = <3072000>;
+ regulator-max-microvolt = <3072000>;
+ 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_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;
+ };
+ };
+
+ 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>;
+ };
+ };
+
+ 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_l3i_0p8: ldo3 {
+ regulator-name = "vreg_l3i_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-7 {
+ compatible = "qcom,pm8550ve-rpmh-regulators";
+ qcom,pmic-id = "j";
+
+ vdd-l1-supply = <&vreg_s1f_0p7>;
+ vdd-l2-supply = <&vreg_s5j_1p2>;
+ vdd-l3-supply = <&vreg_s1f_0p7>;
+ vdd-s5-supply = <&vph_pwr>;
+
+ vreg_s5j_1p2: smps5 {
+ regulator-name = "vreg_s5j_1p2";
+ regulator-min-microvolt = <1256000>;
+ regulator-max-microvolt = <1304000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1j_0p8: ldo1 {
+ regulator-name = "vreg_l1j_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2j_1p2: ldo2 {
+ regulator-name = "vreg_l2j_1p2";
+ regulator-min-microvolt = <1256000>;
+ regulator-max-microvolt = <1256000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3j_0p8: ldo3 {
+ regulator-name = "vreg_l3j_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+};
+
+&gpu {
+ status = "okay";
+};
+
+&gpu_zap_shader {
+ firmware-name = "qcom/x1e80100/ACER/SFA14-11/qcdxkmsuc8380.mbn";
+};
+
+&i2c0 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+
+ touchpad@2c {
+ compatible = "hid-over-i2c";
+ reg = <0x2c>;
+
+ hid-descr-addr = <0x20>;
+ interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>;
+
+ vdd-supply = <&vreg_misc_3p3>;
+ vddl-supply = <&vreg_l12b_1p2>;
+
+ pinctrl-0 = <&tpad_default>;
+ pinctrl-names = "default";
+
+ wakeup-source;
+ };
+
+ keyboard@3a {
+ compatible = "hid-over-i2c";
+ reg = <0x3a>;
+
+ hid-descr-addr = <0x01>;
+ interrupts-extended = <&tlmm 67 IRQ_TYPE_LEVEL_LOW>;
+
+ vdd-supply = <&vreg_misc_3p3>;
+ vddl-supply = <&vreg_l12b_1p2>;
+
+ pinctrl-0 = <&kybd_default>;
+ pinctrl-names = "default";
+
+ wakeup-source;
+ };
+};
+
+&i2c3 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+
+ typec-mux@8 {
+ compatible = "parade,ps8830";
+ reg = <0x08>;
+
+ clocks = <&rpmhcc RPMH_RF_CLK3>;
+
+ vdd-supply = <&vreg_rtmr0_1p15>;
+ vdd33-supply = <&vreg_rtmr0_3p3>;
+ vdd33-cap-supply = <&vreg_rtmr0_3p3>;
+ vddar-supply = <&vreg_rtmr0_1p15>;
+ vddat-supply = <&vreg_rtmr0_1p15>;
+ vddio-supply = <&vreg_rtmr0_1p8>;
+
+ reset-gpios = <&pm8550_gpios 10 GPIO_ACTIVE_LOW>;
+
+ pinctrl-0 = <&rtmr0_default>;
+ pinctrl-names = "default";
+
+ retimer-switch;
+ orientation-switch;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ retimer_ss0_ss_out: endpoint {
+ remote-endpoint = <&pmic_glink_ss0_ss_in>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ retimer_ss0_ss_in: endpoint {
+ remote-endpoint = <&usb_1_ss0_qmpphy_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ retimer_ss0_con_sbu_out: endpoint {
+ remote-endpoint = <&pmic_glink_ss0_con_sbu_in>;
+ };
+ };
+ };
+ };
+};
+
+&iris {
+ firmware-name = "qcom/x1e80100/ACER/SFA14-11/qcvss8380.mbn";
+
+ 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 2 3>;
+ link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
+&mdss_dp1 {
+ ports {
+ /delete-node/ port@1;
+ };
+};
+
+&mdss_dp2 {
+ status = "okay";
+};
+
+&mdss_dp2_out {
+ data-lanes = <0 1 2 3>;
+ link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
+&mdss_dp3 {
+ /delete-property/ #sound-dai-cells;
+
+ pinctrl-0 = <&edp0_hpd_default>;
+ pinctrl-names = "default";
+
+ status = "okay";
+
+ aux-bus {
+ panel {
+ compatible = "edp-panel";
+
+ backlight = <&backlight>;
+
+ power-supply = <&vreg_edp_3p3>;
+
+ port {
+ edp_panel_in: endpoint {
+ remote-endpoint = <&mdss_dp3_out>;
+ };
+ };
+ };
+ };
+};
+
+&mdss_dp3_out {
+ data-lanes = <0 1 2 3>;
+ link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+
+ remote-endpoint = <&edp_panel_in>;
+};
+
+&mdss_dp3_phy {
+ vdda-phy-supply = <&vreg_l3j_0p8>;
+ vdda-pll-supply = <&vreg_l2j_1p2>;
+
+ status = "okay";
+};
+
+&pcie4 {
+ 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 {
+ reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
+
+ wifi@0 {
+ compatible = "pci17cb,1107";
+ reg = <0x10000 0x0 0x0 0x0 0x0>;
+
+ vddaon-supply = <&vreg_pmu_aon_0p59>;
+ vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+ vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+ vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+ vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+ vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+ vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
+ vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
+ vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
+ };
+};
+
+&pcie6a {
+ vddpe-3v3-supply = <&vreg_nvme>;
+
+ pinctrl-0 = <&pcie6a_default>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcie6a_phy {
+ vdda-phy-supply = <&vreg_l1d_0p8>;
+ vdda-pll-supply = <&vreg_l2j_1p2>;
+
+ status = "okay";
+};
+
+&pcie6a_port0 {
+ reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+};
+
+&pm8550_gpios {
+ kypd_vol_up_n: kypd-vol-up-n-state {
+ pins = "gpio6";
+ function = "normal";
+ power-source = <1>; /* 1.8 V */
+ bias-pull-up;
+ input-enable;
+ };
+
+ edp_bl_pwm: edp-bl-pwm-state {
+ pins = "gpio8";
+ function = "func1";
+ };
+
+ rtmr0_default: rtmr0-reset-n-active-state {
+ pins = "gpio10";
+ function = "normal";
+ power-source = <1>; /* 1.8V */
+ bias-disable;
+ input-disable;
+ output-enable;
+ };
+
+ usb0_3p3_reg_en: usb0-3p3-reg-en-state {
+ pins = "gpio11";
+ function = "normal";
+ power-source = <1>; /* 1.8V */
+ bias-disable;
+ input-disable;
+ output-enable;
+ };
+};
+
+&pm8550_pwm {
+ pinctrl-0 = <&edp_bl_pwm>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pm8550ve_8_gpios {
+ misc_3p3_reg_en: misc-3p3-reg-en-state {
+ pins = "gpio6";
+ function = "normal";
+ bias-disable;
+ input-disable;
+ output-enable;
+ drive-push-pull;
+ power-source = <1>; /* 1.8 V */
+ qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+ };
+};
+
+&pm8550ve_9_gpios {
+ usb0_1p8_reg_en: usb0-1p8-reg-en-state {
+ pins = "gpio8";
+ function = "normal";
+ power-source = <1>; /* 1.8V */
+ bias-disable;
+ input-disable;
+ output-enable;
+ };
+};
+
+&pmc8380_5_gpios {
+ usb0_pwr_1p15_reg_en: usb0-pwr-1p15-reg-en-state {
+ pins = "gpio8";
+ function = "normal";
+ power-source = <1>; /* 1.8V */
+ bias-disable;
+ input-disable;
+ output-enable;
+ };
+};
+
+&qupv3_0 {
+ status = "okay";
+};
+
+&qupv3_1 {
+ status = "okay";
+};
+
+&qupv3_2 {
+ status = "okay";
+};
+
+&remoteproc_adsp {
+ firmware-name = "qcom/x1e80100/ACER/SFA14-11/qcadsp8380.mbn",
+ "qcom/x1e80100/ACER/SFA14-11/adsp_dtbs.elf";
+
+ status = "okay";
+};
+
+&remoteproc_cdsp {
+ firmware-name = "qcom/x1e80100/ACER/SFA14-11/qccdsp8380.mbn",
+ "qcom/x1e80100/ACER/SFA14-11/cdsp_dtbs.elf";
+
+ status = "okay";
+};
+
+&smb2360_0 {
+ status = "okay";
+};
+
+&smb2360_0_eusb2_repeater {
+ vdd18-supply = <&vreg_l3d_1p8>;
+ vdd3-supply = <&vreg_l2b_3p0>;
+};
+
+&swr0 {
+ status = "okay";
+
+ pinctrl-0 = <&wsa_swr_active>, <&spkr_01_sd_n_active>;
+ pinctrl-names = "default";
+
+ /* WSA8845, Left Woofer */
+ left_woofer: speaker@0,0 {
+ compatible = "sdw20217020400";
+ reg = <0 0>;
+ reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "WooferLeft";
+ vdd-1p8-supply = <&vreg_l15b_1p8>;
+ vdd-io-supply = <&vreg_l12b_1p2>;
+ qcom,port-mapping = <1 2 3 7 10 13>;
+ };
+
+ /* WSA8845, Left Tweeter */
+ left_tweeter: speaker@0,1 {
+ compatible = "sdw20217020400";
+ reg = <0 1>;
+ reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "TweeterLeft";
+ vdd-1p8-supply = <&vreg_l15b_1p8>;
+ vdd-io-supply = <&vreg_l12b_1p2>;
+ qcom,port-mapping = <4 5 6 7 11 13>;
+ };
+};
+
+&swr1 {
+ status = "okay";
+
+ /* WCD9385 RX */
+ wcd_rx: codec@0,4 {
+ compatible = "sdw20217010d00";
+ reg = <0 4>;
+ qcom,rx-port-mapping = <1 2 3 4 5>;
+ };
+};
+
+&swr2 {
+ status = "okay";
+
+ /* WCD9385 TX */
+ wcd_tx: codec@0,3 {
+ compatible = "sdw20217010d00";
+ reg = <0 3>;
+ qcom,tx-port-mapping = <2 2 3 4>;
+ };
+};
+
+&swr3 {
+ status = "okay";
+
+ pinctrl-0 = <&wsa2_swr_active>, <&spkr_23_sd_n_active>;
+ pinctrl-names = "default";
+
+ /* WSA8845, Right Woofer */
+ right_woofer: speaker@0,0 {
+ compatible = "sdw20217020400";
+ reg = <0 0>;
+ reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "WooferRight";
+ vdd-1p8-supply = <&vreg_l15b_1p8>;
+ vdd-io-supply = <&vreg_l12b_1p2>;
+ qcom,port-mapping = <1 2 3 7 10 13>;
+ };
+
+ /* WSA8845, Right Tweeter */
+ right_tweeter: speaker@0,1 {
+ compatible = "sdw20217020400";
+ reg = <0 1>;
+ reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "TweeterRight";
+ vdd-1p8-supply = <&vreg_l15b_1p8>;
+ vdd-io-supply = <&vreg_l12b_1p2>;
+ qcom,port-mapping = <4 5 6 7 11 13>;
+ };
+};
+
+&tlmm {
+ gpio-reserved-ranges = <34 2>, /* Unused */
+ <44 4>, /* SPI (TPM) */
+ <238 1>; /* UFS Reset */
+
+ edp_reg_en: edp-reg-en-state {
+ pins = "gpio70";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ };
+
+ hall_int_n_default: hall-int-n-state {
+ pins = "gpio92";
+ function = "gpio";
+ bias-disable;
+ };
+
+ hdmi_hpd_default: hdmi-hpd-default-state {
+ pins = "gpio126";
+ function = "usb2_dp";
+ bias-disable;
+ };
+
+ kybd_default: kybd-default-state {
+ pins = "gpio67";
+ function = "gpio";
+ bias-disable;
+ };
+
+ nvme_reg_en: nvme-reg-en-state {
+ pins = "gpio18";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ pcie4_default: pcie4-default-state {
+ clkreq-n-pins {
+ pins = "gpio147";
+ function = "pcie4_clk";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ perst-n-pins {
+ pins = "gpio146";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ wake-n-pins {
+ pins = "gpio148";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
+ pcie6a_default: pcie6a-default-state {
+ clkreq-n-pins {
+ pins = "gpio153";
+ function = "pcie6a_clk";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ perst-n-pins {
+ pins = "gpio152";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ wake-n-pins {
+ pins = "gpio154";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
+ tpad_default: tpad-default-state {
+ pins = "gpio3";
+ function = "gpio";
+ bias-disable;
+ };
+
+ wcd_default: wcd-reset-n-active-state {
+ pins = "gpio191";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ };
+
+ wcn_sw_en: wcn-sw-en-state {
+ pins = "gpio214";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ wcn_wlan_bt_en: wcn-wlan-bt-en-state {
+ pins = "gpio116", "gpio117";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+};
+
+&uart14 {
+ status = "okay";
+
+ bluetooth {
+ compatible = "qcom,wcn7850-bt";
+ max-speed = <3200000>;
+
+ vddaon-supply = <&vreg_pmu_aon_0p59>;
+ vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+ vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+ vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+ vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+ vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+ vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
+ };
+};
+
+&uart21 {
+ compatible = "qcom,geni-debug-uart";
+
+ status = "okay";
+};
+
+&usb_1_ss0 {
+ dr_mode = "host";
+
+ status = "okay";
+};
+
+&usb_1_ss0_dwc3_hs {
+ remote-endpoint = <&pmic_glink_ss0_hs_in>;
+};
+
+&usb_1_ss0_hsphy {
+ vdd-supply = <&vreg_l3j_0p8>;
+ vdda12-supply = <&vreg_l2j_1p2>;
+
+ phys = <&smb2360_0_eusb2_repeater>;
+
+ status = "okay";
+};
+
+&usb_1_ss0_qmpphy {
+ vdda-phy-supply = <&vreg_l2j_1p2>;
+ vdda-pll-supply = <&vreg_l1j_0p8>;
+
+ status = "okay";
+};
+
+&usb_1_ss0_qmpphy_dp_in {
+ remote-endpoint = <&mdss_dp0_out>;
+};
+
+&usb_1_ss0_qmpphy_out {
+ remote-endpoint = <&retimer_ss0_ss_in>;
+};
+
+&usb_1_ss1 {
+ dr_mode = "host";
+
+ 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";
+
+ /delete-property/ mode-switch;
+ /delete-property/ orientation-switch;
+
+ ports {
+ /delete-node/ port@2;
+ };
+};
+
+&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>;
+ };
+
+ /* No USB3 lanes connected */
+ };
+ };
+};
+
+&usb_2 {
+ dr_mode = "host";
+
+ status = "okay";
+};
+
+&usb_2_hsphy {
+ vdd-supply = <&vreg_l2e_0p8>;
+ vdda12-supply = <&vreg_l3e_1p2>;
+
+ status = "okay";
+};
+
+&usb_mp {
+ status = "okay";
+};
+
+&usb_mp_hsphy0 {
+ vdd-supply = <&vreg_l2e_0p8>;
+ vdda12-supply = <&vreg_l3e_1p2>;
+
+ status = "okay";
+};
+
+&usb_mp_hsphy1 {
+ vdd-supply = <&vreg_l2e_0p8>;
+ vdda12-supply = <&vreg_l3e_1p2>;
+
+ status = "okay";
+};
+
+&usb_mp_qmpphy0 {
+ vdda-phy-supply = <&vreg_l3e_1p2>;
+ vdda-pll-supply = <&vreg_l3c_0p8>;
+
+ status = "okay";
+};
+
+&usb_mp_qmpphy1 {
+ vdda-phy-supply = <&vreg_l3e_1p2>;
+ vdda-pll-supply = <&vreg_l3c_0p8>;
+
+ status = "okay";
+};
--
2.53.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v4 2/2] arm64: dts: qcom: Add support for Acer Swift Go Pro AI (SFA14-11)
2026-10-06 8:54 ` [PATCH v4 2/2] arm64: dts: qcom: Add support for " Kaipeng Zeng
@ 2026-10-06 9:07 ` sashiko-bot
0 siblings, 0 replies; 9+ messages in thread
From: sashiko-bot @ 2026-10-06 9:07 UTC (permalink / raw)
To: Kaipeng Zeng; +Cc: conor+dt, robh, devicetree
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] dts: qcom: incorrect audio routing for Right Woofer to WSA_SPK2 OUT
--
commit 3b512df8c5cf84f3c49842cc54b1c1d65850a946
Author: Kaipeng Zeng <kaipeng94@gmail.com>
arm64: dts: qcom: Add support for Acer Swift Go Pro AI (SFA14-11)
Introduce device tree for the Acer Swift Go Pro AI (SFA14-11).
It is a laptop based on the Qualcomm Snapdragon X Elite (X1E78100) SoC.
This device tree implementation references nodes from the x1-crd.dtsi.
> diff --git a/arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts b/arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts
> new file mode 100644
> index 0000000000000..dafe7f08fa958
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts
[ ... ]
> + sound {
> + compatible = "qcom,x1e80100-sndcard";
> + model = "X1E78100-ACER-Swift-Go-SFA14-11";
> + 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]
Does this code incorrectly map both the Right Woofer and Right Tweeter to the
same macro output (WSA2 WSA_SPK2 OUT)?
Since the Right Woofer expects audio data on SoundWire ports 1, 2, and 3
(corresponding to INT0/SPK1), routing it to INT1/SPK2 could mean it will be
starved of audio data and remain silent.
Should "WooferRight IN" be routed to "WSA2 WSA_SPK1 OUT" instead?
> + "IN1_HPHL", "HPHL_OUT",
> + "IN2_HPHR", "HPHR_OUT",
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261006085425.40450-1-kaipeng94@gmail.com?part=2
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v4 0/2] Add device tree for Acer Swift Go Pro AI (SFA14-11)
2026-10-06 8:54 [PATCH v4 0/2] Add device tree for Acer Swift Go Pro AI (SFA14-11) Kaipeng Zeng
2026-10-06 8:54 ` [PATCH v4 1/2] dt-bindings: arm: qcom: Add " Kaipeng Zeng
2026-10-06 8:54 ` [PATCH v4 2/2] arm64: dts: qcom: Add support for " Kaipeng Zeng
@ 2026-10-08 10:34 ` Jianfeng Liu
2026-10-12 8:15 ` Kaipeng Zeng
2 siblings, 1 reply; 9+ messages in thread
From: Jianfeng Liu @ 2026-10-08 10:34 UTC (permalink / raw)
To: kaipeng94
Cc: andersson, conor+dt, devicetree, konradybcio, krzk+dt,
linux-arm-msm, robh
Hi Kaipeng,
Thanks for working on this device! I have also been working on a device
tree for the same laptop; my series is currently on the list:
https://lore.kernel.org/linux-arm-msm/20260929103053.10241-1-liujianfeng1994@gmail.com/
Since we are both targeting the same hardware, I think it makes sense to
consolidate the two efforts into a single series, as is the usual practice.
Below is a summary of what I found while comparing our versions, hoping
this helps us converge.
A few things I noticed in your v4:
The vdda-phy/vdda-pll supplies appear to be swapped on all four QMP PHYs
(usb_1_ss0_qmpphy, usb_1_ss2_qmpphy, usb_mp_qmpphy0/1). The QMP PHY expects
vdda-phy at ~0.88 V and vdda-pll at 1.2 V. The same issue was fixed
recently on the Purwa boards in commit 7c1d0ef2969e1 ("arm64: dts: qcom:
purwa: Fix swapped USB QMP PHY vdda-phy/vdda-pll supplies"), which
includes the reference mapping used by the other X1E boards.
The &tcsr QREF supplies are missing. The qcom,x1e80100-tcsr binding now
requires the vdda-qref*/vdda-refgen* supplies, so DTBS_CHECK reports 18
warnings without them. All other Hamoa boards have been updated with this
block.
The series is missing the QSEECOM allowlist entry for this machine
(firmware: qcom: scm: Allow QSEECOM on ...), which is needed for
uefisecapp / efivars access. I'm carrying that as a separate patch in
my series.
The three PTN3222 eUSB2 repeaters on i2c5 (addresses 0x47/0x4b/0x4f) are
not described. They are present on this board and feed usb_2 (webcam) and
the usb_mp ports.
The displayport-2 DAI link is missing, so audio over the HDMI bridge
doesn't work. My version also sets sound-name-prefix on mdss_dp0/mdss_dp2,
which is needed for the DP audio links.
Two nodes look like they may have been carried over from x1-crd.dtsi
without being verified on this laptop — could you double-check them?
- key-vol-up: as far as I can tell this laptop has no physical volume
key (volume is an Fn combo on the keyboard).
- dmic23 / "VA DMIC2/3" routing: the mic array appears to be a dual-mic
setup beside the camera — tap-testing around the chassis only shows
mic response near the camera.
On the naming: upstream asked me to change my compatible to
"acer,swift-sfa14-11" (my v1 used "acer,sfa14-11", following the DMI
product name). Acer's support site calls the machine "Swift SFA14-11", and
I couldn't find "Swift Go Pro AI" as an official product line anywhere.
Since our series use different compatible strings, file names and models,
we'll need to align on one either way — I'm happy to go with whatever
the maintainers prefer.
One question: you enable usb_1_ss1 with its QMP PHY in USB3-only mode
(DP input port deleted). Could you share what it is wired to on this
machine? The only USB-C port is on usb_1_ss0 and the HDMI bridge is fed
from usb_1_ss2_qmpphy, so I wasn't sure what ss1 connects to.
By the way, your EL2-mode testing is a valuable data point — I haven't
tested that configuration. On my side the following is verified working
on hardware: eDP display with PWM backlight, I2C keyboard and touchpad,
USB-A ports, USB-C with DP alt mode (video + audio), HDMI video + audio,
speakers and headphone jack, WiFi and Bluetooth (UART), webcam, NVMe,
GPU and battery charging.
Happy to integrate any findings from your testing into my series, or to
review and help with yours if you prefer to carry it forward — whichever
way the maintainers would like to handle it.
Best regards,
Jianfeng
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v4 0/2] Add device tree for Acer Swift Go Pro AI (SFA14-11)
2026-10-08 10:34 ` [PATCH v4 0/2] Add device tree " Jianfeng Liu
@ 2026-10-12 8:15 ` Kaipeng Zeng
2026-10-12 10:03 ` Jianfeng Liu
0 siblings, 1 reply; 9+ messages in thread
From: Kaipeng Zeng @ 2026-10-12 8:15 UTC (permalink / raw)
To: Jianfeng Liu
Cc: andersson, conor+dt, devicetree, konradybcio, krzk+dt,
linux-arm-msm, robh
Hi Jianfeng,
Thanks for your review!
On Thu, Oct 8, 2026 at 6:34 PM Jianfeng Liu <liujianfeng1994@gmail.com> wrote:
>
> Hi Kaipeng,
>
> A few things I noticed in your v4:
>
> The vdda-phy/vdda-pll supplies appear to be swapped on all four QMP PHYs
> (usb_1_ss0_qmpphy, usb_1_ss2_qmpphy, usb_mp_qmpphy0/1). The QMP PHY expects
> vdda-phy at ~0.88 V and vdda-pll at 1.2 V. The same issue was fixed
> recently on the Purwa boards in commit 7c1d0ef2969e1 ("arm64: dts: qcom:
> purwa: Fix swapped USB QMP PHY vdda-phy/vdda-pll supplies"), which
> includes the reference mapping used by the other X1E boards.
>
> The &tcsr QREF supplies are missing. The qcom,x1e80100-tcsr binding now
> requires the vdda-qref*/vdda-refgen* supplies, so DTBS_CHECK reports 18
> warnings without them. All other Hamoa boards have been updated with this
> block.
>
These are some updates in x1-crd.dtsi.
Since my first submission was earlier, and my work is based on
x1-crd.dtsi, I didn't
rebase to newest Linux-next this version, because I am not sure if
it's necessary.
Thank you for pointing out the differences.
I would rebase to the newest Linux-next in the future version.
>
> The three PTN3222 eUSB2 repeaters on i2c5 (addresses 0x47/0x4b/0x4f) are
> not described. They are present on this board and feed usb_2 (webcam) and
> the usb_mp ports.
>
I actually missed describing these repeaters.
When I started porting x1-crd.dtsi to SFA14-11, I encountered hangs or
a black screen
during boot when some no-exist I2C device nodes were enabled, I remove them as
possible.
In my testing, USB devices work well, without issue in this case.
Maybe they are initialized by UEFI, and kept during Linux kernel boot?
So, I missed describing these i2c devices.
After you point out, I found these i2c devices can be detected by i2cdetect.
I would describe in the next version.
BTW, could you let me know, how can you know which usb devices use
which repeater?
It would be very appreciated!
> The displayport-2 DAI link is missing, so audio over the HDMI bridge
> doesn't work. My version also sets sound-name-prefix on mdss_dp0/mdss_dp2,
> which is needed for the DP audio links.
>
Currently, the audio of my dts can only work partially.
I suspect there is something wrong in my ALSA configuration, and
adding sound-name-prefix
can improve nothing in my case.
I still need time to try to solve this problem (also dmic23 / "VA
DMIC2/3" routing problem
you point out).
I notice you list that your audio totally works, if your
alsa-ucm-config is your customized or
just using X1E80100-CRD.conf?
> Two nodes look like they may have been carried over from x1-crd.dtsi
> without being verified on this laptop — could you double-check them?
>
> - key-vol-up: as far as I can tell this laptop has no physical volume
> key (volume is an Fn combo on the keyboard).
>
I think this should be removed. I would remove it in the next version.
>
> On the naming: upstream asked me to change my compatible to
> "acer,swift-sfa14-11" (my v1 used "acer,sfa14-11", following the DMI
> product name). Acer's support site calls the machine "Swift SFA14-11", and
> I couldn't find "Swift Go Pro AI" as an official product line anywhere.
> Since our series use different compatible strings, file names and models,
> we'll need to align on one either way — I'm happy to go with whatever
> the maintainers prefer.
Acer had a page about "Acer Swift Go Pro AI" but it was deleted,
fortunately here is
a snapshot:
https://web.archive.org/web/20260314171131/https://www.acer.com.cn/product_list.html?parentid=323
It's sold in China using the name "Acer 非凡 Go Pro AI".
There is some discussion in the thread of my previous version:
https://lore.kernel.org/linux-devicetree/20260729064538.19564-3-kaipeng94@gmail.com/
I have no idea if your "swift SFA14-11" is the same as my "Acer swift
Go Pro AI".
> One question: you enable usb_1_ss1 with its QMP PHY in USB3-only mode
> (DP input port deleted). Could you share what it is wired to on this
> machine? The only USB-C port is on usb_1_ss0 and the HDMI bridge is fed
> from usb_1_ss2_qmpphy, so I wasn't sure what ss1 connects to.
>
It may be an unused USB root hub device, can be found via lsusb or sysfs.
I didn't verify if there is any device wired to it before.
I verified after you point out this, and I couldn't find any device is
wired to it.
All USB devices I tested still worked when I disabled it.
If so, I think it could be removed.
But, I can't confirm if this USB device would be used by SoC internal.
> By the way, your EL2-mode testing is a valuable data point — I haven't
> tested that configuration. On my side the following is verified working
> on hardware: eDP display with PWM backlight, I2C keyboard and touchpad,
> USB-A ports, USB-C with DP alt mode (video + audio), HDMI video + audio,
> speakers and headphone jack, WiFi and Bluetooth (UART), webcam, NVMe,
> GPU and battery charging.
>
Seems that your Makefile have the el2 as well, but you didn't test it
under EL2-mode?
Please check my changelog, it includes my testing status and
parameters of kernel.
I am not sure if you would run into the same problem, hope it can help you.
> Happy to integrate any findings from your testing into my series, or to
> review and help with yours if you prefer to carry it forward — whichever
> way the maintainers would like to handle it.
>
You have pointed out a lot details, which is very helpful for my work.
Thanks very much!
I will fix the above issue and continue to send the next version.
Your review would be very appreciated!
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v4 0/2] Add device tree for Acer Swift Go Pro AI (SFA14-11)
2026-10-12 8:15 ` Kaipeng Zeng
@ 2026-10-12 10:03 ` Jianfeng Liu
2026-10-12 14:18 ` Jactry Zeng
0 siblings, 1 reply; 9+ messages in thread
From: Jianfeng Liu @ 2026-10-12 10:03 UTC (permalink / raw)
To: kaipeng94
Cc: andersson, conor+dt, devicetree, konradybcio, krzk+dt,
linux-arm-msm, liujianfeng1994, robh
Hi Kaipeng,
Thanks for the detailed reply!
On Mon, 12 Oct 2026 16:15:19 +0800,Kaipeng Zeng wrote:
>Acer had a page about "Acer Swift Go Pro AI" but it was deleted,
>fortunately here is
>a snapshot:
>https://web.archive.org/web/20260314171131/https://www.acer.com.cn/product_list.html?parentid=323
>It's sold in China using the name "Acer 非凡 Go Pro AI".
>There is some discussion in the thread of my previous version:
>https://lore.kernel.org/linux-devicetree/20260729064538.19564-3-kaipeng94@gmail.com/
>I have no idea if your "swift SFA14-11" is the same as my "Acer swift
>Go Pro AI".
On the naming: you're right, and thanks for the pointer — the SFA14-11
series was indeed marketed in China as 宏碁非凡 Go Pro AI (my unit is
an SFA14-11-QWU1; the retail listings I found, e.g. on Suning, are other
SKUs like the SFA14-11-QGU1). One thing I noticed though: that retail page
has since been taken down, and Acer's support sites — global and China
alike [2] — identify the machine as plain "SFA14-11" within the Swift/非凡
series, matching the DMI and the model string shown in Windows. So it
looks like "Swift SFA14-11" is the stable, support-level identity, while
"Go Pro AI" was the transient retail name.
In my series the maintainers asked me to use "acer,swift-sfa14-11";
Ubuntu's stubble has also independently settled on that exact string as
the hwid for this machine [1], so that is the string my series will keep
unless the maintainers reconsider after seeing your evidence — happy to
align either way.
>Currently, the audio of my dts can only work partially.
>I suspect there is something wrong in my ALSA configuration, and
>adding sound-name-prefix
>can improve nothing in my case.
>I still need time to try to solve this problem (also dmic23 / "VA
>DMIC2/3" routing problem
>you point out).
>I notice you list that your audio totally works, if your
>alsa-ucm-config is your customized or
>just using X1E80100-CRD.conf?
I'm using the UCM configuration for this machine from Ratizux's downstream
alsa-ucm-conf tree [3] (small world — your brightness work is based on
their kernel repo [4]). Upstream alsa-ucm-conf doesn't have a profile for
this machine yet, so if your Ubuntu 26.04 doesn't carry one either, that's
likely a good part of your audio issues, on top of the missing
displayport-2 DAI link. It would be nice to coordinate with Ratizux and get
the profile submitted upstream.
On the dmic23 question: the array on my machine is a dual-mic setup next to
the camera — I verified by tap-testing around the chassis (only the camera
area shows mic response), and the VA capture device exposes 2 channels.
The other X1E laptops in tree (T14s, Vivobook, EliteBook, ...) all use
dmic01 only; dmic23 is only wired on the CRD, which made me suspect it was
carried over from the template.
>BTW, could you let me know, how can you know which usb devices use
>which repeater?
The repeater mapping mostly comes from the ThinkPad T14s device tree, which
is the same reference design — it gives the i2c addresses, reset GPIOs and
which hsphy each repeater feeds (0x43/0x47/0x4f on i2c5 with tlmm 7/6/184).
On my board i2cdetect shows the repeaters at 0x47/0x4b/0x4f (the camera's
repeater sits at 0x4b rather than T14s's 0x43), so I kept the T14s mapping
with that one address adjusted, and verified functionally: webcam on usb_2,
USB-A ports on usb_mp. Your UEFI hypothesis sounds right by the way — since
Linux never touches the reset GPIOs when the nodes are absent, chips
initialized by UEFI keep working; describing them is still the correct thing
to do since it makes the boot-to-boot behaviour deterministic.
>It may be an unused USB root hub device, can be found via lsusb or sysfs.
>I didn't verify if there is any device wired to it before.
>I verified after you point out this, and I couldn't find any device is
>wired to it.
>All USB devices I tested still worked when I disabled it.
>If so, I think it could be removed.
>But, I can't confirm if this USB device would be used by SoC internal.
Thanks for checking! On this board the internal devices (webcam, the fingerprint hub) hang off usb_2 and usb_mp, so with nothing answering on ss1 I agree it can be dropped.
Since you're planning to send the next version, I'll keep my series updated in parallel and will of course review yours — I'll leave it to Bjorn and Konrad to pick whichever they prefer. Thanks also for the EL2 notes; I haven't tested that configuration yet and will give it a try with iommu.passthrough=1.
Best regards,
Jianfeng
[1] https://github.com/ubuntu/stubble/blob/main/hwids/json/x1e78100-acer-sfa14-11.json
[2] https://www.acer.com.cn/support.html?type=1
[3] https://github.com/Ratizux/alsa-ucm-conf
[4] https://github.com/Ratizux/linux-device-acer-sfa14-11.git
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v4 0/2] Add device tree for Acer Swift Go Pro AI (SFA14-11)
2026-10-12 10:03 ` Jianfeng Liu
@ 2026-10-12 14:18 ` Jactry Zeng
2026-10-13 1:57 ` [PATCH v4 0/2] Add device tree for Acer Swift Go Pro AI Jianfeng Liu
0 siblings, 1 reply; 9+ messages in thread
From: Jactry Zeng @ 2026-10-12 14:18 UTC (permalink / raw)
To: Jianfeng Liu, kaipeng94
Cc: andersson, conor+dt, devicetree, konradybcio, krzk+dt,
linux-arm-msm, robh
Hi,
On 10/12/26 18:03, Jianfeng Liu wrote:
> On Mon, 12 Oct 2026 16:15:19 +0800,Kaipeng Zeng wrote:
>> Acer had a page about "Acer Swift Go Pro AI" but it was deleted,
>> fortunately here is
>> a snapshot:
>> https://web.archive.org/web/20260314171131/https://www.acer.com.cn/
>> product_list.html?parentid=323
>> It's sold in China using the name "Acer 非凡 Go Pro AI".
>> There is some discussion in the thread of my previous version:
>> https://lore.kernel.org/linux-devicetree/20260729064538.19564-3-
>> kaipeng94@gmail.com/
>> I have no idea if your "swift SFA14-11" is the same as my "Acer swift
>> Go Pro AI".
> On the naming: you're right, and thanks for the pointer — the SFA14-11
> series was indeed marketed in China as 宏碁非凡 Go Pro AI (my unit is
> an SFA14-11-QWU1; the retail listings I found, e.g. on Suning, are other
> SKUs like the SFA14-11-QGU1). One thing I noticed though: that retail page
> has since been taken down, and Acer's support sites — global and China
> alike [2] — identify the machine as plain "SFA14-11" within the Swift/非凡
> series, matching the DMI and the model string shown in Windows. So it
> looks like "Swift SFA14-11" is the stable, support-level identity, while
> "Go Pro AI" was the transient retail name.
I think we are about confusing the product name and the model name here?
It is clear that the product name is Acer Swift (aka '非凡' in Chinese) Go
Pro AI; the link to Ubuntu stubble you provided also reveals this somehow.
Also, IMHO, I think we can't use 'stable' to describe this situation. As
soon as the product is produced, it was given a product/model name;
unless Acer renames it, this is it. The vendor can also remove the
support page that you referred to sometime in the future, just like they
removed the product page; this isn't rare; I think we always shouldn't
depend on it.
As Kaipeng mentioned, there were more discussions about naming in the
threads of his v1 and v2 to this mailing list in July, if you are
interested.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v4 0/2] Add device tree for Acer Swift Go Pro AI
2026-10-12 14:18 ` Jactry Zeng
@ 2026-10-13 1:57 ` Jianfeng Liu
0 siblings, 0 replies; 9+ messages in thread
From: Jianfeng Liu @ 2026-10-13 1:57 UTC (permalink / raw)
To: jactry92
Cc: andersson, conor+dt, devicetree, kaipeng94, konradybcio, krzk+dt,
linux-arm-msm, liujianfeng1994, robh, krzysztof.kozlowski
Hi,
On Mon, 12 Oct 2026 22:18:13 +0800, Jactry Zeng wrote:
>I think we are about confusing the product name and the model name here?
>It is clear that the product name is Acer Swift (aka '非凡' in Chinese) Go
>Pro AI; the link to Ubuntu stubble you provided also reveals this somehow.
I agree the product name / model name distinction is the right frame. It
turns out we can settle the product name fairly directly, though: if I look
my machine up on Acer's support site by its SNID, it resolves to
"Swift SFA14-11" in every region I tried — Japan, US, Australia, UK —
and on the China support site as well. So within Acer's support database
the product name is uniformly "Swift SFA14-11", and "非凡 Go Pro AI" was
only the retail marketing name used on the Chinese storefront, whose page
has since been taken down. It is not even a China-vs-global split — the
support identification is the same everywhere.
>Also, IMHO, I think we can't use 'stable' to describe this situation. As
>soon as the product is produced, it was given a product/model name;
>unless Acer renames it, this is it. The vendor can also remove the
>support page that you referred to sometime in the future, just like they
>removed the product page; this isn't rare; I think we always shouldn't
>depend on it.
I fully agree that web pages are not a sound basis — so I'm happy to drop
page-based arguments altogether. That leaves the two sources that cannot be
taken down: the DMI tables provided by the firmware (Product Name:
SFA14-11, which is also what Windows displays as the model) and the SNID
label physically on the machine (SFA14-11-QWU1 on my unit). Both are
model-name only.
I think the resolution follows from the product/model split itself: the
model property is human-readable free text, and per the conventions in tree
(e.g. "Dell XPS 13 9345", "Lenovo ThinkPad T14s Gen 6") it is free to carry
the marketing name — so something like "Acer Swift Go Pro AI (SFA14-11)"
works fine there, and users who bought it as 非凡 Go Pro AI can recognize
their machine by it. The compatible, on the other hand, is the machine
identifier, and it should correspond to what the firmware reports —
either the model-only "acer,sfa14-11" (my v1, following the DMI) or family
+ model "acer,swift-sfa14-11" (what the maintainers asked me to use on my
series). I'd rather not embed a retail marketing name in the compatible.
I'll leave the final call to the maintainers.
Best regards,
Jianfeng
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-10-13 1:57 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-06 8:54 [PATCH v4 0/2] Add device tree for Acer Swift Go Pro AI (SFA14-11) Kaipeng Zeng
2026-10-06 8:54 ` [PATCH v4 1/2] dt-bindings: arm: qcom: Add " Kaipeng Zeng
2026-10-06 8:54 ` [PATCH v4 2/2] arm64: dts: qcom: Add support for " Kaipeng Zeng
2026-10-06 9:07 ` sashiko-bot
2026-10-08 10:34 ` [PATCH v4 0/2] Add device tree " Jianfeng Liu
2026-10-12 8:15 ` Kaipeng Zeng
2026-10-12 10:03 ` Jianfeng Liu
2026-10-12 14:18 ` Jactry Zeng
2026-10-13 1:57 ` [PATCH v4 0/2] Add device tree for Acer Swift Go Pro AI Jianfeng Liu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox