12846c905SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 22846c905SEmmanuel Vadot# Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. 32846c905SEmmanuel Vadot%YAML 1.2 42846c905SEmmanuel Vadot--- 52846c905SEmmanuel Vadot$id: http://devicetree.org/schemas/net/wireless/qcom,ath12k-wsi.yaml# 62846c905SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 72846c905SEmmanuel Vadot 82846c905SEmmanuel Vadottitle: Qualcomm Technologies ath12k wireless devices (PCIe) with WSI interface 92846c905SEmmanuel Vadot 102846c905SEmmanuel Vadotmaintainers: 112846c905SEmmanuel Vadot - Jeff Johnson <jjohnson@kernel.org> 122846c905SEmmanuel Vadot 132846c905SEmmanuel Vadotdescription: | 142846c905SEmmanuel Vadot Qualcomm Technologies IEEE 802.11be PCIe devices with WSI interface. 152846c905SEmmanuel Vadot 162846c905SEmmanuel Vadot The ath12k devices (QCN9274) feature WSI support. WSI stands for 172846c905SEmmanuel Vadot WLAN Serial Interface. It is used for the exchange of specific 182846c905SEmmanuel Vadot control information across radios based on the doorbell mechanism. 192846c905SEmmanuel Vadot This WSI connection is essential to exchange control information 202846c905SEmmanuel Vadot among these devices. 212846c905SEmmanuel Vadot 222846c905SEmmanuel Vadot The WSI interface includes TX and RX ports, which are used to connect 232846c905SEmmanuel Vadot multiple WSI-supported devices together, forming a WSI group. 242846c905SEmmanuel Vadot 252846c905SEmmanuel Vadot Diagram to represent one WSI connection (one WSI group) among 262846c905SEmmanuel Vadot three devices. 272846c905SEmmanuel Vadot 282846c905SEmmanuel Vadot +-------+ +-------+ +-------+ 292846c905SEmmanuel Vadot | pcie1 | | pcie2 | | pcie3 | 302846c905SEmmanuel Vadot | | | | | | 312846c905SEmmanuel Vadot +----->| wsi |------->| wsi |------->| wsi |-----+ 322846c905SEmmanuel Vadot | | grp 0 | | grp 0 | | grp 0 | | 332846c905SEmmanuel Vadot | +-------+ +-------+ +-------+ | 342846c905SEmmanuel Vadot +------------------------------------------------------+ 352846c905SEmmanuel Vadot 362846c905SEmmanuel Vadot Diagram to represent two WSI connections (two separate WSI groups) 372846c905SEmmanuel Vadot among four devices. 382846c905SEmmanuel Vadot 392846c905SEmmanuel Vadot +-------+ +-------+ +-------+ +-------+ 402846c905SEmmanuel Vadot | pcie0 | | pcie1 | | pcie2 | | pcie3 | 412846c905SEmmanuel Vadot | | | | | | | | 422846c905SEmmanuel Vadot +-->| wsi |--->| wsi |--+ +-->| wsi |--->| wsi |--+ 432846c905SEmmanuel Vadot | | grp 0 | | grp 0 | | | | grp 1 | | grp 1 | | 442846c905SEmmanuel Vadot | +-------+ +-------+ | | +-------+ +-------+ | 452846c905SEmmanuel Vadot +---------------------------+ +---------------------------+ 462846c905SEmmanuel Vadot 472846c905SEmmanuel Vadotproperties: 482846c905SEmmanuel Vadot compatible: 492846c905SEmmanuel Vadot enum: 502846c905SEmmanuel Vadot - pci17cb,1109 # QCN9274 512846c905SEmmanuel Vadot 522846c905SEmmanuel Vadot reg: 532846c905SEmmanuel Vadot maxItems: 1 542846c905SEmmanuel Vadot 55*8ccc0d23SEmmanuel Vadot qcom,calibration-variant: 56*8ccc0d23SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/string 57*8ccc0d23SEmmanuel Vadot description: 58*8ccc0d23SEmmanuel Vadot String to uniquely identify variant of the calibration data for designs 59*8ccc0d23SEmmanuel Vadot with colliding bus and device ids 60*8ccc0d23SEmmanuel Vadot 612846c905SEmmanuel Vadot qcom,ath12k-calibration-variant: 622846c905SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/string 63*8ccc0d23SEmmanuel Vadot deprecated: true 642846c905SEmmanuel Vadot description: 652846c905SEmmanuel Vadot String to uniquely identify variant of the calibration data for designs 662846c905SEmmanuel Vadot with colliding bus and device ids 672846c905SEmmanuel Vadot 682846c905SEmmanuel Vadot qcom,wsi-controller: 692846c905SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/flag 702846c905SEmmanuel Vadot description: 712846c905SEmmanuel Vadot The WSI controller device in the WSI group aids (is capable) to 722846c905SEmmanuel Vadot synchronize the Timing Synchronization Function (TSF) clock across 732846c905SEmmanuel Vadot all devices in the WSI group. 742846c905SEmmanuel Vadot 752846c905SEmmanuel Vadot ports: 762846c905SEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/ports 772846c905SEmmanuel Vadot properties: 782846c905SEmmanuel Vadot port@0: 792846c905SEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/port 802846c905SEmmanuel Vadot description: 812846c905SEmmanuel Vadot This is the TX port of WSI interface. It is attached to the RX 822846c905SEmmanuel Vadot port of the next device in the WSI connection. 832846c905SEmmanuel Vadot 842846c905SEmmanuel Vadot port@1: 852846c905SEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/port 862846c905SEmmanuel Vadot description: 872846c905SEmmanuel Vadot This is the RX port of WSI interface. It is attached to the TX 882846c905SEmmanuel Vadot port of the previous device in the WSI connection. 892846c905SEmmanuel Vadot 902846c905SEmmanuel Vadotrequired: 912846c905SEmmanuel Vadot - compatible 922846c905SEmmanuel Vadot - reg 932846c905SEmmanuel Vadot 942846c905SEmmanuel VadotadditionalProperties: false 952846c905SEmmanuel Vadot 962846c905SEmmanuel Vadotexamples: 972846c905SEmmanuel Vadot - | 982846c905SEmmanuel Vadot pcie { 992846c905SEmmanuel Vadot #address-cells = <3>; 1002846c905SEmmanuel Vadot #size-cells = <2>; 1012846c905SEmmanuel Vadot 1022846c905SEmmanuel Vadot pcie@0 { 1032846c905SEmmanuel Vadot device_type = "pci"; 1042846c905SEmmanuel Vadot reg = <0x0 0x0 0x0 0x0 0x0>; 1052846c905SEmmanuel Vadot #address-cells = <3>; 1062846c905SEmmanuel Vadot #size-cells = <2>; 1072846c905SEmmanuel Vadot ranges; 1082846c905SEmmanuel Vadot 1092846c905SEmmanuel Vadot wifi@0 { 1102846c905SEmmanuel Vadot compatible = "pci17cb,1109"; 1112846c905SEmmanuel Vadot reg = <0x0 0x0 0x0 0x0 0x0>; 1122846c905SEmmanuel Vadot 113*8ccc0d23SEmmanuel Vadot qcom,calibration-variant = "RDP433_1"; 1142846c905SEmmanuel Vadot 1152846c905SEmmanuel Vadot ports { 1162846c905SEmmanuel Vadot #address-cells = <1>; 1172846c905SEmmanuel Vadot #size-cells = <0>; 1182846c905SEmmanuel Vadot 1192846c905SEmmanuel Vadot port@0 { 1202846c905SEmmanuel Vadot reg = <0>; 1212846c905SEmmanuel Vadot 1222846c905SEmmanuel Vadot wifi1_wsi_tx: endpoint { 1232846c905SEmmanuel Vadot remote-endpoint = <&wifi2_wsi_rx>; 1242846c905SEmmanuel Vadot }; 1252846c905SEmmanuel Vadot }; 1262846c905SEmmanuel Vadot 1272846c905SEmmanuel Vadot port@1 { 1282846c905SEmmanuel Vadot reg = <1>; 1292846c905SEmmanuel Vadot 1302846c905SEmmanuel Vadot wifi1_wsi_rx: endpoint { 1312846c905SEmmanuel Vadot remote-endpoint = <&wifi3_wsi_tx>; 1322846c905SEmmanuel Vadot }; 1332846c905SEmmanuel Vadot }; 1342846c905SEmmanuel Vadot }; 1352846c905SEmmanuel Vadot }; 1362846c905SEmmanuel Vadot }; 1372846c905SEmmanuel Vadot 1382846c905SEmmanuel Vadot pcie@1 { 1392846c905SEmmanuel Vadot device_type = "pci"; 1402846c905SEmmanuel Vadot reg = <0x0 0x0 0x1 0x0 0x0>; 1412846c905SEmmanuel Vadot #address-cells = <3>; 1422846c905SEmmanuel Vadot #size-cells = <2>; 1432846c905SEmmanuel Vadot ranges; 1442846c905SEmmanuel Vadot 1452846c905SEmmanuel Vadot wifi@0 { 1462846c905SEmmanuel Vadot compatible = "pci17cb,1109"; 1472846c905SEmmanuel Vadot reg = <0x0 0x0 0x0 0x0 0x0>; 1482846c905SEmmanuel Vadot 149*8ccc0d23SEmmanuel Vadot qcom,calibration-variant = "RDP433_2"; 1502846c905SEmmanuel Vadot qcom,wsi-controller; 1512846c905SEmmanuel Vadot 1522846c905SEmmanuel Vadot ports { 1532846c905SEmmanuel Vadot #address-cells = <1>; 1542846c905SEmmanuel Vadot #size-cells = <0>; 1552846c905SEmmanuel Vadot 1562846c905SEmmanuel Vadot port@0 { 1572846c905SEmmanuel Vadot reg = <0>; 1582846c905SEmmanuel Vadot 1592846c905SEmmanuel Vadot wifi2_wsi_tx: endpoint { 1602846c905SEmmanuel Vadot remote-endpoint = <&wifi3_wsi_rx>; 1612846c905SEmmanuel Vadot }; 1622846c905SEmmanuel Vadot }; 1632846c905SEmmanuel Vadot 1642846c905SEmmanuel Vadot port@1 { 1652846c905SEmmanuel Vadot reg = <1>; 1662846c905SEmmanuel Vadot 1672846c905SEmmanuel Vadot wifi2_wsi_rx: endpoint { 1682846c905SEmmanuel Vadot remote-endpoint = <&wifi1_wsi_tx>; 1692846c905SEmmanuel Vadot }; 1702846c905SEmmanuel Vadot }; 1712846c905SEmmanuel Vadot }; 1722846c905SEmmanuel Vadot }; 1732846c905SEmmanuel Vadot }; 1742846c905SEmmanuel Vadot 1752846c905SEmmanuel Vadot pcie@2 { 1762846c905SEmmanuel Vadot device_type = "pci"; 1772846c905SEmmanuel Vadot reg = <0x0 0x0 0x2 0x0 0x0>; 1782846c905SEmmanuel Vadot #address-cells = <3>; 1792846c905SEmmanuel Vadot #size-cells = <2>; 1802846c905SEmmanuel Vadot ranges; 1812846c905SEmmanuel Vadot 1822846c905SEmmanuel Vadot wifi@0 { 1832846c905SEmmanuel Vadot compatible = "pci17cb,1109"; 1842846c905SEmmanuel Vadot reg = <0x0 0x0 0x0 0x0 0x0>; 1852846c905SEmmanuel Vadot 186*8ccc0d23SEmmanuel Vadot qcom,calibration-variant = "RDP433_3"; 1872846c905SEmmanuel Vadot 1882846c905SEmmanuel Vadot ports { 1892846c905SEmmanuel Vadot #address-cells = <1>; 1902846c905SEmmanuel Vadot #size-cells = <0>; 1912846c905SEmmanuel Vadot 1922846c905SEmmanuel Vadot port@0 { 1932846c905SEmmanuel Vadot reg = <0>; 1942846c905SEmmanuel Vadot 1952846c905SEmmanuel Vadot wifi3_wsi_tx: endpoint { 1962846c905SEmmanuel Vadot remote-endpoint = <&wifi1_wsi_rx>; 1972846c905SEmmanuel Vadot }; 1982846c905SEmmanuel Vadot }; 1992846c905SEmmanuel Vadot 2002846c905SEmmanuel Vadot port@1 { 2012846c905SEmmanuel Vadot reg = <1>; 2022846c905SEmmanuel Vadot 2032846c905SEmmanuel Vadot wifi3_wsi_rx: endpoint { 2042846c905SEmmanuel Vadot remote-endpoint = <&wifi2_wsi_tx>; 2052846c905SEmmanuel Vadot }; 2062846c905SEmmanuel Vadot }; 2072846c905SEmmanuel Vadot }; 2082846c905SEmmanuel Vadot }; 2092846c905SEmmanuel Vadot }; 2102846c905SEmmanuel Vadot }; 211