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