xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/soc/qcom/qcom,wcnss.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunQualcomm WCNSS Binding
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunThis binding describes the Qualcomm WCNSS hardware. It consists of control
4*4882a593Smuzhiyunblock and a BT, WiFi and FM radio block, all using SMD as command channels.
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun- compatible:
7*4882a593Smuzhiyun	Usage: required
8*4882a593Smuzhiyun	Value type: <string>
9*4882a593Smuzhiyun	Definition: must be: "qcom,wcnss",
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun- qcom,smd-channel:
12*4882a593Smuzhiyun	Usage: required
13*4882a593Smuzhiyun	Value type: <string>
14*4882a593Smuzhiyun	Definition: standard SMD property specifying the SMD channel used for
15*4882a593Smuzhiyun		    communication with the WiFi firmware.
16*4882a593Smuzhiyun		    Should be "WCNSS_CTRL".
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun- qcom,mmio:
19*4882a593Smuzhiyun	Usage: required
20*4882a593Smuzhiyun	Value type: <prop-encoded-array>
21*4882a593Smuzhiyun	Definition: reference to a node specifying the wcnss "ccu" and "dxe"
22*4882a593Smuzhiyun		    register blocks. The node must be compatible with one of
23*4882a593Smuzhiyun		    the following:
24*4882a593Smuzhiyun		    "qcom,riva",
25*4882a593Smuzhiyun		    "qcom,pronto"
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun= SUBNODES
28*4882a593SmuzhiyunThe subnodes of the wcnss node are optional and describe the individual blocks in
29*4882a593Smuzhiyunthe WCNSS.
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun== Bluetooth
32*4882a593SmuzhiyunThe following properties are defined to the bluetooth node:
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun- compatible:
35*4882a593Smuzhiyun	Usage: required
36*4882a593Smuzhiyun	Value type: <string>
37*4882a593Smuzhiyun	Definition: must be:
38*4882a593Smuzhiyun		    "qcom,wcnss-bt"
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun- local-bd-address:
41*4882a593Smuzhiyun	Usage: optional
42*4882a593Smuzhiyun	Value type: <u8 array>
43*4882a593Smuzhiyun	Definition: see Documentation/devicetree/bindings/net/bluetooth.txt
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun== WiFi
46*4882a593SmuzhiyunThe following properties are defined to the WiFi node:
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun- compatible:
49*4882a593Smuzhiyun	Usage: required
50*4882a593Smuzhiyun	Value type: <string>
51*4882a593Smuzhiyun	Definition: must be one of:
52*4882a593Smuzhiyun		    "qcom,wcnss-wlan",
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun- interrupts:
55*4882a593Smuzhiyun	Usage: required
56*4882a593Smuzhiyun	Value type: <prop-encoded-array>
57*4882a593Smuzhiyun	Definition: should specify the "rx" and "tx" interrupts
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun- interrupt-names:
60*4882a593Smuzhiyun	Usage: required
61*4882a593Smuzhiyun	Value type: <stringlist>
62*4882a593Smuzhiyun	Definition: must contain "rx" and "tx"
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun- qcom,smem-state:
65*4882a593Smuzhiyun	Usage: required
66*4882a593Smuzhiyun	Value type: <prop-encoded-array>
67*4882a593Smuzhiyun	Definition: should reference the tx-enable and tx-rings-empty SMEM states
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun- qcom,smem-state-names:
70*4882a593Smuzhiyun	Usage: required
71*4882a593Smuzhiyun	Value type: <stringlist>
72*4882a593Smuzhiyun	Definition: must contain "tx-enable" and "tx-rings-empty"
73*4882a593Smuzhiyun
74*4882a593Smuzhiyun= EXAMPLE
75*4882a593SmuzhiyunThe following example represents a SMD node, with one edge representing the
76*4882a593Smuzhiyun"pronto" subsystem, with the wcnss device and its wcn3680 BT and WiFi blocks
77*4882a593Smuzhiyundescribed; as found on the 8974 platform.
78*4882a593Smuzhiyun
79*4882a593Smuzhiyunsmd {
80*4882a593Smuzhiyun	compatible = "qcom,smd";
81*4882a593Smuzhiyun
82*4882a593Smuzhiyun	pronto-edge {
83*4882a593Smuzhiyun		interrupts = <0 142 1>;
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun		qcom,ipc = <&apcs 8 17>;
86*4882a593Smuzhiyun		qcom,smd-edge = <6>;
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun		wcnss {
89*4882a593Smuzhiyun			compatible = "qcom,wcnss";
90*4882a593Smuzhiyun			qcom,smd-channels = "WCNSS_CTRL";
91*4882a593Smuzhiyun
92*4882a593Smuzhiyun			#address-cells = <1>;
93*4882a593Smuzhiyun			#size-cells = <1>;
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun			qcom,mmio = <&pronto>;
96*4882a593Smuzhiyun
97*4882a593Smuzhiyun			bt {
98*4882a593Smuzhiyun				compatible = "qcom,wcnss-bt";
99*4882a593Smuzhiyun
100*4882a593Smuzhiyun				/* BD address 00:11:22:33:44:55 */
101*4882a593Smuzhiyun				local-bd-address = [ 55 44 33 22 11 00 ];
102*4882a593Smuzhiyun			};
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun			wlan {
105*4882a593Smuzhiyun				compatible = "qcom,wcnss-wlan";
106*4882a593Smuzhiyun
107*4882a593Smuzhiyun				interrupts = <0 145 0>, <0 146 0>;
108*4882a593Smuzhiyun				interrupt-names = "tx", "rx";
109*4882a593Smuzhiyun
110*4882a593Smuzhiyun				qcom,smem-state = <&apps_smsm 10>, <&apps_smsm 9>;
111*4882a593Smuzhiyun				qcom,smem-state-names = "tx-enable", "tx-rings-empty";
112*4882a593Smuzhiyun			};
113*4882a593Smuzhiyun		};
114*4882a593Smuzhiyun	};
115*4882a593Smuzhiyun};
116*4882a593Smuzhiyun
117*4882a593Smuzhiyunsoc {
118*4882a593Smuzhiyun	pronto: pronto {
119*4882a593Smuzhiyun		compatible = "qcom,pronto";
120*4882a593Smuzhiyun
121*4882a593Smuzhiyun		reg = <0xfb204000 0x2000>, <0xfb202000 0x1000>, <0xfb21b000 0x3000>;
122*4882a593Smuzhiyun		reg-names = "ccu", "dxe", "pmu";
123*4882a593Smuzhiyun	};
124*4882a593Smuzhiyun};
125