X1E Dell XPS 9345 support
v4 cover X1E Dell XPS 9345 support
Introduce support for the mentioned laptop.
Very similar to other X1E laptops, device tree was derived by analyzing dtsi of existing models and ACPI tables of this laptop [1]. Most notable difference were
* TZ protected SPI19.
* Keyboard only working after suspend/resume sequence, will do a follow up patch to i2c-hid.
* Lots of small deviations in LDOs voltages.
Successfully tested with Debian 12 and Gnome. Firmware for GPU/aDSP/cDSP was extracted from Windows, WiFi firmware from upstream linux-firmware.
Quite a few things alraedy work, details in patches, quite a few still in WIP or TODOs. Since fixing these may take me a while due to lack of documentation, sending current progress as its very much usable.
[1] https://github.com/aarch64-laptops/build/blob/master/misc/dell-xps-9345/acpi/DSDT.dsl
--------
Changes to V3:
* Rename device from tributo-13 to xps13-9345
* Update commit description - identify EC over i2c, likely camera model
* Update cover letter - no hacks needed when build on top of linux-next
* v3 link: https://lore.kernel.org/all/[email protected]/
--------
Changes to V2:
* Fix uart21 missing alias
* Fix redundant mdss_dp3 defines
* Fix touchscreen i2c address
* Update commit description - OLED panel reported working
* Update commit description - touchscreen reported working
* Update commit description - battery info reported working
* Update commit description - add keyboard patches link
* v2 link: https://lore.kernel.org/all/[email protected]/
--------
Changes to V1:
* Fix misalignments due to wrong tab/space conversion
* Fix regulator namings
* Fix reasonable warnings from scripts/checkpatch.pl
* Restructure all (sub)nodes alphabetically
* v1 link: https://lore.kernel.org/all/[email protected]/
Aleksandrs Vinarskis (3):
dt-bindings: arm: qcom: Add Dell XPS 13 9345
firmware: qcom: scm: Allow QSEECOM on Dell XPS 13 9345
arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
.../devicetree/bindings/arm/qcom.yaml | 1 + arch/arm64/boot/dts/qcom/Makefile | 1 + .../dts/qcom/x1e80100-dell-xps13-9345.dts | 863 ++++++++++++++++++ drivers/firmware/qcom/qcom_scm.c | 1 + 4 files changed, 866 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
Signature · 1 line
2.43.0
PATCH v4 1/3 dt-bindings: arm: qcom: Add Dell XPS 13 9345
Document the X1E80100-based Dell XPS 13 9345 laptop, platform codenamed 'Tributo'/'Tributo R'.
--- Documentation/devicetree/bindings/arm/qcom.yaml | 1 + 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/arm/qcom.yaml +1 -0
@@ -1058,6 +1058,7 @@ properties: - items: - enum: - asus,vivobook-s15 + - dell,xps13-9345 - lenovo,yoga-slim7x - microsoft,romulus13 - microsoft,romulus15
Signature · 1 line
2.43.0
Re: [PATCH v4 1/3] dt-bindings: arm: qcom: Add Dell XPS 13 9345
Hello Aleksandrs,
[Again in plain text]
Quoted 23 lines · Aleksandrs Vinarskis
Document the X1E80100-based Dell XPS 13 9345 laptop, platform codenamed 'Tributo'/'Tributo R'.
Signed-off-by Aleksandrs Vinarskis <[email protected]>--- Documentation/devicetree/bindings/arm/qcom.yaml | 1 + 1 file changed, 1 insertion(+)Documentation/devicetree/bindings/arm/qcom.yaml +1
-1@@ -1058,6 +1058,7 @@ properties: - items: - enum: - asus,vivobook-s15 + - dell,xps13-9345 - lenovo,yoga-slim7x - microsoft,romulus13 - microsoft,romulus15 --
Quoted 1 line
2.43.0
regards
Stefan Schmidt
Re: [PATCH v4 1/3] dt-bindings: arm: qcom: Add Dell XPS 13 9345
Quoted 16 lines · Stefan Schmidt
Hello Aleksandrs,
[Again in plain text]
Quoted 10 lines · Aleksandrs Vinarskis
Document the X1E80100-based Dell XPS 13 9345 laptop, platform codenamed 'Tributo'/'Tributo R'.
Signed-off-by Aleksandrs Vinarskis <[email protected]>--- Documentation/devicetree/bindings/arm/qcom.yaml | 1 + 1 file changed, 1 insertion(+)
Quoted 16 lines
Quoted 13 lines
Documentation/devicetree/bindings/arm/qcom.yaml +1
-1@@ -1058,6 +1058,7 @@ properties: - items: - enum: - asus,vivobook-s15 + - dell,xps13-9345 - lenovo,yoga-slim7x - microsoft,romulus13 - microsoft,romulus15 --Quoted 1 line
2.43.0
Tested-by Stefan Schmidt <[email protected]>
How do you test bindings? Running static checks in kernel tree is the same as compiling software and adding tested-by.
Best regards,
Krzysztof
Re: [PATCH v4 1/3] dt-bindings: arm: qcom: Add Dell XPS 13 9345
Hello,
Quoted 35 lines · Krzysztof Kozlowski
Quoted 16 lines · Stefan Schmidt
Hello Aleksandrs,
[Again in plain text]
Quoted 10 lines · Aleksandrs Vinarskis
Document the X1E80100-based Dell XPS 13 9345 laptop, platform codenamed 'Tributo'/'Tributo R'.
Signed-off-by Aleksandrs Vinarskis <[email protected]>--- Documentation/devicetree/bindings/arm/qcom.yaml | 1 + 1 file changed, 1 insertion(+)Quoted 16 lines
Quoted 13 lines
Documentation/devicetree/bindings/arm/qcom.yaml +1
-1@@ -1058,6 +1058,7 @@ properties: - items: - enum: - asus,vivobook-s15 + - dell,xps13-9345 - lenovo,yoga-slim7x - microsoft,romulus13 - microsoft,romulus15 --Quoted 1 line
2.43.0
Tested-by Stefan Schmidt <[email protected]>
Quoted 2 lines
How do you test bindings? Running static checks in kernel tree is the same as compiling software and adding tested-by.
I took the whole patchset in when testing it on the actual hardware, so I gave the tested-by for the whole series as well. That being said, the binding patch here does indeed not benefit from any on device testing. Feel free to drop it.
regards
Stefan Schmidt
PATCH v4 2/3 firmware: qcom: scm: Allow QSEECOM on Dell XPS 13 9345
In reply to Aleksandrs VinarskisAllow particular machine accessing eg. efivars.
--- drivers/firmware/qcom/qcom_scm.c | 1 + 1 file changed, 1 insertion(+)
drivers/firmware/qcom/qcom_scm.c +1 -0
@@ -1731,6 +1731,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 ="dell,xps13-9345" }, { .compatible ="lenovo,flex-5g" }, { .compatible ="lenovo,thinkpad-t14s" }, { .compatible ="lenovo,thinkpad-x13s" , },
Signature · 1 line
2.43.0
Re: [PATCH v4 2/3] firmware: qcom: scm: Allow QSEECOM on Dell XPS 13 9345
Hello Aleksandrs,
[Again in plain text]
Quoted 22 lines · Aleksandrs Vinarskis
Allow particular machine accessing eg. efivars.
Signed-off-by Aleksandrs Vinarskis <[email protected]>Reviewed-by Dmitry Baryshkov <[email protected]>--- drivers/firmware/qcom/qcom_scm.c | 1 + 1 file changed, 1 insertion(+)drivers/firmware/qcom/qcom_scm.c +1
-1@@ -1731,6 +1731,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 ="dell,xps13-9345" }, { .compatible ="lenovo,flex-5g" }, { .compatible ="lenovo,thinkpad-t14s" }, { .compatible ="lenovo,thinkpad-x13s" , }, --
Quoted 1 line
2.43.0
regards
Stefan Schmidt
PATCH v4 3/3 arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
In reply to Aleksandrs VinarskisInitial support for Dell XPS 9345 13" 2024 (Codenamed 'Tributo') based on X1E80100.
Working:
* Touchpad
* Keyboard (only post suspend&resume, i2c-hid patch required [1])
* Touchscreen
* eDP (low-res IPS, OLED) with brightness control
* NVME
* USB Type-C ports in USB2/USB3 (one orientation)
* WiFi
* GPU/aDSP/cDSP firmware loading (requires binaries from Windows)
* Lid switch
* Sleep/suspend, nothing visibly broken on resume
Not working:
* Speakers (WIP, pin guessing, x4 WSA8845)
* Microphones (WIP, pin guessing, dual array)
* Fingerprint Reader (WIP, USB MP with ptn3222)
* USB as DP/USB3 (WIP, PS8830 based)
* Camera (Likely OV01A10)
* EC over i2c
Should be working, but cannot be tested due to lack of hw:
* higher res IPS panel
[1] https://lore.kernel.org/all/[email protected]/
--- arch/arm64/boot/dts/qcom/Makefile | 1 + .../dts/qcom/x1e80100-dell-xps13-9345.dts | 863 ++++++++++++++++++ 2 files changed, 864 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
arch/arm64/boot/dts/qcom/Makefile +1 -0
@@ -271,6 +271,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8650-qrd.dtb dtb-$(CONFIG_ARCH_QCOM) += x1e78100-lenovo-thinkpad-t14s.dtb dtb-$(CONFIG_ARCH_QCOM) += x1e80100-asus-vivobook-s15.dtb dtb-$(CONFIG_ARCH_QCOM) += x1e80100-crd.dtb +dtb-$(CONFIG_ARCH_QCOM) += x1e80100-dell-xps13-9345.dtb dtb-$(CONFIG_ARCH_QCOM) += x1e80100-lenovo-yoga-slim7x.dtb dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-romulus13.dtb dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-romulus15.dtb
arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts new file +863 -0
863 lines not on this page · raw message
Signature · 1 line
2.43.0
Re: [PATCH v4 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
Hello Aleksandrs,
[Again in plain text]
Quoted 27 lines · Aleksandrs Vinarskis
Initial support for Dell XPS 9345 13" 2024 (Codenamed 'Tributo') based on X1E80100.
Working:
* Touchpad
* Keyboard (only post suspend&resume, i2c-hid patch required [1])
* Touchscreen
* eDP (low-res IPS, OLED) with brightness control
* NVME
* USB Type-C ports in USB2/USB3 (one orientation)
* WiFi
* GPU/aDSP/cDSP firmware loading (requires binaries from Windows)
* Lid switch
* Sleep/suspend, nothing visibly broken on resumeNot working:
* Speakers (WIP, pin guessing, x4 WSA8845)
* Microphones (WIP, pin guessing, dual array)
* Fingerprint Reader (WIP, USB MP with ptn3222)
* USB as DP/USB3 (WIP, PS8830 based)
* Camera (Likely OV01A10)
* EC over i2cShould be working, but cannot be tested due to lack of hw:
* higher res IPS panel
Quoted 8 lines
[1] https://lore.kernel.org/all/[email protected]/
Signed-off-by Aleksandrs Vinarskis <[email protected]>--- arch/arm64/boot/dts/qcom/Makefile | 1 + .../dts/qcom/x1e80100-dell-xps13-9345.dts | 863 ++++++++++++++++++ 2 files changed, 864 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
regards
Stefan Schmidt
Re: [PATCH v4 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
Quoted 36 lines · Stefan Schmidt
Hello Aleksandrs,
[Again in plain text]
Quoted 29 lines · Aleksandrs Vinarskis
Initial support for Dell XPS 9345 13" 2024 (Codenamed 'Tributo') based on X1E80100.
Working:
* Touchpad
* Keyboard (only post suspend&resume, i2c-hid patch required [1])
* Touchscreen
* eDP (low-res IPS, OLED) with brightness control
* NVME
* USB Type-C ports in USB2/USB3 (one orientation)
* WiFi
* GPU/aDSP/cDSP firmware loading (requires binaries from Windows)
* Lid switch
* Sleep/suspend, nothing visibly broken on resumeNot working:
* Speakers (WIP, pin guessing, x4 WSA8845)
* Microphones (WIP, pin guessing, dual array)
* Fingerprint Reader (WIP, USB MP with ptn3222)
* USB as DP/USB3 (WIP, PS8830 based)
* Camera (Likely OV01A10)
* EC over i2cShould be working, but cannot be tested due to lack of hw:
* higher res IPS panel
Quoted 8 lines
Quoted 6 lines
Signed-off-by Aleksandrs Vinarskis <[email protected]>--- arch/arm64/boot/dts/qcom/Makefile | 1 + .../dts/qcom/x1e80100-dell-xps13-9345.dts | 863 ++++++++++++++++++ 2 files changed, 864 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dtsTested-by Stefan Schmidt <[email protected]>
Hi,
Thanks for taking your time to test this.
For the record, which variant did you test it on (low res IPS/OLED/high res IPS)?
Regards,
Alex
Quoted 3 lines
regards
Stefan Schmidt
Re: [PATCH v4 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
Hello,
Quoted 4 lines · Aleksandrs Vinarskis
Thanks for taking your time to test this.
For the record, which variant did you test it on (low res IPS/OLED/high res IPS)?
OLED
regards
Stefan Schmidt
Rob Herring (Arm)
maintainerQuoted 59 lines · Aleksandrs Vinarskis
Introduce support for the mentioned laptop.
Very similar to other X1E laptops, device tree was derived by analyzing dtsi of existing models and ACPI tables of this laptop [1]. Most notable difference were
* TZ protected SPI19.
* Keyboard only working after suspend/resume sequence, will do a follow up patch to i2c-hid.
* Lots of small deviations in LDOs voltages.Successfully tested with Debian 12 and Gnome. Firmware for GPU/aDSP/cDSP was extracted from Windows, WiFi firmware from upstream linux-firmware.
Quite a few things alraedy work, details in patches, quite a few still in WIP or TODOs. Since fixing these may take me a while due to lack of documentation, sending current progress as its very much usable.
[1] https://github.com/aarch64-laptops/build/blob/master/misc/dell-xps-9345/acpi/DSDT.dsl
--------
Changes to V3:
* Rename device fromtributo-13toxps13-9345
* Update commit description - identify EC over i2c, likely camera model
* Update cover letter - no hacks needed when build on top of linux-next
* v3 link: https://lore.kernel.org/all/[email protected]/--------
Changes to V2:
* Fix uart21 missing alias
* Fix redundantmdss_dp3defines
* Fix touchscreen i2c address
* Update commit description - OLED panel reported working
* Update commit description - touchscreen reported working
* Update commit description - battery info reported working
* Update commit description - add keyboard patches link
* v2 link: https://lore.kernel.org/all/[email protected]/--------
Changes to V1:
* Fix misalignments due to wrong tab/space conversion
* Fix regulator namings
* Fix reasonable warnings fromscripts/checkpatch.pl
* Restructure all (sub)nodes alphabetically
* v1 link: https://lore.kernel.org/all/[email protected]/Aleksandrs Vinarskis (3):
dt-bindings: arm: qcom: Add Dell XPS 13 9345
firmware: qcom: scm: Allow QSEECOM on Dell XPS 13 9345
arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345.../devicetree/bindings/arm/qcom.yaml | 1 + arch/arm64/boot/dts/qcom/Makefile | 1 + .../dts/qcom/x1e80100-dell-xps13-9345.dts | 863 ++++++++++++++++++ drivers/firmware/qcom/qcom_scm.c | 1 + 4 files changed, 866 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
Quoted 5 lines
--
2.43.0
My bot found new DTB warnings on the .dts files added or changed in this series.
Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings are fixed by another series. Ultimately, it is up to the platform maintainer whether these warnings are acceptable or not. No need to reply unless the platform maintainer has comments.
If you already ran DT checks and didn't see these error(s), then make sure dt-schema is up to date:
pip3 install dtschema --upgrade
New warnings running 'make CHECK_DTBS=y qcom/x1e80100-dell-xps13-9345.dtb' for [email protected]:
arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dtb: domain-idle-states: cluster-sleep-0: 'idle-state-name' does not match any of the regexes: 'pinctrl-[0-9]+'
from schema $id: http://devicetree.org/schemas/power/domain-idle-state.yaml#arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dtb: domain-idle-states: cluster-sleep-1: 'idle-state-name' does not match any of the regexes: 'pinctrl-[0-9]+'
from schema $id: http://devicetree.org/schemas/power/domain-idle-state.yaml#arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dtb: usb@a2f8800: interrupt-names: ['pwr_event', 'dp_hs_phy_irq', 'dm_hs_phy_irq'] is too short
from schema $id: http://devicetree.org/schemas/usb/qcom,dwc3.yaml#
Re: (subset) [PATCH v4 0/3] X1E Dell XPS 9345 support
In reply to Aleksandrs VinarskisQuoted 10 lines · Aleksandrs Vinarskis
Introduce support for the mentioned laptop.
Very similar to other X1E laptops, device tree was derived by analyzing dtsi of existing models and ACPI tables of this laptop [1]. Most notable difference were
* TZ protected SPI19.
* Keyboard only working after suspend/resume sequence, will do a follow up patch to i2c-hid.
* Lots of small deviations in LDOs voltages.[...]
Applied, thanks!
[1/3] dt-bindings: arm: qcom: Add Dell XPS 13 9345
commit: 1aa50217d7fd1b9932d3552a20c2f7fd58d77cfa
[3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
commit: f5b788d0e8cdaac7df6ec9a24926672965d87dfcBest regards,
Signature · 1 line
Bjorn Andersson <[email protected]>