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