Merge branch 'for-6.9/amd-sfh' into for-linus
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / remoteproc / qcom,sc7180-pas.yaml
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
7 title: Qualcomm SC7180/SC7280 Peripheral Authentication Service
8
9 maintainers:
10   - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
11
12 description:
13   Qualcomm SC7180/SC7280 SoC Peripheral Authentication Service loads and boots
14   firmware on the Qualcomm DSP Hexagon cores.
15
16 properties:
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
51 required:
52   - compatible
53   - reg
54   - memory-region
55
56 allOf:
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
144 unevaluatedProperties: false
145
146 examples:
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     };