[PATCH] ASoC: cs42l51: add additional ADC volume controls

Rhodes, David David.Rhodes at cirrus.com
Fri Sep 18 18:50:27 CEST 2020


> -----Original Message-----
> From: Guillermo Rodríguez <guille.rodriguez at gmail.com>
> Sent: Friday, September 18, 2020 8:43 AM
> To: alsa-devel at alsa-project.org
> Cc: Guillermo Rodríguez <guille.rodriguez at gmail.com>; Schulman, James
> <James.Schulman at cirrus.com>; Rhodes, David <David.Rhodes at cirrus.com>;
> Liam Girdwood <lgirdwood at gmail.com>; Mark Brown
> <broonie at kernel.org>; Jaroslav Kysela <perex at perex.cz>; Takashi Iwai
> <tiwai at suse.com>
> Subject: [PATCH] ASoC: cs42l51: add additional ADC volume controls
> 
> Add volume controls for:
> - Analog programmable gain amplifier (PGA) (-3 .. +12 dB)
> - ADC attenuator (0 .. -96 dB)
> 
> Signed-off-by: Guillermo Rodríguez <guille.rodriguez at gmail.com>
> ---
>  sound/soc/codecs/cs42l51.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/sound/soc/codecs/cs42l51.c b/sound/soc/codecs/cs42l51.c
> index 764f2ef8f59d..097c4e8d9950 100644
> --- a/sound/soc/codecs/cs42l51.c
> +++ b/sound/soc/codecs/cs42l51.c
> @@ -122,6 +122,9 @@ static const char *chan_mix[] = {
>  	"R L",
>  };
> 
> +static const DECLARE_TLV_DB_SCALE(pga_tlv, -300, 50, 0);
> +static const DECLARE_TLV_DB_SCALE(adc_att_tlv, -9600, 100, 0);
> +
>  static SOC_ENUM_SINGLE_EXT_DECL(cs42l51_chan_mix, chan_mix);
> 
>  static const struct snd_kcontrol_new cs42l51_snd_controls[] = {
> @@ -138,6 +141,12 @@ static const struct snd_kcontrol_new
> cs42l51_snd_controls[] = {
>  			0, 0x19, 0x7F, adc_pcm_tlv),
>  	SOC_DOUBLE_R("ADC Mixer Switch",
>  			CS42L51_ADCA_VOL, CS42L51_ADCB_VOL, 7, 1, 1),
> +	SOC_DOUBLE_R_SX_TLV("ADC Attenuator Volume",
> +			CS42L51_ADCA_ATT, CS42L51_ADCB_ATT,
> +			0, 0xA0, 96, adc_att_tlv),
> +	SOC_DOUBLE_R_SX_TLV("PGA Volume",
> +			CS42L51_ALC_PGA_CTL, CS42L51_ALC_PGB_CTL,
> +			0, 0x1A, 30, pga_tlv),
>  	SOC_SINGLE("Playback Deemphasis Switch", CS42L51_DAC_CTL, 3, 1,
> 0),
>  	SOC_SINGLE("Auto-Mute Switch", CS42L51_DAC_CTL, 2, 1, 0),
>  	SOC_SINGLE("Soft Ramp Switch", CS42L51_DAC_CTL, 1, 1, 0),
> --
> 2.26.0

Acked-by: David Rhodes <David.rhodes at cirrus.com>

Thanks,
David


More information about the Alsa-devel mailing list