* [PATCH 0/2] arm64: dts: qcom: Add support for Radxa AirBox Q900 @ 2026-03-18 8:36 Mecid Urganci 2026-03-18 8:36 ` [PATCH 1/2] dt-bindings: arm: qcom: Add qcs9075-radxa-airbox-q900 Mecid Urganci 2026-03-18 8:36 ` [PATCH 2/2] arm64: dts: " Mecid Urganci 0 siblings, 2 replies; 10+ messages in thread From: Mecid Urganci @ 2026-03-18 8:36 UTC (permalink / raw) To: andersson, konradybcio Cc: robh, krzk+dt, conor+dt, richardcochran, linux-arm-msm, devicetree, linux-kernel, netdev, Mecid Urganci This series adds device tree support for the Radxa AirBox Q900, a device based on the Qualcomm QCS9075 SoC (Lemans Family). The board features: - HDMI 2.0 output via dp0 - 2x USB 3.1 Gen 2 ports - 2x 2.5GbE Ethernet ports (QCA8081 PHY) - Onboard UFS storage Patch 1 adds the compatible string to the arm/qcom binding. Patch 2 adds the board DTS. Tested on Armbian Debian Trixie with HDMI output, Ethernet, USB and UFS confirmed working. Mecid Urganci (2): dt-bindings: arm: qcom: Add qcs9075-radxa-airbox-q900 arm64: dts: qcom: Add qcs9075-radxa-airbox-q900 .../devicetree/bindings/arm/qcom.yaml | 6 + arch/arm64/boot/dts/qcom/Makefile | 1 + .../dts/qcom/qcs9075-radxa-airbox-q900.dts | 1012 +++++++++++++++++ 3 files changed, 1019 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/qcs9075-radxa-airbox-q900.dts -- 2.47.3 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/2] dt-bindings: arm: qcom: Add qcs9075-radxa-airbox-q900 2026-03-18 8:36 [PATCH 0/2] arm64: dts: qcom: Add support for Radxa AirBox Q900 Mecid Urganci @ 2026-03-18 8:36 ` Mecid Urganci 2026-03-18 8:51 ` Krzysztof Kozlowski 2026-03-18 8:36 ` [PATCH 2/2] arm64: dts: " Mecid Urganci 1 sibling, 1 reply; 10+ messages in thread From: Mecid Urganci @ 2026-03-18 8:36 UTC (permalink / raw) To: andersson, konradybcio Cc: robh, krzk+dt, conor+dt, richardcochran, linux-arm-msm, devicetree, linux-kernel, netdev, Mecid Urganci Add device tree binding for the Radxa AirBox Q900 board based on the Qualcomm QCS9075 SoC. Signed-off-by: Mecid Urganci <mecid@mecomediagroup.de> --- Documentation/devicetree/bindings/arm/qcom.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml index 8c3df8efaa4d..2c492f4d784a 100644 --- a/Documentation/devicetree/bindings/arm/qcom.yaml +++ b/Documentation/devicetree/bindings/arm/qcom.yaml @@ -909,6 +909,12 @@ properties: - qcom,sa8775p-ride-r3 - const: qcom,sa8775p + - items: + - enum: + - radxa,airbox-q900 + - const: qcom,qcs9075 + - const: qcom,sa8775p + - items: - enum: - qcom,lemans-evk -- 2.47.3 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] dt-bindings: arm: qcom: Add qcs9075-radxa-airbox-q900 2026-03-18 8:36 ` [PATCH 1/2] dt-bindings: arm: qcom: Add qcs9075-radxa-airbox-q900 Mecid Urganci @ 2026-03-18 8:51 ` Krzysztof Kozlowski 2026-03-18 9:55 ` mecid 0 siblings, 1 reply; 10+ messages in thread From: Krzysztof Kozlowski @ 2026-03-18 8:51 UTC (permalink / raw) To: Mecid Urganci, andersson, konradybcio Cc: robh, krzk+dt, conor+dt, richardcochran, linux-arm-msm, devicetree, linux-kernel, netdev On 18/03/2026 09:36, Mecid Urganci wrote: > Add device tree binding for the Radxa AirBox Q900 board based on > the Qualcomm QCS9075 SoC. What is QCS9075? It's the first time this compatible appears and the only other reference is socinfo commit which told nothing. > > Signed-off-by: Mecid Urganci <mecid@mecomediagroup.de> > --- > Documentation/devicetree/bindings/arm/qcom.yaml | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml > index 8c3df8efaa4d..2c492f4d784a 100644 > --- a/Documentation/devicetree/bindings/arm/qcom.yaml > +++ b/Documentation/devicetree/bindings/arm/qcom.yaml > @@ -909,6 +909,12 @@ properties: > - qcom,sa8775p-ride-r3 > - const: qcom,sa8775p > > + - items: > + - enum: > + - radxa,airbox-q900 > + - const: qcom,qcs9075 > + - const: qcom,sa8775p Why qcs9075 is compatible with sa8775p? > + > - items: > - enum: > - qcom,lemans-evk Best regards, Krzysztof ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] dt-bindings: arm: qcom: Add qcs9075-radxa-airbox-q900 2026-03-18 8:51 ` Krzysztof Kozlowski @ 2026-03-18 9:55 ` mecid 2026-03-18 10:15 ` Krzysztof Kozlowski 0 siblings, 1 reply; 10+ messages in thread From: mecid @ 2026-03-18 9:55 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, richardcochran, linux-arm-msm, devicetree, linux-kernel, netdev On 2026-03-18 09:51, Krzysztof Kozlowski wrote: > On 18/03/2026 09:36, Mecid Urganci wrote: >> Add device tree binding for the Radxa AirBox Q900 board based on >> the Qualcomm QCS9075 SoC. > > What is QCS9075? It's the first time this compatible appears and the > only other reference is socinfo commit which told nothing. > >> >> Signed-off-by: Mecid Urganci <mecid@mecomediagroup.de> >> --- >> Documentation/devicetree/bindings/arm/qcom.yaml | 6 ++++++ >> 1 file changed, 6 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml >> b/Documentation/devicetree/bindings/arm/qcom.yaml >> index 8c3df8efaa4d..2c492f4d784a 100644 >> --- a/Documentation/devicetree/bindings/arm/qcom.yaml >> +++ b/Documentation/devicetree/bindings/arm/qcom.yaml >> @@ -909,6 +909,12 @@ properties: >> - qcom,sa8775p-ride-r3 >> - const: qcom,sa8775p >> >> + - items: >> + - enum: >> + - radxa,airbox-q900 >> + - const: qcom,qcs9075 >> + - const: qcom,sa8775p > > Why qcs9075 is compatible with sa8775p? Thank you for your feedback. Yes from public information it is the same SoC without the automotive security features. Should I remove the qcs9075 reference and only keep qcom,sa8775p? Here it is listed as part of lemans: https://linux-msm.github.io/mainline-status/soc/lemans Best regards, Mecid Urganci > >> + >> - items: >> - enum: >> - qcom,lemans-evk > > > Best regards, > Krzysztof ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] dt-bindings: arm: qcom: Add qcs9075-radxa-airbox-q900 2026-03-18 9:55 ` mecid @ 2026-03-18 10:15 ` Krzysztof Kozlowski 0 siblings, 0 replies; 10+ messages in thread From: Krzysztof Kozlowski @ 2026-03-18 10:15 UTC (permalink / raw) To: mecid Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, richardcochran, linux-arm-msm, devicetree, linux-kernel, netdev On 18/03/2026 10:55, mecid@mecomediagroup.de wrote: >>> >>> + - items: >>> + - enum: >>> + - radxa,airbox-q900 >>> + - const: qcom,qcs9075 >>> + - const: qcom,sa8775p >> >> Why qcs9075 is compatible with sa8775p? > > Thank you for your feedback. > > Yes from public information it is the same SoC without the automotive > security features. Should I remove the qcs9075 reference and only keep > qcom,sa8775p? > > Here it is listed as part of lemans: > https://linux-msm.github.io/mainline-status/soc/lemans Just explain it in commit msg, because this is the first documentation of that compatible. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 2/2] arm64: dts: qcom: Add qcs9075-radxa-airbox-q900 2026-03-18 8:36 [PATCH 0/2] arm64: dts: qcom: Add support for Radxa AirBox Q900 Mecid Urganci 2026-03-18 8:36 ` [PATCH 1/2] dt-bindings: arm: qcom: Add qcs9075-radxa-airbox-q900 Mecid Urganci @ 2026-03-18 8:36 ` Mecid Urganci 2026-03-18 8:56 ` Krzysztof Kozlowski ` (2 more replies) 1 sibling, 3 replies; 10+ messages in thread From: Mecid Urganci @ 2026-03-18 8:36 UTC (permalink / raw) To: andersson, konradybcio Cc: robh, krzk+dt, conor+dt, richardcochran, linux-arm-msm, devicetree, linux-kernel, netdev, Mecid Urganci 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@mecomediagroup.de> Made-with: Cursor --- 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 = ðernet0; + ethernet1 = ðernet1; + i2c15 = &i2c15; + i2c18 = &i2c18; + serial0 = &uart10; + ufshc1 = &ufs_mem_hc; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + vcc_5v0_regulator: vcc-5v0-regulator { + 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 { + compatible = "dp-connector"; + label = "eDP0"; + type = "full-size"; + + port { + dp0_connector_in: endpoint { + remote-endpoint = <&mdss0_dp0_out>; + }; + }; + }; +}; + +&apps_rsc { + regulators-0 { + compatible = "qcom,pmm8654au-rpmh-regulators"; + qcom,pmic-id = "a"; + + vreg_s4a: smps4 { + regulator-name = "vreg_s4a"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1816000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_s5a: smps5 { + regulator-name = "vreg_s5a"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1996000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_s9a: smps9 { + regulator-name = "vreg_s9a"; + regulator-min-microvolt = <535000>; + regulator-max-microvolt = <1120000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l4a: ldo4 { + regulator-name = "vreg_l4a"; + regulator-min-microvolt = <788000>; + regulator-max-microvolt = <1050000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l5a: ldo5 { + regulator-name = "vreg_l5a"; + regulator-min-microvolt = <870000>; + regulator-max-microvolt = <950000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l6a: ldo6 { + regulator-name = "vreg_l6a"; + regulator-min-microvolt = <870000>; + regulator-max-microvolt = <970000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l7a: ldo7 { + regulator-name = "vreg_l7a"; + regulator-min-microvolt = <720000>; + regulator-max-microvolt = <950000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l8a: ldo8 { + regulator-name = "vreg_l8a"; + regulator-min-microvolt = <2504000>; + regulator-max-microvolt = <3300000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l9a: ldo9 { + regulator-name = "vreg_l9a"; + regulator-min-microvolt = <2970000>; + regulator-max-microvolt = <3544000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + }; + + regulators-1 { + compatible = "qcom,pmm8654au-rpmh-regulators"; + qcom,pmic-id = "c"; + + vreg_l1c: ldo1 { + regulator-name = "vreg_l1c"; + regulator-min-microvolt = <1140000>; + regulator-max-microvolt = <1260000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l2c: ldo2 { + regulator-name = "vreg_l2c"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <1100000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l3c: ldo3 { + regulator-name = "vreg_l3c"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1300000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l4c: ldo4 { + regulator-name = "vreg_l4c"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + /* + * FIXME: This should have regulator-allow-set-load but + * we're getting an over-current fault from the PMIC + * when switching to LPM. + */ + }; + + vreg_l5c: ldo5 { + regulator-name = "vreg_l5c"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1300000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l6c: ldo6 { + regulator-name = "vreg_l6c"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <1980000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l7c: ldo7 { + regulator-name = "vreg_l7c"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <2000000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l8c: ldo8 { + regulator-name = "vreg_l8c"; + regulator-min-microvolt = <2400000>; + regulator-max-microvolt = <3300000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l9c: ldo9 { + regulator-name = "vreg_l9c"; + regulator-min-microvolt = <1650000>; + regulator-max-microvolt = <2700000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + }; + + regulators-2 { + compatible = "qcom,pmm8654au-rpmh-regulators"; + qcom,pmic-id = "e"; + + vreg_s4e: smps4 { + regulator-name = "vreg_s4e"; + regulator-min-microvolt = <970000>; + regulator-max-microvolt = <1520000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_s7e: smps7 { + regulator-name = "vreg_s7e"; + regulator-min-microvolt = <1010000>; + regulator-max-microvolt = <1170000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_s9e: smps9 { + regulator-name = "vreg_s9e"; + regulator-min-microvolt = <300000>; + regulator-max-microvolt = <570000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l6e: ldo6 { + regulator-name = "vreg_l6e"; + regulator-min-microvolt = <1280000>; + regulator-max-microvolt = <1450000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l8e: ldo8 { + regulator-name = "vreg_l8e"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1950000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-allow-set-load; + regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; + }; + }; +}; + +ðernet0 { + phy-handle = <&sgmii_phy0>; + phy-mode = "2500base-x"; + + pinctrl-0 = <ðernet0_default>; + pinctrl-names = "default"; + + snps,mtl-rx-config = <&mtl_rx_setup>; + snps,mtl-tx-config = <&mtl_tx_setup>; + snps,ps-speed = <2500>; + + status = "okay"; + + mdio { + compatible = "snps,dwmac-mdio"; + #address-cells = <1>; + #size-cells = <0>; + + sgmii_phy0: ethernet-phy@1c { + compatible = "ethernet-phy-id004d.d101"; + reg = <0x1c>; + reset-gpios = <&pmm8654au_2_gpios 8 GPIO_ACTIVE_LOW>; + reset-assert-us = <11000>; + reset-deassert-us = <70000>; + + leds { + #address-cells = <1>; + #size-cells = <0>; + + led@0 { + reg = <0>; + active-low; + color = <LED_COLOR_ID_YELLOW>; + }; + + led@1 { + reg = <1>; + active-low; + color = <LED_COLOR_ID_GREEN>; + }; + }; + }; + }; + + mtl_rx_setup: rx-queues-config { + snps,rx-queues-to-use = <4>; + snps,rx-sched-sp; + + queue0 { + snps,dcb-algorithm; + snps,map-to-dma-channel = <0x0>; + snps,route-up; + snps,priority = <0x1>; + }; + + queue1 { + snps,dcb-algorithm; + snps,map-to-dma-channel = <0x1>; + snps,route-ptp; + }; + + queue2 { + snps,avb-algorithm; + snps,map-to-dma-channel = <0x2>; + snps,route-avcp; + }; + + queue3 { + snps,avb-algorithm; + snps,map-to-dma-channel = <0x3>; + snps,priority = <0xc>; + }; + }; + + mtl_tx_setup: tx-queues-config { + snps,tx-queues-to-use = <4>; + + queue0 { + snps,dcb-algorithm; + }; + + queue1 { + snps,dcb-algorithm; + }; + + queue2 { + snps,avb-algorithm; + snps,send_slope = <0x1000>; + snps,idle_slope = <0x1000>; + snps,high_credit = <0x3e800>; + snps,low_credit = <0xffc18000>; + }; + + queue3 { + snps,avb-algorithm; + snps,send_slope = <0x1000>; + snps,idle_slope = <0x1000>; + snps,high_credit = <0x3e800>; + snps,low_credit = <0xffc18000>; + }; + }; +}; + +ðernet1 { + phy-handle = <&sgmii_phy1>; + phy-mode = "2500base-x"; + + pinctrl-0 = <ðernet1_default>; + pinctrl-names = "default"; + + snps,mtl-rx-config = <&mtl_rx_setup1>; + snps,mtl-tx-config = <&mtl_tx_setup1>; + snps,ps-speed = <2500>; + + status = "okay"; + + mdio { + compatible = "snps,dwmac-mdio"; + #address-cells = <1>; + #size-cells = <0>; + + sgmii_phy1: ethernet-phy@1c { + compatible = "ethernet-phy-id004d.d101"; + reg = <0x1c>; + reset-gpios = <&pmm8654au_2_gpios 9 GPIO_ACTIVE_LOW>; + reset-assert-us = <11000>; + reset-deassert-us = <70000>; + + leds { + #address-cells = <1>; + #size-cells = <0>; + + led@0 { + reg = <0>; + active-low; + color = <LED_COLOR_ID_YELLOW>; + }; + + led@1 { + reg = <1>; + active-low; + color = <LED_COLOR_ID_GREEN>; + }; + }; + }; + }; + + mtl_rx_setup1: rx-queues-config { + snps,rx-queues-to-use = <4>; + snps,rx-sched-sp; + + queue0 { + snps,dcb-algorithm; + snps,map-to-dma-channel = <0x0>; + snps,route-up; + snps,priority = <0x1>; + }; + + queue1 { + snps,dcb-algorithm; + snps,map-to-dma-channel = <0x1>; + snps,route-ptp; + }; + + queue2 { + snps,avb-algorithm; + snps,map-to-dma-channel = <0x2>; + snps,route-avcp; + }; + + queue3 { + snps,avb-algorithm; + snps,map-to-dma-channel = <0x3>; + snps,priority = <0xc>; + }; + }; + + mtl_tx_setup1: tx-queues-config { + snps,tx-queues-to-use = <4>; + + queue0 { + snps,dcb-algorithm; + }; + + queue1 { + snps,dcb-algorithm; + }; + + queue2 { + snps,avb-algorithm; + snps,send_slope = <0x1000>; + snps,idle_slope = <0x1000>; + snps,high_credit = <0x3e800>; + snps,low_credit = <0xffc18000>; + }; + + queue3 { + snps,avb-algorithm; + snps,send_slope = <0x1000>; + snps,idle_slope = <0x1000>; + snps,high_credit = <0x3e800>; + snps,low_credit = <0xffc18000>; + }; + }; +}; + +&i2c15 { + clock-frequency = <400000>; + status = "okay"; + + eeprom: eeprom@50 { + compatible = "atmel,24c16"; + reg = <0x50>; + pagesize = <16>; + }; +}; + +&i2c18 { + clock-frequency = <400000>; + pinctrl-0 = <&qup_i2c18_default>; + pinctrl-names = "default"; + status = "okay"; + + /* RTC RS4C411ZAE */ + rtc_m41t11: rtc@68 { + compatible = "st,m41t11"; + reg = <0x68>; + }; +}; + +&gpu { + status = "okay"; +}; + +&gpu_zap_shader { + firmware-name = "qcom/sa8775p/a663_zap.mbn"; +}; + +&iris { + firmware-name = "qcom/vpu/vpu30_p4_s6.mbn"; + status = "okay"; +}; + +&mdss0 { + status = "okay"; +}; + +&mdss0_dp0 { + pinctrl-0 = <&dp_hot_plug_det>; + pinctrl-names = "default"; + + status = "okay"; +}; + +&mdss0_dp0_out { + data-lanes = <0 1 2 3>; + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>; + remote-endpoint = <&dp0_connector_in>; +}; + +&mdss0_dp0_phy { + vdda-phy-supply = <&vreg_l1c>; + vdda-pll-supply = <&vreg_l4a>; + + status = "okay"; +}; + +&pcie0 { + perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>; + wake-gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>; + + pinctrl-names = "default"; + pinctrl-0 = <&pcie0_default_state>; + + status = "okay"; +}; + +&pcie1 { + perst-gpios = <&tlmm 4 GPIO_ACTIVE_LOW>; + wake-gpios = <&tlmm 5 GPIO_ACTIVE_HIGH>; + + pinctrl-names = "default"; + pinctrl-0 = <&pcie1_default_state>; + + status = "okay"; +}; + +&pcie0_phy { + vdda-phy-supply = <&vreg_l5a>; + vdda-pll-supply = <&vreg_l1c>; + + status = "okay"; +}; + +&pcie1_phy { + vdda-phy-supply = <&vreg_l5a>; + vdda-pll-supply = <&vreg_l1c>; + + status = "okay"; +}; + +&pmm8654au_0_pon_resin { + linux,code = <KEY_VOLUMEDOWN>; + status = "okay"; +}; + +&qupv3_id_0 { + status = "okay"; +}; + +&qupv3_id_1 { + status = "okay"; +}; + +&qupv3_id_2 { + status = "okay"; +}; + +&remoteproc_adsp { + firmware-name = "qcom/sa8775p/adsp.mbn"; + status = "okay"; +}; + +&remoteproc_cdsp0 { + firmware-name = "qcom/sa8775p/cdsp0.mbn"; + status = "okay"; +}; + +&remoteproc_cdsp1 { + firmware-name = "qcom/sa8775p/cdsp1.mbn"; + status = "okay"; +}; + +&remoteproc_gpdsp0 { + firmware-name = "qcom/sa8775p/gpdsp0.mbn"; + status = "okay"; +}; + +&remoteproc_gpdsp1 { + firmware-name = "qcom/sa8775p/gpdsp1.mbn"; + status = "okay"; +}; + +&serdes0 { + phy-supply = <&vreg_l5a>; + vdda-0p9-supply = <&vreg_l4a>; + + status = "okay"; +}; + +&serdes1 { + phy-supply = <&vreg_l5a>; + vdda-0p9-supply = <&vreg_l4a>; + + status = "okay"; +}; + +&sleep_clk { + clock-frequency = <32768>; +}; + +&uart10 { + compatible = "qcom,geni-debug-uart"; + status = "okay"; +}; + +&ufs_mem_hc { + reset-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>; + vcc-supply = <&vreg_l8a>; + vcc-max-microamp = <1100000>; + vccq-supply = <&vreg_l4c>; + vccq-max-microamp = <1200000>; + + status = "okay"; +}; + +&ufs_mem_phy { + vdda-phy-supply = <&vreg_l4a>; + vdda-pll-supply = <&vreg_l1c>; + + status = "okay"; +}; + +&usb_0 { + dr_mode = "host"; + + status = "okay"; +}; + +&usb_0_hsphy { + vdda-pll-supply = <&vreg_l7a>; + vdda18-supply = <&vreg_l6c>; + vdda33-supply = <&vreg_l9a>; + + status = "okay"; +}; + +&usb_0_qmpphy { + vdda-phy-supply = <&vreg_l1c>; + vdda-pll-supply = <&vreg_l7a>; + + status = "okay"; +}; + +&usb_1 { + dr_mode = "host"; + + status = "okay"; +}; + +&usb_1_hsphy { + vdda-pll-supply = <&vreg_l7a>; + vdda18-supply = <&vreg_l6c>; + vdda33-supply = <&vreg_l9a>; + + status = "okay"; +}; + +&usb_1_qmpphy { + vdda-phy-supply = <&vreg_l1c>; + vdda-pll-supply = <&vreg_l7a>; + + status = "okay"; +}; + +&usb_2 { + dr_mode = "host"; + + status = "okay"; +}; + +&usb_2_hsphy { + vdda-pll-supply = <&vreg_l7a>; + vdda18-supply = <&vreg_l6c>; + vdda33-supply = <&vreg_l9a>; + + status = "okay"; +}; + +&xo_board_clk { + clock-frequency = <38400000>; +}; + +&pmm8654au_1_gpios { + vcc_3v3_ssd_en_state: vcc-3v3-ssd-en-state { + pins = "gpio9"; + function = "normal"; + output-high; + bias-pull-up; + }; + + status_led_state: status-led-state { + pins = "gpio11"; + function = "normal"; + output-high; + bias-pull-up; + }; + + fan_en_state: fan-en-state { + pins = "gpio12"; + function = "normal"; + output-low; + bias-pull-down; + }; +}; + +&pmm8654au_2_gpios { + vcc3v3_usb30_otg_en_state: vcc3v3-usb30-otg-en-state { + pins = "gpio3"; + function = "normal"; + output-high; + bias-pull-up; + }; + + vcc3v3_usb30_en_state: vcc3v3-usb30-en-state { + pins = "gpio4"; + function = "normal"; + output-high; + bias-pull-up; + }; + + vcc3v3_minipcie_en_state: vcc3v3-minipcie-en-state { + pins = "gpio10"; + function = "normal"; + output-high; + bias-pull-up; + }; +}; + +&pmm8654au_3_gpios { + vcc_5v0_en_state: vcc-5v0-en-state { + pins = "gpio6"; + function = "normal"; + output-high; + bias-pull-up; + }; +}; + +&tlmm { + dp_hot_plug_det: dp-hot-plug-det-state { + pins = "gpio101"; + function = "edp0_hot"; + bias-disable; + }; + + ethernet0_default: ethernet0-default-state { + ethernet0_mdc: ethernet0-mdc-pins { + pins = "gpio8"; + function = "emac0_mdc"; + drive-strength = <16>; + bias-pull-up; + }; + + ethernet0_mdio: ethernet0-mdio-pins { + pins = "gpio9"; + function = "emac0_mdio"; + drive-strength = <16>; + bias-pull-up; + }; + }; + + ethernet1_default: ethernet1-default-state { + ethernet1_mdc: ethernet1-mdc-pins { + pins = "gpio20"; + function = "emac1_mdc"; + drive-strength = <16>; + bias-pull-up; + }; + + ethernet1_mdio: ethernet1-mdio-pins { + pins = "gpio21"; + function = "emac1_mdio"; + drive-strength = <16>; + bias-pull-up; + }; + }; + + pcie0_default_state: pcie0-default-state { + perst-pins { + pins = "gpio2"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + + clkreq-pins { + pins = "gpio1"; + function = "pcie0_clkreq"; + drive-strength = <2>; + bias-pull-up; + }; + + wake-pins { + pins = "gpio0"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + pcie1_default_state: pcie1-default-state { + perst-pins { + pins = "gpio4"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + + clkreq-pins { + pins = "gpio3"; + function = "pcie1_clkreq"; + drive-strength = <2>; + bias-pull-up; + }; + + wake-pins { + pins = "gpio5"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + qup_i2c18_default: qup-i2c18-state { + pins = "gpio95", "gpio96"; + function = "qup2_se4"; + drive-strength = <2>; + bias-pull-up; + }; + + 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 { + polling-delay-passive = <1000>; + polling-delay = <5000>; + + trips { + fan_on: fan-on { + temperature = <40000>; + hysteresis = <5000>; + type = "active"; + }; + }; + + cooling-maps { + map-fan { + trip = <&fan_on>; + cooling-device = <&fan0 1 1>; + }; + }; + }; + }; +}; -- 2.47.3 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] arm64: dts: qcom: Add qcs9075-radxa-airbox-q900 2026-03-18 8:36 ` [PATCH 2/2] arm64: dts: " Mecid Urganci @ 2026-03-18 8:56 ` Krzysztof Kozlowski 2026-03-18 10:02 ` mecid 2026-03-18 8:57 ` Neil Armstrong 2026-03-18 10:10 ` Konrad Dybcio 2 siblings, 1 reply; 10+ messages in thread From: Krzysztof Kozlowski @ 2026-03-18 8:56 UTC (permalink / raw) To: Mecid Urganci, andersson, konradybcio Cc: robh, krzk+dt, conor+dt, richardcochran, linux-arm-msm, devicetree, linux-kernel, netdev 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@mecomediagroup.de> > 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 = ðernet0; > + ethernet1 = ðernet1; > + 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 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] arm64: dts: qcom: Add qcs9075-radxa-airbox-q900 2026-03-18 8:56 ` Krzysztof Kozlowski @ 2026-03-18 10:02 ` mecid 0 siblings, 0 replies; 10+ messages in thread From: mecid @ 2026-03-18 10:02 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, richardcochran, linux-arm-msm, devicetree, linux-kernel, netdev On 2026-03-18 09:56, Krzysztof Kozlowski wrote: > 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@mecomediagroup.de> >> 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? Sorry for the confusion as this is my first time sending a patch upstream and I tried to address what could come up with an LLM as sparing partner before. I did review the code and tested for functionality. > >> --- >> 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 = ðernet0; >> + ethernet1 = ðernet1; >> + 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 > Will address in V2, thank you! >> + 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. Will address in V2 here too. > > > > Best regards, > Krzysztof Thank you for feedback, Mecid Urganci ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] arm64: dts: qcom: Add qcs9075-radxa-airbox-q900 2026-03-18 8:36 ` [PATCH 2/2] arm64: dts: " Mecid Urganci 2026-03-18 8:56 ` Krzysztof Kozlowski @ 2026-03-18 8:57 ` Neil Armstrong 2026-03-18 10:10 ` Konrad Dybcio 2 siblings, 0 replies; 10+ messages in thread From: Neil Armstrong @ 2026-03-18 8:57 UTC (permalink / raw) To: Mecid Urganci, andersson, konradybcio Cc: robh, krzk+dt, conor+dt, richardcochran, linux-arm-msm, devicetree, linux-kernel, netdev Hi, On 3/18/26 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@mecomediagroup.de> > Made-with: Cursor > --- > 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"; The radxa pages shows "Radxa Fogwise® AIRbox Q900", why did you drop Fogwise ? > + compatible = "radxa,airbox-q900", "qcom,qcs9075", "qcom,sa8775p"; > + <snip> > + > + dp0-connector { > + compatible = "dp-connector"; > + label = "eDP0"; > + type = "full-size"; > + > + port { > + dp0_connector_in: endpoint { > + remote-endpoint = <&mdss0_dp0_out>; > + }; > + }; The device has an HDMI output, and this is probably provided by a DP to HDMI IC, please represent it here. > + }; > +}; > + <snip> > +}; > + > +/ { > + thermal-zones { > + cpu-0-0-0-thermal { > + polling-delay-passive = <1000>; > + polling-delay = <5000>; > + > + trips { > + fan_on: fan-on { > + temperature = <40000>; > + hysteresis = <5000>; > + type = "active"; > + }; > + }; > + > + cooling-maps { > + map-fan { > + trip = <&fan_on>; > + cooling-device = <&fan0 1 1>; > + }; > + }; > + }; > + }; So the fan only cools the cpu0 ?? not the gpu ? Neil > +}; ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] arm64: dts: qcom: Add qcs9075-radxa-airbox-q900 2026-03-18 8:36 ` [PATCH 2/2] arm64: dts: " Mecid Urganci 2026-03-18 8:56 ` Krzysztof Kozlowski 2026-03-18 8:57 ` Neil Armstrong @ 2026-03-18 10:10 ` Konrad Dybcio 2 siblings, 0 replies; 10+ messages in thread From: Konrad Dybcio @ 2026-03-18 10:10 UTC (permalink / raw) To: Mecid Urganci, andersson, konradybcio Cc: robh, krzk+dt, conor+dt, richardcochran, linux-arm-msm, devicetree, linux-kernel, netdev On 3/18/26 9:36 AM, 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@mecomediagroup.de> > Made-with: Cursor > --- [...] > + gpio_leds: gpio-leds { Please strip unused labels > + compatible = "gpio-leds"; > + pinctrl-names = "default"; > + pinctrl-0 = <&status_led_state>, <&power_led_state>; property-n property-names in this order, file-wide, please [...] > + vreg_l4c: ldo4 { > + regulator-name = "vreg_l4c"; > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1200000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + /* > + * FIXME: This should have regulator-allow-set-load but > + * we're getting an over-current fault from the PMIC > + * when switching to LPM. > + */ Are you actually experiencing that, or is that a copy-pasta? [...] > +&i2c15 { > + clock-frequency = <400000>; > + status = "okay"; Please uniformly keep a \n before 'status' [...] > +&gpu_zap_shader { > + firmware-name = "qcom/sa8775p/a663_zap.mbn"; > +}; > + > +&iris { > + firmware-name = "qcom/vpu/vpu30_p4_s6.mbn"; > + status = "okay"; > +}; Those are only Qualcomm-signed (i.e. not vendor-signed) - are you using the ones from linux-firmware? [...] > +&remoteproc_adsp { > + firmware-name = "qcom/sa8775p/adsp.mbn"; Notably the ADSP firmware normally contains board-specific modifications.. [...] > + power_led_state: power-led-state { > + pins = "gpio98"; > + function = "gpio"; > + output-high; You're already manipulating this pin from the gpio-leds node, no need > + bias-pull-up; pull-up of an active-high pin sounds odd Konrad ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2026-03-18 10:15 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-03-18 8:36 [PATCH 0/2] arm64: dts: qcom: Add support for Radxa AirBox Q900 Mecid Urganci 2026-03-18 8:36 ` [PATCH 1/2] dt-bindings: arm: qcom: Add qcs9075-radxa-airbox-q900 Mecid Urganci 2026-03-18 8:51 ` Krzysztof Kozlowski 2026-03-18 9:55 ` mecid 2026-03-18 10:15 ` Krzysztof Kozlowski 2026-03-18 8:36 ` [PATCH 2/2] arm64: dts: " Mecid Urganci 2026-03-18 8:56 ` Krzysztof Kozlowski 2026-03-18 10:02 ` mecid 2026-03-18 8:57 ` Neil Armstrong 2026-03-18 10:10 ` Konrad Dybcio
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox