1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
---|---|
2 | |
3 | #ifndef __TEGRA_ASOC_MACHINE_H__ |
4 | #define __TEGRA_ASOC_MACHINE_H__ |
5 | |
6 | struct clk; |
7 | struct gpio_desc; |
8 | struct snd_soc_card; |
9 | struct snd_soc_jack; |
10 | struct platform_device; |
11 | struct snd_soc_jack_gpio; |
12 | struct snd_soc_pcm_runtime; |
13 | |
14 | struct 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 | |
30 | struct 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 | |
48 | int tegra_asoc_machine_probe(struct platform_device *pdev); |
49 | int tegra_asoc_machine_init(struct snd_soc_pcm_runtime *rtd); |
50 | |
51 | #endif |
52 |