Re: [PATCH 2/2] arm64: dts: qcom: Add qcs9075-radxa-airbox-q900

From: Krzysztof Kozlowski

Date: Wed Mar 18 2026 - 04:56:14 EST


On 18/03/2026 09:36, Mecid Urganci wrote:
> Add device tree support for the Radxa AirBox Q900 board based on the
> Qualcomm QCS9075 SoC (Lemans Family).
>
> This board features HDMI 2.0 via dp0, 2x USB 3.1 Gen 2 ports,
> 2x 2.5GbE Ethernet ports and onboard UFS storage.
>
> Further information: https://radxa.com/products/fogwise/airbox-q900/
>
> Functionality has been tested and confirmed working via an Armbian
> Debian Trixie build.
>
> Signed-off-by: Mecid Urganci <mecid@xxxxxxxxxxxxxxxxx>
> Made-with: Cursor

Not a correct tag. Please read full docs about usage of LLM, because if
you came with wrong tag, I assume you did not read the rest of it.

What's more, did you review this code before posting it?

> ---
> arch/arm64/boot/dts/qcom/Makefile | 1 +
> .../dts/qcom/qcs9075-radxa-airbox-q900.dts | 1012 +++++++++++++++++
> 2 files changed, 1013 insertions(+)
> create mode 100644 arch/arm64/boot/dts/qcom/qcs9075-radxa-airbox-q900.dts
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index a4dc9e8b2d25..c8b7dd67806d 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -180,6 +180,7 @@ qcs8300-ride-el2-dtbs := qcs8300-ride.dtb monaco-el2.dtbo
>
> dtb-$(CONFIG_ARCH_QCOM) += qcs8300-ride-el2.dtb
> dtb-$(CONFIG_ARCH_QCOM) += qcs8550-aim300-aiot.dtb
> +dtb-$(CONFIG_ARCH_QCOM) += qcs9075-radxa-airbox-q900.dtb
> dtb-$(CONFIG_ARCH_QCOM) += qcs9100-ride.dtb
> dtb-$(CONFIG_ARCH_QCOM) += qcs9100-ride-r3.dtb
>
> diff --git a/arch/arm64/boot/dts/qcom/qcs9075-radxa-airbox-q900.dts b/arch/arm64/boot/dts/qcom/qcs9075-radxa-airbox-q900.dts
> new file mode 100644
> index 000000000000..8b5202b527cb
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/qcs9075-radxa-airbox-q900.dts
> @@ -0,0 +1,1012 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) 2026 Mecid Urganci
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/leds/common.h>
> +#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
> +
> +#include "lemans.dtsi"
> +#include "lemans-pmics.dtsi"
> +
> +/ {
> + model = "Radxa AIRbox Q900";
> + compatible = "radxa,airbox-q900", "qcom,qcs9075", "qcom,sa8775p";
> +
> + aliases {
> + ethernet0 = &ethernet0;
> + ethernet1 = &ethernet1;
> + i2c15 = &i2c15;
> + i2c18 = &i2c18;
> + serial0 = &uart10;
> + ufshc1 = &ufs_mem_hc;
> + };
> +
> + chosen {
> + stdout-path = "serial0:115200n8";
> + };
> +
> + vcc_5v0_regulator: vcc-5v0-regulator {

Please use name for all fixed regulators which matches current format
recommendation: 'regulator-[0-9]v[0-9]'

https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/regulator/fixed-regulator.yaml

> + compatible = "regulator-fixed";
> + regulator-name = "vcc_5v0";
> + gpio = <&pmm8654au_3_gpios 6 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&vcc_5v0_en_state>;
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + regulator-boot-on;
> + enable-active-high;
> + regulator-always-on;
> + };
> +
> + vcc5v0_usb30_otg_regulator: vcc5v0-usb30-otg-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "vcc5v0_usb30_otg";
> + gpio = <&pmm8654au_2_gpios 3 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&vcc3v3_usb30_otg_en_state>;
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + regulator-boot-on;
> + enable-active-high;
> + regulator-always-on;
> + };
> +
> + vcc5v0_usb30_regulator: vcc5v0-usb30-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "vcc5v0_usb30";
> + gpio = <&pmm8654au_2_gpios 4 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&vcc3v3_usb30_en_state>;
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + regulator-boot-on;
> + enable-active-high;
> + regulator-always-on;
> + };
> +
> + vcc_3v3_ssd_regulator: vcc-3p3-ssd-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "vcc_3v3_ssd";
> + gpio = <&pmm8654au_1_gpios 9 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&vcc_3v3_ssd_en_state>;
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-boot-on;
> + enable-active-high;
> + regulator-always-on;
> + };
> +
> + vcc3v3_minipcie_regulator: vcc3v3-minipcie-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "vcc3v3_minipcie";
> + gpio = <&pmm8654au_2_gpios 10 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&vcc3v3_minipcie_en_state>;
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-boot-on;
> + enable-active-high;
> + regulator-always-on;
> + };
> +
> + gpio_leds: gpio-leds {
> + compatible = "gpio-leds";
> + pinctrl-names = "default";
> + pinctrl-0 = <&status_led_state>, <&power_led_state>;
> +
> + status-led {
> + gpios = <&pmm8654au_1_gpios 11 GPIO_ACTIVE_HIGH>;
> + linux,default-trigger = "heartbeat";
> + function = LED_FUNCTION_STATUS;
> + color = <LED_COLOR_ID_BLUE>;
> + };
> +
> + power-led {
> + gpios = <&tlmm 98 GPIO_ACTIVE_HIGH>;
> + linux,default-trigger = "default-on";
> + function = LED_FUNCTION_POWER;
> + color = <LED_COLOR_ID_GREEN>;
> + };
> + };
> +
> + gpio_keys: gpio-keys {
> + compatible = "gpio-keys";
> +
> + pinctrl-0 = <&gpio_keys_default>;
> + pinctrl-names = "default";
> +
> + power-key {
> + label = "Power Off";
> + gpios = <&tlmm 97 GPIO_ACTIVE_LOW>;
> + linux,code = <KEY_POWER>;
> + wakeup-source;
> + debounce-interval = <30>;
> + };
> + };
> +
> + fan0: gpio-fan {
> + compatible = "gpio-fan";
> + gpios = <&pmm8654au_1_gpios 12 GPIO_ACTIVE_HIGH>;
> + gpio-fan,speed-map = <0 0>, <5000 1>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&fan_en_state>;
> + #cooling-cells = <2>;
> + };
> +
> + dp0-connector {

dp-connector

> + compatible = "dp-connector";
> + label = "eDP0";
> + type = "full-size";
> +
> + port {
> + dp0_connector_in: endpoint {
> + remote-endpoint = <&mdss0_dp0_out>;
> + };
> + };
> + };
> +};
> +

...

> +
> + gpio_keys_default: gpio-keys-default-state {
> + pins = "gpio97";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-pull-up;
> + };
> +
> + power_led_state: power-led-state {
> + pins = "gpio98";
> + function = "gpio";
> + output-high;
> + bias-pull-up;
> + };
> +};
> +
> +/ {
> + thermal-zones {
> + cpu-0-0-0-thermal {

You should override given thermal zone by phandle/label style, not by
full path.



Best regards,
Krzysztof