Re: [PATCH] arm64: dts: qcom: Add device tree for TUXEDO Elite 14 Gen1
From: Krzysztof Kozlowski
Date: Thu Mar 06 2025 - 07:42:14 EST
On 06/03/2025 13:25, 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)
> * NVMe
> * USB Type-C port
> * WiFi (WiFi 7 untested)
> * GPU (software rendering)
>
> Not working:
> * GPU (WIP: firmware loading but output is jerky)
> * USB Type-A (WIP)
> * Suspend with substantial energy saving
> * Audio, Speakers, Microphones
> * Camera
> * Fingerprint Reader
>
> 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";
> + compatible = "tuxedo,elite14gen1", "qcom,x1e80100";
Please run scripts/checkpatch.pl and fix reported warnings. After that,
run also `scripts/checkpatch.pl --strict` and (probably) fix more
warnings. Some warnings can be ignored, especially from --strict run,
but the code here looks like it needs a fix. Feel free to get in touch
if the warning is not clear.
It does not look like you tested the DTS against bindings. Please run
`make dtbs_check W=1` (see
Documentation/devicetree/bindings/writing-schema.rst or
https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/
for instructions).
Maybe you need to update your dtschema and yamllint. Don't rely on
distro packages for dtschema and be sure you are using the latest
released dtschema.
...
> +
> + eusb3_repeater: redriver@47 {
> + compatible = "nxp,ptn3222";
> + reg = <0x47>;
> + #phy-cells = <0>;
> +
> + vdd1v8-supply = <&vreg_l4b_1p8>;
> + vdd3v3-supply = <&vreg_l13b_3p0>;
> +
> + reset-gpios = <&tlmm 124 GPIO_ACTIVE_LOW>;
> +
> + pinctrl-0 = <&eusb3_reset_n>;
> + pinctrl-names = "default";
No graph? Isn't it needed?
> + };
> +
> + eusb5_repeater: redriver@43 {
> + compatible = "nxp,ptn3222";
> + reg = <0x43>;
> + #phy-cells = <0>;
> +
> + vdd1v8-supply = <&vreg_l4b_1p8>;
> + vdd3v3-supply = <&vreg_l13b_3p0>;
> +
> + reset-gpios = <&tlmm 184 GPIO_ACTIVE_LOW>;
> +
> + pinctrl-0 = <&eusb6_reset_n>;
> + pinctrl-names = "default";
> + };
> +
> + eusb6_repeater: redriver@4f {
> + compatible = "nxp,ptn3222";
> + reg = <0x4f>;
> + #phy-cells = <0>;
> +
> + vdd1v8-supply = <&vreg_l4b_1p8>;
> + vdd3v3-supply = <&vreg_l13b_3p0>;
> +
> + reset-gpios = <&tlmm 111 GPIO_ACTIVE_LOW>;
> +
> + pinctrl-0 = <&eusb6_reset_n>;
> + pinctrl-names = "default";
> + };
> +
Stray blank line
> +};
> +
> +&mdss {
> + status = "okay";
> +};
> +
> +
> +&usb_1_ss0_dwc3_hs {
> + remote-endpoint = <&pmic_glink_ss0_hs_in>;
> +};
> +
> +&usb_1_ss0_qmpphy_out {
> + remote-endpoint = <&pmic_glink_ss0_ss_in>;
> +};
> +
Here as well
Best regards,
Krzysztof