ASoC: fsl-asoc-card: Support fsl,imx-audio-tlv320aic31xx codec
authorAriel D'Alessandro <ariel.dalessandro@collabora.com>
Fri, 19 Nov 2021 15:32:48 +0000 (12:32 -0300)
committerMark Brown <broonie@kernel.org>
Mon, 22 Nov 2021 15:43:03 +0000 (15:43 +0000)
Add entry for fsl,imx-audio-tlv320aic31xx audio codec. This codec is
configured to use BCLK as clock input.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Ariel D'Alessandro <ariel.dalessandro@collabora.com>
Link: https://lore.kernel.org/r/20211119153248.419802-6-ariel.dalessandro@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/fsl/fsl-asoc-card.c

index 6e6494f..90cbed4 100644 (file)
@@ -26,6 +26,7 @@
 #include "../codecs/wm8962.h"
 #include "../codecs/wm8960.h"
 #include "../codecs/wm8994.h"
+#include "../codecs/tlv320aic31xx.h"
 
 #define CS427x_SYSCLK_MCLK 0
 
@@ -629,6 +630,16 @@ static int fsl_asoc_card_probe(struct platform_device *pdev)
        } else if (of_device_is_compatible(np, "fsl,imx-audio-tlv320aic32x4")) {
                codec_dai_name = "tlv320aic32x4-hifi";
                priv->dai_fmt |= SND_SOC_DAIFMT_CBP_CFP;
+       } else if (of_device_is_compatible(np, "fsl,imx-audio-tlv320aic31xx")) {
+               codec_dai_name = "tlv320dac31xx-hifi";
+               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.sysclk_dir[TX] = SND_SOC_CLOCK_OUT;
+               priv->cpu_priv.sysclk_dir[RX] = SND_SOC_CLOCK_OUT;
+               priv->codec_priv.mclk_id = AIC31XX_PLL_CLKIN_BCLK;
+               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-wm8962")) {
                codec_dai_name = "wm8962";
                priv->codec_priv.mclk_id = WM8962_SYSCLK_MCLK;
@@ -888,6 +899,7 @@ static const struct of_device_id fsl_asoc_card_dt_ids[] = {
        { .compatible = "fsl,imx-audio-cs42888", },
        { .compatible = "fsl,imx-audio-cs427x", },
        { .compatible = "fsl,imx-audio-tlv320aic32x4", },
+       { .compatible = "fsl,imx-audio-tlv320aic31xx", },
        { .compatible = "fsl,imx-audio-sgtl5000", },
        { .compatible = "fsl,imx-audio-wm8962", },
        { .compatible = "fsl,imx-audio-wm8960", },