#include <linux/clk.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <sound/core.h>
#include <sound/pcm.h>
#include <sound/pcm_params.h>
#include <sound/soc.h>
#include "davinci-mcasp.h"
#define J721E_CODEC_CONF_COUNT …
enum j721e_audio_domain_id { … };
#define J721E_CLK_PARENT_48000 …
#define J721E_CLK_PARENT_44100 …
#define J721E_MAX_CLK_HSDIV …
#define PCM1368A_MAX_SYSCLK …
#define J721E_DAI_FMT …
enum j721e_board_type { … };
struct j721e_audio_match_data { … };
static unsigned int ratios_for_pcm3168a[] = …;
struct j721e_audio_clocks { … };
struct j721e_audio_domain { … };
struct j721e_priv { … };
static const struct snd_soc_dapm_widget j721e_cpb_dapm_widgets[] = …;
static const struct snd_soc_dapm_route j721e_cpb_dapm_routes[] = …;
static const struct snd_soc_dapm_widget j721e_ivi_codec_a_dapm_widgets[] = …;
static const struct snd_soc_dapm_route j721e_codec_a_dapm_routes[] = …;
static const struct snd_soc_dapm_widget j721e_ivi_codec_b_dapm_widgets[] = …;
static const struct snd_soc_dapm_route j721e_codec_b_dapm_routes[] = …;
static int j721e_configure_refclk(struct j721e_priv *priv,
unsigned int audio_domain, unsigned int rate)
{ … }
static int j721e_rule_rate(struct snd_pcm_hw_params *params,
struct snd_pcm_hw_rule *rule)
{ … }
static int j721e_audio_startup(struct snd_pcm_substream *substream)
{ … }
static int j721e_audio_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params)
{ … }
static void j721e_audio_shutdown(struct snd_pcm_substream *substream)
{ … }
static const struct snd_soc_ops j721e_audio_ops = …;
static int j721e_audio_init(struct snd_soc_pcm_runtime *rtd)
{ … }
static int j721e_audio_init_ivi(struct snd_soc_pcm_runtime *rtd)
{ … }
static int j721e_get_clocks(struct device *dev,
struct j721e_audio_clocks *clocks, char *prefix)
{ … }
static const struct j721e_audio_match_data j721e_cpb_data = …;
static const struct j721e_audio_match_data j721e_cpb_ivi_data = …;
static const struct j721e_audio_match_data j7200_cpb_data = …;
static const struct of_device_id j721e_audio_of_match[] = …;
MODULE_DEVICE_TABLE(of, j721e_audio_of_match);
static int j721e_calculate_rate_range(struct j721e_priv *priv)
{ … }
static int j721e_soc_probe_cpb(struct j721e_priv *priv, int *link_idx,
int *conf_idx)
{ … }
static int j721e_soc_probe_ivi(struct j721e_priv *priv, int *link_idx,
int *conf_idx)
{ … }
static int j721e_soc_probe(struct platform_device *pdev)
{ … }
static struct platform_driver j721e_soc_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;