[PATCH v2 5/5] arm64: dts: qcom: nord-rrd: Add WCN7850 WLAN support

From: Shawn Guo

Date: Mon Sep 14 2026 - 22:06:01 EST


The IQ10 Robotics Reference Design carries a Hamilton (WCN7850) module on
a board-to-board connector hanging off PCIe2, using two lanes.

Unlike the Ride Embedded board, the RRD generates the module supplies
itself rather than relying on the module DBUs: three discrete buck
converters produce VDD_CORE_VL, VDD_CORE_VM and VDD_CORE_VH (0.95 V,
1.35 V and 1.95 V), all gated by WLAN0_CORE_PWR_EN on pmau0102_e GPIO6,
while the 3.3 V and 1.8 V I/O rails are strapped to the always-on
peripheral rails. WLAN0_EN on pmau0102_e GPIO10 releases the module
itself.

Describe those rails, the WCN7850 PMU that derives the chip supplies from
them, and the PCIe endpoint node consuming the PMU outputs.

Assisted-by: LLM
Reviewed-by: Abel Vesa <abel.vesa@xxxxxxxxxxxxxxxx>
Reviewed-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>
Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxxxxxxxx>
Signed-off-by: Shawn Guo <shengchao.guo@xxxxxxxxxxxxxxxx>
---
arch/arm64/boot/dts/qcom/nord-rrd.dts | 109 ++++++++++++++++++++++++++
1 file changed, 109 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/nord-rrd.dts b/arch/arm64/boot/dts/qcom/nord-rrd.dts
index 4c4d54d7aa90..c8a6df21fa87 100644
--- a/arch/arm64/boot/dts/qcom/nord-rrd.dts
+++ b/arch/arm64/boot/dts/qcom/nord-rrd.dts
@@ -53,6 +53,100 @@ bi_tcxo_ao_div2: bi-tcxo-ao-div2-clk {
clock-div = <2>;
};
};
+
+ vreg_wcn_3p3: regulator-wcn-3p3 {
+ compatible = "regulator-fixed";
+ regulator-name = "vreg_wcn_3p3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ };
+
+ vreg_wcn_vddio_1p8: regulator-wcn-vddio-1p8 {
+ compatible = "regulator-fixed";
+ regulator-name = "vreg_wcn_vddio_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ };
+
+ vreg_wcn_core_vl_0p95: regulator-wcn-core-vl-0p95 {
+ compatible = "regulator-fixed";
+ regulator-name = "vreg_wcn_core_vl_0p95";
+ regulator-min-microvolt = <950000>;
+ regulator-max-microvolt = <950000>;
+ gpio = <&pmau0102_e_gpios 6 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ vreg_wcn_core_vm_1p35: regulator-wcn-core-vm-1p35 {
+ compatible = "regulator-fixed";
+ regulator-name = "vreg_wcn_core_vm_1p35";
+ regulator-min-microvolt = <1350000>;
+ regulator-max-microvolt = <1350000>;
+ gpio = <&pmau0102_e_gpios 6 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ vreg_wcn_core_vh_1p95: regulator-wcn-core-vh-1p95 {
+ compatible = "regulator-fixed";
+ regulator-name = "vreg_wcn_core_vh_1p95";
+ regulator-min-microvolt = <1950000>;
+ regulator-max-microvolt = <1950000>;
+ gpio = <&pmau0102_e_gpios 6 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ wcn7850-pmu {
+ compatible = "qcom,wcn7850-pmu";
+
+ wlan-enable-gpios = <&pmau0102_e_gpios 10 GPIO_ACTIVE_HIGH>;
+
+ vdd-supply = <&vreg_wcn_3p3>;
+ vddio-supply = <&vreg_wcn_vddio_1p8>;
+ vddaon-supply = <&vreg_wcn_core_vl_0p95>;
+ vdddig-supply = <&vreg_wcn_core_vl_0p95>;
+ vddrfa1p2-supply = <&vreg_wcn_core_vm_1p35>;
+ vddrfa1p8-supply = <&vreg_wcn_core_vh_1p95>;
+
+ 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_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";
+ };
+ };
+ };
};

&apps_rsc {
@@ -415,6 +509,21 @@ &pcie2 {
&pcie2_port0 {
reset-gpios = <&tlmm 8 GPIO_ACTIVE_LOW>;
wake-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
+
+ wifi@0 {
+ compatible = "pci17cb,1107";
+ reg = <0x10000 0x0 0x0 0x0 0x0>;
+
+ vddaon-supply = <&vreg_pmu_aon_0p59>;
+ vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+ vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+ vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+ 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>;
+ };
};

&pcie3 {
--
2.43.0