1# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/remoteproc/qcom,sm8150-pas.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm SM8150/SM8250 Peripheral Authentication Service
8
9maintainers:
10  - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
11
12description:
13  Qualcomm SM8150/SM8250 SoC Peripheral Authentication Service loads and boots
14  firmware on the Qualcomm DSP Hexagon cores.
15
16properties:
17  compatible:
18    enum:
19      - qcom,sm8150-adsp-pas
20      - qcom,sm8150-cdsp-pas
21      - qcom,sm8150-mpss-pas
22      - qcom,sm8150-slpi-pas
23      - qcom,sm8250-adsp-pas
24      - qcom,sm8250-cdsp-pas
25      - qcom,sm8250-slpi-pas
26
27  reg:
28    maxItems: 1
29
30  clocks:
31    items:
32      - description: XO clock
33
34  clock-names:
35    items:
36      - const: xo
37
38  qcom,qmp:
39    $ref: /schemas/types.yaml#/definitions/phandle
40    description: Reference to the AOSS side-channel message RAM.
41
42  smd-edge: false
43
44required:
45  - compatible
46  - reg
47
48allOf:
49  - $ref: /schemas/remoteproc/qcom,pas-common.yaml#
50  - if:
51      properties:
52        compatible:
53          enum:
54            - qcom,sm8150-adsp-pas
55            - qcom,sm8150-cdsp-pas
56            - qcom,sm8150-slpi-pas
57            - qcom,sm8250-adsp-pas
58            - qcom,sm8250-cdsp-pas
59            - qcom,sm8250-slpi-pas
60    then:
61      properties:
62        interrupts:
63          maxItems: 5
64        interrupt-names:
65          maxItems: 5
66    else:
67      properties:
68        interrupts:
69          minItems: 6
70        interrupt-names:
71          minItems: 6
72
73  - if:
74      properties:
75        compatible:
76          enum:
77            - qcom,sm8150-adsp-pas
78            - qcom,sm8150-cdsp-pas
79            - qcom,sm8250-cdsp-pas
80    then:
81      properties:
82        power-domains:
83          items:
84            - description: CX power domain
85        power-domain-names:
86          items:
87            - const: cx
88
89  - if:
90      properties:
91        compatible:
92          enum:
93            - qcom,sm8150-mpss-pas
94    then:
95      properties:
96        power-domains:
97          items:
98            - description: CX power domain
99            - description: MSS power domain
100        power-domain-names:
101          items:
102            - const: cx
103            - const: mss
104
105  - if:
106      properties:
107        compatible:
108          enum:
109            - qcom,sm8150-slpi-pas
110            - qcom,sm8250-adsp-pas
111            - qcom,sm8250-slpi-pas
112    then:
113      properties:
114        power-domains:
115          items:
116            - description: LCX power domain
117            - description: LMX power domain
118        power-domain-names:
119          items:
120            - const: lcx
121            - const: lmx
122
123unevaluatedProperties: false
124
125examples:
126  - |
127    #include <dt-bindings/clock/qcom,rpmh.h>
128    #include <dt-bindings/interrupt-controller/arm-gic.h>
129    #include <dt-bindings/interrupt-controller/irq.h>
130    #include <dt-bindings/power/qcom-rpmpd.h>
131
132    remoteproc@17300000 {
133        compatible = "qcom,sm8150-adsp-pas";
134        reg = <0x17300000 0x4040>;
135
136        clocks = <&rpmhcc RPMH_CXO_CLK>;
137        clock-names = "xo";
138
139        firmware-name = "qcom/sm8150/adsp.mbn";
140
141        interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
142                              <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
143                              <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
144                              <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
145                              <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
146        interrupt-names = "wdog", "fatal", "ready",
147                          "handover", "stop-ack";
148
149        memory-region = <&adsp_mem>;
150
151        power-domains = <&rpmhpd SM8150_CX>;
152
153        qcom,qmp = <&aoss_qmp>;
154        qcom,smem-states = <&adsp_smp2p_out 0>;
155        qcom,smem-state-names = "stop";
156
157        glink-edge {
158            interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
159            label = "lpass";
160            qcom,remote-pid = <2>;
161            mboxes = <&apss_shared 8>;
162
163            /* ... */
164
165        };
166    };
167