[PATCH] arm64: dts: msm8996: Add modem remoteproc

Bjorn Andersson bjorn.andersson at linaro.org
Thu Apr 19 18:26:57 PDT 2018


Add the modem remoteproc node and the child smd-edge in order to be able
to boot the modem Hexagon found in MSM8996 based devices.

Also extend the tcsr mutex node size, to cover the registers at the end
of the block, used for halting the modem subsystem.

Signed-off-by: Bjorn Andersson <bjorn.andersson at linaro.org>
---

This patch depends on the recent patch adding a few additional clocks to
gcc-msm8996.

 arch/arm64/boot/dts/qcom/msm8996.dtsi | 64 +++++++++++++++++++++++++++++++++--
 1 file changed, 62 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi
index 4010e2f1a177..70009b15ffd1 100644
--- a/arch/arm64/boot/dts/qcom/msm8996.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi
@@ -620,7 +620,6 @@
 				pm8994_l31: l31 {};
 				pm8994_l32: l32 {};
 			};
-
 		};
 	};
 
@@ -637,7 +636,7 @@
 
 		tcsr_mutex_regs: syscon at 740000 {
 			compatible = "syscon";
-			reg = <0x740000 0x20000>;
+			reg = <0x740000 0x40000>;
 		};
 
 		tcsr: syscon at 7a0000 {
@@ -1850,6 +1849,67 @@
 				power-domains = <&mmcc VENUS_CORE1_GDSC>;
 			};
 		};
+
+		remoteproc at 2080000 {
+			compatible = "qcom,msm8996-mss-pil";
+
+			reg = <0x2080000 0x100>,
+			      <0x2180000 0x040>;
+			reg-names = "qdsp6", "rmb";
+
+			interrupts-extended = <&intc 0 448 IRQ_TYPE_EDGE_RISING>,
+					      <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+					      <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+					      <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+					      <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
+			interrupt-names = "wdog", "fatal", "ready",
+					  "handover", "stop-ack";
+
+			clocks = <&xo_board>,
+				 <&gcc GCC_MSS_CFG_AHB_CLK>,
+				 <&rpmcc RPM_SMD_PCNOC_CLK>,
+				 <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
+				 <&gcc GCC_BOOT_ROM_AHB_CLK>,
+				 <&gcc GCC_MSS_GPLL0_DIV_CLK>,
+				 <&gcc GCC_MSS_SNOC_AXI_CLK>,
+				 <&gcc GCC_MSS_MNOC_BIMC_AXI_CLK>,
+				 <&rpmcc RPM_SMD_QDSS_CLK>;
+
+			clock-names = "xo", "iface", "pnoc", "bus",
+				      "mem", "gpll0_mss_clk", "snoc_axi_clk",
+				      "mnoc_axi_clk", "qdss";
+
+			mx-supply = <&pm8994_s2>;
+			cx-supply = <&pm8994_s1>;
+			pll-supply = <&pm8994_l12>;
+
+			resets = <&gcc GCC_MSS_RESTART>;
+			reset-names = "mss_restart";
+
+			qcom,halt-regs = <&tcsr_mutex_regs 0x23000 0x25000 0x24000>;
+
+			qcom,smem-states = <&modem_smp2p_out 0>;
+			qcom,smem-state-names = "stop";
+
+			status = "disabled";
+
+			mba {
+				memory-region = <&mba_region>;
+			};
+
+			mpss {
+				memory-region = <&mpss_region>;
+			};
+
+			smd-edge {
+				interrupts = <0 449 IRQ_TYPE_EDGE_RISING>;
+
+				label = "modem";
+				mboxes = <&apcs_glb 12>;
+				qcom,smd-edge = <0>;
+				qcom,remote-pid = <1>;
+			};
+		};
 	};
 
 	sound: sound {
-- 
2.16.2




More information about the linux-arm-kernel mailing list