Input: analog - always use ktime functions
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / remoteproc / qcom,adsp.txt
1 Qualcomm ADSP Peripheral Image Loader
2
3 This document defines the binding for a component that loads and boots firmware
4 on the Qualcomm ADSP Hexagon core.
5
6 - compatible:
7         Usage: required
8         Value type: <string>
9         Definition: must be one of:
10                     "qcom,msm8974-adsp-pil"
11                     "qcom,msm8996-adsp-pil"
12                     "qcom,msm8996-slpi-pil"
13                     "qcom,msm8998-adsp-pas"
14                     "qcom,msm8998-slpi-pas"
15                     "qcom,qcs404-adsp-pas"
16                     "qcom,qcs404-cdsp-pas"
17                     "qcom,qcs404-wcss-pas"
18                     "qcom,sc7180-mpss-pas"
19                     "qcom,sdm845-adsp-pas"
20                     "qcom,sdm845-cdsp-pas"
21                     "qcom,sdx55-mpss-pas"
22                     "qcom,sm8150-adsp-pas"
23                     "qcom,sm8150-cdsp-pas"
24                     "qcom,sm8150-mpss-pas"
25                     "qcom,sm8150-slpi-pas"
26                     "qcom,sm8250-adsp-pas"
27                     "qcom,sm8250-cdsp-pas"
28                     "qcom,sm8250-slpi-pas"
29                     "qcom,sm8350-adsp-pas"
30                     "qcom,sm8350-cdsp-pas"
31                     "qcom,sm8350-slpi-pas"
32                     "qcom,sm8350-mpss-pas"
33
34 - interrupts-extended:
35         Usage: required
36         Value type: <prop-encoded-array>
37         Definition: reference to the interrupts that match interrupt-names
38
39 - interrupt-names:
40         Usage: required
41         Value type: <stringlist>
42         Definition: The interrupts needed depends on the compatible
43                     string:
44         qcom,msm8974-adsp-pil:
45         qcom,msm8996-adsp-pil:
46         qcom,msm8996-slpi-pil:
47         qcom,msm8998-adsp-pas:
48         qcom,msm8998-slpi-pas:
49         qcom,qcs404-adsp-pas:
50         qcom,qcs404-cdsp-pas:
51         qcom,sdm845-adsp-pas:
52         qcom,sdm845-cdsp-pas:
53         qcom,sm8150-adsp-pas:
54         qcom,sm8150-cdsp-pas:
55         qcom,sm8150-slpi-pas:
56         qcom,sm8250-adsp-pas:
57         qcom,sm8250-cdsp-pas:
58         qcom,sm8250-slpi-pas:
59         qcom,sm8350-adsp-pas:
60         qcom,sm8350-cdsp-pas:
61         qcom,sm8350-slpi-pas:
62                     must be "wdog", "fatal", "ready", "handover", "stop-ack"
63         qcom,qcs404-wcss-pas:
64         qcom,sc7180-mpss-pas:
65         qcom,sdx55-mpss-pas:
66         qcom,sm8150-mpss-pas:
67         qcom,sm8350-mpss-pas:
68                     must be "wdog", "fatal", "ready", "handover", "stop-ack",
69                     "shutdown-ack"
70
71 - firmware-name:
72         Usage: optional
73         Value type: <string>
74         Definition: must list the relative firmware image path for the
75                     Hexagon Core.
76
77 - clocks:
78         Usage: required
79         Value type: <prop-encoded-array>
80         Definition: reference to the xo clock and optionally aggre2 clock to be
81                     held on behalf of the booting Hexagon core
82
83 - clock-names:
84         Usage: required
85         Value type: <stringlist>
86         Definition: must be "xo" and optionally include "aggre2"
87
88 - cx-supply:
89         Usage: required
90         Value type: <phandle>
91         Definition: reference to the regulator to be held on behalf of the
92                     booting Hexagon core
93
94 - px-supply:
95         Usage: required
96         Value type: <phandle>
97         Definition: reference to the px regulator to be held on behalf of the
98                     booting Hexagon core
99
100 - power-domains:
101         Usage: required
102         Value type: <phandle>
103         Definition: reference to power-domains that match the power-domain-names
104
105 - power-domain-names:
106         Usage: required
107         Value type: <stringlist>
108         Definition: The power-domains needed depend on the compatible string:
109         qcom,msm8974-adsp-pil:
110         qcom,msm8996-adsp-pil:
111         qcom,msm8998-adsp-pas:
112                     must be "cx"
113         qcom,msm8996-slpi-pil:
114                     must be "ss_cx"
115         qcom,msm8998-slpi-pas:
116                     must be "ssc_cx"
117         qcom,qcs404-adsp-pas:
118                     must be "lpi_cx"
119         qcom,qcs404-cdsp-pas:
120         qcom,qcs404-wcss-pas:
121                     must be "mx"
122         qcom,sdm845-adsp-pas:
123         qcom,sdm845-cdsp-pas:
124         qcom,sm8150-adsp-pas:
125         qcom,sm8150-cdsp-pas:
126         qcom,sm8250-cdsp-pas:
127         qcom,sm8350-cdsp-pas:
128                     must be "cx", "load_state"
129         qcom,sc7180-mpss-pas:
130         qcom,sm8150-mpss-pas:
131         qcom,sm8350-mpss-pas:
132                     must be "cx", "load_state", "mss"
133         qcom,sdx55-mpss-pas:
134                     must be "cx", "mss"
135         qcom,sm8250-adsp-pas:
136         qcom,sm8350-adsp-pas:
137         qcom,sm8150-slpi-pas:
138         qcom,sm8250-slpi-pas:
139         qcom,sm8350-slpi-pas:
140                     must be "lcx", "lmx", "load_state"
141
142 - memory-region:
143         Usage: required
144         Value type: <phandle>
145         Definition: reference to the reserved-memory for the ADSP
146
147 - qcom,smem-states:
148         Usage: required
149         Value type: <phandle>
150         Definition: reference to the smem state for requesting the ADSP to
151                     shut down
152
153 - qcom,smem-state-names:
154         Usage: required
155         Value type: <stringlist>
156         Definition: must be "stop"
157
158
159 = SUBNODES
160 The adsp node may have an subnode named either "smd-edge" or "glink-edge" that
161 describes the communication edge, channels and devices related to the ADSP.
162 See ../soc/qcom/qcom,smd.txt and ../soc/qcom/qcom,glink.txt for details on how
163 to describe these.
164
165
166 = EXAMPLE
167 The following example describes the resources needed to boot control the
168 ADSP, as it is found on MSM8974 boards.
169
170         adsp {
171                 compatible = "qcom,msm8974-adsp-pil";
172
173                 interrupts-extended = <&intc 0 162 IRQ_TYPE_EDGE_RISING>,
174                                       <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
175                                       <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
176                                       <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
177                                       <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
178                 interrupt-names = "wdog",
179                                   "fatal",
180                                   "ready",
181                                   "handover",
182                                   "stop-ack";
183
184                 clocks = <&rpmcc RPM_CXO_CLK>;
185                 clock-names = "xo";
186
187                 cx-supply = <&pm8841_s2>;
188
189                 memory-region = <&adsp_region>;
190
191                 qcom,smem-states = <&adsp_smp2p_out 0>;
192                 qcom,smem-state-names = "stop";
193
194                 smd-edge {
195                         interrupts = <0 156 IRQ_TYPE_EDGE_RISING>;
196
197                         qcom,ipc = <&apcs 8 8>;
198                         qcom,smd-edge = <1>;
199                 };
200         };
201
202 The following example describes the resources needed to boot control the
203 SLPI, as it is found on MSM8996 boards.
204
205         slpi {
206                 compatible = "qcom,msm8996-slpi-pil";
207                 interrupts-extended = <&intc 0 390 IRQ_TYPE_EDGE_RISING>,
208                                       <&slpi_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
209                                       <&slpi_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
210                                       <&slpi_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
211                                       <&slpi_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
212                 interrupt-names = "wdog",
213                                   "fatal",
214                                   "ready",
215                                   "handover",
216                                   "stop-ack";
217
218                 clocks = <&rpmcc MSM8996_RPM_SMD_XO_CLK_SRC>,
219                          <&rpmcc MSM8996_RPM_SMD_AGGR2_NOC_CLK>;
220                 clock-names = "xo", "aggre2";
221
222                 cx-supply = <&pm8994_l26>;
223                 px-supply = <&pm8994_lvs2>;
224
225                 memory-region = <&slpi_region>;
226                 qcom,smem-states = <&slpi_smp2p_out 0>;
227                 qcom,smem-state-names = "stop";
228         };