linux/sound/soc/tegra/tegra_asoc_machine.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * tegra_asoc_machine.c - Universal ASoC machine driver for NVIDIA Tegra boards.
 */

#include <linux/clk.h>
#include <linux/export.h>
#include <linux/gpio/consumer.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/slab.h>

#include <sound/core.h>
#include <sound/jack.h>
#include <sound/pcm.h>
#include <sound/pcm_params.h>
#include <sound/soc.h>

#include "tegra_asoc_machine.h"

/* Headphones Jack */

static struct snd_soc_jack tegra_machine_hp_jack;

static struct snd_soc_jack_pin tegra_machine_hp_jack_pins[] =;

static struct snd_soc_jack_gpio tegra_machine_hp_jack_gpio =;

/* Headset Jack */

static struct snd_soc_jack tegra_machine_headset_jack;

static struct snd_soc_jack_pin tegra_machine_headset_jack_pins[] =;

static struct snd_soc_jack_gpio tegra_machine_headset_jack_gpio =;

/* Mic Jack */
static int coupled_mic_hp_check(void *data)
{}

static struct snd_soc_jack tegra_machine_mic_jack;

static struct snd_soc_jack_pin tegra_machine_mic_jack_pins[] =;

static struct snd_soc_jack_gpio tegra_machine_mic_jack_gpio =;

static int tegra_machine_event(struct snd_soc_dapm_widget *w,
			       struct snd_kcontrol *k, int event)
{}

static const struct snd_soc_dapm_widget tegra_machine_dapm_widgets[] =;

static const struct snd_kcontrol_new tegra_machine_controls[] =;

int tegra_asoc_machine_init(struct snd_soc_pcm_runtime *rtd)
{}
EXPORT_SYMBOL_GPL();

static unsigned int tegra_machine_mclk_rate_128(unsigned int srate)
{}

static unsigned int tegra_machine_mclk_rate_256(unsigned int srate)
{}

static unsigned int tegra_machine_mclk_rate_512(unsigned int srate)
{}

static unsigned int tegra_machine_mclk_rate_12mhz(unsigned int srate)
{}

static unsigned int tegra_machine_mclk_rate_6mhz(unsigned int srate)
{}

static int tegra_machine_hw_params(struct snd_pcm_substream *substream,
				   struct snd_pcm_hw_params *params)
{}

static const struct snd_soc_ops tegra_machine_snd_ops =;

static void tegra_machine_node_release(void *of_node)
{}

static struct device_node *
tegra_machine_parse_phandle(struct device *dev, const char *name)
{}

static void tegra_machine_unregister_codec(void *pdev)
{}

static int tegra_machine_register_codec(struct device *dev, const char *name)
{}

int tegra_asoc_machine_probe(struct platform_device *pdev)
{}
EXPORT_SYMBOL_GPL();

/* WM8753 machine */

SND_SOC_DAILINK_DEFS();

static struct snd_soc_dai_link tegra_wm8753_dai =;

static struct snd_soc_card snd_soc_tegra_wm8753 =;

static const struct tegra_asoc_data tegra_wm8753_data =;

/* WM9712 machine */

static int tegra_wm9712_init(struct snd_soc_pcm_runtime *rtd)
{}

SND_SOC_DAILINK_DEFS();

static struct snd_soc_dai_link tegra_wm9712_dai =;

static struct snd_soc_card snd_soc_tegra_wm9712 =;

static const struct tegra_asoc_data tegra_wm9712_data =;

/* MAX98090 machine */

SND_SOC_DAILINK_DEFS();

static struct snd_soc_dai_link tegra_max98090_dai =;

static struct snd_soc_card snd_soc_tegra_max98090 =;

static const struct tegra_asoc_data tegra_max98090_data =;

/* MAX98088 machine */

SND_SOC_DAILINK_DEFS();

static struct snd_soc_dai_link tegra_max98088_dai =;

static struct snd_soc_card snd_soc_tegra_max98088 =;

static const struct tegra_asoc_data tegra_max98088_data =;

/* SGTL5000 machine */

SND_SOC_DAILINK_DEFS();

static struct snd_soc_dai_link tegra_sgtl5000_dai =;

static struct snd_soc_card snd_soc_tegra_sgtl5000 =;

static const struct tegra_asoc_data tegra_sgtl5000_data =;

/* TLV320AIC23 machine */

static const struct snd_soc_dapm_widget trimslice_dapm_widgets[] =;

static const struct snd_soc_dapm_route trimslice_audio_map[] =;

SND_SOC_DAILINK_DEFS();

static struct snd_soc_dai_link tegra_tlv320aic23_dai =;

static struct snd_soc_card snd_soc_tegra_trimslice =;

static const struct tegra_asoc_data tegra_trimslice_data =;

/* RT5677 machine */

static int tegra_rt5677_init(struct snd_soc_pcm_runtime *rtd)
{}

SND_SOC_DAILINK_DEFS();

static struct snd_soc_dai_link tegra_rt5677_dai =;

static struct snd_soc_card snd_soc_tegra_rt5677 =;

static const struct tegra_asoc_data tegra_rt5677_data =;

/* RT5640 machine */

SND_SOC_DAILINK_DEFS();

static struct snd_soc_dai_link tegra_rt5640_dai =;

static struct snd_soc_card snd_soc_tegra_rt5640 =;

static const struct tegra_asoc_data tegra_rt5640_data =;

/* RT5632 machine */

SND_SOC_DAILINK_DEFS();

static struct snd_soc_dai_link tegra_rt5632_dai =;

static struct snd_soc_card snd_soc_tegra_rt5632 =;

static const struct tegra_asoc_data tegra_rt5632_data =;

/* RT5631 machine */

SND_SOC_DAILINK_DEFS();

static struct snd_soc_dai_link tegra_rt5631_dai =;

static struct snd_soc_card snd_soc_tegra_rt5631 =;

static const struct tegra_asoc_data tegra_rt5631_data =;

static const struct of_device_id tegra_machine_of_match[] =;
MODULE_DEVICE_TABLE(of, tegra_machine_of_match);

static struct platform_driver tegra_asoc_machine_driver =;
module_platform_driver();

MODULE_AUTHOR();
MODULE_AUTHOR();
MODULE_AUTHOR();
MODULE_AUTHOR();
MODULE_AUTHOR();
MODULE_AUTHOR();
MODULE_AUTHOR();
MODULE_AUTHOR();
MODULE_AUTHOR();
MODULE_AUTHOR();
MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();