From 87d73e73381159ff015f6797129f82368b9916d0 Mon Sep 17 00:00:00 2001 From: Gokul krishna Krishnakumar Date: Mon, 25 Sep 2023 11:57:37 -0700 Subject: [PATCH] ARM: dts: msm: bindings: Add the fastrpc node and child nodes Bindings for fastrpc nodes and the child nodes. Change-Id: Ic967b92d2324d5f9671614f62973c5f9820d6b4b Signed-off-by: Gokul krishna Krishnakumar --- bindings/qdsp/msm-fastrpc.yaml | 99 ++++++++++++++++++++++++++++------ 1 file changed, 82 insertions(+), 17 deletions(-) diff --git a/bindings/qdsp/msm-fastrpc.yaml b/bindings/qdsp/msm-fastrpc.yaml index 0850a469..c125898a 100644 --- a/bindings/qdsp/msm-fastrpc.yaml +++ b/bindings/qdsp/msm-fastrpc.yaml @@ -4,30 +4,95 @@ $id: "http://devicetree.org/schemas/qdsp/msm-fastrpc.yaml#" $schema: "http://devicetree.org/meta-schemas/core.yaml#" -title: ADSP remote heap region +title: Qualcomm Technologies, Inc. FastRPC Driver description: - Defines the ADSP remote heap region. Device used for CMA allocations - and mappings for both secure and non-secure usecases. + 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.qcom,adsprpc-mem node defines the ADSP remote heap region. + Device is used for CMA allocations and mappings for both secure and + non-secure usecases. maintainers: - Anirudh Raghavendra properties: - compatible: - const: qcom,adsprpc-mem + compatible : + oneOf: + - items: + - "qcom,msm-fastrpc-adsp" + - "qcom,msm-fastrpc-compute" -required: - - compatible - - memory-region - - restrict-access + optional: + - qcom,rpc-latency-us : FastRPC QoS latency vote + - qcom,adsp-remoteheap-vmid : FastRPC remote heap VMID list + - qcom,secure-context-bank : Bool indicating secure FastRPC context bank. + - qcom,fastrpc-legacy-remote-heap : Bool indicating hypervisor is not supported. + - qcom,fastrpc-adsp-audio-pdr : Flag to enable ADSP Audio PDR + - qcom,secure-domains : FastRPC secure domain configuration + - qcom,fastrpc-adsp-sensors-pdr : Flag to enable Sensors PDR -additionalProperties: false + child-node: + description: + Child nodes representing the compute context banks + properties: + required: + - 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 + - dma-coherent : A flag marking a context bank as I/O coherent + - shared-cb : A value indicating how many fastrpc sessions can share a + context bank -examples: - - | - qcom,adsprpc-mem { - compatible = "qcom,msm-adsprpc-mem-region"; - memory-region = <&adsp_mem>; - restrict-access; - }; + child-node: + description: + Child node for rpmsg instead of glink for IPC + properties: + required: + - compatible : Must be "qcom,msm-fastrpc-rpmsg" + + child-node: + description: + Child node representing the Remote Heap region + properties: + required: + - compatible : Must be "qcom,msm-adsprpc-mem-region" + - memory-region : CMA region which is owned by this device + - restrict-access : Blocking vote for hyp_assign_phys function call + +Example: + qcom,msm_fastrpc { + compatible = "qcom,msm-fastrpc-compute"; + qcom,fastrpc-rpmsg; + qcom,rpc-latency-us = <235>; + qcom,adsp-remoteheap-vmid = <22 37>; + qcom,fastrpc-adsp-sensors-pdr; + + qcom,msm_fastrpc_rpmsg { + compatible = "qcom,msm-fastrpc-rpmsg"; + qcom,glink-channels = "fastrpcglink-apps-dsp"; + intents = <0x64 64>; + }; + + qcom,msm_fastrpc_compute_cb_1 { + compatible = "qcom,msm-fastrpc-compute-cb"; + label = "cdsprpc-smd"; + qcom,secure-context-bank; + iommus = <&apps_smmu 0x1401 0x0>; + dma-coherent; + }; + qcom,msm_fastrpc_compute_cb_2 { + compatible = "qcom,msm-fastrpc-compute-cb"; + label = "sdsprpc-smd"; + iommus = <&apps_smmu 0x1402 0x0>; + shared-cb = <5>; + }; + qcom,adsprpc-mem { + compatible = "qcom,msm-adsprpc-mem-region"; + memory-region = <&adsp_mem>; + restrict-access; + }; + };