Re: [PATCH v4] arm64: dts: qcom: monaco-arduino-monza: Add QCNFA725B WiFi support

From: Dmitry Baryshkov

Date: Sun May 31 2026 - 05:10:01 EST


On Sun, May 31, 2026 at 12:44:09PM +0530, Qian Zhang wrote:
> Add support for the QCNFA725B M.2 WiFi module (WCN6855-based) connected
> to PCIe0 on the Arduino VENTUNO Q board. The following DT nodes are
> required:
>
> - qcom,wcn6855-pmu: manages GPIO56 (wlan_en) through the
> pwrseq-qcom-wcn power sequencer, and exposes the WCN6855 internal
> LDO regulators consumed by the wifi@0 node.
>
> - rfkill-gpio: exposes GPIO54 to the rfkill subsystem for RF state
> management.

Instead of just providing a summary of the patch, write something
useful. What is GPIO54, how does it control the RF, why is it rfkill?

>
> - wifi@0: describes the WCN6855 endpoint on the PCI tree.

Drop the useless parts. It's obvious from the patch. Try describing why,
not what (yes, AIs are bad at it).

>
> Signed-off-by: Qian Zhang <qian.zhang@xxxxxxxxxxxxxxxx>
> ---
> .../boot/dts/qcom/monaco-arduino-monza.dts | 108 ++++++++++++++++++
> 1 file changed, 108 insertions(+)
>
> The Arduino VENTUNO Q board uses a QCNFA725B M.2 PCIe WLAN module

Is it just WLAN of WiFi/BT?

> connected to PCIe0. Two GPIOs are required for proper WLAN operation:
>
> - GPIO56 (wlan_en): The WLAN module enable line
> - GPIO54 (rfkill): The RF kill line

This should have been a part of the commit message.

>
> Testing:
> - WLAN module (QCNFA725B) successfully enumerated on PCIe after boot
> - WiFi scan detects available networks
> - rfkill block/unblock correctly toggles GPIO54

Drop.

>
> Changes in v4:
> - Replace regulator-fixed + vddpe-3v3-supply with qcom,wcn6855-pmu for
> GPIO56 (wlan_en) power sequencing
> - Fix module name QCNFA765 -> QCNFA725B
> - Link to v3: https://lore.kernel.org/all/20260511-linux-next-v3-1-3e22737e71eb@xxxxxxxxxxxxxxxx/
>
> Changes in v3:
> - Replace regulator-fixed with rfkill-gpio for GPIO54 (rfkill)
> - Reference wlan_en from PCIe node via vddpe-3v3-supply
> - Fix subject prefix
> - Link to v2 (wrongly named v1): https://lore.kernel.org/all/20260501051918.1990713-1-qian.zhang@xxxxxxxxxxxxxxxx/
>
> Changes in v2:
> - Clarified GPIO roles: GPIO54 for wlan_rf_kill, GPIO56 for wlan_en
> - Improved commit message readability with bullet list format
> - Link to v1 (wrongly named v0): https://lore.kernel.org/all/20260425031712.3800662-1-qian.zhang@xxxxxxxxxxxxxxxx/
>
> diff --git a/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts b/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts
> index ca14f0ea4dae..bd5b8a161e7f 100644
> --- a/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts
> +++ b/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts
> @@ -153,6 +153,78 @@ vreg_nvme: regulator-3p3-m2 {
> enable-active-high;
> startup-delay-us = <20000>;
> };
> +
> + rfkill-wlan {
> + compatible = "rfkill-gpio";
> + label = "wlan";
> + radio-type = "wlan";
> + shutdown-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>;
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&wlrfkill_default_state>;
> + };
> +
> + wcn6855-pmu {
> + compatible = "qcom,wcn6855-pmu";
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&wlan_en_state>;
> +
> + wlan-enable-gpios = <&tlmm 56 GPIO_ACTIVE_HIGH>;

No bt-enable-gpios?

> +
> + vddio-supply = <&vdc_3v3>;

Please explain in the commit message why 0.9V, 1.3V and 1.9V pins are
supplied by the 3.3V supply.

> + vddaon-supply = <&vdc_3v3>;
> + vddpmu-supply = <&vdc_3v3>;
> + vddpmumx-supply = <&vdc_3v3>;
> + vddpmucx-supply = <&vdc_3v3>;
> + vddrfa0p95-supply = <&vdc_3v3>;
> + vddrfa1p3-supply = <&vdc_3v3>;
> + vddrfa1p9-supply = <&vdc_3v3>;
> + vddpcie1p3-supply = <&vdc_3v3>;
> + vddpcie1p9-supply = <&vdc_3v3>;
> +

--
With best wishes
Dmitry