Lines Matching +full:spk +full:- +full:shutdown

1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * corgi.c -- SoC audio for Corgi
23 #include <asm/mach-types.h>
24 #include <linux/platform_data/asoc-pxa.h>
27 #include "pxa2xx-i2s.h"
37 /* audio clock in Hz - rounded from 12.235MHz */
89 snd_soc_dapm_enable_pin_unlocked(dapm, "Ext Spk"); in corgi_ext_control()
91 snd_soc_dapm_disable_pin_unlocked(dapm, "Ext Spk"); in corgi_ext_control()
104 corgi_ext_control(&rtd->card->dapm); in corgi_startup()
109 /* we need to unmute the HP at shutdown as the mute burns power on corgi */
158 .shutdown = corgi_shutdown,
164 ucontrol->value.enumerated.item[0] = corgi_jack_func; in corgi_get_jack()
173 if (corgi_jack_func == ucontrol->value.enumerated.item[0]) in corgi_set_jack()
176 corgi_jack_func = ucontrol->value.enumerated.item[0]; in corgi_set_jack()
177 corgi_ext_control(&card->dapm); in corgi_set_jack()
184 ucontrol->value.enumerated.item[0] = corgi_spk_func; in corgi_get_spk()
193 if (corgi_spk_func == ucontrol->value.enumerated.item[0]) in corgi_set_spk()
196 corgi_spk_func = ucontrol->value.enumerated.item[0]; in corgi_set_spk()
197 corgi_ext_control(&card->dapm); in corgi_set_spk()
219 SND_SOC_DAPM_SPK("Ext Spk", corgi_amp_event),
227 /* headset Jack - in = micin, out = LHPOUT*/
235 {"Ext Spk", NULL, "ROUT"},
236 {"Ext Spk", NULL, "LOUT"},
260 /* corgi digital audio interface glue - connects codec <--> CPU */
262 DAILINK_COMP_ARRAY(COMP_CPU("pxa2xx-i2s")),
263 DAILINK_COMP_ARRAY(COMP_CODEC("wm8731.0-001b", "wm8731-hifi")),
264 DAILINK_COMP_ARRAY(COMP_PLATFORM("pxa-pcm-audio")));
296 card->dev = &pdev->dev; in corgi_probe()
298 gpiod_mute_l = devm_gpiod_get(&pdev->dev, "mute-l", GPIOD_OUT_HIGH); in corgi_probe()
301 gpiod_mute_r = devm_gpiod_get(&pdev->dev, "mute-r", GPIOD_OUT_HIGH); in corgi_probe()
304 gpiod_apm_on = devm_gpiod_get(&pdev->dev, "apm-on", GPIOD_OUT_LOW); in corgi_probe()
307 gpiod_mic_bias = devm_gpiod_get(&pdev->dev, "mic-bias", GPIOD_OUT_LOW); in corgi_probe()
311 ret = devm_snd_soc_register_card(&pdev->dev, card); in corgi_probe()
313 dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n", in corgi_probe()
320 .name = "corgi-audio",
332 MODULE_ALIAS("platform:corgi-audio");