blob: 5c4498b762c89fe6964b7e3d2dba710e925eef51 [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
131 qcom,smem-states:
132 $ref: /schemas/types.yaml#/definitions/phandle-array
133 description: State bits used by the AP to signal the WLAN Q6.
134 items:
135 - description: Signal bits used to enable/disable low power mode
136 on WCN in the case of WoW (Wake on Wireless).
137
138 qcom,smem-state-names:
139 description: The names of the state bits used for SMP2P output.
140 items:
141 - const: wlan-smp2p-out
142
143 qcom,snoc-host-cap-8bit-quirk:
144 type: boolean
145 description:
146 Quirk specifying that the firmware expects the 8bit version
147 of the host capability QMI request
148
149 qcom,xo-cal-data:
150 $ref: /schemas/types.yaml#/definitions/uint32
151 description:
152 XO cal offset to be configured in XO trim register.
153
154 vdd-0.8-cx-mx-supply:
155 description: Main logic power rail
156
157 vdd-1.8-xo-supply:
158 description: Crystal oscillator supply
159
160 vdd-1.3-rfa-supply:
161 description: RFA supply
162
163 vdd-3.3-ch0-supply:
164 description: Primary Wi-Fi antenna supply
165
166 vdd-3.3-ch1-supply:
167 description: Secondary Wi-Fi antenna supply
168
169required:
170 - compatible
171 - reg
172
173additionalProperties: false
174
175allOf:
176 - $ref: ieee80211.yaml#
177 - if:
178 properties:
179 compatible:
180 contains:
181 enum:
182 - qcom,ipq4019-wifi
183 then:
184 properties:
185 interrupts:
186 minItems: 17
187 maxItems: 17
188
189 interrupt-names:
190 items:
191 - const: msi0
192 - const: msi1
193 - const: msi2
194 - const: msi3
195 - const: msi4
196 - const: msi5
197 - const: msi6
198 - const: msi7
199 - const: msi8
200 - const: msi9
201 - const: msi10
202 - const: msi11
203 - const: msi12
204 - const: msi13
205 - const: msi14
206 - const: msi15
207 - const: legacy
208
209 clocks:
210 items:
211 - description: Wi-Fi command clock
212 - description: Wi-Fi reference clock
213 - description: Wi-Fi RTC clock
214
215 clock-names:
216 items:
217 - const: wifi_wcss_cmd
218 - const: wifi_wcss_ref
219 - const: wifi_wcss_rtc
220
221 required:
222 - clocks
223 - clock-names
224 - interrupts
225 - interrupt-names
226 - resets
227 - reset-names
228
229 - if:
230 properties:
231 compatible:
232 contains:
233 enum:
234 - qcom,wcn3990-wifi
235
236 then:
237 properties:
238 clocks:
239 minItems: 1
240 items:
241 - description: XO reference clock
242 - description: Qualcomm Debug Subsystem clock
243
244 clock-names:
245 minItems: 1
246 items:
247 - const: cxo_ref_clk_pin
248 - const: qdss
249
250 interrupts:
251 items:
252 - description: CE0
253 - description: CE1
254 - description: CE2
255 - description: CE3
256 - description: CE4
257 - description: CE5
258 - description: CE6
259 - description: CE7
260 - description: CE8
261 - description: CE9
262 - description: CE10
263 - description: CE11
264
265 interrupt-names: false
266
267 required:
268 - interrupts
269
270examples:
271 # SNoC
272 - |
273 #include <dt-bindings/clock/qcom,rpmcc.h>
274 #include <dt-bindings/interrupt-controller/arm-gic.h>
275
276 wifi@18800000 {
277 compatible = "qcom,wcn3990-wifi";
278 reg = <0x18800000 0x800000>;
279 reg-names = "membase";
280 memory-region = <&wlan_msa_mem>;
281 clocks = <&rpmcc RPM_SMD_RF_CLK2_PIN>;
282 clock-names = "cxo_ref_clk_pin";
283 interrupts = <GIC_SPI 413 IRQ_TYPE_LEVEL_HIGH>,
284 <GIC_SPI 414 IRQ_TYPE_LEVEL_HIGH>,
285 <GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH>,
286 <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
287 <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>,
288 <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
289 <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>,
290 <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
291 <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>,
292 <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
293 <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
294 <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>;
295 iommus = <&anoc2_smmu 0x1900>,
296 <&anoc2_smmu 0x1901>;
297 qcom,snoc-host-cap-8bit-quirk;
298 vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>;
299 vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
300 vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
301 vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
302 vdd-3.3-ch1-supply = <&vreg_l23a_3p3>;
303
304 wifi-firmware {
305 iommus = <&apps_smmu 0x1c02 0x1>;
306 };
307 };
308
309 # AHB
310 - |
311 #include <dt-bindings/clock/qcom,gcc-ipq4019.h>
312
313 wifi@a000000 {
314 compatible = "qcom,ipq4019-wifi";
315 reg = <0xa000000 0x200000>;
316 resets = <&gcc WIFI0_CPU_INIT_RESET>,
317 <&gcc WIFI0_RADIO_SRIF_RESET>,
318 <&gcc WIFI0_RADIO_WARM_RESET>,
319 <&gcc WIFI0_RADIO_COLD_RESET>,
320 <&gcc WIFI0_CORE_WARM_RESET>,
321 <&gcc WIFI0_CORE_COLD_RESET>;
322 reset-names = "wifi_cpu_init",
323 "wifi_radio_srif",
324 "wifi_radio_warm",
325 "wifi_radio_cold",
326 "wifi_core_warm",
327 "wifi_core_cold";
328 clocks = <&gcc GCC_WCSS2G_CLK>,
329 <&gcc GCC_WCSS2G_REF_CLK>,
330 <&gcc GCC_WCSS2G_RTC_CLK>;
331 clock-names = "wifi_wcss_cmd",
332 "wifi_wcss_ref",
333 "wifi_wcss_rtc";
334 interrupts = <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>,
335 <GIC_SPI 33 IRQ_TYPE_EDGE_RISING>,
336 <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>,
337 <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>,
338 <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>,
339 <GIC_SPI 37 IRQ_TYPE_EDGE_RISING>,
340 <GIC_SPI 38 IRQ_TYPE_EDGE_RISING>,
341 <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>,
342 <GIC_SPI 40 IRQ_TYPE_EDGE_RISING>,
343 <GIC_SPI 41 IRQ_TYPE_EDGE_RISING>,
344 <GIC_SPI 42 IRQ_TYPE_EDGE_RISING>,
345 <GIC_SPI 43 IRQ_TYPE_EDGE_RISING>,
346 <GIC_SPI 44 IRQ_TYPE_EDGE_RISING>,
347 <GIC_SPI 45 IRQ_TYPE_EDGE_RISING>,
348 <GIC_SPI 46 IRQ_TYPE_EDGE_RISING>,
349 <GIC_SPI 47 IRQ_TYPE_EDGE_RISING>,
350 <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
351 interrupt-names = "msi0",
352 "msi1",
353 "msi2",
354 "msi3",
355 "msi4",
356 "msi5",
357 "msi6",
358 "msi7",
359 "msi8",
360 "msi9",
361 "msi10",
362 "msi11",
363 "msi12",
364 "msi13",
365 "msi14",
366 "msi15",
367 "legacy";
368 ieee80211-freq-limit = <5470000 5875000>;
369 };