[PATCHv4 7/9] ASoC: fsl-asoc-card: add DT clock "cpu_sysclk" with generic codec

Elinor Montmasson
2024-05-15T13:54:35Z

Add an optional DT clock "cpu_sysclk" to get the CPU DAI system-clock
frequency when using the generic codec.
It is set for both Tx and Rx.
The way the frequency value is used is up to the CPU DAI driver
implementation.

Signed-off-by: Elinor Montmasson <elinor.montmasson@savoirfairelinux.com>
---
sound/soc/fsl/fsl-asoc-card.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/sound/soc/fsl/fsl-asoc-card.c b/sound/soc/fsl/fsl-asoc-card.c
index 9aca8ad15372..c7fc9c16f761 100644
--- a/sound/soc/fsl/fsl-asoc-card.c
+++ b/sound/soc/fsl/fsl-asoc-card.c
@@ -754,6 +754,12 @@ static int fsl_asoc_card_probe(struct platform_device *pdev)
snd_soc_of_parse_tdm_slot(np, NULL, NULL,
&priv->cpu_priv.slot_num,
&priv->cpu_priv.slot_width);
+ struct clk *cpu_sysclk = clk_get(&pdev->dev, "cpu_sysclk");
+ if (!IS_ERR(cpu_sysclk)) {
+ priv->cpu_priv.sysclk_freq[TX] = clk_get_rate(cpu_sysclk);
+ priv->cpu_priv.sysclk_freq[RX] = priv->cpu_priv.sysclk_freq[TX];
+ clk_put(cpu_sysclk);
+ }
} else {
dev_err(&pdev->dev, "unknown Device Tree compatible\n");
ret = -EINVAL;
--
2.34.1