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: Sibi Sankar <sibis@codeaurora.org> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
This commit is contained in:
parent
fb22022ff6
commit
9f135fa1ff
|
@ -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 @@ disable_active_clks:
|
|||
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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue