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