xref: /freebsd/sys/contrib/device-tree/Bindings/net/wireless/qcom,ath12k-wsi.yaml (revision 8ccc0d235c226d84112561d453c49904398d085c)
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