18c2ecf20Sopenharmony_ciQualcomm Technologies, Inc. FastRPC Driver 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ciThe FastRPC implements an IPC (Inter-Processor Communication) 48c2ecf20Sopenharmony_cimechanism that allows for clients to transparently make remote method 58c2ecf20Sopenharmony_ciinvocations across DSP and APPS boundaries. This enables developers 68c2ecf20Sopenharmony_cito offload tasks to the DSP and free up the application processor for 78c2ecf20Sopenharmony_ciother tasks. 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci- compatible: 108c2ecf20Sopenharmony_ci Usage: required 118c2ecf20Sopenharmony_ci Value type: <stringlist> 128c2ecf20Sopenharmony_ci Definition: must be "qcom,fastrpc" 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci- label 158c2ecf20Sopenharmony_ci Usage: required 168c2ecf20Sopenharmony_ci Value type: <string> 178c2ecf20Sopenharmony_ci Definition: should specify the dsp domain name this fastrpc 188c2ecf20Sopenharmony_ci corresponds to. must be one of this: "adsp", "mdsp", "sdsp", "cdsp" 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ci- #address-cells 218c2ecf20Sopenharmony_ci Usage: required 228c2ecf20Sopenharmony_ci Value type: <u32> 238c2ecf20Sopenharmony_ci Definition: Must be 1 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci- #size-cells 268c2ecf20Sopenharmony_ci Usage: required 278c2ecf20Sopenharmony_ci Value type: <u32> 288c2ecf20Sopenharmony_ci Definition: Must be 0 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci= COMPUTE BANKS 318c2ecf20Sopenharmony_ciEach subnode of the Fastrpc represents compute context banks available 328c2ecf20Sopenharmony_cion the dsp. 338c2ecf20Sopenharmony_ci- All Compute context banks MUST contain the following properties: 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci- compatible: 368c2ecf20Sopenharmony_ci Usage: required 378c2ecf20Sopenharmony_ci Value type: <stringlist> 388c2ecf20Sopenharmony_ci Definition: must be "qcom,fastrpc-compute-cb" 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci- reg 418c2ecf20Sopenharmony_ci Usage: required 428c2ecf20Sopenharmony_ci Value type: <u32> 438c2ecf20Sopenharmony_ci Definition: Context Bank ID. 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ci- qcom,nsessions: 468c2ecf20Sopenharmony_ci Usage: Optional 478c2ecf20Sopenharmony_ci Value type: <u32> 488c2ecf20Sopenharmony_ci Defination: A value indicating how many sessions can share this 498c2ecf20Sopenharmony_ci context bank. Defaults to 1 when this property 508c2ecf20Sopenharmony_ci is not specified. 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_ciExample: 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ciadsp-pil { 558c2ecf20Sopenharmony_ci compatible = "qcom,msm8996-adsp-pil"; 568c2ecf20Sopenharmony_ci ... 578c2ecf20Sopenharmony_ci smd-edge { 588c2ecf20Sopenharmony_ci label = "lpass"; 598c2ecf20Sopenharmony_ci fastrpc { 608c2ecf20Sopenharmony_ci compatible = "qcom,fastrpc"; 618c2ecf20Sopenharmony_ci qcom,smd-channels = "fastrpcsmd-apps-dsp"; 628c2ecf20Sopenharmony_ci label = "adsp"; 638c2ecf20Sopenharmony_ci #address-cells = <1>; 648c2ecf20Sopenharmony_ci #size-cells = <0>; 658c2ecf20Sopenharmony_ci 668c2ecf20Sopenharmony_ci cb@1 { 678c2ecf20Sopenharmony_ci compatible = "qcom,fastrpc-compute-cb"; 688c2ecf20Sopenharmony_ci reg = <1>; 698c2ecf20Sopenharmony_ci }; 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ci cb@2 { 728c2ecf20Sopenharmony_ci compatible = "qcom,fastrpc-compute-cb"; 738c2ecf20Sopenharmony_ci reg = <2>; 748c2ecf20Sopenharmony_ci }; 758c2ecf20Sopenharmony_ci ... 768c2ecf20Sopenharmony_ci }; 778c2ecf20Sopenharmony_ci }; 788c2ecf20Sopenharmony_ci}; 79