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