#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 TDMOUT_CTRL0 …
#define TDMOUT_CTRL0_BITNUM_MASK …
#define TDMOUT_CTRL0_BITNUM(x) …
#define TDMOUT_CTRL0_SLOTNUM_MASK …
#define TDMOUT_CTRL0_SLOTNUM(x) …
#define TDMOUT_CTRL0_INIT_BITNUM_MASK …
#define TDMOUT_CTRL0_INIT_BITNUM(x) …
#define TDMOUT_CTRL0_ENABLE …
#define TDMOUT_CTRL0_RST_OUT …
#define TDMOUT_CTRL0_RST_IN …
#define TDMOUT_CTRL1 …
#define TDMOUT_CTRL1_TYPE_MASK …
#define TDMOUT_CTRL1_TYPE(x) …
#define SM1_TDMOUT_CTRL1_GAIN_EN …
#define TDMOUT_CTRL1_MSB_POS_MASK …
#define TDMOUT_CTRL1_MSB_POS(x) …
#define TDMOUT_CTRL1_SEL_SHIFT …
#define TDMOUT_CTRL1_GAIN_EN …
#define TDMOUT_CTRL1_WS_INV …
#define TDMOUT_SWAP …
#define TDMOUT_MASK0 …
#define TDMOUT_MASK1 …
#define TDMOUT_MASK2 …
#define TDMOUT_MASK3 …
#define TDMOUT_STAT …
#define TDMOUT_GAIN0 …
#define TDMOUT_GAIN1 …
#define TDMOUT_MUTE_VAL …
#define TDMOUT_MUTE0 …
#define TDMOUT_MUTE1 …
#define TDMOUT_MUTE2 …
#define TDMOUT_MUTE3 …
#define TDMOUT_MASK_VAL …
static const struct regmap_config axg_tdmout_regmap_cfg = …;
static struct snd_soc_dai *
axg_tdmout_get_be(struct snd_soc_dapm_widget *w)
{ … }
static struct axg_tdm_stream *
axg_tdmout_get_tdm_stream(struct snd_soc_dapm_widget *w)
{ … }
static void axg_tdmout_enable(struct regmap *map)
{ … }
static void axg_tdmout_disable(struct regmap *map)
{ … }
static int axg_tdmout_prepare(struct regmap *map,
const struct axg_tdm_formatter_hw *quirks,
struct axg_tdm_stream *ts)
{ … }
static const struct snd_kcontrol_new axg_tdmout_controls[] = …;
static const char * const axg_tdmout_sel_texts[] = …;
static SOC_ENUM_SINGLE_DECL(axg_tdmout_sel_enum, TDMOUT_CTRL1,
TDMOUT_CTRL1_SEL_SHIFT, axg_tdmout_sel_texts);
static const struct snd_kcontrol_new axg_tdmout_in_mux = …;
static const struct snd_soc_dapm_widget axg_tdmout_dapm_widgets[] = …;
static const struct snd_soc_dapm_route axg_tdmout_dapm_routes[] = …;
static const struct snd_soc_component_driver axg_tdmout_component_drv = …;
static const struct axg_tdm_formatter_ops axg_tdmout_ops = …;
static const struct axg_tdm_formatter_driver axg_tdmout_drv = …;
static const struct axg_tdm_formatter_driver g12a_tdmout_drv = …;
static const struct snd_kcontrol_new sm1_tdmout_controls[] = …;
static const char * const sm1_tdmout_sel_texts[] = …;
static SOC_ENUM_SINGLE_DECL(sm1_tdmout_sel_enum, TDMOUT_CTRL1,
TDMOUT_CTRL1_SEL_SHIFT, sm1_tdmout_sel_texts);
static const struct snd_kcontrol_new sm1_tdmout_in_mux = …;
static const struct snd_soc_dapm_widget sm1_tdmout_dapm_widgets[] = …;
static const struct snd_soc_dapm_route sm1_tdmout_dapm_routes[] = …;
static const struct snd_soc_component_driver sm1_tdmout_component_drv = …;
static const struct axg_tdm_formatter_driver sm1_tdmout_drv = …;
static const struct of_device_id axg_tdmout_of_match[] = …;
MODULE_DEVICE_TABLE(of, axg_tdmout_of_match);
static struct platform_driver axg_tdmout_pdrv = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;