Skip to contentSkip to conversation

Add device tree for Acer Swift Go Pro AI (SFA14-11)

PATCH Superseded Kaipeng Zeng 3 participants 8 messages Jul 21 – Jul 24

Subsystems (3)

v2 of 6 Superseded Latest is v6 →

lore
Share & tools
lore
#0 lore raw

v2 cover Add device tree for Acer Swift Go Pro AI (SFA14-11)

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
- 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:
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/[email protected]/

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             |    1 +
 .../boot/dts/qcom/x1e78100-acer-sfa14-11.dts  | 1484 +++++++++++++++++
 3 files changed, 1486 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts

base-commit: 3fe08b9796f36ef437ab9328e7dd1e5ff2d66603

Signature · 1 line
2.53.0
#1 lore raw

PATCH v2 1/2 dt-bindings: arm: qcom: Add Acer Swift Go Pro AI (SFA14-11)

Add Acer Swift Go Pro AI (SFA14-11), a laptop based on the Snapdragon X Elite (X1E78100) SoC.

---
 Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/arm/qcom.yaml +1 -0
index c7c9a9279684..da653b787d4d 100644
@@ -1180,6 +1180,7 @@ properties:
 
       - items:
           - enum:
+              - acer,swift-go-sfa14-11
               - medion,sprchrgd14s1
               - tuxedo,elite14gen1
           - const: qcom,x1e78100
Signature · 1 line
2.53.0
Reviewed-by on v2 1/2
#2 lore raw

Re: [PATCH v2 1/2] dt-bindings: arm: qcom: Add Acer Swift Go Pro AI (SFA14-11)

Quoted 7 lines · Kaipeng Zeng

Add Acer Swift Go Pro AI (SFA14-11), a laptop based on the Snapdragon X Elite (X1E78100) SoC.

---
 Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
 1 file changed, 1 insertion(+)

<form letter>
This is an automated instruction, just in case, because many review tags are being ignored. If you know the process, just skip it entirely (please do not feel offended by me posting it here - no bad intentions intended, no patronizing, I just want to avoid wasted efforts). 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 ('b4 trailers -u ...'). 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.

https://elixir.bootlin.com/linux/v6.15/source/Documentation/process/submitting-patches.rst#L591
</form letter>

Best regards,
Krzysztof

#3 lore raw

PATCH v2 2/2 arm64: dts: qcom: Add support for Acer Swift Go Pro AI (SFA14-11)

In reply to 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

---
 arch/arm64/boot/dts/qcom/Makefile             |    1 +
 .../boot/dts/qcom/x1e78100-acer-sfa14-11.dts  | 1484 +++++++++++++++++
 2 files changed, 1485 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts
arch/arm64/boot/dts/qcom/Makefile +1 -0
index e05414290d8e..fbb6b0ef67bf 100644
@@ -422,6 +422,7 @@ 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
+dtb-$(CONFIG_ARCH_QCOM)	+= x1e78100-acer-sfa14-11.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
arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts new file +1484 -0

1,484 lines not on this page · raw message

Signature · 1 line
2.53.0
#4 lore raw

Re: [PATCH v2 2/2] arm64: dts: qcom: Add support for Acer Swift Go Pro AI (SFA14-11)

Quoted 3 lines · 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.

[...]

arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts line 1410

Quoted 12 lines

+&usb_1_ss1_qmpphy {

arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts new file +11 -0
+	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;
+	};

What happened here?

Konrad

#5 lore raw

Re: [PATCH v2 2/2] arm64: dts: qcom: Add support for Acer Swift Go Pro AI (SFA14-11)

Quoted 9 lines · Konrad Dybcio
Quoted 3 lines · 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.

[...]

Quoted 15 lines

arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts line 1410

Quoted 12 lines

+&usb_1_ss1_qmpphy {

arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts new file +11 -0
+     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;
+     };

What happened here?

SFA14-11 only has a single USB Type-C which uses usb_1_ss0_qmpphy. Sashiko reminded me to delete mode-switch and orientation-switch in usb_1_ss1_qmpphy (And I remove these properties in usb_1_ss2_qmpphy also). Since the usb_1_ss1_qmpphy_dp_in (port@2) remote-endpoint is mdss_dp1_out, and mdss_dp1 is not used (DP Alt Mode), I remove port@2 in usb_1_ss1_qmpphy and port@1 in mdss_dp1_out.

Quoted 1 line

Konrad

Thanks for your review!

#6 lore raw

Re: [PATCH v2 2/2] arm64: dts: qcom: Add support for Acer Swift Go Pro AI (SFA14-11)

In reply to Kaipeng Zeng
Quoted 17 lines · 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

---

[...]

arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts line 232

Quoted 10 lines
arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts new file +10 -0
+		wcd-playback-dai-link {
+			link-name = "WCD Playback";
+
+			cpu {
+				sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
+			};
+
+			codec {
+				sound-dai = <&wcd938x 0>, <&swr1 0>, <&lpass_rxmacro 0>;
+			};

'co'dev < 'cp'u (other nodes have it correct), please also re-sort the -link {} nodes alphabetically

[...]

Review

Quoted 3 lines

+&iris {

(quoted diff) +2 -0
+	firmware-name = "qcom/x1e80100/ACER/SFA14-11/qcvss8380.mbn";
+	status = "okay";

Let's also keep a \n before 'status', file-wide

[...]

arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts line 917

Quoted 4 lines

+&mdss_dp1 {

arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts new file +3 -0
+	ports {
+		/delete-node/ port@1;
+	};

Hm?

[...]

arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts line 1311

Quoted 6 lines
arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts new file +6 -0
+	wcd_default: wcd-reset-n-active-state {
+		pins = "gpio191";
+		function = "gpio";
+		drive-strength = <16>;
+		bias-disable;
+		output-low;

You don't need to specify output-foo on TLMM pins, the GPIO consumer will assert it as necessary

Konrad

#7 lore raw

Re: [PATCH v2 2/2] arm64: dts: qcom: Add support for Acer Swift Go Pro AI (SFA14-11)

Quoted 63 lines · Konrad Dybcio
Quoted 17 lines · 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

---

[...]

arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts line 232

Quoted 10 lines
arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts new file +10 -0
+             wcd-playback-dai-link {
+                     link-name = "WCD Playback";
+
+                     cpu {
+                             sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
+                     };
+
+                     codec {
+                             sound-dai = <&wcd938x 0>, <&swr1 0>, <&lpass_rxmacro 0>;
+                     };

'co'dev < 'cp'u (other nodes have it correct), please also re-sort the -link {} nodes alphabetically

[...]

Review

Quoted 3 lines

+&iris {

(quoted diff) +2 -0
+     firmware-name = "qcom/x1e80100/ACER/SFA14-11/qcvss8380.mbn";
+     status = "okay";

Let's also keep a \n before 'status', file-wide

[...]

arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts line 917

Quoted 4 lines

+&mdss_dp1 {

arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts new file +3 -0
+     ports {
+             /delete-node/ port@1;
+     };

Hm?

[...]

arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts line 1311

Quoted 6 lines
arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts new file +6 -0
+     wcd_default: wcd-reset-n-active-state {
+             pins = "gpio191";
+             function = "gpio";
+             drive-strength = <16>;
+             bias-disable;
+             output-low;
Quoted 2 lines

You don't need to specify output-foo on TLMM pins, the GPIO consumer will assert it as necessary

I noticed this before.
spkr_01_sd_n_active and spkr_23_sd_n_active (in lpass_tlmm) are also set to output-low.

I tested that Gnome cannot detect either the speakers or the headphone using the current DTS.
If I remove the "output-low" from wcd_default, Gnome can detect headphone plug-in (not the speakers) and speakers will randomly output an audio pop noise, specifically when playback starts and stops.
I kept the "output-low" of them for safety.

Is it still proper to remove this "output-low"? Should I also remove the "output-low" from spkr_*?

Quoted 2 lines

Konrad