]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: mediatek: mt8188-mt6359: Add DMIC support
authorNícolas F. R. A. Prado <nfraprado@collabora.com>
Tue, 25 Feb 2025 14:33:51 +0000 (11:33 -0300)
committerMark Brown <broonie@kernel.org>
Tue, 25 Feb 2025 14:58:51 +0000 (14:58 +0000)
Add the DMIC backend, which connects to the DMIC DAI in the platform
driver, as well as a "AP DMIC" mic widget. On the Genio 700 EVK board
the dual DMIC on-board are wired through that DMIC DAI.

Co-developed-by: parkeryang <Parker.Yang@mediatek.com>
Signed-off-by: parkeryang <Parker.Yang@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Link: https://patch.msgid.link/20250225-genio700-dmic-v2-5-3076f5b50ef7@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/mediatek/mt8188/mt8188-mt6359.c

index 2d0d04e0232da07ba43a030b14853322427d55e7..420b1427b71dc1424a52f7ab6140c14659036733 100644 (file)
@@ -150,6 +150,11 @@ SND_SOC_DAILINK_DEFS(dl_src,
                                                   "mt6359-snd-codec-aif1")),
                     DAILINK_COMP_ARRAY(COMP_EMPTY()));
 
+SND_SOC_DAILINK_DEFS(DMIC_BE,
+                    DAILINK_COMP_ARRAY(COMP_CPU("DMIC")),
+                    DAILINK_COMP_ARRAY(COMP_DUMMY()),
+                    DAILINK_COMP_ARRAY(COMP_EMPTY()));
+
 SND_SOC_DAILINK_DEFS(dptx,
                     DAILINK_COMP_ARRAY(COMP_CPU("DPTX")),
                     DAILINK_COMP_ARRAY(COMP_DUMMY()),
@@ -297,6 +302,7 @@ static const struct snd_soc_dapm_widget mt8188_rear_spk_widgets[] = {
 static const struct snd_soc_dapm_widget mt8188_mt6359_widgets[] = {
        SND_SOC_DAPM_HP("Headphone", NULL),
        SND_SOC_DAPM_MIC("Headset Mic", NULL),
+       SND_SOC_DAPM_MIC("AP DMIC", NULL),
        SND_SOC_DAPM_SINK("HDMI"),
        SND_SOC_DAPM_SINK("DP"),
        SND_SOC_DAPM_MIXER(SOF_DMA_DL2, SND_SOC_NOPM, 0, 0, NULL, 0),
@@ -533,6 +539,7 @@ enum {
        DAI_LINK_UL9_FE,
        DAI_LINK_UL10_FE,
        DAI_LINK_DL_SRC_BE,
+       DAI_LINK_DMIC_BE,
        DAI_LINK_DPTX_BE,
        DAI_LINK_ETDM1_IN_BE,
        DAI_LINK_ETDM2_IN_BE,
@@ -1120,6 +1127,13 @@ static struct snd_soc_dai_link mt8188_mt6359_dai_links[] = {
                .playback_only = 1,
                SND_SOC_DAILINK_REG(dl_src),
        },
+       [DAI_LINK_DMIC_BE] = {
+               .name = "DMIC_BE",
+               .no_pcm = 1,
+               .capture_only = 1,
+               .ignore_suspend = 1,
+               SND_SOC_DAILINK_REG(DMIC_BE),
+       },
        [DAI_LINK_DPTX_BE] = {
                .name = "DPTX_BE",
                .ops = &mt8188_dptx_ops,