Message ID | 20241023060352.605019-7-quic_rajkbhag@quicinc.com (mailing list archive) |
---|---|
State | Not Applicable |
Delegated to: | Kalle Valo |
Headers | show |
Series | wifi: ath12k: Add WSI node for QCN9274 in RDP433 for MLO | expand |
On 23/10/2024 08:03, Raj Kumar Bhagat wrote: > The RDP433 is a Qualcomm Reference Design Platform based on the > IPQ9574. It has three QCN9274 WiFi devices connected to PCIe1, PCIe2, > and PCIe3. These devices are also connected among themselves via > WSI connection. This WSI connection is essential to exchange control > information among these devices > > The WSI connection in RDP433 is represented below: > > +-------+ +-------+ +-------+ > | pcie2 | | pcie3 | | pcie1 | > | | | | | | > +----->| wsi |------->| wsi |------->| wsi |-----+ > | | idx 0 | | idx 1 | | idx 2 | | > | +-------+ +-------+ +-------+ | > +------------------------------------------------------+ > > Based on the above, the WSI properties for QCN9274 at pcie2 are: > qcom,wsi-group-id = 0 > qcom,wsi-index = 0 > qcom,wsi-num-devices = 3; > > Hence, add WiFi nodes with WSI properties for all three QCN9274 > devices connected to RDP433. > > Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com> > --- > arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts | 62 ++++++++++++++++++++- > 1 file changed, 61 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts > index 165ebbb59511..2241e20ad42a 100644 > --- a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts > +++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts > @@ -3,7 +3,7 @@ > * IPQ9574 RDP433 board device tree source > * > * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved. > - * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. > + * Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved. > */ > > /dts-v1/; > @@ -27,6 +27,26 @@ &pcie1 { > perst-gpios = <&tlmm 26 GPIO_ACTIVE_LOW>; > wake-gpios = <&tlmm 27 GPIO_ACTIVE_LOW>; > status = "okay"; > + > + pcie@0 { > + device_type = "pci"; > + reg = <0x0 0x0 0x0 0x0 0x0>; > + #address-cells = <3>; > + #size-cells = <2>; > + ranges; > + > + wifi1@0 { > + compatible = "pci17cb,1109"; > + reg = <0x0 0x0 0x0 0x0 0x0>; > + status = "okay"; Why? > + > + wsi { > + qcom,wsi-group-id = <0>; So all devices have the same group id? No other group id? So hard-code it at 0? > + qcom,wsi-index = <2>; > + qcom,wsi-num-devices = <3>; All this looks opposite how we organize usually DTS. Instead of phandles you pass some sort of indices. Instead of re-using some existing properties for remoteproc-related stuff, you add three more. Best regards, Krzysztof
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts index 165ebbb59511..2241e20ad42a 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts +++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts @@ -3,7 +3,7 @@ * IPQ9574 RDP433 board device tree source * * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved. */ /dts-v1/; @@ -27,6 +27,26 @@ &pcie1 { perst-gpios = <&tlmm 26 GPIO_ACTIVE_LOW>; wake-gpios = <&tlmm 27 GPIO_ACTIVE_LOW>; status = "okay"; + + pcie@0 { + device_type = "pci"; + reg = <0x0 0x0 0x0 0x0 0x0>; + #address-cells = <3>; + #size-cells = <2>; + ranges; + + wifi1@0 { + compatible = "pci17cb,1109"; + reg = <0x0 0x0 0x0 0x0 0x0>; + status = "okay"; + + wsi { + qcom,wsi-group-id = <0>; + qcom,wsi-index = <2>; + qcom,wsi-num-devices = <3>; + }; + }; + }; }; &pcie2_phy { @@ -40,6 +60,26 @@ &pcie2 { perst-gpios = <&tlmm 29 GPIO_ACTIVE_LOW>; wake-gpios = <&tlmm 30 GPIO_ACTIVE_LOW>; status = "okay"; + + pcie@0 { + device_type = "pci"; + reg = <0x0 0x0 0x0 0x0 0x0>; + #address-cells = <3>; + #size-cells = <2>; + ranges; + + wifi2@0 { + compatible = "pci17cb,1109"; + reg = <0x0 0x0 0x0 0x0 0x0>; + status = "okay"; + + wsi { + qcom,wsi-group-id = <0>; + qcom,wsi-index = <0>; + qcom,wsi-num-devices = <3>; + }; + }; + }; }; &pcie3_phy { @@ -53,6 +93,26 @@ &pcie3 { perst-gpios = <&tlmm 32 GPIO_ACTIVE_LOW>; wake-gpios = <&tlmm 33 GPIO_ACTIVE_LOW>; status = "okay"; + + pcie@0 { + device_type = "pci"; + reg = <0x0 0x0 0x0 0x0 0x0>; + #address-cells = <3>; + #size-cells = <2>; + ranges; + + wifi3@0 { + compatible = "pci17cb,1109"; + reg = <0x0 0x0 0x0 0x0 0x0>; + status = "okay"; + + wsi { + qcom,wsi-group-id = <0>; + qcom,wsi-index = <1>; + qcom,wsi-num-devices = <3>; + }; + }; + }; }; &sdhc_1 {
The RDP433 is a Qualcomm Reference Design Platform based on the IPQ9574. It has three QCN9274 WiFi devices connected to PCIe1, PCIe2, and PCIe3. These devices are also connected among themselves via WSI connection. This WSI connection is essential to exchange control information among these devices The WSI connection in RDP433 is represented below: +-------+ +-------+ +-------+ | pcie2 | | pcie3 | | pcie1 | | | | | | | +----->| wsi |------->| wsi |------->| wsi |-----+ | | idx 0 | | idx 1 | | idx 2 | | | +-------+ +-------+ +-------+ | +------------------------------------------------------+ Based on the above, the WSI properties for QCN9274 at pcie2 are: qcom,wsi-group-id = 0 qcom,wsi-index = 0 qcom,wsi-num-devices = 3; Hence, add WiFi nodes with WSI properties for all three QCN9274 devices connected to RDP433. Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com> --- arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts | 62 ++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-)