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 - Kalle Valo <kvalo@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 wifi-firmware: 76 type: object 77 additionalProperties: false 78 description: | 79 The ath10k Wi-Fi node can contain one optional firmware subnode. 80 Firmware subnode is needed when the platform does not have Trustzone. 81 properties: 82 iommus: 83 maxItems: 1 84 required: 85 - iommus 86 87 ieee80211-freq-limit: true 88 89 qcom,ath10k-calibration-data: 90 $ref: /schemas/types.yaml#/definitions/uint8-array 91 description: 92 Calibration data + board-specific data as a byte array. The length 93 can vary between hardware versions. 94 95 qcom,ath10k-calibration-variant: 96 $ref: /schemas/types.yaml#/definitions/string 97 description: 98 Unique variant identifier of the calibration data in board-2.bin 99 for designs with colliding bus and device specific ids 100 101 qcom,ath10k-pre-calibration-data: 102 $ref: /schemas/types.yaml#/definitions/uint8-array 103 description: 104 Pre-calibration data as a byte array. The length can vary between 105 hardware versions. 106 107 qcom,coexist-support: 108 $ref: /schemas/types.yaml#/definitions/uint8 109 enum: [0, 1] 110 description: 111 Indicate coex support by the hardware. 112 113 qcom,coexist-gpio-pin: 114 $ref: /schemas/types.yaml#/definitions/uint32 115 description: 116 COEX GPIO number provided to the Wi-Fi firmware. 117 118 qcom,msa-fixed-perm: 119 type: boolean 120 description: 121 Whether to skip executing an SCM call that reassigns the memory 122 region ownership. 123 124 qcom,smem-states: 125 $ref: /schemas/types.yaml#/definitions/phandle-array 126 description: State bits used by the AP to signal the WLAN Q6. 127 items: 128 - description: Signal bits used to enable/disable low power mode 129 on WCN in the case of WoW (Wake on Wireless). 130 131 qcom,smem-state-names: 132 description: The names of the state bits used for SMP2P output. 133 items: 134 - const: wlan-smp2p-out 135 136 qcom,snoc-host-cap-8bit-quirk: 137 type: boolean 138 description: 139 Quirk specifying that the firmware expects the 8bit version 140 of the host capability QMI request 141 142 qcom,xo-cal-data: 143 $ref: /schemas/types.yaml#/definitions/uint32 144 description: 145 XO cal offset to be configured in XO trim register. 146 147 vdd-0.8-cx-mx-supply: 148 description: Main logic power rail 149 150 vdd-1.8-xo-supply: 151 description: Crystal oscillator supply 152 153 vdd-1.3-rfa-supply: 154 description: RFA supply 155 156 vdd-3.3-ch0-supply: 157 description: Primary Wi-Fi antenna supply 158 159 vdd-3.3-ch1-supply: 160 description: Secondary Wi-Fi antenna supply 161 162required: 163 - compatible 164 - reg 165 166additionalProperties: false 167 168allOf: 169 - $ref: ieee80211.yaml# 170 - if: 171 properties: 172 compatible: 173 contains: 174 enum: 175 - qcom,ipq4019-wifi 176 then: 177 properties: 178 interrupts: 179 minItems: 17 180 maxItems: 17 181 182 interrupt-names: 183 items: 184 - const: msi0 185 - const: msi1 186 - const: msi2 187 - const: msi3 188 - const: msi4 189 - const: msi5 190 - const: msi6 191 - const: msi7 192 - const: msi8 193 - const: msi9 194 - const: msi10 195 - const: msi11 196 - const: msi12 197 - const: msi13 198 - const: msi14 199 - const: msi15 200 - const: legacy 201 202 clocks: 203 items: 204 - description: Wi-Fi command clock 205 - description: Wi-Fi reference clock 206 - description: Wi-Fi RTC clock 207 208 clock-names: 209 items: 210 - const: wifi_wcss_cmd 211 - const: wifi_wcss_ref 212 - const: wifi_wcss_rtc 213 214 required: 215 - clocks 216 - clock-names 217 - interrupts 218 - interrupt-names 219 - resets 220 - reset-names 221 222 - if: 223 properties: 224 compatible: 225 contains: 226 enum: 227 - qcom,wcn3990-wifi 228 229 then: 230 properties: 231 clocks: 232 minItems: 1 233 items: 234 - description: XO reference clock 235 - description: Qualcomm Debug Subsystem clock 236 237 clock-names: 238 minItems: 1 239 items: 240 - const: cxo_ref_clk_pin 241 - const: qdss 242 243 interrupts: 244 items: 245 - description: CE0 246 - description: CE1 247 - description: CE2 248 - description: CE3 249 - description: CE4 250 - description: CE5 251 - description: CE6 252 - description: CE7 253 - description: CE8 254 - description: CE9 255 - description: CE10 256 - description: CE11 257 258 interrupt-names: false 259 260 required: 261 - interrupts 262 263examples: 264 # SNoC 265 - | 266 #include <dt-bindings/clock/qcom,rpmcc.h> 267 #include <dt-bindings/interrupt-controller/arm-gic.h> 268 269 wifi@18800000 { 270 compatible = "qcom,wcn3990-wifi"; 271 reg = <0x18800000 0x800000>; 272 reg-names = "membase"; 273 memory-region = <&wlan_msa_mem>; 274 clocks = <&rpmcc RPM_SMD_RF_CLK2_PIN>; 275 clock-names = "cxo_ref_clk_pin"; 276 interrupts = <GIC_SPI 413 IRQ_TYPE_LEVEL_HIGH>, 277 <GIC_SPI 414 IRQ_TYPE_LEVEL_HIGH>, 278 <GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH>, 279 <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>, 280 <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>, 281 <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>, 282 <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>, 283 <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>, 284 <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>, 285 <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>, 286 <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>, 287 <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>; 288 iommus = <&anoc2_smmu 0x1900>, 289 <&anoc2_smmu 0x1901>; 290 qcom,snoc-host-cap-8bit-quirk; 291 vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>; 292 vdd-1.8-xo-supply = <&vreg_l7a_1p8>; 293 vdd-1.3-rfa-supply = <&vreg_l17a_1p3>; 294 vdd-3.3-ch0-supply = <&vreg_l25a_3p3>; 295 vdd-3.3-ch1-supply = <&vreg_l23a_3p3>; 296 297 wifi-firmware { 298 iommus = <&apps_smmu 0x1c02 0x1>; 299 }; 300 }; 301 302 # AHB 303 - | 304 #include <dt-bindings/clock/qcom,gcc-ipq4019.h> 305 306 wifi@a000000 { 307 compatible = "qcom,ipq4019-wifi"; 308 reg = <0xa000000 0x200000>; 309 resets = <&gcc WIFI0_CPU_INIT_RESET>, 310 <&gcc WIFI0_RADIO_SRIF_RESET>, 311 <&gcc WIFI0_RADIO_WARM_RESET>, 312 <&gcc WIFI0_RADIO_COLD_RESET>, 313 <&gcc WIFI0_CORE_WARM_RESET>, 314 <&gcc WIFI0_CORE_COLD_RESET>; 315 reset-names = "wifi_cpu_init", 316 "wifi_radio_srif", 317 "wifi_radio_warm", 318 "wifi_radio_cold", 319 "wifi_core_warm", 320 "wifi_core_cold"; 321 clocks = <&gcc GCC_WCSS2G_CLK>, 322 <&gcc GCC_WCSS2G_REF_CLK>, 323 <&gcc GCC_WCSS2G_RTC_CLK>; 324 clock-names = "wifi_wcss_cmd", 325 "wifi_wcss_ref", 326 "wifi_wcss_rtc"; 327 interrupts = <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>, 328 <GIC_SPI 33 IRQ_TYPE_EDGE_RISING>, 329 <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>, 330 <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>, 331 <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>, 332 <GIC_SPI 37 IRQ_TYPE_EDGE_RISING>, 333 <GIC_SPI 38 IRQ_TYPE_EDGE_RISING>, 334 <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>, 335 <GIC_SPI 40 IRQ_TYPE_EDGE_RISING>, 336 <GIC_SPI 41 IRQ_TYPE_EDGE_RISING>, 337 <GIC_SPI 42 IRQ_TYPE_EDGE_RISING>, 338 <GIC_SPI 43 IRQ_TYPE_EDGE_RISING>, 339 <GIC_SPI 44 IRQ_TYPE_EDGE_RISING>, 340 <GIC_SPI 45 IRQ_TYPE_EDGE_RISING>, 341 <GIC_SPI 46 IRQ_TYPE_EDGE_RISING>, 342 <GIC_SPI 47 IRQ_TYPE_EDGE_RISING>, 343 <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; 344 interrupt-names = "msi0", 345 "msi1", 346 "msi2", 347 "msi3", 348 "msi4", 349 "msi5", 350 "msi6", 351 "msi7", 352 "msi8", 353 "msi9", 354 "msi10", 355 "msi11", 356 "msi12", 357 "msi13", 358 "msi14", 359 "msi15", 360 "legacy"; 361 ieee80211-freq-limit = <5470000 5875000>; 362 }; 363