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