Lines Matching +full:mic +full:- +full:in +full:- +full:differential

1 // SPDX-License-Identifier: GPL-2.0-or-later
4 * found in Allwinner's A31s, A23, A33 and H3 SoCs.
6 * Copyright 2016 Chen-Yu Tsai <wens@csie.org>
18 #include <sound/soc-dapm.h>
21 #include "sun8i-adda-pr-regmap.h"
126 SOC_DAPM_DOUBLE_R("Line In Playback Switch",
166 SOC_DAPM_DOUBLE_R("Line In Capture Switch",
198 -450, 150, 0);
205 /* Mixer pre-gain */
242 /* Mic input path */
317 static const DECLARE_TLV_DB_SCALE(sun8i_codec_hp_vol_scale, -6300, 100, 1);
347 struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); in sun8i_headphone_amp_event()
395 struct device *dev = cmpnt->dev; in sun8i_codec_add_headphone()
433 struct device *dev = cmpnt->dev; in sun8i_codec_add_mbias()
454 struct device *dev = cmpnt->dev; in sun8i_codec_add_hmic()
465 /* line in specific controls, widgets and rines */
467 /* Mixer pre-gain */
468 SOC_SINGLE_TLV("Line In Playback Volume", SUN8I_ADDA_LINEIN_GCTRL,
479 { "Left Mixer", "Line In Playback Switch", "LINEIN" },
481 { "Right Mixer", "Line In Playback Switch", "LINEIN" },
483 { "Left ADC Mixer", "Line In Capture Switch", "LINEIN" },
485 { "Right ADC Mixer", "Line In Capture Switch", "LINEIN" },
491 struct device *dev = cmpnt->dev; in sun8i_codec_add_linein()
498 dev_err(dev, "Failed to add Line In controls: %d\n", ret); in sun8i_codec_add_linein()
505 dev_err(dev, "Failed to add Line In DAPM widgets: %d\n", ret); in sun8i_codec_add_linein()
512 dev_err(dev, "Failed to add Line In DAPM routes: %d\n", ret); in sun8i_codec_add_linein()
523 2, 31, TLV_DB_SCALE_ITEM(-4350, 150, 0),
537 "Stereo", "Mono Differential",
563 { "Line Out Source Playback Route", "Mono Differential", "Left Mixer" },
564 { "Line Out Source Playback Route", "Mono Differential", "Right Mixer" },
572 struct device *dev = cmpnt->dev; in sun8i_codec_add_lineout()
602 /* Mixer pre-gain */
617 /* Mic input path */
637 struct device *dev = cmpnt->dev; in sun8i_codec_add_mic2()
693 struct device *dev = cmpnt->dev; in sun8i_codec_analog_add_mixer()
696 if (!quirks->has_mic2 && !quirks->has_linein) { in sun8i_codec_analog_add_mixer()
699 * without MIC2 and Line In, for SoCs without these. in sun8i_codec_analog_add_mixer()
738 struct device *dev = cmpnt->dev; in sun8i_codec_analog_cmpnt_probe()
754 if (quirks->has_headphone) { in sun8i_codec_analog_cmpnt_probe()
760 if (quirks->has_hmic) { in sun8i_codec_analog_cmpnt_probe()
766 if (quirks->has_linein) { in sun8i_codec_analog_cmpnt_probe()
772 if (quirks->has_lineout) { in sun8i_codec_analog_cmpnt_probe()
778 if (quirks->has_mbias) { in sun8i_codec_analog_cmpnt_probe()
784 if (quirks->has_mic2) { in sun8i_codec_analog_cmpnt_probe()
805 .compatible = "allwinner,sun8i-a23-codec-analog",
809 .compatible = "allwinner,sun8i-h3-codec-analog",
813 .compatible = "allwinner,sun8i-v3s-codec-analog",
827 dev_err(&pdev->dev, "Failed to map the registers\n"); in sun8i_codec_analog_probe()
831 regmap = sun8i_adda_pr_regmap_init(&pdev->dev, base); in sun8i_codec_analog_probe()
833 dev_err(&pdev->dev, "Failed to create regmap\n"); in sun8i_codec_analog_probe()
837 return devm_snd_soc_register_component(&pdev->dev, in sun8i_codec_analog_probe()
844 .name = "sun8i-codec-analog",
852 MODULE_AUTHOR("Chen-Yu Tsai <wens@csie.org>");
854 MODULE_ALIAS("platform:sun8i-codec-analog");