Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / remoteproc / qcom,adsp.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/remoteproc/qcom,adsp.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Qualcomm ADSP Peripheral Image Loader binding
8
9 maintainers:
10   - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
11
12 description:
13   This document defines the binding for a component that loads and boots
14   firmware on the Qualcomm ADSP Hexagon core.
15
16 properties:
17   compatible:
18     enum:
19       - qcom,msm8974-adsp-pil
20       - qcom,msm8996-adsp-pil
21       - qcom,msm8996-slpi-pil
22       - qcom,msm8998-adsp-pas
23       - qcom,msm8998-slpi-pas
24       - qcom,qcs404-adsp-pas
25       - qcom,qcs404-cdsp-pas
26       - qcom,qcs404-wcss-pas
27       - qcom,sc7180-mpss-pas
28       - qcom,sc8180x-adsp-pas
29       - qcom,sc8180x-cdsp-pas
30       - qcom,sc8180x-mpss-pas
31       - qcom,sdm845-adsp-pas
32       - qcom,sdm845-cdsp-pas
33       - qcom,sdx55-mpss-pas
34       - qcom,sm8150-adsp-pas
35       - qcom,sm8150-cdsp-pas
36       - qcom,sm8150-mpss-pas
37       - qcom,sm8150-slpi-pas
38       - qcom,sm8250-adsp-pas
39       - qcom,sm8250-cdsp-pas
40       - qcom,sm8250-slpi-pas
41       - qcom,sm8350-adsp-pas
42       - qcom,sm8350-cdsp-pas
43       - qcom,sm8350-slpi-pas
44       - qcom,sm8350-mpss-pas
45
46   reg:
47     maxItems: 1
48
49   clocks:
50     minItems: 1
51     maxItems: 8
52
53   clock-names:
54     minItems: 1
55     maxItems: 8
56
57   interrupts:
58     minItems: 5
59     maxItems: 6
60
61   interrupt-names:
62     minItems: 5
63     maxItems: 6
64
65   resets:
66     minItems: 1
67     maxItems: 3
68
69   reset-names:
70     minItems: 1
71     maxItems: 3
72
73   cx-supply:
74     description: Phandle to the CX regulator
75
76   px-supply:
77     description: Phandle to the PX regulator
78
79   power-domains:
80     minItems: 1
81     maxItems: 3
82
83   power-domain-names:
84     minItems: 1
85     maxItems: 3
86
87   firmware-name:
88     $ref: /schemas/types.yaml#/definitions/string
89     description: Firmware name for the Hexagon core
90
91   memory-region:
92     maxItems: 1
93     description: Reference to the reserved-memory for the Hexagon core
94
95   qcom,smem-states:
96     $ref: /schemas/types.yaml#/definitions/phandle-array
97     description: States used by the AP to signal the Hexagon core
98     items:
99       - description: Stop the modem
100
101   qcom,smem-state-names:
102     $ref: /schemas/types.yaml#/definitions/string-array
103     description: The names of the state bits used for SMP2P output
104     items:
105       - const: stop
106
107   qcom,halt-regs:
108     $ref: /schemas/types.yaml#/definitions/phandle-array
109     description:
110       Phandle reference to a syscon representing TCSR followed by the
111       three offsets within syscon for q6, modem and nc halt registers.
112
113   smd-edge:
114     type: object
115     description:
116       Qualcomm Shared Memory subnode which represents communication edge,
117       channels and devices related to the ADSP.
118
119   glink-edge:
120     type: object
121     description:
122       Qualcomm G-Link subnode which represents communication edge, channels
123       and devices related to the ADSP.
124
125 required:
126   - compatible
127   - clocks
128   - clock-names
129   - interrupts
130   - interrupt-names
131   - memory-region
132   - qcom,smem-states
133   - qcom,smem-state-names
134
135 additionalProperties: false
136
137 allOf:
138   - if:
139       properties:
140         compatible:
141           contains:
142             enum:
143               - qcom,msm8974-adsp-pil
144               - qcom,msm8996-adsp-pil
145               - qcom,msm8996-slpi-pil
146               - qcom,msm8998-adsp-pas
147               - qcom,qcs404-adsp-pas
148               - qcom,qcs404-wcss-pas
149               - qcom,sc8180x-adsp-pas
150               - qcom,sc8180x-cdsp-pas
151               - qcom,sc8180x-mpss-pas
152               - qcom,sdm845-adsp-pas
153               - qcom,sdm845-cdsp-pas
154               - qcom,sm8150-adsp-pas
155               - qcom,sm8150-cdsp-pas
156               - qcom,sm8150-mpss-pas
157               - qcom,sm8150-slpi-pas
158               - qcom,sm8250-adsp-pas
159               - qcom,sm8250-cdsp-pas
160               - qcom,sm8250-slpi-pas
161               - qcom,sm8350-adsp-pas
162               - qcom,sm8350-cdsp-pas
163               - qcom,sm8350-slpi-pas
164               - qcom,sm8350-mpss-pas
165     then:
166       properties:
167         clocks:
168           items:
169             - description: XO clock
170         clock-names:
171           items:
172             - const: xo
173
174   - if:
175       properties:
176         compatible:
177           contains:
178             enum:
179               - qcom,msm8998-slpi-pas
180     then:
181       properties:
182         clocks:
183           items:
184             - description: XO clock
185             - description: AGGRE2 clock
186         clock-names:
187           items:
188             - const: xo
189             - const: aggre2
190
191   - if:
192       properties:
193         compatible:
194           contains:
195             enum:
196               - qcom,qcs404-cdsp-pas
197     then:
198       properties:
199         clocks:
200           items:
201             - description: XO clock
202             - description: SWAY clock
203             - description: TBU clock
204             - description: BIMC clock
205             - description: AHB AON clock
206             - description: Q6SS SLAVE clock
207             - description: Q6SS MASTER clock
208             - description: Q6 AXIM clock
209         clock-names:
210           items:
211             - const: xo
212             - const: sway
213             - const: tbu
214             - const: bimc
215             - const: ahb_aon
216             - const: q6ss_slave
217             - const: q6ss_master
218             - const: q6_axim
219
220   - if:
221       properties:
222         compatible:
223           contains:
224             enum:
225               - qcom,sc7180-mpss-pas
226     then:
227       properties:
228         clocks:
229           items:
230             - description: XO clock
231             - description: IFACE clock
232             - description: BUS clock
233             - description: NAC clock
234             - description: SNOC AXI clock
235             - description: MNOC AXI clock
236         clock-names:
237           items:
238             - const: xo
239             - const: iface
240             - const: bus
241             - const: nav
242             - const: snoc_axi
243             - const: mnoc_axi
244
245   - if:
246       properties:
247         compatible:
248           contains:
249             enum:
250               - qcom,msm8974-adsp-pil
251               - qcom,msm8996-adsp-pil
252               - qcom,msm8996-slpi-pil
253               - qcom,msm8998-adsp-pas
254               - qcom,msm8998-slpi-pas
255               - qcom,qcs404-adsp-pas
256               - qcom,qcs404-cdsp-pas
257               - qcom,qcs404-wcss-pas
258               - qcom,sc8180x-adsp-pas
259               - qcom,sc8180x-cdsp-pas
260               - qcom,sdm845-adsp-pas
261               - qcom,sdm845-cdsp-pas
262               - qcom,sm8150-adsp-pas
263               - qcom,sm8150-cdsp-pas
264               - qcom,sm8150-slpi-pas
265               - qcom,sm8250-adsp-pas
266               - qcom,sm8250-cdsp-pas
267               - qcom,sm8250-slpi-pas
268               - qcom,sm8350-adsp-pas
269               - qcom,sm8350-cdsp-pas
270               - qcom,sm8350-slpi-pas
271     then:
272       properties:
273         interrupts:
274           items:
275             - description: Watchdog interrupt
276             - description: Fatal interrupt
277             - description: Ready interrupt
278             - description: Handover interrupt
279             - description: Stop acknowledge interrupt
280         interrupt-names:
281           items:
282             - const: wdog
283             - const: fatal
284             - const: ready
285             - const: handover
286             - const: stop-ack
287
288   - if:
289       properties:
290         compatible:
291           contains:
292             enum:
293               - qcom,sc7180-mpss-pas
294               - qcom,sc8180x-mpss-pas
295               - qcom,sdx55-mpss-pas
296               - qcom,sm8150-mpss-pas
297               - qcom,sm8350-mpss-pas
298     then:
299       properties:
300         interrupts:
301           items:
302             - description: Watchdog interrupt
303             - description: Fatal interrupt
304             - description: Ready interrupt
305             - description: Handover interrupt
306             - description: Stop acknowledge interrupt
307             - description: Shutdown acknowledge interrupt
308         interrupt-names:
309           items:
310             - const: wdog
311             - const: fatal
312             - const: ready
313             - const: handover
314             - const: stop-ack
315             - const: shutdown-ack
316
317   - if:
318       properties:
319         compatible:
320           contains:
321             enum:
322               - qcom,msm8974-adsp-pil
323     then:
324       required:
325         - cx-supply
326
327   - if:
328       properties:
329         compatible:
330           contains:
331             enum:
332               - qcom,msm8996-adsp-pil
333               - qcom,msm8998-adsp-pas
334     then:
335       properties:
336         power-domains:
337           items:
338             - description: CX power domain
339         power-domain-names:
340           items:
341             - const: cx
342
343   - if:
344       properties:
345         compatible:
346           contains:
347             enum:
348               - qcom,msm8996-slpi-pil
349               - qcom,msm8998-slpi-pas
350     then:
351       properties:
352         power-domains:
353           items:
354             - description: SSC-CX power domain
355         power-domain-names:
356           items:
357             - const: ssc_cx
358       required:
359         - px-supply
360
361   - if:
362       properties:
363         compatible:
364           contains:
365             enum:
366               - qcom,sc7180-mpss-pas
367     then:
368       properties:
369         power-domains:
370           items:
371             - description: Load State power domain
372             - description: CX power domain
373             - description: MX power domain
374             - description: MSS power domain
375         power-domain-names:
376           items:
377             - const: load_state
378             - const: cx
379             - const: mx
380             - const: mss
381
382   - if:
383       properties:
384         compatible:
385           contains:
386             enum:
387               - qcom,sm8150-adsp-pas
388               - qcom,sm8150-cdsp-pas
389     then:
390       properties:
391         power-domains:
392           items:
393             - description: Load State power domain
394             - description: CX power domain
395         power-domain-names:
396           items:
397             - const: load_state
398             - const: cx
399
400   - if:
401       properties:
402         compatible:
403           contains:
404             enum:
405               - qcom,sm8150-mpss-pas
406               - qcom,sm8350-mpss-pas
407     then:
408       properties:
409         power-domains:
410           items:
411             - description: Load State power domain
412             - description: CX power domain
413             - description: MSS power domain
414         power-domain-names:
415           items:
416             - const: load_state
417             - const: cx
418             - const: mss
419
420   - if:
421       properties:
422         compatible:
423           contains:
424             enum:
425               - qcom,sdx55-mpss-pas
426     then:
427       properties:
428         power-domains:
429           items:
430             - description: CX power domain
431             - description: MSS power domain
432         power-domain-names:
433           items:
434             - const: cx
435             - const: mss
436
437   - if:
438       properties:
439         compatible:
440           contains:
441             enum:
442               - qcom,sc8180x-adsp-pas
443               - qcom,sc8180x-cdsp-pas
444               - qcom,sm8150-slpi-pas
445               - qcom,sm8250-adsp-pas
446               - qcom,sm8250-slpi-pas
447               - qcom,sm8350-adsp-pas
448               - qcom,sm8350-slpi-pas
449     then:
450       properties:
451         power-domains:
452           items:
453             - description: Load State power domain
454             - description: LCX power domain
455             - description: LMX power domain
456         power-domain-names:
457           items:
458             - const: load_state
459             - const: lcx
460             - const: lmx
461
462   - if:
463       properties:
464         compatible:
465           contains:
466             enum:
467               - qcom,sm8350-cdsp-pas
468     then:
469       properties:
470         power-domains:
471           items:
472             - description: Load State power domain
473             - description: CX power domain
474             - description: MXC power domain
475         power-domain-names:
476           items:
477             - const: load_state
478             - const: cx
479             - const: mxc
480
481   - if:
482       properties:
483         compatible:
484           contains:
485             enum:
486               - qcom,qcs404-cdsp-pas
487     then:
488       properties:
489         resets:
490           items:
491             - description: CDSP restart
492         reset-names:
493           items:
494             - const: restart
495
496   - if:
497       properties:
498         compatible:
499           contains:
500             enum:
501               - qcom,sc7180-mpss-pas
502     then:
503       properties:
504         resets:
505           items:
506             - description: MSS restart
507             - description: PDC reset
508         reset-names:
509           items:
510             - const: mss_restart
511             - const: pdc_reset
512
513 examples:
514   - |
515     #include <dt-bindings/clock/qcom,rpmcc.h>
516     #include <dt-bindings/interrupt-controller/irq.h>
517     adsp {
518         compatible = "qcom,msm8974-adsp-pil";
519
520         interrupts-extended = <&intc 0 162 IRQ_TYPE_EDGE_RISING>,
521                       <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
522                       <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
523                       <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
524                       <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
525         interrupt-names = "wdog",
526                   "fatal",
527                   "ready",
528                   "handover",
529                   "stop-ack";
530
531         clocks = <&rpmcc RPM_CXO_CLK>;
532         clock-names = "xo";
533
534         cx-supply = <&pm8841_s2>;
535
536         memory-region = <&adsp_region>;
537
538         qcom,smem-states = <&adsp_smp2p_out 0>;
539         qcom,smem-state-names = "stop";
540
541         smd-edge {
542             interrupts = <0 156 IRQ_TYPE_EDGE_RISING>;
543
544             qcom,ipc = <&apcs 8 8>;
545             qcom,smd-edge = <1>;
546         };
547     };