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 items: 163 - description: Phandle to the Shared Memory Point 2 Point device 164 handling the communication with a remote processor 165 - description: Single bit index to toggle in the value sent to 166 the remote processor 167 maximum: 32 168 169 qcom,smem-state-names: 170 description: The names of the state bits used for SMP2P output. 171 items: 172 - const: wlan-smp2p-out 173 174 qcom,snoc-host-cap-8bit-quirk: 175 type: boolean 176 description: 177 Quirk specifying that the firmware expects the 8bit version 178 of the host capability QMI request 179 180 qcom,snoc-host-cap-skip-quirk: 181 type: boolean 182 description: 183 Quirk specifying that the firmware wants to skip the host 184 capability QMI request 185 186 qcom,xo-cal-data: 187 $ref: /schemas/types.yaml#/definitions/uint32 188 description: 189 XO cal offset to be configured in XO trim register. 190 191 vdd-0.8-cx-mx-supply: 192 description: Main logic power rail 193 194 vdd-1.8-xo-supply: 195 description: Crystal oscillator supply 196 197 vdd-1.3-rfa-supply: 198 description: RFA supply 199 200 vdd-3.3-ch0-supply: 201 description: Primary Wi-Fi antenna supply 202 203 vdd-3.3-ch1-supply: 204 description: Secondary Wi-Fi antenna supply 205 206required: 207 - compatible 208 - reg 209 210additionalProperties: false 211 212allOf: 213 - $ref: ieee80211.yaml# 214 - if: 215 properties: 216 compatible: 217 contains: 218 enum: 219 - qcom,ipq4019-wifi 220 then: 221 properties: 222 interrupts: 223 minItems: 17 224 maxItems: 17 225 226 interrupt-names: 227 items: 228 - const: msi0 229 - const: msi1 230 - const: msi2 231 - const: msi3 232 - const: msi4 233 - const: msi5 234 - const: msi6 235 - const: msi7 236 - const: msi8 237 - const: msi9 238 - const: msi10 239 - const: msi11 240 - const: msi12 241 - const: msi13 242 - const: msi14 243 - const: msi15 244 - const: legacy 245 246 clocks: 247 items: 248 - description: Wi-Fi command clock 249 - description: Wi-Fi reference clock 250 - description: Wi-Fi RTC clock 251 252 clock-names: 253 items: 254 - const: wifi_wcss_cmd 255 - const: wifi_wcss_ref 256 - const: wifi_wcss_rtc 257 258 required: 259 - clocks 260 - clock-names 261 - interrupts 262 - interrupt-names 263 - resets 264 - reset-names 265 266 - if: 267 properties: 268 compatible: 269 contains: 270 enum: 271 - qcom,wcn3990-wifi 272 273 then: 274 properties: 275 clocks: 276 minItems: 1 277 items: 278 - description: XO reference clock 279 - description: Qualcomm Debug Subsystem clock 280 281 clock-names: 282 minItems: 1 283 items: 284 - const: cxo_ref_clk_pin 285 - const: qdss 286 287 interrupts: 288 items: 289 - description: CE0 290 - description: CE1 291 - description: CE2 292 - description: CE3 293 - description: CE4 294 - description: CE5 295 - description: CE6 296 - description: CE7 297 - description: CE8 298 - description: CE9 299 - description: CE10 300 - description: CE11 301 302 interrupt-names: false 303 304 required: 305 - interrupts 306 307 - not: 308 required: 309 - qcom,snoc-host-cap-8bit-quirk 310 - qcom,snoc-host-cap-skip-quirk 311 312examples: 313 # SNoC 314 - | 315 #include <dt-bindings/clock/qcom,rpmcc.h> 316 #include <dt-bindings/interrupt-controller/arm-gic.h> 317 318 wifi@18800000 { 319 compatible = "qcom,wcn3990-wifi"; 320 reg = <0x18800000 0x800000>; 321 reg-names = "membase"; 322 memory-region = <&wlan_msa_mem>; 323 clocks = <&rpmcc RPM_SMD_RF_CLK2_PIN>; 324 clock-names = "cxo_ref_clk_pin"; 325 interrupts = <GIC_SPI 413 IRQ_TYPE_LEVEL_HIGH>, 326 <GIC_SPI 414 IRQ_TYPE_LEVEL_HIGH>, 327 <GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH>, 328 <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>, 329 <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>, 330 <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>, 331 <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>, 332 <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>, 333 <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>, 334 <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>, 335 <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>, 336 <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>; 337 iommus = <&anoc2_smmu 0x1900>, 338 <&anoc2_smmu 0x1901>; 339 qcom,snoc-host-cap-8bit-quirk; 340 vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>; 341 vdd-1.8-xo-supply = <&vreg_l7a_1p8>; 342 vdd-1.3-rfa-supply = <&vreg_l17a_1p3>; 343 vdd-3.3-ch0-supply = <&vreg_l25a_3p3>; 344 vdd-3.3-ch1-supply = <&vreg_l23a_3p3>; 345 346 wifi-firmware { 347 iommus = <&apps_smmu 0x1c02 0x1>; 348 }; 349 }; 350 351 # AHB 352 - | 353 #include <dt-bindings/clock/qcom,gcc-ipq4019.h> 354 355 wifi@a000000 { 356 compatible = "qcom,ipq4019-wifi"; 357 reg = <0xa000000 0x200000>; 358 resets = <&gcc WIFI0_CPU_INIT_RESET>, 359 <&gcc WIFI0_RADIO_SRIF_RESET>, 360 <&gcc WIFI0_RADIO_WARM_RESET>, 361 <&gcc WIFI0_RADIO_COLD_RESET>, 362 <&gcc WIFI0_CORE_WARM_RESET>, 363 <&gcc WIFI0_CORE_COLD_RESET>; 364 reset-names = "wifi_cpu_init", 365 "wifi_radio_srif", 366 "wifi_radio_warm", 367 "wifi_radio_cold", 368 "wifi_core_warm", 369 "wifi_core_cold"; 370 clocks = <&gcc GCC_WCSS2G_CLK>, 371 <&gcc GCC_WCSS2G_REF_CLK>, 372 <&gcc GCC_WCSS2G_RTC_CLK>; 373 clock-names = "wifi_wcss_cmd", 374 "wifi_wcss_ref", 375 "wifi_wcss_rtc"; 376 interrupts = <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>, 377 <GIC_SPI 33 IRQ_TYPE_EDGE_RISING>, 378 <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>, 379 <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>, 380 <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>, 381 <GIC_SPI 37 IRQ_TYPE_EDGE_RISING>, 382 <GIC_SPI 38 IRQ_TYPE_EDGE_RISING>, 383 <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>, 384 <GIC_SPI 40 IRQ_TYPE_EDGE_RISING>, 385 <GIC_SPI 41 IRQ_TYPE_EDGE_RISING>, 386 <GIC_SPI 42 IRQ_TYPE_EDGE_RISING>, 387 <GIC_SPI 43 IRQ_TYPE_EDGE_RISING>, 388 <GIC_SPI 44 IRQ_TYPE_EDGE_RISING>, 389 <GIC_SPI 45 IRQ_TYPE_EDGE_RISING>, 390 <GIC_SPI 46 IRQ_TYPE_EDGE_RISING>, 391 <GIC_SPI 47 IRQ_TYPE_EDGE_RISING>, 392 <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; 393 interrupt-names = "msi0", 394 "msi1", 395 "msi2", 396 "msi3", 397 "msi4", 398 "msi5", 399 "msi6", 400 "msi7", 401 "msi8", 402 "msi9", 403 "msi10", 404 "msi11", 405 "msi12", 406 "msi13", 407 "msi14", 408 "msi15", 409 "legacy"; 410 ieee80211-freq-limit = <5470000 5875000>; 411 }; 412