diff mbox series

[v2,2/2] arm64: dts: qcom: qcs8300-ride: enable WLAN on qcs8300-ride

Message ID 20250227065439.1407230-3-quic_stonez@quicinc.com (mailing list archive)
State Changes Requested
Headers show
Series Enable WLAN for qcs8300-ride | expand

Commit Message

Stone Zhang Feb. 27, 2025, 6:54 a.m. UTC
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.

Signed-off-by: Stone Zhang <quic_stonez@quicinc.com>
---
 arch/arm64/boot/dts/qcom/qcs8300-ride.dts | 100 ++++++++++++++++++++++
 1 file changed, 100 insertions(+)

Comments

Dmitry Baryshkov Feb. 27, 2025, 3:15 p.m. UTC | #1
On Thu, Feb 27, 2025 at 02:54:39PM +0800, Stone 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.
> 
> Signed-off-by: Stone Zhang <quic_stonez@quicinc.com>
> ---
>  arch/arm64/boot/dts/qcom/qcs8300-ride.dts | 100 ++++++++++++++++++++++
>  1 file changed, 100 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
> index 3e246fbc5759..e9304420c93e 100644
> --- a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
> +++ b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
> @@ -22,6 +22,80 @@ aliases {
>  	chosen {
>  		stdout-path = "serial0:115200n8";
>  	};
> +
> +	vreg_conn_1p8: vreg-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: vreg-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>;
> +	};
> +
> +	wcn6855-pmu {
> +		compatible = "qcom,wcn6855-pmu";
> +
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&wlan_en_state>;
> +
> +		vddaon-supply = <&vreg_conn_pa>;
> +		vddpmu-supply = <&vreg_conn_1p8>;

This is very incomplete. Compare it to sa8775p-ride.dtsi.

> +
> +		wlan-enable-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>;

Missing bt-enable-gpios and corresponding bluetooth node.

> +
> +		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_1p7: ldo7 {
> +				regulator-name = "vreg_pmu_rfa_1p7";
> +			};
> +
> +			vreg_pmu_pcie_0p9: ldo8 {
> +				regulator-name = "vreg_pmu_pcie_0p9";
> +			};
> +
> +			vreg_pmu_pcie_1p8: ldo9 {
> +				regulator-name = "vreg_pmu_pcie_1p8";
> +			};
> +		};
> +	};
>  };
>  
>  &apps_rsc {
> @@ -337,6 +411,25 @@ &pcie1_phy {
>  	status = "okay";
>  };
>  
> +&pcieport0 {
> +	wifi@0 {
> +		compatible = "pci17cb,1103";
> +		reg = <0x10000 0x0 0x0 0x0 0x0>;
> +
> +		qcom,ath11k-calibration-variant = "QC_QCS8300_Ride";
> +
> +		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>;
> +		vddrfa1p7-supply = <&vreg_pmu_rfa_1p7>;
> +		vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
> +		vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
> +	};
> +};
> +
>  &qupv3_id_0 {
>  	status = "okay";
>  };
> @@ -446,6 +539,13 @@ perst-pins {
>  			bias-pull-down;
>  		};
>  	};
> +
> +	wlan_en_state: wlan-en-state {
> +		pins = "gpio54";
> +		function = "normal";
> +		output-low;
> +		bias-pull-up;
> +	};
>  };
>  
>  &uart7 {
> -- 
> 2.45.2
>
Stone Zhang March 4, 2025, 2:30 a.m. UTC | #2
On 2/27/2025 11:15 PM, Dmitry Baryshkov wrote:
> On Thu, Feb 27, 2025 at 02:54:39PM +0800, Stone 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.
>>
>> Signed-off-by: Stone Zhang <quic_stonez@quicinc.com>
>> ---
>>   arch/arm64/boot/dts/qcom/qcs8300-ride.dts | 100 ++++++++++++++++++++++
>>   1 file changed, 100 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
>> index 3e246fbc5759..e9304420c93e 100644
>> --- a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
>> +++ b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
>> @@ -22,6 +22,80 @@ aliases {
>>   	chosen {
>>   		stdout-path = "serial0:115200n8";
>>   	};
>> +
>> +	vreg_conn_1p8: vreg-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: vreg-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>;
>> +	};
>> +
>> +	wcn6855-pmu {
>> +		compatible = "qcom,wcn6855-pmu";
>> +
>> +		pinctrl-names = "default";
>> +		pinctrl-0 = <&wlan_en_state>;
>> +
>> +		vddaon-supply = <&vreg_conn_pa>;
>> +		vddpmu-supply = <&vreg_conn_1p8>;
> 
> This is very incomplete. Compare it to sa8775p-ride.dtsi.
It will be completed according to the supply voltage defined in the 
power sequence driver.
> 
>> +
>> +		wlan-enable-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>;
> 
> Missing bt-enable-gpios and corresponding bluetooth node.
The BT-related changes will be placed in another change submission.
> 
>> +
>> +		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_1p7: ldo7 {
>> +				regulator-name = "vreg_pmu_rfa_1p7";
>> +			};
>> +
>> +			vreg_pmu_pcie_0p9: ldo8 {
>> +				regulator-name = "vreg_pmu_pcie_0p9";
>> +			};
>> +
>> +			vreg_pmu_pcie_1p8: ldo9 {
>> +				regulator-name = "vreg_pmu_pcie_1p8";
>> +			};
>> +		};
>> +	};
>>   };
>>   
>>   &apps_rsc {
>> @@ -337,6 +411,25 @@ &pcie1_phy {
>>   	status = "okay";
>>   };
>>   
>> +&pcieport0 {
>> +	wifi@0 {
>> +		compatible = "pci17cb,1103";
>> +		reg = <0x10000 0x0 0x0 0x0 0x0>;
>> +
>> +		qcom,ath11k-calibration-variant = "QC_QCS8300_Ride";
>> +
>> +		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>;
>> +		vddrfa1p7-supply = <&vreg_pmu_rfa_1p7>;
>> +		vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
>> +		vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
>> +	};
>> +};
>> +
>>   &qupv3_id_0 {
>>   	status = "okay";
>>   };
>> @@ -446,6 +539,13 @@ perst-pins {
>>   			bias-pull-down;
>>   		};
>>   	};
>> +
>> +	wlan_en_state: wlan-en-state {
>> +		pins = "gpio54";
>> +		function = "normal";
>> +		output-low;
>> +		bias-pull-up;
>> +	};
>>   };
>>   
>>   &uart7 {
>> -- 
>> 2.45.2
>>
>
Bjorn Andersson March 4, 2025, 4 a.m. UTC | #3
On Tue, Mar 04, 2025 at 10:30:15AM +0800, Stone Zhang wrote:
> 
> 
> On 2/27/2025 11:15 PM, Dmitry Baryshkov wrote:
> > On Thu, Feb 27, 2025 at 02:54:39PM +0800, Stone 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.
> > > 
> > > Signed-off-by: Stone Zhang <quic_stonez@quicinc.com>
> > > ---
> > >   arch/arm64/boot/dts/qcom/qcs8300-ride.dts | 100 ++++++++++++++++++++++
> > >   1 file changed, 100 insertions(+)
> > > 
> > > diff --git a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
> > > index 3e246fbc5759..e9304420c93e 100644
> > > --- a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
> > > +++ b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
> > > @@ -22,6 +22,80 @@ aliases {
> > >   	chosen {
> > >   		stdout-path = "serial0:115200n8";
> > >   	};
> > > +
> > > +	vreg_conn_1p8: vreg-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: vreg-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>;
> > > +	};
> > > +
> > > +	wcn6855-pmu {
> > > +		compatible = "qcom,wcn6855-pmu";
> > > +
> > > +		pinctrl-names = "default";
> > > +		pinctrl-0 = <&wlan_en_state>;
> > > +
> > > +		vddaon-supply = <&vreg_conn_pa>;
> > > +		vddpmu-supply = <&vreg_conn_1p8>;
> > 
> > This is very incomplete. Compare it to sa8775p-ride.dtsi.
> It will be completed according to the supply voltage defined in the power
> sequence driver.

The Devicetree binding, not the Linux device driver, is what defines
what should go into the Devicetree source. That way the binding forms a
contract between the dtb file and any operating system reading that dtb
file.

If you ran the required "make qcom/qcs8300-ride.dtb CHECK_DTBS=1 W=1"
(short for "make dtbs_check W=1") you would have noticed that your patch
introduces the following errors:

      +arch/arm64/boot/dts/qcom/qcs8300-ride.dtb: wifi@0: 'vddrfa1p8-supply' is a required property
      +arch/arm64/boot/dts/qcom/qcs8300-ride.dtb: pinctrl@f100000: wlan-en-state: 'oneOf' conditional failed, one must be fixed:
      +arch/arm64/boot/dts/qcom/qcs8300-ride.dtb: wcn6855-pmu: 'vddio-supply' is a required property
      +arch/arm64/boot/dts/qcom/qcs8300-ride.dtb: wcn6855-pmu: 'vddpmumx-supply' is a required property
      +arch/arm64/boot/dts/qcom/qcs8300-ride.dtb: wcn6855-pmu: 'vddpmucx-supply' is a required property
      +arch/arm64/boot/dts/qcom/qcs8300-ride.dtb: wcn6855-pmu: 'vddrfa0p95-supply' is a required property
      +arch/arm64/boot/dts/qcom/qcs8300-ride.dtb: wcn6855-pmu: 'vddrfa1p3-supply' is a required property
      +arch/arm64/boot/dts/qcom/qcs8300-ride.dtb: wcn6855-pmu: 'vddrfa1p9-supply' is a required property
      +arch/arm64/boot/dts/qcom/qcs8300-ride.dtb: wcn6855-pmu: 'vddpcie1p3-supply' is a required property
      +arch/arm64/boot/dts/qcom/qcs8300-ride.dtb: wcn6855-pmu: 'vddpcie1p9-supply' is a required property

There should be 0 new errors for me to merge the patch.

Regards,
Bjorn
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
index 3e246fbc5759..e9304420c93e 100644
--- a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
+++ b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
@@ -22,6 +22,80 @@  aliases {
 	chosen {
 		stdout-path = "serial0:115200n8";
 	};
+
+	vreg_conn_1p8: vreg-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: vreg-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>;
+	};
+
+	wcn6855-pmu {
+		compatible = "qcom,wcn6855-pmu";
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&wlan_en_state>;
+
+		vddaon-supply = <&vreg_conn_pa>;
+		vddpmu-supply = <&vreg_conn_1p8>;
+
+		wlan-enable-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>;
+
+		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_1p7: ldo7 {
+				regulator-name = "vreg_pmu_rfa_1p7";
+			};
+
+			vreg_pmu_pcie_0p9: ldo8 {
+				regulator-name = "vreg_pmu_pcie_0p9";
+			};
+
+			vreg_pmu_pcie_1p8: ldo9 {
+				regulator-name = "vreg_pmu_pcie_1p8";
+			};
+		};
+	};
 };
 
 &apps_rsc {
@@ -337,6 +411,25 @@  &pcie1_phy {
 	status = "okay";
 };
 
+&pcieport0 {
+	wifi@0 {
+		compatible = "pci17cb,1103";
+		reg = <0x10000 0x0 0x0 0x0 0x0>;
+
+		qcom,ath11k-calibration-variant = "QC_QCS8300_Ride";
+
+		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>;
+		vddrfa1p7-supply = <&vreg_pmu_rfa_1p7>;
+		vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
+		vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
+	};
+};
+
 &qupv3_id_0 {
 	status = "okay";
 };
@@ -446,6 +539,13 @@  perst-pins {
 			bias-pull-down;
 		};
 	};
+
+	wlan_en_state: wlan-en-state {
+		pins = "gpio54";
+		function = "normal";
+		output-low;
+		bias-pull-up;
+	};
 };
 
 &uart7 {