summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/soc/qcom/qcom,wcnss.txt
blob: 1382b64e1381c14e113585f949c0cd8c995d7401 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
Qualcomm WCNSS Binding

This binding describes the Qualcomm WCNSS hardware. It consists of control
block and a BT, WiFi and FM radio block, all using SMD as command channels.

- compatible:
	Usage: required
	Value type: <string>
	Definition: must be: "qcom,wcnss",

- qcom,smd-channel:
	Usage: required
	Value type: <string>
	Definition: standard SMD property specifying the SMD channel used for
		    communication with the WiFi firmware.
		    Should be "WCNSS_CTRL".

- qcom,mmio:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: reference to a node specifying the wcnss "ccu" and "dxe"
		    register blocks. The node must be compatible with one of
		    the following:
		    "qcom,riva",
		    "qcom,pronto"

- firmware-name:
	Usage: optional
	Value type: <string>
	Definition: specifies the relative firmware image path for the WLAN NV
		    blob. Defaults to "wlan/prima/WCNSS_qcom_wlan_nv.bin" if
		    not specified.

= SUBNODES
The subnodes of the wcnss node are optional and describe the individual blocks in
the WCNSS.

== Bluetooth
The following properties are defined to the bluetooth node:

- compatible:
	Usage: required
	Value type: <string>
	Definition: must be:
		    "qcom,wcnss-bt"

- local-bd-address:
	Usage: optional
	Value type: <u8 array>
	Definition: see Documentation/devicetree/bindings/net/bluetooth.txt

== WiFi
The following properties are defined to the WiFi node:

- compatible:
	Usage: required
	Value type: <string>
	Definition: must be one of:
		    "qcom,wcnss-wlan",

- interrupts:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: should specify the "rx" and "tx" interrupts

- interrupt-names:
	Usage: required
	Value type: <stringlist>
	Definition: must contain "rx" and "tx"

- qcom,smem-state:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: should reference the tx-enable and tx-rings-empty SMEM states

- qcom,smem-state-names:
	Usage: required
	Value type: <stringlist>
	Definition: must contain "tx-enable" and "tx-rings-empty"

= EXAMPLE
The following example represents a SMD node, with one edge representing the
"pronto" subsystem, with the wcnss device and its wcn3680 BT and WiFi blocks
described; as found on the 8974 platform.

smd {
	compatible = "qcom,smd";

	pronto-edge {
		interrupts = <0 142 1>;

		qcom,ipc = <&apcs 8 17>;
		qcom,smd-edge = <6>;

		wcnss {
			compatible = "qcom,wcnss";
			qcom,smd-channels = "WCNSS_CTRL";

			#address-cells = <1>;
			#size-cells = <1>;

			qcom,mmio = <&pronto>;

			bt {
				compatible = "qcom,wcnss-bt";

				/* BD address 00:11:22:33:44:55 */
				local-bd-address = [ 55 44 33 22 11 00 ];
			};

			wlan {
				compatible = "qcom,wcnss-wlan";

				interrupts = <0 145 0>, <0 146 0>;
				interrupt-names = "tx", "rx";

				qcom,smem-state = <&apps_smsm 10>, <&apps_smsm 9>;
				qcom,smem-state-names = "tx-enable", "tx-rings-empty";
			};
		};
	};
};

soc {
	pronto: pronto {
		compatible = "qcom,pronto";

		reg = <0xfb204000 0x2000>, <0xfb202000 0x1000>, <0xfb21b000 0x3000>;
		reg-names = "ccu", "dxe", "pmu";
	};
};