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