Commit 77f1ff75 authored by Shengjiu Wang's avatar Shengjiu Wang Committed by Mark Brown

ASoC: fsl-asoc-card: Add support for si476x codec

The si476x codec is used for FM radio function on i.MX6
auto board, it only supports recording function.
Signed-off-by: default avatarShengjiu Wang <shengjiu.wang@nxp.com>
Acked-by: default avatarNicolin Chen <nicoleotsuka@gmail.com>
Link: https://lore.kernel.org/r/1606708668-28786-1-git-send-email-shengjiu.wang@nxp.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 5057d108
...@@ -131,6 +131,13 @@ static const struct snd_soc_dapm_route audio_map_tx[] = { ...@@ -131,6 +131,13 @@ static const struct snd_soc_dapm_route audio_map_tx[] = {
{"CPU-Playback", NULL, "ASRC-Playback"}, {"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 */ /* Add all possible widgets into here without being redundant */
static const struct snd_soc_dapm_widget fsl_asoc_card_dapm_widgets[] = { static const struct snd_soc_dapm_widget fsl_asoc_card_dapm_widgets[] = {
SND_SOC_DAPM_LINE("Line Out Jack", NULL), SND_SOC_DAPM_LINE("Line Out Jack", NULL),
...@@ -653,6 +660,11 @@ static int fsl_asoc_card_probe(struct platform_device *pdev) ...@@ -653,6 +660,11 @@ static int fsl_asoc_card_probe(struct platform_device *pdev)
priv->cpu_priv.slot_width = 32; priv->cpu_priv.slot_width = 32;
priv->card.dapm_routes = audio_map_tx; priv->card.dapm_routes = audio_map_tx;
priv->card.num_dapm_routes = ARRAY_SIZE(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 { } else {
dev_err(&pdev->dev, "unknown Device Tree compatible\n"); dev_err(&pdev->dev, "unknown Device Tree compatible\n");
ret = -EINVAL; ret = -EINVAL;
...@@ -869,6 +881,7 @@ static const struct of_device_id fsl_asoc_card_dt_ids[] = { ...@@ -869,6 +881,7 @@ static const struct of_device_id fsl_asoc_card_dt_ids[] = {
{ .compatible = "fsl,imx-audio-wm8960", }, { .compatible = "fsl,imx-audio-wm8960", },
{ .compatible = "fsl,imx-audio-mqs", }, { .compatible = "fsl,imx-audio-mqs", },
{ .compatible = "fsl,imx-audio-wm8524", }, { .compatible = "fsl,imx-audio-wm8524", },
{ .compatible = "fsl,imx-audio-si476x", },
{} {}
}; };
MODULE_DEVICE_TABLE(of, fsl_asoc_card_dt_ids); MODULE_DEVICE_TABLE(of, fsl_asoc_card_dt_ids);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment