diff mbox series

[4/5] reset: imx8mp-audiomix: Add support for DSP run/stall

Message ID 20250218085712.66690-5-daniel.baluta@nxp.com (mailing list archive)
State New
Headers show
Series imx8mp: Add support to Run/Stall DSP via reset API | expand

Commit Message

Daniel Baluta Feb. 18, 2025, 8:57 a.m. UTC
We can Run/Stall the DSP via audio block control bits found in audiomix.
Implement this functionality using the reset controller and use assert
for Stall and deassert for Run.

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
---
 drivers/reset/reset-imx8mp-audiomix.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

Comments

Philipp Zabel Feb. 18, 2025, 9:31 a.m. UTC | #1
On Di, 2025-02-18 at 10:57 +0200, Daniel Baluta wrote:
> We can Run/Stall the DSP via audio block control bits found in audiomix.
> Implement this functionality using the reset controller and use assert
> for Stall and deassert for Run.
> 
> Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
> ---
>  drivers/reset/reset-imx8mp-audiomix.c | 12 ++++++++++--
>  1 file changed, 10 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/reset/reset-imx8mp-audiomix.c b/drivers/reset/reset-imx8mp-audiomix.c
> index 8cc0a6b58cbc..ee56d52a7278 100644
> --- a/drivers/reset/reset-imx8mp-audiomix.c
> +++ b/drivers/reset/reset-imx8mp-audiomix.c
> @@ -15,10 +15,14 @@
>  #define IMX8MP_AUDIOMIX_EARC_RESET_MASK		0x1
>  #define IMX8MP_AUDIOMIX_EARC_PHY_RESET_MASK	0x2
>  
> +#define IMX8MP_AUDIOMIX_DSP_OFFSET		0x108
> +#define IMX8MP_AUDIOMIX_DSP_RUNSTALL_MASK	0x20
> +
>  #define IMX8MP_AUDIOMIX_EARC		0
>  #define IMX8MP_AUDIOMIX_EARC_PHY	1
> +#define IMX8MP_AUDIOMIX_DSP		2
>  
> -#define IMX8MP_AUDIOMIX_RESET_NUM	2
> +#define IMX8MP_AUDIOMIX_RESET_NUM	3

See patch 2, this could be removed.

>  
>  struct imx8mp_reset_map {
>  	unsigned int offset;
> @@ -37,7 +41,11 @@ static const struct imx8mp_reset_map reset_map[IMX8MP_AUDIOMIX_RESET_NUM] = {
>  		.mask	= IMX8MP_AUDIOMIX_EARC_PHY_RESET_MASK,
>  		.active_low = true,
>  	},
> -

This belongs in patch 2.

> +	[IMX8MP_AUDIOMIX_DSP] = {
> +		.offset	= IMX8MP_AUDIOMIX_DSP_OFFSET,
> +		.mask	= IMX8MP_AUDIOMIX_DSP_RUNSTALL_MASK,
> +		.active_low = false,
> +	},
>  };
>  
>  struct imx8mp_audiomix_reset {

Otherwise,
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>

regards
Philipp
Peng Fan Feb. 18, 2025, 3:12 p.m. UTC | #2
On Tue, Feb 18, 2025 at 10:57:11AM +0200, Daniel Baluta wrote:
>We can Run/Stall the DSP via audio block control bits found in audiomix.
>Implement this functionality using the reset controller and use assert
>for Stall and deassert for Run.
>
>Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
>---
> drivers/reset/reset-imx8mp-audiomix.c | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
>diff --git a/drivers/reset/reset-imx8mp-audiomix.c b/drivers/reset/reset-imx8mp-audiomix.c
>index 8cc0a6b58cbc..ee56d52a7278 100644
>--- a/drivers/reset/reset-imx8mp-audiomix.c
>+++ b/drivers/reset/reset-imx8mp-audiomix.c
>@@ -15,10 +15,14 @@
> #define IMX8MP_AUDIOMIX_EARC_RESET_MASK		0x1
> #define IMX8MP_AUDIOMIX_EARC_PHY_RESET_MASK	0x2
> 
>+#define IMX8MP_AUDIOMIX_DSP_OFFSET		0x108
>+#define IMX8MP_AUDIOMIX_DSP_RUNSTALL_MASK	0x20
>+
> #define IMX8MP_AUDIOMIX_EARC		0
> #define IMX8MP_AUDIOMIX_EARC_PHY	1
>+#define IMX8MP_AUDIOMIX_DSP		2

Move this to dt-binding?

Regards,
Peng
Frank Li Feb. 18, 2025, 4 p.m. UTC | #3
On Tue, Feb 18, 2025 at 10:57:11AM +0200, Daniel Baluta wrote:
> We can Run/Stall the DSP via audio block control bits found in audiomix.
> Implement this functionality using the reset controller and use assert
> for Stall and deassert for Run.
>
> Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
> ---

Reviewed-by: Frank Li <Frank.Li@nxp.com>

>  drivers/reset/reset-imx8mp-audiomix.c | 12 ++++++++++--
>  1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/reset/reset-imx8mp-audiomix.c b/drivers/reset/reset-imx8mp-audiomix.c
> index 8cc0a6b58cbc..ee56d52a7278 100644
> --- a/drivers/reset/reset-imx8mp-audiomix.c
> +++ b/drivers/reset/reset-imx8mp-audiomix.c
> @@ -15,10 +15,14 @@
>  #define IMX8MP_AUDIOMIX_EARC_RESET_MASK		0x1
>  #define IMX8MP_AUDIOMIX_EARC_PHY_RESET_MASK	0x2
>
> +#define IMX8MP_AUDIOMIX_DSP_OFFSET		0x108
> +#define IMX8MP_AUDIOMIX_DSP_RUNSTALL_MASK	0x20
> +
>  #define IMX8MP_AUDIOMIX_EARC		0
>  #define IMX8MP_AUDIOMIX_EARC_PHY	1
> +#define IMX8MP_AUDIOMIX_DSP		2
>
> -#define IMX8MP_AUDIOMIX_RESET_NUM	2
> +#define IMX8MP_AUDIOMIX_RESET_NUM	3
>
>  struct imx8mp_reset_map {
>  	unsigned int offset;
> @@ -37,7 +41,11 @@ static const struct imx8mp_reset_map reset_map[IMX8MP_AUDIOMIX_RESET_NUM] = {
>  		.mask	= IMX8MP_AUDIOMIX_EARC_PHY_RESET_MASK,
>  		.active_low = true,
>  	},
> -
> +	[IMX8MP_AUDIOMIX_DSP] = {
> +		.offset	= IMX8MP_AUDIOMIX_DSP_OFFSET,
> +		.mask	= IMX8MP_AUDIOMIX_DSP_RUNSTALL_MASK,
> +		.active_low = false,
> +	},
>  };
>
>  struct imx8mp_audiomix_reset {
> --
> 2.25.1
>
diff mbox series

Patch

diff --git a/drivers/reset/reset-imx8mp-audiomix.c b/drivers/reset/reset-imx8mp-audiomix.c
index 8cc0a6b58cbc..ee56d52a7278 100644
--- a/drivers/reset/reset-imx8mp-audiomix.c
+++ b/drivers/reset/reset-imx8mp-audiomix.c
@@ -15,10 +15,14 @@ 
 #define IMX8MP_AUDIOMIX_EARC_RESET_MASK		0x1
 #define IMX8MP_AUDIOMIX_EARC_PHY_RESET_MASK	0x2
 
+#define IMX8MP_AUDIOMIX_DSP_OFFSET		0x108
+#define IMX8MP_AUDIOMIX_DSP_RUNSTALL_MASK	0x20
+
 #define IMX8MP_AUDIOMIX_EARC		0
 #define IMX8MP_AUDIOMIX_EARC_PHY	1
+#define IMX8MP_AUDIOMIX_DSP		2
 
-#define IMX8MP_AUDIOMIX_RESET_NUM	2
+#define IMX8MP_AUDIOMIX_RESET_NUM	3
 
 struct imx8mp_reset_map {
 	unsigned int offset;
@@ -37,7 +41,11 @@  static const struct imx8mp_reset_map reset_map[IMX8MP_AUDIOMIX_RESET_NUM] = {
 		.mask	= IMX8MP_AUDIOMIX_EARC_PHY_RESET_MASK,
 		.active_low = true,
 	},
-
+	[IMX8MP_AUDIOMIX_DSP] = {
+		.offset	= IMX8MP_AUDIOMIX_DSP_OFFSET,
+		.mask	= IMX8MP_AUDIOMIX_DSP_RUNSTALL_MASK,
+		.active_low = false,
+	},
 };
 
 struct imx8mp_audiomix_reset {