Add device tree for Acer Swift Go Pro AI (SFA14-11)
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
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
@@ -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
PATCH v6 2/3 arm64: dts: qcom: Add support for Acer Swift Go Pro AI (SFA14-11)
In reply to Kaipeng ZengIntroduce 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
@@ -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
PATCH v6 3/3 firmware: qcom: scm: Allow QSEECOM on Acer Swift Go Pro AI
In reply to Kaipeng ZengAdd 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
@@ -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
Re: (subset) [PATCH v6 0/3] Add device tree for Acer Swift Go Pro AI (SFA14-11)
In reply to Kaipeng ZengQuoted 8 lines · Kaipeng Zeng
The work started with
x1-crd.dtsias initial template. HDMI refers to ThinkPad T14s.
Bluetooth refers tox1-crd.dtsifrom 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]>