| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| # Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. |
| |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/net/wireless/qcom,ath11k.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Qualcomm Technologies ath11k wireless devices Generic Binding |
| |
| maintainers: |
| - Kalle Valo <kvalo@kernel.org> |
| |
| description: | |
| These are dt entries for Qualcomm Technologies, Inc. IEEE 802.11ax |
| devices, for example like AHB based IPQ8074. |
| |
| properties: |
| compatible: |
| enum: |
| - qcom,ipq8074-wifi |
| - qcom,ipq6018-wifi |
| - qcom,wcn6750-wifi |
| |
| reg: |
| maxItems: 1 |
| |
| interrupts: |
| minItems: 32 |
| maxItems: 52 |
| |
| interrupt-names: |
| maxItems: 52 |
| |
| qcom,rproc: |
| $ref: /schemas/types.yaml#/definitions/phandle |
| description: |
| DT entry of q6v5-wcss remoteproc driver. |
| Phandle to a node that can contain the following properties |
| * compatible |
| * reg |
| * reg-names |
| |
| qcom,ath11k-calibration-variant: |
| $ref: /schemas/types.yaml#/definitions/string |
| description: |
| string to uniquely identify variant of the calibration data in the |
| board-2.bin for designs with colliding bus and device specific ids |
| |
| memory-region: |
| 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 Trustzone. |
| required: |
| - iommus |
| |
| required: |
| - compatible |
| - reg |
| - interrupts |
| - 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: |
| - | |
| |
| q6v5_wcss: q6v5_wcss@CD00000 { |
| compatible = "qcom,ipq8074-wcss-pil"; |
| reg = <0xCD00000 0x4040>, |
| <0x4AB000 0x20>; |
| reg-names = "qdsp6", |
| "rmb"; |
| }; |
| |
| wifi0: wifi@c000000 { |
| compatible = "qcom,ipq8074-wifi"; |
| reg = <0xc000000 0x2000000>; |
| interrupts = <0 320 1>, |
| <0 319 1>, |
| <0 318 1>, |
| <0 317 1>, |
| <0 316 1>, |
| <0 315 1>, |
| <0 314 1>, |
| <0 311 1>, |
| <0 310 1>, |
| <0 411 1>, |
| <0 410 1>, |
| <0 40 1>, |
| <0 39 1>, |
| <0 302 1>, |
| <0 301 1>, |
| <0 37 1>, |
| <0 36 1>, |
| <0 296 1>, |
| <0 295 1>, |
| <0 294 1>, |
| <0 293 1>, |
| <0 292 1>, |
| <0 291 1>, |
| <0 290 1>, |
| <0 289 1>, |
| <0 288 1>, |
| <0 239 1>, |
| <0 236 1>, |
| <0 235 1>, |
| <0 234 1>, |
| <0 233 1>, |
| <0 232 1>, |
| <0 231 1>, |
| <0 230 1>, |
| <0 229 1>, |
| <0 228 1>, |
| <0 224 1>, |
| <0 223 1>, |
| <0 203 1>, |
| <0 183 1>, |
| <0 180 1>, |
| <0 179 1>, |
| <0 178 1>, |
| <0 177 1>, |
| <0 176 1>, |
| <0 163 1>, |
| <0 162 1>, |
| <0 160 1>, |
| <0 159 1>, |
| <0 158 1>, |
| <0 157 1>, |
| <0 156 1>; |
| interrupt-names = "misc-pulse1", |
| "misc-latch", |
| "sw-exception", |
| "watchdog", |
| "ce0", |
| "ce1", |
| "ce2", |
| "ce3", |
| "ce4", |
| "ce5", |
| "ce6", |
| "ce7", |
| "ce8", |
| "ce9", |
| "ce10", |
| "ce11", |
| "host2wbm-desc-feed", |
| "host2reo-re-injection", |
| "host2reo-command", |
| "host2rxdma-monitor-ring3", |
| "host2rxdma-monitor-ring2", |
| "host2rxdma-monitor-ring1", |
| "reo2ost-exception", |
| "wbm2host-rx-release", |
| "reo2host-status", |
| "reo2host-destination-ring4", |
| "reo2host-destination-ring3", |
| "reo2host-destination-ring2", |
| "reo2host-destination-ring1", |
| "rxdma2host-monitor-destination-mac3", |
| "rxdma2host-monitor-destination-mac2", |
| "rxdma2host-monitor-destination-mac1", |
| "ppdu-end-interrupts-mac3", |
| "ppdu-end-interrupts-mac2", |
| "ppdu-end-interrupts-mac1", |
| "rxdma2host-monitor-status-ring-mac3", |
| "rxdma2host-monitor-status-ring-mac2", |
| "rxdma2host-monitor-status-ring-mac1", |
| "host2rxdma-host-buf-ring-mac3", |
| "host2rxdma-host-buf-ring-mac2", |
| "host2rxdma-host-buf-ring-mac1", |
| "rxdma2host-destination-ring-mac3", |
| "rxdma2host-destination-ring-mac2", |
| "rxdma2host-destination-ring-mac1", |
| "host2tcl-input-ring4", |
| "host2tcl-input-ring3", |
| "host2tcl-input-ring2", |
| "host2tcl-input-ring1", |
| "wbm2host-tx-completions-ring3", |
| "wbm2host-tx-completions-ring2", |
| "wbm2host-tx-completions-ring1", |
| "tcl2host-status-ring"; |
| qcom,rproc = <&q6v5_wcss>; |
| }; |
| |
| - | |
| |
| reserved-memory { |
| #address-cells = <2>; |
| #size-cells = <2>; |
| |
| qcn9074_0: qcn9074_0@51100000 { |
| no-map; |
| reg = <0x0 0x51100000 0x0 0x03500000>; |
| }; |
| }; |
| |
| pci { |
| pcie0 { |
| #size-cells = <2>; |
| #address-cells = <3>; |
| |
| wifi_0: wifi@0 { |
| reg = <0 0 0 0 0>; |
| memory-region = <&qcn9074_0>; |
| }; |
| }; |
| }; |
| |
| - | |
| #include <dt-bindings/interrupt-controller/arm-gic.h> |
| |
| reserved-memory { |
| #address-cells = <2>; |
| #size-cells = <2>; |
| |
| wlan_ce_mem: memory@4cd000 { |
| no-map; |
| reg = <0x0 0x004cd000 0x0 0x1000>; |
| }; |
| |
| wlan_fw_mem: memory@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>; |
| }; |
| }; |