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