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 "wcnss.mdt".
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.yaml 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 };
Cache object: 79bdf282eb0fb5faafade8a76028ff06
|