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