* Re: [PATCH v3 01/12] dt: bindings: net: add bindings of WCN6750 for ath11k [not found] ` <20220328060937.16738-2-quic_mpubbise@quicinc.com> @ 2022-03-28 6:13 ` Manikanta Pubbisetty 2022-03-28 9:18 ` Kalle Valo 0 siblings, 1 reply; 9+ messages in thread From: Manikanta Pubbisetty @ 2022-03-28 6:13 UTC (permalink / raw) To: ath11k; +Cc: linux-wireless, devicetree, Rob Herring Sorry for top posting, missed to add device tree mail aliases. Adding them now. On 3/28/2022 11:39 AM, Manikanta Pubbisetty wrote: > WCN6750 is the WLAN chip on Qualcomm Snapdragon SoC SC7280; > Though being a PCIe based solution, it is not attached to > the APSS processor (Application Processor SubSystem), it is > instead attached to another tiny processor called WPSS Q6 > processor (Wireless Processor SubSystem) on the SC7280 MSM, > where the WLAN firmware runs, and it is the WLAN firmware > running on the Q6 processor which enumerates WCN6750, as a > result APPS processor would never know such a device being > present in the system and would not detect the WCN6750 > hardware unless and otherwise WCN6750 is registered as a > platform device. This is the reason behind adding WCN6750 > WLAN node in the device tree. > > Add WCN6750 wireless driver support, its based on ath11k driver. > > Signed-off-by: Manikanta Pubbisetty <quic_mpubbise@quicinc.com> > --- > .../bindings/net/wireless/qcom,ath11k.yaml | 361 ++++++++++++------ > 1 file changed, 252 insertions(+), 109 deletions(-) > > diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml > index cdf7b873b419..67104d69fd72 100644 > --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml > +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml > @@ -20,120 +20,17 @@ properties: > enum: > - qcom,ipq8074-wifi > - qcom,ipq6018-wifi > + - qcom,wcn6750-wifi > > reg: > maxItems: 1 > > interrupts: > - items: > - - description: misc-pulse1 interrupt events > - - description: misc-latch interrupt events > - - description: sw exception interrupt events > - - description: watchdog interrupt events > - - description: interrupt event for ring CE0 > - - description: interrupt event for ring CE1 > - - description: interrupt event for ring CE2 > - - description: interrupt event for ring CE3 > - - description: interrupt event for ring CE4 > - - description: interrupt event for ring CE5 > - - description: interrupt event for ring CE6 > - - description: interrupt event for ring CE7 > - - description: interrupt event for ring CE8 > - - description: interrupt event for ring CE9 > - - description: interrupt event for ring CE10 > - - description: interrupt event for ring CE11 > - - description: interrupt event for ring host2wbm-desc-feed > - - description: interrupt event for ring host2reo-re-injection > - - description: interrupt event for ring host2reo-command > - - description: interrupt event for ring host2rxdma-monitor-ring3 > - - description: interrupt event for ring host2rxdma-monitor-ring2 > - - description: interrupt event for ring host2rxdma-monitor-ring1 > - - description: interrupt event for ring reo2ost-exception > - - description: interrupt event for ring wbm2host-rx-release > - - description: interrupt event for ring reo2host-status > - - description: interrupt event for ring reo2host-destination-ring4 > - - description: interrupt event for ring reo2host-destination-ring3 > - - description: interrupt event for ring reo2host-destination-ring2 > - - description: interrupt event for ring reo2host-destination-ring1 > - - description: interrupt event for ring rxdma2host-monitor-destination-mac3 > - - description: interrupt event for ring rxdma2host-monitor-destination-mac2 > - - description: interrupt event for ring rxdma2host-monitor-destination-mac1 > - - description: interrupt event for ring ppdu-end-interrupts-mac3 > - - description: interrupt event for ring ppdu-end-interrupts-mac2 > - - description: interrupt event for ring ppdu-end-interrupts-mac1 > - - description: interrupt event for ring rxdma2host-monitor-status-ring-mac3 > - - description: interrupt event for ring rxdma2host-monitor-status-ring-mac2 > - - description: interrupt event for ring rxdma2host-monitor-status-ring-mac1 > - - description: interrupt event for ring host2rxdma-host-buf-ring-mac3 > - - description: interrupt event for ring host2rxdma-host-buf-ring-mac2 > - - description: interrupt event for ring host2rxdma-host-buf-ring-mac1 > - - description: interrupt event for ring rxdma2host-destination-ring-mac3 > - - description: interrupt event for ring rxdma2host-destination-ring-mac2 > - - description: interrupt event for ring rxdma2host-destination-ring-mac1 > - - description: interrupt event for ring host2tcl-input-ring4 > - - description: interrupt event for ring host2tcl-input-ring3 > - - description: interrupt event for ring host2tcl-input-ring2 > - - description: interrupt event for ring host2tcl-input-ring1 > - - description: interrupt event for ring wbm2host-tx-completions-ring3 > - - description: interrupt event for ring wbm2host-tx-completions-ring2 > - - description: interrupt event for ring wbm2host-tx-completions-ring1 > - - description: interrupt event for ring tcl2host-status-ring > - > + minItems: 32 > + maxItems: 52 > > interrupt-names: > - items: > - - const: misc-pulse1 > - - const: misc-latch > - - const: sw-exception > - - const: watchdog > - - const: ce0 > - - const: ce1 > - - const: ce2 > - - const: ce3 > - - const: ce4 > - - const: ce5 > - - const: ce6 > - - const: ce7 > - - const: ce8 > - - const: ce9 > - - const: ce10 > - - const: ce11 > - - const: host2wbm-desc-feed > - - const: host2reo-re-injection > - - const: host2reo-command > - - const: host2rxdma-monitor-ring3 > - - const: host2rxdma-monitor-ring2 > - - const: host2rxdma-monitor-ring1 > - - const: reo2ost-exception > - - const: wbm2host-rx-release > - - const: reo2host-status > - - const: reo2host-destination-ring4 > - - const: reo2host-destination-ring3 > - - const: reo2host-destination-ring2 > - - const: reo2host-destination-ring1 > - - const: rxdma2host-monitor-destination-mac3 > - - const: rxdma2host-monitor-destination-mac2 > - - const: rxdma2host-monitor-destination-mac1 > - - const: ppdu-end-interrupts-mac3 > - - const: ppdu-end-interrupts-mac2 > - - const: ppdu-end-interrupts-mac1 > - - const: rxdma2host-monitor-status-ring-mac3 > - - const: rxdma2host-monitor-status-ring-mac2 > - - const: rxdma2host-monitor-status-ring-mac1 > - - const: host2rxdma-host-buf-ring-mac3 > - - const: host2rxdma-host-buf-ring-mac2 > - - const: host2rxdma-host-buf-ring-mac1 > - - const: rxdma2host-destination-ring-mac3 > - - const: rxdma2host-destination-ring-mac2 > - - const: rxdma2host-destination-ring-mac1 > - - const: host2tcl-input-ring4 > - - const: host2tcl-input-ring3 > - - const: host2tcl-input-ring2 > - - const: host2tcl-input-ring1 > - - const: wbm2host-tx-completions-ring3 > - - const: wbm2host-tx-completions-ring2 > - - const: wbm2host-tx-completions-ring1 > - - const: tcl2host-status-ring > + maxItems: 52 > > qcom,rproc: > $ref: /schemas/types.yaml#/definitions/phandle > @@ -151,20 +48,205 @@ properties: > board-2.bin for designs with colliding bus and device specific ids > > memory-region: > - maxItems: 1 > + minItems: 1 > + maxItems: 2 > description: > phandle to a node describing reserved memory (System RAM memory) > used by ath11k firmware (see bindings/reserved-memory/reserved-memory.txt) > > + iommus: > + minItems: 1 > + maxItems: 2 > + > + wifi-firmware: > + type: object > + description: | > + WCN6750 wifi node can contain one optional firmware subnode. > + Firmware subnode is needed when the platform does not have Tustzone. > + required: > + - iommus > + > required: > - compatible > - reg > - interrupts > - - interrupt-names > - qcom,rproc > > additionalProperties: false > > +allOf: > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,ipq8074-wifi > + - qcom,ipq6018-wifi > + then: > + properties: > + interrupts: > + items: > + - description: misc-pulse1 interrupt events > + - description: misc-latch interrupt events > + - description: sw exception interrupt events > + - description: watchdog interrupt events > + - description: interrupt event for ring CE0 > + - description: interrupt event for ring CE1 > + - description: interrupt event for ring CE2 > + - description: interrupt event for ring CE3 > + - description: interrupt event for ring CE4 > + - description: interrupt event for ring CE5 > + - description: interrupt event for ring CE6 > + - description: interrupt event for ring CE7 > + - description: interrupt event for ring CE8 > + - description: interrupt event for ring CE9 > + - description: interrupt event for ring CE10 > + - description: interrupt event for ring CE11 > + - description: interrupt event for ring host2wbm-desc-feed > + - description: interrupt event for ring host2reo-re-injection > + - description: interrupt event for ring host2reo-command > + - description: interrupt event for ring host2rxdma-monitor-ring3 > + - description: interrupt event for ring host2rxdma-monitor-ring2 > + - description: interrupt event for ring host2rxdma-monitor-ring1 > + - description: interrupt event for ring reo2ost-exception > + - description: interrupt event for ring wbm2host-rx-release > + - description: interrupt event for ring reo2host-status > + - description: interrupt event for ring reo2host-destination-ring4 > + - description: interrupt event for ring reo2host-destination-ring3 > + - description: interrupt event for ring reo2host-destination-ring2 > + - description: interrupt event for ring reo2host-destination-ring1 > + - description: interrupt event for ring rxdma2host-monitor-destination-mac3 > + - description: interrupt event for ring rxdma2host-monitor-destination-mac2 > + - description: interrupt event for ring rxdma2host-monitor-destination-mac1 > + - description: interrupt event for ring ppdu-end-interrupts-mac3 > + - description: interrupt event for ring ppdu-end-interrupts-mac2 > + - description: interrupt event for ring ppdu-end-interrupts-mac1 > + - description: interrupt event for ring rxdma2host-monitor-status-ring-mac3 > + - description: interrupt event for ring rxdma2host-monitor-status-ring-mac2 > + - description: interrupt event for ring rxdma2host-monitor-status-ring-mac1 > + - description: interrupt event for ring host2rxdma-host-buf-ring-mac3 > + - description: interrupt event for ring host2rxdma-host-buf-ring-mac2 > + - description: interrupt event for ring host2rxdma-host-buf-ring-mac1 > + - description: interrupt event for ring rxdma2host-destination-ring-mac3 > + - description: interrupt event for ring rxdma2host-destination-ring-mac2 > + - description: interrupt event for ring rxdma2host-destination-ring-mac1 > + - description: interrupt event for ring host2tcl-input-ring4 > + - description: interrupt event for ring host2tcl-input-ring3 > + - description: interrupt event for ring host2tcl-input-ring2 > + - description: interrupt event for ring host2tcl-input-ring1 > + - description: interrupt event for ring wbm2host-tx-completions-ring3 > + - description: interrupt event for ring wbm2host-tx-completions-ring2 > + - description: interrupt event for ring wbm2host-tx-completions-ring1 > + - description: interrupt event for ring tcl2host-status-ring > + interrupt-names: > + items: > + - const: misc-pulse1 > + - const: misc-latch > + - const: sw-exception > + - const: watchdog > + - const: ce0 > + - const: ce1 > + - const: ce2 > + - const: ce3 > + - const: ce4 > + - const: ce5 > + - const: ce6 > + - const: ce7 > + - const: ce8 > + - const: ce9 > + - const: ce10 > + - const: ce11 > + - const: host2wbm-desc-feed > + - const: host2reo-re-injection > + - const: host2reo-command > + - const: host2rxdma-monitor-ring3 > + - const: host2rxdma-monitor-ring2 > + - const: host2rxdma-monitor-ring1 > + - const: reo2ost-exception > + - const: wbm2host-rx-release > + - const: reo2host-status > + - const: reo2host-destination-ring4 > + - const: reo2host-destination-ring3 > + - const: reo2host-destination-ring2 > + - const: reo2host-destination-ring1 > + - const: rxdma2host-monitor-destination-mac3 > + - const: rxdma2host-monitor-destination-mac2 > + - const: rxdma2host-monitor-destination-mac1 > + - const: ppdu-end-interrupts-mac3 > + - const: ppdu-end-interrupts-mac2 > + - const: ppdu-end-interrupts-mac1 > + - const: rxdma2host-monitor-status-ring-mac3 > + - const: rxdma2host-monitor-status-ring-mac2 > + - const: rxdma2host-monitor-status-ring-mac1 > + - const: host2rxdma-host-buf-ring-mac3 > + - const: host2rxdma-host-buf-ring-mac2 > + - const: host2rxdma-host-buf-ring-mac1 > + - const: rxdma2host-destination-ring-mac3 > + - const: rxdma2host-destination-ring-mac2 > + - const: rxdma2host-destination-ring-mac1 > + - const: host2tcl-input-ring4 > + - const: host2tcl-input-ring3 > + - const: host2tcl-input-ring2 > + - const: host2tcl-input-ring1 > + - const: wbm2host-tx-completions-ring3 > + - const: wbm2host-tx-completions-ring2 > + - const: wbm2host-tx-completions-ring1 > + - const: tcl2host-status-ring > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,ipq8074-wifi > + - qcom,ipq6018-wifi > + then: > + required: > + - interrupt-names > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,wcn6750-wifi > + then: > + properties: > + interrupts: > + items: > + - description: interrupt event for ring CE1 > + - description: interrupt event for ring CE2 > + - description: interrupt event for ring CE3 > + - description: interrupt event for ring CE4 > + - description: interrupt event for ring CE5 > + - description: interrupt event for ring CE6 > + - description: interrupt event for ring CE7 > + - description: interrupt event for ring CE8 > + - description: interrupt event for ring CE9 > + - description: interrupt event for ring CE10 > + - description: interrupt event for ring DP1 > + - description: interrupt event for ring DP2 > + - description: interrupt event for ring DP3 > + - description: interrupt event for ring DP4 > + - description: interrupt event for ring DP5 > + - description: interrupt event for ring DP6 > + - description: interrupt event for ring DP7 > + - description: interrupt event for ring DP8 > + - description: interrupt event for ring DP9 > + - description: interrupt event for ring DP10 > + - description: interrupt event for ring DP11 > + - description: interrupt event for ring DP12 > + - description: interrupt event for ring DP13 > + - description: interrupt event for ring DP14 > + - description: interrupt event for ring DP15 > + - description: interrupt event for ring DP16 > + - description: interrupt event for ring DP17 > + - description: interrupt event for ring DP18 > + - description: interrupt event for ring DP19 > + - description: interrupt event for ring DP20 > + - description: interrupt event for ring DP21 > + - description: interrupt event for ring DP22 > + > examples: > - | > > @@ -309,3 +391,64 @@ examples: > }; > }; > }; > + > + - | > + #include <dt-bindings/interrupt-controller/arm-gic.h> > + > + reserved-memory { > + #address-cells = <2>; > + #size-cells = <2>; > + > + wlan_ce_mem: wlan_ce_mem@4cd000 { > + no-map; > + reg = <0x0 0x4cd000 0x0 0x1000>; > + }; > + > + wlan_fw_mem: wlan_fw_mem@80c00000 { > + no-map; > + reg = <0x0 0x80c00000 0x0 0xc00000>; > + }; > + }; > + > + wifi: wifi@17a10040 { > + compatible = "qcom,wcn6750-wifi"; > + reg = <0x17A10040 0x0>; > + iommus = <&apps_smmu 0x1C00 0x1>; > + interrupts = <GIC_SPI 768 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 769 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 770 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 771 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 772 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 773 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 774 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 775 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 776 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 777 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 778 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 779 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 780 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 781 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 782 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 783 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 784 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 785 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 786 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 787 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 788 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 789 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 790 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 791 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 792 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 793 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 794 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 795 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 796 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 797 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 798 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 799 IRQ_TYPE_EDGE_RISING>; > + qcom,rproc = <&remoteproc_wpss>; > + memory-region = <&wlan_fw_mem>, <&wlan_ce_mem>; > + wifi-firmware { > + iommus = <&apps_smmu 0x1C02 0x1>; > + }; > + }; ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 01/12] dt: bindings: net: add bindings of WCN6750 for ath11k 2022-03-28 6:13 ` [PATCH v3 01/12] dt: bindings: net: add bindings of WCN6750 for ath11k Manikanta Pubbisetty @ 2022-03-28 9:18 ` Kalle Valo 2022-03-28 9:19 ` Kalle Valo 0 siblings, 1 reply; 9+ messages in thread From: Kalle Valo @ 2022-03-28 9:18 UTC (permalink / raw) To: Manikanta Pubbisetty; +Cc: ath11k, linux-wireless, devicetree, Rob Herring Manikanta Pubbisetty <quic_mpubbise@quicinc.com> writes: > Sorry for top posting, missed to add device tree mail aliases. > Adding them now. IIRC DT maintainers use patchwork, so adding them to CC in a followup email won't properly work. -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 01/12] dt: bindings: net: add bindings of WCN6750 for ath11k 2022-03-28 9:18 ` Kalle Valo @ 2022-03-28 9:19 ` Kalle Valo 2022-03-28 9:46 ` Manikanta Pubbisetty 0 siblings, 1 reply; 9+ messages in thread From: Kalle Valo @ 2022-03-28 9:19 UTC (permalink / raw) To: Manikanta Pubbisetty; +Cc: ath11k, linux-wireless, devicetree, Rob Herring Kalle Valo <kvalo@kernel.org> writes: > Manikanta Pubbisetty <quic_mpubbise@quicinc.com> writes: > >> Sorry for top posting, missed to add device tree mail aliases. >> Adding them now. > > IIRC DT maintainers use patchwork, so adding them to CC in a followup > email won't properly work. Argh, s/properly/probably/. I blame it on the DST switch we had yesterday :) -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 01/12] dt: bindings: net: add bindings of WCN6750 for ath11k 2022-03-28 9:19 ` Kalle Valo @ 2022-03-28 9:46 ` Manikanta Pubbisetty 0 siblings, 0 replies; 9+ messages in thread From: Manikanta Pubbisetty @ 2022-03-28 9:46 UTC (permalink / raw) To: Kalle Valo; +Cc: ath11k, linux-wireless, devicetree, Rob Herring On 3/28/2022 2:49 PM, Kalle Valo wrote: > Kalle Valo <kvalo@kernel.org> writes: > >> Manikanta Pubbisetty <quic_mpubbise@quicinc.com> writes: >> >>> Sorry for top posting, missed to add device tree mail aliases. >>> Adding them now. >> >> IIRC DT maintainers use patchwork, so adding them to CC in a followup >> email won't properly work. > > Argh, s/properly/probably/. I blame it on the DST switch we had > yesterday :) > Hmmm, I'll resend this series alone with the missing aliases in that case. Thanks Kalle!! Manikanta ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v3 00/12] add support for WCN6750 @ 2022-03-28 9:48 Manikanta Pubbisetty 2022-03-28 9:48 ` [PATCH v3 01/12] dt: bindings: net: add bindings of WCN6750 for ath11k Manikanta Pubbisetty 0 siblings, 1 reply; 9+ messages in thread From: Manikanta Pubbisetty @ 2022-03-28 9:48 UTC (permalink / raw) To: ath11k; +Cc: linux-wireless, devicetree, robh, Manikanta Pubbisetty WCN6750 is non-DBS 2x2 11AX chipset. Unlike QCA6390/WCN6855 which are DBS (dual band simultaneous) solutions (2 LMACs), WCN6750 has a single LMAC supporting 2G, 5G and 6G bands. It can be operated only on one band at any given point. WCN6750 is a PCIe device. Unlike other supported ATH11K PCIe devices which are directly attached to APSS (Application Processor SubSystem), WCN6750 is not attached to APSS, it is attached to the WPSS (Wireless Processor SubSystem) Q6 processor, the FW which runs on the Q6 processor will enumerate the PCIe device. Since APSS is unaware of such a device, it has to be registered as a platform device(AHB) to the kernel for device probing. Like other AHB devices, remoteproc APIs are used to boot up or shutdown of WCN6750. WCN6750 uses both AHB and PCIe ATH11K APIs for it's operation. It uses AHB APIs for device probe and booting of the remote processor. Once device is booted up, it uses ATH11K PCIe APIs for initialization and register access. Hence, it is referred as hybrid bus device in the rest of this series. Since the chip is enumerated by WPSS Q6, device information like BAR and BAR size is not known to the APSS processor. A new QMI message called device info QMI request will be sent to the target for fetching these details. STA and AP modes are supported; Basic connectivity and ping are verified in both the modes. An important point to note is that though WCN6750 is a PCIe device, it cannot be attached to any other platform except on Qualcomm Snapdragon SoCs due to the aforementioned reasons. Tested-on: WCN6750 hw1.0 AHB WLAN.MSL.1.0.1-00573-QCAMSLSWPLZ-1 Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-01720.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1 Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.5.0.1-01100-QCAHKSWPL_SILICONZ-1 Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-00192-QCAHKSWPL_SILICONZ-1 Manikanta Pubbisetty (12): dt: bindings: net: add bindings of WCN6750 for ath11k ath11k: Add HW params for WCN6750 ath11k: Add bus params for WCN6750 ath11k: Add register access logic for WCN6750 ath11k: Fetch device information via QMI for WCN6750 ath11k: Add QMI changes for WCN6750 ath11k: HAL changes to support WCN6750 ath11k: Datapath changes to support WCN6750 ath11k: Do not put HW in DBS mode for WCN6750 ath11k: WMI changes to support WCN6750 ath11k: Update WBM idle ring HP after FW mode on ath11k: Add support for WCN6750 device --- Note: * Remoteproc driver changes for WCN6750 which takes care of downloading the FW and booting of Q6 processor are under upstream review. Link: https://patchwork.kernel.org/project/linux-remoteproc/cover/1643712724-12436-1-git-send-email-quic_mpubbise@quicinc.com/ * Also dependent on Series "Refactor PCI code to support WCN6750" Link: https://patchwork.kernel.org/project/linux-wireless/cover/20220328055714.6449-1-quic_mpubbise@quicinc.com/ V3: - Patch series with 19 patches is split in 2 patch series, this is the second one - Rebased on ToT SHAID: 7316a74e54318d0cd648242b18ea83cdef6dda96 - Addessed DT binding concerns - PCI common code is moved to ath11k.ko - Added a new HW param for WCN6750 which uses fixed firmware memory, this is needed to differentiate WCN6750 from other ATH11K chipsets - Modified the logic in patch "ath11k: Add support for WCN6750 device" based on the latest DT binding V2: - Rebased on ToT - Addressed comments on DT binding .../bindings/net/wireless/qcom,ath11k.yaml | 361 ++++++++++++------ drivers/net/wireless/ath/ath11k/Makefile | 5 +- drivers/net/wireless/ath/ath11k/ahb.c | 162 +++++++- drivers/net/wireless/ath/ath11k/ahb.h | 1 + drivers/net/wireless/ath/ath11k/ce.c | 4 +- drivers/net/wireless/ath/ath11k/core.c | 118 +++++- drivers/net/wireless/ath/ath11k/core.h | 5 + drivers/net/wireless/ath/ath11k/hal.c | 15 +- drivers/net/wireless/ath/ath11k/hal.h | 15 +- drivers/net/wireless/ath/ath11k/hw.c | 166 ++++++++ drivers/net/wireless/ath/ath11k/hw.h | 11 + drivers/net/wireless/ath/ath11k/pci.c | 4 + drivers/net/wireless/ath/ath11k/pcic.c | 76 ++-- drivers/net/wireless/ath/ath11k/qmi.c | 220 +++++++++-- drivers/net/wireless/ath/ath11k/qmi.h | 26 +- drivers/net/wireless/ath/ath11k/wmi.c | 13 +- 16 files changed, 976 insertions(+), 226 deletions(-) -- 2.35.1 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v3 01/12] dt: bindings: net: add bindings of WCN6750 for ath11k 2022-03-28 9:48 [PATCH v3 00/12] add support for WCN6750 Manikanta Pubbisetty @ 2022-03-28 9:48 ` Manikanta Pubbisetty 2022-03-29 23:37 ` Rob Herring 2022-04-04 19:11 ` Matthias Kaehlcke 0 siblings, 2 replies; 9+ messages in thread From: Manikanta Pubbisetty @ 2022-03-28 9:48 UTC (permalink / raw) To: ath11k; +Cc: linux-wireless, devicetree, robh, Manikanta Pubbisetty WCN6750 is the WLAN chip on Qualcomm Snapdragon SoC SC7280; Though being a PCIe based solution, it is not attached to the APSS processor (Application Processor SubSystem), it is instead attached to another tiny processor called WPSS Q6 processor (Wireless Processor SubSystem) on the SC7280 MSM, where the WLAN firmware runs, and it is the WLAN firmware running on the Q6 processor which enumerates WCN6750, as a result APPS processor would never know such a device being present in the system and would not detect the WCN6750 hardware unless and otherwise WCN6750 is registered as a platform device. This is the reason behind adding WCN6750 WLAN node in the device tree. Add WCN6750 wireless driver support, its based on ath11k driver. Signed-off-by: Manikanta Pubbisetty <quic_mpubbise@quicinc.com> --- .../bindings/net/wireless/qcom,ath11k.yaml | 361 ++++++++++++------ 1 file changed, 252 insertions(+), 109 deletions(-) diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml index cdf7b873b419..67104d69fd72 100644 --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml @@ -20,120 +20,17 @@ properties: enum: - qcom,ipq8074-wifi - qcom,ipq6018-wifi + - qcom,wcn6750-wifi reg: maxItems: 1 interrupts: - items: - - description: misc-pulse1 interrupt events - - description: misc-latch interrupt events - - description: sw exception interrupt events - - description: watchdog interrupt events - - description: interrupt event for ring CE0 - - description: interrupt event for ring CE1 - - description: interrupt event for ring CE2 - - description: interrupt event for ring CE3 - - description: interrupt event for ring CE4 - - description: interrupt event for ring CE5 - - description: interrupt event for ring CE6 - - description: interrupt event for ring CE7 - - description: interrupt event for ring CE8 - - description: interrupt event for ring CE9 - - description: interrupt event for ring CE10 - - description: interrupt event for ring CE11 - - description: interrupt event for ring host2wbm-desc-feed - - description: interrupt event for ring host2reo-re-injection - - description: interrupt event for ring host2reo-command - - description: interrupt event for ring host2rxdma-monitor-ring3 - - description: interrupt event for ring host2rxdma-monitor-ring2 - - description: interrupt event for ring host2rxdma-monitor-ring1 - - description: interrupt event for ring reo2ost-exception - - description: interrupt event for ring wbm2host-rx-release - - description: interrupt event for ring reo2host-status - - description: interrupt event for ring reo2host-destination-ring4 - - description: interrupt event for ring reo2host-destination-ring3 - - description: interrupt event for ring reo2host-destination-ring2 - - description: interrupt event for ring reo2host-destination-ring1 - - description: interrupt event for ring rxdma2host-monitor-destination-mac3 - - description: interrupt event for ring rxdma2host-monitor-destination-mac2 - - description: interrupt event for ring rxdma2host-monitor-destination-mac1 - - description: interrupt event for ring ppdu-end-interrupts-mac3 - - description: interrupt event for ring ppdu-end-interrupts-mac2 - - description: interrupt event for ring ppdu-end-interrupts-mac1 - - description: interrupt event for ring rxdma2host-monitor-status-ring-mac3 - - description: interrupt event for ring rxdma2host-monitor-status-ring-mac2 - - description: interrupt event for ring rxdma2host-monitor-status-ring-mac1 - - description: interrupt event for ring host2rxdma-host-buf-ring-mac3 - - description: interrupt event for ring host2rxdma-host-buf-ring-mac2 - - description: interrupt event for ring host2rxdma-host-buf-ring-mac1 - - description: interrupt event for ring rxdma2host-destination-ring-mac3 - - description: interrupt event for ring rxdma2host-destination-ring-mac2 - - description: interrupt event for ring rxdma2host-destination-ring-mac1 - - description: interrupt event for ring host2tcl-input-ring4 - - description: interrupt event for ring host2tcl-input-ring3 - - description: interrupt event for ring host2tcl-input-ring2 - - description: interrupt event for ring host2tcl-input-ring1 - - description: interrupt event for ring wbm2host-tx-completions-ring3 - - description: interrupt event for ring wbm2host-tx-completions-ring2 - - description: interrupt event for ring wbm2host-tx-completions-ring1 - - description: interrupt event for ring tcl2host-status-ring - + minItems: 32 + maxItems: 52 interrupt-names: - items: - - const: misc-pulse1 - - const: misc-latch - - const: sw-exception - - const: watchdog - - const: ce0 - - const: ce1 - - const: ce2 - - const: ce3 - - const: ce4 - - const: ce5 - - const: ce6 - - const: ce7 - - const: ce8 - - const: ce9 - - const: ce10 - - const: ce11 - - const: host2wbm-desc-feed - - const: host2reo-re-injection - - const: host2reo-command - - const: host2rxdma-monitor-ring3 - - const: host2rxdma-monitor-ring2 - - const: host2rxdma-monitor-ring1 - - const: reo2ost-exception - - const: wbm2host-rx-release - - const: reo2host-status - - const: reo2host-destination-ring4 - - const: reo2host-destination-ring3 - - const: reo2host-destination-ring2 - - const: reo2host-destination-ring1 - - const: rxdma2host-monitor-destination-mac3 - - const: rxdma2host-monitor-destination-mac2 - - const: rxdma2host-monitor-destination-mac1 - - const: ppdu-end-interrupts-mac3 - - const: ppdu-end-interrupts-mac2 - - const: ppdu-end-interrupts-mac1 - - const: rxdma2host-monitor-status-ring-mac3 - - const: rxdma2host-monitor-status-ring-mac2 - - const: rxdma2host-monitor-status-ring-mac1 - - const: host2rxdma-host-buf-ring-mac3 - - const: host2rxdma-host-buf-ring-mac2 - - const: host2rxdma-host-buf-ring-mac1 - - const: rxdma2host-destination-ring-mac3 - - const: rxdma2host-destination-ring-mac2 - - const: rxdma2host-destination-ring-mac1 - - const: host2tcl-input-ring4 - - const: host2tcl-input-ring3 - - const: host2tcl-input-ring2 - - const: host2tcl-input-ring1 - - const: wbm2host-tx-completions-ring3 - - const: wbm2host-tx-completions-ring2 - - const: wbm2host-tx-completions-ring1 - - const: tcl2host-status-ring + maxItems: 52 qcom,rproc: $ref: /schemas/types.yaml#/definitions/phandle @@ -151,20 +48,205 @@ properties: board-2.bin for designs with colliding bus and device specific ids memory-region: - maxItems: 1 + minItems: 1 + maxItems: 2 description: phandle to a node describing reserved memory (System RAM memory) used by ath11k firmware (see bindings/reserved-memory/reserved-memory.txt) + iommus: + minItems: 1 + maxItems: 2 + + wifi-firmware: + type: object + description: | + WCN6750 wifi node can contain one optional firmware subnode. + Firmware subnode is needed when the platform does not have Tustzone. + required: + - iommus + required: - compatible - reg - interrupts - - interrupt-names - qcom,rproc additionalProperties: false +allOf: + - if: + properties: + compatible: + contains: + enum: + - qcom,ipq8074-wifi + - qcom,ipq6018-wifi + then: + properties: + interrupts: + items: + - description: misc-pulse1 interrupt events + - description: misc-latch interrupt events + - description: sw exception interrupt events + - description: watchdog interrupt events + - description: interrupt event for ring CE0 + - description: interrupt event for ring CE1 + - description: interrupt event for ring CE2 + - description: interrupt event for ring CE3 + - description: interrupt event for ring CE4 + - description: interrupt event for ring CE5 + - description: interrupt event for ring CE6 + - description: interrupt event for ring CE7 + - description: interrupt event for ring CE8 + - description: interrupt event for ring CE9 + - description: interrupt event for ring CE10 + - description: interrupt event for ring CE11 + - description: interrupt event for ring host2wbm-desc-feed + - description: interrupt event for ring host2reo-re-injection + - description: interrupt event for ring host2reo-command + - description: interrupt event for ring host2rxdma-monitor-ring3 + - description: interrupt event for ring host2rxdma-monitor-ring2 + - description: interrupt event for ring host2rxdma-monitor-ring1 + - description: interrupt event for ring reo2ost-exception + - description: interrupt event for ring wbm2host-rx-release + - description: interrupt event for ring reo2host-status + - description: interrupt event for ring reo2host-destination-ring4 + - description: interrupt event for ring reo2host-destination-ring3 + - description: interrupt event for ring reo2host-destination-ring2 + - description: interrupt event for ring reo2host-destination-ring1 + - description: interrupt event for ring rxdma2host-monitor-destination-mac3 + - description: interrupt event for ring rxdma2host-monitor-destination-mac2 + - description: interrupt event for ring rxdma2host-monitor-destination-mac1 + - description: interrupt event for ring ppdu-end-interrupts-mac3 + - description: interrupt event for ring ppdu-end-interrupts-mac2 + - description: interrupt event for ring ppdu-end-interrupts-mac1 + - description: interrupt event for ring rxdma2host-monitor-status-ring-mac3 + - description: interrupt event for ring rxdma2host-monitor-status-ring-mac2 + - description: interrupt event for ring rxdma2host-monitor-status-ring-mac1 + - description: interrupt event for ring host2rxdma-host-buf-ring-mac3 + - description: interrupt event for ring host2rxdma-host-buf-ring-mac2 + - description: interrupt event for ring host2rxdma-host-buf-ring-mac1 + - description: interrupt event for ring rxdma2host-destination-ring-mac3 + - description: interrupt event for ring rxdma2host-destination-ring-mac2 + - description: interrupt event for ring rxdma2host-destination-ring-mac1 + - description: interrupt event for ring host2tcl-input-ring4 + - description: interrupt event for ring host2tcl-input-ring3 + - description: interrupt event for ring host2tcl-input-ring2 + - description: interrupt event for ring host2tcl-input-ring1 + - description: interrupt event for ring wbm2host-tx-completions-ring3 + - description: interrupt event for ring wbm2host-tx-completions-ring2 + - description: interrupt event for ring wbm2host-tx-completions-ring1 + - description: interrupt event for ring tcl2host-status-ring + interrupt-names: + items: + - const: misc-pulse1 + - const: misc-latch + - const: sw-exception + - const: watchdog + - const: ce0 + - const: ce1 + - const: ce2 + - const: ce3 + - const: ce4 + - const: ce5 + - const: ce6 + - const: ce7 + - const: ce8 + - const: ce9 + - const: ce10 + - const: ce11 + - const: host2wbm-desc-feed + - const: host2reo-re-injection + - const: host2reo-command + - const: host2rxdma-monitor-ring3 + - const: host2rxdma-monitor-ring2 + - const: host2rxdma-monitor-ring1 + - const: reo2ost-exception + - const: wbm2host-rx-release + - const: reo2host-status + - const: reo2host-destination-ring4 + - const: reo2host-destination-ring3 + - const: reo2host-destination-ring2 + - const: reo2host-destination-ring1 + - const: rxdma2host-monitor-destination-mac3 + - const: rxdma2host-monitor-destination-mac2 + - const: rxdma2host-monitor-destination-mac1 + - const: ppdu-end-interrupts-mac3 + - const: ppdu-end-interrupts-mac2 + - const: ppdu-end-interrupts-mac1 + - const: rxdma2host-monitor-status-ring-mac3 + - const: rxdma2host-monitor-status-ring-mac2 + - const: rxdma2host-monitor-status-ring-mac1 + - const: host2rxdma-host-buf-ring-mac3 + - const: host2rxdma-host-buf-ring-mac2 + - const: host2rxdma-host-buf-ring-mac1 + - const: rxdma2host-destination-ring-mac3 + - const: rxdma2host-destination-ring-mac2 + - const: rxdma2host-destination-ring-mac1 + - const: host2tcl-input-ring4 + - const: host2tcl-input-ring3 + - const: host2tcl-input-ring2 + - const: host2tcl-input-ring1 + - const: wbm2host-tx-completions-ring3 + - const: wbm2host-tx-completions-ring2 + - const: wbm2host-tx-completions-ring1 + - const: tcl2host-status-ring + + - if: + properties: + compatible: + contains: + enum: + - qcom,ipq8074-wifi + - qcom,ipq6018-wifi + then: + required: + - interrupt-names + + - if: + properties: + compatible: + contains: + enum: + - qcom,wcn6750-wifi + then: + properties: + interrupts: + items: + - description: interrupt event for ring CE1 + - description: interrupt event for ring CE2 + - description: interrupt event for ring CE3 + - description: interrupt event for ring CE4 + - description: interrupt event for ring CE5 + - description: interrupt event for ring CE6 + - description: interrupt event for ring CE7 + - description: interrupt event for ring CE8 + - description: interrupt event for ring CE9 + - description: interrupt event for ring CE10 + - description: interrupt event for ring DP1 + - description: interrupt event for ring DP2 + - description: interrupt event for ring DP3 + - description: interrupt event for ring DP4 + - description: interrupt event for ring DP5 + - description: interrupt event for ring DP6 + - description: interrupt event for ring DP7 + - description: interrupt event for ring DP8 + - description: interrupt event for ring DP9 + - description: interrupt event for ring DP10 + - description: interrupt event for ring DP11 + - description: interrupt event for ring DP12 + - description: interrupt event for ring DP13 + - description: interrupt event for ring DP14 + - description: interrupt event for ring DP15 + - description: interrupt event for ring DP16 + - description: interrupt event for ring DP17 + - description: interrupt event for ring DP18 + - description: interrupt event for ring DP19 + - description: interrupt event for ring DP20 + - description: interrupt event for ring DP21 + - description: interrupt event for ring DP22 + examples: - | @@ -309,3 +391,64 @@ examples: }; }; }; + + - | + #include <dt-bindings/interrupt-controller/arm-gic.h> + + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + + wlan_ce_mem: wlan_ce_mem@4cd000 { + no-map; + reg = <0x0 0x4cd000 0x0 0x1000>; + }; + + wlan_fw_mem: wlan_fw_mem@80c00000 { + no-map; + reg = <0x0 0x80c00000 0x0 0xc00000>; + }; + }; + + wifi: wifi@17a10040 { + compatible = "qcom,wcn6750-wifi"; + reg = <0x17A10040 0x0>; + iommus = <&apps_smmu 0x1C00 0x1>; + interrupts = <GIC_SPI 768 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 769 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 770 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 771 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 772 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 773 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 774 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 775 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 776 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 777 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 778 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 779 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 780 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 781 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 782 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 783 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 784 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 785 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 786 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 787 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 788 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 789 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 790 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 791 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 792 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 793 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 794 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 795 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 796 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 797 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 798 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 799 IRQ_TYPE_EDGE_RISING>; + qcom,rproc = <&remoteproc_wpss>; + memory-region = <&wlan_fw_mem>, <&wlan_ce_mem>; + wifi-firmware { + iommus = <&apps_smmu 0x1C02 0x1>; + }; + }; -- 2.35.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v3 01/12] dt: bindings: net: add bindings of WCN6750 for ath11k 2022-03-28 9:48 ` [PATCH v3 01/12] dt: bindings: net: add bindings of WCN6750 for ath11k Manikanta Pubbisetty @ 2022-03-29 23:37 ` Rob Herring 2022-03-30 5:19 ` Manikanta Pubbisetty 2022-04-04 19:11 ` Matthias Kaehlcke 1 sibling, 1 reply; 9+ messages in thread From: Rob Herring @ 2022-03-29 23:37 UTC (permalink / raw) To: Manikanta Pubbisetty; +Cc: linux-wireless, ath11k, devicetree On Mon, 28 Mar 2022 15:18:27 +0530, Manikanta Pubbisetty wrote: > WCN6750 is the WLAN chip on Qualcomm Snapdragon SoC SC7280; > Though being a PCIe based solution, it is not attached to > the APSS processor (Application Processor SubSystem), it is > instead attached to another tiny processor called WPSS Q6 > processor (Wireless Processor SubSystem) on the SC7280 MSM, > where the WLAN firmware runs, and it is the WLAN firmware > running on the Q6 processor which enumerates WCN6750, as a > result APPS processor would never know such a device being > present in the system and would not detect the WCN6750 > hardware unless and otherwise WCN6750 is registered as a > platform device. This is the reason behind adding WCN6750 > WLAN node in the device tree. > > Add WCN6750 wireless driver support, its based on ath11k driver. > > Signed-off-by: Manikanta Pubbisetty <quic_mpubbise@quicinc.com> > --- > .../bindings/net/wireless/qcom,ath11k.yaml | 361 ++++++++++++------ > 1 file changed, 252 insertions(+), 109 deletions(-) > Reviewed-by: Rob Herring <robh@kernel.org> ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 01/12] dt: bindings: net: add bindings of WCN6750 for ath11k 2022-03-29 23:37 ` Rob Herring @ 2022-03-30 5:19 ` Manikanta Pubbisetty 0 siblings, 0 replies; 9+ messages in thread From: Manikanta Pubbisetty @ 2022-03-30 5:19 UTC (permalink / raw) To: Rob Herring; +Cc: linux-wireless, ath11k, devicetree On 3/30/2022 5:07 AM, Rob Herring wrote: > On Mon, 28 Mar 2022 15:18:27 +0530, Manikanta Pubbisetty wrote: >> WCN6750 is the WLAN chip on Qualcomm Snapdragon SoC SC7280; >> Though being a PCIe based solution, it is not attached to >> the APSS processor (Application Processor SubSystem), it is >> instead attached to another tiny processor called WPSS Q6 >> processor (Wireless Processor SubSystem) on the SC7280 MSM, >> where the WLAN firmware runs, and it is the WLAN firmware >> running on the Q6 processor which enumerates WCN6750, as a >> result APPS processor would never know such a device being >> present in the system and would not detect the WCN6750 >> hardware unless and otherwise WCN6750 is registered as a >> platform device. This is the reason behind adding WCN6750 >> WLAN node in the device tree. >> >> Add WCN6750 wireless driver support, its based on ath11k driver. >> >> Signed-off-by: Manikanta Pubbisetty <quic_mpubbise@quicinc.com> >> --- >> .../bindings/net/wireless/qcom,ath11k.yaml | 361 ++++++++++++------ >> 1 file changed, 252 insertions(+), 109 deletions(-) >> > > Reviewed-by: Rob Herring <robh@kernel.org> Thanks for the review Rob!! Manikanta ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 01/12] dt: bindings: net: add bindings of WCN6750 for ath11k 2022-03-28 9:48 ` [PATCH v3 01/12] dt: bindings: net: add bindings of WCN6750 for ath11k Manikanta Pubbisetty 2022-03-29 23:37 ` Rob Herring @ 2022-04-04 19:11 ` Matthias Kaehlcke 2022-04-05 6:25 ` Manikanta Pubbisetty 1 sibling, 1 reply; 9+ messages in thread From: Matthias Kaehlcke @ 2022-04-04 19:11 UTC (permalink / raw) To: Manikanta Pubbisetty; +Cc: ath11k, linux-wireless, devicetree, robh On Mon, Mar 28, 2022 at 03:18:27PM +0530, Manikanta Pubbisetty wrote: > WCN6750 is the WLAN chip on Qualcomm Snapdragon SoC SC7280; > Though being a PCIe based solution, it is not attached to > the APSS processor (Application Processor SubSystem), it is > instead attached to another tiny processor called WPSS Q6 > processor (Wireless Processor SubSystem) on the SC7280 MSM, > where the WLAN firmware runs, and it is the WLAN firmware > running on the Q6 processor which enumerates WCN6750, as a > result APPS processor would never know such a device being > present in the system and would not detect the WCN6750 > hardware unless and otherwise WCN6750 is registered as a > platform device. This is the reason behind adding WCN6750 > WLAN node in the device tree. > > Add WCN6750 wireless driver support, its based on ath11k driver. > > Signed-off-by: Manikanta Pubbisetty <quic_mpubbise@quicinc.com> > Reviewed-by: Rob Herring <robh@kernel.org> > --- > .../bindings/net/wireless/qcom,ath11k.yaml | 361 ++++++++++++------ > 1 file changed, 252 insertions(+), 109 deletions(-) > > diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml > index cdf7b873b419..67104d69fd72 100644 > --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml > +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml > @@ -20,120 +20,17 @@ properties: > enum: > - qcom,ipq8074-wifi > - qcom,ipq6018-wifi > + - qcom,wcn6750-wifi > > reg: > maxItems: 1 > > interrupts: > - items: > - - description: misc-pulse1 interrupt events > - - description: misc-latch interrupt events > - - description: sw exception interrupt events > - - description: watchdog interrupt events > - - description: interrupt event for ring CE0 > - - description: interrupt event for ring CE1 > - - description: interrupt event for ring CE2 > - - description: interrupt event for ring CE3 > - - description: interrupt event for ring CE4 > - - description: interrupt event for ring CE5 > - - description: interrupt event for ring CE6 > - - description: interrupt event for ring CE7 > - - description: interrupt event for ring CE8 > - - description: interrupt event for ring CE9 > - - description: interrupt event for ring CE10 > - - description: interrupt event for ring CE11 > - - description: interrupt event for ring host2wbm-desc-feed > - - description: interrupt event for ring host2reo-re-injection > - - description: interrupt event for ring host2reo-command > - - description: interrupt event for ring host2rxdma-monitor-ring3 > - - description: interrupt event for ring host2rxdma-monitor-ring2 > - - description: interrupt event for ring host2rxdma-monitor-ring1 > - - description: interrupt event for ring reo2ost-exception > - - description: interrupt event for ring wbm2host-rx-release > - - description: interrupt event for ring reo2host-status > - - description: interrupt event for ring reo2host-destination-ring4 > - - description: interrupt event for ring reo2host-destination-ring3 > - - description: interrupt event for ring reo2host-destination-ring2 > - - description: interrupt event for ring reo2host-destination-ring1 > - - description: interrupt event for ring rxdma2host-monitor-destination-mac3 > - - description: interrupt event for ring rxdma2host-monitor-destination-mac2 > - - description: interrupt event for ring rxdma2host-monitor-destination-mac1 > - - description: interrupt event for ring ppdu-end-interrupts-mac3 > - - description: interrupt event for ring ppdu-end-interrupts-mac2 > - - description: interrupt event for ring ppdu-end-interrupts-mac1 > - - description: interrupt event for ring rxdma2host-monitor-status-ring-mac3 > - - description: interrupt event for ring rxdma2host-monitor-status-ring-mac2 > - - description: interrupt event for ring rxdma2host-monitor-status-ring-mac1 > - - description: interrupt event for ring host2rxdma-host-buf-ring-mac3 > - - description: interrupt event for ring host2rxdma-host-buf-ring-mac2 > - - description: interrupt event for ring host2rxdma-host-buf-ring-mac1 > - - description: interrupt event for ring rxdma2host-destination-ring-mac3 > - - description: interrupt event for ring rxdma2host-destination-ring-mac2 > - - description: interrupt event for ring rxdma2host-destination-ring-mac1 > - - description: interrupt event for ring host2tcl-input-ring4 > - - description: interrupt event for ring host2tcl-input-ring3 > - - description: interrupt event for ring host2tcl-input-ring2 > - - description: interrupt event for ring host2tcl-input-ring1 > - - description: interrupt event for ring wbm2host-tx-completions-ring3 > - - description: interrupt event for ring wbm2host-tx-completions-ring2 > - - description: interrupt event for ring wbm2host-tx-completions-ring1 > - - description: interrupt event for ring tcl2host-status-ring > - > + minItems: 32 > + maxItems: 52 > > interrupt-names: > - items: > - - const: misc-pulse1 > - - const: misc-latch > - - const: sw-exception > - - const: watchdog > - - const: ce0 > - - const: ce1 > - - const: ce2 > - - const: ce3 > - - const: ce4 > - - const: ce5 > - - const: ce6 > - - const: ce7 > - - const: ce8 > - - const: ce9 > - - const: ce10 > - - const: ce11 > - - const: host2wbm-desc-feed > - - const: host2reo-re-injection > - - const: host2reo-command > - - const: host2rxdma-monitor-ring3 > - - const: host2rxdma-monitor-ring2 > - - const: host2rxdma-monitor-ring1 > - - const: reo2ost-exception > - - const: wbm2host-rx-release > - - const: reo2host-status > - - const: reo2host-destination-ring4 > - - const: reo2host-destination-ring3 > - - const: reo2host-destination-ring2 > - - const: reo2host-destination-ring1 > - - const: rxdma2host-monitor-destination-mac3 > - - const: rxdma2host-monitor-destination-mac2 > - - const: rxdma2host-monitor-destination-mac1 > - - const: ppdu-end-interrupts-mac3 > - - const: ppdu-end-interrupts-mac2 > - - const: ppdu-end-interrupts-mac1 > - - const: rxdma2host-monitor-status-ring-mac3 > - - const: rxdma2host-monitor-status-ring-mac2 > - - const: rxdma2host-monitor-status-ring-mac1 > - - const: host2rxdma-host-buf-ring-mac3 > - - const: host2rxdma-host-buf-ring-mac2 > - - const: host2rxdma-host-buf-ring-mac1 > - - const: rxdma2host-destination-ring-mac3 > - - const: rxdma2host-destination-ring-mac2 > - - const: rxdma2host-destination-ring-mac1 > - - const: host2tcl-input-ring4 > - - const: host2tcl-input-ring3 > - - const: host2tcl-input-ring2 > - - const: host2tcl-input-ring1 > - - const: wbm2host-tx-completions-ring3 > - - const: wbm2host-tx-completions-ring2 > - - const: wbm2host-tx-completions-ring1 > - - const: tcl2host-status-ring > + maxItems: 52 > > qcom,rproc: > $ref: /schemas/types.yaml#/definitions/phandle > @@ -151,20 +48,205 @@ properties: > board-2.bin for designs with colliding bus and device specific ids > > memory-region: > - maxItems: 1 > + minItems: 1 > + maxItems: 2 > description: > phandle to a node describing reserved memory (System RAM memory) > used by ath11k firmware (see bindings/reserved-memory/reserved-memory.txt) > > + iommus: > + minItems: 1 > + maxItems: 2 > + > + wifi-firmware: > + type: object > + description: | > + WCN6750 wifi node can contain one optional firmware subnode. > + Firmware subnode is needed when the platform does not have Tustzone. s/Tustzone/Trustzone/ > + required: > + - iommus > + > required: > - compatible > - reg > - interrupts > - - interrupt-names > - qcom,rproc > > additionalProperties: false > > +allOf: > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,ipq8074-wifi > + - qcom,ipq6018-wifi > + then: > + properties: > + interrupts: > + items: > + - description: misc-pulse1 interrupt events > + - description: misc-latch interrupt events > + - description: sw exception interrupt events > + - description: watchdog interrupt events > + - description: interrupt event for ring CE0 > + - description: interrupt event for ring CE1 > + - description: interrupt event for ring CE2 > + - description: interrupt event for ring CE3 > + - description: interrupt event for ring CE4 > + - description: interrupt event for ring CE5 > + - description: interrupt event for ring CE6 > + - description: interrupt event for ring CE7 > + - description: interrupt event for ring CE8 > + - description: interrupt event for ring CE9 > + - description: interrupt event for ring CE10 > + - description: interrupt event for ring CE11 > + - description: interrupt event for ring host2wbm-desc-feed > + - description: interrupt event for ring host2reo-re-injection > + - description: interrupt event for ring host2reo-command > + - description: interrupt event for ring host2rxdma-monitor-ring3 > + - description: interrupt event for ring host2rxdma-monitor-ring2 > + - description: interrupt event for ring host2rxdma-monitor-ring1 > + - description: interrupt event for ring reo2ost-exception > + - description: interrupt event for ring wbm2host-rx-release > + - description: interrupt event for ring reo2host-status > + - description: interrupt event for ring reo2host-destination-ring4 > + - description: interrupt event for ring reo2host-destination-ring3 > + - description: interrupt event for ring reo2host-destination-ring2 > + - description: interrupt event for ring reo2host-destination-ring1 > + - description: interrupt event for ring rxdma2host-monitor-destination-mac3 > + - description: interrupt event for ring rxdma2host-monitor-destination-mac2 > + - description: interrupt event for ring rxdma2host-monitor-destination-mac1 > + - description: interrupt event for ring ppdu-end-interrupts-mac3 > + - description: interrupt event for ring ppdu-end-interrupts-mac2 > + - description: interrupt event for ring ppdu-end-interrupts-mac1 > + - description: interrupt event for ring rxdma2host-monitor-status-ring-mac3 > + - description: interrupt event for ring rxdma2host-monitor-status-ring-mac2 > + - description: interrupt event for ring rxdma2host-monitor-status-ring-mac1 > + - description: interrupt event for ring host2rxdma-host-buf-ring-mac3 > + - description: interrupt event for ring host2rxdma-host-buf-ring-mac2 > + - description: interrupt event for ring host2rxdma-host-buf-ring-mac1 > + - description: interrupt event for ring rxdma2host-destination-ring-mac3 > + - description: interrupt event for ring rxdma2host-destination-ring-mac2 > + - description: interrupt event for ring rxdma2host-destination-ring-mac1 > + - description: interrupt event for ring host2tcl-input-ring4 > + - description: interrupt event for ring host2tcl-input-ring3 > + - description: interrupt event for ring host2tcl-input-ring2 > + - description: interrupt event for ring host2tcl-input-ring1 > + - description: interrupt event for ring wbm2host-tx-completions-ring3 > + - description: interrupt event for ring wbm2host-tx-completions-ring2 > + - description: interrupt event for ring wbm2host-tx-completions-ring1 > + - description: interrupt event for ring tcl2host-status-ring > + interrupt-names: > + items: > + - const: misc-pulse1 > + - const: misc-latch > + - const: sw-exception > + - const: watchdog > + - const: ce0 > + - const: ce1 > + - const: ce2 > + - const: ce3 > + - const: ce4 > + - const: ce5 > + - const: ce6 > + - const: ce7 > + - const: ce8 > + - const: ce9 > + - const: ce10 > + - const: ce11 > + - const: host2wbm-desc-feed > + - const: host2reo-re-injection > + - const: host2reo-command > + - const: host2rxdma-monitor-ring3 > + - const: host2rxdma-monitor-ring2 > + - const: host2rxdma-monitor-ring1 > + - const: reo2ost-exception > + - const: wbm2host-rx-release > + - const: reo2host-status > + - const: reo2host-destination-ring4 > + - const: reo2host-destination-ring3 > + - const: reo2host-destination-ring2 > + - const: reo2host-destination-ring1 > + - const: rxdma2host-monitor-destination-mac3 > + - const: rxdma2host-monitor-destination-mac2 > + - const: rxdma2host-monitor-destination-mac1 > + - const: ppdu-end-interrupts-mac3 > + - const: ppdu-end-interrupts-mac2 > + - const: ppdu-end-interrupts-mac1 > + - const: rxdma2host-monitor-status-ring-mac3 > + - const: rxdma2host-monitor-status-ring-mac2 > + - const: rxdma2host-monitor-status-ring-mac1 > + - const: host2rxdma-host-buf-ring-mac3 > + - const: host2rxdma-host-buf-ring-mac2 > + - const: host2rxdma-host-buf-ring-mac1 > + - const: rxdma2host-destination-ring-mac3 > + - const: rxdma2host-destination-ring-mac2 > + - const: rxdma2host-destination-ring-mac1 > + - const: host2tcl-input-ring4 > + - const: host2tcl-input-ring3 > + - const: host2tcl-input-ring2 > + - const: host2tcl-input-ring1 > + - const: wbm2host-tx-completions-ring3 > + - const: wbm2host-tx-completions-ring2 > + - const: wbm2host-tx-completions-ring1 > + - const: tcl2host-status-ring > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,ipq8074-wifi > + - qcom,ipq6018-wifi > + then: > + required: > + - interrupt-names > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,wcn6750-wifi > + then: > + properties: > + interrupts: > + items: > + - description: interrupt event for ring CE1 > + - description: interrupt event for ring CE2 > + - description: interrupt event for ring CE3 > + - description: interrupt event for ring CE4 > + - description: interrupt event for ring CE5 > + - description: interrupt event for ring CE6 > + - description: interrupt event for ring CE7 > + - description: interrupt event for ring CE8 > + - description: interrupt event for ring CE9 > + - description: interrupt event for ring CE10 > + - description: interrupt event for ring DP1 > + - description: interrupt event for ring DP2 > + - description: interrupt event for ring DP3 > + - description: interrupt event for ring DP4 > + - description: interrupt event for ring DP5 > + - description: interrupt event for ring DP6 > + - description: interrupt event for ring DP7 > + - description: interrupt event for ring DP8 > + - description: interrupt event for ring DP9 > + - description: interrupt event for ring DP10 > + - description: interrupt event for ring DP11 > + - description: interrupt event for ring DP12 > + - description: interrupt event for ring DP13 > + - description: interrupt event for ring DP14 > + - description: interrupt event for ring DP15 > + - description: interrupt event for ring DP16 > + - description: interrupt event for ring DP17 > + - description: interrupt event for ring DP18 > + - description: interrupt event for ring DP19 > + - description: interrupt event for ring DP20 > + - description: interrupt event for ring DP21 > + - description: interrupt event for ring DP22 > + > examples: > - | > > @@ -309,3 +391,64 @@ examples: > }; > }; > }; > + > + - | > + #include <dt-bindings/interrupt-controller/arm-gic.h> > + > + reserved-memory { > + #address-cells = <2>; > + #size-cells = <2>; > + > + wlan_ce_mem: wlan_ce_mem@4cd000 { Node names should use dashes ('-') as separators, so the node name should be 'wlan-ce-mem'. Actually reserved memory nodes for sc7280 are all named memory@addr, the binding should follow this convention, so 'memory@4cd000'. > + no-map; > + reg = <0x0 0x4cd000 0x0 0x1000>; Pad the address here to 8 digits > + }; > + > + wlan_fw_mem: wlan_fw_mem@80c00000 { Same as above: memory@80c00000 > + no-map; > + reg = <0x0 0x80c00000 0x0 0xc00000>; > + }; > + }; > + > + wifi: wifi@17a10040 { > + compatible = "qcom,wcn6750-wifi"; > + reg = <0x17A10040 0x0>; Use lowercase for hex digits > + iommus = <&apps_smmu 0x1C00 0x1>; Ditto > + interrupts = <GIC_SPI 768 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 769 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 770 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 771 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 772 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 773 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 774 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 775 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 776 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 777 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 778 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 779 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 780 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 781 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 782 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 783 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 784 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 785 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 786 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 787 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 788 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 789 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 790 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 791 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 792 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 793 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 794 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 795 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 796 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 797 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 798 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 799 IRQ_TYPE_EDGE_RISING>; > + qcom,rproc = <&remoteproc_wpss>; > + memory-region = <&wlan_fw_mem>, <&wlan_ce_mem>; > + wifi-firmware { > + iommus = <&apps_smmu 0x1C02 0x1>; Use lowercase for hex digits > + }; > + }; ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 01/12] dt: bindings: net: add bindings of WCN6750 for ath11k 2022-04-04 19:11 ` Matthias Kaehlcke @ 2022-04-05 6:25 ` Manikanta Pubbisetty 0 siblings, 0 replies; 9+ messages in thread From: Manikanta Pubbisetty @ 2022-04-05 6:25 UTC (permalink / raw) To: Matthias Kaehlcke; +Cc: ath11k, linux-wireless, devicetree, robh On 4/5/2022 12:41 AM, Matthias Kaehlcke wrote: > On Mon, Mar 28, 2022 at 03:18:27PM +0530, Manikanta Pubbisetty wrote: >> WCN6750 is the WLAN chip on Qualcomm Snapdragon SoC SC7280; >> Though being a PCIe based solution, it is not attached to >> the APSS processor (Application Processor SubSystem), it is >> instead attached to another tiny processor called WPSS Q6 >> processor (Wireless Processor SubSystem) on the SC7280 MSM, >> where the WLAN firmware runs, and it is the WLAN firmware >> running on the Q6 processor which enumerates WCN6750, as a >> result APPS processor would never know such a device being >> present in the system and would not detect the WCN6750 >> hardware unless and otherwise WCN6750 is registered as a >> platform device. This is the reason behind adding WCN6750 >> WLAN node in the device tree. >> >> Add WCN6750 wireless driver support, its based on ath11k driver. >> >> Signed-off-by: Manikanta Pubbisetty <quic_mpubbise@quicinc.com> >> Reviewed-by: Rob Herring <robh@kernel.org> >> --- >> .../bindings/net/wireless/qcom,ath11k.yaml | 361 ++++++++++++------ >> 1 file changed, 252 insertions(+), 109 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml >> index cdf7b873b419..67104d69fd72 100644 >> --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml >> +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml >> @@ -20,120 +20,17 @@ properties: >> enum: >> - qcom,ipq8074-wifi >> - qcom,ipq6018-wifi >> + - qcom,wcn6750-wifi >> >> reg: >> maxItems: 1 >> >> interrupts: >> - items: >> - - description: misc-pulse1 interrupt events >> - - description: misc-latch interrupt events >> - - description: sw exception interrupt events >> - - description: watchdog interrupt events >> - - description: interrupt event for ring CE0 >> - - description: interrupt event for ring CE1 >> - - description: interrupt event for ring CE2 >> - - description: interrupt event for ring CE3 >> - - description: interrupt event for ring CE4 >> - - description: interrupt event for ring CE5 >> - - description: interrupt event for ring CE6 >> - - description: interrupt event for ring CE7 >> - - description: interrupt event for ring CE8 >> - - description: interrupt event for ring CE9 >> - - description: interrupt event for ring CE10 >> - - description: interrupt event for ring CE11 >> - - description: interrupt event for ring host2wbm-desc-feed >> - - description: interrupt event for ring host2reo-re-injection >> - - description: interrupt event for ring host2reo-command >> - - description: interrupt event for ring host2rxdma-monitor-ring3 >> - - description: interrupt event for ring host2rxdma-monitor-ring2 >> - - description: interrupt event for ring host2rxdma-monitor-ring1 >> - - description: interrupt event for ring reo2ost-exception >> - - description: interrupt event for ring wbm2host-rx-release >> - - description: interrupt event for ring reo2host-status >> - - description: interrupt event for ring reo2host-destination-ring4 >> - - description: interrupt event for ring reo2host-destination-ring3 >> - - description: interrupt event for ring reo2host-destination-ring2 >> - - description: interrupt event for ring reo2host-destination-ring1 >> - - description: interrupt event for ring rxdma2host-monitor-destination-mac3 >> - - description: interrupt event for ring rxdma2host-monitor-destination-mac2 >> - - description: interrupt event for ring rxdma2host-monitor-destination-mac1 >> - - description: interrupt event for ring ppdu-end-interrupts-mac3 >> - - description: interrupt event for ring ppdu-end-interrupts-mac2 >> - - description: interrupt event for ring ppdu-end-interrupts-mac1 >> - - description: interrupt event for ring rxdma2host-monitor-status-ring-mac3 >> - - description: interrupt event for ring rxdma2host-monitor-status-ring-mac2 >> - - description: interrupt event for ring rxdma2host-monitor-status-ring-mac1 >> - - description: interrupt event for ring host2rxdma-host-buf-ring-mac3 >> - - description: interrupt event for ring host2rxdma-host-buf-ring-mac2 >> - - description: interrupt event for ring host2rxdma-host-buf-ring-mac1 >> - - description: interrupt event for ring rxdma2host-destination-ring-mac3 >> - - description: interrupt event for ring rxdma2host-destination-ring-mac2 >> - - description: interrupt event for ring rxdma2host-destination-ring-mac1 >> - - description: interrupt event for ring host2tcl-input-ring4 >> - - description: interrupt event for ring host2tcl-input-ring3 >> - - description: interrupt event for ring host2tcl-input-ring2 >> - - description: interrupt event for ring host2tcl-input-ring1 >> - - description: interrupt event for ring wbm2host-tx-completions-ring3 >> - - description: interrupt event for ring wbm2host-tx-completions-ring2 >> - - description: interrupt event for ring wbm2host-tx-completions-ring1 >> - - description: interrupt event for ring tcl2host-status-ring >> - >> + minItems: 32 >> + maxItems: 52 >> >> interrupt-names: >> - items: >> - - const: misc-pulse1 >> - - const: misc-latch >> - - const: sw-exception >> - - const: watchdog >> - - const: ce0 >> - - const: ce1 >> - - const: ce2 >> - - const: ce3 >> - - const: ce4 >> - - const: ce5 >> - - const: ce6 >> - - const: ce7 >> - - const: ce8 >> - - const: ce9 >> - - const: ce10 >> - - const: ce11 >> - - const: host2wbm-desc-feed >> - - const: host2reo-re-injection >> - - const: host2reo-command >> - - const: host2rxdma-monitor-ring3 >> - - const: host2rxdma-monitor-ring2 >> - - const: host2rxdma-monitor-ring1 >> - - const: reo2ost-exception >> - - const: wbm2host-rx-release >> - - const: reo2host-status >> - - const: reo2host-destination-ring4 >> - - const: reo2host-destination-ring3 >> - - const: reo2host-destination-ring2 >> - - const: reo2host-destination-ring1 >> - - const: rxdma2host-monitor-destination-mac3 >> - - const: rxdma2host-monitor-destination-mac2 >> - - const: rxdma2host-monitor-destination-mac1 >> - - const: ppdu-end-interrupts-mac3 >> - - const: ppdu-end-interrupts-mac2 >> - - const: ppdu-end-interrupts-mac1 >> - - const: rxdma2host-monitor-status-ring-mac3 >> - - const: rxdma2host-monitor-status-ring-mac2 >> - - const: rxdma2host-monitor-status-ring-mac1 >> - - const: host2rxdma-host-buf-ring-mac3 >> - - const: host2rxdma-host-buf-ring-mac2 >> - - const: host2rxdma-host-buf-ring-mac1 >> - - const: rxdma2host-destination-ring-mac3 >> - - const: rxdma2host-destination-ring-mac2 >> - - const: rxdma2host-destination-ring-mac1 >> - - const: host2tcl-input-ring4 >> - - const: host2tcl-input-ring3 >> - - const: host2tcl-input-ring2 >> - - const: host2tcl-input-ring1 >> - - const: wbm2host-tx-completions-ring3 >> - - const: wbm2host-tx-completions-ring2 >> - - const: wbm2host-tx-completions-ring1 >> - - const: tcl2host-status-ring >> + maxItems: 52 >> >> qcom,rproc: >> $ref: /schemas/types.yaml#/definitions/phandle >> @@ -151,20 +48,205 @@ properties: >> board-2.bin for designs with colliding bus and device specific ids >> >> memory-region: >> - maxItems: 1 >> + minItems: 1 >> + maxItems: 2 >> description: >> phandle to a node describing reserved memory (System RAM memory) >> used by ath11k firmware (see bindings/reserved-memory/reserved-memory.txt) >> >> + iommus: >> + minItems: 1 >> + maxItems: 2 >> + >> + wifi-firmware: >> + type: object >> + description: | >> + WCN6750 wifi node can contain one optional firmware subnode. >> + Firmware subnode is needed when the platform does not have Tustzone. > > s/Tustzone/Trustzone/ Sure > >> + required: >> + - iommus >> + >> required: >> - compatible >> - reg >> - interrupts >> - - interrupt-names >> - qcom,rproc >> >> additionalProperties: false >> >> +allOf: >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - qcom,ipq8074-wifi >> + - qcom,ipq6018-wifi >> + then: >> + properties: >> + interrupts: >> + items: >> + - description: misc-pulse1 interrupt events >> + - description: misc-latch interrupt events >> + - description: sw exception interrupt events >> + - description: watchdog interrupt events >> + - description: interrupt event for ring CE0 >> + - description: interrupt event for ring CE1 >> + - description: interrupt event for ring CE2 >> + - description: interrupt event for ring CE3 >> + - description: interrupt event for ring CE4 >> + - description: interrupt event for ring CE5 >> + - description: interrupt event for ring CE6 >> + - description: interrupt event for ring CE7 >> + - description: interrupt event for ring CE8 >> + - description: interrupt event for ring CE9 >> + - description: interrupt event for ring CE10 >> + - description: interrupt event for ring CE11 >> + - description: interrupt event for ring host2wbm-desc-feed >> + - description: interrupt event for ring host2reo-re-injection >> + - description: interrupt event for ring host2reo-command >> + - description: interrupt event for ring host2rxdma-monitor-ring3 >> + - description: interrupt event for ring host2rxdma-monitor-ring2 >> + - description: interrupt event for ring host2rxdma-monitor-ring1 >> + - description: interrupt event for ring reo2ost-exception >> + - description: interrupt event for ring wbm2host-rx-release >> + - description: interrupt event for ring reo2host-status >> + - description: interrupt event for ring reo2host-destination-ring4 >> + - description: interrupt event for ring reo2host-destination-ring3 >> + - description: interrupt event for ring reo2host-destination-ring2 >> + - description: interrupt event for ring reo2host-destination-ring1 >> + - description: interrupt event for ring rxdma2host-monitor-destination-mac3 >> + - description: interrupt event for ring rxdma2host-monitor-destination-mac2 >> + - description: interrupt event for ring rxdma2host-monitor-destination-mac1 >> + - description: interrupt event for ring ppdu-end-interrupts-mac3 >> + - description: interrupt event for ring ppdu-end-interrupts-mac2 >> + - description: interrupt event for ring ppdu-end-interrupts-mac1 >> + - description: interrupt event for ring rxdma2host-monitor-status-ring-mac3 >> + - description: interrupt event for ring rxdma2host-monitor-status-ring-mac2 >> + - description: interrupt event for ring rxdma2host-monitor-status-ring-mac1 >> + - description: interrupt event for ring host2rxdma-host-buf-ring-mac3 >> + - description: interrupt event for ring host2rxdma-host-buf-ring-mac2 >> + - description: interrupt event for ring host2rxdma-host-buf-ring-mac1 >> + - description: interrupt event for ring rxdma2host-destination-ring-mac3 >> + - description: interrupt event for ring rxdma2host-destination-ring-mac2 >> + - description: interrupt event for ring rxdma2host-destination-ring-mac1 >> + - description: interrupt event for ring host2tcl-input-ring4 >> + - description: interrupt event for ring host2tcl-input-ring3 >> + - description: interrupt event for ring host2tcl-input-ring2 >> + - description: interrupt event for ring host2tcl-input-ring1 >> + - description: interrupt event for ring wbm2host-tx-completions-ring3 >> + - description: interrupt event for ring wbm2host-tx-completions-ring2 >> + - description: interrupt event for ring wbm2host-tx-completions-ring1 >> + - description: interrupt event for ring tcl2host-status-ring >> + interrupt-names: >> + items: >> + - const: misc-pulse1 >> + - const: misc-latch >> + - const: sw-exception >> + - const: watchdog >> + - const: ce0 >> + - const: ce1 >> + - const: ce2 >> + - const: ce3 >> + - const: ce4 >> + - const: ce5 >> + - const: ce6 >> + - const: ce7 >> + - const: ce8 >> + - const: ce9 >> + - const: ce10 >> + - const: ce11 >> + - const: host2wbm-desc-feed >> + - const: host2reo-re-injection >> + - const: host2reo-command >> + - const: host2rxdma-monitor-ring3 >> + - const: host2rxdma-monitor-ring2 >> + - const: host2rxdma-monitor-ring1 >> + - const: reo2ost-exception >> + - const: wbm2host-rx-release >> + - const: reo2host-status >> + - const: reo2host-destination-ring4 >> + - const: reo2host-destination-ring3 >> + - const: reo2host-destination-ring2 >> + - const: reo2host-destination-ring1 >> + - const: rxdma2host-monitor-destination-mac3 >> + - const: rxdma2host-monitor-destination-mac2 >> + - const: rxdma2host-monitor-destination-mac1 >> + - const: ppdu-end-interrupts-mac3 >> + - const: ppdu-end-interrupts-mac2 >> + - const: ppdu-end-interrupts-mac1 >> + - const: rxdma2host-monitor-status-ring-mac3 >> + - const: rxdma2host-monitor-status-ring-mac2 >> + - const: rxdma2host-monitor-status-ring-mac1 >> + - const: host2rxdma-host-buf-ring-mac3 >> + - const: host2rxdma-host-buf-ring-mac2 >> + - const: host2rxdma-host-buf-ring-mac1 >> + - const: rxdma2host-destination-ring-mac3 >> + - const: rxdma2host-destination-ring-mac2 >> + - const: rxdma2host-destination-ring-mac1 >> + - const: host2tcl-input-ring4 >> + - const: host2tcl-input-ring3 >> + - const: host2tcl-input-ring2 >> + - const: host2tcl-input-ring1 >> + - const: wbm2host-tx-completions-ring3 >> + - const: wbm2host-tx-completions-ring2 >> + - const: wbm2host-tx-completions-ring1 >> + - const: tcl2host-status-ring >> + >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - qcom,ipq8074-wifi >> + - qcom,ipq6018-wifi >> + then: >> + required: >> + - interrupt-names >> + >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - qcom,wcn6750-wifi >> + then: >> + properties: >> + interrupts: >> + items: >> + - description: interrupt event for ring CE1 >> + - description: interrupt event for ring CE2 >> + - description: interrupt event for ring CE3 >> + - description: interrupt event for ring CE4 >> + - description: interrupt event for ring CE5 >> + - description: interrupt event for ring CE6 >> + - description: interrupt event for ring CE7 >> + - description: interrupt event for ring CE8 >> + - description: interrupt event for ring CE9 >> + - description: interrupt event for ring CE10 >> + - description: interrupt event for ring DP1 >> + - description: interrupt event for ring DP2 >> + - description: interrupt event for ring DP3 >> + - description: interrupt event for ring DP4 >> + - description: interrupt event for ring DP5 >> + - description: interrupt event for ring DP6 >> + - description: interrupt event for ring DP7 >> + - description: interrupt event for ring DP8 >> + - description: interrupt event for ring DP9 >> + - description: interrupt event for ring DP10 >> + - description: interrupt event for ring DP11 >> + - description: interrupt event for ring DP12 >> + - description: interrupt event for ring DP13 >> + - description: interrupt event for ring DP14 >> + - description: interrupt event for ring DP15 >> + - description: interrupt event for ring DP16 >> + - description: interrupt event for ring DP17 >> + - description: interrupt event for ring DP18 >> + - description: interrupt event for ring DP19 >> + - description: interrupt event for ring DP20 >> + - description: interrupt event for ring DP21 >> + - description: interrupt event for ring DP22 >> + >> examples: >> - | >> >> @@ -309,3 +391,64 @@ examples: >> }; >> }; >> }; >> + >> + - | >> + #include <dt-bindings/interrupt-controller/arm-gic.h> >> + >> + reserved-memory { >> + #address-cells = <2>; >> + #size-cells = <2>; >> + >> + wlan_ce_mem: wlan_ce_mem@4cd000 { > > Node names should use dashes ('-') as separators, so the node name should > be 'wlan-ce-mem'. > > Actually reserved memory nodes for sc7280 are all named memory@addr, the > binding should follow this convention, so 'memory@4cd000'. > >> + no-map; >> + reg = <0x0 0x4cd000 0x0 0x1000>; > > Pad the address here to 8 digits > >> + }; >> + >> + wlan_fw_mem: wlan_fw_mem@80c00000 { > > Same as above: memory@80c00000 > >> + no-map; >> + reg = <0x0 0x80c00000 0x0 0xc00000>; >> + }; >> + }; >> + >> + wifi: wifi@17a10040 { >> + compatible = "qcom,wcn6750-wifi"; >> + reg = <0x17A10040 0x0>; > > Use lowercase for hex digits > >> + iommus = <&apps_smmu 0x1C00 0x1>; > > Ditto > >> + interrupts = <GIC_SPI 768 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 769 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 770 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 771 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 772 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 773 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 774 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 775 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 776 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 777 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 778 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 779 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 780 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 781 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 782 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 783 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 784 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 785 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 786 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 787 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 788 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 789 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 790 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 791 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 792 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 793 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 794 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 795 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 796 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 797 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 798 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 799 IRQ_TYPE_EDGE_RISING>; >> + qcom,rproc = <&remoteproc_wpss>; >> + memory-region = <&wlan_fw_mem>, <&wlan_ce_mem>; >> + wifi-firmware { >> + iommus = <&apps_smmu 0x1C02 0x1>; > > Use lowercase for hex digits > >> + }; >> + }; I'll address all of these. Thanks, Manikanta ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2022-04-05 6:25 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20220328060937.16738-1-quic_mpubbise@quicinc.com>
[not found] ` <20220328060937.16738-2-quic_mpubbise@quicinc.com>
2022-03-28 6:13 ` [PATCH v3 01/12] dt: bindings: net: add bindings of WCN6750 for ath11k Manikanta Pubbisetty
2022-03-28 9:18 ` Kalle Valo
2022-03-28 9:19 ` Kalle Valo
2022-03-28 9:46 ` Manikanta Pubbisetty
2022-03-28 9:48 [PATCH v3 00/12] add support for WCN6750 Manikanta Pubbisetty
2022-03-28 9:48 ` [PATCH v3 01/12] dt: bindings: net: add bindings of WCN6750 for ath11k Manikanta Pubbisetty
2022-03-29 23:37 ` Rob Herring
2022-03-30 5:19 ` Manikanta Pubbisetty
2022-04-04 19:11 ` Matthias Kaehlcke
2022-04-05 6:25 ` Manikanta Pubbisetty
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).