diff options
author | Daniel Baluta <daniel.baluta@nxp.com> | 2020-06-18 21:15:28 +0300 |
---|---|---|
committer | Daniel Baluta <daniel.baluta@nxp.com> | 2020-06-19 17:01:30 +0300 |
commit | dd53cbb0fdddeebd3526e42e0cdc9d393670671b (patch) | |
tree | 8cc44162d0d7e02c1996ed4fccc5fe6365859928 /sound | |
parent | b3adec224c89003919743e6764b9dbb751983894 (diff) |
MLK-24263-7 ASoC: fsl_dsp_audiomix: Introduce imx_audiomix_dsp_stall
This function is used to stall the DSP and it will be used
together with PWRCTL register in order to properly reset the
DSP to handle the Power Management use case.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/fsl/fsl_dsp_audiomix.c | 10 | ||||
-rw-r--r-- | sound/soc/fsl/fsl_dsp_audiomix.h | 1 |
2 files changed, 11 insertions, 0 deletions
diff --git a/sound/soc/fsl/fsl_dsp_audiomix.c b/sound/soc/fsl/fsl_dsp_audiomix.c index ba7730b54cd2..679550ae857d 100644 --- a/sound/soc/fsl/fsl_dsp_audiomix.c +++ b/sound/soc/fsl/fsl_dsp_audiomix.c @@ -26,6 +26,16 @@ void imx_audiomix_dsp_start(struct imx_audiomix_dsp_data *data) } EXPORT_SYMBOL(imx_audiomix_dsp_start); +void imx_audiomix_dsp_stall(struct imx_audiomix_dsp_data *data) +{ + u32 val; + + val = readl(data->base + AudioDSP_REG2); + val |= AudioDSP_REG2_RUNSTALL; + writel(val, data->base + AudioDSP_REG2); +} +EXPORT_SYMBOL(imx_audiomix_dsp_stall); + void imx_audiomix_dsp_pid_set(struct imx_audiomix_dsp_data *data, u32 val) { writel(val, data->base + AudioDSP_REG3); diff --git a/sound/soc/fsl/fsl_dsp_audiomix.h b/sound/soc/fsl/fsl_dsp_audiomix.h index 810efbaafff0..40fdf0d30dfa 100644 --- a/sound/soc/fsl/fsl_dsp_audiomix.h +++ b/sound/soc/fsl/fsl_dsp_audiomix.h @@ -17,6 +17,7 @@ struct imx_audiomix_dsp_data; void imx_audiomix_dsp_start(struct imx_audiomix_dsp_data *data); +void imx_audiomix_dsp_stall(struct imx_audiomix_dsp_data *data); void imx_audiomix_dsp_pid_set(struct imx_audiomix_dsp_data *data, u32 val); bool imx_audiomix_dsp_reset(struct imx_audiomix_dsp_data *data); |