]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ASoC: fsl-asoc-card: add wm8904 codec support
authorShengjiu Wang <shengjiu.wang@nxp.com>
Mon, 15 Apr 2024 07:17:35 +0000 (15:17 +0800)
committerMark Brown <broonie@kernel.org>
Mon, 15 Apr 2024 23:45:05 +0000 (08:45 +0900)
wm8904 codec is used on i.MX95 Toradex board

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://lore.kernel.org/r/1713165456-3494-2-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/fsl/fsl-asoc-card.c

index bc07f26ba303f99924d7324b6b2f060e6126401e..f6d2564864c601164790cbe918bc518a886b08f2 100644 (file)
@@ -28,6 +28,7 @@
 #include "../codecs/wm8994.h"
 #include "../codecs/tlv320aic31xx.h"
 #include "../codecs/nau8822.h"
+#include "../codecs/wm8904.h"
 
 #define DRIVER_NAME "fsl-asoc-card"
 
@@ -709,6 +710,12 @@ static int fsl_asoc_card_probe(struct platform_device *pdev)
                priv->dai_fmt |= SND_SOC_DAIFMT_CBM_CFM;
                if (codec_dev)
                        priv->codec_priv.mclk = devm_clk_get(codec_dev, NULL);
+       } else if (of_device_is_compatible(np, "fsl,imx-audio-wm8904")) {
+               codec_dai_name = "wm8904-hifi";
+               priv->codec_priv.mclk_id = WM8904_FLL_MCLK;
+               priv->codec_priv.fll_id = WM8904_CLK_FLL;
+               priv->codec_priv.pll_id = WM8904_FLL_MCLK;
+               priv->dai_fmt |= SND_SOC_DAIFMT_CBP_CFP;
        } else {
                dev_err(&pdev->dev, "unknown Device Tree compatible\n");
                ret = -EINVAL;
@@ -935,6 +942,7 @@ static const struct of_device_id fsl_asoc_card_dt_ids[] = {
        { .compatible = "fsl,imx-audio-si476x", },
        { .compatible = "fsl,imx-audio-wm8958", },
        { .compatible = "fsl,imx-audio-nau8822", },
+       { .compatible = "fsl,imx-audio-wm8904", },
        {}
 };
 MODULE_DEVICE_TABLE(of, fsl_asoc_card_dt_ids);