Qualcomm Technologies, Inc. FastRPC Driver

The MSM FastRPC driver implements an IPC (Inter-Processor Communication)
mechanism that allows for clients to transparently make remote method
invocations across DSP and APPS boundaries. This enables developers
to offload tasks to the DSP and free up the application processor for
other tasks.

Required properties:
- compatible :	Must be one of "qcom,msm-fastrpc-adsp" or
		"qcom,msm-fastrpc-compute"

Optional properties:
- qcom,fastrpc-glink:	Flag to use glink instead of smd for IPC
- qcom,rpc-latency-us:	FastRPC QoS latency vote

Optional subnodes:
- qcom,msm_fastrpc_compute_cb :	Child nodes representing the compute context
				banks
Subnode Required properties:
- compatible :		Must be "qcom,msm-fastrpc-compute-cb"
- label:		Label describing the channel this context bank belongs to
- iommus : 		A list of phandle and IOMMU specifier pairs that describe the
			IOMMU master interfaces of the device

Example:
	qcom,msm_fastrpc {
		compatible = "qcom,msm-fastrpc-adsp";
		qcom,fastrpc-glink;
		qcom,rpc-latency-us = <2343>;

		qcom,msm_fastrpc_compute_cb_1 {
			compatible = "qcom,msm-fastrpc-compute-cb";
			label = "adsprpc-smd";
			iommus = <&lpass_q6_smmu 8>,
		};
		qcom,msm_fastrpc_compute_cb_2 {
			compatible = "qcom,msm-fastrpc-compute-cb";
			label = "adsprpc-smd";
			iommus = <&lpass_q6_smmu 9>,
		};
	};

Legacy SMMU v1/v2:

Required properties:
- compatible : Must be "qcom,msm-fastprc-legacy-compute-cb"

Required subnode:
- qcom,msm_fastrpc_compute_cb : Child nodes representing the compute context
                                banks

Required subnode properties:
- qcom,adsp-shared-phandle: phandle that describe the context bank handle
- qcom,adsp-shared-sids : A list of SID associated with the context bank
- qcom,virtual-addr-pool : Virtual address range that the context bank
                           will be using

Example:
        qcom,adsprpc_domains {
                compatible = "qcom,msm-fastrpc-legacy-compute-cb";
                qcom,msm_fastrpc_compute_cb {
                       qcom,adsp-shared-phandle = <&adsp_shared>;
                       qcom,adsp-shared-sids = <0x8 0x9>;
                       qcom,virtual-addr-pool = <0x80000000 0x7FFFFFFF>;
                };
        };

Remote Heap:

Required properties:
- compatible : Must be "qcom,msm-adsprpc-mem-region"
- memory-region : CMA region which is owned by this device

Example:
       qcom,adsprpc-mem {
               compatible = "qcom,msm-adsprpc-mem-region";
               memory-region = <&adsp_mem>;
       };
