1Qualcomm WCNSS Peripheral Image Loader
2
3This document defines the binding for a component that loads and boots firmware
4on 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
63A required subnode of the WCNSS PIL is used to describe the attached rf module
64and 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
94The wcnss node can also have an subnode named "smd-edge" that describes the SMD
95edge, channels and devices related to the WCNSS.
96See ../soc/qcom/qcom,smd.txt for details on how to describe the SMD edge.
97
98= EXAMPLE
99The following example describes the resources needed to boot control the WCNSS,
100with attached WCN3680, as it is commonly found on MSM8974 boards.
101
102pronto@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};
159