* [PATCH] ASoC: tlv320aic3x: add AGC settings
@ 2012-06-29 8:52 Prchal Jiří
0 siblings, 0 replies; 3+ messages in thread
From: Prchal Jiří @ 2012-06-29 8:52 UTC (permalink / raw)
To: alsa-devel, vbarinov, mr.swami.reddy, peter.ujfalusi, Mark Brown,
sudhakar.raj, nsekhar, lrg
This patch adds AGC target level and times settings for TLV320AIC3106.
Signed-off-by: Jiri Prchal <jiri.prchal@aksignal.cz>
---
sound/soc/codecs/tlv320aic3x.c | 25 +++++++++++++++++++++++++
1 files changed, 25 insertions(+), 0 deletions(-)
diff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codecs/tlv320aic3x.c
index 50a7112..5335ebc 100644
--- a/sound/soc/codecs/tlv320aic3x.c
+++ b/sound/soc/codecs/tlv320aic3x.c
@@ -204,6 +204,10 @@ static const char *aic3x_right_hpcom_mux[] =
static const char *aic3x_linein_mode_mux[] = { "single-ended", "differential" };
static const char *aic3x_adc_hpf[] =
{ "Disabled", "0.0045xFs", "0.0125xFs", "0.025xFs" };
+static const char *aic3x_agc_level[] =
+ { "-5.5dB", "-8dB", "-10dB", "-12dB", "-14dB", "-17dB", "-20dB", "-24dB" };
+static const char *aic3x_agc_attack[] = { "8ms", "11ms", "16ms", "20ms" };
+static const char *aic3x_agc_decay[] = { "100ms", "200ms", "400ms", "500ms" };
#define LDAC_ENUM 0
#define RDAC_ENUM 1
@@ -231,6 +235,21 @@ static const struct soc_enum aic3x_enum[] = {
SOC_ENUM_DOUBLE(AIC3X_CODEC_DFILT_CTRL, 6, 4, 4, aic3x_adc_hpf),
};
+#define LAGC_LEV_ENUM 0
+#define RAGC_LEV_ENUM 1
+#define LAGC_ATT_ENUM 2
+#define RAGC_ATT_ENUM 3
+#define LAGC_DEC_ENUM 4
+#define RAGC_DEC_ENUM 5
+static const struct soc_enum aic3x_agc_enum[] = {
+ SOC_ENUM_SINGLE(LAGC_CTRL_A, 4, 8, aic3x_agc_level),
+ SOC_ENUM_SINGLE(RAGC_CTRL_A, 4, 8, aic3x_agc_level),
+ SOC_ENUM_SINGLE(LAGC_CTRL_A, 2, 4, aic3x_agc_attack),
+ SOC_ENUM_SINGLE(RAGC_CTRL_A, 2, 4, aic3x_agc_attack),
+ SOC_ENUM_SINGLE(LAGC_CTRL_A, 0, 4, aic3x_agc_decay),
+ SOC_ENUM_SINGLE(RAGC_CTRL_A, 0, 4, aic3x_agc_decay),
+};
+
/*
* DAC digital volumes. From -63.5 to 0 dB in 0.5 dB steps
*/
@@ -355,6 +374,12 @@ static const struct snd_kcontrol_new aic3x_snd_controls[] = {
* adjust PGA to max value when ADC is on and will never go back.
*/
SOC_DOUBLE_R("AGC Switch", LAGC_CTRL_A, RAGC_CTRL_A, 7, 0x01, 0),
+ SOC_ENUM("Left AGC Target level", aic3x_agc_enum[LAGC_LEV_ENUM]),
+ SOC_ENUM("Right AGC Target level", aic3x_agc_enum[RAGC_LEV_ENUM]),
+ SOC_ENUM("Left AGC Attack time", aic3x_agc_enum[LAGC_ATT_ENUM]),
+ SOC_ENUM("Right AGC Attack time", aic3x_agc_enum[RAGC_ATT_ENUM]),
+ SOC_ENUM("Left AGC Decay time", aic3x_agc_enum[LAGC_DEC_ENUM]),
+ SOC_ENUM("Right AGC Decay time", aic3x_agc_enum[RAGC_DEC_ENUM]),
/* Input */
SOC_DOUBLE_R_TLV("PGA Capture Volume", LADC_VOL, RADC_VOL,
--
1.7.7
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH] ASoC: tlv320aic3x: add AGC settings
@ 2012-07-10 12:35 Jiri Prchal
2012-07-10 13:42 ` Mark Brown
0 siblings, 1 reply; 3+ messages in thread
From: Jiri Prchal @ 2012-07-10 12:35 UTC (permalink / raw)
To: broonie, alsa-devel; +Cc: Jiri Prchal
This patch adds AGC target level and times settings for TLV320AIC3x.
Enums uses small arrays of two channels left and right since it uses different registers.
Signed-off-by: Jiri Prchal <jiri.prchal@aksignal.cz>
---
sound/soc/codecs/tlv320aic3x.c | 25 +++++++++++++++++++++++++
1 files changed, 25 insertions(+), 0 deletions(-)
diff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codecs/tlv320aic3x.c
index 0b17e66..11e195f 100644
--- a/sound/soc/codecs/tlv320aic3x.c
+++ b/sound/soc/codecs/tlv320aic3x.c
@@ -256,6 +256,25 @@ static const struct soc_enum aic3x_enum[] = {
SOC_ENUM_DOUBLE(AIC3X_CODEC_DFILT_CTRL, 6, 4, 4, aic3x_adc_hpf),
};
+static const char *aic3x_agc_level[] =
+ { "-5.5dB", "-8dB", "-10dB", "-12dB", "-14dB", "-17dB", "-20dB", "-24dB" };
+static const struct soc_enum aic3x_agc_level_enum[] = {
+ SOC_ENUM_SINGLE(LAGC_CTRL_A, 4, 8, aic3x_agc_level),
+ SOC_ENUM_SINGLE(RAGC_CTRL_A, 4, 8, aic3x_agc_level),
+};
+
+static const char *aic3x_agc_attack[] = { "8ms", "11ms", "16ms", "20ms" };
+static const struct soc_enum aic3x_agc_attack_enum[] = {
+ SOC_ENUM_SINGLE(LAGC_CTRL_A, 2, 4, aic3x_agc_attack),
+ SOC_ENUM_SINGLE(RAGC_CTRL_A, 2, 4, aic3x_agc_attack),
+};
+
+static const char *aic3x_agc_decay[] = { "100ms", "200ms", "400ms", "500ms" };
+static const struct soc_enum aic3x_agc_decay_enum[] = {
+ SOC_ENUM_SINGLE(LAGC_CTRL_A, 0, 4, aic3x_agc_decay),
+ SOC_ENUM_SINGLE(RAGC_CTRL_A, 0, 4, aic3x_agc_decay),
+};
+
/*
* DAC digital volumes. From -63.5 to 0 dB in 0.5 dB steps
*/
@@ -380,6 +399,12 @@ static const struct snd_kcontrol_new aic3x_snd_controls[] = {
* adjust PGA to max value when ADC is on and will never go back.
*/
SOC_DOUBLE_R("AGC Switch", LAGC_CTRL_A, RAGC_CTRL_A, 7, 0x01, 0),
+ SOC_ENUM("Left AGC Target level", aic3x_agc_level_enum[0]),
+ SOC_ENUM("Right AGC Target level", aic3x_agc_level_enum[1]),
+ SOC_ENUM("Left AGC Attack time", aic3x_agc_attack_enum[0]),
+ SOC_ENUM("Right AGC Attack time", aic3x_agc_attack_enum[1]),
+ SOC_ENUM("Left AGC Decay time", aic3x_agc_decay_enum[0]),
+ SOC_ENUM("Right AGC Decay time", aic3x_agc_decay_enum[1]),
/* De-emphasis */
SOC_DOUBLE("De-emphasis Switch", AIC3X_CODEC_DFILT_CTRL, 2, 0, 0x01, 0),
--
1.7.7
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] ASoC: tlv320aic3x: add AGC settings
2012-07-10 12:35 [PATCH] ASoC: tlv320aic3x: add AGC settings Jiri Prchal
@ 2012-07-10 13:42 ` Mark Brown
0 siblings, 0 replies; 3+ messages in thread
From: Mark Brown @ 2012-07-10 13:42 UTC (permalink / raw)
To: Jiri Prchal; +Cc: alsa-devel
[-- Attachment #1.1: Type: text/plain, Size: 242 bytes --]
On Tue, Jul 10, 2012 at 02:35:11PM +0200, Jiri Prchal wrote:
> This patch adds AGC target level and times settings for TLV320AIC3x.
> Enums uses small arrays of two channels left and right since it uses different registers.
Applied, thanks.
[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
[-- Attachment #2: Type: text/plain, Size: 0 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-07-10 13:42 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-10 12:35 [PATCH] ASoC: tlv320aic3x: add AGC settings Jiri Prchal
2012-07-10 13:42 ` Mark Brown
-- strict thread matches above, loose matches on Subject: below --
2012-06-29 8:52 Prchal Jiří
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.