1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/net/wireless/qcom,ath10k.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm Technologies ath10k wireless devices 8 9maintainers: 10 - Jeff Johnson <jjohnson@kernel.org> 11 12description: 13 Qualcomm Technologies, Inc. IEEE 802.11ac devices. 14 15properties: 16 compatible: 17 enum: 18 - qcom,ath10k # SDIO-based devices 19 - qcom,ipq4019-wifi 20 - qcom,wcn3990-wifi # SNoC-based devices 21 22 reg: 23 maxItems: 1 24 25 reg-names: 26 items: 27 - const: membase 28 29 interrupts: 30 minItems: 12 31 maxItems: 17 32 33 interrupt-names: 34 minItems: 12 35 maxItems: 17 36 37 memory-region: 38 maxItems: 1 39 description: 40 Reference to the MSA memory region used by the Wi-Fi firmware 41 running on the Q6 core. 42 43 iommus: 44 minItems: 1 45 maxItems: 2 46 47 clocks: 48 minItems: 1 49 maxItems: 3 50 51 clock-names: 52 minItems: 1 53 maxItems: 3 54 55 resets: 56 maxItems: 6 57 58 reset-names: 59 items: 60 - const: wifi_cpu_init 61 - const: wifi_radio_srif 62 - const: wifi_radio_warm 63 - const: wifi_radio_cold 64 - const: wifi_core_warm 65 - const: wifi_core_cold 66 67 ext-fem-name: 68 $ref: /schemas/types.yaml#/definitions/string 69 description: Name of external front end module used. 70 enum: 71 - microsemi-lx5586 72 - sky85703-11 73 - sky85803 74 75 firmware-name: 76 maxItems: 1 77 description: 78 If present, a board or platform specific string used to lookup firmware 79 files for the device. 80 81 wifi-firmware: 82 type: object 83 additionalProperties: false 84 description: | 85 The ath10k Wi-Fi node can contain one optional firmware subnode. 86 Firmware subnode is needed when the platform does not have Trustzone. 87 properties: 88 iommus: 89 maxItems: 1 90 required: 91 - iommus 92 93 ieee80211-freq-limit: true 94 95 qcom,calibration-data: 96 $ref: /schemas/types.yaml#/definitions/uint8-array 97 description: 98 Calibration data + board-specific data as a byte array. The length 99 can vary between hardware versions. 100 101 qcom,ath10k-calibration-data: 102 $ref: /schemas/types.yaml#/definitions/uint8-array 103 deprecated: true 104 description: 105 Calibration data + board-specific data as a byte array. The length 106 can vary between hardware versions. 107 108 qcom,calibration-variant: 109 $ref: /schemas/types.yaml#/definitions/string 110 description: 111 Unique variant identifier of the calibration data in board-2.bin 112 for designs with colliding bus and device specific ids 113 114 qcom,ath10k-calibration-variant: 115 $ref: /schemas/types.yaml#/definitions/string 116 deprecated: true 117 description: 118 Unique variant identifier of the calibration data in board-2.bin 119 for designs with colliding bus and device specific ids 120 121 qcom,pre-calibration-data: 122 $ref: /schemas/types.yaml#/definitions/uint8-array 123 description: 124 Pre-calibration data as a byte array. The length can vary between 125 hardware versions. 126 127 qcom,ath10k-pre-calibration-data: 128 $ref: /schemas/types.yaml#/definitions/uint8-array 129 deprecated: true 130 description: 131 Pre-calibration data as a byte array. The length can vary between 132 hardware versions. 133 134 qcom,coexist-support: 135 $ref: /schemas/types.yaml#/definitions/uint8 136 enum: [0, 1] 137 description: 138 Indicate coex support by the hardware. 139 140 qcom,coexist-gpio-pin: 141 $ref: /schemas/types.yaml#/definitions/uint32 142 description: 143 COEX GPIO number provided to the Wi-Fi firmware. 144 145 qcom,msa-fixed-perm: 146 type: boolean 147 description: 148 Whether to skip executing an SCM call that reassigns the memory 149 region ownership. 150 151 qcom,no-msa-ready-indicator: 152 type: boolean 153 description: 154 Don't wait for MSA_READY indicator to complete init. 155 156 qcom,smem-states: 157 $ref: /schemas/types.yaml#/definitions/phandle-array 158 description: State bits used by the AP to signal the WLAN Q6. 159 items: 160 - description: Signal bits used to enable/disable low power mode 161 on WCN in the case of WoW (Wake on Wireless). 162 163 qcom,smem-state-names: 164 description: The names of the state bits used for SMP2P output. 165 items: 166 - const: wlan-smp2p-out 167 168 qcom,snoc-host-cap-8bit-quirk: 169 type: boolean 170 description: 171 Quirk specifying that the firmware expects the 8bit version 172 of the host capability QMI request 173 174 qcom,snoc-host-cap-skip-quirk: 175 type: boolean 176 description: 177 Quirk specifying that the firmware wants to skip the host 178 capability QMI request 179 180 qcom,xo-cal-data: 181 $ref: /schemas/types.yaml#/definitions/uint32 182 description: 183 XO cal offset to be configured in XO trim register. 184 185 vdd-0.8-cx-mx-supply: 186 description: Main logic power rail 187 188 vdd-1.8-xo-supply: 189 description: Crystal oscillator supply 190 191 vdd-1.3-rfa-supply: 192 description: RFA supply 193 194 vdd-3.3-ch0-supply: 195 description: Primary Wi-Fi antenna supply 196 197 vdd-3.3-ch1-supply: 198 description: Secondary Wi-Fi antenna supply 199 200required: 201 - compatible 202 - reg 203 204additionalProperties: false 205 206allOf: 207 - $ref: ieee80211.yaml# 208 - if: 209 properties: 210 compatible: 211 contains: 212 enum: 213 - qcom,ipq4019-wifi 214 then: 215 properties: 216 interrupts: 217 minItems: 17 218 maxItems: 17 219 220 interrupt-names: 221 items: 222 - const: msi0 223 - const: msi1 224 - const: msi2 225 - const: msi3 226 - const: msi4 227 - const: msi5 228 - const: msi6 229 - const: msi7 230 - const: msi8 231 - const: msi9 232 - const: msi10 233 - const: msi11 234 - const: msi12 235 - const: msi13 236 - const: msi14 237 - const: msi15 238 - const: legacy 239 240 clocks: 241 items: 242 - description: Wi-Fi command clock 243 - description: Wi-Fi reference clock 244 - description: Wi-Fi RTC clock 245 246 clock-names: 247 items: 248 - const: wifi_wcss_cmd 249 - const: wifi_wcss_ref 250 - const: wifi_wcss_rtc 251 252 required: 253 - clocks 254 - clock-names 255 - interrupts 256 - interrupt-names 257 - resets 258 - reset-names 259 260 - if: 261 properties: 262 compatible: 263 contains: 264 enum: 265 - qcom,wcn3990-wifi 266 267 then: 268 properties: 269 clocks: 270 minItems: 1 271 items: 272 - description: XO reference clock 273 - description: Qualcomm Debug Subsystem clock 274 275 clock-names: 276 minItems: 1 277 items: 278 - const: cxo_ref_clk_pin 279 - const: qdss 280 281 interrupts: 282 items: 283 - description: CE0 284 - description: CE1 285 - description: CE2 286 - description: CE3 287 - description: CE4 288 - description: CE5 289 - description: CE6 290 - description: CE7 291 - description: CE8 292 - description: CE9 293 - description: CE10 294 - description: CE11 295 296 interrupt-names: false 297 298 required: 299 - interrupts 300 301 - not: 302 required: 303 - qcom,snoc-host-cap-8bit-quirk 304 - qcom,snoc-host-cap-skip-quirk 305 306examples: 307 # SNoC 308 - | 309 #include <dt-bindings/clock/qcom,rpmcc.h> 310 #include <dt-bindings/interrupt-controller/arm-gic.h> 311 312 wifi@18800000 { 313 compatible = "qcom,wcn3990-wifi"; 314 reg = <0x18800000 0x800000>; 315 reg-names = "membase"; 316 memory-region = <&wlan_msa_mem>; 317 clocks = <&rpmcc RPM_SMD_RF_CLK2_PIN>; 318 clock-names = "cxo_ref_clk_pin"; 319 interrupts = <GIC_SPI 413 IRQ_TYPE_LEVEL_HIGH>, 320 <GIC_SPI 414 IRQ_TYPE_LEVEL_HIGH>, 321 <GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH>, 322 <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>, 323 <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>, 324 <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>, 325 <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>, 326 <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>, 327 <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>, 328 <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>, 329 <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>, 330 <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>; 331 iommus = <&anoc2_smmu 0x1900>, 332 <&anoc2_smmu 0x1901>; 333 qcom,snoc-host-cap-8bit-quirk; 334 vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>; 335 vdd-1.8-xo-supply = <&vreg_l7a_1p8>; 336 vdd-1.3-rfa-supply = <&vreg_l17a_1p3>; 337 vdd-3.3-ch0-supply = <&vreg_l25a_3p3>; 338 vdd-3.3-ch1-supply = <&vreg_l23a_3p3>; 339 340 wifi-firmware { 341 iommus = <&apps_smmu 0x1c02 0x1>; 342 }; 343 }; 344 345 # AHB 346 - | 347 #include <dt-bindings/clock/qcom,gcc-ipq4019.h> 348 349 wifi@a000000 { 350 compatible = "qcom,ipq4019-wifi"; 351 reg = <0xa000000 0x200000>; 352 resets = <&gcc WIFI0_CPU_INIT_RESET>, 353 <&gcc WIFI0_RADIO_SRIF_RESET>, 354 <&gcc WIFI0_RADIO_WARM_RESET>, 355 <&gcc WIFI0_RADIO_COLD_RESET>, 356 <&gcc WIFI0_CORE_WARM_RESET>, 357 <&gcc WIFI0_CORE_COLD_RESET>; 358 reset-names = "wifi_cpu_init", 359 "wifi_radio_srif", 360 "wifi_radio_warm", 361 "wifi_radio_cold", 362 "wifi_core_warm", 363 "wifi_core_cold"; 364 clocks = <&gcc GCC_WCSS2G_CLK>, 365 <&gcc GCC_WCSS2G_REF_CLK>, 366 <&gcc GCC_WCSS2G_RTC_CLK>; 367 clock-names = "wifi_wcss_cmd", 368 "wifi_wcss_ref", 369 "wifi_wcss_rtc"; 370 interrupts = <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>, 371 <GIC_SPI 33 IRQ_TYPE_EDGE_RISING>, 372 <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>, 373 <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>, 374 <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>, 375 <GIC_SPI 37 IRQ_TYPE_EDGE_RISING>, 376 <GIC_SPI 38 IRQ_TYPE_EDGE_RISING>, 377 <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>, 378 <GIC_SPI 40 IRQ_TYPE_EDGE_RISING>, 379 <GIC_SPI 41 IRQ_TYPE_EDGE_RISING>, 380 <GIC_SPI 42 IRQ_TYPE_EDGE_RISING>, 381 <GIC_SPI 43 IRQ_TYPE_EDGE_RISING>, 382 <GIC_SPI 44 IRQ_TYPE_EDGE_RISING>, 383 <GIC_SPI 45 IRQ_TYPE_EDGE_RISING>, 384 <GIC_SPI 46 IRQ_TYPE_EDGE_RISING>, 385 <GIC_SPI 47 IRQ_TYPE_EDGE_RISING>, 386 <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; 387 interrupt-names = "msi0", 388 "msi1", 389 "msi2", 390 "msi3", 391 "msi4", 392 "msi5", 393 "msi6", 394 "msi7", 395 "msi8", 396 "msi9", 397 "msi10", 398 "msi11", 399 "msi12", 400 "msi13", 401 "msi14", 402 "msi15", 403 "legacy"; 404 ieee80211-freq-limit = <5470000 5875000>; 405 }; 406