blob: 070c4c9b86437f77f261889aeea98340d8d44b99 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/net/wireless/qcom,ath10k.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm Technologies ath10k wireless devices
8
9maintainers:
10 - Kalle Valo <kvalo@kernel.org>
Tom Rini6bb92fc2024-05-20 09:54:58 -060011 - Jeff Johnson <jjohnson@kernel.org>
Tom Rini53633a82024-02-29 12:33:36 -050012
13description:
14 Qualcomm Technologies, Inc. IEEE 802.11ac devices.
15
16properties:
17 compatible:
18 enum:
19 - qcom,ath10k # SDIO-based devices
20 - qcom,ipq4019-wifi
21 - qcom,wcn3990-wifi # SNoC-based devices
22
23 reg:
24 maxItems: 1
25
26 reg-names:
27 items:
28 - const: membase
29
30 interrupts:
31 minItems: 12
32 maxItems: 17
33
34 interrupt-names:
35 minItems: 12
36 maxItems: 17
37
38 memory-region:
39 maxItems: 1
40 description:
41 Reference to the MSA memory region used by the Wi-Fi firmware
42 running on the Q6 core.
43
44 iommus:
45 minItems: 1
46 maxItems: 2
47
48 clocks:
49 minItems: 1
50 maxItems: 3
51
52 clock-names:
53 minItems: 1
54 maxItems: 3
55
56 resets:
57 maxItems: 6
58
59 reset-names:
60 items:
61 - const: wifi_cpu_init
62 - const: wifi_radio_srif
63 - const: wifi_radio_warm
64 - const: wifi_radio_cold
65 - const: wifi_core_warm
66 - const: wifi_core_cold
67
68 ext-fem-name:
69 $ref: /schemas/types.yaml#/definitions/string
70 description: Name of external front end module used.
71 enum:
72 - microsemi-lx5586
73 - sky85703-11
74 - sky85803
75
Tom Rini762f85b2024-07-20 11:15:10 -060076 firmware-name:
77 maxItems: 1
78 description:
79 If present, a board or platform specific string used to lookup firmware
80 files for the device.
81
Tom Rini53633a82024-02-29 12:33:36 -050082 wifi-firmware:
83 type: object
84 additionalProperties: false
85 description: |
86 The ath10k Wi-Fi node can contain one optional firmware subnode.
87 Firmware subnode is needed when the platform does not have Trustzone.
88 properties:
89 iommus:
90 maxItems: 1
91 required:
92 - iommus
93
94 ieee80211-freq-limit: true
95
96 qcom,ath10k-calibration-data:
97 $ref: /schemas/types.yaml#/definitions/uint8-array
98 description:
99 Calibration data + board-specific data as a byte array. The length
100 can vary between hardware versions.
101
102 qcom,ath10k-calibration-variant:
103 $ref: /schemas/types.yaml#/definitions/string
104 description:
105 Unique variant identifier of the calibration data in board-2.bin
106 for designs with colliding bus and device specific ids
107
108 qcom,ath10k-pre-calibration-data:
109 $ref: /schemas/types.yaml#/definitions/uint8-array
110 description:
111 Pre-calibration data as a byte array. The length can vary between
112 hardware versions.
113
114 qcom,coexist-support:
115 $ref: /schemas/types.yaml#/definitions/uint8
116 enum: [0, 1]
117 description:
118 Indicate coex support by the hardware.
119
120 qcom,coexist-gpio-pin:
121 $ref: /schemas/types.yaml#/definitions/uint32
122 description:
123 COEX GPIO number provided to the Wi-Fi firmware.
124
125 qcom,msa-fixed-perm:
126 type: boolean
127 description:
128 Whether to skip executing an SCM call that reassigns the memory
129 region ownership.
130
Tom Rini6b642ac2024-10-01 12:20:28 -0600131 qcom,no-msa-ready-indicator:
132 type: boolean
133 description:
134 Don't wait for MSA_READY indicator to complete init.
135
Tom Rini53633a82024-02-29 12:33:36 -0500136 qcom,smem-states:
137 $ref: /schemas/types.yaml#/definitions/phandle-array
138 description: State bits used by the AP to signal the WLAN Q6.
139 items:
140 - description: Signal bits used to enable/disable low power mode
141 on WCN in the case of WoW (Wake on Wireless).
142
143 qcom,smem-state-names:
144 description: The names of the state bits used for SMP2P output.
145 items:
146 - const: wlan-smp2p-out
147
148 qcom,snoc-host-cap-8bit-quirk:
149 type: boolean
150 description:
151 Quirk specifying that the firmware expects the 8bit version
152 of the host capability QMI request
153
154 qcom,xo-cal-data:
155 $ref: /schemas/types.yaml#/definitions/uint32
156 description:
157 XO cal offset to be configured in XO trim register.
158
159 vdd-0.8-cx-mx-supply:
160 description: Main logic power rail
161
162 vdd-1.8-xo-supply:
163 description: Crystal oscillator supply
164
165 vdd-1.3-rfa-supply:
166 description: RFA supply
167
168 vdd-3.3-ch0-supply:
169 description: Primary Wi-Fi antenna supply
170
171 vdd-3.3-ch1-supply:
172 description: Secondary Wi-Fi antenna supply
173
174required:
175 - compatible
176 - reg
177
178additionalProperties: false
179
180allOf:
181 - $ref: ieee80211.yaml#
182 - if:
183 properties:
184 compatible:
185 contains:
186 enum:
187 - qcom,ipq4019-wifi
188 then:
189 properties:
190 interrupts:
191 minItems: 17
192 maxItems: 17
193
194 interrupt-names:
195 items:
196 - const: msi0
197 - const: msi1
198 - const: msi2
199 - const: msi3
200 - const: msi4
201 - const: msi5
202 - const: msi6
203 - const: msi7
204 - const: msi8
205 - const: msi9
206 - const: msi10
207 - const: msi11
208 - const: msi12
209 - const: msi13
210 - const: msi14
211 - const: msi15
212 - const: legacy
213
214 clocks:
215 items:
216 - description: Wi-Fi command clock
217 - description: Wi-Fi reference clock
218 - description: Wi-Fi RTC clock
219
220 clock-names:
221 items:
222 - const: wifi_wcss_cmd
223 - const: wifi_wcss_ref
224 - const: wifi_wcss_rtc
225
226 required:
227 - clocks
228 - clock-names
229 - interrupts
230 - interrupt-names
231 - resets
232 - reset-names
233
234 - if:
235 properties:
236 compatible:
237 contains:
238 enum:
239 - qcom,wcn3990-wifi
240
241 then:
242 properties:
243 clocks:
244 minItems: 1
245 items:
246 - description: XO reference clock
247 - description: Qualcomm Debug Subsystem clock
248
249 clock-names:
250 minItems: 1
251 items:
252 - const: cxo_ref_clk_pin
253 - const: qdss
254
255 interrupts:
256 items:
257 - description: CE0
258 - description: CE1
259 - description: CE2
260 - description: CE3
261 - description: CE4
262 - description: CE5
263 - description: CE6
264 - description: CE7
265 - description: CE8
266 - description: CE9
267 - description: CE10
268 - description: CE11
269
270 interrupt-names: false
271
272 required:
273 - interrupts
274
275examples:
276 # SNoC
277 - |
278 #include <dt-bindings/clock/qcom,rpmcc.h>
279 #include <dt-bindings/interrupt-controller/arm-gic.h>
280
281 wifi@18800000 {
282 compatible = "qcom,wcn3990-wifi";
283 reg = <0x18800000 0x800000>;
284 reg-names = "membase";
285 memory-region = <&wlan_msa_mem>;
286 clocks = <&rpmcc RPM_SMD_RF_CLK2_PIN>;
287 clock-names = "cxo_ref_clk_pin";
288 interrupts = <GIC_SPI 413 IRQ_TYPE_LEVEL_HIGH>,
289 <GIC_SPI 414 IRQ_TYPE_LEVEL_HIGH>,
290 <GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH>,
291 <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
292 <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>,
293 <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
294 <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>,
295 <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
296 <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>,
297 <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
298 <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
299 <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>;
300 iommus = <&anoc2_smmu 0x1900>,
301 <&anoc2_smmu 0x1901>;
302 qcom,snoc-host-cap-8bit-quirk;
303 vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>;
304 vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
305 vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
306 vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
307 vdd-3.3-ch1-supply = <&vreg_l23a_3p3>;
308
309 wifi-firmware {
310 iommus = <&apps_smmu 0x1c02 0x1>;
311 };
312 };
313
314 # AHB
315 - |
316 #include <dt-bindings/clock/qcom,gcc-ipq4019.h>
317
318 wifi@a000000 {
319 compatible = "qcom,ipq4019-wifi";
320 reg = <0xa000000 0x200000>;
321 resets = <&gcc WIFI0_CPU_INIT_RESET>,
322 <&gcc WIFI0_RADIO_SRIF_RESET>,
323 <&gcc WIFI0_RADIO_WARM_RESET>,
324 <&gcc WIFI0_RADIO_COLD_RESET>,
325 <&gcc WIFI0_CORE_WARM_RESET>,
326 <&gcc WIFI0_CORE_COLD_RESET>;
327 reset-names = "wifi_cpu_init",
328 "wifi_radio_srif",
329 "wifi_radio_warm",
330 "wifi_radio_cold",
331 "wifi_core_warm",
332 "wifi_core_cold";
333 clocks = <&gcc GCC_WCSS2G_CLK>,
334 <&gcc GCC_WCSS2G_REF_CLK>,
335 <&gcc GCC_WCSS2G_RTC_CLK>;
336 clock-names = "wifi_wcss_cmd",
337 "wifi_wcss_ref",
338 "wifi_wcss_rtc";
339 interrupts = <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>,
340 <GIC_SPI 33 IRQ_TYPE_EDGE_RISING>,
341 <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>,
342 <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>,
343 <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>,
344 <GIC_SPI 37 IRQ_TYPE_EDGE_RISING>,
345 <GIC_SPI 38 IRQ_TYPE_EDGE_RISING>,
346 <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>,
347 <GIC_SPI 40 IRQ_TYPE_EDGE_RISING>,
348 <GIC_SPI 41 IRQ_TYPE_EDGE_RISING>,
349 <GIC_SPI 42 IRQ_TYPE_EDGE_RISING>,
350 <GIC_SPI 43 IRQ_TYPE_EDGE_RISING>,
351 <GIC_SPI 44 IRQ_TYPE_EDGE_RISING>,
352 <GIC_SPI 45 IRQ_TYPE_EDGE_RISING>,
353 <GIC_SPI 46 IRQ_TYPE_EDGE_RISING>,
354 <GIC_SPI 47 IRQ_TYPE_EDGE_RISING>,
355 <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
356 interrupt-names = "msi0",
357 "msi1",
358 "msi2",
359 "msi3",
360 "msi4",
361 "msi5",
362 "msi6",
363 "msi7",
364 "msi8",
365 "msi9",
366 "msi10",
367 "msi11",
368 "msi12",
369 "msi13",
370 "msi14",
371 "msi15",
372 "legacy";
373 ieee80211-freq-limit = <5470000 5875000>;
374 };