1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2# Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. 3 4%YAML 1.2 5--- 6$id: http://devicetree.org/schemas/net/wireless/qcom,ath11k.yaml# 7$schema: http://devicetree.org/meta-schemas/core.yaml# 8 9title: Qualcomm Technologies ath11k wireless devices Generic Binding 10 11maintainers: 12 - Kalle Valo <kvalo@kernel.org> 13 14description: | 15 These are dt entries for Qualcomm Technologies, Inc. IEEE 802.11ax 16 devices, for example like AHB based IPQ8074. 17 18properties: 19 compatible: 20 enum: 21 - qcom,ipq8074-wifi 22 - qcom,ipq6018-wifi 23 - qcom,wcn6750-wifi 24 25 reg: 26 maxItems: 1 27 28 interrupts: 29 minItems: 32 30 maxItems: 52 31 32 interrupt-names: 33 maxItems: 52 34 35 qcom,rproc: 36 $ref: /schemas/types.yaml#/definitions/phandle 37 description: 38 DT entry of q6v5-wcss remoteproc driver. 39 Phandle to a node that can contain the following properties 40 * compatible 41 * reg 42 * reg-names 43 44 qcom,ath11k-calibration-variant: 45 $ref: /schemas/types.yaml#/definitions/string 46 description: 47 string to uniquely identify variant of the calibration data in the 48 board-2.bin for designs with colliding bus and device specific ids 49 50 memory-region: 51 minItems: 1 52 maxItems: 2 53 description: 54 phandle to a node describing reserved memory (System RAM memory) 55 used by ath11k firmware (see bindings/reserved-memory/reserved-memory.txt) 56 57 iommus: 58 minItems: 1 59 maxItems: 2 60 61 wifi-firmware: 62 type: object 63 description: | 64 WCN6750 wifi node can contain one optional firmware subnode. 65 Firmware subnode is needed when the platform does not have Trustzone. 66 required: 67 - iommus 68 69required: 70 - compatible 71 - reg 72 - interrupts 73 - qcom,rproc 74 75additionalProperties: false 76 77allOf: 78 - if: 79 properties: 80 compatible: 81 contains: 82 enum: 83 - qcom,ipq8074-wifi 84 - qcom,ipq6018-wifi 85 then: 86 properties: 87 interrupts: 88 items: 89 - description: misc-pulse1 interrupt events 90 - description: misc-latch interrupt events 91 - description: sw exception interrupt events 92 - description: watchdog interrupt events 93 - description: interrupt event for ring CE0 94 - description: interrupt event for ring CE1 95 - description: interrupt event for ring CE2 96 - description: interrupt event for ring CE3 97 - description: interrupt event for ring CE4 98 - description: interrupt event for ring CE5 99 - description: interrupt event for ring CE6 100 - description: interrupt event for ring CE7 101 - description: interrupt event for ring CE8 102 - description: interrupt event for ring CE9 103 - description: interrupt event for ring CE10 104 - description: interrupt event for ring CE11 105 - description: interrupt event for ring host2wbm-desc-feed 106 - description: interrupt event for ring host2reo-re-injection 107 - description: interrupt event for ring host2reo-command 108 - description: interrupt event for ring host2rxdma-monitor-ring3 109 - description: interrupt event for ring host2rxdma-monitor-ring2 110 - description: interrupt event for ring host2rxdma-monitor-ring1 111 - description: interrupt event for ring reo2ost-exception 112 - description: interrupt event for ring wbm2host-rx-release 113 - description: interrupt event for ring reo2host-status 114 - description: interrupt event for ring reo2host-destination-ring4 115 - description: interrupt event for ring reo2host-destination-ring3 116 - description: interrupt event for ring reo2host-destination-ring2 117 - description: interrupt event for ring reo2host-destination-ring1 118 - description: interrupt event for ring rxdma2host-monitor-destination-mac3 119 - description: interrupt event for ring rxdma2host-monitor-destination-mac2 120 - description: interrupt event for ring rxdma2host-monitor-destination-mac1 121 - description: interrupt event for ring ppdu-end-interrupts-mac3 122 - description: interrupt event for ring ppdu-end-interrupts-mac2 123 - description: interrupt event for ring ppdu-end-interrupts-mac1 124 - description: interrupt event for ring rxdma2host-monitor-status-ring-mac3 125 - description: interrupt event for ring rxdma2host-monitor-status-ring-mac2 126 - description: interrupt event for ring rxdma2host-monitor-status-ring-mac1 127 - description: interrupt event for ring host2rxdma-host-buf-ring-mac3 128 - description: interrupt event for ring host2rxdma-host-buf-ring-mac2 129 - description: interrupt event for ring host2rxdma-host-buf-ring-mac1 130 - description: interrupt event for ring rxdma2host-destination-ring-mac3 131 - description: interrupt event for ring rxdma2host-destination-ring-mac2 132 - description: interrupt event for ring rxdma2host-destination-ring-mac1 133 - description: interrupt event for ring host2tcl-input-ring4 134 - description: interrupt event for ring host2tcl-input-ring3 135 - description: interrupt event for ring host2tcl-input-ring2 136 - description: interrupt event for ring host2tcl-input-ring1 137 - description: interrupt event for ring wbm2host-tx-completions-ring3 138 - description: interrupt event for ring wbm2host-tx-completions-ring2 139 - description: interrupt event for ring wbm2host-tx-completions-ring1 140 - description: interrupt event for ring tcl2host-status-ring 141 interrupt-names: 142 items: 143 - const: misc-pulse1 144 - const: misc-latch 145 - const: sw-exception 146 - const: watchdog 147 - const: ce0 148 - const: ce1 149 - const: ce2 150 - const: ce3 151 - const: ce4 152 - const: ce5 153 - const: ce6 154 - const: ce7 155 - const: ce8 156 - const: ce9 157 - const: ce10 158 - const: ce11 159 - const: host2wbm-desc-feed 160 - const: host2reo-re-injection 161 - const: host2reo-command 162 - const: host2rxdma-monitor-ring3 163 - const: host2rxdma-monitor-ring2 164 - const: host2rxdma-monitor-ring1 165 - const: reo2ost-exception 166 - const: wbm2host-rx-release 167 - const: reo2host-status 168 - const: reo2host-destination-ring4 169 - const: reo2host-destination-ring3 170 - const: reo2host-destination-ring2 171 - const: reo2host-destination-ring1 172 - const: rxdma2host-monitor-destination-mac3 173 - const: rxdma2host-monitor-destination-mac2 174 - const: rxdma2host-monitor-destination-mac1 175 - const: ppdu-end-interrupts-mac3 176 - const: ppdu-end-interrupts-mac2 177 - const: ppdu-end-interrupts-mac1 178 - const: rxdma2host-monitor-status-ring-mac3 179 - const: rxdma2host-monitor-status-ring-mac2 180 - const: rxdma2host-monitor-status-ring-mac1 181 - const: host2rxdma-host-buf-ring-mac3 182 - const: host2rxdma-host-buf-ring-mac2 183 - const: host2rxdma-host-buf-ring-mac1 184 - const: rxdma2host-destination-ring-mac3 185 - const: rxdma2host-destination-ring-mac2 186 - const: rxdma2host-destination-ring-mac1 187 - const: host2tcl-input-ring4 188 - const: host2tcl-input-ring3 189 - const: host2tcl-input-ring2 190 - const: host2tcl-input-ring1 191 - const: wbm2host-tx-completions-ring3 192 - const: wbm2host-tx-completions-ring2 193 - const: wbm2host-tx-completions-ring1 194 - const: tcl2host-status-ring 195 196 - if: 197 properties: 198 compatible: 199 contains: 200 enum: 201 - qcom,ipq8074-wifi 202 - qcom,ipq6018-wifi 203 then: 204 required: 205 - interrupt-names 206 207 - if: 208 properties: 209 compatible: 210 contains: 211 enum: 212 - qcom,wcn6750-wifi 213 then: 214 properties: 215 interrupts: 216 items: 217 - description: interrupt event for ring CE1 218 - description: interrupt event for ring CE2 219 - description: interrupt event for ring CE3 220 - description: interrupt event for ring CE4 221 - description: interrupt event for ring CE5 222 - description: interrupt event for ring CE6 223 - description: interrupt event for ring CE7 224 - description: interrupt event for ring CE8 225 - description: interrupt event for ring CE9 226 - description: interrupt event for ring CE10 227 - description: interrupt event for ring DP1 228 - description: interrupt event for ring DP2 229 - description: interrupt event for ring DP3 230 - description: interrupt event for ring DP4 231 - description: interrupt event for ring DP5 232 - description: interrupt event for ring DP6 233 - description: interrupt event for ring DP7 234 - description: interrupt event for ring DP8 235 - description: interrupt event for ring DP9 236 - description: interrupt event for ring DP10 237 - description: interrupt event for ring DP11 238 - description: interrupt event for ring DP12 239 - description: interrupt event for ring DP13 240 - description: interrupt event for ring DP14 241 - description: interrupt event for ring DP15 242 - description: interrupt event for ring DP16 243 - description: interrupt event for ring DP17 244 - description: interrupt event for ring DP18 245 - description: interrupt event for ring DP19 246 - description: interrupt event for ring DP20 247 - description: interrupt event for ring DP21 248 - description: interrupt event for ring DP22 249 250examples: 251 - | 252 253 q6v5_wcss: q6v5_wcss@CD00000 { 254 compatible = "qcom,ipq8074-wcss-pil"; 255 reg = <0xCD00000 0x4040>, 256 <0x4AB000 0x20>; 257 reg-names = "qdsp6", 258 "rmb"; 259 }; 260 261 wifi0: wifi@c000000 { 262 compatible = "qcom,ipq8074-wifi"; 263 reg = <0xc000000 0x2000000>; 264 interrupts = <0 320 1>, 265 <0 319 1>, 266 <0 318 1>, 267 <0 317 1>, 268 <0 316 1>, 269 <0 315 1>, 270 <0 314 1>, 271 <0 311 1>, 272 <0 310 1>, 273 <0 411 1>, 274 <0 410 1>, 275 <0 40 1>, 276 <0 39 1>, 277 <0 302 1>, 278 <0 301 1>, 279 <0 37 1>, 280 <0 36 1>, 281 <0 296 1>, 282 <0 295 1>, 283 <0 294 1>, 284 <0 293 1>, 285 <0 292 1>, 286 <0 291 1>, 287 <0 290 1>, 288 <0 289 1>, 289 <0 288 1>, 290 <0 239 1>, 291 <0 236 1>, 292 <0 235 1>, 293 <0 234 1>, 294 <0 233 1>, 295 <0 232 1>, 296 <0 231 1>, 297 <0 230 1>, 298 <0 229 1>, 299 <0 228 1>, 300 <0 224 1>, 301 <0 223 1>, 302 <0 203 1>, 303 <0 183 1>, 304 <0 180 1>, 305 <0 179 1>, 306 <0 178 1>, 307 <0 177 1>, 308 <0 176 1>, 309 <0 163 1>, 310 <0 162 1>, 311 <0 160 1>, 312 <0 159 1>, 313 <0 158 1>, 314 <0 157 1>, 315 <0 156 1>; 316 interrupt-names = "misc-pulse1", 317 "misc-latch", 318 "sw-exception", 319 "watchdog", 320 "ce0", 321 "ce1", 322 "ce2", 323 "ce3", 324 "ce4", 325 "ce5", 326 "ce6", 327 "ce7", 328 "ce8", 329 "ce9", 330 "ce10", 331 "ce11", 332 "host2wbm-desc-feed", 333 "host2reo-re-injection", 334 "host2reo-command", 335 "host2rxdma-monitor-ring3", 336 "host2rxdma-monitor-ring2", 337 "host2rxdma-monitor-ring1", 338 "reo2ost-exception", 339 "wbm2host-rx-release", 340 "reo2host-status", 341 "reo2host-destination-ring4", 342 "reo2host-destination-ring3", 343 "reo2host-destination-ring2", 344 "reo2host-destination-ring1", 345 "rxdma2host-monitor-destination-mac3", 346 "rxdma2host-monitor-destination-mac2", 347 "rxdma2host-monitor-destination-mac1", 348 "ppdu-end-interrupts-mac3", 349 "ppdu-end-interrupts-mac2", 350 "ppdu-end-interrupts-mac1", 351 "rxdma2host-monitor-status-ring-mac3", 352 "rxdma2host-monitor-status-ring-mac2", 353 "rxdma2host-monitor-status-ring-mac1", 354 "host2rxdma-host-buf-ring-mac3", 355 "host2rxdma-host-buf-ring-mac2", 356 "host2rxdma-host-buf-ring-mac1", 357 "rxdma2host-destination-ring-mac3", 358 "rxdma2host-destination-ring-mac2", 359 "rxdma2host-destination-ring-mac1", 360 "host2tcl-input-ring4", 361 "host2tcl-input-ring3", 362 "host2tcl-input-ring2", 363 "host2tcl-input-ring1", 364 "wbm2host-tx-completions-ring3", 365 "wbm2host-tx-completions-ring2", 366 "wbm2host-tx-completions-ring1", 367 "tcl2host-status-ring"; 368 qcom,rproc = <&q6v5_wcss>; 369 }; 370 371 - | 372 373 reserved-memory { 374 #address-cells = <2>; 375 #size-cells = <2>; 376 377 qcn9074_0: qcn9074_0@51100000 { 378 no-map; 379 reg = <0x0 0x51100000 0x0 0x03500000>; 380 }; 381 }; 382 383 pci { 384 pcie0 { 385 #size-cells = <2>; 386 #address-cells = <3>; 387 388 wifi_0: wifi@0 { 389 reg = <0 0 0 0 0>; 390 memory-region = <&qcn9074_0>; 391 }; 392 }; 393 }; 394 395 - | 396 #include <dt-bindings/interrupt-controller/arm-gic.h> 397 398 reserved-memory { 399 #address-cells = <2>; 400 #size-cells = <2>; 401 402 wlan_ce_mem: memory@4cd000 { 403 no-map; 404 reg = <0x0 0x004cd000 0x0 0x1000>; 405 }; 406 407 wlan_fw_mem: memory@80c00000 { 408 no-map; 409 reg = <0x0 0x80c00000 0x0 0xc00000>; 410 }; 411 }; 412 413 wifi: wifi@17a10040 { 414 compatible = "qcom,wcn6750-wifi"; 415 reg = <0x17a10040 0x0>; 416 iommus = <&apps_smmu 0x1c00 0x1>; 417 interrupts = <GIC_SPI 768 IRQ_TYPE_EDGE_RISING>, 418 <GIC_SPI 769 IRQ_TYPE_EDGE_RISING>, 419 <GIC_SPI 770 IRQ_TYPE_EDGE_RISING>, 420 <GIC_SPI 771 IRQ_TYPE_EDGE_RISING>, 421 <GIC_SPI 772 IRQ_TYPE_EDGE_RISING>, 422 <GIC_SPI 773 IRQ_TYPE_EDGE_RISING>, 423 <GIC_SPI 774 IRQ_TYPE_EDGE_RISING>, 424 <GIC_SPI 775 IRQ_TYPE_EDGE_RISING>, 425 <GIC_SPI 776 IRQ_TYPE_EDGE_RISING>, 426 <GIC_SPI 777 IRQ_TYPE_EDGE_RISING>, 427 <GIC_SPI 778 IRQ_TYPE_EDGE_RISING>, 428 <GIC_SPI 779 IRQ_TYPE_EDGE_RISING>, 429 <GIC_SPI 780 IRQ_TYPE_EDGE_RISING>, 430 <GIC_SPI 781 IRQ_TYPE_EDGE_RISING>, 431 <GIC_SPI 782 IRQ_TYPE_EDGE_RISING>, 432 <GIC_SPI 783 IRQ_TYPE_EDGE_RISING>, 433 <GIC_SPI 784 IRQ_TYPE_EDGE_RISING>, 434 <GIC_SPI 785 IRQ_TYPE_EDGE_RISING>, 435 <GIC_SPI 786 IRQ_TYPE_EDGE_RISING>, 436 <GIC_SPI 787 IRQ_TYPE_EDGE_RISING>, 437 <GIC_SPI 788 IRQ_TYPE_EDGE_RISING>, 438 <GIC_SPI 789 IRQ_TYPE_EDGE_RISING>, 439 <GIC_SPI 790 IRQ_TYPE_EDGE_RISING>, 440 <GIC_SPI 791 IRQ_TYPE_EDGE_RISING>, 441 <GIC_SPI 792 IRQ_TYPE_EDGE_RISING>, 442 <GIC_SPI 793 IRQ_TYPE_EDGE_RISING>, 443 <GIC_SPI 794 IRQ_TYPE_EDGE_RISING>, 444 <GIC_SPI 795 IRQ_TYPE_EDGE_RISING>, 445 <GIC_SPI 796 IRQ_TYPE_EDGE_RISING>, 446 <GIC_SPI 797 IRQ_TYPE_EDGE_RISING>, 447 <GIC_SPI 798 IRQ_TYPE_EDGE_RISING>, 448 <GIC_SPI 799 IRQ_TYPE_EDGE_RISING>; 449 qcom,rproc = <&remoteproc_wpss>; 450 memory-region = <&wlan_fw_mem>, <&wlan_ce_mem>; 451 wifi-firmware { 452 iommus = <&apps_smmu 0x1c02 0x1>; 453 }; 454 }; 455