52 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2 3#ifndef __TEGRA_ASOC_MACHINE_H__4#define __TEGRA_ASOC_MACHINE_H__5 6struct clk;7struct gpio_desc;8struct snd_soc_card;9struct snd_soc_jack;10struct platform_device;11struct snd_soc_jack_gpio;12struct snd_soc_pcm_runtime;13 14struct tegra_asoc_data {15 unsigned int (*mclk_rate)(unsigned int srate);16 const char *codec_dev_name;17 const char *hp_jack_name;18 struct snd_soc_card *card;19 unsigned int mclk_id;20 bool hp_jack_gpio_active_low;21 bool add_common_dapm_widgets;22 bool add_common_controls;23 bool add_common_snd_ops;24 bool add_headset_jack;25 bool add_mic_jack;26 bool add_hp_jack;27 bool set_ac97;28};29 30struct tegra_machine {31 struct clk *clk_pll_a_out0;32 struct clk *clk_pll_a;33 struct clk *clk_cdev1;34 unsigned int set_baseclock;35 unsigned int set_mclk;36 const struct tegra_asoc_data *asoc;37 struct gpio_desc *gpiod_ext_mic_en;38 struct gpio_desc *gpiod_int_mic_en;39 struct gpio_desc *gpiod_spkr_en;40 struct gpio_desc *gpiod_mic_det;41 struct gpio_desc *gpiod_ear_sel;42 struct gpio_desc *gpiod_hp_mute;43 struct gpio_desc *gpiod_hp_det;44 struct snd_soc_jack *mic_jack;45 struct snd_soc_jack_gpio *hp_jack_gpio;46};47 48int tegra_asoc_machine_probe(struct platform_device *pdev);49int tegra_asoc_machine_init(struct snd_soc_pcm_runtime *rtd);50 51#endif52