18c2ecf20Sopenharmony_ciQualcomm WCNSS Binding
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciThis binding describes the Qualcomm WCNSS hardware. It consists of control
48c2ecf20Sopenharmony_ciblock and a BT, WiFi and FM radio block, all using SMD as command channels.
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci- compatible:
78c2ecf20Sopenharmony_ci	Usage: required
88c2ecf20Sopenharmony_ci	Value type: <string>
98c2ecf20Sopenharmony_ci	Definition: must be: "qcom,wcnss",
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci- qcom,smd-channel:
128c2ecf20Sopenharmony_ci	Usage: required
138c2ecf20Sopenharmony_ci	Value type: <string>
148c2ecf20Sopenharmony_ci	Definition: standard SMD property specifying the SMD channel used for
158c2ecf20Sopenharmony_ci		    communication with the WiFi firmware.
168c2ecf20Sopenharmony_ci		    Should be "WCNSS_CTRL".
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci- qcom,mmio:
198c2ecf20Sopenharmony_ci	Usage: required
208c2ecf20Sopenharmony_ci	Value type: <prop-encoded-array>
218c2ecf20Sopenharmony_ci	Definition: reference to a node specifying the wcnss "ccu" and "dxe"
228c2ecf20Sopenharmony_ci		    register blocks. The node must be compatible with one of
238c2ecf20Sopenharmony_ci		    the following:
248c2ecf20Sopenharmony_ci		    "qcom,riva",
258c2ecf20Sopenharmony_ci		    "qcom,pronto"
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci= SUBNODES
288c2ecf20Sopenharmony_ciThe subnodes of the wcnss node are optional and describe the individual blocks in
298c2ecf20Sopenharmony_cithe WCNSS.
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci== Bluetooth
328c2ecf20Sopenharmony_ciThe following properties are defined to the bluetooth node:
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci- compatible:
358c2ecf20Sopenharmony_ci	Usage: required
368c2ecf20Sopenharmony_ci	Value type: <string>
378c2ecf20Sopenharmony_ci	Definition: must be:
388c2ecf20Sopenharmony_ci		    "qcom,wcnss-bt"
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci- local-bd-address:
418c2ecf20Sopenharmony_ci	Usage: optional
428c2ecf20Sopenharmony_ci	Value type: <u8 array>
438c2ecf20Sopenharmony_ci	Definition: see Documentation/devicetree/bindings/net/bluetooth.txt
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci== WiFi
468c2ecf20Sopenharmony_ciThe following properties are defined to the WiFi node:
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci- compatible:
498c2ecf20Sopenharmony_ci	Usage: required
508c2ecf20Sopenharmony_ci	Value type: <string>
518c2ecf20Sopenharmony_ci	Definition: must be one of:
528c2ecf20Sopenharmony_ci		    "qcom,wcnss-wlan",
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ci- interrupts:
558c2ecf20Sopenharmony_ci	Usage: required
568c2ecf20Sopenharmony_ci	Value type: <prop-encoded-array>
578c2ecf20Sopenharmony_ci	Definition: should specify the "rx" and "tx" interrupts
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci- interrupt-names:
608c2ecf20Sopenharmony_ci	Usage: required
618c2ecf20Sopenharmony_ci	Value type: <stringlist>
628c2ecf20Sopenharmony_ci	Definition: must contain "rx" and "tx"
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci- qcom,smem-state:
658c2ecf20Sopenharmony_ci	Usage: required
668c2ecf20Sopenharmony_ci	Value type: <prop-encoded-array>
678c2ecf20Sopenharmony_ci	Definition: should reference the tx-enable and tx-rings-empty SMEM states
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ci- qcom,smem-state-names:
708c2ecf20Sopenharmony_ci	Usage: required
718c2ecf20Sopenharmony_ci	Value type: <stringlist>
728c2ecf20Sopenharmony_ci	Definition: must contain "tx-enable" and "tx-rings-empty"
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_ci= EXAMPLE
758c2ecf20Sopenharmony_ciThe following example represents a SMD node, with one edge representing the
768c2ecf20Sopenharmony_ci"pronto" subsystem, with the wcnss device and its wcn3680 BT and WiFi blocks
778c2ecf20Sopenharmony_cidescribed; as found on the 8974 platform.
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_cismd {
808c2ecf20Sopenharmony_ci	compatible = "qcom,smd";
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ci	pronto-edge {
838c2ecf20Sopenharmony_ci		interrupts = <0 142 1>;
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ci		qcom,ipc = <&apcs 8 17>;
868c2ecf20Sopenharmony_ci		qcom,smd-edge = <6>;
878c2ecf20Sopenharmony_ci
888c2ecf20Sopenharmony_ci		wcnss {
898c2ecf20Sopenharmony_ci			compatible = "qcom,wcnss";
908c2ecf20Sopenharmony_ci			qcom,smd-channels = "WCNSS_CTRL";
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_ci			#address-cells = <1>;
938c2ecf20Sopenharmony_ci			#size-cells = <1>;
948c2ecf20Sopenharmony_ci
958c2ecf20Sopenharmony_ci			qcom,mmio = <&pronto>;
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_ci			bt {
988c2ecf20Sopenharmony_ci				compatible = "qcom,wcnss-bt";
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_ci				/* BD address 00:11:22:33:44:55 */
1018c2ecf20Sopenharmony_ci				local-bd-address = [ 55 44 33 22 11 00 ];
1028c2ecf20Sopenharmony_ci			};
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_ci			wlan {
1058c2ecf20Sopenharmony_ci				compatible = "qcom,wcnss-wlan";
1068c2ecf20Sopenharmony_ci
1078c2ecf20Sopenharmony_ci				interrupts = <0 145 0>, <0 146 0>;
1088c2ecf20Sopenharmony_ci				interrupt-names = "tx", "rx";
1098c2ecf20Sopenharmony_ci
1108c2ecf20Sopenharmony_ci				qcom,smem-state = <&apps_smsm 10>, <&apps_smsm 9>;
1118c2ecf20Sopenharmony_ci				qcom,smem-state-names = "tx-enable", "tx-rings-empty";
1128c2ecf20Sopenharmony_ci			};
1138c2ecf20Sopenharmony_ci		};
1148c2ecf20Sopenharmony_ci	};
1158c2ecf20Sopenharmony_ci};
1168c2ecf20Sopenharmony_ci
1178c2ecf20Sopenharmony_cisoc {
1188c2ecf20Sopenharmony_ci	pronto: pronto {
1198c2ecf20Sopenharmony_ci		compatible = "qcom,pronto";
1208c2ecf20Sopenharmony_ci
1218c2ecf20Sopenharmony_ci		reg = <0xfb204000 0x2000>, <0xfb202000 0x1000>, <0xfb21b000 0x3000>;
1228c2ecf20Sopenharmony_ci		reg-names = "ccu", "dxe", "pmu";
1238c2ecf20Sopenharmony_ci	};
1248c2ecf20Sopenharmony_ci};
125