sched/doc: Update documentation for base_slice_ns and CONFIG_HZ relation
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / remoteproc / qcom,wcnss-pil.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/remoteproc/qcom,wcnss-pil.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Qualcomm WCNSS Peripheral Image Loader
8
9 maintainers:
10   - Bjorn Andersson <andersson@kernel.org>
11
12 description:
13   This document defines the binding for a component that loads and boots
14   firmware on the Qualcomm WCNSS core.
15
16 properties:
17   compatible:
18     description:
19       Append "qcom,pronto" if the device is actually pronto, and not riva
20     oneOf:
21       - items:
22           - enum:
23               - qcom,pronto-v1-pil
24               - qcom,pronto-v2-pil
25               - qcom,pronto-v3-pil
26           - const: qcom,pronto
27       - const: qcom,riva-pil
28
29   reg:
30     maxItems: 3
31     description:
32       The base address and size of the CCU, DXE and PMU register blocks
33
34   reg-names:
35     items:
36       - const: ccu
37       - const: dxe
38       - const: pmu
39
40   interrupts:
41     minItems: 2
42     maxItems: 5
43
44   interrupt-names:
45     minItems: 2
46     items:
47       - const: wdog
48       - const: fatal
49       - const: ready
50       - const: handover
51       - const: stop-ack
52
53   firmware-name:
54     $ref: /schemas/types.yaml#/definitions/string
55     description:
56       Relative firmware image path for the WCNSS core. Defaults to
57       "wcnss.mdt".
58
59   vddpx-supply:
60     description:
61       PX regulator to be held on behalf of the booting of the WCNSS core
62
63   vddmx-supply:
64     description:
65       MX regulator to be held on behalf of the booting of the WCNSS core.
66
67   vddcx-supply:
68     description:
69       CX regulator to be held on behalf of the booting of the WCNSS core.
70
71   power-domains:
72     maxItems: 2
73
74   power-domain-names:
75     items:
76       - const: cx
77       - const: mx
78
79   qcom,smem-states:
80     $ref: /schemas/types.yaml#/definitions/phandle-array
81     description:
82       States used by the AP to signal the WCNSS core that it should shutdown
83     items:
84       - description: Stop the modem
85
86   qcom,smem-state-names:
87     description: The names of the state bits used for SMP2P output
88     items:
89       - const: stop
90
91   memory-region:
92     maxItems: 1
93     description: reserved-memory for the WCNSS core
94
95   smd-edge:
96     $ref: /schemas/remoteproc/qcom,smd-edge.yaml#
97     description:
98       Qualcomm Shared Memory subnode which represents communication edge,
99       channels and devices related to the ADSP.
100
101   iris:
102     type: object
103     description:
104       The iris subnode of the WCNSS PIL is used to describe the attached RF module
105       and its resource dependencies.
106
107     properties:
108       compatible:
109         enum:
110           - qcom,wcn3620
111           - qcom,wcn3660
112           - qcom,wcn3660b
113           - qcom,wcn3680
114
115       clocks:
116         minItems: 1
117         items:
118           - description: XO clock
119           - description: RF clock
120
121       clock-names:
122         minItems: 1
123         items:
124           - const: xo
125           - const: rf
126
127       vddxo-supply:
128         description:
129           Reference to the regulator to be held on behalf of the booting WCNSS
130           core
131
132       vddrfa-supply:
133         description:
134           Reference to the regulator to be held on behalf of the booting WCNSS
135           core
136
137       vddpa-supply:
138         description:
139           Reference to the regulator to be held on behalf of the booting WCNSS
140           core
141
142       vdddig-supply:
143         description:
144           Reference to the regulator to be held on behalf of the booting WCNSS
145           core
146
147     required:
148       - compatible
149       - clocks
150       - clock-names
151       - vddxo-supply
152       - vddrfa-supply
153       - vddpa-supply
154       - vdddig-supply
155
156     additionalProperties: false
157
158 required:
159   - compatible
160   - reg
161   - reg-names
162   - interrupts
163   - interrupt-names
164   - iris
165   - vddpx-supply
166   - memory-region
167   - smd-edge
168
169 additionalProperties: false
170
171 allOf:
172   - if:
173       properties:
174         compatible:
175           contains:
176             const: qcom,riva-pil
177     then:
178       required:
179         - vddcx-supply
180         - vddmx-supply
181
182   - if:
183       properties:
184         compatible:
185           contains:
186             enum:
187               - qcom,pronto-v1-pil
188               - qcom,pronto-v2-pil
189     then:
190       properties:
191         vddmx-supply:
192           deprecated: true
193           description: Deprecated for qcom,pronto-v1/2-pil
194
195         vddcx-supply:
196           deprecated: true
197           description: Deprecated for qcom,pronto-v1/2-pil
198
199       oneOf:
200         - required:
201             - power-domains
202             - power-domain-names
203         - required:
204             - vddmx-supply
205             - vddcx-supply
206
207   - if:
208       properties:
209         compatible:
210           contains:
211             enum:
212               - qcom,pronto-v3-pil
213     then:
214       properties:
215         vddmx-supply: false
216         vddcx-supply: false
217
218       required:
219         - power-domains
220         - power-domain-names
221
222 examples:
223   - |
224     #include <dt-bindings/interrupt-controller/arm-gic.h>
225     #include <dt-bindings/clock/qcom,rpmcc.h>
226     #include <dt-bindings/power/qcom-rpmpd.h>
227     pronto@a21b000 {
228         compatible = "qcom,pronto-v2-pil", "qcom,pronto";
229         reg = <0x0a204000 0x2000>, <0x0a202000 0x1000>, <0x0a21b000 0x3000>;
230         reg-names = "ccu", "dxe", "pmu";
231
232         interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
233                               <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
234                               <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
235                               <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
236                               <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
237         interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
238
239         power-domains = <&rpmpd MSM8916_VDDCX>, <&rpmpd MSM8916_VDDMX>;
240         power-domain-names = "cx", "mx";
241
242         vddpx-supply = <&pm8916_l7>;
243
244         qcom,smem-states = <&wcnss_smp2p_out 0>;
245         qcom,smem-state-names = "stop";
246
247         memory-region = <&wcnss_region>;
248
249         pinctrl-names = "default";
250         pinctrl-0 = <&wcnss_pin_a>;
251
252         iris {
253             compatible = "qcom,wcn3620";
254             vddxo-supply = <&pm8916_l7>;
255             vddrfa-supply = <&pm8916_s3>;
256             vddpa-supply = <&pm8916_l9>;
257             vdddig-supply = <&pm8916_l5>;
258
259             clocks = <&rpmcc RPM_SMD_RF_CLK2>;
260             clock-names = "xo";
261         };
262
263         smd-edge {
264             interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
265
266             qcom,ipc = <&apcs 8 17>;
267             qcom,smd-edge = <6>;
268             qcom,remote-pid = <4>;
269
270             label = "pronto";
271
272             wcnss_ctrl: wcnss {
273                 compatible = "qcom,wcnss";
274                 qcom,smd-channels = "WCNSS_CTRL";
275
276                 qcom,mmio = <&pronto>;
277
278                 bluetooth {
279                     compatible = "qcom,wcnss-bt";
280                 };
281
282                 wifi {
283                     compatible = "qcom,wcnss-wlan";
284
285                     interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
286                                  <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
287                     interrupt-names = "tx", "rx";
288
289                     qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
290                     qcom,smem-state-names = "tx-enable", "tx-rings-empty";
291                 };
292             };
293         };
294     };