]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
remoteproc: q6v5: Introduce reset assert/deassert helper functions
authorSibi Sankar <sibis@codeaurora.org>
Mon, 21 May 2018 17:27:12 +0000 (22:57 +0530)
committerBjorn Andersson <bjorn.andersson@linaro.org>
Wed, 30 May 2018 03:10:34 +0000 (20:10 -0700)
Adding reset assert/deassert helper functions to handle SoC
specific reset sequences. This wil be used by SDM845 to assert and
deassert ALT_RESET and MSS_RESET signals.

Signed-off-by: Sibi Sankar <sibis@codeaurora.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
drivers/remoteproc/qcom_q6v5_pil.c

index a7c325ef78a1353eb49d6895505d59386350422f..7e2691c9c034eb9e6f094cd72b967918d65e86f9 100644 (file)
@@ -337,6 +337,16 @@ static int q6v5_load(struct rproc *rproc, const struct firmware *fw)
        return 0;
 }
 
+static int q6v5_reset_assert(struct q6v5 *qproc)
+{
+       return reset_control_assert(qproc->mss_restart);
+}
+
+static int q6v5_reset_deassert(struct q6v5 *qproc)
+{
+       return reset_control_deassert(qproc->mss_restart);
+}
+
 static int q6v5_rmb_pbl_wait(struct q6v5 *qproc, int ms)
 {
        unsigned long timeout;
@@ -755,7 +765,7 @@ static int q6v5_start(struct rproc *rproc)
                dev_err(qproc->dev, "failed to enable supplies\n");
                goto disable_proxy_clk;
        }
-       ret = reset_control_deassert(qproc->mss_restart);
+       ret = q6v5_reset_deassert(qproc);
        if (ret) {
                dev_err(qproc->dev, "failed to deassert mss restart\n");
                goto disable_vdd;
@@ -843,7 +853,7 @@ static int q6v5_start(struct rproc *rproc)
                         qproc->active_clk_count);
 
 assert_reset:
-       reset_control_assert(qproc->mss_restart);
+       q6v5_reset_assert(qproc);
 disable_vdd:
        q6v5_regulator_disable(qproc, qproc->active_regs,
                               qproc->active_reg_count);
@@ -896,7 +906,7 @@ static int q6v5_stop(struct rproc *rproc)
                                      qproc->mpss_phys, qproc->mpss_size);
        WARN_ON(ret);
 
-       reset_control_assert(qproc->mss_restart);
+       q6v5_reset_assert(qproc);
 
        disable_irq(qproc->handover_irq);