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