aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>2022-10-05 12:30:39 +0100
committerSrinivas Kandagatla <srinivas.kandagatla@linaro.org>2022-10-06 12:25:40 +0100
commit46e48e42f67ad5c375081f665ea25c868439faeb (patch)
treee1d5b37e711dd26bbbe628c87e5ffbeeeb9cf46f
parente9100080024dcedb3545bb4a0c3a0c4909f9f285 (diff)
ASoC: codecs: tx-macro: add HPF filter
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
-rw-r--r--sound/soc/codecs/lpass-tx-macro.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/sound/soc/codecs/lpass-tx-macro.c b/sound/soc/codecs/lpass-tx-macro.c
index 7b9f93d2c4ff3..11715a541b29a 100644
--- a/sound/soc/codecs/lpass-tx-macro.c
+++ b/sound/soc/codecs/lpass-tx-macro.c
@@ -1195,6 +1195,28 @@ static struct snd_soc_dai_driver tx_macro_dai[] = {
},
};
+/* Cutoff frequency for high pass filter */
+static const char * const cf_text[] = {
+ "CF_NEG_3DB_4HZ", "CF_NEG_3DB_75HZ", "CF_NEG_3DB_150HZ"
+};
+
+static SOC_ENUM_SINGLE_DECL(cf_dec0_enum, CDC_TX0_TX_PATH_CFG0, 5,
+ cf_text);
+static SOC_ENUM_SINGLE_DECL(cf_dec1_enum, CDC_TX1_TX_PATH_CFG0, 5,
+ cf_text);
+static SOC_ENUM_SINGLE_DECL(cf_dec2_enum, CDC_TX2_TX_PATH_CFG0, 5,
+ cf_text);
+static SOC_ENUM_SINGLE_DECL(cf_dec3_enum, CDC_TX3_TX_PATH_CFG0, 5,
+ cf_text);
+static SOC_ENUM_SINGLE_DECL(cf_dec4_enum, CDC_TX4_TX_PATH_CFG0, 5,
+ cf_text);
+static SOC_ENUM_SINGLE_DECL(cf_dec5_enum, CDC_TX5_TX_PATH_CFG0, 5,
+ cf_text);
+static SOC_ENUM_SINGLE_DECL(cf_dec6_enum, CDC_TX6_TX_PATH_CFG0, 5,
+ cf_text);
+static SOC_ENUM_SINGLE_DECL(cf_dec7_enum, CDC_TX7_TX_PATH_CFG0, 5,
+ cf_text);
+
static const char * const adc_mux_text[] = {
"MSM_DMIC", "SWR_MIC", "ANC_FB_TUNE1"
};
@@ -1666,6 +1688,21 @@ static const struct snd_kcontrol_new tx_macro_snd_controls[] = {
SOC_ENUM_EXT("DEC7 MODE", dec_mode_mux_enum[7],
tx_macro_dec_mode_get, tx_macro_dec_mode_put),
+ SOC_ENUM("TX0 HPF cut off", cf_dec0_enum),
+
+ SOC_ENUM("TX1 HPF cut off", cf_dec1_enum),
+
+ SOC_ENUM("TX2 HPF cut off", cf_dec2_enum),
+
+ SOC_ENUM("TX3 HPF cut off", cf_dec3_enum),
+
+ SOC_ENUM("TX4 HPF cut off", cf_dec4_enum),
+
+ SOC_ENUM("TX5 HPF cut off", cf_dec5_enum),
+
+ SOC_ENUM("TX6 HPF cut off", cf_dec6_enum),
+
+ SOC_ENUM("TX7 HPF cut off", cf_dec7_enum),
SOC_SINGLE_EXT("DEC0_BCS Switch", SND_SOC_NOPM, 0, 1, 0,
tx_macro_get_bcs, tx_macro_set_bcs),
};