[alsa-devel] [PATCH] ASoC: cs4265: Add a MIC pre. switch
Matt Flax
flatmax at flatmax.org
Fri Sep 7 12:18:05 CEST 2018
On 07/09/18 18:26, Charles Keepax wrote:
> On Fri, Sep 07, 2018 at 01:27:29PM +1000, Matt Flax wrote:
>> This patch adds a MIC preamp enable switch as a SOC_SINGLE.
>>
>> Signed-off-by: Matt Flax <flatmax at flatmax.org>
>> ---
>> sound/soc/codecs/cs4265.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/sound/soc/codecs/cs4265.c b/sound/soc/codecs/cs4265.c
>> index d9eebf6a..03476f93 100644
>> --- a/sound/soc/codecs/cs4265.c
>> +++ b/sound/soc/codecs/cs4265.c
>> @@ -161,6 +161,7 @@ static const struct snd_kcontrol_new cs4265_snd_controls[] = {
>> SOC_SINGLE("MMTLR Data Switch", CS4265_SPDIF_CTL2, 0, 1, 0),
>> SOC_ENUM("Mono Channel Select", spdif_mono_select_enum),
>> SND_SOC_BYTES("C Data Buffer", CS4265_C_DATA_BUFF, 24),
>> + SOC_SINGLE("MIC Preamp", CS4265_PWRCTL, 3, 1, 1),
>> };
> Is this the correct way to control this bit? There is already
> a SND_SOC_DAPM_PGA widget called "Pre-amp MIC" that controls
> the bit, it looks like this widget is not connected to the
> rest of the DAPM graph. Should we just be hooking that widget
> up instead? The datasheet isn't abundantly clear but it looks
> like the bit needs to be set whenever the mic is in use:
>
> "The microphone preamplifier block will enter a low-power state
> whenever this bit is set."
>
> Which would really make DAPM a better fit, unless there are valid
> use-cases for using the mic with the preamp powered down?
>
>
Agreed, when you switch to the MIC rather then LINEIN it should be
turned on.
This is the DAPM_MUX :
https://github.com/torvalds/linux/blob/master/sound/soc/codecs/cs4265.c#L178
This is the ENUM_SINGLE :
https://github.com/torvalds/linux/blob/master/sound/soc/codecs/cs4265.c#L98
What is the best way to do this ?
Matt
More information about the Alsa-devel
mailing list