linux/sound/soc/mediatek/mt8365/mt8365-dai-dmic.c

// SPDX-License-Identifier: GPL-2.0
/*
 * MediaTek 8365 ALSA SoC Audio DAI DMIC Control
 *
 * Copyright (c) 2024 MediaTek Inc.
 * Authors: Jia Zeng <[email protected]>
 *          Alexandre Mergnat <[email protected]>
 */

#include <linux/bitops.h>
#include <linux/regmap.h>
#include <sound/pcm_params.h>
#include "mt8365-afe-clk.h"
#include "mt8365-afe-common.h"

struct mt8365_dmic_data {};

static int get_chan_reg(unsigned int channel)
{}

/* DAI Drivers */

static void audio_dmic_adda_enable(struct mtk_base_afe *afe)
{}

static void audio_dmic_adda_disable(struct mtk_base_afe *afe)
{}

static void mt8365_dai_enable_dmic(struct mtk_base_afe *afe,
				   struct snd_pcm_substream *substream,
				   struct snd_soc_dai *dai)
{}

static void mt8365_dai_disable_dmic(struct mtk_base_afe *afe,
				    struct snd_pcm_substream *substream,
				    struct snd_soc_dai *dai)
{}

static int mt8365_dai_configure_dmic(struct mtk_base_afe *afe,
				     struct snd_pcm_substream *substream,
				     struct snd_soc_dai *dai)
{}

static int mt8365_dai_dmic_startup(struct snd_pcm_substream *substream,
				   struct snd_soc_dai *dai)
{}

static void mt8365_dai_dmic_shutdown(struct snd_pcm_substream *substream,
				     struct snd_soc_dai *dai)
{}

static int mt8365_dai_dmic_prepare(struct snd_pcm_substream *substream,
				   struct snd_soc_dai *dai)
{}

static const struct snd_soc_dai_ops mt8365_afe_dmic_ops =;

static struct snd_soc_dai_driver mtk_dai_dmic_driver[] =;

/* DAI Controls */

/* Values for 48kHz mode */
static const char * const iir_mode_src[] =;

static SOC_ENUM_SINGLE_DECL(iir_mode, AFE_DMIC0_UL_SRC_CON0, 7, iir_mode_src);

static const struct snd_kcontrol_new mtk_dai_dmic_controls[] =;

/* DAI widget */

static const struct snd_soc_dapm_widget mtk_dai_dmic_widgets[] =;

/* DAI route */

static const struct snd_soc_dapm_route mtk_dai_dmic_routes[] =;

static int init_dmic_priv_data(struct mtk_base_afe *afe)
{}

int mt8365_dai_dmic_register(struct mtk_base_afe *afe)
{}