xref: /freebsd/sys/contrib/device-tree/Bindings/remoteproc/qcom,adsp.yaml (revision b64c5a0ace59af62eff52bfe110a521dc73c937b)
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,sdm845-adsp-pas
28      - qcom,sdm845-cdsp-pas
29      - qcom,sdm845-slpi-pas
30
31  reg:
32    maxItems: 1
33
34  cx-supply:
35    description: Phandle to the CX regulator
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,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,sdm845-adsp-pas
97              - qcom,sdm845-cdsp-pas
98              - qcom,sdm845-slpi-pas
99    then:
100      properties:
101        interrupts:
102          maxItems: 5
103        interrupt-names:
104          maxItems: 5
105
106  - if:
107      properties:
108        compatible:
109          contains:
110            enum:
111              - qcom,msm8974-adsp-pil
112    then:
113      required:
114        - cx-supply
115
116  - if:
117      properties:
118        compatible:
119          contains:
120            enum:
121              - qcom,msm8226-adsp-pil
122              - qcom,msm8953-adsp-pil
123              - qcom,msm8996-adsp-pil
124              - qcom,msm8998-adsp-pas
125    then:
126      properties:
127        power-domains:
128          items:
129            - description: CX power domain
130        power-domain-names:
131          items:
132            - const: cx
133
134  - if:
135      properties:
136        compatible:
137          contains:
138            enum:
139              - qcom,msm8996-slpi-pil
140              - qcom,msm8998-slpi-pas
141    then:
142      properties:
143        power-domains:
144          items:
145            - description: SSC-CX power domain
146        power-domain-names:
147          items:
148            - const: ssc_cx
149      required:
150        - px-supply
151
152  - if:
153      properties:
154        compatible:
155          enum:
156            - qcom,sdm845-slpi-pas
157    then:
158      properties:
159        power-domains:
160          items:
161            - description: LCX power domain
162            - description: LMX power domain
163        power-domain-names:
164          items:
165            - const: lcx
166            - const: lmx
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    then:
182      properties:
183        qcom,qmp: false
184
185examples:
186  - |
187    #include <dt-bindings/clock/qcom,rpmcc.h>
188    #include <dt-bindings/interrupt-controller/arm-gic.h>
189    #include <dt-bindings/interrupt-controller/irq.h>
190    adsp {
191        compatible = "qcom,msm8974-adsp-pil";
192
193        interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
194                      <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
195                      <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
196                      <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
197                      <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
198        interrupt-names = "wdog",
199                  "fatal",
200                  "ready",
201                  "handover",
202                  "stop-ack";
203
204        clocks = <&rpmcc RPM_CXO_CLK>;
205        clock-names = "xo";
206
207        cx-supply = <&pm8841_s2>;
208
209        memory-region = <&adsp_region>;
210
211        qcom,smem-states = <&adsp_smp2p_out 0>;
212        qcom,smem-state-names = "stop";
213
214        smd-edge {
215            interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
216
217            qcom,ipc = <&apcs 8 8>;
218            qcom,smd-edge = <1>;
219        };
220    };
221