GNU Linux-libre 5.15.137-gnu
[releases.git] / Documentation / devicetree / bindings / remoteproc / qcom,wcnss-pil.txt
1 Qualcomm WCNSS Peripheral Image Loader
2
3 This document defines the binding for a component that loads and boots firmware
4 on the Qualcomm WCNSS core.
5
6 - compatible:
7         Usage: required
8         Value type: <string>
9         Definition: must be one of:
10                     "qcom,riva-pil",
11                     "qcom,pronto-v1-pil",
12                     "qcom,pronto-v2-pil"
13
14 - reg:
15         Usage: required
16         Value type: <prop-encoded-array>
17         Definition: must specify the base address and size of the CCU, DXE and
18                     PMU register blocks
19
20 - reg-names:
21         Usage: required
22         Value type: <stringlist>
23         Definition: must be "ccu", "dxe", "pmu"
24
25 - interrupts-extended:
26         Usage: required
27         Value type: <prop-encoded-array>
28         Definition: must list the watchdog and fatal IRQs and may specify the
29                     ready, handover and stop-ack IRQs
30
31 - interrupt-names:
32         Usage: required
33         Value type: <stringlist>
34         Definition: should be "wdog", "fatal", optionally followed by "ready",
35                     "handover", "stop-ack"
36
37 - firmware-name:
38         Usage: optional
39         Value type: <string>
40         Definition: must list the relative firmware image path for the
41                     WCNSS core. Defaults to "/*(DEBLOBBED)*/".
42
43 - vddmx-supply: (deprecated for qcom,pronto-v1/2-pil)
44 - vddcx-supply: (deprecated for qcom,pronto-v1/2-pil)
45 - vddpx-supply:
46         Usage: required
47         Value type: <phandle>
48         Definition: reference to the regulators to be held on behalf of the
49                     booting of the WCNSS core
50
51 - power-domains:
52         Usage: required (for qcom,pronto-v1/2-pil)
53         Value type: <phandle>
54         Definition: reference to the power domains to be held on behalf of the
55                     booting of the WCNSS core
56
57 - power-domain-names:
58         Usage: required (for qcom,pronto-v1/2-pil)
59         Value type: <stringlist>
60         Definition: must be "cx", "mx"
61
62 - qcom,smem-states:
63         Usage: optional
64         Value type: <prop-encoded-array>
65         Definition: reference to the SMEM state used to indicate to WCNSS that
66                     it should shut down
67
68 - qcom,smem-state-names:
69         Usage: optional
70         Value type: <stringlist>
71         Definition: should be "stop"
72
73 - memory-region:
74         Usage: required
75         Value type: <prop-encoded-array>
76         Definition: reference to reserved-memory node for the remote processor
77                     see ../reserved-memory/reserved-memory.txt
78
79 = SUBNODES
80 A required subnode of the WCNSS PIL is used to describe the attached rf module
81 and its resource dependencies. It is described by the following properties:
82
83 - compatible:
84         Usage: required
85         Value type: <string>
86         Definition: must be one of:
87                     "qcom,wcn3620",
88                     "qcom,wcn3660",
89                     "qcom,wcn3660b",
90                     "qcom,wcn3680"
91
92 - clocks:
93         Usage: required
94         Value type: <prop-encoded-array>
95         Definition: should specify the xo clock and optionally the rf clock
96
97 - clock-names:
98         Usage: required
99         Value type: <stringlist>
100         Definition: should be "xo", optionally followed by "rf"
101
102 - vddxo-supply:
103 - vddrfa-supply:
104 - vddpa-supply:
105 - vdddig-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 WCNSS core
110
111
112 The wcnss node can also have an subnode named "smd-edge" that describes the SMD
113 edge, channels and devices related to the WCNSS.
114 See ../soc/qcom/qcom,smd.txt for details on how to describe the SMD edge.
115
116 = EXAMPLE
117 The following example describes the resources needed to boot control the WCNSS,
118 with attached WCN3680, as it is commonly found on MSM8974 boards.
119
120 pronto@fb204000 {
121         compatible = "qcom,pronto-v2-pil";
122         reg = <0xfb204000 0x2000>, <0xfb202000 0x1000>, <0xfb21b000 0x3000>;
123         reg-names = "ccu", "dxe", "pmu";
124
125         interrupts-extended = <&intc 0 149 1>,
126                               <&wcnss_smp2p_slave 0 0>,
127                               <&wcnss_smp2p_slave 1 0>,
128                               <&wcnss_smp2p_slave 2 0>,
129                               <&wcnss_smp2p_slave 3 0>;
130         interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
131
132         power-domains = <&rpmpd MSM8974_VDDCX>, <&rpmpd MSM8974_VDDMX>;
133         power-domain-names = "cx", "mx";
134
135         vddpx-supply = <&pm8941_s3>;
136
137         qcom,smem-states = <&wcnss_smp2p_out 0>;
138         qcom,smem-state-names = "stop";
139
140         memory-region = <&wcnss_region>;
141
142         pinctrl-names = "default";
143         pinctrl-0 = <&wcnss_pin_a>;
144
145         iris {
146                 compatible = "qcom,wcn3680";
147
148                 clocks = <&rpmcc RPM_CXO_CLK_SRC>, <&rpmcc RPM_CXO_A2>;
149                 clock-names = "xo", "rf";
150
151                 vddxo-supply = <&pm8941_l6>;
152                 vddrfa-supply = <&pm8941_l11>;
153                 vddpa-supply = <&pm8941_l19>;
154                 vdddig-supply = <&pm8941_s3>;
155         };
156
157         smd-edge {
158                 interrupts = <0 142 1>;
159
160                 qcom,ipc = <&apcs 8 17>;
161                 qcom,smd-edge = <6>;
162                 qcom,remote-pid = <4>;
163
164                 label = "pronto";
165
166                 wcnss {
167                         compatible = "qcom,wcnss";
168                         qcom,smd-channels = "WCNSS_CTRL";
169
170                         qcom,mmio = <&pronto>;
171
172                         bt {
173                                 compatible = "qcom,wcnss-bt";
174                         };
175                 };
176         };
177 };