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