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