diff mbox series

arm64: dts: qcom: sa8775p-ride: add WiFi/BT nodes

Message ID 20240905064817.3885953-1-quic_miaoqing@quicinc.com (mailing list archive)
State New
Headers show
Series arm64: dts: qcom: sa8775p-ride: add WiFi/BT nodes | expand

Commit Message

Miaoqing Pan Sept. 5, 2024, 6:48 a.m. UTC
Add a node for the PMU module of the WCN6855 present on the sa8775p-ride
board. Assign its LDO power outputs to the existing WiFi/Bluetooth module.

Signed-off-by: Miaoqing Pan <quic_miaoqing@quicinc.com>
---
 arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi | 119 +++++++++++++++++++++
 arch/arm64/boot/dts/qcom/sa8775p.dtsi      |   2 +-
 2 files changed, 120 insertions(+), 1 deletion(-)

Comments

Dmitry Baryshkov Sept. 5, 2024, 12:49 p.m. UTC | #1
On Thu, Sep 05, 2024 at 02:48:17PM GMT, Miaoqing Pan wrote:
> Add a node for the PMU module of the WCN6855 present on the sa8775p-ride
> board. Assign its LDO power outputs to the existing WiFi/Bluetooth module.
> 
> Signed-off-by: Miaoqing Pan <quic_miaoqing@quicinc.com>
> ---
>  arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi | 119 +++++++++++++++++++++
>  arch/arm64/boot/dts/qcom/sa8775p.dtsi      |   2 +-
>  2 files changed, 120 insertions(+), 1 deletion(-)
> 
> @@ -837,3 +939,20 @@ &usb_2_hsphy {
>  &xo_board_clk {
>  	clock-frequency = <38400000>;
>  };
> +
> +&pcieport0 {
> +	wifi@0 {
> +		compatible = "pci17cb,1101";
> +		reg = <0x10000 0x0 0x0 0x0 0x0>;
> +
> +		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>;

Please add

qcom,ath11k-calibration-variant = "name";

> +	};
> +};
Miaoqing Pan Sept. 6, 2024, 12:19 a.m. UTC | #2
On 9/5/2024 8:49 PM, Dmitry Baryshkov wrote:
> On Thu, Sep 05, 2024 at 02:48:17PM GMT, Miaoqing Pan wrote:
>> Add a node for the PMU module of the WCN6855 present on the sa8775p-ride
>> board. Assign its LDO power outputs to the existing WiFi/Bluetooth module.
>>
>> Signed-off-by: Miaoqing Pan <quic_miaoqing@quicinc.com>
>> ---
>>   arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi | 119 +++++++++++++++++++++
>>   arch/arm64/boot/dts/qcom/sa8775p.dtsi      |   2 +-
>>   2 files changed, 120 insertions(+), 1 deletion(-)
>>
>> @@ -837,3 +939,20 @@ &usb_2_hsphy {
>>   &xo_board_clk {
>>   	clock-frequency = <38400000>;
>>   };
>> +
>> +&pcieport0 {
>> +	wifi@0 {
>> +		compatible = "pci17cb,1101";
>> +		reg = <0x10000 0x0 0x0 0x0 0x0>;
>> +
>> +		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>;
> 
> Please add
> 
> qcom,ath11k-calibration-variant = "name";

No need, here the WiFi node is for 'drivers/pci/pwrctl', not ath11k driver.
Dmitry Baryshkov Sept. 6, 2024, 12:49 a.m. UTC | #3
On Fri, Sep 06, 2024 at 08:19:28AM GMT, Miaoqing Pan wrote:
> 
> 
> On 9/5/2024 8:49 PM, Dmitry Baryshkov wrote:
> > On Thu, Sep 05, 2024 at 02:48:17PM GMT, Miaoqing Pan wrote:
> > > Add a node for the PMU module of the WCN6855 present on the sa8775p-ride
> > > board. Assign its LDO power outputs to the existing WiFi/Bluetooth module.
> > > 
> > > Signed-off-by: Miaoqing Pan <quic_miaoqing@quicinc.com>
> > > ---
> > >   arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi | 119 +++++++++++++++++++++
> > >   arch/arm64/boot/dts/qcom/sa8775p.dtsi      |   2 +-
> > >   2 files changed, 120 insertions(+), 1 deletion(-)
> > > 
> > > @@ -837,3 +939,20 @@ &usb_2_hsphy {
> > >   &xo_board_clk {
> > >   	clock-frequency = <38400000>;
> > >   };
> > > +
> > > +&pcieport0 {
> > > +	wifi@0 {
> > > +		compatible = "pci17cb,1101";
> > > +		reg = <0x10000 0x0 0x0 0x0 0x0>;
> > > +
> > > +		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>;
> > 
> > Please add
> > 
> > qcom,ath11k-calibration-variant = "name";
> 
> No need, here the WiFi node is for 'drivers/pci/pwrctl', not ath11k driver.

NAK, nodes describe hardware, not drivers. And we have had enough issues
with the WCN wifi having collisions on the board-id / chip-id / etc.

Maybe we should make calibration-data required for the DT-based systems?
Kalle, WDYT?
Kalle Valo Sept. 9, 2024, 11:31 a.m. UTC | #4
Dmitry Baryshkov <dmitry.baryshkov@linaro.org> writes:

> On Fri, Sep 06, 2024 at 08:19:28AM GMT, Miaoqing Pan wrote:
>
>> 
>> 
>> On 9/5/2024 8:49 PM, Dmitry Baryshkov wrote:
>> > On Thu, Sep 05, 2024 at 02:48:17PM GMT, Miaoqing Pan wrote:
>> > > Add a node for the PMU module of the WCN6855 present on the sa8775p-ride
>> > > board. Assign its LDO power outputs to the existing WiFi/Bluetooth module.
>> > > 
>> > > Signed-off-by: Miaoqing Pan <quic_miaoqing@quicinc.com>
>> > > ---
>> > >   arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi | 119 +++++++++++++++++++++
>> > >   arch/arm64/boot/dts/qcom/sa8775p.dtsi      |   2 +-
>> > >   2 files changed, 120 insertions(+), 1 deletion(-)
>> > > 
>> > > @@ -837,3 +939,20 @@ &usb_2_hsphy {
>> > >   &xo_board_clk {
>> > >   	clock-frequency = <38400000>;
>> > >   };
>> > > +
>> > > +&pcieport0 {
>> > > +	wifi@0 {
>> > > +		compatible = "pci17cb,1101";
>> > > +		reg = <0x10000 0x0 0x0 0x0 0x0>;
>> > > +
>> > > +		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>;
>> > 
>> > Please add
>> > 
>> > qcom,ath11k-calibration-variant = "name";
>> 
>> No need, here the WiFi node is for 'drivers/pci/pwrctl', not ath11k driver.
>
> NAK, nodes describe hardware, not drivers. And we have had enough issues
> with the WCN wifi having collisions on the board-id / chip-id / etc.
>
> Maybe we should make calibration-data required for the DT-based systems?
> Kalle, WDYT?

I don't know exactly what hardware you are referring so this is just a
quick and vague answer, take all this as grain of salt.

I don't have any numbers but I'm assuming most of the
ath10k/ath11k/ath12k devices have the calibration data stored in OTP
inside the chip. There are also devices which store the calibration
outside the chip, for example in DT, but my understanding is that they
are a minority.

If we were to require that the calibration data needs to be in DT, and
not use OTP at all, that would limit the on types of devices ath11k can
be used. And I don't even know how we could easily extract the
calibration data from OTP and it would be extra work for everyone.
Honestly I don't really see any benefits from this, only negatives.
Dmitry Baryshkov Sept. 9, 2024, 11:50 a.m. UTC | #5
On Mon, 9 Sept 2024 at 14:31, Kalle Valo <kvalo@kernel.org> wrote:
>
> Dmitry Baryshkov <dmitry.baryshkov@linaro.org> writes:
>
> > On Fri, Sep 06, 2024 at 08:19:28AM GMT, Miaoqing Pan wrote:
> >
> >>
> >>
> >> On 9/5/2024 8:49 PM, Dmitry Baryshkov wrote:
> >> > On Thu, Sep 05, 2024 at 02:48:17PM GMT, Miaoqing Pan wrote:
> >> > > Add a node for the PMU module of the WCN6855 present on the sa8775p-ride
> >> > > board. Assign its LDO power outputs to the existing WiFi/Bluetooth module.
> >> > >
> >> > > Signed-off-by: Miaoqing Pan <quic_miaoqing@quicinc.com>
> >> > > ---
> >> > >   arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi | 119 +++++++++++++++++++++
> >> > >   arch/arm64/boot/dts/qcom/sa8775p.dtsi      |   2 +-
> >> > >   2 files changed, 120 insertions(+), 1 deletion(-)
> >> > >
> >> > > @@ -837,3 +939,20 @@ &usb_2_hsphy {
> >> > >   &xo_board_clk {
> >> > >          clock-frequency = <38400000>;
> >> > >   };
> >> > > +
> >> > > +&pcieport0 {
> >> > > +        wifi@0 {
> >> > > +                compatible = "pci17cb,1101";
> >> > > +                reg = <0x10000 0x0 0x0 0x0 0x0>;
> >> > > +
> >> > > +                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>;
> >> >
> >> > Please add
> >> >
> >> > qcom,ath11k-calibration-variant = "name";
> >>
> >> No need, here the WiFi node is for 'drivers/pci/pwrctl', not ath11k driver.
> >
> > NAK, nodes describe hardware, not drivers. And we have had enough issues
> > with the WCN wifi having collisions on the board-id / chip-id / etc.
> >
> > Maybe we should make calibration-data required for the DT-based systems?
> > Kalle, WDYT?
>
> I don't know exactly what hardware you are referring so this is just a
> quick and vague answer, take all this as grain of salt.
>
> I don't have any numbers but I'm assuming most of the
> ath10k/ath11k/ath12k devices have the calibration data stored in OTP
> inside the chip. There are also devices which store the calibration
> outside the chip, for example in DT, but my understanding is that they
> are a minority.

Please excuse me, the comment was about the
qcom,athNk-calibration-variant, the property used to identify the BDF
within board-2.bin. Currently it is optional, which leads to
developers omitting it.
I think it's worth making it a required property for new DT devices,
making sure that we don't have an issue with the plenty of boards
programmed to use 0xff as the board_id. Or just using the same ID, but
different BDF files.
Kalle Valo Sept. 9, 2024, 12:27 p.m. UTC | #6
Dmitry Baryshkov <dmitry.baryshkov@linaro.org> writes:

> On Mon, 9 Sept 2024 at 14:31, Kalle Valo <kvalo@kernel.org> wrote:
>
>>
>> Dmitry Baryshkov <dmitry.baryshkov@linaro.org> writes:
>>
>> > On Fri, Sep 06, 2024 at 08:19:28AM GMT, Miaoqing Pan wrote:
>> >
>> >>
>> >>
>> >> On 9/5/2024 8:49 PM, Dmitry Baryshkov wrote:
>> >> > On Thu, Sep 05, 2024 at 02:48:17PM GMT, Miaoqing Pan wrote:
>> >> > > Add a node for the PMU module of the WCN6855 present on the sa8775p-ride
>> >> > > board. Assign its LDO power outputs to the existing WiFi/Bluetooth module.
>> >> > >
>> >> > > Signed-off-by: Miaoqing Pan <quic_miaoqing@quicinc.com>
>> >> > > ---
>> >> > >   arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi | 119 +++++++++++++++++++++
>> >> > >   arch/arm64/boot/dts/qcom/sa8775p.dtsi      |   2 +-
>> >> > >   2 files changed, 120 insertions(+), 1 deletion(-)
>> >> > >
>> >> > > @@ -837,3 +939,20 @@ &usb_2_hsphy {
>> >> > >   &xo_board_clk {
>> >> > >          clock-frequency = <38400000>;
>> >> > >   };
>> >> > > +
>> >> > > +&pcieport0 {
>> >> > > +        wifi@0 {
>> >> > > +                compatible = "pci17cb,1101";
>> >> > > +                reg = <0x10000 0x0 0x0 0x0 0x0>;
>> >> > > +
>> >> > > +                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>;
>> >> >
>> >> > Please add
>> >> >
>> >> > qcom,ath11k-calibration-variant = "name";
>> >>
>> >> No need, here the WiFi node is for 'drivers/pci/pwrctl', not ath11k driver.
>> >
>> > NAK, nodes describe hardware, not drivers. And we have had enough issues
>> > with the WCN wifi having collisions on the board-id / chip-id / etc.
>> >
>> > Maybe we should make calibration-data required for the DT-based systems?
>> > Kalle, WDYT?
>>
>> I don't know exactly what hardware you are referring so this is just a
>> quick and vague answer, take all this as grain of salt.
>>
>> I don't have any numbers but I'm assuming most of the
>> ath10k/ath11k/ath12k devices have the calibration data stored in OTP
>> inside the chip. There are also devices which store the calibration
>> outside the chip, for example in DT, but my understanding is that they
>> are a minority.
>
> Please excuse me, the comment was about the
> qcom,athNk-calibration-variant

Ah :) In case you were wondering, I was talking above about
qcom,ath10k-calibration-data property which is the full calibration
data, board files are not used at all in that case. So please ignore all
that I said.

> the property used to identify the BDF within board-2.bin. Currently
> it is optional, which leads to developers omitting it. I think it's
> worth making it a required property for new DT devices, making sure
> that we don't have an issue with the plenty of boards programmed to
> use 0xff as the board_id. Or just using the same ID, but different BDF
> files.

This is also a quick answer, the merge window is getting close and we
are finalising the ath12k MLO support so not much free time right now.

Some chipsets do provide unique information for the ath10k/ath11k/ath12k
driver to choose the correct board file, but I guess they are mostly
mobile chipsets. Though not even all mobile chipsets provide that, as
you are painfully aware. For AP chipsets it seems to be a rule that they
don't provide unique information to choose the board file and a variant
field is always needed. So I think there is a point in your proposal.

Backward compatibility is important but I think we already handle that,
at least in ath11k, as it's first try with variant field and then
without variant. But this needs more investigation on both ath11k and
ath12k. I hope for ath10k we would not need to touch the driver anymore.

Can we revisit this in few weeks, after MLO is in better shape, and
maybe you could start a new thread?
Dmitry Baryshkov Sept. 9, 2024, 12:57 p.m. UTC | #7
On Mon, Sep 09, 2024 at 03:27:48PM GMT, Kalle Valo wrote:
> Dmitry Baryshkov <dmitry.baryshkov@linaro.org> writes:
> 
> > On Mon, 9 Sept 2024 at 14:31, Kalle Valo <kvalo@kernel.org> wrote:
> >
> >>
> >> Dmitry Baryshkov <dmitry.baryshkov@linaro.org> writes:
> >>
> >> > On Fri, Sep 06, 2024 at 08:19:28AM GMT, Miaoqing Pan wrote:
> >> >
> >> >>
> >> >>
> >> >> On 9/5/2024 8:49 PM, Dmitry Baryshkov wrote:
> >> >> > On Thu, Sep 05, 2024 at 02:48:17PM GMT, Miaoqing Pan wrote:
> >> >> > > Add a node for the PMU module of the WCN6855 present on the sa8775p-ride
> >> >> > > board. Assign its LDO power outputs to the existing WiFi/Bluetooth module.
> >> >> > >
> >> >> > > Signed-off-by: Miaoqing Pan <quic_miaoqing@quicinc.com>
> >> >> > > ---
> >> >> > >   arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi | 119 +++++++++++++++++++++
> >> >> > >   arch/arm64/boot/dts/qcom/sa8775p.dtsi      |   2 +-
> >> >> > >   2 files changed, 120 insertions(+), 1 deletion(-)
> >> >> > >
> >> >> > > @@ -837,3 +939,20 @@ &usb_2_hsphy {
> >> >> > >   &xo_board_clk {
> >> >> > >          clock-frequency = <38400000>;
> >> >> > >   };
> >> >> > > +
> >> >> > > +&pcieport0 {
> >> >> > > +        wifi@0 {
> >> >> > > +                compatible = "pci17cb,1101";
> >> >> > > +                reg = <0x10000 0x0 0x0 0x0 0x0>;
> >> >> > > +
> >> >> > > +                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>;
> >> >> >
> >> >> > Please add
> >> >> >
> >> >> > qcom,ath11k-calibration-variant = "name";
> >> >>
> >> >> No need, here the WiFi node is for 'drivers/pci/pwrctl', not ath11k driver.
> >> >
> >> > NAK, nodes describe hardware, not drivers. And we have had enough issues
> >> > with the WCN wifi having collisions on the board-id / chip-id / etc.
> >> >
> >> > Maybe we should make calibration-data required for the DT-based systems?
> >> > Kalle, WDYT?
> >>
> >> I don't know exactly what hardware you are referring so this is just a
> >> quick and vague answer, take all this as grain of salt.
> >>
> >> I don't have any numbers but I'm assuming most of the
> >> ath10k/ath11k/ath12k devices have the calibration data stored in OTP
> >> inside the chip. There are also devices which store the calibration
> >> outside the chip, for example in DT, but my understanding is that they
> >> are a minority.
> >
> > Please excuse me, the comment was about the
> > qcom,athNk-calibration-variant
> 
> Ah :) In case you were wondering, I was talking above about
> qcom,ath10k-calibration-data property which is the full calibration
> data, board files are not used at all in that case. So please ignore all
> that I said.
> 
> > the property used to identify the BDF within board-2.bin. Currently
> > it is optional, which leads to developers omitting it. I think it's
> > worth making it a required property for new DT devices, making sure
> > that we don't have an issue with the plenty of boards programmed to
> > use 0xff as the board_id. Or just using the same ID, but different BDF
> > files.
> 
> This is also a quick answer, the merge window is getting close and we
> are finalising the ath12k MLO support so not much free time right now.
> 
> Some chipsets do provide unique information for the ath10k/ath11k/ath12k
> driver to choose the correct board file, but I guess they are mostly
> mobile chipsets. Though not even all mobile chipsets provide that, as
> you are painfully aware. For AP chipsets it seems to be a rule that they
> don't provide unique information to choose the board file and a variant
> field is always needed. So I think there is a point in your proposal.

Ack, thanks :-)

> 
> Backward compatibility is important but I think we already handle that,
> at least in ath11k, as it's first try with variant field and then
> without variant. But this needs more investigation on both ath11k and
> ath12k. I hope for ath10k we would not need to touch the driver anymore.
> 
> Can we revisit this in few weeks, after MLO is in better shape, and
> maybe you could start a new thread?

Sure. Let's agree that I'll send a patch after -rc1, if I don't forget
about it.
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
index 0c1b21def4b6..e5977dea1594 100644
--- a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
+++ b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
@@ -27,6 +27,83 @@  aliases {
 	chosen {
 		stdout-path = "serial0:115200n8";
 	};
+
+	vreg_conn_1p8: vreg_conn_1p8 {
+		compatible = "regulator-fixed";
+		regulator-name = "vreg_conn_1p8";
+		startup-delay-us = <4000>;
+		enable-active-high;
+		gpio = <&pmm8654au_1_gpios 4 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 = <&pmm8654au_1_gpios 6 GPIO_ACTIVE_HIGH>;
+	};
+
+	wcn6855-pmu {
+		compatible = "qcom,qca6390-pmu";
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&bt_en_state>, <&wlan_en_state>;
+
+		vddio-supply = <&vreg_conn_pa>;
+		vddaon-supply = <&vreg_l2c>;
+		vddpmu-supply = <&vreg_conn_1p8>;
+		vddrfa0p95-supply = <&vreg_l2c>;
+		vddrfa1p3-supply = <&vreg_l6e>;
+		vddrfa1p9-supply = <&vreg_s5a>;
+		vddpcie1p3-supply = <&vreg_l6e>;
+		vddpcie1p9-supply = <&vreg_s5a>;
+
+		bt-enable-gpios = <&pmm8654au_1_gpios 8 GPIO_ACTIVE_HIGH>;
+		wlan-enable-gpios = <&pmm8654au_1_gpios 7 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 {
@@ -453,6 +530,20 @@  &pmm8654au_1_gpios {
 			  "USB2_PWR_EN",
 			  "USB2_FAULT";
 
+	wlan_en_state: wlan-en-state {
+		pins = "gpio7";
+		function = "normal";
+		output-low;
+		bias-pull-down;
+	};
+
+	bt_en_state: bt-en-state {
+		pins = "gpio8";
+		function = "normal";
+		output-low;
+		bias-pull-down;
+	};
+
 	usb2_en_state: usb2-en-state {
 		pins = "gpio9";
 		function = "normal";
@@ -744,6 +835,17 @@  &uart17 {
 	pinctrl-0 = <&qup_uart17_default>;
 	pinctrl-names = "default";
 	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>;
+	};
 };
 
 &ufs_mem_hc {
@@ -837,3 +939,20 @@  &usb_2_hsphy {
 &xo_board_clk {
 	clock-frequency = <38400000>;
 };
+
+&pcieport0 {
+	wifi@0 {
+		compatible = "pci17cb,1101";
+		reg = <0x10000 0x0 0x0 0x0 0x0>;
+
+		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>;
+	};
+};
diff --git a/arch/arm64/boot/dts/qcom/sa8775p.dtsi b/arch/arm64/boot/dts/qcom/sa8775p.dtsi
index e8dbc8d820a6..8d42b5e9c7d6 100644
--- a/arch/arm64/boot/dts/qcom/sa8775p.dtsi
+++ b/arch/arm64/boot/dts/qcom/sa8775p.dtsi
@@ -5570,7 +5570,7 @@  pcie0: pcie@1c00000 {
 
 		status = "disabled";
 
-		pcie@0 {
+		pcieport0: pcie@0 {
 			device_type = "pci";
 			reg = <0x0 0x0 0x0 0x0 0x0>;
 			bus-range = <0x01 0xff>;