Commit 9f135fa1 authored by Sibi Sankar's avatar Sibi Sankar Committed by Bjorn Andersson

remoteproc: q6v5: Introduce reset assert/deassert helper functions

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: default avatarSibi Sankar <sibis@codeaurora.org>
Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
parent fb22022f
...@@ -337,6 +337,16 @@ static int q6v5_load(struct rproc *rproc, const struct firmware *fw) ...@@ -337,6 +337,16 @@ static int q6v5_load(struct rproc *rproc, const struct firmware *fw)
return 0; 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) static int q6v5_rmb_pbl_wait(struct q6v5 *qproc, int ms)
{ {
unsigned long timeout; unsigned long timeout;
...@@ -755,7 +765,7 @@ static int q6v5_start(struct rproc *rproc) ...@@ -755,7 +765,7 @@ static int q6v5_start(struct rproc *rproc)
dev_err(qproc->dev, "failed to enable supplies\n"); dev_err(qproc->dev, "failed to enable supplies\n");
goto disable_proxy_clk; goto disable_proxy_clk;
} }
ret = reset_control_deassert(qproc->mss_restart); ret = q6v5_reset_deassert(qproc);
if (ret) { if (ret) {
dev_err(qproc->dev, "failed to deassert mss restart\n"); dev_err(qproc->dev, "failed to deassert mss restart\n");
goto disable_vdd; goto disable_vdd;
...@@ -843,7 +853,7 @@ static int q6v5_start(struct rproc *rproc) ...@@ -843,7 +853,7 @@ static int q6v5_start(struct rproc *rproc)
qproc->active_clk_count); qproc->active_clk_count);
assert_reset: assert_reset:
reset_control_assert(qproc->mss_restart); q6v5_reset_assert(qproc);
disable_vdd: disable_vdd:
q6v5_regulator_disable(qproc, qproc->active_regs, q6v5_regulator_disable(qproc, qproc->active_regs,
qproc->active_reg_count); qproc->active_reg_count);
...@@ -896,7 +906,7 @@ static int q6v5_stop(struct rproc *rproc) ...@@ -896,7 +906,7 @@ static int q6v5_stop(struct rproc *rproc)
qproc->mpss_phys, qproc->mpss_size); qproc->mpss_phys, qproc->mpss_size);
WARN_ON(ret); WARN_ON(ret);
reset_control_assert(qproc->mss_restart); q6v5_reset_assert(qproc);
disable_irq(qproc->handover_irq); disable_irq(qproc->handover_irq);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment