diff options
author | Nikita Yushchenko <nikita.yoush@cogentembedded.com> | 2019-11-29 14:27:19 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2019-12-09 19:34:42 +0100 |
commit | 3176f94c467cf89f74120c34a3ddd9aaf8941be2 (patch) | |
tree | c349ff5f21bfeee575ac26df71114d02507d80a3 | |
parent | ASoC: max98090: save and restore SHDN when changing sensitive registers (diff) | |
download | linux-3176f94c467cf89f74120c34a3ddd9aaf8941be2.tar.xz linux-3176f94c467cf89f74120c34a3ddd9aaf8941be2.zip |
ASoC: tlv320aic31xx: Add Volume Soft Stepping control
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>
-rw-r--r-- | sound/soc/codecs/tlv320aic31xx.c | 8 | ||||
-rw-r--r-- | sound/soc/codecs/tlv320aic31xx.h | 3 |
2 files changed, 8 insertions, 3 deletions
diff --git a/sound/soc/codecs/tlv320aic31xx.c b/sound/soc/codecs/tlv320aic31xx.c index d6c462f21370..31daa60695bd 100644 --- a/sound/soc/codecs/tlv320aic31xx.c +++ b/sound/soc/codecs/tlv320aic31xx.c @@ -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[] = { diff --git a/sound/soc/codecs/tlv320aic31xx.h b/sound/soc/codecs/tlv320aic31xx.h index 83a8c7604cc3..0523884cee74 100644 --- a/sound/soc/codecs/tlv320aic31xx.h +++ b/sound/soc/codecs/tlv320aic31xx.h @@ -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) |