1*4882a593SmuzhiyunQualcomm Technologies, Inc. FastRPC Driver 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunThe FastRPC implements an IPC (Inter-Processor Communication) 4*4882a593Smuzhiyunmechanism that allows for clients to transparently make remote method 5*4882a593Smuzhiyuninvocations across DSP and APPS boundaries. This enables developers 6*4882a593Smuzhiyunto offload tasks to the DSP and free up the application processor for 7*4882a593Smuzhiyunother tasks. 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun- compatible: 10*4882a593Smuzhiyun Usage: required 11*4882a593Smuzhiyun Value type: <stringlist> 12*4882a593Smuzhiyun Definition: must be "qcom,fastrpc" 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun- label 15*4882a593Smuzhiyun Usage: required 16*4882a593Smuzhiyun Value type: <string> 17*4882a593Smuzhiyun Definition: should specify the dsp domain name this fastrpc 18*4882a593Smuzhiyun corresponds to. must be one of this: "adsp", "mdsp", "sdsp", "cdsp" 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun- #address-cells 21*4882a593Smuzhiyun Usage: required 22*4882a593Smuzhiyun Value type: <u32> 23*4882a593Smuzhiyun Definition: Must be 1 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun- #size-cells 26*4882a593Smuzhiyun Usage: required 27*4882a593Smuzhiyun Value type: <u32> 28*4882a593Smuzhiyun Definition: Must be 0 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun= COMPUTE BANKS 31*4882a593SmuzhiyunEach subnode of the Fastrpc represents compute context banks available 32*4882a593Smuzhiyunon the dsp. 33*4882a593Smuzhiyun- All Compute context banks MUST contain the following properties: 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun- compatible: 36*4882a593Smuzhiyun Usage: required 37*4882a593Smuzhiyun Value type: <stringlist> 38*4882a593Smuzhiyun Definition: must be "qcom,fastrpc-compute-cb" 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun- reg 41*4882a593Smuzhiyun Usage: required 42*4882a593Smuzhiyun Value type: <u32> 43*4882a593Smuzhiyun Definition: Context Bank ID. 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun- qcom,nsessions: 46*4882a593Smuzhiyun Usage: Optional 47*4882a593Smuzhiyun Value type: <u32> 48*4882a593Smuzhiyun Defination: A value indicating how many sessions can share this 49*4882a593Smuzhiyun context bank. Defaults to 1 when this property 50*4882a593Smuzhiyun is not specified. 51*4882a593Smuzhiyun 52*4882a593SmuzhiyunExample: 53*4882a593Smuzhiyun 54*4882a593Smuzhiyunadsp-pil { 55*4882a593Smuzhiyun compatible = "qcom,msm8996-adsp-pil"; 56*4882a593Smuzhiyun ... 57*4882a593Smuzhiyun smd-edge { 58*4882a593Smuzhiyun label = "lpass"; 59*4882a593Smuzhiyun fastrpc { 60*4882a593Smuzhiyun compatible = "qcom,fastrpc"; 61*4882a593Smuzhiyun qcom,smd-channels = "fastrpcsmd-apps-dsp"; 62*4882a593Smuzhiyun label = "adsp"; 63*4882a593Smuzhiyun #address-cells = <1>; 64*4882a593Smuzhiyun #size-cells = <0>; 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun cb@1 { 67*4882a593Smuzhiyun compatible = "qcom,fastrpc-compute-cb"; 68*4882a593Smuzhiyun reg = <1>; 69*4882a593Smuzhiyun }; 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun cb@2 { 72*4882a593Smuzhiyun compatible = "qcom,fastrpc-compute-cb"; 73*4882a593Smuzhiyun reg = <2>; 74*4882a593Smuzhiyun }; 75*4882a593Smuzhiyun ... 76*4882a593Smuzhiyun }; 77*4882a593Smuzhiyun }; 78*4882a593Smuzhiyun}; 79