#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)
{ … }
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[] = …;
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[] = …;
static const struct snd_soc_dapm_widget mtk_dai_dmic_widgets[] = …;
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)
{ … }