1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2# Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
3
4%YAML 1.2
5---
6$id: http://devicetree.org/schemas/net/wireless/qcom,ath11k.yaml#
7$schema: http://devicetree.org/meta-schemas/core.yaml#
8
9title: Qualcomm Technologies ath11k wireless devices Generic Binding
10
11maintainers:
12  - Kalle Valo <kvalo@codeaurora.org>
13
14description: |
15  These are dt entries for Qualcomm Technologies, Inc. IEEE 802.11ax
16  devices, for example like AHB based IPQ8074.
17
18properties:
19  compatible:
20    enum:
21      - qcom,ipq8074-wifi
22      - qcom,ipq6018-wifi
23
24  reg:
25    maxItems: 1
26
27  interrupts:
28    items:
29      - description: misc-pulse1 interrupt events
30      - description: misc-latch interrupt events
31      - description: sw exception interrupt events
32      - description: watchdog interrupt events
33      - description: interrupt event for ring CE0
34      - description: interrupt event for ring CE1
35      - description: interrupt event for ring CE2
36      - description: interrupt event for ring CE3
37      - description: interrupt event for ring CE4
38      - description: interrupt event for ring CE5
39      - description: interrupt event for ring CE6
40      - description: interrupt event for ring CE7
41      - description: interrupt event for ring CE8
42      - description: interrupt event for ring CE9
43      - description: interrupt event for ring CE10
44      - description: interrupt event for ring CE11
45      - description: interrupt event for ring host2wbm-desc-feed
46      - description: interrupt event for ring host2reo-re-injection
47      - description: interrupt event for ring host2reo-command
48      - description: interrupt event for ring host2rxdma-monitor-ring3
49      - description: interrupt event for ring host2rxdma-monitor-ring2
50      - description: interrupt event for ring host2rxdma-monitor-ring1
51      - description: interrupt event for ring reo2ost-exception
52      - description: interrupt event for ring wbm2host-rx-release
53      - description: interrupt event for ring reo2host-status
54      - description: interrupt event for ring reo2host-destination-ring4
55      - description: interrupt event for ring reo2host-destination-ring3
56      - description: interrupt event for ring reo2host-destination-ring2
57      - description: interrupt event for ring reo2host-destination-ring1
58      - description: interrupt event for ring rxdma2host-monitor-destination-mac3
59      - description: interrupt event for ring rxdma2host-monitor-destination-mac2
60      - description: interrupt event for ring rxdma2host-monitor-destination-mac1
61      - description: interrupt event for ring ppdu-end-interrupts-mac3
62      - description: interrupt event for ring ppdu-end-interrupts-mac2
63      - description: interrupt event for ring ppdu-end-interrupts-mac1
64      - description: interrupt event for ring rxdma2host-monitor-status-ring-mac3
65      - description: interrupt event for ring rxdma2host-monitor-status-ring-mac2
66      - description: interrupt event for ring rxdma2host-monitor-status-ring-mac1
67      - description: interrupt event for ring host2rxdma-host-buf-ring-mac3
68      - description: interrupt event for ring host2rxdma-host-buf-ring-mac2
69      - description: interrupt event for ring host2rxdma-host-buf-ring-mac1
70      - description: interrupt event for ring rxdma2host-destination-ring-mac3
71      - description: interrupt event for ring rxdma2host-destination-ring-mac2
72      - description: interrupt event for ring rxdma2host-destination-ring-mac1
73      - description: interrupt event for ring host2tcl-input-ring4
74      - description: interrupt event for ring host2tcl-input-ring3
75      - description: interrupt event for ring host2tcl-input-ring2
76      - description: interrupt event for ring host2tcl-input-ring1
77      - description: interrupt event for ring wbm2host-tx-completions-ring3
78      - description: interrupt event for ring wbm2host-tx-completions-ring2
79      - description: interrupt event for ring wbm2host-tx-completions-ring1
80      - description: interrupt event for ring tcl2host-status-ring
81
82
83  interrupt-names:
84    items:
85      - const: misc-pulse1
86      - const: misc-latch
87      - const: sw-exception
88      - const: watchdog
89      - const: ce0
90      - const: ce1
91      - const: ce2
92      - const: ce3
93      - const: ce4
94      - const: ce5
95      - const: ce6
96      - const: ce7
97      - const: ce8
98      - const: ce9
99      - const: ce10
100      - const: ce11
101      - const: host2wbm-desc-feed
102      - const: host2reo-re-injection
103      - const: host2reo-command
104      - const: host2rxdma-monitor-ring3
105      - const: host2rxdma-monitor-ring2
106      - const: host2rxdma-monitor-ring1
107      - const: reo2ost-exception
108      - const: wbm2host-rx-release
109      - const: reo2host-status
110      - const: reo2host-destination-ring4
111      - const: reo2host-destination-ring3
112      - const: reo2host-destination-ring2
113      - const: reo2host-destination-ring1
114      - const: rxdma2host-monitor-destination-mac3
115      - const: rxdma2host-monitor-destination-mac2
116      - const: rxdma2host-monitor-destination-mac1
117      - const: ppdu-end-interrupts-mac3
118      - const: ppdu-end-interrupts-mac2
119      - const: ppdu-end-interrupts-mac1
120      - const: rxdma2host-monitor-status-ring-mac3
121      - const: rxdma2host-monitor-status-ring-mac2
122      - const: rxdma2host-monitor-status-ring-mac1
123      - const: host2rxdma-host-buf-ring-mac3
124      - const: host2rxdma-host-buf-ring-mac2
125      - const: host2rxdma-host-buf-ring-mac1
126      - const: rxdma2host-destination-ring-mac3
127      - const: rxdma2host-destination-ring-mac2
128      - const: rxdma2host-destination-ring-mac1
129      - const: host2tcl-input-ring4
130      - const: host2tcl-input-ring3
131      - const: host2tcl-input-ring2
132      - const: host2tcl-input-ring1
133      - const: wbm2host-tx-completions-ring3
134      - const: wbm2host-tx-completions-ring2
135      - const: wbm2host-tx-completions-ring1
136      - const: tcl2host-status-ring
137
138  qcom,rproc:
139    $ref: /schemas/types.yaml#/definitions/phandle
140    description:
141      DT entry of q6v5-wcss remoteproc driver.
142      Phandle to a node that can contain the following properties
143        * compatible
144        * reg
145        * reg-names
146
147  qcom,ath11k-calibration-variant:
148    $ref: /schemas/types.yaml#/definitions/string
149    description:
150      string to uniquely identify variant of the calibration data in the
151      board-2.bin for designs with colliding bus and device specific ids
152
153  memory-region:
154    maxItems: 1
155    description:
156      phandle to a node describing reserved memory (System RAM memory)
157      used by ath11k firmware (see bindings/reserved-memory/reserved-memory.txt)
158
159required:
160  - compatible
161  - reg
162  - interrupts
163  - interrupt-names
164  - qcom,rproc
165
166additionalProperties: false
167
168examples:
169  - |
170
171    q6v5_wcss: q6v5_wcss@CD00000 {
172        compatible = "qcom,ipq8074-wcss-pil";
173        reg = <0xCD00000 0x4040>,
174              <0x4AB000 0x20>;
175        reg-names = "qdsp6",
176                    "rmb";
177    };
178
179    wifi0: wifi@c000000 {
180        compatible = "qcom,ipq8074-wifi";
181        reg = <0xc000000 0x2000000>;
182        interrupts = <0 320 1>,
183                     <0 319 1>,
184                     <0 318 1>,
185                     <0 317 1>,
186                     <0 316 1>,
187                     <0 315 1>,
188                     <0 314 1>,
189                     <0 311 1>,
190                     <0 310 1>,
191                     <0 411 1>,
192                     <0 410 1>,
193                     <0 40 1>,
194                     <0 39 1>,
195                     <0 302 1>,
196                     <0 301 1>,
197                     <0 37 1>,
198                     <0 36 1>,
199                     <0 296 1>,
200                     <0 295 1>,
201                     <0 294 1>,
202                     <0 293 1>,
203                     <0 292 1>,
204                     <0 291 1>,
205                     <0 290 1>,
206                     <0 289 1>,
207                     <0 288 1>,
208                     <0 239 1>,
209                     <0 236 1>,
210                     <0 235 1>,
211                     <0 234 1>,
212                     <0 233 1>,
213                     <0 232 1>,
214                     <0 231 1>,
215                     <0 230 1>,
216                     <0 229 1>,
217                     <0 228 1>,
218                     <0 224 1>,
219                     <0 223 1>,
220                     <0 203 1>,
221                     <0 183 1>,
222                     <0 180 1>,
223                     <0 179 1>,
224                     <0 178 1>,
225                     <0 177 1>,
226                     <0 176 1>,
227                     <0 163 1>,
228                     <0 162 1>,
229                     <0 160 1>,
230                     <0 159 1>,
231                     <0 158 1>,
232                     <0 157 1>,
233                     <0 156 1>;
234        interrupt-names = "misc-pulse1",
235                          "misc-latch",
236                          "sw-exception",
237                          "watchdog",
238                          "ce0",
239                          "ce1",
240                          "ce2",
241                          "ce3",
242                          "ce4",
243                          "ce5",
244                          "ce6",
245                          "ce7",
246                          "ce8",
247                          "ce9",
248                          "ce10",
249                          "ce11",
250                          "host2wbm-desc-feed",
251                          "host2reo-re-injection",
252                          "host2reo-command",
253                          "host2rxdma-monitor-ring3",
254                          "host2rxdma-monitor-ring2",
255                          "host2rxdma-monitor-ring1",
256                          "reo2ost-exception",
257                          "wbm2host-rx-release",
258                          "reo2host-status",
259                          "reo2host-destination-ring4",
260                          "reo2host-destination-ring3",
261                          "reo2host-destination-ring2",
262                          "reo2host-destination-ring1",
263                          "rxdma2host-monitor-destination-mac3",
264                          "rxdma2host-monitor-destination-mac2",
265                          "rxdma2host-monitor-destination-mac1",
266                          "ppdu-end-interrupts-mac3",
267                          "ppdu-end-interrupts-mac2",
268                          "ppdu-end-interrupts-mac1",
269                          "rxdma2host-monitor-status-ring-mac3",
270                          "rxdma2host-monitor-status-ring-mac2",
271                          "rxdma2host-monitor-status-ring-mac1",
272                          "host2rxdma-host-buf-ring-mac3",
273                          "host2rxdma-host-buf-ring-mac2",
274                          "host2rxdma-host-buf-ring-mac1",
275                          "rxdma2host-destination-ring-mac3",
276                          "rxdma2host-destination-ring-mac2",
277                          "rxdma2host-destination-ring-mac1",
278                          "host2tcl-input-ring4",
279                          "host2tcl-input-ring3",
280                          "host2tcl-input-ring2",
281                          "host2tcl-input-ring1",
282                          "wbm2host-tx-completions-ring3",
283                          "wbm2host-tx-completions-ring2",
284                          "wbm2host-tx-completions-ring1",
285                          "tcl2host-status-ring";
286        qcom,rproc = <&q6v5_wcss>;
287    };
288
289  - |
290
291    reserved-memory {
292        #address-cells = <2>;
293        #size-cells = <2>;
294
295        qcn9074_0: qcn9074_0@51100000 {
296            no-map;
297            reg = <0x0 0x51100000 0x0 0x03500000>;
298        };
299    };
300
301    pci {
302        pcie0 {
303            #size-cells = <2>;
304            #address-cells = <3>;
305
306            wifi_0: wifi@0 {
307                reg = <0 0 0 0 0>;
308                memory-region = <&qcn9074_0>;
309            };
310        };
311    };
312