From 2fe8584c3f11f14c6234e19f612ecffe79fa97e8 Mon Sep 17 00:00:00 2001 From: Xing Zheng Date: Mon, 31 Mar 2025 10:39:19 +0800 Subject: [PATCH] ASoC: codecs: rk730: add support control "ADC SDO SEL TX" for capturing route The 'ADCL ADCR DACL DACR' need to use 2ch/32bit format, for example: arecord -Dhw:0,0 -c 2 -r 48000 -fs32_le -t raw /tmp/record_2ch32bit.pcm Signed-off-by: Xing Zheng Change-Id: I93cba43c4e18eee4d82819c6036667d0a427f0e5 --- sound/soc/codecs/rk730.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sound/soc/codecs/rk730.c b/sound/soc/codecs/rk730.c index f21d15bb680c..a1423bd196b9 100644 --- a/sound/soc/codecs/rk730.c +++ b/sound/soc/codecs/rk730.c @@ -143,6 +143,14 @@ static const struct snd_kcontrol_new rk730_out2_switch = static SOC_ENUM_SINGLE_DECL(ana_ldo_volt_enum, RK730_LDO, 4, ana_ldo_volt_text); +static const char * const adc_sdo_sel_tx_text[] = { + "ADCL ADCR", "ADCL ADCR DACL DACR", "ADCL DACL", "ADCL DACR", + "ADCR DACL", "ADCR DACR", "DACL DACR", +}; + +static SOC_ENUM_SINGLE_DECL(adc_sdo_sel_tx_enum, RK730_DI2S_TXCR2, + 5, adc_sdo_sel_tx_text); + static int rk730_pll_event(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event) { @@ -477,6 +485,7 @@ static const struct snd_kcontrol_new rk730_snd_controls[] = { SOC_ENUM("Mic Bias Volt", micbias_volt_enum), SOC_ENUM("DAC HPF Center Freq", dac_hfp_center_freq_enum), SOC_ENUM("ADC CAPACITY TRIM", adc_capacity_trim_enum), + SOC_ENUM("ADC SDO SEL TX", adc_sdo_sel_tx_enum), SOC_SINGLE("ADC Volume Bypass Switch", RK730_DTOP_VUCTL, 7, 1, 0), SOC_SINGLE("DAC Volume Bypass Switch", RK730_DTOP_VUCTL, 6, 1, 0), SOC_SINGLE("ADC Fade Switch", RK730_DTOP_VUCTL, 5, 1, 0),