xref: /freebsd/sys/contrib/device-tree/Bindings/soc/qcom/qcom,wcnss.txt (revision 22d7dd834bc5cd189810e414701e3ad1e98102e4)
1Qualcomm WCNSS Binding
2
3This binding describes the Qualcomm WCNSS hardware. It consists of control
4block 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- firmware-name:
28	Usage: optional
29	Value type: <string>
30	Definition: specifies the relative firmware image path for the WLAN NV
31		    blob. Defaults to "wlan/prima/WCNSS_qcom_wlan_nv.bin" if
32		    not specified.
33
34= SUBNODES
35The subnodes of the wcnss node are optional and describe the individual blocks in
36the WCNSS.
37
38== Bluetooth
39The following properties are defined to the bluetooth node:
40
41- compatible:
42	Usage: required
43	Value type: <string>
44	Definition: must be:
45		    "qcom,wcnss-bt"
46
47- local-bd-address:
48	Usage: optional
49	Value type: <u8 array>
50	Definition: see Documentation/devicetree/bindings/net/bluetooth.txt
51
52== WiFi
53The following properties are defined to the WiFi node:
54
55- compatible:
56	Usage: required
57	Value type: <string>
58	Definition: must be one of:
59		    "qcom,wcnss-wlan",
60
61- interrupts:
62	Usage: required
63	Value type: <prop-encoded-array>
64	Definition: should specify the "rx" and "tx" interrupts
65
66- interrupt-names:
67	Usage: required
68	Value type: <stringlist>
69	Definition: must contain "rx" and "tx"
70
71- qcom,smem-state:
72	Usage: required
73	Value type: <prop-encoded-array>
74	Definition: should reference the tx-enable and tx-rings-empty SMEM states
75
76- qcom,smem-state-names:
77	Usage: required
78	Value type: <stringlist>
79	Definition: must contain "tx-enable" and "tx-rings-empty"
80
81= EXAMPLE
82The following example represents a SMD node, with one edge representing the
83"pronto" subsystem, with the wcnss device and its wcn3680 BT and WiFi blocks
84described; as found on the 8974 platform.
85
86smd {
87	compatible = "qcom,smd";
88
89	pronto-edge {
90		interrupts = <0 142 1>;
91
92		qcom,ipc = <&apcs 8 17>;
93		qcom,smd-edge = <6>;
94
95		wcnss {
96			compatible = "qcom,wcnss";
97			qcom,smd-channels = "WCNSS_CTRL";
98
99			#address-cells = <1>;
100			#size-cells = <1>;
101
102			qcom,mmio = <&pronto>;
103
104			bt {
105				compatible = "qcom,wcnss-bt";
106
107				/* BD address 00:11:22:33:44:55 */
108				local-bd-address = [ 55 44 33 22 11 00 ];
109			};
110
111			wlan {
112				compatible = "qcom,wcnss-wlan";
113
114				interrupts = <0 145 0>, <0 146 0>;
115				interrupt-names = "tx", "rx";
116
117				qcom,smem-state = <&apps_smsm 10>, <&apps_smsm 9>;
118				qcom,smem-state-names = "tx-enable", "tx-rings-empty";
119			};
120		};
121	};
122};
123
124soc {
125	pronto: pronto {
126		compatible = "qcom,pronto";
127
128		reg = <0xfb204000 0x2000>, <0xfb202000 0x1000>, <0xfb21b000 0x3000>;
129		reg-names = "ccu", "dxe", "pmu";
130	};
131};
132