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

From: Qian Zhang

Date: Mon Jun 01 2026 - 07:48:57 EST


On Sun, May 31, 2026 at 5:09 PM Dmitry Baryshkov
<dmitry.baryshkov@xxxxxxxxxxxxxxxx> wrote:
>
> 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?
>
Will update this
> >
> > - 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).
>
Sure
> >
> > 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.
>
Will remove this to commit message
> >
> > Testing:
> > - WLAN module (QCNFA725B) successfully enumerated on PCIe after boot
> > - WiFi scan detects available networks
> > - rfkill block/unblock correctly toggles GPIO54
>
> Drop.
Ok
>
> >
> > 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?
BT is enabled in node uart10
https://lore.kernel.org/all/20260429103537.1282497-1-shuai.zhang@xxxxxxxxxxxxxxxx/
>
> > +
> > + 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.
>
Sure
> > + 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