18c2ecf20Sopenharmony_ciQualcomm APR (Asynchronous Packet Router) binding 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ciThis binding describes the Qualcomm APR. APR is a IPC protocol for 48c2ecf20Sopenharmony_cicommunication between Application processor and QDSP. APR is mainly 58c2ecf20Sopenharmony_ciused for audio/voice services on the QDSP. 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ci- compatible: 88c2ecf20Sopenharmony_ci Usage: required 98c2ecf20Sopenharmony_ci Value type: <stringlist> 108c2ecf20Sopenharmony_ci Definition: must be "qcom,apr-v<VERSION-NUMBER>", example "qcom,apr-v2" 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci- qcom,apr-domain 138c2ecf20Sopenharmony_ci Usage: required 148c2ecf20Sopenharmony_ci Value type: <u32> 158c2ecf20Sopenharmony_ci Definition: Destination processor ID. 168c2ecf20Sopenharmony_ci Possible values are : 178c2ecf20Sopenharmony_ci 1 - APR simulator 188c2ecf20Sopenharmony_ci 2 - PC 198c2ecf20Sopenharmony_ci 3 - MODEM 208c2ecf20Sopenharmony_ci 4 - ADSP 218c2ecf20Sopenharmony_ci 5 - APPS 228c2ecf20Sopenharmony_ci 6 - MODEM2 238c2ecf20Sopenharmony_ci 7 - APPS2 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci= APR SERVICES 268c2ecf20Sopenharmony_ciEach subnode of the APR node represents service tied to this apr. The name 278c2ecf20Sopenharmony_ciof the nodes are not important. The properties of these nodes are defined 288c2ecf20Sopenharmony_ciby the individual bindings for the specific service 298c2ecf20Sopenharmony_ci- All APR services MUST contain the following property: 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci- reg 328c2ecf20Sopenharmony_ci Usage: required 338c2ecf20Sopenharmony_ci Value type: <u32> 348c2ecf20Sopenharmony_ci Definition: APR Service ID 358c2ecf20Sopenharmony_ci Possible values are : 368c2ecf20Sopenharmony_ci 3 - DSP Core Service 378c2ecf20Sopenharmony_ci 4 - Audio Front End Service. 388c2ecf20Sopenharmony_ci 5 - Voice Stream Manager Service. 398c2ecf20Sopenharmony_ci 6 - Voice processing manager. 408c2ecf20Sopenharmony_ci 7 - Audio Stream Manager Service. 418c2ecf20Sopenharmony_ci 8 - Audio Device Manager Service. 428c2ecf20Sopenharmony_ci 9 - Multimode voice manager. 438c2ecf20Sopenharmony_ci 10 - Core voice stream. 448c2ecf20Sopenharmony_ci 11 - Core voice processor. 458c2ecf20Sopenharmony_ci 12 - Ultrasound stream manager. 468c2ecf20Sopenharmony_ci 13 - Listen stream manager. 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci- qcom,protection-domain 498c2ecf20Sopenharmony_ci Usage: optional 508c2ecf20Sopenharmony_ci Value type: <stringlist> 518c2ecf20Sopenharmony_ci Definition: Must list the protection domain service name and path 528c2ecf20Sopenharmony_ci that the particular apr service has a dependency on. 538c2ecf20Sopenharmony_ci Possible values are : 548c2ecf20Sopenharmony_ci "avs/audio", "msm/adsp/audio_pd". 558c2ecf20Sopenharmony_ci "kernel/elf_loader", "msm/modem/wlan_pd". 568c2ecf20Sopenharmony_ci "tms/servreg", "msm/adsp/audio_pd". 578c2ecf20Sopenharmony_ci "tms/servreg", "msm/modem/wlan_pd". 588c2ecf20Sopenharmony_ci "tms/servreg", "msm/slpi/sensor_pd". 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ci= EXAMPLE 618c2ecf20Sopenharmony_ciThe following example represents a QDSP based sound card on a MSM8996 device 628c2ecf20Sopenharmony_ciwhich uses apr as communication between Apps and QDSP. 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_ci apr { 658c2ecf20Sopenharmony_ci compatible = "qcom,apr-v2"; 668c2ecf20Sopenharmony_ci qcom,apr-domain = <APR_DOMAIN_ADSP>; 678c2ecf20Sopenharmony_ci 688c2ecf20Sopenharmony_ci apr-service@3 { 698c2ecf20Sopenharmony_ci compatible = "qcom,q6core"; 708c2ecf20Sopenharmony_ci reg = <APR_SVC_ADSP_CORE>; 718c2ecf20Sopenharmony_ci }; 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ci apr-service@4 { 748c2ecf20Sopenharmony_ci compatible = "qcom,q6afe"; 758c2ecf20Sopenharmony_ci reg = <APR_SVC_AFE>; 768c2ecf20Sopenharmony_ci 778c2ecf20Sopenharmony_ci dais { 788c2ecf20Sopenharmony_ci #sound-dai-cells = <1>; 798c2ecf20Sopenharmony_ci dai@1 { 808c2ecf20Sopenharmony_ci reg = <HDMI_RX>; 818c2ecf20Sopenharmony_ci }; 828c2ecf20Sopenharmony_ci }; 838c2ecf20Sopenharmony_ci }; 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_ci apr-service@7 { 868c2ecf20Sopenharmony_ci compatible = "qcom,q6asm"; 878c2ecf20Sopenharmony_ci reg = <APR_SVC_ASM>; 888c2ecf20Sopenharmony_ci ... 898c2ecf20Sopenharmony_ci }; 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_ci apr-service@8 { 928c2ecf20Sopenharmony_ci compatible = "qcom,q6adm"; 938c2ecf20Sopenharmony_ci reg = <APR_SVC_ADM>; 948c2ecf20Sopenharmony_ci ... 958c2ecf20Sopenharmony_ci }; 968c2ecf20Sopenharmony_ci }; 978c2ecf20Sopenharmony_ci 988c2ecf20Sopenharmony_ci= EXAMPLE 2 998c2ecf20Sopenharmony_ciThe following example represents a QDSP based sound card with protection domain 1008c2ecf20Sopenharmony_cidependencies specified. Here some of the apr services are dependent on services 1018c2ecf20Sopenharmony_cirunning on protection domain hosted on ADSP/SLPI remote processors while others 1028c2ecf20Sopenharmony_cihave no such dependency. 1038c2ecf20Sopenharmony_ci 1048c2ecf20Sopenharmony_ci apr { 1058c2ecf20Sopenharmony_ci compatible = "qcom,apr-v2"; 1068c2ecf20Sopenharmony_ci qcom,glink-channels = "apr_audio_svc"; 1078c2ecf20Sopenharmony_ci qcom,apr-domain = <APR_DOMAIN_ADSP>; 1088c2ecf20Sopenharmony_ci 1098c2ecf20Sopenharmony_ci apr-service@3 { 1108c2ecf20Sopenharmony_ci compatible = "qcom,q6core"; 1118c2ecf20Sopenharmony_ci reg = <APR_SVC_ADSP_CORE>; 1128c2ecf20Sopenharmony_ci }; 1138c2ecf20Sopenharmony_ci 1148c2ecf20Sopenharmony_ci q6afe: apr-service@4 { 1158c2ecf20Sopenharmony_ci compatible = "qcom,q6afe"; 1168c2ecf20Sopenharmony_ci reg = <APR_SVC_AFE>; 1178c2ecf20Sopenharmony_ci qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd"; 1188c2ecf20Sopenharmony_ci ... 1198c2ecf20Sopenharmony_ci }; 1208c2ecf20Sopenharmony_ci 1218c2ecf20Sopenharmony_ci q6asm: apr-service@7 { 1228c2ecf20Sopenharmony_ci compatible = "qcom,q6asm"; 1238c2ecf20Sopenharmony_ci reg = <APR_SVC_ASM>; 1248c2ecf20Sopenharmony_ci qcom,protection-domain = "tms/servreg", "msm/slpi/sensor_pd"; 1258c2ecf20Sopenharmony_ci ... 1268c2ecf20Sopenharmony_ci }; 1278c2ecf20Sopenharmony_ci 1288c2ecf20Sopenharmony_ci q6adm: apr-service@8 { 1298c2ecf20Sopenharmony_ci compatible = "qcom,q6adm"; 1308c2ecf20Sopenharmony_ci reg = <APR_SVC_ADM>; 1318c2ecf20Sopenharmony_ci qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd"; 1328c2ecf20Sopenharmony_ci ... 1338c2ecf20Sopenharmony_ci }; 1348c2ecf20Sopenharmony_ci }; 135