arm64: dts: qcom: sc7280: Add CDSP node
authorLuca Weiss <luca.weiss@fairphone.com>
Fri, 8 Dec 2023 15:08:05 +0000 (16:08 +0100)
committerBjorn Andersson <andersson@kernel.org>
Sat, 9 Dec 2023 03:58:41 +0000 (19:58 -0800)
Add the node for the ADSP found on the SC7280 SoC, using standard
Qualcomm firmware.

Remove the reserved-memory node from sc7280-chrome-common since CDSP is
currently not used there.

Acked-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
Link: https://lore.kernel.org/r/20231208-sc7280-remoteprocs-v3-9-6aa394d33edf@fairphone.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/qcm6490-idp.dts
arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi
arch/arm64/boot/dts/qcom/sc7280.dtsi

index 662b5f757542265a18dd97dc3a5be185d2c0e48f..37c91fdf3ab917b40c8ff4f4e60af09c6d442328 100644 (file)
@@ -14,6 +14,7 @@
 /delete-node/ &ipa_fw_mem;
 /delete-node/ &rmtfs_mem;
 /delete-node/ &adsp_mem;
+/delete-node/ &cdsp_mem;
 /delete-node/ &video_mem;
 /delete-node/ &wlan_ce_mem;
 /delete-node/ &xbl_mem;
index c54b1ff8b857c9182821a80052520c376aab67cf..71179cbf22b597489f116fd5c000853f9c6c72f3 100644 (file)
@@ -20,6 +20,7 @@
 /delete-node/ &remoteproc_mpss;
 /delete-node/ &rmtfs_mem;
 /delete-node/ &adsp_mem;
+/delete-node/ &cdsp_mem;
 /delete-node/ &video_mem;
 /delete-node/ &wlan_ce_mem;
 /delete-node/ &xbl_mem;
index 6e05bf024cc688d30453f4b775b034c2ecaab866..854a16e018ef02d66a59ccf274abfa07987c00e2 100644 (file)
@@ -17,6 +17,7 @@
  * required by the setup for Chrome boards.
  */
 
+/delete-node/ &cdsp_mem;
 /delete-node/ &gpu_zap_mem;
 /delete-node/ &gpu_zap_shader;
 /delete-node/ &hyp_mem;
        };
 };
 
+/* Currently not used */
+&remoteproc_cdsp {
+       /delete-property/ memory-region;
+};
+
 &remoteproc_wpss {
        compatible = "qcom,sc7280-wpss-pil";
        clocks = <&gcc GCC_WPSS_AHB_BDG_MST_CLK>,
index 91f009cd1a86f38a9f59119b463c0a564ce23e19..89d081aeed1a3a43cace859a5e7fcb7fc06f4356 100644 (file)
                        no-map;
                };
 
+               cdsp_mem: cdsp@88f00000 {
+                       reg = <0x0 0x88f00000 0x0 0x1e00000>;
+                       no-map;
+               };
+
                ipa_fw_mem: memory@8b700000 {
                        reg = <0 0x8b700000 0 0x10000>;
                        no-map;
                        qcom,bcm-voters = <&apps_bcm_voter>;
                };
 
+               remoteproc_cdsp: remoteproc@a300000 {
+                       compatible = "qcom,sc7280-cdsp-pas";
+                       reg = <0 0x0a300000 0 0x10000>;
+
+                       interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&cdsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&cdsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&cdsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&cdsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
+                                             <&cdsp_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog", "fatal", "ready", "handover",
+                                         "stop-ack", "shutdown-ack";
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "xo";
+
+                       power-domains = <&rpmhpd SC7280_CX>,
+                                       <&rpmhpd SC7280_MX>;
+                       power-domain-names = "cx", "mx";
+
+                       interconnects = <&nsp_noc MASTER_CDSP_PROC 0 &mc_virt SLAVE_EBI1 0>;
+
+                       memory-region = <&cdsp_mem>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&cdsp_smp2p_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       status = "disabled";
+
+                       glink-edge {
+                               interrupts-extended = <&ipcc IPCC_CLIENT_CDSP
+                                                            IPCC_MPROC_SIGNAL_GLINK_QMP
+                                                            IRQ_TYPE_EDGE_RISING>;
+                               mboxes = <&ipcc IPCC_CLIENT_CDSP
+                                               IPCC_MPROC_SIGNAL_GLINK_QMP>;
+
+                               label = "cdsp";
+                               qcom,remote-pid = <5>;
+
+                               fastrpc {
+                                       compatible = "qcom,fastrpc";
+                                       qcom,glink-channels = "fastrpcglink-apps-dsp";
+                                       label = "cdsp";
+                                       qcom,non-secure-domain;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       compute-cb@1 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <1>;
+                                               iommus = <&apps_smmu 0x11a1 0x0420>,
+                                                        <&apps_smmu 0x1181 0x0420>;
+                                       };
+
+                                       compute-cb@2 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <2>;
+                                               iommus = <&apps_smmu 0x11a2 0x0420>,
+                                                        <&apps_smmu 0x1182 0x0420>;
+                                       };
+
+                                       compute-cb@3 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <3>;
+                                               iommus = <&apps_smmu 0x11a3 0x0420>,
+                                                        <&apps_smmu 0x1183 0x0420>;
+                                       };
+
+                                       compute-cb@4 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <4>;
+                                               iommus = <&apps_smmu 0x11a4 0x0420>,
+                                                        <&apps_smmu 0x1184 0x0420>;
+                                       };
+
+                                       compute-cb@5 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <5>;
+                                               iommus = <&apps_smmu 0x11a5 0x0420>,
+                                                        <&apps_smmu 0x1185 0x0420>;
+                                       };
+
+                                       compute-cb@6 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <6>;
+                                               iommus = <&apps_smmu 0x11a6 0x0420>,
+                                                        <&apps_smmu 0x1186 0x0420>;
+                                       };
+
+                                       compute-cb@7 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <7>;
+                                               iommus = <&apps_smmu 0x11a7 0x0420>,
+                                                        <&apps_smmu 0x1187 0x0420>;
+                                       };
+
+                                       compute-cb@8 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <8>;
+                                               iommus = <&apps_smmu 0x11a8 0x0420>,
+                                                        <&apps_smmu 0x1188 0x0420>;
+                                       };
+
+                                       /* note: secure cb9 in downstream */
+
+                                       compute-cb@11 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <11>;
+                                               iommus = <&apps_smmu 0x11ab 0x0420>,
+                                                        <&apps_smmu 0x118b 0x0420>;
+                                       };
+
+                                       compute-cb@12 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <12>;
+                                               iommus = <&apps_smmu 0x11ac 0x0420>,
+                                                        <&apps_smmu 0x118c 0x0420>;
+                                       };
+
+                                       compute-cb@13 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <13>;
+                                               iommus = <&apps_smmu 0x11ad 0x0420>,
+                                                        <&apps_smmu 0x118d 0x0420>;
+                                       };
+
+                                       compute-cb@14 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <14>;
+                                               iommus = <&apps_smmu 0x11ae 0x0420>,
+                                                        <&apps_smmu 0x118e 0x0420>;
+                                       };
+                               };
+                       };
+               };
+
                usb_1: usb@a6f8800 {
                        compatible = "qcom,sc7280-dwc3", "qcom,dwc3";
                        reg = <0 0x0a6f8800 0 0x400>;