Skip to contentSkip to conversation

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

PATCH Applied Kaipeng Zeng 2 participants 5 messages Oct 30 – Nov 8

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

v6 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 (next-20261027: 151a134a) / 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 (with audio)
- Bluetooth & Wi-Fi
- Webcam (usb_2)
- GPU
- Audio: speaker (partial), mic, headphone.

Known issues:
- Four internal speakers are detected, but only three work. I use Ratizux's tplg [3] and alsa configuration [4] on my desktop. I also use amixer & speaker-test to verify them.
- The system fails to resume after closing and reopening the lid, but resumes successfully when suspended using systemctl suspend.
- EL2-mode:
- EL2-mode can only work with kernel parameter: "iommu.passthrough=1".
- Audio and Battery status are broken under EL2 mode.
- Bluetooth is broken under EL2 mode.

Also, some notes about eusb*_repeater and EC; hopefully, this can help others understand why I configured these nodes this way:
- eusb*_repeater conflict between the DSDT and my testing:
By using i2ctransfer to sequentially set the modes of 'eusb3/5/6_repeater', I can observe the corresponding connection or disconnection state changes for the right-side USB-A port ('usb_mp_hsphy0'), the left-side USB-A port ('usb_mp_hsphy1'), and the webcam ('usb_2'). Using gpioset, it can be verified that 'eusb6_repeater' is affected by tlmm's GPIO 184, while setting GPIO 6/7 has no effect. And webcam can be shut down and reset by toggling GPIO 184. The DSDT places GPIO 6/184 as a 'ResourceTemplate' under 'USB3'(usb_mp), GPIO 7 under USB4(usb_2), and webcam is under USB4. This conflicts with my testing. So, I didn't add the unverified GPIO, and the connection between USB and repeater follows my testing rather than DSDT.
- There is an EC device under i2c5 at address 0x76, with driver probe failed. But using i2ctransfer I can observe some data changes related to fan. The EC driver appears to require additional work, and it couldn't be included in this patch. So, I didn't add that node.

[1] https://git.launchpad.net/~ubuntu-concept/ubuntu/+source/linux/+git/resolute
[2] https://github.com/Ratizux/linux-device-acer-sfa14-11.git
[3] https://github.com/Ratizux/audioreach-topology/
[4] https://github.com/Ratizux/alsa-ucm-conf

---
Changelog:

V6:
- Add 'output-low' to 'edp_bl_pwm' and remove the descending brightness levels. (Sashiko)
- Add panel and backlight control GPIOs to fix corrupted display after resume.
- Correct the pwm period.
- Add SFA14-11 to QSEECOM allowlist. (Jianfeng Liu)

V5:
- Rebase to next-20261021, pick up the following upstream changes:
arm64: dts: qcom: x1-crd: Mark the EC reset gpio as reserved (099cd579).
arm64: dts: qcom: hamoa/purwa: Add QREF regulator supplies (d9d07e23).
arm64: dts: qcom: hamoa: Fix swapped USB QMP PHY vdda-phy/vdda-pll supplies (4458dcd3).
- Add 'eusb*_repeater'. (Jianfeng Liu)
- Add 'displayport-2-dai-link'. (Jianfeng Liu)
- Remove 'usb_1_ss1' and 'mdss_dp1'. (Jianfeng Liu)
- Remove unused 'audio-routing'. (Jianfeng Liu)
- Remove 'kypd_vol_up_n'. (Jianfeng Liu)
- Link to V5: https://lore.kernel.org/linux-devicetree/[email protected]/

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)
- Link to V4: https://lore.kernel.org/linux-devicetree/[email protected]/

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)
- Link to V3: https://lore.kernel.org/linux-devicetree/[email protected]/

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 V2: https://lore.kernel.org/linux-devicetree/[email protected]/

V1:
- Link to V1: https://lore.kernel.org/linux-devicetree/[email protected]/

Kaipeng Zeng (3):
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)
firmware: qcom: scm: Allow QSEECOM on Acer Swift Go Pro AI

 .../devicetree/bindings/arm/qcom.yaml         |    1 +
 arch/arm64/boot/dts/qcom/Makefile             |    2 +
 .../boot/dts/qcom/x1e78100-acer-sfa14-11.dts  | 1565 +++++++++++++++++
 drivers/firmware/qcom/qcom_scm.c              |    1 +
 4 files changed, 1569 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts

base-commit: 151a134a4e6ec66f69db8750c66006f5207f7a9d

Signature · 1 line
2.53.0
#1 lore raw

PATCH v6 1/3 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 121ca557ce1e..027207758cab 100644
@@ -1240,6 +1240,7 @@ properties:
 
       - items:
           - enum:
+              - acer,swift-go-sfa14-11
               - medion,sprchrgd14s1
               - tuxedo,elite14gen1
           - const: qcom,x1e78100
Signature · 1 line
2.53.0
#2 lore raw

PATCH v6 2/3 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
- Audio

---
 arch/arm64/boot/dts/qcom/Makefile             |    2 +
 .../boot/dts/qcom/x1e78100-acer-sfa14-11.dts  | 1565 +++++++++++++++++
 2 files changed, 1567 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts
arch/arm64/boot/dts/qcom/Makefile +2 -0
index 88230c4e00ea..142d8452e429 100644
@@ -473,6 +473,8 @@ talos-evk-rpi-display-2-5in-dtbs	:= \
 dtb-$(CONFIG_ARCH_QCOM)	+= talos-evk-rpi-display-2-5in.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
arch/arm64/boot/dts/qcom/x1e78100-acer-sfa14-11.dts new file +1565 -0

1,565 lines not on this page · raw message

Signature · 1 line
2.53.0
#3 lore raw

PATCH v6 3/3 firmware: qcom: scm: Allow QSEECOM on Acer Swift Go Pro AI

In reply to Kaipeng Zeng

Add the Acer Swift Go Pro AI (SFA14-11) to the QSEECOM allowlist to enable UEFI variable access through uefisecapp.

---
 drivers/firmware/qcom/qcom_scm.c | 1 +
 1 file changed, 1 insertion(+)
drivers/firmware/qcom/qcom_scm.c +1 -0
index 43e250faea75..4552da4284ef 100644
@@ -2225,6 +2225,7 @@ EXPORT_SYMBOL_GPL(qcom_scm_qseecom_app_send);
  + any potential issues with this, only allow validated machines for now.
  */
 static const struct of_device_id qcom_scm_qseecom_allowlist[] __maybe_unused = {
+	{ .compatible = "acer,swift-go-sfa14-11" },
 	{ .compatible = "asus,vivobook-s15" },
 	{ .compatible = "asus,vivobook-s15-x1p4" },
 	{ .compatible = "asus,zenbook-a14-ux3407na" },
Signature · 1 line
2.53.0
maintainer Applied
#4 lore raw

Re: (subset) [PATCH v6 0/3] Add device tree for Acer Swift Go Pro AI (SFA14-11)

In reply to Kaipeng Zeng
Quoted 8 lines · 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 (next-20261027: 151a134a) / Ubuntu 26.04 LTS.

[...]

Applied, thanks!

[3/3] firmware: qcom: scm: Allow QSEECOM on Acer Swift Go Pro AI

      commit: dd851d601d63bd157562e7fc054eafdcc2ffd936

Best regards,

Signature · 1 line
Bjorn Andersson <[email protected]>