#include <linux/module.h>
#include <linux/of_platform.h>
#include <linux/regmap.h>
#include <sound/soc.h>
#include <sound/soc-dai.h>
#include "axg-tdm-formatter.h"
#define TDMIN_CTRL …
#define TDMIN_CTRL_ENABLE …
#define TDMIN_CTRL_I2S_MODE …
#define TDMIN_CTRL_RST_OUT …
#define TDMIN_CTRL_RST_IN …
#define TDMIN_CTRL_WS_INV …
#define TDMIN_CTRL_SEL_SHIFT …
#define TDMIN_CTRL_IN_BIT_SKEW_MASK …
#define TDMIN_CTRL_IN_BIT_SKEW(x) …
#define TDMIN_CTRL_LSB_FIRST …
#define TDMIN_CTRL_BITNUM_MASK …
#define TDMIN_CTRL_BITNUM(x) …
#define TDMIN_SWAP …
#define TDMIN_MASK0 …
#define TDMIN_MASK1 …
#define TDMIN_MASK2 …
#define TDMIN_MASK3 …
#define TDMIN_STAT …
#define TDMIN_MUTE_VAL …
#define TDMIN_MUTE0 …
#define TDMIN_MUTE1 …
#define TDMIN_MUTE2 …
#define TDMIN_MUTE3 …
static const struct regmap_config axg_tdmin_regmap_cfg = …;
static const char * const axg_tdmin_sel_texts[] = …;
static SOC_ENUM_SINGLE_DECL(axg_tdmin_sel_enum, TDMIN_CTRL,
TDMIN_CTRL_SEL_SHIFT, axg_tdmin_sel_texts);
static const struct snd_kcontrol_new axg_tdmin_in_mux = …;
static struct snd_soc_dai *
axg_tdmin_get_be(struct snd_soc_dapm_widget *w)
{ … }
static struct axg_tdm_stream *
axg_tdmin_get_tdm_stream(struct snd_soc_dapm_widget *w)
{ … }
static void axg_tdmin_enable(struct regmap *map)
{ … }
static void axg_tdmin_disable(struct regmap *map)
{ … }
static int axg_tdmin_prepare(struct regmap *map,
const struct axg_tdm_formatter_hw *quirks,
struct axg_tdm_stream *ts)
{ … }
static const struct snd_soc_dapm_widget axg_tdmin_dapm_widgets[] = …;
static const struct snd_soc_dapm_route axg_tdmin_dapm_routes[] = …;
static const struct snd_soc_component_driver axg_tdmin_component_drv = …;
static const struct axg_tdm_formatter_ops axg_tdmin_ops = …;
static const struct axg_tdm_formatter_driver axg_tdmin_drv = …;
static const struct of_device_id axg_tdmin_of_match[] = …;
MODULE_DEVICE_TABLE(of, axg_tdmin_of_match);
static struct platform_driver axg_tdmin_pdrv = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;