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