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,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 - vddmx-supply: (deprecated for qcom,pronto-v1/2-pil)
38 - vddcx-supply: (deprecated for qcom,pronto-v1/2-pil)
39 - vddpx-supply:
40         Usage: required
41         Value type: <phandle>
42         Definition: reference to the regulators to be held on behalf of the
43                     booting of the WCNSS core
44
45 - power-domains:
46         Usage: required (for qcom,pronto-v1/2-pil)
47         Value type: <phandle>
48         Definition: reference to the power domains to be held on behalf of the
49                     booting of the WCNSS core
50
51 - power-domain-names:
52         Usage: required (for qcom,pronto-v1/2-pil)
53         Value type: <stringlist>
54         Definition: must be "cx", "mx"
55
56 - qcom,smem-states:
57         Usage: optional
58         Value type: <prop-encoded-array>
59         Definition: reference to the SMEM state used to indicate to WCNSS that
60                     it should shut down
61
62 - qcom,smem-state-names:
63         Usage: optional
64         Value type: <stringlist>
65         Definition: should be "stop"
66
67 - memory-region:
68         Usage: required
69         Value type: <prop-encoded-array>
70         Definition: reference to reserved-memory node for the remote processor
71                     see ../reserved-memory/reserved-memory.txt
72
73 = SUBNODES
74 A required subnode of the WCNSS PIL is used to describe the attached rf module
75 and its resource dependencies. It is described by the following properties:
76
77 - compatible:
78         Usage: required
79         Value type: <string>
80         Definition: must be one of:
81                     "qcom,wcn3620",
82                     "qcom,wcn3660",
83                     "qcom,wcn3680"
84
85 - clocks:
86         Usage: required
87         Value type: <prop-encoded-array>
88         Definition: should specify the xo clock and optionally the rf clock
89
90 - clock-names:
91         Usage: required
92         Value type: <stringlist>
93         Definition: should be "xo", optionally followed by "rf"
94
95 - vddxo-supply:
96 - vddrfa-supply:
97 - vddpa-supply:
98 - vdddig-supply:
99         Usage: required
100         Value type: <phandle>
101         Definition: reference to the regulators to be held on behalf of the
102                     booting of the WCNSS core
103
104
105 The wcnss node can also have an subnode named "smd-edge" that describes the SMD
106 edge, channels and devices related to the WCNSS.
107 See ../soc/qcom/qcom,smd.txt for details on how to describe the SMD edge.
108
109 = EXAMPLE
110 The following example describes the resources needed to boot control the WCNSS,
111 with attached WCN3680, as it is commonly found on MSM8974 boards.
112
113 pronto@fb204000 {
114         compatible = "qcom,pronto-v2-pil";
115         reg = <0xfb204000 0x2000>, <0xfb202000 0x1000>, <0xfb21b000 0x3000>;
116         reg-names = "ccu", "dxe", "pmu";
117
118         interrupts-extended = <&intc 0 149 1>,
119                               <&wcnss_smp2p_slave 0 0>,
120                               <&wcnss_smp2p_slave 1 0>,
121                               <&wcnss_smp2p_slave 2 0>,
122                               <&wcnss_smp2p_slave 3 0>;
123         interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
124
125         power-domains = <&rpmpd MSM8974_VDDCX>, <&rpmpd MSM8974_VDDMX>;
126         power-domain-names = "cx", "mx";
127
128         vddpx-supply = <&pm8941_s3>;
129
130         qcom,smem-states = <&wcnss_smp2p_out 0>;
131         qcom,smem-state-names = "stop";
132
133         memory-region = <&wcnss_region>;
134
135         pinctrl-names = "default";
136         pinctrl-0 = <&wcnss_pin_a>;
137
138         iris {
139                 compatible = "qcom,wcn3680";
140
141                 clocks = <&rpmcc RPM_CXO_CLK_SRC>, <&rpmcc RPM_CXO_A2>;
142                 clock-names = "xo", "rf";
143
144                 vddxo-supply = <&pm8941_l6>;
145                 vddrfa-supply = <&pm8941_l11>;
146                 vddpa-supply = <&pm8941_l19>;
147                 vdddig-supply = <&pm8941_s3>;
148         };
149
150         smd-edge {
151                 interrupts = <0 142 1>;
152
153                 qcom,ipc = <&apcs 8 17>;
154                 qcom,smd-edge = <6>;
155                 qcom,remote-pid = <4>;
156
157                 label = "pronto";
158
159                 wcnss {
160                         compatible = "qcom,wcnss";
161                         qcom,smd-channels = "WCNSS_CTRL";
162
163                         qcom,mmio = <&pronto>;
164
165                         bt {
166                                 compatible = "qcom,wcnss-bt";
167                         };
168                 };
169         };
170 };