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