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