xref: /linux/Documentation/devicetree/bindings/net/wireless/qcom,ath12k-wsi.yaml (revision e7e86d7697c6ed1dbbde18d7185c35b6967945ed)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2# Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
3%YAML 1.2
4---
5$id: http://devicetree.org/schemas/net/wireless/qcom,ath12k-wsi.yaml#
6$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8title: Qualcomm Technologies ath12k wireless devices (PCIe) with WSI interface
9
10maintainers:
11  - Jeff Johnson <jjohnson@kernel.org>
12
13description: |
14  Qualcomm Technologies IEEE 802.11be PCIe devices with WSI interface.
15
16  The ath12k devices (QCN9274) feature WSI support. WSI stands for
17  WLAN Serial Interface. It is used for the exchange of specific
18  control information across radios based on the doorbell mechanism.
19  This WSI connection is essential to exchange control information
20  among these devices.
21
22  The WSI interface includes TX and RX ports, which are used to connect
23  multiple WSI-supported devices together, forming a WSI group.
24
25  Diagram to represent one WSI connection (one WSI group) among
26  three devices.
27
28           +-------+        +-------+        +-------+
29           | pcie1 |        | pcie2 |        | pcie3 |
30           |       |        |       |        |       |
31    +----->|  wsi  |------->|  wsi  |------->|  wsi  |-----+
32    |      | grp 0 |        | grp 0 |        | grp 0 |     |
33    |      +-------+        +-------+        +-------+     |
34    +------------------------------------------------------+
35
36  Diagram to represent two WSI connections (two separate WSI groups)
37  among four devices.
38
39       +-------+    +-------+          +-------+    +-------+
40       | pcie0 |    | pcie1 |          | pcie2 |    | pcie3 |
41       |       |    |       |          |       |    |       |
42   +-->|  wsi  |--->|  wsi  |--+   +-->|  wsi  |--->|  wsi  |--+
43   |   | grp 0 |    | grp 0 |  |   |   | grp 1 |    | grp 1 |  |
44   |   +-------+    +-------+  |   |   +-------+    +-------+  |
45   +---------------------------+   +---------------------------+
46
47properties:
48  compatible:
49    enum:
50      - pci17cb,1109  # QCN9274
51
52  reg:
53    maxItems: 1
54
55  qcom,calibration-variant:
56    $ref: /schemas/types.yaml#/definitions/string
57    description:
58      String to uniquely identify variant of the calibration data for designs
59      with colliding bus and device ids
60
61  qcom,ath12k-calibration-variant:
62    $ref: /schemas/types.yaml#/definitions/string
63    deprecated: true
64    description:
65      String to uniquely identify variant of the calibration data for designs
66      with colliding bus and device ids
67
68  qcom,wsi-controller:
69    $ref: /schemas/types.yaml#/definitions/flag
70    description:
71      The WSI controller device in the WSI group aids (is capable) to
72      synchronize the Timing Synchronization Function (TSF) clock across
73      all devices in the WSI group.
74
75  ports:
76    $ref: /schemas/graph.yaml#/properties/ports
77    properties:
78      port@0:
79        $ref: /schemas/graph.yaml#/properties/port
80        description:
81          This is the TX port of WSI interface. It is attached to the RX
82          port of the next device in the WSI connection.
83
84      port@1:
85        $ref: /schemas/graph.yaml#/properties/port
86        description:
87          This is the RX port of WSI interface. It is attached to the TX
88          port of the previous device in the WSI connection.
89
90required:
91  - compatible
92  - reg
93
94additionalProperties: false
95
96examples:
97  - |
98    pcie {
99        #address-cells = <3>;
100        #size-cells = <2>;
101
102        pcie@0 {
103            device_type = "pci";
104            reg = <0x0 0x0 0x0 0x0 0x0>;
105            #address-cells = <3>;
106            #size-cells = <2>;
107            ranges;
108
109            wifi@0 {
110                compatible = "pci17cb,1109";
111                reg = <0x0 0x0 0x0 0x0 0x0>;
112
113                qcom,calibration-variant = "RDP433_1";
114
115                ports {
116                    #address-cells = <1>;
117                    #size-cells = <0>;
118
119                    port@0 {
120                        reg = <0>;
121
122                        wifi1_wsi_tx: endpoint {
123                            remote-endpoint = <&wifi2_wsi_rx>;
124                        };
125                    };
126
127                    port@1 {
128                        reg = <1>;
129
130                        wifi1_wsi_rx: endpoint {
131                            remote-endpoint = <&wifi3_wsi_tx>;
132                        };
133                    };
134                };
135            };
136        };
137
138        pcie@1 {
139            device_type = "pci";
140            reg = <0x0 0x0 0x1 0x0 0x0>;
141            #address-cells = <3>;
142            #size-cells = <2>;
143            ranges;
144
145            wifi@0 {
146                compatible = "pci17cb,1109";
147                reg = <0x0 0x0 0x0 0x0 0x0>;
148
149                qcom,calibration-variant = "RDP433_2";
150                qcom,wsi-controller;
151
152                ports {
153                    #address-cells = <1>;
154                    #size-cells = <0>;
155
156                    port@0 {
157                        reg = <0>;
158
159                        wifi2_wsi_tx: endpoint {
160                            remote-endpoint = <&wifi3_wsi_rx>;
161                        };
162                    };
163
164                    port@1 {
165                        reg = <1>;
166
167                        wifi2_wsi_rx: endpoint {
168                            remote-endpoint = <&wifi1_wsi_tx>;
169                        };
170                    };
171                };
172            };
173        };
174
175        pcie@2 {
176            device_type = "pci";
177            reg = <0x0 0x0 0x2 0x0 0x0>;
178            #address-cells = <3>;
179            #size-cells = <2>;
180            ranges;
181
182            wifi@0 {
183                compatible = "pci17cb,1109";
184                reg = <0x0 0x0 0x0 0x0 0x0>;
185
186                qcom,calibration-variant = "RDP433_3";
187
188                ports {
189                    #address-cells = <1>;
190                    #size-cells = <0>;
191
192                    port@0 {
193                        reg = <0>;
194
195                        wifi3_wsi_tx: endpoint {
196                            remote-endpoint = <&wifi1_wsi_rx>;
197                        };
198                    };
199
200                    port@1 {
201                        reg = <1>;
202
203                        wifi3_wsi_rx: endpoint {
204                            remote-endpoint = <&wifi2_wsi_tx>;
205                        };
206                    };
207                };
208            };
209        };
210    };
211