Re: [PATCH v8] arm64: dts: qcom: qcs8300-ride: enable WLAN on qcs8300-ride

From: Wei Zhang (Stone)

Date: Wed Jan 21 2026 - 02:03:11 EST



On 1/20/2026 3:44 PM, Dmitry Baryshkov wrote:
On Mon, Jan 19, 2026 at 11:06:49PM -0800, Wei Zhang wrote:
Enable WLAN on qcs8300-ride by adding a node for the PMU module
of the WCN6855 and assigning its LDO power outputs to the existing
WiFi module.

On the qcs8300-ride platform, the corresponding firmware and BDF
are QCA6698AQ instead of WCN6855, which have been added in the
20250211 release.

Signed-off-by: Wei Zhang <wei.zhang@xxxxxxxxxxxxxxxx>
---
This patch depends on:
- PCIe
https://lore.kernel.org/all/20251128104928.4070050-1-ziyue.zhang@xxxxxxxxxxxxxxxx/

Changes in v8:
- Reordered regulator nodes to maintain alphabetical consistency (Dmitry)
- Place wifi@0 node under existing pcieport0 label
- Link to v7: https://lore.kernel.org/all/20260119090758.2780678-1-wei.zhang@xxxxxxxxxxxxxxxx/

Changes in v7:
- Align regulator node names to match the existing naming style in the dts (Dmitry)
- Link to v6: https://lore.kernel.org/all/20260119080125.2761623-1-wei.zhang@xxxxxxxxxxxxxxxx/

Changes in v6:
- Rebase patches
- Remove unintended 'output-low' from wlan-en-state pinctrl (Konrad)
- Link to v5: https://lore.kernel.org/all/20251113055148.2729943-1-wei.zhang@xxxxxxxxxxxxxxxx/

Changes in v5:
- Rebase patches
- Flip the order of property-n and property-names (Konrad)
- Flip the order of bias and output property (Konrad)
- Link to v4: https://lore.kernel.org/all/20250325075331.1662306-1-quic_stonez@xxxxxxxxxxx/

Changes in v4:
- Rename the symbol pcieport0 to pcie0_port0 (Konrad)
- Adjust the property order in node pcie0_port0 (Konrad)
- Add to the commit message mentioning FW and BDF used by QCS8300 (Dmitry)
- Specify the calibration data using the correct variant (Dmitry)
- Link to v3: https://lore.kernel.org/all/20250318093350.2682132-1-quic_stonez@xxxxxxxxxxx/

Changes in v3:
- Complete the nodes property definitions according to DTS binding requirements (Bjorn)
- Link to v2: https://lore.kernel.org/all/20250227065439.1407230-1-quic_stonez@xxxxxxxxxxx/

Changes in v2:
- Rename the nodes name according to DTS coding style (Konrad & Krzysztof)
- Provide regulator-min/max-microvolt to the regulators (Konrad)
- Link to v1: https://lore.kernel.org/all/20250210062910.3618336-1-quic_stonez@xxxxxxxxxxx/
---
arch/arm64/boot/dts/qcom/qcs8300-ride.dts | 105 ++++++++++++++++++++++
1 file changed, 105 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
index 68691f7b5f94..864b32503d29 100644
--- a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
+++ b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
@@ -24,6 +24,26 @@ chosen {
stdout-path = "serial0:115200n8";
};
+ vreg_conn_1p8: regulator-conn-1p8 {
+ compatible = "regulator-fixed";
+ regulator-name = "vreg_conn_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ startup-delay-us = <4000>;
+ enable-active-high;
+ gpio = <&pmm8650au_1_gpios 4 GPIO_ACTIVE_HIGH>;
+ };
+
+ vreg_conn_pa: regulator-conn-pa {
+ compatible = "regulator-fixed";
+ regulator-name = "vreg_conn_pa";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ startup-delay-us = <4000>;
+ enable-active-high;
+ gpio = <&pmm8650au_1_gpios 6 GPIO_ACTIVE_HIGH>;
+ };
+
regulator-usb2-vbus {
compatible = "regulator-fixed";
regulator-name = "USB2_VBUS";
@@ -33,6 +53,68 @@ regulator-usb2-vbus {
enable-active-high;
regulator-always-on;
};
+
+ wcn6855-pmu {
+ compatible = "qcom,wcn6855-pmu";
+
+ pinctrl-0 = <&wlan_en_state>;
+ pinctrl-names = "default";
+
+ vddio-supply = <&vreg_conn_pa>;
+ vddaon-supply = <&vreg_conn_1p8>;
+ vddpmu-supply = <&vreg_conn_pa>;
+ vddpmumx-supply = <&vreg_conn_1p8>;
+ vddpmucx-supply = <&vreg_conn_pa>;
+ vddrfa0p95-supply = <&vreg_conn_1p8>;
How comes that 0.95V pin is powred on by 1.8V? How comes that 1.3V
pin is powered on by 1.8V?
On this platform, all power domains of the WLAN module are enabled through external buck converters controlled by PMIC GPIO4.
PMIC‑C GPIO_4 is used for DBU3 ENABLE (PWR_CTRL2_VDD_1P8), and it is also used to enable the core voltages required by the WLAN card (1.95 V, 1.35 V, 1.05 V. etc).
Do we also need to define a regulator for vddrfa1p3-supply, vddrfa1p9-supply, vddrfa0p95-supply, etc?

+ vddrfa1p3-supply = <&vreg_conn_pa>;
+ vddrfa1p9-supply = <&vreg_conn_1p8>;
+ vddpcie1p3-supply = <&vreg_conn_pa>;
+ vddpcie1p9-supply = <&vreg_conn_1p8>;
+
+ wlan-enable-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>;
+