Re: [PATCH] arm64: dts: qcom: Add device tree for TUXEDO Elite 14 Gen1

From: Georg Gottleuber
Date: Thu Mar 06 2025 - 10:22:41 EST




Am 06.03.25 um 13:50 schrieb Konrad Dybcio:
> On 6.03.2025 1:25 PM, Georg Gottleuber wrote:
>> Initial support for TUXEDO Elite 14 Gen1 based on Qualcomm Snapdragon X
>> Elite SoC (X1E78100).
>>
>> Working:
>> * Touchpad
>> * Keyboard
>> * eDP (no brightness control yet)
>
> in case your panel as a PWM backlight, you will need to set the PWM
> output pin function explicitly, see x1e80100-microsoft-romulus.dtsi

Thank you, will check this.

>> * NVMe
>> * USB Type-C port
>> * WiFi (WiFi 7 untested)
>> * GPU (software rendering)
>>
>> Not working:
>> * GPU (WIP: firmware loading but output is jerky)
>
> Please tell us more

Oh, this is already an older thing: with kernel 6.10 loading
gen70500_gmu.bin and gen70500_sqe.fw leading to partly slow and
stuttering video output. Sometimes it rendered black edges / borders to
KDE menus. Surely I did something wrong.

I have just tried to reproduce the same setup, but I couldn't get it to
work just now. If you are interested, I can try it again with a
new/current kernel. (which is preferred? linux? linux-next?)

>> * USB Type-A (WIP)
>> * Suspend with substantial energy saving
>> * Audio, Speakers, Microphones
>> * Camera
>> * Fingerprint Reader
>
> If it's connected to the multiport controller, you should be able to
> just enable it, like on the T14s, similarly to the Type-A port

sounds promising

> [...]
>
>> Signed-off-by: Georg Gottleuber <ggo@xxxxxxxxxxxxxxxxxxx>
>> ---
>> arch/arm64/boot/dts/qcom/Makefile | 1 +
>> .../qcom/x1e80100-tuxedo-elite-14-gen1.dts | 798 ++++++++++++++++++
>> 2 files changed, 799 insertions(+)
>> create mode 100644
>> arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
>>
>> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
>> index 140b0b2abfb5..f0a9d677d957 100644
>> --- a/arch/arm64/boot/dts/qcom/Makefile
>> +++ b/arch/arm64/boot/dts/qcom/Makefile
>> @@ -298,3 +298,4 @@ 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
>> dtb-$(CONFIG_ARCH_QCOM) += x1e80100-qcp.dtb
>> +dtb-$(CONFIG_ARCH_QCOM) += x1e80100-tuxedo-elite-14-gen1.dtb
>> diff --git a/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
>> new file mode 100644
>> index 000000000000..86bdec4a2dd8
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
>> @@ -0,0 +1,798 @@
>> +// SPDX-License-Identifier: BSD-3-Clause
>> +/*
>> + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
>> + * Copyright (c) 2025 TUXEDO Computers GmbH
>> + */
>> +
>> +/dts-v1/;
>> +
>> +#include <dt-bindings/gpio/gpio.h>
>> +#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
>> +
>> +#include "x1e80100.dtsi"
>> +#include "x1e80100-pmics.dtsi"
>> +
>> +/ {
>> + model = "TUXEDO Elite 14 Gen1";
>
> Please use 8-wide tabs instead of spaces

Sorry.

>> + compatible = "tuxedo,elite14gen1", "qcom,x1e80100";
>
> You'll need to define a new vendor in:
>
> Documentation/devicetree/bindings/vendor-prefixes.yaml
>
> [...]
>
>> + vreg_edp_3p3: regulator-edp-3p3 {
>> + compatible = "regulator-fixed";
>> +
>> + regulator-name = "VREG_EDP_3P3";
>> + regulator-min-microvolt = <3300000>;
>> + regulator-max-microvolt = <3300000>;
>> +
>> + // EDP_VDD_EN_GPIO54
>
> C-style (/* foo */) comments are preferred, but these ones can be
> removed, as they repeat what the code says

I have overlooked this. Sorry.

> [...]
>
>> +&gpu {
>> + status = "okay";
>> +
>> + zap-shader {
>> + firmware-name = "qcom/a740_zap.mbn";
>
> Are the laptop's OEM key/security fuses not blown?

I'm not sure. How can I verify this?

Regards,
Georg