Skip to contentSkip to conversation

Add PAS and MSA based Modem support

PATCH In review Sibi Sankar 4 participants 13 messages Apr 21, 2020 – May 11, 2020

Subsystems (5)
lore
Share & tools
lore
#0 lore raw

v2 cover Add PAS and MSA based Modem support

Add PAS based modem support on SC7180 SoCs and update the device node to support MSA based modem boot.

V2:
* use memory-region to reference mba/mpss regions [Bjorn]
* move peripheral memory regions to the board dts [Bjorn]
* overload the base remoteproc_mpss node wherever possible [Bjorn]
* Pick up Bjorn's R-b

Patch [1,2] - Add PAS based modem support
Patch [3,4] - use memory-region to reference mba/mpss regions Patch [5] - Update reserved memory map
Patch [6,7] - Add PAS/MSA modem nodes

Sibi Sankar (7):
dt-bindings: remoteproc: qcom: Add SC7180 MPSS support
remoteproc: qcom: pas: Add SC7180 Modem support
dt-bindings: remoteproc: qcom: Use memory-region to reference memory
remoteproc: qcom_q6v5_mss: Extract mba/mpss from memory-region
arm64: dts: qcom: sc7180: Update reserved memory map
arm64: dts: qcom: sc7180: Add Q6V5 MSS node
arm64: dts: qcom: sc7180: Update Q6V5 MSS node

 .../bindings/remoteproc/qcom,adsp.txt         |  3 +
 .../bindings/remoteproc/qcom,q6v5.txt         |  8 ++
 arch/arm64/boot/dts/qcom/sc7180-idp.dts       | 60 +++++++++++++
 arch/arm64/boot/dts/qcom/sc7180.dtsi          | 89 ++++++++++++++++++-
 drivers/remoteproc/qcom_q6v5_mss.c            | 21 ++++-
 drivers/remoteproc/qcom_q6v5_pas.c            |  1 +
 6 files changed, 177 insertions(+), 5 deletions(-)
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
#1 lore raw

PATCH v2 1/7 dt-bindings: remoteproc: qcom: Add SC7180 MPSS support

Add MPSS PAS support for SC7180 SoCs.

---
 Documentation/devicetree/bindings/remoteproc/qcom,adsp.txt | 3 +++
 1 file changed, 3 insertions(+)
Documentation/devicetree/bindings/remoteproc/qcom,adsp.txt +3 -0
index 9938918b2fea3..22604d2cd3f87 100644
@@ -15,6 +15,7 @@ on the Qualcomm ADSP Hexagon core.
 		    "qcom,qcs404-adsp-pas"
 		    "qcom,qcs404-cdsp-pas"
 		    "qcom,qcs404-wcss-pas"
+		    "qcom,sc7180-mpss-pas"
 		    "qcom,sdm845-adsp-pas"
 		    "qcom,sdm845-cdsp-pas"
 		    "qcom,sm8150-adsp-pas"
@@ -46,6 +47,7 @@ on the Qualcomm ADSP Hexagon core.
 	qcom,sm8150-slpi-pas:
 		    must be "wdog", "fatal", "ready", "handover", "stop-ack"
 	qcom,qcs404-wcss-pas:
+	qcom,sc7180-mpss-pas:
 	qcom,sm8150-mpss-pas:
 		    must be "wdog", "fatal", "ready", "handover", "stop-ack",
 		    "shutdown-ack"
@@ -106,6 +108,7 @@ on the Qualcomm ADSP Hexagon core.
 	qcom,sm8150-adsp-pas:
 	qcom,sm8150-cdsp-pas:
 		    must be "cx", "load_state"
+	qcom,sc7180-mpss-pas:
 	qcom,sm8150-mpss-pas:
 		    must be "cx", "load_state", "mss"
 	qcom,sm8150-slpi-pas:
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
#3 lore raw

PATCH v2 2/7 remoteproc: qcom: pas: Add SC7180 Modem support

In reply to Sibi Sankar

Add support for booting the Modem DSP found on Qualcomm's SC7180 SoCs.

---
 drivers/remoteproc/qcom_q6v5_pas.c | 1 +
 1 file changed, 1 insertion(+)
drivers/remoteproc/qcom_q6v5_pas.c +1 -0
index 7a63efb854052..33b0bff770a7f 100644
@@ -637,6 +637,7 @@ static const struct of_device_id adsp_of_match[] = {
 	{ .compatible = "qcom,qcs404-adsp-pas", .data = &adsp_resource_init },
 	{ .compatible = "qcom,qcs404-cdsp-pas", .data = &cdsp_resource_init },
 	{ .compatible = "qcom,qcs404-wcss-pas", .data = &wcss_resource_init },
+	{ .compatible = "qcom,sc7180-mpss-pas", .data = &mpss_resource_init},
 	{ .compatible = "qcom,sdm845-adsp-pas", .data = &adsp_resource_init},
 	{ .compatible = "qcom,sdm845-cdsp-pas", .data = &cdsp_resource_init},
 	{ .compatible = "qcom,sm8150-adsp-pas", .data = &sm8150_adsp_resource},
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
#4 lore raw

PATCH v2 3/7 dt-bindings: remoteproc: qcom: Use memory-region to reference memory

In reply to Sibi Sankar

Use memory-region property to reference mba and mpss memory regions.

---
 .../devicetree/bindings/remoteproc/qcom,q6v5.txt          | 8 ++++++++
 1 file changed, 8 insertions(+)
Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt +8 -0
index bffddd15eb910..1f9a62e13ebe0 100644
@@ -102,6 +102,14 @@ on the Qualcomm Hexagon core.
 		    must be "mss_restart", "pdc_reset" for the modem
 		    sub-system on SC7180, SDM845 SoCs
 
+For devices where the mba and mpss sub-nodes are not specified, mba/mpss region
+should be referenced as follows:
+- memory-region:
+	Usage: required
+	Value type: <phandle>
+	Definition: reference to the reserved-memory for the mba region followed
+		    by the mpss region
+
 For the compatible strings below the following supplies are required:
   "qcom,q6v5-pil"
   "qcom,msm8916-mss-pil",
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
maintainer Reviewed-by on v2 3/7
#5 lore raw

Re: [PATCH v2 3/7] dt-bindings: remoteproc: qcom: Use memory-region to reference memory

Quoted 7 lines · Sibi Sankar

Use memory-region property to reference mba and mpss memory regions.

---
 .../devicetree/bindings/remoteproc/qcom,q6v5.txt          | 8 ++++++++
 1 file changed, 8 insertions(+)
#6 lore raw

PATCH v2 4/7 remoteproc: qcom_q6v5_mss: Extract mba/mpss from memory-region

In reply to Sibi Sankar

In the absence of mba and mpss sub-child extract the mba/mpss regions from the memory-region property.

---
 drivers/remoteproc/qcom_q6v5_mss.c | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)
drivers/remoteproc/qcom_q6v5_mss.c +18 -3
index 3a7352776a319..5c8d04c51af71 100644
@@ -1503,8 +1503,17 @@ static int q6v5_alloc_memory_region(struct q6v5 *qproc)
 	struct resource r;
 	int ret;
 
+	/*
+	 * In the absence of mba/mpss sub-child, extract the mba and mpss
+	 * reserved memory regions from device's memory-region property.
+	 */
 	child = of_get_child_by_name(qproc->dev->of_node, "mba");
-	node = of_parse_phandle(child, "memory-region", 0);
+	if (!child)
+		node = of_parse_phandle(qproc->dev->of_node,
+					"memory-region", 0);
+	else
+		node = of_parse_phandle(child, "memory-region", 0);
+
 	ret = of_address_to_resource(node, 0, &r);
 	if (ret) {
 		dev_err(qproc->dev, "unable to resolve mba region\n");
@@ -1521,8 +1530,14 @@ static int q6v5_alloc_memory_region(struct q6v5 *qproc)
 		return -EBUSY;
 	}
 
-	child = of_get_child_by_name(qproc->dev->of_node, "mpss");
-	node = of_parse_phandle(child, "memory-region", 0);
+	if (!child) {
+		node = of_parse_phandle(qproc->dev->of_node,
+					"memory-region", 1);
+	} else {
+		child = of_get_child_by_name(qproc->dev->of_node, "mpss");
+		node = of_parse_phandle(child, "memory-region", 0);
+	}
+
 	ret = of_address_to_resource(node, 0, &r);
 	if (ret) {
 		dev_err(qproc->dev, "unable to resolve mpss region\n");
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
#7 lore raw

PATCH v2 5/7 arm64: dts: qcom: sc7180: Update reserved memory map

In reply to Sibi Sankar

Add missing regions and remove unused regions from the reserved memory map, as described in version 5.

---

V2:
* move peripheral memory regions to the board dts [Bjorn]

 arch/arm64/boot/dts/qcom/sc7180-idp.dts | 53 +++++++++++++++++++++++++
 arch/arm64/boot/dts/qcom/sc7180.dtsi    | 33 ++++++++++++++-
 2 files changed, 84 insertions(+), 2 deletions(-)
arch/arm64/boot/dts/qcom/sc7180-idp.dts +53 -0
index 043c9b9b50240..5405cde1a32ef 100644
@@ -28,6 +28,59 @@ chosen {
 	};
 };
 
+/*
+ * Reserved memory changes
+ *
+ * Delete all unused memory nodes and define the peripheral memory regions
+ * required by the board dts.
+ *
+ */
+
+/delete-node/ &hyp_mem;
+/delete-node/ &xbl_mem;
+/delete-node/ &aop_mem;
+/delete-node/ &sec_apps_mem;
+/delete-node/ &tz_mem;
+
+/* Increase the size from 2MB to 8MB */
+&rmtfs_mem {
+	reg = <0x0 0x84400000 0x0 0x800000>;
+};
+
+/ {
+	reserved-memory {
+		atf_mem: memory@80b00000 {
+			reg = <0x0 0x80b00000 0x0 0x100000>;
+			no-map;
+		};
+
+		mpss_mem: memory@86000000 {
+			reg = <0x0 0x86000000 0x0 0x8c00000>;
+			no-map;
+		};
+
+		camera_mem: memory@8ec00000 {
+			reg = <0x0 0x8ec00000 0x0 0x500000>;
+			no-map;
+		};
+
+		venus_mem: memory@8f600000 {
+			reg = <0 0x8f600000 0 0x500000>;
+			no-map;
+		};
+
+		wlan_mem: memory@94100000 {
+			reg = <0x0 0x94100000 0x0 0x200000>;
+			no-map;
+		};
+
+		mba_mem: memory@94400000 {
+			reg = <0x0 0x94400000 0x0 0x200000>;
+			no-map;
+		};
+	};
+};
+
 &apps_rsc {
 	pm6150-rpmh-regulators {
 		compatible = "qcom,pm6150-rpmh-regulators";
arch/arm64/boot/dts/qcom/sc7180.dtsi +31 -2
index 998f101ad623b..65c14a6d13fef 100644
@@ -69,20 +69,49 @@ reserved_memory: reserved-memory {
 		#size-cells = <2>;
 		ranges;
 
+		hyp_mem: memory@80000000 {
+			reg = <0x0 0x80000000 0x0 0x600000>;
+			no-map;
+		};
+
+		xbl_mem: memory@80600000 {
+			reg = <0x0 0x80600000 0x0 0x200000>;
+			no-map;
+		};
+
+		aop_mem: memory@80800000 {
+			reg = <0x0 0x80800000 0x0 0x20000>;
+			no-map;
+		};
+
 		aop_cmd_db_mem: memory@80820000 {
 			reg = <0x0 0x80820000 0x0 0x20000>;
 			compatible = "qcom,cmd-db";
 		};
 
+		sec_apps_mem: memory@808ff000 {
+			reg = <0x0 0x808ff000 0x0 0x1000>;
+			no-map;
+		};
+
 		smem_mem: memory@80900000 {
 			reg = <0x0 0x80900000 0x0 0x200000>;
 			no-map;
 		};
 
-		venus_mem: memory@8f600000 {
-			reg = <0 0x8f600000 0 0x500000>;
+		tz_mem: memory@80b00000 {
+			reg = <0x0 0x80b00000 0x0 0x3900000>;
 			no-map;
 		};
+
+		rmtfs_mem: memory@84400000 {
+			compatible = "qcom,rmtfs-mem";
+			reg = <0x0 0x84400000 0x0 0x200000>;
+			no-map;
+
+			qcom,client-id = <1>;
+			qcom,vmid = <15>;
+		};
 	};
 
 	cpus {
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
#8 lore raw

PATCH v2 6/7 arm64: dts: qcom: sc7180: Add Q6V5 MSS node

In reply to Sibi Sankar

This patch adds Q6V5 MSS PAS remoteproc node for SC7180 SoCs.

---
 arch/arm64/boot/dts/qcom/sc7180.dtsi | 36 ++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
arch/arm64/boot/dts/qcom/sc7180.dtsi +36 -0
index 65c14a6d13fef..94cead96eade0 100644
@@ -1323,6 +1323,42 @@ pinconf-sd-cd {
 			};
 		};
 
+		remoteproc_mpss: remoteproc@4080000 {
+			compatible = "qcom,sc7180-mpss-pas";
+			reg = <0 0x04080000 0 0x4040>;
+
+			interrupts-extended = <&intc GIC_SPI 266 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>,
+					      <&modem_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 = <&aoss_qmp AOSS_QMP_LS_MODEM>,
+					<&rpmhpd SC7180_CX>,
+					<&rpmhpd SC7180_MSS>;
+			power-domain-names = "load_state", "cx", "mss";
+
+			memory-region = <&mpss_mem>;
+
+			qcom,smem-states = <&modem_smp2p_out 0>;
+			qcom,smem-state-names = "stop";
+
+			status = "disabled";
+
+			glink-edge {
+				interrupts = <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>;
+				label = "modem";
+				qcom,remote-pid = <1>;
+				mboxes = <&apss_shared 12>;
+			};
+		};
+
 		sdhc_2: sdhci@8804000 {
 			compatible = "qcom,sc7180-sdhci", "qcom,sdhci-msm-v5";
 			reg = <0 0x08804000 0 0x1000>;
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
Reviewed-by on v2 6/7
#9 lore raw

Re: [PATCH v2 6/7] arm64: dts: qcom: sc7180: Add Q6V5 MSS node

Quoted 2 lines · Sibi Sankar

This patch adds Q6V5 MSS PAS remoteproc node for SC7180 SoCs.

Quoted 55 lines
---
 arch/arm64/boot/dts/qcom/sc7180.dtsi | 36 ++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
arch/arm64/boot/dts/qcom/sc7180.dtsi +36 -0
index 65c14a6d13fef..94cead96eade0 100644
@@ -1323,6 +1323,42 @@ pinconf-sd-cd {
 			};
 		};
 
+		remoteproc_mpss: remoteproc@4080000 {
+			compatible = "qcom,sc7180-mpss-pas";
+			reg = <0 0x04080000 0 0x4040>;
+
+			interrupts-extended = <&intc GIC_SPI 266 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>,
+					      <&modem_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 = <&aoss_qmp AOSS_QMP_LS_MODEM>,
+					<&rpmhpd SC7180_CX>,
+					<&rpmhpd SC7180_MSS>;
+			power-domain-names = "load_state", "cx", "mss";
+
+			memory-region = <&mpss_mem>;
+
+			qcom,smem-states = <&modem_smp2p_out 0>;
+			qcom,smem-state-names = "stop";
+
+			status = "disabled";
+
+			glink-edge {
+				interrupts = <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>;
+				label = "modem";
+				qcom,remote-pid = <1>;
+				mboxes = <&apss_shared 12>;
+			};
+		};
+
 		sdhc_2: sdhci@8804000 {
 			compatible = "qcom,sc7180-sdhci", "qcom,sdhci-msm-v5";
 			reg = <0 0x08804000 0 0x1000>;
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
#10 lore raw

PATCH v2 7/7 arm64: dts: qcom: sc7180: Update Q6V5 MSS node

In reply to Sibi Sankar

Add TCSR node and update MSS node to support MSA based Modem boot on SC7180 SoCs.

---

V2:
* use memory-region to reference mba/mpss regions [Bjorn]
* overload the base remoteproc_mpss node wherever possible [Bjorn]

Depends on the following bindings:
iommus: https://patchwork.kernel.org/patch/11499603/
spare-regs: https://patchwork.kernel.org/patch/11491425/

 arch/arm64/boot/dts/qcom/sc7180-idp.dts |  7 +++++++
 arch/arm64/boot/dts/qcom/sc7180.dtsi    | 28 +++++++++++++++++++++----
 2 files changed, 31 insertions(+), 4 deletions(-)
arch/arm64/boot/dts/qcom/sc7180-idp.dts +7 -0
index 5405cde1a32ef..08f1f04cca734 100644
@@ -309,6 +309,13 @@ &qupv3_id_1 {
 	status = "okay";
 };
 
+&remoteproc_mpss {
+	status = "okay";
+	compatible = "qcom,sc7180-mss-pil";
+	iommus = <&apps_smmu 0x460 0x1>, <&apps_smmu 0x444 0x3>;
+	memory-region = <&mba_mem &mpss_mem>;
+};
+
 &sdhc_1 {
 	status = "okay";
 
arch/arm64/boot/dts/qcom/sc7180.dtsi +24 -4
index 94cead96eade0..5e2618eb1b7fa 100644
@@ -932,6 +932,11 @@ tcsr_mutex_regs: syscon@1f40000 {
 			reg = <0 0x01f40000 0 0x40000>;
 		};
 
+		tcsr_regs: syscon@1fc0000 {
+			compatible = "syscon";
+			reg = <0 0x01fc0000 0 0x40000>;
+		};
+
 		tlmm: pinctrl@3500000 {
 			compatible = "qcom,sc7180-pinctrl";
 			reg = <0 0x03500000 0 0x300000>,
@@ -1325,7 +1330,8 @@ pinconf-sd-cd {
 
 		remoteproc_mpss: remoteproc@4080000 {
 			compatible = "qcom,sc7180-mpss-pas";
-			reg = <0 0x04080000 0 0x4040>;
+			reg = <0 0x04080000 0 0x4040>, <0 0x04180000 0 0x48>;
+			reg-names = "qdsp6", "rmb";
 
 			interrupts-extended = <&intc GIC_SPI 266 IRQ_TYPE_EDGE_RISING>,
 					      <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
@@ -1336,19 +1342,33 @@ remoteproc_mpss: remoteproc@4080000 {
 			interrupt-names = "wdog", "fatal", "ready", "handover",
 					  "stop-ack", "shutdown-ack";
 
-			clocks = <&rpmhcc RPMH_CXO_CLK>;
-			clock-names = "xo";
+			clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
+				 <&gcc GCC_MSS_Q6_MEMNOC_AXI_CLK>,
+				 <&gcc GCC_MSS_NAV_AXI_CLK>,
+				 <&gcc GCC_MSS_SNOC_AXI_CLK>,
+				 <&gcc GCC_MSS_MFAB_AXIS_CLK>,
+				 <&rpmhcc RPMH_CXO_CLK>;
+			clock-names = "iface", "bus", "nav", "snoc_axi",
+				      "mnoc_axi", "xo";
 
 			power-domains = <&aoss_qmp AOSS_QMP_LS_MODEM>,
 					<&rpmhpd SC7180_CX>,
+					<&rpmhpd SC7180_MX>,
 					<&rpmhpd SC7180_MSS>;
-			power-domain-names = "load_state", "cx", "mss";
+			power-domain-names = "load_state", "cx", "mx", "mss";
 
 			memory-region = <&mpss_mem>;
 
 			qcom,smem-states = <&modem_smp2p_out 0>;
 			qcom,smem-state-names = "stop";
 
+			resets = <&aoss_reset AOSS_CC_MSS_RESTART>,
+				 <&pdc_reset PDC_MODEM_SYNC_RESET>;
+			reset-names = "mss_restart", "pdc_reset";
+
+			qcom,halt-regs = <&tcsr_mutex_regs 0x23000 0x25000 0x24000>;
+			qcom,spare-regs = <&tcsr_regs 0xb3e4>;
+
 			status = "disabled";
 
 			glink-edge {
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
Reviewed-by on v2 7/7
#11 lore raw

Re: [PATCH v2 7/7] arm64: dts: qcom: sc7180: Update Q6V5 MSS node

Quoted 3 lines · Sibi Sankar

Add TCSR node and update MSS node to support MSA based Modem boot on SC7180 SoCs.

Quoted 99 lines

---

V2:
* use memory-region to reference mba/mpss regions [Bjorn]
* overload the base remoteproc_mpss node wherever possible [Bjorn]

Depends on the following bindings:
iommus: https://patchwork.kernel.org/patch/11499603/
spare-regs: https://patchwork.kernel.org/patch/11491425/

 arch/arm64/boot/dts/qcom/sc7180-idp.dts |  7 +++++++
 arch/arm64/boot/dts/qcom/sc7180.dtsi    | 28 +++++++++++++++++++++----
 2 files changed, 31 insertions(+), 4 deletions(-)
arch/arm64/boot/dts/qcom/sc7180-idp.dts +7 -0
index 5405cde1a32ef..08f1f04cca734 100644
@@ -309,6 +309,13 @@ &qupv3_id_1 {
 	status = "okay";
 };
 
+&remoteproc_mpss {
+	status = "okay";
+	compatible = "qcom,sc7180-mss-pil";
+	iommus = <&apps_smmu 0x460 0x1>, <&apps_smmu 0x444 0x3>;
+	memory-region = <&mba_mem &mpss_mem>;
+};
+
 &sdhc_1 {
 	status = "okay";
 
arch/arm64/boot/dts/qcom/sc7180.dtsi +24 -4
index 94cead96eade0..5e2618eb1b7fa 100644
@@ -932,6 +932,11 @@ tcsr_mutex_regs: syscon@1f40000 {
 			reg = <0 0x01f40000 0 0x40000>;
 		};
 
+		tcsr_regs: syscon@1fc0000 {
+			compatible = "syscon";
+			reg = <0 0x01fc0000 0 0x40000>;
+		};
+
 		tlmm: pinctrl@3500000 {
 			compatible = "qcom,sc7180-pinctrl";
 			reg = <0 0x03500000 0 0x300000>,
@@ -1325,7 +1330,8 @@ pinconf-sd-cd {
 
 		remoteproc_mpss: remoteproc@4080000 {
 			compatible = "qcom,sc7180-mpss-pas";
-			reg = <0 0x04080000 0 0x4040>;
+			reg = <0 0x04080000 0 0x4040>, <0 0x04180000 0 0x48>;
+			reg-names = "qdsp6", "rmb";
 
 			interrupts-extended = <&intc GIC_SPI 266 IRQ_TYPE_EDGE_RISING>,
 					      <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
@@ -1336,19 +1342,33 @@ remoteproc_mpss: remoteproc@4080000 {
 			interrupt-names = "wdog", "fatal", "ready", "handover",
 					  "stop-ack", "shutdown-ack";
 
-			clocks = <&rpmhcc RPMH_CXO_CLK>;
-			clock-names = "xo";
+			clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
+				 <&gcc GCC_MSS_Q6_MEMNOC_AXI_CLK>,
+				 <&gcc GCC_MSS_NAV_AXI_CLK>,
+				 <&gcc GCC_MSS_SNOC_AXI_CLK>,
+				 <&gcc GCC_MSS_MFAB_AXIS_CLK>,
+				 <&rpmhcc RPMH_CXO_CLK>;
+			clock-names = "iface", "bus", "nav", "snoc_axi",
+				      "mnoc_axi", "xo";
 
 			power-domains = <&aoss_qmp AOSS_QMP_LS_MODEM>,
 					<&rpmhpd SC7180_CX>,
+					<&rpmhpd SC7180_MX>,
 					<&rpmhpd SC7180_MSS>;
-			power-domain-names = "load_state", "cx", "mss";
+			power-domain-names = "load_state", "cx", "mx", "mss";
 
 			memory-region = <&mpss_mem>;
 
 			qcom,smem-states = <&modem_smp2p_out 0>;
 			qcom,smem-state-names = "stop";
 
+			resets = <&aoss_reset AOSS_CC_MSS_RESTART>,
+				 <&pdc_reset PDC_MODEM_SYNC_RESET>;
+			reset-names = "mss_restart", "pdc_reset";
+
+			qcom,halt-regs = <&tcsr_mutex_regs 0x23000 0x25000 0x24000>;
+			qcom,spare-regs = <&tcsr_regs 0xb3e4>;
+
 			status = "disabled";
 
 			glink-edge {
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
Tested-by on the v2 series
#12 lore raw
In reply to Sibi Sankar
Quoted 15 lines · Sibi Sankar

Add PAS based modem support on SC7180 SoCs and update the device node to support MSA based modem boot.

V2:
* use memory-region to reference mba/mpss regions [Bjorn]
* move peripheral memory regions to the board dts [Bjorn]
* overload the base remoteproc_mpss node wherever possible [Bjorn]
* Pick up Bjorn's R-b

Patch [1,2] - Add PAS based modem support
Patch [3,4] - use memory-region to reference mba/mpss regions Patch [5] - Update reserved memory map
Patch [6,7] - Add PAS/MSA modem nodes

Quoted 8 lines

Sibi Sankar (7):
dt-bindings: remoteproc: qcom: Add SC7180 MPSS support
remoteproc: qcom: pas: Add SC7180 Modem support
dt-bindings: remoteproc: qcom: Use memory-region to reference memory
remoteproc: qcom_q6v5_mss: Extract mba/mpss from memory-region
arm64: dts: qcom: sc7180: Update reserved memory map
arm64: dts: qcom: sc7180: Add Q6V5 MSS node
arm64: dts: qcom: sc7180: Update Q6V5 MSS node