• Home
  • Raw
  • Download

Lines Matching +full:mic +full:- +full:int

1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * spitz.c -- SoC audio for Sharp SL-Cxx00 models Spitz, Borzoi and Akita
22 #include <asm/mach-types.h>
25 #include "pxa2xx-i2s.h"
35 /* audio clock in Hz - rounded from 12.235MHz */
38 static int spitz_jack_func;
39 static int spitz_spk_func;
40 static int spitz_mic_gpio;
54 /* enable and unmute hp jack, disable mic bias */ in spitz_ext_control()
56 snd_soc_dapm_disable_pin_unlocked(dapm, "Mic Jack"); in spitz_ext_control()
63 /* enable mic jack and bias, mute hp */ in spitz_ext_control()
67 snd_soc_dapm_enable_pin_unlocked(dapm, "Mic Jack"); in spitz_ext_control()
72 /* enable line jack, disable mic bias and mute hp */ in spitz_ext_control()
75 snd_soc_dapm_disable_pin_unlocked(dapm, "Mic Jack"); in spitz_ext_control()
81 /* enable and unmute headset jack enable mic bias, mute L hp */ in spitz_ext_control()
83 snd_soc_dapm_enable_pin_unlocked(dapm, "Mic Jack"); in spitz_ext_control()
94 snd_soc_dapm_disable_pin_unlocked(dapm, "Mic Jack"); in spitz_ext_control()
106 static int spitz_startup(struct snd_pcm_substream *substream) in spitz_startup()
111 spitz_ext_control(&rtd->card->dapm); in spitz_startup()
116 static int spitz_hw_params(struct snd_pcm_substream *substream, in spitz_hw_params()
122 unsigned int clk = 0; in spitz_hw_params()
123 int ret = 0; in spitz_hw_params()
159 static int spitz_get_jack(struct snd_kcontrol *kcontrol, in spitz_get_jack()
162 ucontrol->value.enumerated.item[0] = spitz_jack_func; in spitz_get_jack()
166 static int spitz_set_jack(struct snd_kcontrol *kcontrol, in spitz_set_jack()
171 if (spitz_jack_func == ucontrol->value.enumerated.item[0]) in spitz_set_jack()
174 spitz_jack_func = ucontrol->value.enumerated.item[0]; in spitz_set_jack()
175 spitz_ext_control(&card->dapm); in spitz_set_jack()
179 static int spitz_get_spk(struct snd_kcontrol *kcontrol, in spitz_get_spk()
182 ucontrol->value.enumerated.item[0] = spitz_spk_func; in spitz_get_spk()
186 static int spitz_set_spk(struct snd_kcontrol *kcontrol, in spitz_set_spk()
191 if (spitz_spk_func == ucontrol->value.enumerated.item[0]) in spitz_set_spk()
194 spitz_spk_func = ucontrol->value.enumerated.item[0]; in spitz_set_spk()
195 spitz_ext_control(&card->dapm); in spitz_set_spk()
199 static int spitz_mic_bias(struct snd_soc_dapm_widget *w, in spitz_mic_bias()
200 struct snd_kcontrol *k, int event) in spitz_mic_bias()
209 SND_SOC_DAPM_MIC("Mic Jack", spitz_mic_bias),
213 /* headset is a mic and mono headphone */
231 /* mic is connected to input 1 - with bias */
232 {"LINPUT1", NULL, "Mic Bias"},
233 {"Mic Bias", NULL, "Mic Jack"},
235 /* line is connected to input 1 - no bias */
239 static const char * const jack_function[] = {"Headphone", "Mic", "Line",
254 /* spitz digital audio interface glue - connects codec <--> CPU */
256 DAILINK_COMP_ARRAY(COMP_CPU("pxa2xx-i2s")),
257 DAILINK_COMP_ARRAY(COMP_CODEC("wm8750.0-001b", "wm8750-hifi")),
258 DAILINK_COMP_ARRAY(COMP_PLATFORM("pxa-pcm-audio")));
285 static int spitz_probe(struct platform_device *pdev) in spitz_probe()
288 int ret; in spitz_probe()
295 ret = gpio_request(spitz_mic_gpio, "MIC GPIO"); in spitz_probe()
303 card->dev = &pdev->dev; in spitz_probe()
305 ret = devm_snd_soc_register_card(&pdev->dev, card); in spitz_probe()
307 dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n", in spitz_probe()
320 static int spitz_remove(struct platform_device *pdev) in spitz_remove()
328 .name = "spitz-audio",
340 MODULE_ALIAS("platform:spitz-audio");