treewide: remove redundant IS_ERR() before error code check
[linux/fpc-iii.git] / Documentation / devicetree / bindings / remoteproc / qcom,q6v5.txt
blobc416746f93cfdc86fd62551ca5b05e5f3b14c2e2
1 Qualcomm Hexagon Peripheral Image Loader
3 This document defines the binding for a component that loads and boots firmware
4 on the Qualcomm Hexagon core.
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,sdm845-mss-pil"
18 - reg:
19         Usage: required
20         Value type: <prop-encoded-array>
21         Definition: must specify the base address and size of the qdsp6 and
22                     rmb register blocks
24 - reg-names:
25         Usage: required
26         Value type: <stringlist>
27         Definition: must be "q6dsp" and "rmb"
29 - interrupts-extended:
30         Usage: required
31         Value type: <prop-encoded-array>
32         Definition: reference to the interrupts that match interrupt-names
34 - interrupt-names:
35         Usage: required
36         Value type: <stringlist>
37         Definition: The interrupts needed depends on the the compatible
38                     string:
39         qcom,q6v5-pil:
40         qcom,ipq8074-wcss-pil:
41         qcom,msm8916-mss-pil:
42         qcom,msm8974-mss-pil:
43                     must be "wdog", "fatal", "ready", "handover", "stop-ack"
44         qcom,msm8996-mss-pil:
45         qcom,msm8998-mss-pil:
46         qcom,sdm845-mss-pil:
47                     must be "wdog", "fatal", "ready", "handover", "stop-ack",
48                     "shutdown-ack"
50 - firmware-name:
51         Usage: optional
52         Value type: <stringlist>
53         Definition: must list the relative firmware image paths for mba and
54                     modem. They are used for booting and authenticating the
55                     Hexagon core.
57 - clocks:
58         Usage: required
59         Value type: <phandle>
60         Definition: reference to the clocks that match clock-names
62 - clock-names:
63         Usage: required
64         Value type: <stringlist>
65         Definition: The clocks needed depend on the compatible string:
66         qcom,ipq8074-wcss-pil:
67                     no clock names required
68         qcom,q6v5-pil:
69         qcom,msm8916-mss-pil:
70         qcom,msm8974-mss-pil:
71                     must be "iface", "bus", "mem", "xo"
72         qcom,msm8996-mss-pil:
73                     must be "iface", "bus", "mem", "xo", "gpll0_mss",
74                     "snoc_axi", "mnoc_axi", "pnoc", "qdss"
75         qcom,msm8998-mss-pil:
76                     must be "iface", "bus", "mem", "xo", "gpll0_mss",
77                     "snoc_axi", "mnoc_axi", "qdss"
78         qcom,sdm845-mss-pil:
79                     must be "iface", "bus", "mem", "xo", "gpll0_mss",
80                     "snoc_axi", "mnoc_axi", "prng"
82 - resets:
83         Usage: required
84         Value type: <phandle>
85         Definition: reference to the reset-controller for the modem sub-system
86                     reference to the list of 3 reset-controllers for the
87                     wcss sub-system
88                     reference to the list of 2 reset-controllers for the modem
89                     sub-system on SDM845 SoCs
91 - reset-names:
92         Usage: required
93         Value type: <stringlist>
94         Definition: must be "mss_restart" for the modem sub-system
95                     must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset"
96                     for the wcss sub-system
97                     must be "mss_restart", "pdc_reset" for the modem
98                     sub-system on SDM845 SoCs
100 For the compatible strings below the following supplies are required:
101   "qcom,q6v5-pil"
102   "qcom,msm8916-mss-pil",
103 - cx-supply:
104 - mx-supply:
105 - pll-supply:
106         Usage: required
107         Value type: <phandle>
108         Definition: reference to the regulators to be held on behalf of the
109                     booting of the Hexagon core
111 For the compatible string below the following supplies are required:
112   "qcom,msm8974-mss-pil"
113 - cx-supply:
114 - mss-supply:
115 - mx-supply:
116 - pll-supply:
117         Usage: required
118         Value type: <phandle>
119         Definition: reference to the regulators to be held on behalf of the
120                     booting of the Hexagon core
122 For the compatible string below the following supplies are required:
123   "qcom,msm8996-mss-pil"
124 - pll-supply:
125         Usage: required
126         Value type: <phandle>
127         Definition: reference to the regulators to be held on behalf of the
128                     booting of the Hexagon core
130 - power-domains:
131         Usage: required
132         Value type: <phandle>
133         Definition: reference to power-domains that match power-domain-names
135 - power-domain-names:
136         Usage: required
137         Value type: <stringlist>
138         Definition: The power-domains needed depend on the compatible string:
139         qcom,q6v5-pil:
140         qcom,ipq8074-wcss-pil:
141         qcom,msm8916-mss-pil:
142         qcom,msm8974-mss-pil:
143                     no power-domain names required
144         qcom,msm8996-mss-pil:
145         qcom,msm8998-mss-pil:
146                     must be "cx", "mx"
147         qcom,sdm845-mss-pil:
148                     must be "cx", "mx", "mss", "load_state"
150 - qcom,smem-states:
151         Usage: required
152         Value type: <phandle>
153         Definition: reference to the smem state for requesting the Hexagon to
154                     shut down
156 - qcom,smem-state-names:
157         Usage: required
158         Value type: <stringlist>
159         Definition: must be "stop"
161 - qcom,halt-regs:
162         Usage: required
163         Value type: <prop-encoded-array>
164         Definition: a phandle reference to a syscon representing TCSR followed
165                     by the three offsets within syscon for q6, modem and nc
166                     halt registers.
168 = SUBNODES:
169 The Hexagon node must contain two subnodes, named "mba" and "mpss" representing
170 the memory regions used by the Hexagon firmware. Each sub-node must contain:
172 - memory-region:
173         Usage: required
174         Value type: <phandle>
175         Definition: reference to the reserved-memory for the region
177 The Hexagon node may also have an subnode named either "smd-edge" or
178 "glink-edge" that describes the communication edge, channels and devices
179 related to the Hexagon.  See ../soc/qcom/qcom,smd.txt and
180 ../soc/qcom/qcom,glink.txt for details on how to describe these.
182 = EXAMPLE
183 The following example describes the resources needed to boot control the
184 Hexagon, as it is found on MSM8974 boards.
186         modem-rproc@fc880000 {
187                 compatible = "qcom,q6v5-pil";
188                 reg = <0xfc880000 0x100>,
189                       <0xfc820000 0x020>;
190                 reg-names = "qdsp6", "rmb";
192                 interrupts-extended = <&intc 0 24 1>,
193                                       <&modem_smp2p_in 0 0>,
194                                       <&modem_smp2p_in 1 0>,
195                                       <&modem_smp2p_in 2 0>,
196                                       <&modem_smp2p_in 3 0>;
197                 interrupt-names = "wdog",
198                                   "fatal",
199                                   "ready",
200                                   "handover",
201                                   "stop-ack";
203                 clocks = <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
204                          <&gcc GCC_MSS_CFG_AHB_CLK>,
205                          <&gcc GCC_BOOT_ROM_AHB_CLK>;
206                 clock-names = "iface", "bus", "mem";
208                 qcom,halt-regs = <&tcsr_mutex_block 0x1180 0x1200 0x1280>;
210                 resets = <&gcc GCC_MSS_RESTART>;
211                 reset-names = "mss_restart";
213                 cx-supply = <&pm8841_s2>;
214                 mss-supply = <&pm8841_s3>;
215                 mx-supply = <&pm8841_s1>;
216                 pll-supply = <&pm8941_l12>;
218                 qcom,smem-states = <&modem_smp2p_out 0>;
219                 qcom,smem-state-names = "stop";
221                 mba {
222                         memory-region = <&mba_region>;
223                 };
225                 mpss {
226                         memory-region = <&mpss_region>;
227                 };
228         };