[alsa-devel] [PATCH v4] ASoC: tlv320aic3x: Add support for high power analog output

Benoît Thébaudeau benoit.thebaudeau.dev at gmail.com
Sat May 11 21:10:32 CEST 2019


Dear Saravanan Sekar,

On Sat, May 11, 2019 at 5:13 PM Saravanan Sekar <sravanhome at gmail.com> wrote:
>
> Add support to output level control for the analog high power output
> drivers HPOUT and HPCOM.
>
> Signed-off-by: Saravanan Sekar <sravanhome at gmail.com>
> ---
>
> Notes:
>     Notes:
>         Changes in V4:
>         -Added separate mono playback volume control
>         -grouped volume controls with corresponding switch
>
>         Changes in V3:
>         -Fixed compilation error
>
>         Changes in V2:
>         - Removed power control as it is handled by DAPM
>         - Added level control for left channel
>
>  sound/soc/codecs/tlv320aic3x.c | 14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codecs/tlv320aic3x.c
> index 516d17cb2182..599e4ed3850b 100644
> --- a/sound/soc/codecs/tlv320aic3x.c
> +++ b/sound/soc/codecs/tlv320aic3x.c
> @@ -324,6 +324,9 @@ static DECLARE_TLV_DB_SCALE(adc_tlv, 0, 50, 0);
>   */
>  static DECLARE_TLV_DB_SCALE(output_stage_tlv, -5900, 50, 1);
>
> +/* Output volumes. From 0 to 9 dB in 1 dB steps */
> +static const DECLARE_TLV_DB_SCALE(out_tlv, 0, 100, 0);
> +
>  static const struct snd_kcontrol_new aic3x_snd_controls[] = {
>         /* Output */
>         SOC_DOUBLE_R_TLV("PCM Playback Volume",
> @@ -386,11 +389,17 @@ static const struct snd_kcontrol_new aic3x_snd_controls[] = {
>                          DACL1_2_HPLCOM_VOL, DACR1_2_HPRCOM_VOL,
>                          0, 118, 1, output_stage_tlv),
>
> -       /* Output pin mute controls */
> +       /* Output pin controls */
> +       SOC_DOUBLE_R_TLV("Line Playback Volume", LLOPM_CTRL, RLOPM_CTRL, 4,
> +                        9, 0, out_tlv),
>         SOC_DOUBLE_R("Line Playback Switch", LLOPM_CTRL, RLOPM_CTRL, 3,
>                      0x01, 0),
> +       SOC_DOUBLE_R_TLV("HP Playback Volume", HPLOUT_CTRL, HPROUT_CTRL, 4,
> +                        9, 0, out_tlv),
>         SOC_DOUBLE_R("HP Playback Switch", HPLOUT_CTRL, HPROUT_CTRL, 3,
>                      0x01, 0),
> +       SOC_DOUBLE_R_TLV("HPCOM Playback Volume", HPLCOM_CTRL, HPRCOM_CTRL,
> +                        4, 9, 0, out_tlv),
>         SOC_DOUBLE_R("HPCOM Playback Switch", HPLCOM_CTRL, HPRCOM_CTRL, 3,
>                      0x01, 0),
>
> @@ -472,6 +481,9 @@ static const struct snd_kcontrol_new aic3x_mono_controls[] = {
>                          0, 118, 1, output_stage_tlv),
>
>         SOC_SINGLE("Mono Playback Switch", MONOLOPM_CTRL, 3, 0x01, 0),
> +       SOC_SINGLE_TLV("Mono Playback Volume", MONOLOPM_CTRL, 4, 9, 0,
> +                       out_tlv),
> +
>  };
>
>  /*
> --
> 2.17.1
>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> https://mailman.alsa-project.org/mailman/listinfo/alsa-devel

Reviewed-by: Benoît Thébaudeau <benoit.thebaudeau.dev at gmail.com>

Best regards,
Benoît


More information about the Alsa-devel mailing list