Lines Matching +full:adc +full:- +full:dev
1 // SPDX-License-Identifier: GPL-2.0-or-later
6 * Copyright 2016 Chen-Yu Tsai <wens@csie.org>
17 #include <sound/soc-dapm.h>
20 #include "sun8i-adda-pr-regmap.h"
155 /* ADC mixer controls */
179 /* ADC mixer controls */
197 -450, 150, 0);
204 /* Mixer pre-gain */
214 /* ADC */
215 SOC_SINGLE_TLV("ADC Gain Capture Volume", SUN8I_ADDA_ADC_AP_EN,
221 /* ADC */
222 SND_SOC_DAPM_ADC("Left ADC", NULL, SUN8I_ADDA_ADC_AP_EN,
224 SND_SOC_DAPM_ADC("Right ADC", NULL, SUN8I_ADDA_ADC_AP_EN,
255 SND_SOC_DAPM_MIXER("Left ADC Mixer", SUN8I_ADDA_ADC_AP_EN,
259 SND_SOC_DAPM_MIXER("Right ADC Mixer", SUN8I_ADDA_ADC_AP_EN,
274 SND_SOC_DAPM_MIXER("Left ADC Mixer", SUN8I_ADDA_ADC_AP_EN,
278 SND_SOC_DAPM_MIXER("Right ADC Mixer", SUN8I_ADDA_ADC_AP_EN,
300 /* Left ADC Mixer Routes */
301 { "Left ADC Mixer", "Mixer Capture Switch", "Left Mixer" },
302 { "Left ADC Mixer", "Mixer Reversed Capture Switch", "Right Mixer" },
303 { "Left ADC Mixer", "Mic1 Capture Switch", "Mic1 Amplifier" },
305 /* Right ADC Mixer Routes */
306 { "Right ADC Mixer", "Mixer Capture Switch", "Right Mixer" },
307 { "Right ADC Mixer", "Mixer Reversed Capture Switch", "Left Mixer" },
308 { "Right ADC Mixer", "Mic1 Capture Switch", "Mic1 Amplifier" },
310 /* ADC Routes */
311 { "Left ADC", NULL, "Left ADC Mixer" },
312 { "Right ADC", NULL, "Right ADC Mixer" },
316 static const DECLARE_TLV_DB_SCALE(sun8i_codec_hp_vol_scale, -6300, 100, 1);
346 struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); in sun8i_headphone_amp_event()
394 struct device *dev = cmpnt->dev; in sun8i_codec_add_headphone() local
401 dev_err(dev, "Failed to add Headphone controls: %d\n", ret); in sun8i_codec_add_headphone()
408 dev_err(dev, "Failed to add Headphone DAPM widgets: %d\n", ret); in sun8i_codec_add_headphone()
415 dev_err(dev, "Failed to add Headphone DAPM routes: %d\n", ret); in sun8i_codec_add_headphone()
432 struct device *dev = cmpnt->dev; in sun8i_codec_add_mbias() local
438 dev_err(dev, "Failed to add MBIAS DAPM widgets: %d\n", ret); in sun8i_codec_add_mbias()
453 struct device *dev = cmpnt->dev; in sun8i_codec_add_hmic() local
459 dev_err(dev, "Failed to add Mic3 DAPM widgets: %d\n", ret); in sun8i_codec_add_hmic()
466 /* Mixer pre-gain */
482 { "Left ADC Mixer", "Line In Capture Switch", "LINEIN" },
484 { "Right ADC Mixer", "Line In Capture Switch", "LINEIN" },
490 struct device *dev = cmpnt->dev; in sun8i_codec_add_linein() local
497 dev_err(dev, "Failed to add Line In controls: %d\n", ret); in sun8i_codec_add_linein()
504 dev_err(dev, "Failed to add Line In DAPM widgets: %d\n", ret); in sun8i_codec_add_linein()
511 dev_err(dev, "Failed to add Line In DAPM routes: %d\n", ret); in sun8i_codec_add_linein()
522 2, 31, TLV_DB_SCALE_ITEM(-4350, 150, 0),
571 struct device *dev = cmpnt->dev; in sun8i_codec_add_lineout() local
578 dev_err(dev, "Failed to add Line Out controls: %d\n", ret); in sun8i_codec_add_lineout()
585 dev_err(dev, "Failed to add Line Out DAPM widgets: %d\n", ret); in sun8i_codec_add_lineout()
592 dev_err(dev, "Failed to add Line Out DAPM routes: %d\n", ret); in sun8i_codec_add_lineout()
601 /* Mixer pre-gain */
628 { "Left ADC Mixer", "Mic2 Capture Switch", "Mic2 Amplifier" },
630 { "Right ADC Mixer", "Mic2 Capture Switch", "Mic2 Amplifier" },
636 struct device *dev = cmpnt->dev; in sun8i_codec_add_mic2() local
643 dev_err(dev, "Failed to add MIC2 controls: %d\n", ret); in sun8i_codec_add_mic2()
650 dev_err(dev, "Failed to add MIC2 DAPM widgets: %d\n", ret); in sun8i_codec_add_mic2()
657 dev_err(dev, "Failed to add MIC2 DAPM routes: %d\n", ret); in sun8i_codec_add_mic2()
692 struct device *dev = cmpnt->dev; in sun8i_codec_analog_add_mixer() local
695 if (!quirks->has_mic2 && !quirks->has_linein) { in sun8i_codec_analog_add_mixer()
706 dev_err(dev, "Failed to add V3s Mixer DAPM widgets: %d\n", ret); in sun8i_codec_analog_add_mixer()
715 dev_err(dev, "Failed to add Mixer DAPM widgets: %d\n", ret); in sun8i_codec_analog_add_mixer()
723 dev_err(dev, "Failed to add Mixer DAPM routes: %d\n", ret); in sun8i_codec_analog_add_mixer()
737 struct device *dev = cmpnt->dev; in sun8i_codec_analog_cmpnt_probe() local
746 quirks = of_device_get_match_data(dev); in sun8i_codec_analog_cmpnt_probe()
753 if (quirks->has_headphone) { in sun8i_codec_analog_cmpnt_probe()
759 if (quirks->has_hmic) { in sun8i_codec_analog_cmpnt_probe()
765 if (quirks->has_linein) { in sun8i_codec_analog_cmpnt_probe()
771 if (quirks->has_lineout) { in sun8i_codec_analog_cmpnt_probe()
777 if (quirks->has_mbias) { in sun8i_codec_analog_cmpnt_probe()
783 if (quirks->has_mic2) { in sun8i_codec_analog_cmpnt_probe()
804 .compatible = "allwinner,sun8i-a23-codec-analog",
808 .compatible = "allwinner,sun8i-h3-codec-analog",
812 .compatible = "allwinner,sun8i-v3s-codec-analog",
826 dev_err(&pdev->dev, "Failed to map the registers\n"); in sun8i_codec_analog_probe()
830 regmap = sun8i_adda_pr_regmap_init(&pdev->dev, base); in sun8i_codec_analog_probe()
832 dev_err(&pdev->dev, "Failed to create regmap\n"); in sun8i_codec_analog_probe()
836 return devm_snd_soc_register_component(&pdev->dev, in sun8i_codec_analog_probe()
843 .name = "sun8i-codec-analog",
851 MODULE_AUTHOR("Chen-Yu Tsai <wens@csie.org>");
853 MODULE_ALIAS("platform:sun8i-codec-analog");