1Qualcomm Hexagon Peripheral Image Loader
2
3This document defines the binding for a component that loads and boots firmware
4on the Qualcomm Hexagon core.
5
6- compatible:
7	Usage: required
8	Value type: <string>
9	Definition: must be one of:
10		    "qcom,q6v5-pil",
11		    "qcom,ipq8074-wcss-pil"
12		    "qcom,qcs404-wcss-pil"
13		    "qcom,msm8916-mss-pil",
14		    "qcom,msm8974-mss-pil"
15		    "qcom,msm8996-mss-pil"
16		    "qcom,msm8998-mss-pil"
17		    "qcom,sc7180-mss-pil"
18		    "qcom,sc7280-mss-pil"
19		    "qcom,sdm845-mss-pil"
20
21- reg:
22	Usage: required
23	Value type: <prop-encoded-array>
24	Definition: must specify the base address and size of the qdsp6 and
25		    rmb register blocks
26
27- reg-names:
28	Usage: required
29	Value type: <stringlist>
30	Definition: must be "q6dsp" and "rmb"
31
32- interrupts-extended:
33	Usage: required
34	Value type: <prop-encoded-array>
35	Definition: reference to the interrupts that match interrupt-names
36
37- interrupt-names:
38	Usage: required
39	Value type: <stringlist>
40	Definition: The interrupts needed depends on the the compatible
41		    string:
42	qcom,q6v5-pil:
43	qcom,ipq8074-wcss-pil:
44	qcom,qcs404-wcss-pil:
45	qcom,msm8916-mss-pil:
46	qcom,msm8974-mss-pil:
47		    must be "wdog", "fatal", "ready", "handover", "stop-ack"
48	qcom,msm8996-mss-pil:
49	qcom,msm8998-mss-pil:
50	qcom,sc7180-mss-pil:
51	qcom,sc7280-mss-pil:
52	qcom,sdm845-mss-pil:
53		    must be "wdog", "fatal", "ready", "handover", "stop-ack",
54		    "shutdown-ack"
55
56- firmware-name:
57	Usage: optional
58	Value type: <stringlist>
59	Definition: must list the relative firmware image paths for mba and
60		    modem. They are used for booting and authenticating the
61		    Hexagon core.
62
63- clocks:
64	Usage: required
65	Value type: <phandle>
66	Definition: reference to the clocks that match clock-names
67
68- clock-names:
69	Usage: required
70	Value type: <stringlist>
71	Definition: The clocks needed depend on the compatible string:
72	qcom,ipq8074-wcss-pil:
73		    no clock names required
74	qcom,qcs404-wcss-pil:
75		    must be "xo", "gcc_abhs_cbcr", "gcc_abhs_cbcr",
76		    "gcc_axim_cbcr", "lcc_ahbfabric_cbc", "tcsr_lcc_cbc",
77		    "lcc_abhs_cbc", "lcc_tcm_slave_cbc", "lcc_abhm_cbc",
78		    "lcc_axim_cbc", "lcc_bcr_sleep"
79	qcom,q6v5-pil:
80	qcom,msm8916-mss-pil:
81	qcom,msm8974-mss-pil:
82		    must be "iface", "bus", "mem", "xo"
83	qcom,msm8996-mss-pil:
84		    must be "iface", "bus", "mem", "xo", "gpll0_mss",
85		    "snoc_axi", "mnoc_axi", "pnoc", "qdss"
86	qcom,msm8998-mss-pil:
87		    must be "iface", "bus", "mem", "xo", "gpll0_mss",
88		    "snoc_axi", "mnoc_axi", "qdss"
89	qcom,sc7180-mss-pil:
90		    must be "iface", "bus", "xo", "snoc_axi", "mnoc_axi",
91		    "nav"
92	qcom,sc7280-mss-pil:
93		    must be "iface", "xo", "snoc_axi", "offline", "pka"
94	qcom,sdm845-mss-pil:
95		    must be "iface", "bus", "mem", "xo", "gpll0_mss",
96		    "snoc_axi", "mnoc_axi", "prng"
97
98- resets:
99	Usage: required
100	Value type: <phandle>
101	Definition: reference to the reset-controller for the modem sub-system
102		    reference to the list of 3 reset-controllers for the
103		    wcss sub-system
104		    reference to the list of 2 reset-controllers for the modem
105		    sub-system on SC7180, SC7280, SDM845 SoCs
106
107- reset-names:
108	Usage: required
109	Value type: <stringlist>
110	Definition: must be "mss_restart" for the modem sub-system
111		    must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset"
112		    for the wcss sub-system
113		    must be "mss_restart", "pdc_reset" for the modem
114		    sub-system on SC7180, SC7280, SDM845 SoCs
115
116For devices where the mba and mpss sub-nodes are not specified, mba/mpss region
117should be referenced as follows:
118- memory-region:
119	Usage: required
120	Value type: <phandle>
121	Definition: reference to the reserved-memory for the mba region followed
122		    by the mpss region
123
124For the compatible strings below the following supplies are required:
125  "qcom,q6v5-pil"
126  "qcom,msm8916-mss-pil",
127- cx-supply: (deprecated, use power domain instead)
128- mx-supply: (deprecated, use power domain instead)
129- pll-supply:
130	Usage: required
131	Value type: <phandle>
132	Definition: reference to the regulators to be held on behalf of the
133		    booting of the Hexagon core
134
135For the compatible string below the following supplies are required:
136  "qcom,msm8974-mss-pil"
137- cx-supply: (deprecated, use power domain instead)
138- mss-supply:
139- mx-supply: (deprecated, use power domain instead)
140- pll-supply:
141	Usage: required
142	Value type: <phandle>
143	Definition: reference to the regulators to be held on behalf of the
144		    booting of the Hexagon core
145
146For the compatible string below the following supplies are required:
147  "qcom,qcs404-wcss-pil"
148- cx-supply:
149	Usage: required
150	Value type: <phandle>
151	Definition: reference to the regulators to be held on behalf of the
152		    booting of the Hexagon core
153
154For the compatible string below the following supplies are required:
155  "qcom,msm8996-mss-pil"
156- pll-supply:
157	Usage: required
158	Value type: <phandle>
159	Definition: reference to the regulators to be held on behalf of the
160		    booting of the Hexagon core
161
162- power-domains:
163	Usage: required
164	Value type: <phandle>
165	Definition: reference to power-domains that match power-domain-names
166
167- power-domain-names:
168	Usage: required
169	Value type: <stringlist>
170	Definition: The power-domains needed depend on the compatible string:
171	qcom,ipq8074-wcss-pil:
172		    no power-domain names required
173	qcom,q6v5-pil:
174	qcom,msm8916-mss-pil:
175	qcom,msm8974-mss-pil:
176	qcom,msm8996-mss-pil:
177	qcom,msm8998-mss-pil:
178		    must be "cx", "mx"
179	qcom,sc7180-mss-pil:
180		    must be "cx", "mx", "mss"
181	qcom,sc7280-mss-pil:
182		    must be "cx", "mss"
183	qcom,sdm845-mss-pil:
184		    must be "cx", "mx", "mss"
185
186- qcom,qmp:
187	Usage: optional
188	Value type: <phandle>
189	Definition: reference to the AOSS side-channel message RAM.
190
191- qcom,smem-states:
192	Usage: required
193	Value type: <phandle>
194	Definition: reference to the smem state for requesting the Hexagon to
195		    shut down
196
197- qcom,smem-state-names:
198	Usage: required
199	Value type: <stringlist>
200	Definition: must be "stop"
201
202- qcom,halt-regs:
203	Usage: required
204	Value type: <prop-encoded-array>
205	Definition: a phandle reference to a syscon representing TCSR followed
206		    by the three offsets within syscon for q6, modem and nc
207		    halt registers.
208		    a phandle reference to a syscon representing TCSR followed
209		    by the four offsets within syscon for q6, modem, nc and vq6
210		    halt registers on SC7280 SoCs.
211
212For the compatible strings below the following phandle references are required:
213  "qcom,sc7180-mss-pil"
214- qcom,spare-regs:
215	Usage: required
216	Value type: <prop-encoded-array>
217	Definition: a phandle reference to a syscon representing TCSR followed
218		    by the offset within syscon for conn_box_spare0 register
219		    used by the modem sub-system running on SC7180 SoC.
220
221For the compatible strings below the following phandle references are required:
222  "qcom,sc7280-mss-pil"
223- qcom,ext-regs:
224	Usage: required
225	Value type: <prop-encoded-array>
226	Definition: two phandle references to syscons representing TCSR_REG and
227		    TCSR register space followed by the two offsets within the syscon
228		    to force_clk_en/rscc_disable and axim1_clk_off/crypto_clk_off
229		    registers respectively.
230
231- qcom,qaccept-regs:
232	Usage: required
233	Value type: <prop-encoded-array>
234	Definition: a phandle reference to a syscon representing TCSR followed
235		    by the three offsets within syscon for mdm, cx and axi
236		    qaccept registers used by the modem sub-system running on
237		    SC7280 SoC.
238
239The Hexagon node must contain iommus property as described in ../iommu/iommu.txt
240on platforms which do not have TrustZone.
241
242= SUBNODES:
243The Hexagon node must contain two subnodes, named "mba" and "mpss" representing
244the memory regions used by the Hexagon firmware. Each sub-node must contain:
245
246- memory-region:
247	Usage: required
248	Value type: <phandle>
249	Definition: reference to the reserved-memory for the region
250
251The Hexagon node may also have an subnode named either "smd-edge" or
252"glink-edge" that describes the communication edge, channels and devices
253related to the Hexagon.  See ../soc/qcom/qcom,smd.yaml and
254../soc/qcom/qcom,glink.txt for details on how to describe these.
255
256= EXAMPLE
257The following example describes the resources needed to boot control the
258Hexagon, as it is found on MSM8974 boards.
259
260	modem-rproc@fc880000 {
261		compatible = "qcom,q6v5-pil";
262		reg = <0xfc880000 0x100>,
263		      <0xfc820000 0x020>;
264		reg-names = "qdsp6", "rmb";
265
266		interrupts-extended = <&intc 0 24 1>,
267				      <&modem_smp2p_in 0 0>,
268				      <&modem_smp2p_in 1 0>,
269				      <&modem_smp2p_in 2 0>,
270				      <&modem_smp2p_in 3 0>;
271		interrupt-names = "wdog",
272				  "fatal",
273				  "ready",
274				  "handover",
275				  "stop-ack";
276
277		clocks = <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
278			 <&gcc GCC_MSS_CFG_AHB_CLK>,
279			 <&gcc GCC_BOOT_ROM_AHB_CLK>;
280		clock-names = "iface", "bus", "mem";
281
282		qcom,halt-regs = <&tcsr_mutex_block 0x1180 0x1200 0x1280>;
283
284		resets = <&gcc GCC_MSS_RESTART>;
285		reset-names = "mss_restart";
286
287		cx-supply = <&pm8841_s2>;
288		mss-supply = <&pm8841_s3>;
289		mx-supply = <&pm8841_s1>;
290		pll-supply = <&pm8941_l12>;
291
292		qcom,smem-states = <&modem_smp2p_out 0>;
293		qcom,smem-state-names = "stop";
294
295		mba {
296			memory-region = <&mba_region>;
297		};
298
299		mpss {
300			memory-region = <&mpss_region>;
301		};
302	};
303