Re: [PATCH 1/2] ASoC: SOF: imx: Add code to manage DSP related clocks

From: Péter Ujfalusi
Date: Thu Sep 02 2021 - 09:36:21 EST

Hi Daniel,

On 02/09/2021 15:32, Daniel Baluta wrote:
From: Daniel Baluta <daniel.baluta@xxxxxxx>

There are two types of clocks:
* DSP IP clocks
* DAI clocks

This clocks are necessary in order to power up DSP and DAIs.

We choose to enable DAI clocks here because of the way i.MX8/i.MX8X
design handles resources (including clocks).

All clocks are managed by a separate core (named SCU) which communicates
with Linux managed ARM core via a well known API.

We parse and enable the clocks in probe function and disable them in
remove function.

Future patches will introduce Power Management support so that we
disable clocks while DSP is not used or system enters power save.

Unfortunately this patch does not apply to next.

I might be a bit too cautius, but I would also add "&& COMMON_CLK" for the COMPILE_TEST in Kconfig or select it from where it is appropriate?

Signed-off-by: Daniel Baluta <daniel.baluta@xxxxxxx>
sound/soc/sof/imx/imx-common.c | 77 ++++++++++++++++++++++++++++++++++
sound/soc/sof/imx/imx-common.h | 16 +++++++
sound/soc/sof/imx/imx8.c | 32 ++++++++++++++
sound/soc/sof/imx/imx8m.c | 33 +++++++++++++++
4 files changed, 158 insertions(+)

diff --git a/sound/soc/sof/imx/imx8m.c b/sound/soc/sof/imx/imx8m.c
index 30624fafc632..482c25ab15ce 100644
--- a/sound/soc/sof/imx/imx8m.c
+++ b/sound/soc/sof/imx/imx8m.c
@@ -23,6 +23,20 @@
#define MBOX_OFFSET 0x800000
#define MBOX_SIZE 0x1000
+#define IMX8M_DSP_CLK_NUM 3
+static const char *imx8m_dsp_clks_names[IMX8M_DSP_CLK_NUM] = {

static const char *imx8m_dsp_clks_names[]

+ ARRAY_SIZE(imx8m_dsp_clks_names) instead IMX8M_DSP_CLK_NUM ?