Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d9a4f684 authored by Puja Gupta's avatar Puja Gupta
Browse files

soc: qcom: pil: Add support for qdsp v62.1.4 reset sequence



Update modem pil reset sequence to support qdspv62-1-4 for sdxgrizzly
and sdxhedgehog.

Change-Id: I1f4f71d1ca24f8b740bc4d3e7cb4d9d85e16b856
Signed-off-by: default avatarPuja Gupta <pujag@codeaurora.org>
parent 2a709b01
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -79,6 +79,7 @@ Optional properties:
				    current issue.
- qcom,qdsp6v61-1-1: Boolean- Present if the qdsp version is v61 1.1
- qcom,qdsp6v62-1-2: Boolean- Present if the qdsp version is v62 1.2
- qcom,qdsp6v62-1-4: Boolean- Present if the qdsp version is v62 1.4
- qcom,qdsp6v62-1-5: Boolean- Present if the qdsp version is v62 1.5
- qcom,mx-spike-wa: Boolean- Present if we need to assert QDSP6 I/O clamp, memory
		    wordline clamp, and compiler memory clamp during MSS restart.
+6 −3
Original line number Diff line number Diff line
@@ -393,7 +393,7 @@ static int __pil_q6v55_reset(struct pil_desc *pil)
	mb();
	udelay(1);

	if (drv->qdsp6v62_1_2 || drv->qdsp6v62_1_5) {
	if (drv->qdsp6v62_1_2 || drv->qdsp6v62_1_5 || drv->qdsp6v62_1_4) {
		for (i = BHS_CHECK_MAX_LOOPS; i > 0; i--) {
			if (readl_relaxed(drv->reg_base + QDSP6V62SS_BHS_STATUS)
			    & QDSP6v55_BHS_EN_REST_ACK)
@@ -494,7 +494,7 @@ static int __pil_q6v55_reset(struct pil_desc *pil)
			udelay(1);
		}
	} else if (drv->qdsp6v61_1_1 || drv->qdsp6v62_1_2 ||
						drv->qdsp6v62_1_5) {
			drv->qdsp6v62_1_4 || drv->qdsp6v62_1_5) {
		/* Deassert QDSP6 compiler memory clamp */
		val = readl_relaxed(drv->reg_base + QDSP6SS_PWR_CTL);
		val &= ~QDSP6v55_CLAMP_QMC_MEM;
@@ -508,7 +508,7 @@ static int __pil_q6v55_reset(struct pil_desc *pil)
		val = readl_relaxed(drv->reg_base +
				QDSP6V6SS_MEM_PWR_CTL);

		if (drv->qdsp6v62_1_5)
		if (drv->qdsp6v62_1_4 || drv->qdsp6v62_1_5)
			i = 29;
		else
			i = 28;
@@ -675,6 +675,9 @@ struct q6v5_data *pil_q6v5_init(struct platform_device *pdev)
	drv->qdsp6v62_1_2 = of_property_read_bool(pdev->dev.of_node,
						"qcom,qdsp6v62-1-2");

	drv->qdsp6v62_1_4 = of_property_read_bool(pdev->dev.of_node,
						"qcom,qdsp6v62-1-4");

	drv->qdsp6v62_1_5 = of_property_read_bool(pdev->dev.of_node,
						"qcom,qdsp6v62-1-5");

+1 −0
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@ struct q6v5_data {
	bool qdsp6v56_1_10;
	bool qdsp6v61_1_1;
	bool qdsp6v62_1_2;
	bool qdsp6v62_1_4;
	bool qdsp6v62_1_5;
	bool non_elf_image;
	bool restart_reg_sec;