212 lines
6.2 KiB
YAML
212 lines
6.2 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
# Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/net/wireless/qcom,ath12k-wsi.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Qualcomm Technologies ath12k wireless devices (PCIe) with WSI interface
|
|
|
|
maintainers:
|
|
- Jeff Johnson <jjohnson@kernel.org>
|
|
- Kalle Valo <kvalo@kernel.org>
|
|
|
|
description: |
|
|
Qualcomm Technologies IEEE 802.11be PCIe devices with WSI interface.
|
|
|
|
The ath12k devices (QCN9274) feature WSI support. WSI stands for
|
|
WLAN Serial Interface. It is used for the exchange of specific
|
|
control information across radios based on the doorbell mechanism.
|
|
This WSI connection is essential to exchange control information
|
|
among these devices.
|
|
|
|
The WSI interface includes TX and RX ports, which are used to connect
|
|
multiple WSI-supported devices together, forming a WSI group.
|
|
|
|
Diagram to represent one WSI connection (one WSI group) among
|
|
three devices.
|
|
|
|
+-------+ +-------+ +-------+
|
|
| pcie1 | | pcie2 | | pcie3 |
|
|
| | | | | |
|
|
+----->| wsi |------->| wsi |------->| wsi |-----+
|
|
| | grp 0 | | grp 0 | | grp 0 | |
|
|
| +-------+ +-------+ +-------+ |
|
|
+------------------------------------------------------+
|
|
|
|
Diagram to represent two WSI connections (two separate WSI groups)
|
|
among four devices.
|
|
|
|
+-------+ +-------+ +-------+ +-------+
|
|
| pcie0 | | pcie1 | | pcie2 | | pcie3 |
|
|
| | | | | | | |
|
|
+-->| wsi |--->| wsi |--+ +-->| wsi |--->| wsi |--+
|
|
| | grp 0 | | grp 0 | | | | grp 1 | | grp 1 | |
|
|
| +-------+ +-------+ | | +-------+ +-------+ |
|
|
+---------------------------+ +---------------------------+
|
|
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- pci17cb,1109 # QCN9274
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
qcom,calibration-variant:
|
|
$ref: /schemas/types.yaml#/definitions/string
|
|
description:
|
|
String to uniquely identify variant of the calibration data for designs
|
|
with colliding bus and device ids
|
|
|
|
qcom,ath12k-calibration-variant:
|
|
$ref: /schemas/types.yaml#/definitions/string
|
|
deprecated: true
|
|
description:
|
|
String to uniquely identify variant of the calibration data for designs
|
|
with colliding bus and device ids
|
|
|
|
qcom,wsi-controller:
|
|
$ref: /schemas/types.yaml#/definitions/flag
|
|
description:
|
|
The WSI controller device in the WSI group aids (is capable) to
|
|
synchronize the Timing Synchronization Function (TSF) clock across
|
|
all devices in the WSI group.
|
|
|
|
ports:
|
|
$ref: /schemas/graph.yaml#/properties/ports
|
|
properties:
|
|
port@0:
|
|
$ref: /schemas/graph.yaml#/properties/port
|
|
description:
|
|
This is the TX port of WSI interface. It is attached to the RX
|
|
port of the next device in the WSI connection.
|
|
|
|
port@1:
|
|
$ref: /schemas/graph.yaml#/properties/port
|
|
description:
|
|
This is the RX port of WSI interface. It is attached to the TX
|
|
port of the previous device in the WSI connection.
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
pcie {
|
|
#address-cells = <3>;
|
|
#size-cells = <2>;
|
|
|
|
pcie@0 {
|
|
device_type = "pci";
|
|
reg = <0x0 0x0 0x0 0x0 0x0>;
|
|
#address-cells = <3>;
|
|
#size-cells = <2>;
|
|
ranges;
|
|
|
|
wifi@0 {
|
|
compatible = "pci17cb,1109";
|
|
reg = <0x0 0x0 0x0 0x0 0x0>;
|
|
|
|
qcom,calibration-variant = "RDP433_1";
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
|
|
wifi1_wsi_tx: endpoint {
|
|
remote-endpoint = <&wifi2_wsi_rx>;
|
|
};
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
|
|
wifi1_wsi_rx: endpoint {
|
|
remote-endpoint = <&wifi3_wsi_tx>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
pcie@1 {
|
|
device_type = "pci";
|
|
reg = <0x0 0x0 0x1 0x0 0x0>;
|
|
#address-cells = <3>;
|
|
#size-cells = <2>;
|
|
ranges;
|
|
|
|
wifi@0 {
|
|
compatible = "pci17cb,1109";
|
|
reg = <0x0 0x0 0x0 0x0 0x0>;
|
|
|
|
qcom,calibration-variant = "RDP433_2";
|
|
qcom,wsi-controller;
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
|
|
wifi2_wsi_tx: endpoint {
|
|
remote-endpoint = <&wifi3_wsi_rx>;
|
|
};
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
|
|
wifi2_wsi_rx: endpoint {
|
|
remote-endpoint = <&wifi1_wsi_tx>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
pcie@2 {
|
|
device_type = "pci";
|
|
reg = <0x0 0x0 0x2 0x0 0x0>;
|
|
#address-cells = <3>;
|
|
#size-cells = <2>;
|
|
ranges;
|
|
|
|
wifi@0 {
|
|
compatible = "pci17cb,1109";
|
|
reg = <0x0 0x0 0x0 0x0 0x0>;
|
|
|
|
qcom,calibration-variant = "RDP433_3";
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
|
|
wifi3_wsi_tx: endpoint {
|
|
remote-endpoint = <&wifi1_wsi_rx>;
|
|
};
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
|
|
wifi3_wsi_rx: endpoint {
|
|
remote-endpoint = <&wifi2_wsi_tx>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|