363 lines
9.9 KiB
YAML
363 lines
9.9 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>
|
|
|
|
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>;
|
|
};
|