#include <linux/cleanup.h>
#include <linux/clk.h>
#include <linux/device.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_platform.h>
#include <linux/platform_device.h>
#include <linux/string.h>
#include <sound/simple_card.h>
#include <sound/soc-dai.h>
#include <sound/soc.h>
#define DPCM_SELECTABLE …
#define DAI …
#define CELL …
#define PREFIX …
static const struct snd_soc_ops simple_ops = …;
static int simple_parse_platform(struct device_node *node, struct snd_soc_dai_link_component *dlc)
{ … }
static int simple_parse_dai(struct device *dev,
struct device_node *node,
struct snd_soc_dai_link_component *dlc,
int *is_single_link)
{ … }
static void simple_parse_convert(struct device *dev,
struct device_node *np,
struct simple_util_data *adata)
{ … }
static int simple_parse_node(struct simple_util_priv *priv,
struct device_node *np,
struct link_info *li,
char *prefix,
int *cpu)
{ … }
static int simple_link_init(struct simple_util_priv *priv,
struct device_node *cpu,
struct device_node *codec,
struct link_info *li,
char *prefix, char *name)
{ … }
static int simple_dai_link_of_dpcm(struct simple_util_priv *priv,
struct device_node *np,
struct device_node *codec,
struct link_info *li,
bool is_top)
{ … }
static int simple_dai_link_of(struct simple_util_priv *priv,
struct device_node *np,
struct device_node *codec,
struct link_info *li,
bool is_top)
{ … }
static int __simple_for_each_link(struct simple_util_priv *priv,
struct link_info *li,
int (*func_noml)(struct simple_util_priv *priv,
struct device_node *np,
struct device_node *codec,
struct link_info *li, bool is_top),
int (*func_dpcm)(struct simple_util_priv *priv,
struct device_node *np,
struct device_node *codec,
struct link_info *li, bool is_top))
{ … }
static int simple_for_each_link(struct simple_util_priv *priv,
struct link_info *li,
int (*func_noml)(struct simple_util_priv *priv,
struct device_node *np,
struct device_node *codec,
struct link_info *li, bool is_top),
int (*func_dpcm)(struct simple_util_priv *priv,
struct device_node *np,
struct device_node *codec,
struct link_info *li, bool is_top))
{ … }
static void simple_depopulate_aux(void *data)
{ … }
static int simple_populate_aux(struct simple_util_priv *priv)
{ … }
static int simple_parse_of(struct simple_util_priv *priv, struct link_info *li)
{ … }
static int simple_count_noml(struct simple_util_priv *priv,
struct device_node *np,
struct device_node *codec,
struct link_info *li, bool is_top)
{ … }
static int simple_count_dpcm(struct simple_util_priv *priv,
struct device_node *np,
struct device_node *codec,
struct link_info *li, bool is_top)
{ … }
static int simple_get_dais_count(struct simple_util_priv *priv,
struct link_info *li)
{ … }
static int simple_soc_probe(struct snd_soc_card *card)
{ … }
static int simple_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id simple_of_match[] = …;
MODULE_DEVICE_TABLE(of, simple_of_match);
static struct platform_driver simple_card = …;
module_platform_driver(…) …;
MODULE_ALIAS(…) …;
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;