xref: /linux/Documentation/devicetree/bindings/remoteproc/qcom,sm8550-pas.yaml (revision 6315d93541f8a5f77c5ef5c4f25233e66d189603)
1# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/remoteproc/qcom,sm8550-pas.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm SM8550 Peripheral Authentication Service
8
9maintainers:
10  - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
11
12description:
13  Qualcomm SM8550 SoC Peripheral Authentication Service loads and boots firmware
14  on the Qualcomm DSP Hexagon cores.
15
16properties:
17  compatible:
18    oneOf:
19      - enum:
20          - qcom,sdx75-mpss-pas
21          - qcom,sm8550-adsp-pas
22          - qcom,sm8550-cdsp-pas
23          - qcom,sm8550-mpss-pas
24          - qcom,sm8650-adsp-pas
25          - qcom,sm8650-cdsp-pas
26          - qcom,sm8650-mpss-pas
27          - qcom,sm8750-mpss-pas
28          - qcom,x1e80100-adsp-pas
29          - qcom,x1e80100-cdsp-pas
30      - items:
31          - const: qcom,sm8750-adsp-pas
32          - const: qcom,sm8550-adsp-pas
33      - items:
34          - const: qcom,sm8750-cdsp-pas
35          - const: qcom,sm8650-cdsp-pas
36
37  reg:
38    maxItems: 1
39
40  clocks:
41    items:
42      - description: XO clock
43
44  clock-names:
45    items:
46      - const: xo
47
48  qcom,qmp:
49    $ref: /schemas/types.yaml#/definitions/phandle
50    description: Reference to the AOSS side-channel message RAM.
51
52  smd-edge: false
53
54  firmware-name:
55    $ref: /schemas/types.yaml#/definitions/string-array
56    items:
57      - description: Firmware name of the Hexagon core
58      - description: Firmware name of the Hexagon Devicetree
59
60  memory-region:
61    minItems: 2
62    items:
63      - description: Memory region for main Firmware authentication
64      - description: Memory region for Devicetree Firmware authentication
65      - description: DSM Memory region
66      - description: DSM Memory region 2
67      - description: Memory region for Qlink Logging
68
69required:
70  - compatible
71  - reg
72  - memory-region
73
74allOf:
75  - $ref: /schemas/remoteproc/qcom,pas-common.yaml#
76  - if:
77      properties:
78        compatible:
79          enum:
80            - qcom,sm8550-adsp-pas
81            - qcom,sm8550-cdsp-pas
82            - qcom,sm8650-adsp-pas
83            - qcom,x1e80100-adsp-pas
84            - qcom,x1e80100-cdsp-pas
85    then:
86      properties:
87        interrupts:
88          maxItems: 5
89        interrupt-names:
90          maxItems: 5
91        memory-region:
92          maxItems: 2
93  - if:
94      properties:
95        compatible:
96          contains:
97            enum:
98              - qcom,sm8750-adsp-pas
99    then:
100      properties:
101        interrupts:
102          maxItems: 6
103        interrupt-names:
104          maxItems: 6
105        memory-region:
106          maxItems: 2
107  - if:
108      properties:
109        compatible:
110          enum:
111            - qcom,sm8650-cdsp-pas
112    then:
113      properties:
114        interrupts:
115          maxItems: 5
116        interrupt-names:
117          maxItems: 5
118        memory-region:
119          minItems: 3
120          maxItems: 3
121
122  - if:
123      properties:
124        compatible:
125          contains:
126            enum:
127              - qcom,sm8750-cdsp-pas
128    then:
129      properties:
130        interrupts:
131          maxItems: 6
132        interrupt-names:
133          maxItems: 6
134        memory-region:
135          minItems: 3
136          maxItems: 3
137
138  - if:
139      properties:
140        compatible:
141          enum:
142            - qcom,sm8550-mpss-pas
143    then:
144      properties:
145        interrupts:
146          minItems: 6
147        interrupt-names:
148          minItems: 6
149        memory-region:
150          minItems: 3
151          maxItems: 3
152  - if:
153      properties:
154        compatible:
155          enum:
156            - qcom,sdx75-mpss-pas
157            - qcom,sm8650-mpss-pas
158    then:
159      properties:
160        interrupts:
161          minItems: 6
162        interrupt-names:
163          minItems: 6
164        memory-region:
165          minItems: 5
166          maxItems: 5
167
168  - if:
169      properties:
170        compatible:
171          enum:
172            - qcom,sm8750-mpss-pas
173    then:
174      properties:
175        interrupts:
176          minItems: 6
177        interrupt-names:
178          minItems: 6
179        memory-region:
180          minItems: 4
181          maxItems: 4
182
183  - if:
184      properties:
185        compatible:
186          contains:
187            enum:
188              - qcom,sm8550-adsp-pas
189              - qcom,sm8650-adsp-pas
190              - qcom,sm8750-adsp-pas
191              - qcom,x1e80100-adsp-pas
192    then:
193      properties:
194        power-domains:
195          items:
196            - description: LCX power domain
197            - description: LMX power domain
198        power-domain-names:
199          items:
200            - const: lcx
201            - const: lmx
202
203  - if:
204      properties:
205        compatible:
206          enum:
207            - qcom,sdx75-mpss-pas
208            - qcom,sm8550-mpss-pas
209            - qcom,sm8650-mpss-pas
210            - qcom,sm8750-mpss-pas
211    then:
212      properties:
213        power-domains:
214          items:
215            - description: CX power domain
216            - description: MSS power domain
217        power-domain-names:
218          items:
219            - const: cx
220            - const: mss
221  - if:
222      properties:
223        compatible:
224          contains:
225            enum:
226              - qcom,sm8550-cdsp-pas
227              - qcom,sm8650-cdsp-pas
228              - qcom,x1e80100-cdsp-pas
229    then:
230      properties:
231        power-domains:
232          items:
233            - description: CX power domain
234            - description: MXC power domain
235            - description: NSP power domain
236        power-domain-names:
237          items:
238            - const: cx
239            - const: mxc
240            - const: nsp
241
242unevaluatedProperties: false
243
244examples:
245  - |
246    #include <dt-bindings/clock/qcom,rpmh.h>
247    #include <dt-bindings/interrupt-controller/irq.h>
248    #include <dt-bindings/mailbox/qcom-ipcc.h>
249
250    remoteproc@30000000 {
251        compatible = "qcom,sm8550-adsp-pas";
252        reg = <0x030000000 0x100>;
253
254        clocks = <&rpmhcc RPMH_CXO_CLK>;
255        clock-names = "xo";
256
257        interrupts-extended = <&pdc 6 IRQ_TYPE_EDGE_RISING>,
258                              <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
259                              <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
260                              <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
261                              <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>;
262        interrupt-names = "wdog", "fatal", "ready",
263                          "handover", "stop-ack";
264
265        memory-region = <&adsp_mem>, <&dtb_adsp_mem>;
266
267        firmware-name = "qcom/sm8550/adsp.mbn",
268                        "qcom/sm8550/adsp_dtb.mbn";
269
270        power-domains = <&rpmhpd_sm8550_lcx>,
271                        <&rpmhpd_sm8550_lmx>;
272        power-domain-names = "lcx", "lmx";
273
274        qcom,qmp = <&aoss_qmp>;
275        qcom,smem-states = <&smp2p_adsp_out 0>;
276        qcom,smem-state-names = "stop";
277
278        glink-edge {
279            interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
280                                         IPCC_MPROC_SIGNAL_GLINK_QMP
281                                         IRQ_TYPE_EDGE_RISING>;
282            mboxes = <&ipcc IPCC_CLIENT_LPASS IPCC_MPROC_SIGNAL_GLINK_QMP>;
283
284            label = "lpass";
285            qcom,remote-pid = <2>;
286
287            /* ... */
288        };
289    };
290