Loading Documentation/devicetree/bindings/qdsp/msm-fastrpc.txt 0 → 100644 +77 −0 Original line number Diff line number Diff line 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 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,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>; }; drivers/char/Kconfig +9 −0 Original line number Diff line number Diff line Loading @@ -592,5 +592,14 @@ config TILE_SROM source "drivers/char/xillybus/Kconfig" config MSM_ADSPRPC tristate "QTI ADSP RPC driver" depends on MSM_GLINK help Provides a communication mechanism that allows for clients to make remote method invocations across processor boundary to applications DSP processor. Say M if you want to enable this module. endmenu drivers/char/Makefile +4 −0 Original line number Diff line number Diff line Loading @@ -61,3 +61,7 @@ obj-$(CONFIG_TILE_SROM) += tile-srom.o obj-$(CONFIG_DIAG_CHAR) += diag/ obj-$(CONFIG_XILLYBUS) += xillybus/ obj-$(CONFIG_POWERNV_OP_PANEL) += powernv-op-panel.o obj-$(CONFIG_MSM_ADSPRPC) += adsprpc.o ifdef CONFIG_COMPAT obj-$(CONFIG_MSM_ADSPRPC) += adsprpc_compat.o endif Loading
Documentation/devicetree/bindings/qdsp/msm-fastrpc.txt 0 → 100644 +77 −0 Original line number Diff line number Diff line 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 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,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>; };
drivers/char/Kconfig +9 −0 Original line number Diff line number Diff line Loading @@ -592,5 +592,14 @@ config TILE_SROM source "drivers/char/xillybus/Kconfig" config MSM_ADSPRPC tristate "QTI ADSP RPC driver" depends on MSM_GLINK help Provides a communication mechanism that allows for clients to make remote method invocations across processor boundary to applications DSP processor. Say M if you want to enable this module. endmenu
drivers/char/Makefile +4 −0 Original line number Diff line number Diff line Loading @@ -61,3 +61,7 @@ obj-$(CONFIG_TILE_SROM) += tile-srom.o obj-$(CONFIG_DIAG_CHAR) += diag/ obj-$(CONFIG_XILLYBUS) += xillybus/ obj-$(CONFIG_POWERNV_OP_PANEL) += powernv-op-panel.o obj-$(CONFIG_MSM_ADSPRPC) += adsprpc.o ifdef CONFIG_COMPAT obj-$(CONFIG_MSM_ADSPRPC) += adsprpc_compat.o endif