#ifndef _MT8365_AFE_COMMON_H_
#define _MT8365_AFE_COMMON_H_
#include <linux/clk.h>
#include <linux/list.h>
#include <linux/regmap.h>
#include <sound/soc.h>
#include <sound/asound.h>
#include "../common/mtk-base-afe.h"
#include "mt8365-reg.h"
enum { … };
enum { … };
enum { … };
enum { … };
enum { … };
enum { … };
enum { … };
enum { … };
enum mt8365_afe_tdm_ch_start { … };
enum { … };
enum { … };
enum { … };
enum { … };
enum { … };
enum { … };
struct mt8365_fe_dai_data { … };
struct mt8365_be_dai_data { … };
#define MT8365_CLK_26M …
#define MT8365_CLK_24M …
#define MT8365_CLK_22M …
#define MT8365_CM_UPDATA_CNT_SET …
enum mt8365_cm_num { … };
enum mt8365_cm2_mux_in { … };
enum cm2_mux_conn_in { … };
struct mt8365_cm_ctrl_reg { … };
struct mt8365_control_data { … };
enum dmic_input_mode { … };
enum iir_mode { … };
enum { … };
struct mt8365_gasrc_ctrl_reg { … };
struct mt8365_gasrc_data { … };
struct mt8365_afe_private { … };
static inline u32 rx_frequency_palette(unsigned int fs)
{ … }
static inline u32 AutoRstThHi(unsigned int fs)
{ … }
static inline u32 AutoRstThLo(unsigned int fs)
{ … }
bool mt8365_afe_rate_supported(unsigned int rate, unsigned int id);
bool mt8365_afe_channel_supported(unsigned int channel, unsigned int id);
int mt8365_dai_i2s_register(struct mtk_base_afe *afe);
int mt8365_dai_set_priv(struct mtk_base_afe *afe,
int id,
int priv_size,
const void *priv_data);
int mt8365_afe_fs_timing(unsigned int rate);
void mt8365_afe_set_i2s_out_enable(struct mtk_base_afe *afe, bool enable);
int mt8365_afe_set_i2s_out(struct mtk_base_afe *afe, unsigned int rate, int bit_width);
int mt8365_dai_adda_register(struct mtk_base_afe *afe);
int mt8365_dai_enable_adda_on(struct mtk_base_afe *afe);
int mt8365_dai_disable_adda_on(struct mtk_base_afe *afe);
int mt8365_dai_dmic_register(struct mtk_base_afe *afe);
int mt8365_dai_pcm_register(struct mtk_base_afe *afe);
int mt8365_dai_tdm_register(struct mtk_base_afe *afe);
#endif