375 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			375 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
# 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>
 | 
						|
  - Jeff Johnson <jjohnson@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
 | 
						|
 | 
						|
  firmware-name:
 | 
						|
    maxItems: 1
 | 
						|
    description:
 | 
						|
      If present, a board or platform specific string used to lookup firmware
 | 
						|
      files for the device.
 | 
						|
 | 
						|
  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,no-msa-ready-indicator:
 | 
						|
    type: boolean
 | 
						|
    description:
 | 
						|
      Don't wait for MSA_READY indicator to complete init.
 | 
						|
 | 
						|
  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>;
 | 
						|
      };    
 |