Add a node for the PMU module of the WCN6855 present on the qcs615
board. Assign its LDO power outputs to the existing WiFi/BT module.
This patch depends on below patch series:
- base
https://lore.kernel.org/all/20241104-add_initial_support_for_qcs615-v5-0-9dde8d7b80b0@quicinc.com/
- pmic
https://lore.kernel.org/all/20241202-adds-spmi-pmic-peripherals-for-qcs615-v6-0-bdd306b4940d@quicinc.com/
- pci
https://lore.kernel.org/all/20241122023314.1616353-1-quic_ziyuzhan@quicinc.com/
Signed-off-by: Yu Zhang(Yuriy) <quic_yuzha@quicinc.com>
diff --git a/arch/arm64/boot/dts/qcom/qcs615-ride.dts b/arch/arm64/boot/dts/qcom/qcs615-ride.dts
index 66f99cd860b9..80ae02ab2a9b 100644
--- a/arch/arm64/boot/dts/qcom/qcs615-ride.dts
+++ b/arch/arm64/boot/dts/qcom/qcs615-ride.dts
@@ -14,6 +14,7 @@ / {
aliases {
serial0 = &uart0;
+ serial1 = &uart7;
};
chosen {
@@ -33,6 +34,83 @@ xo_board_clk: xo-board-clk {
#clock-cells = <0>;
};
};
+
+ vreg_conn_1p8: vreg_conn_1p8 {
+ compatible = "regulator-fixed";
+ regulator-name = "vreg_conn_1p8";
+ startup-delay-us = <4000>;
+ enable-active-high;
+ gpio = <&pm8150_gpios 1 GPIO_ACTIVE_HIGH>;
+ };
+
+ vreg_conn_pa: vreg_conn_pa {
+ compatible = "regulator-fixed";
+ regulator-name = "vreg_conn_pa";
+ startup-delay-us = <4000>;
+ enable-active-high;
+ gpio = <&pm8150_gpios 6 GPIO_ACTIVE_HIGH>;
+ };
+
+ wcn6855-pmu {
+ compatible = "qcom,wcn6855-pmu";
+
+ pinctrl-0 = <&bt_en_state>, <&wlan_en_state>;
+ pinctrl-names = "default";
+
+ vddio-supply = <&vreg_conn_pa>;
+ vddaon-supply = <&vreg_s5a>;
+ vddpmu-supply = <&vreg_conn_1p8>;
+ vddrfa0p95-supply = <&vreg_s5a>;
+ vddrfa1p3-supply = <&vreg_s6a>;
+ vddrfa1p9-supply = <&vreg_l15a>;
+ vddpcie1p3-supply = <&vreg_s6a>;
+ vddpcie1p9-supply = <&vreg_l15a>;
+
+ bt-enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
+ wlan-enable-gpios = <&tlmm 98 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 {
@@ -231,10 +309,33 @@ &pcie_phy {
status = "okay";
};
+&pcieport0 {
+ wifi@0 {
+ compatible = "pci17cb,1103";
+ reg = <0x10000 0x0 0x0 0x0 0x0>;
+
+ qcom,ath11k-calibration-variant = "QC_QCS615_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";
};
+&qupv3_id_1 {
+ status = "okay";
+};
+
&rpmhcc {
clocks = <&xo_board_clk>;
};
@@ -262,12 +363,42 @@ wake-pins {
bias-pull-up;
};
};
+
+ wlan_en_state: wlan-en-state {
+ pins = "gpio98";
+ function = "gpio";
+ drive-strength = <16>;
+ output-high;
+ bias-pull-up;
+ };
+
+ bt_en_state: bt-en-state {
+ pins = "gpio85";
+ function = "gpio";
+ output-low;
+ bias-pull-down;
+ };
};
&uart0 {
status = "okay";
};
+&uart7 {
+ status = "okay";
+
+ bluetooth {
+ compatible = "qcom,wcn6855-bt";
+
+ vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+ vddaon-supply = <&vreg_pmu_aon_0p59>;
+ vddbtcmx-supply = <&vreg_pmu_btcmx_0p85>;
+ vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+ vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+ vddrfa1p7-supply = <&vreg_pmu_rfa_1p7>;
+ };
+};
+
&watchdog {
clocks = <&sleep_clk>;
};
diff --git a/arch/arm64/boot/dts/qcom/qcs615.dtsi b/arch/arm64/boot/dts/qcom/qcs615.dtsi
index 808e42f799a6..8465e96e0e8e 100644
--- a/arch/arm64/boot/dts/qcom/qcs615.dtsi
+++ b/arch/arm64/boot/dts/qcom/qcs615.dtsi
@@ -819,7 +819,7 @@ opp-8000000 {
};
};
- pcie@0 {
+ pcieport0: pcie@0 {
device_type = "pci";
reg = <0x0 0x0 0x0 0x0 0x0>;
bus-range = <0x01 0xff>;
--
2.34.1
On 3.12.2024 7:03 AM, Yu Zhang(Yuriy) wrote:
> Add a node for the PMU module of the WCN6855 present on the qcs615
> board. Assign its LDO power outputs to the existing WiFi/BT module.
>
subject:
arm64: dts: qcom: qcs615-ride: ....
[...]
> +
> + vreg_conn_1p8: vreg_conn_1p8 {
> + compatible = "regulator-fixed";
> + regulator-name = "vreg_conn_1p8";
> + startup-delay-us = <4000>;
> + enable-active-high;
> + gpio = <&pm8150_gpios 1 GPIO_ACTIVE_HIGH>;
> + };
> +
> + vreg_conn_pa: vreg_conn_pa {
> + compatible = "regulator-fixed";
> + regulator-name = "vreg_conn_pa";
> + startup-delay-us = <4000>;
> + enable-active-high;
> + gpio = <&pm8150_gpios 6 GPIO_ACTIVE_HIGH>;
> + };
Are any of these boot-on?
> +
> + wcn6855-pmu {
> + compatible = "qcom,wcn6855-pmu";
> +
> + pinctrl-0 = <&bt_en_state>, <&wlan_en_state>;
> + pinctrl-names = "default";
> +
> + vddio-supply = <&vreg_conn_pa>;
> + vddaon-supply = <&vreg_s5a>;
> + vddpmu-supply = <&vreg_conn_1p8>;
> + vddrfa0p95-supply = <&vreg_s5a>;
> + vddrfa1p3-supply = <&vreg_s6a>;
> + vddrfa1p9-supply = <&vreg_l15a>;
> + vddpcie1p3-supply = <&vreg_s6a>;
> + vddpcie1p9-supply = <&vreg_l15a>;
> +
> + bt-enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
> + wlan-enable-gpios = <&tlmm 98 GPIO_ACTIVE_HIGH>;
Please move these properties above supplies, to match the style in
other recent device trees
[...]
> &rpmhcc {
> clocks = <&xo_board_clk>;
> };
> @@ -262,12 +363,42 @@ wake-pins {
> bias-pull-up;
> };
> };
> +
> + wlan_en_state: wlan-en-state {
> + pins = "gpio98";
> + function = "gpio";
> + drive-strength = <16>;
> + output-high;
> + bias-pull-up;
> + };
> +
> + bt_en_state: bt-en-state {
> + pins = "gpio85";
> + function = "gpio";
> + output-low;
> + bias-pull-down;
> + };
These should be sorted by gpio idx
Konrad
On 12/6/2024 1:14 AM, Konrad Dybcio wrote:
> On 3.12.2024 7:03 AM, Yu Zhang(Yuriy) wrote:
>> Add a node for the PMU module of the WCN6855 present on the qcs615
>> board. Assign its LDO power outputs to the existing WiFi/BT module.
>>
>
> subject:
>
> arm64: dts: qcom: qcs615-ride: ....
>
> [...]
>
>> +
>> + vreg_conn_1p8: vreg_conn_1p8 {
>> + compatible = "regulator-fixed";
>> + regulator-name = "vreg_conn_1p8";
>> + startup-delay-us = <4000>;
>> + enable-active-high;
>> + gpio = <&pm8150_gpios 1 GPIO_ACTIVE_HIGH>;
>> + };
>> +
>> + vreg_conn_pa: vreg_conn_pa {
>> + compatible = "regulator-fixed";
>> + regulator-name = "vreg_conn_pa";
>> + startup-delay-us = <4000>;
>> + enable-active-high;
>> + gpio = <&pm8150_gpios 6 GPIO_ACTIVE_HIGH>;
>> + };
>
> Are any of these boot-on?
>
Yes, these are used wcn6855-pmu:
vddio-supply = <&vreg_conn_pa>;
vddpmu-supply = <&vreg_conn_1p8>;
>> +
>> + wcn6855-pmu {
>> + compatible = "qcom,wcn6855-pmu";
>> +
>> + pinctrl-0 = <&bt_en_state>, <&wlan_en_state>;
>> + pinctrl-names = "default";
>> +
>> + vddio-supply = <&vreg_conn_pa>;
>> + vddaon-supply = <&vreg_s5a>;
>> + vddpmu-supply = <&vreg_conn_1p8>;
>> + vddrfa0p95-supply = <&vreg_s5a>;
>> + vddrfa1p3-supply = <&vreg_s6a>;
>> + vddrfa1p9-supply = <&vreg_l15a>;
>> + vddpcie1p3-supply = <&vreg_s6a>;
>> + vddpcie1p9-supply = <&vreg_l15a>;
>> +
>> + bt-enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
>> + wlan-enable-gpios = <&tlmm 98 GPIO_ACTIVE_HIGH>;
>
> Please move these properties above supplies, to match the style in
> other recent device trees
>
> [...]
>
>> &rpmhcc {
>> clocks = <&xo_board_clk>;
>> };
>> @@ -262,12 +363,42 @@ wake-pins {
>> bias-pull-up;
>> };
>> };
>> +
>> + wlan_en_state: wlan-en-state {
>> + pins = "gpio98";
>> + function = "gpio";
>> + drive-strength = <16>;
>> + output-high;
>> + bias-pull-up;
>> + };
>> +
>> + bt_en_state: bt-en-state {
>> + pins = "gpio85";
>> + function = "gpio";
>> + output-low;
>> + bias-pull-down;
>> + };
>
> These should be sorted by gpio idx
>
> Konrad
On 6.12.2024 4:22 AM, Yu Zhang (Yuriy) wrote:
>
>
> On 12/6/2024 1:14 AM, Konrad Dybcio wrote:
>> On 3.12.2024 7:03 AM, Yu Zhang(Yuriy) wrote:
>>> Add a node for the PMU module of the WCN6855 present on the qcs615
>>> board. Assign its LDO power outputs to the existing WiFi/BT module.
>>>
>>
>> subject:
>>
>> arm64: dts: qcom: qcs615-ride: ....
>>
>> [...]
>>
>>> +
>>> + vreg_conn_1p8: vreg_conn_1p8 {
>>> + compatible = "regulator-fixed";
>>> + regulator-name = "vreg_conn_1p8";
>>> + startup-delay-us = <4000>;
>>> + enable-active-high;
>>> + gpio = <&pm8150_gpios 1 GPIO_ACTIVE_HIGH>;
>>> + };
>>> +
>>> + vreg_conn_pa: vreg_conn_pa {
>>> + compatible = "regulator-fixed";
>>> + regulator-name = "vreg_conn_pa";
>>> + startup-delay-us = <4000>;
>>> + enable-active-high;
>>> + gpio = <&pm8150_gpios 6 GPIO_ACTIVE_HIGH>;
>>> + };
>>
>> Are any of these boot-on?
>>
> Yes, these are used wcn6855-pmu:
> vddio-supply = <&vreg_conn_pa>;
> vddpmu-supply = <&vreg_conn_1p8>;
What i meant is, whether these regulators are enabled at boot
time (i.e. without software intervention). If that's the case,
`regulator-boot-on;` should be added
Konrad
On 12/6/2024 8:16 PM, Konrad Dybcio wrote:
> On 6.12.2024 4:22 AM, Yu Zhang (Yuriy) wrote:
>>
>>
>> On 12/6/2024 1:14 AM, Konrad Dybcio wrote:
>>> On 3.12.2024 7:03 AM, Yu Zhang(Yuriy) wrote:
>>>> Add a node for the PMU module of the WCN6855 present on the qcs615
>>>> board. Assign its LDO power outputs to the existing WiFi/BT module.
>>>>
>>>
>>> subject:
>>>
>>> arm64: dts: qcom: qcs615-ride: ....
>>>
>>> [...]
>>>
>>>> +
>>>> + vreg_conn_1p8: vreg_conn_1p8 {
>>>> + compatible = "regulator-fixed";
>>>> + regulator-name = "vreg_conn_1p8";
>>>> + startup-delay-us = <4000>;
>>>> + enable-active-high;
>>>> + gpio = <&pm8150_gpios 1 GPIO_ACTIVE_HIGH>;
>>>> + };
>>>> +
>>>> + vreg_conn_pa: vreg_conn_pa {
>>>> + compatible = "regulator-fixed";
>>>> + regulator-name = "vreg_conn_pa";
>>>> + startup-delay-us = <4000>;
>>>> + enable-active-high;
>>>> + gpio = <&pm8150_gpios 6 GPIO_ACTIVE_HIGH>;
>>>> + };
>>>
>>> Are any of these boot-on?
>>>
>> Yes, these are used wcn6855-pmu:
>> vddio-supply = <&vreg_conn_pa>;
>> vddpmu-supply = <&vreg_conn_1p8>;
>
> What i meant is, whether these regulators are enabled at boot
> time (i.e. without software intervention). If that's the case,
> `regulator-boot-on;` should be added
>
No need regulator-boot-on, it was triggered by the
software(pci_pwrctl_pwrseq_driver).
> Konrad
Yu
On Tue, Dec 03, 2024 at 02:03:18PM +0800, Yu Zhang(Yuriy) wrote: > Add a node for the PMU module of the WCN6855 present on the qcs615 > board. Assign its LDO power outputs to the existing WiFi/BT module. > > This patch depends on below patch series: > - base > https://lore.kernel.org/all/20241104-add_initial_support_for_qcs615-v5-0-9dde8d7b80b0@quicinc.com/ > - pmic > https://lore.kernel.org/all/20241202-adds-spmi-pmic-peripherals-for-qcs615-v6-0-bdd306b4940d@quicinc.com/ > - pci > https://lore.kernel.org/all/20241122023314.1616353-1-quic_ziyuzhan@quicinc.com/ This doesn't belong to the commit message. The list of dependncies makes no sense once they land upstream. Please switch to the b4 tool, use b4 prep --edit-cover to list such info (it will be automatically added to a non-commit part of the email) and b4 prep --edit-deps to list dependncies in a machine-readable format. The patch itself looks good to me. > > Signed-off-by: Yu Zhang(Yuriy) <quic_yuzha@quicinc.com> > > -- With best wishes Dmitry
© 2016 - 2026 Red Hat, Inc.