blob: 45eb42bd3c2cd8a061e7b7221bfffee1e28553ef [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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
7title: Qualcomm WCNSS Peripheral Image Loader
8
9maintainers:
10 - Bjorn Andersson <andersson@kernel.org>
11
12description:
13 This document defines the binding for a component that loads and boots
14 firmware on the Qualcomm WCNSS core.
15
16properties:
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
158required:
159 - compatible
160 - reg
161 - reg-names
162 - interrupts
163 - interrupt-names
164 - iris
165 - vddpx-supply
166 - memory-region
167 - smd-edge
168
169additionalProperties: false
170
171allOf:
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
222examples:
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 };