Merge branch 'for-5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
[linux-2.6-microblaze.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,msm8916-mss-pil",
13                     "qcom,msm8974-mss-pil"
14                     "qcom,msm8996-mss-pil"
15                     "qcom,msm8998-mss-pil"
16                     "qcom,sc7180-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 the compatible
39                     string:
40         qcom,q6v5-pil:
41         qcom,ipq8074-wcss-pil:
42         qcom,msm8916-mss-pil:
43         qcom,msm8974-mss-pil:
44                     must be "wdog", "fatal", "ready", "handover", "stop-ack"
45         qcom,msm8996-mss-pil:
46         qcom,msm8998-mss-pil:
47         qcom,sc7180-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,q6v5-pil:
71         qcom,msm8916-mss-pil:
72         qcom,msm8974-mss-pil:
73                     must be "iface", "bus", "mem", "xo"
74         qcom,msm8996-mss-pil:
75                     must be "iface", "bus", "mem", "xo", "gpll0_mss",
76                     "snoc_axi", "mnoc_axi", "pnoc", "qdss"
77         qcom,msm8998-mss-pil:
78                     must be "iface", "bus", "mem", "xo", "gpll0_mss",
79                     "snoc_axi", "mnoc_axi", "qdss"
80         qcom,sc7180-mss-pil:
81                     must be "iface", "bus", "xo", "snoc_axi", "mnoc_axi",
82                     "nav"
83         qcom,sdm845-mss-pil:
84                     must be "iface", "bus", "mem", "xo", "gpll0_mss",
85                     "snoc_axi", "mnoc_axi", "prng"
86
87 - resets:
88         Usage: required
89         Value type: <phandle>
90         Definition: reference to the reset-controller for the modem sub-system
91                     reference to the list of 3 reset-controllers for the
92                     wcss sub-system
93                     reference to the list of 2 reset-controllers for the modem
94                     sub-system on SC7180, SDM845 SoCs
95
96 - reset-names:
97         Usage: required
98         Value type: <stringlist>
99         Definition: must be "mss_restart" for the modem sub-system
100                     must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset"
101                     for the wcss sub-system
102                     must be "mss_restart", "pdc_reset" for the modem
103                     sub-system on SC7180, SDM845 SoCs
104
105 For devices where the mba and mpss sub-nodes are not specified, mba/mpss region
106 should be referenced as follows:
107 - memory-region:
108         Usage: required
109         Value type: <phandle>
110         Definition: reference to the reserved-memory for the mba region followed
111                     by the mpss region
112
113 For the compatible strings below the following supplies are required:
114   "qcom,q6v5-pil"
115   "qcom,msm8916-mss-pil",
116 - cx-supply: (deprecated, use power domain instead)
117 - mx-supply: (deprecated, use power domain instead)
118 - pll-supply:
119         Usage: required
120         Value type: <phandle>
121         Definition: reference to the regulators to be held on behalf of the
122                     booting of the Hexagon core
123
124 For the compatible string below the following supplies are required:
125   "qcom,msm8974-mss-pil"
126 - cx-supply: (deprecated, use power domain instead)
127 - mss-supply:
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
135 For the compatible string below the following supplies are required:
136   "qcom,msm8996-mss-pil"
137 - pll-supply:
138         Usage: required
139         Value type: <phandle>
140         Definition: reference to the regulators to be held on behalf of the
141                     booting of the Hexagon core
142
143 - power-domains:
144         Usage: required
145         Value type: <phandle>
146         Definition: reference to power-domains that match power-domain-names
147
148 - power-domain-names:
149         Usage: required
150         Value type: <stringlist>
151         Definition: The power-domains needed depend on the compatible string:
152         qcom,ipq8074-wcss-pil:
153                     no power-domain names required
154         qcom,q6v5-pil:
155         qcom,msm8916-mss-pil:
156         qcom,msm8974-mss-pil:
157         qcom,msm8996-mss-pil:
158         qcom,msm8998-mss-pil:
159                     must be "cx", "mx"
160         qcom,sc7180-mss-pil:
161         qcom,sdm845-mss-pil:
162                     must be "cx", "mx", "mss", "load_state"
163
164 - qcom,smem-states:
165         Usage: required
166         Value type: <phandle>
167         Definition: reference to the smem state for requesting the Hexagon to
168                     shut down
169
170 - qcom,smem-state-names:
171         Usage: required
172         Value type: <stringlist>
173         Definition: must be "stop"
174
175 - qcom,halt-regs:
176         Usage: required
177         Value type: <prop-encoded-array>
178         Definition: a phandle reference to a syscon representing TCSR followed
179                     by the three offsets within syscon for q6, modem and nc
180                     halt registers.
181
182 For the compatible strings below the following phandle references are required:
183   "qcom,sc7180-mss-pil"
184 - qcom,spare-regs:
185         Usage: required
186         Value type: <prop-encoded-array>
187         Definition: a phandle reference to a syscon representing TCSR followed
188                     by the offset within syscon for conn_box_spare0 register
189                     used by the modem sub-system running on SC7180 SoC.
190
191 The Hexagon node must contain iommus property as described in ../iommu/iommu.txt
192 on platforms which do not have TrustZone.
193
194 = SUBNODES:
195 The Hexagon node must contain two subnodes, named "mba" and "mpss" representing
196 the memory regions used by the Hexagon firmware. Each sub-node must contain:
197
198 - memory-region:
199         Usage: required
200         Value type: <phandle>
201         Definition: reference to the reserved-memory for the region
202
203 The Hexagon node may also have an subnode named either "smd-edge" or
204 "glink-edge" that describes the communication edge, channels and devices
205 related to the Hexagon.  See ../soc/qcom/qcom,smd.txt and
206 ../soc/qcom/qcom,glink.txt for details on how to describe these.
207
208 = EXAMPLE
209 The following example describes the resources needed to boot control the
210 Hexagon, as it is found on MSM8974 boards.
211
212         modem-rproc@fc880000 {
213                 compatible = "qcom,q6v5-pil";
214                 reg = <0xfc880000 0x100>,
215                       <0xfc820000 0x020>;
216                 reg-names = "qdsp6", "rmb";
217
218                 interrupts-extended = <&intc 0 24 1>,
219                                       <&modem_smp2p_in 0 0>,
220                                       <&modem_smp2p_in 1 0>,
221                                       <&modem_smp2p_in 2 0>,
222                                       <&modem_smp2p_in 3 0>;
223                 interrupt-names = "wdog",
224                                   "fatal",
225                                   "ready",
226                                   "handover",
227                                   "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                 clock-names = "iface", "bus", "mem";
233
234                 qcom,halt-regs = <&tcsr_mutex_block 0x1180 0x1200 0x1280>;
235
236                 resets = <&gcc GCC_MSS_RESTART>;
237                 reset-names = "mss_restart";
238
239                 cx-supply = <&pm8841_s2>;
240                 mss-supply = <&pm8841_s3>;
241                 mx-supply = <&pm8841_s1>;
242                 pll-supply = <&pm8941_l12>;
243
244                 qcom,smem-states = <&modem_smp2p_out 0>;
245                 qcom,smem-state-names = "stop";
246
247                 mba {
248                         memory-region = <&mba_region>;
249                 };
250
251                 mpss {
252                         memory-region = <&mpss_region>;
253                 };
254         };