Re: [PATCH v2 4/4] arm64: dts: qcom: sc8280xp: add Radxa Dragon Q8B

From: Konrad Dybcio

Date: Tue Oct 20 2026 - 04:33:37 EST


On 10/9/26 9:55 AM, Xilin Wu wrote:
> Add initial device tree support for the Radxa Dragon Q8B,
> a single-board computer based on the Qualcomm Snapdragon 8cx Gen 3
> SC8280XP platform.

[...]

> + pmic-glink {
> + compatible = "qcom,sc8280xp-pmic-glink", "qcom,pmic-glink";
> +
> + #address-cells = <1>;
> + #size-cells = <0>;
> + orientation-gpios = <&tlmm 166 GPIO_ACTIVE_HIGH>,
> + <&tlmm 49 GPIO_ACTIVE_HIGH>;

Please align the '<'s


> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + port@0 {

Please add a \n before the subnode

[...]

> + vcc_5v_s: regulator-vcc-5v-s {
> + compatible = "regulator-fixed";
> +
> + regulator-name = "vcc_5v_s";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> +
> + gpio = <&tlmm 159 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + startup-delay-us = <250000>;
> + off-on-delay-us = <150000>;
> +
> + pinctrl-0 = <&vcc_5v_s_reg_en>;
> + pinctrl-names = "default";
> +
> + /* CH7218A needs to be powered on for HPD logic to work */
> + regulator-always-on;

Does the power supply reference at the connector node not handle this?

[...]

> +&gpu_zap_shader {
> + /* Reuse firmware from x13s as the SoC is unfused */
> + firmware-name = "qcom/sc8280xp/LENOVO/21BX/qcdxkmsuc8280.mbn";
> +};

Other than the signature, the zap firmware is wholly generic.. I wonder
if we can just add a symlink in l-f to get a generic path..

WDYT +Dmitry?

[...]

> +/* M-key Gen3 x4 */
> +&pcie2a {
> + /* Place ECAM and BAR space above 4 GiB to accommodate large BARs. */
> + reg = <0x0 0x01c20000 0x0 0x3000>,
> + <0x0 0x3c000000 0x0 0xf1d>,
> + <0x0 0x3c000f20 0x0 0xa8>,
> + <0x0 0x3c001000 0x0 0x1000>,
> + <0x5 0x00000000 0x0 0x10000000>, /* ECAM config */
> + <0x0 0x01c23000 0x0 0x1000>;
> +
> + ranges = /* IO (1 MiB) */
> + <0x01000000 0x0 0x00000000 0x0 0x3c200000 0x0 0x100000>,
> + /* 32-bit non-prefetchable memory (256 MiB) */
> + <0x02000000 0x0 0x40000000 0x5 0x10000000 0x0 0x10000000>,
> + /* 64-bit non-prefetchable memory (3.5 GiB) */
> + <0x03000000 0x5 0x20000000 0x5 0x20000000 0x0 0xe0000000>;

Please drop this change on the board side, this is SoC-specific.
Likewise for the other ports.

[...]

> +&pmk8280_pon_pwrkey {
> + status = "okay";
> +};

I am confused why this isn't enabled by deafult but that's of course
not your fault

[...]


> +&sdc2 {
> + pinctrl-0 = <&sdc2_default_state>;
> + pinctrl-1 = <&sdc2_sleep_state>;
> + pinctrl-names = "default", "sleep";
> +
> + full-pwr-cycle;

Hm, is that something that comes from the controller itself? Should
we advertise it on other SoCs too?

[...]

> +
> + vmmc-supply = <&vreg_l9c>;
> + vqmmc-supply = <&vreg_l6c>;
> +
> + cd-gpios = <&tlmm 131 GPIO_ACTIVE_LOW>;
> +
> + status = "okay";
> +};
> +
> +&sound {
> + compatible = "qcom,sc8280xp-sndcard";
> + model = "SC8280XP-Radxa-Dragon-Q8B";
> +
> + audio-routing =
> + "IN1_HPHL", "HPHL_OUT",

Please don't break the line here, start right after the '='

[...]

> + usb0_sbu_default: usb0-sbu-state {
> + oe-n-pins {
> + pins = "gpio101";
> + function = "gpio";
> + bias-disable;
> + drive-strength = <16>;
> + output-high;

Drop the forced output state from both SBU pin states

Konrad