ASoC: fsl-asoc-card: Add WM8524 support
authorShengjiu Wang <shengjiu.wang@nxp.com>
Tue, 23 Jun 2020 06:52:46 +0000 (14:52 +0800)
committerMark Brown <broonie@kernel.org>
Wed, 24 Jun 2020 15:15:05 +0000 (16:15 +0100)
WM8524 only supports playback mode, and only works at
slave mode.

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Link: https://lore.kernel.org/r/1592895167-30483-1-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/fsl/fsl-asoc-card.c

index d0543a5..57ea1b0 100644 (file)
@@ -611,6 +611,15 @@ static int fsl_asoc_card_probe(struct platform_device *pdev)
                priv->dai_link[2].dpcm_capture = 0;
                priv->card.dapm_routes = audio_map_tx;
                priv->card.num_dapm_routes = ARRAY_SIZE(audio_map_tx);
+       } else if (of_device_is_compatible(np, "fsl,imx-audio-wm8524")) {
+               codec_dai_name = "wm8524-hifi";
+               priv->card.set_bias_level = NULL;
+               priv->dai_fmt |= SND_SOC_DAIFMT_CBS_CFS;
+               priv->dai_link[1].dpcm_capture = 0;
+               priv->dai_link[2].dpcm_capture = 0;
+               priv->cpu_priv.slot_width = 32;
+               priv->card.dapm_routes = audio_map_tx;
+               priv->card.num_dapm_routes = ARRAY_SIZE(audio_map_tx);
        } else {
                dev_err(&pdev->dev, "unknown Device Tree compatible\n");
                ret = -EINVAL;
@@ -760,6 +769,7 @@ static const struct of_device_id fsl_asoc_card_dt_ids[] = {
        { .compatible = "fsl,imx-audio-wm8962", },
        { .compatible = "fsl,imx-audio-wm8960", },
        { .compatible = "fsl,imx-audio-mqs", },
+       { .compatible = "fsl,imx-audio-wm8524", },
        {}
 };
 MODULE_DEVICE_TABLE(of, fsl_asoc_card_dt_ids);