The si476x codec is used for FM radio function on i.MX6
auto board, it only supports recording function.

Signed-off-by: Shengjiu Wang <shengjiu.w...@nxp.com>
---
 sound/soc/fsl/fsl-asoc-card.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/sound/soc/fsl/fsl-asoc-card.c b/sound/soc/fsl/fsl-asoc-card.c
index a2dd3b6b7fec..f62f81ceab0d 100644
--- a/sound/soc/fsl/fsl-asoc-card.c
+++ b/sound/soc/fsl/fsl-asoc-card.c
@@ -131,6 +131,13 @@ static const struct snd_soc_dapm_route audio_map_tx[] = {
        {"CPU-Playback",  NULL, "ASRC-Playback"},
 };
 
+static const struct snd_soc_dapm_route audio_map_rx[] = {
+       /* 1st half -- Normal DAPM routes */
+       {"CPU-Capture",  NULL, "Capture"},
+       /* 2nd half -- ASRC DAPM routes */
+       {"ASRC-Capture",  NULL, "CPU-Capture"},
+};
+
 /* Add all possible widgets into here without being redundant */
 static const struct snd_soc_dapm_widget fsl_asoc_card_dapm_widgets[] = {
        SND_SOC_DAPM_LINE("Line Out Jack", NULL),
@@ -653,6 +660,11 @@ static int fsl_asoc_card_probe(struct platform_device 
*pdev)
                priv->cpu_priv.slot_width = 32;
                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-si476x")) {
+               codec_dai_name = "si476x-codec";
+               priv->dai_fmt |= SND_SOC_DAIFMT_CBS_CFS;
+               priv->card.dapm_routes = audio_map_rx;
+               priv->card.num_dapm_routes = ARRAY_SIZE(audio_map_rx);
        } else {
                dev_err(&pdev->dev, "unknown Device Tree compatible\n");
                ret = -EINVAL;
@@ -869,6 +881,7 @@ static const struct of_device_id fsl_asoc_card_dt_ids[] = {
        { .compatible = "fsl,imx-audio-wm8960", },
        { .compatible = "fsl,imx-audio-mqs", },
        { .compatible = "fsl,imx-audio-wm8524", },
+       { .compatible = "fsl,imx-audio-si476x", },
        {}
 };
 MODULE_DEVICE_TABLE(of, fsl_asoc_card_dt_ids);
-- 
2.27.0

Reply via email to