Re: [PATCH 12/25] ASoC: meson: t9015: add support for A1 SoC family

From: Jan Dakinevich
Date: Sun Mar 17 2024 - 12:29:05 EST




On 3/15/24 16:36, Mark Brown wrote:
> On Fri, Mar 15, 2024 at 02:21:48AM +0300, Jan Dakinevich wrote:
>
>> +static const char * const a1_adc_mic_bias_level_txt[] = { "2.0V", "2.1V",
>> + "2.3V", "2.5V", "2.8V" };
>> +static const unsigned int a1_adc_mic_bias_level_values[] = { 0, 1, 2, 3, 7 };
>
> Why would this be varied at runtime rather than being something fixed
> when the system is designed?
>
>> +static const char * const a1_adc_pga_txt[] = { "None", "Differential",
>> + "Positive", "Negative" };
>> +static const unsigned int a1_adc_pga_right_values[] = { 0, PGAR_DIFF,
>> + PGAR_POSITIVE, PGAR_NEGATIVE };
>> +static const unsigned int a1_adc_pga_left_values[] = { 0, PGAL_DIFF,
>> + PGAL_POSITIVE, PGAL_NEGATIVE };
>
> Similarly here.
>

Both mic bias and ADC's input mode depends on schematics and should be
configurable. What is the better way to give access to these parameters?
Device tree?

>> + SOC_SINGLE("ADC Mic Bias Switch", LINEIN_CFG, MICBIAS_EN, 1, 0),
>> + SOC_ENUM("ADC Mic Bias Level", a1_adc_mic_bias_level),
>
> Why would micbias be user controlled rather than a DAPM widget as
> normal?

Yes, I could use SND_SOC_DAPM_SUPPLY, but it supports only raw values,
and doesn't supports enums. Here, I want to use enum to restrict
possible values, because only these values mentioned in the
documentation that I have.

--
Best regards
Jan Dakinevich