xref: /linux/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml (revision be1ca3ee8f97067fee87fda73ea5959d5ab75bbf)
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
7title: Qualcomm ADSP Peripheral Image Loader
8
9maintainers:
10  - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
11
12description:
13  This document defines the binding for a component that loads and boots
14  firmware on the Qualcomm ADSP Hexagon core.
15
16properties:
17  compatible:
18    enum:
19      - qcom,msm8226-adsp-pil
20      - qcom,msm8953-adsp-pil
21      - qcom,msm8974-adsp-pil
22      - qcom,msm8996-adsp-pil
23      - qcom,msm8996-slpi-pil
24      - qcom,msm8998-adsp-pas
25      - qcom,msm8998-slpi-pas
26      - qcom,sdm660-adsp-pas
27      - qcom,sdm660-cdsp-pas
28      - qcom,sdm845-adsp-pas
29      - qcom,sdm845-cdsp-pas
30      - qcom,sdm845-slpi-pas
31
32  reg:
33    maxItems: 1
34
35  cx-supply: true
36
37  px-supply:
38    description: Phandle to the PX regulator
39
40  qcom,qmp:
41    $ref: /schemas/types.yaml#/definitions/phandle
42    description: Reference to the AOSS side-channel message RAM.
43
44  memory-region:
45    maxItems: 1
46    description: Reference to the reserved-memory for the Hexagon core
47
48  firmware-name:
49    maxItems: 1
50    description: Firmware name for the Hexagon core
51
52required:
53  - compatible
54  - memory-region
55
56unevaluatedProperties: false
57
58allOf:
59  - $ref: /schemas/remoteproc/qcom,pas-common.yaml#
60  - if:
61      properties:
62        compatible:
63          contains:
64            enum:
65              - qcom,msm8226-adsp-pil
66              - qcom,msm8953-adsp-pil
67              - qcom,msm8974-adsp-pil
68              - qcom,msm8996-adsp-pil
69              - qcom,msm8996-slpi-pil
70              - qcom,msm8998-adsp-pas
71              - qcom,msm8998-slpi-pas
72              - qcom,sdm660-adsp-pas
73              - qcom,sdm660-cdsp-pas
74              - qcom,sdm845-adsp-pas
75              - qcom,sdm845-cdsp-pas
76              - qcom,sdm845-slpi-pas
77    then:
78      properties:
79        clocks:
80          items:
81            - description: XO clock
82        clock-names:
83          items:
84            - const: xo
85
86  - if:
87      properties:
88        compatible:
89          contains:
90            enum:
91              - qcom,msm8226-adsp-pil
92              - qcom,msm8953-adsp-pil
93              - qcom,msm8974-adsp-pil
94              - qcom,msm8996-adsp-pil
95              - qcom,msm8996-slpi-pil
96              - qcom,msm8998-adsp-pas
97              - qcom,msm8998-slpi-pas
98              - qcom,sdm660-adsp-pas
99              - qcom,sdm660-cdsp-pas
100              - qcom,sdm845-adsp-pas
101              - qcom,sdm845-cdsp-pas
102              - qcom,sdm845-slpi-pas
103    then:
104      properties:
105        interrupts:
106          maxItems: 5
107        interrupt-names:
108          maxItems: 5
109
110  - if:
111      properties:
112        compatible:
113          contains:
114            enum:
115              - qcom,msm8226-adsp-pil
116              - qcom,msm8953-adsp-pil
117              - qcom,msm8974-adsp-pil
118              - qcom,msm8996-adsp-pil
119              - qcom,msm8998-adsp-pas
120              - qcom,sdm660-adsp-pas
121              - qcom,sdm660-cdsp-pas
122    then:
123      properties:
124        power-domains:
125          items:
126            - description: CX power domain
127        power-domain-names:
128          items:
129            - const: cx
130
131  - if:
132      properties:
133        compatible:
134          contains:
135            enum:
136              - qcom,msm8996-slpi-pil
137              - qcom,msm8998-slpi-pas
138    then:
139      properties:
140        power-domains:
141          items:
142            - description: SSC-CX power domain
143        power-domain-names:
144          items:
145            - const: ssc_cx
146      required:
147        - px-supply
148
149  - if:
150      properties:
151        compatible:
152          enum:
153            - qcom,sdm845-slpi-pas
154    then:
155      properties:
156        power-domains:
157          items:
158            - description: LCX power domain
159            - description: LMX power domain
160        power-domain-names:
161          items:
162            - const: lcx
163            - const: lmx
164    else:
165      properties:
166        cx-supply: false
167
168  - if:
169      properties:
170        compatible:
171          contains:
172            enum:
173              - qcom,msm8226-adsp-pil
174              - qcom,msm8953-adsp-pil
175              - qcom,msm8974-adsp-pil
176              - qcom,msm8996-adsp-pil
177              - qcom,msm8996-slpi-pil
178              - qcom,msm8998-adsp-pas
179              - qcom,msm8998-slpi-pas
180              - qcom,sdm660-adsp-pas
181              - qcom,sdm660-cdsp-pas
182    then:
183      properties:
184        qcom,qmp: false
185
186examples:
187  - |
188    #include <dt-bindings/clock/qcom,rpmcc.h>
189    #include <dt-bindings/interrupt-controller/arm-gic.h>
190    #include <dt-bindings/interrupt-controller/irq.h>
191    #include <dt-bindings/power/qcom-rpmpd.h>
192    adsp {
193        compatible = "qcom,msm8974-adsp-pil";
194
195        interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
196                      <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
197                      <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
198                      <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
199                      <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
200        interrupt-names = "wdog",
201                  "fatal",
202                  "ready",
203                  "handover",
204                  "stop-ack";
205
206        clocks = <&rpmcc RPM_CXO_CLK>;
207        clock-names = "xo";
208
209        power-domains = <&rpmpd MSM8974_VDDCX>;
210        power-domain-names = "cx";
211
212        memory-region = <&adsp_region>;
213
214        qcom,smem-states = <&adsp_smp2p_out 0>;
215        qcom,smem-state-names = "stop";
216
217        smd-edge {
218            interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
219
220            qcom,ipc = <&apcs 8 8>;
221            qcom,smd-edge = <1>;
222        };
223    };
224