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