.../boot/dts/qcom/monaco-arduino-monza.dts | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+)
Add support for the QCNFA725B M.2 module (WCN6855-based)
connected to PCIe0 on the Arduino VENTUNO Q board:
- GPIO54 is the W_DISABLE# line on the M.2 connector.
Pulling it low disables the radio transmitter at the hardware
level. It is modeled as rfkill-gpio so the kernel rfkill subsystem
can assert it in response to airplane mode or a hardware kill
switch, keeping RF state consistent across suspend/resume.
- GPIO56 is wlan_en.
- QCNFA725B provides only a single external 3.3V supply input.
Lower voltage rails (e.g. 0.9V, 1.3V and 1.9V) are generated
internally by the integrated PMCA6850 PMIC and are not exposed
as seperately controllable external supplies.
Signed-off-by: Qian Zhang <qian.zhang@oss.qualcomm.com>
---
.../boot/dts/qcom/monaco-arduino-monza.dts | 108 ++++++++++++++++++
1 file changed, 108 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts b/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts
index 379b796f261f..7e045397d649 100644
--- a/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts
+++ b/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts
@@ -154,6 +154,78 @@ vreg_nvme: regulator-3p3-m2 {
enable-active-high;
startup-delay-us = <20000>;
};
+
+ wlan-rfkill {
+ compatible = "rfkill-gpio";
+ label = "wlan";
+ radio-type = "wlan";
+ shutdown-gpios = <&tlmm 54 GPIO_ACTIVE_LOW>;
+
+ 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>;
+
+ vddio-supply = <&vdc_3v3>;
+ 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>;
+
+ regulators {
+ vreg_pmu_rfa_cmn: ldo0 {
+ regulator-name = "vreg_pmu_rfa_cmn";
+ };
+
+ vreg_pmu_aon_0p59: ldo1 {
+ regulator-name = "vreg_pmu_aon_0p59";
+ };
+
+ vreg_pmu_wlcx_0p8: ldo2 {
+ regulator-name = "vreg_pmu_wlcx_0p8";
+ };
+
+ vreg_pmu_wlmx_0p85: ldo3 {
+ regulator-name = "vreg_pmu_wlmx_0p85";
+ };
+
+ vreg_pmu_btcmx_0p85: ldo4 {
+ regulator-name = "vreg_pmu_btcmx_0p85";
+ };
+
+ vreg_pmu_rfa_0p8: ldo5 {
+ regulator-name = "vreg_pmu_rfa_0p8";
+ };
+
+ vreg_pmu_rfa_1p2: ldo6 {
+ regulator-name = "vreg_pmu_rfa_1p2";
+ };
+
+ vreg_pmu_rfa_1p8: ldo7 {
+ regulator-name = "vreg_pmu_rfa_1p8";
+ };
+
+ vreg_pmu_pcie_0p9: ldo8 {
+ regulator-name = "vreg_pmu_pcie_0p9";
+ };
+
+ vreg_pmu_pcie_1p8: ldo9 {
+ regulator-name = "vreg_pmu_pcie_1p8";
+ };
+ };
+ };
};
ðernet0 {
@@ -348,6 +420,29 @@ pci@0,0 {
ranges;
reg = <0x010000 0x00 0x00 0x00 0x00>;
+ pci@1,0 {
+ #address-cells = <3>;
+ #size-cells = <2>;
+ device_type = "pci";
+ ranges;
+ reg = <0x20800 0x00 0x00 0x00 0x00>;
+
+ wifi@0 {
+ compatible = "pci17cb,1103";
+ reg = <0 0 0 0 0>;
+
+ vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+ vddaon-supply = <&vreg_pmu_aon_0p59>;
+ vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+ vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+ vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+ vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+ vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
+ vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
+ vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
+ };
+ };
+
pci@2,0 {
#address-cells = <3>;
#size-cells = <2>;
@@ -449,6 +544,19 @@ adv7535_default: adv7535-default-state {
function = "gpio";
bias-pull-up;
};
+
+ wlrfkill_default_state: wlrfkill-default-state {
+ pins = "gpio54";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ wlan_en_state: wlan-en-state {
+ pins = "gpio56";
+ function = "gpio";
+ output-low;
+ };
};
&uart7 {
--
2.34.1
© 2016 - 2026 Red Hat, Inc.