arm64: dts: qcom: sdm845: add SLPI FastRPC support
authorDylan Van Assche <me@dylanvanassche.be>
Thu, 6 Apr 2023 17:31:46 +0000 (19:31 +0200)
committerBjorn Andersson <andersson@kernel.org>
Fri, 7 Apr 2023 18:25:31 +0000 (11:25 -0700)
Qualcomm SDM845 SoC features a SLPI DSP which uses FastRPC through
an allocated memory region to load files from the host filesystem
such as sensor configuration files.

Add a FastRPC node at /dev/fastrpc-sdsp and a DMA region, similar to
downstream, to allow userspace to communicate with the SLPI via the
FastRPC interface for initializing the sensors on the SLPI.

Signed-off-by: Dylan Van Assche <me@dylanvanassche.be>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230406173148.28309-4-me@dylanvanassche.be
arch/arm64/boot/dts/qcom/sdm845.dtsi

index 760da18..21c7105 100644 (file)
@@ -13,6 +13,7 @@
 #include <dt-bindings/clock/qcom,rpmh.h>
 #include <dt-bindings/clock/qcom,videocc-sdm845.h>
 #include <dt-bindings/dma/qcom-gpi.h>
+#include <dt-bindings/firmware/qcom,scm.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interconnect/qcom,osm-l3.h>
 #include <dt-bindings/interconnect/qcom,sdm845.h>
                        size = <0 0x4000>;
                        no-map;
                };
+
+               fastrpc_mem: fastrpc {
+                       compatible = "shared-dma-pool";
+                       alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>;
+                       alignment = <0x0 0x400000>;
+                       size = <0x0 0x1000000>;
+                       reusable;
+               };
        };
 
        adsp_pas: remoteproc-adsp {
                                label = "dsps";
                                qcom,remote-pid = <3>;
                                mboxes = <&apss_shared 24>;
+
+                               fastrpc {
+                                       compatible = "qcom,fastrpc";
+                                       qcom,glink-channels = "fastrpcglink-apps-dsp";
+                                       label = "sdsp";
+                                       qcom,non-secure-domain;
+                                       qcom,vmids = <QCOM_SCM_VMID_HLOS QCOM_SCM_VMID_MSS_MSA
+                                                     QCOM_SCM_VMID_SSC_Q6 QCOM_SCM_VMID_ADSP_Q6>;
+                                       memory-region = <&fastrpc_mem>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       compute-cb@0 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <0>;
+                                       };
+                               };
                        };
                };