ASoC: tlv320aic31xx: Add Volume Soft Stepping control
authorNikita Yushchenko <nikita.yoush@cogentembedded.com>
Fri, 29 Nov 2019 13:27:19 +0000 (16:27 +0300)
committerMark Brown <broonie@kernel.org>
Mon, 9 Dec 2019 18:34:42 +0000 (18:34 +0000)
Chip supports soft stepping of volume changes and it is enabled by
default.

This patch adds a control for it, so it could be either made slower
(two sample periods per step instead of one), or disabled.

Signed-off-by: Nikita Yushchenko <nikita.yoush@cogentembedded.com>
Link: https://lore.kernel.org/r/20191129132719.11603-1-nikita.yoush@cogentembedded.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/tlv320aic31xx.c
sound/soc/codecs/tlv320aic31xx.h

index d6c462f..31daa60 100644 (file)
@@ -275,6 +275,12 @@ static const char * const hp_rampup_step_text[] = {
 static SOC_ENUM_SINGLE_DECL(hp_rampup_step_enum, AIC31XX_HPPOP, 1,
        hp_rampup_step_text);
 
+static const char * const vol_soft_step_mode_text[] = {
+       "fast", "slow", "disabled" };
+
+static SOC_ENUM_SINGLE_DECL(vol_soft_step_mode_enum, AIC31XX_DACSETUP, 0,
+       vol_soft_step_mode_text);
+
 static const DECLARE_TLV_DB_SCALE(dac_vol_tlv, -6350, 50, 0);
 static const DECLARE_TLV_DB_SCALE(adc_fgain_tlv, 0, 10, 0);
 static const DECLARE_TLV_DB_SCALE(adc_cgain_tlv, -2000, 50, 0);
@@ -306,6 +312,8 @@ static const struct snd_kcontrol_new common31xx_snd_controls[] = {
         */
        SOC_ENUM("HP Output Driver Power-On time", hp_poweron_time_enum),
        SOC_ENUM("HP Output Driver Ramp-up step", hp_rampup_step_enum),
+
+       SOC_ENUM("Volume Soft Stepping", vol_soft_step_mode_enum),
 };
 
 static const struct snd_kcontrol_new aic31xx_snd_controls[] = {
index 83a8c76..0523884 100644 (file)
@@ -218,9 +218,6 @@ struct aic31xx_pdata {
 #define AIC31XX_GPIO1_ADC_MOD_CLK      0x10
 #define AIC31XX_GPIO1_SDOUT            0x11
 
-/* AIC31XX_DACSETUP */
-#define AIC31XX_SOFTSTEP_MASK          GENMASK(1, 0)
-
 /* AIC31XX_DACMUTE */
 #define AIC31XX_DACMUTE_MASK           GENMASK(3, 2)