# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/net/wireless/qcom,ath10k.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Qualcomm Technologies ath10k wireless devices maintainers: - Kalle Valo <kvalo@kernel.org> description: Qualcomm Technologies, Inc. IEEE 802.11ac devices. properties: compatible: enum: - qcom,ath10k # SDIO-based devices - qcom,ipq4019-wifi - qcom,wcn3990-wifi # SNoC-based devices reg: maxItems: 1 reg-names: items: - const: membase interrupts: minItems: 12 maxItems: 17 interrupt-names: minItems: 12 maxItems: 17 memory-region: maxItems: 1 description: Reference to the MSA memory region used by the Wi-Fi firmware running on the Q6 core. iommus: minItems: 1 maxItems: 2 clocks: minItems: 1 maxItems: 3 clock-names: minItems: 1 maxItems: 3 resets: maxItems: 6 reset-names: items: - const: wifi_cpu_init - const: wifi_radio_srif - const: wifi_radio_warm - const: wifi_radio_cold - const: wifi_core_warm - const: wifi_core_cold ext-fem-name: $ref: /schemas/types.yaml#/definitions/string description: Name of external front end module used. enum: - microsemi-lx5586 - sky85703-11 - sky85803 wifi-firmware: type: object additionalProperties: false description: | The ath10k Wi-Fi node can contain one optional firmware subnode. Firmware subnode is needed when the platform does not have Trustzone. properties: iommus: maxItems: 1 required: - iommus ieee80211-freq-limit: true qcom,ath10k-calibration-data: $ref: /schemas/types.yaml#/definitions/uint8-array description: Calibration data + board-specific data as a byte array. The length can vary between hardware versions. qcom,ath10k-calibration-variant: $ref: /schemas/types.yaml#/definitions/string description: Unique variant identifier of the calibration data in board-2.bin for designs with colliding bus and device specific ids qcom,ath10k-pre-calibration-data: $ref: /schemas/types.yaml#/definitions/uint8-array description: Pre-calibration data as a byte array. The length can vary between hardware versions. qcom,coexist-support: $ref: /schemas/types.yaml#/definitions/uint8 enum: [0, 1] description: Indicate coex support by the hardware. qcom,coexist-gpio-pin: $ref: /schemas/types.yaml#/definitions/uint32 description: COEX GPIO number provided to the Wi-Fi firmware. qcom,msa-fixed-perm: type: boolean description: Whether to skip executing an SCM call that reassigns the memory region ownership. qcom,smem-states: $ref: /schemas/types.yaml#/definitions/phandle-array description: State bits used by the AP to signal the WLAN Q6. items: - description: Signal bits used to enable/disable low power mode on WCN in the case of WoW (Wake on Wireless). qcom,smem-state-names: description: The names of the state bits used for SMP2P output. items: - const: wlan-smp2p-out qcom,snoc-host-cap-8bit-quirk: type: boolean description: Quirk specifying that the firmware expects the 8bit version of the host capability QMI request qcom,xo-cal-data: $ref: /schemas/types.yaml#/definitions/uint32 description: XO cal offset to be configured in XO trim register. vdd-0.8-cx-mx-supply: description: Main logic power rail vdd-1.8-xo-supply: description: Crystal oscillator supply vdd-1.3-rfa-supply: description: RFA supply vdd-3.3-ch0-supply: description: Primary Wi-Fi antenna supply vdd-3.3-ch1-supply: description: Secondary Wi-Fi antenna supply required: - compatible - reg additionalProperties: false allOf: - $ref: ieee80211.yaml# - if: properties: compatible: contains: enum: - qcom,ipq4019-wifi then: properties: interrupts: minItems: 17 maxItems: 17 interrupt-names: items: - const: msi0 - const: msi1 - const: msi2 - const: msi3 - const: msi4 - const: msi5 - const: msi6 - const: msi7 - const: msi8 - const: msi9 - const: msi10 - const: msi11 - const: msi12 - const: msi13 - const: msi14 - const: msi15 - const: legacy clocks: items: - description: Wi-Fi command clock - description: Wi-Fi reference clock - description: Wi-Fi RTC clock clock-names: items: - const: wifi_wcss_cmd - const: wifi_wcss_ref - const: wifi_wcss_rtc required: - clocks - clock-names - interrupts - interrupt-names - resets - reset-names - if: properties: compatible: contains: enum: - qcom,wcn3990-wifi then: properties: clocks: minItems: 1 items: - description: XO reference clock - description: Qualcomm Debug Subsystem clock clock-names: minItems: 1 items: - const: cxo_ref_clk_pin - const: qdss interrupts: items: - description: CE0 - description: CE1 - description: CE2 - description: CE3 - description: CE4 - description: CE5 - description: CE6 - description: CE7 - description: CE8 - description: CE9 - description: CE10 - description: CE11 interrupt-names: false required: - interrupts examples: # SNoC - | #include <dt-bindings/clock/qcom,rpmcc.h> #include <dt-bindings/interrupt-controller/arm-gic.h> wifi@18800000 { compatible = "qcom,wcn3990-wifi"; reg = <0x18800000 0x800000>; reg-names = "membase"; memory-region = <&wlan_msa_mem>; clocks = <&rpmcc RPM_SMD_RF_CLK2_PIN>; clock-names = "cxo_ref_clk_pin"; interrupts = <GIC_SPI 413 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 414 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>; iommus = <&anoc2_smmu 0x1900>, <&anoc2_smmu 0x1901>; qcom,snoc-host-cap-8bit-quirk; vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>; vdd-1.8-xo-supply = <&vreg_l7a_1p8>; vdd-1.3-rfa-supply = <&vreg_l17a_1p3>; vdd-3.3-ch0-supply = <&vreg_l25a_3p3>; vdd-3.3-ch1-supply = <&vreg_l23a_3p3>; wifi-firmware { iommus = <&apps_smmu 0x1c02 0x1>; }; }; # AHB - | #include <dt-bindings/clock/qcom,gcc-ipq4019.h> wifi@a000000 { compatible = "qcom,ipq4019-wifi"; reg = <0xa000000 0x200000>; resets = <&gcc WIFI0_CPU_INIT_RESET>, <&gcc WIFI0_RADIO_SRIF_RESET>, <&gcc WIFI0_RADIO_WARM_RESET>, <&gcc WIFI0_RADIO_COLD_RESET>, <&gcc WIFI0_CORE_WARM_RESET>, <&gcc WIFI0_CORE_COLD_RESET>; reset-names = "wifi_cpu_init", "wifi_radio_srif", "wifi_radio_warm", "wifi_radio_cold", "wifi_core_warm", "wifi_core_cold"; clocks = <&gcc GCC_WCSS2G_CLK>, <&gcc GCC_WCSS2G_REF_CLK>, <&gcc GCC_WCSS2G_RTC_CLK>; clock-names = "wifi_wcss_cmd", "wifi_wcss_ref", "wifi_wcss_rtc"; interrupts = <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 33 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 37 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 38 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 40 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 41 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 42 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 43 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 44 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 45 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 46 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 47 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "msi0", "msi1", "msi2", "msi3", "msi4", "msi5", "msi6", "msi7", "msi8", "msi9", "msi10", "msi11", "msi12", "msi13", "msi14", "msi15", "legacy"; ieee80211-freq-limit = <5470000 5875000>; };