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