Hello Jonathan On 12/1/23 21:08, Jonathan Cameron wrote:
On Mon, 27 Nov 2023 22:17:33 +0300 George Stark <gnstark@xxxxxxxxxxxxxxxxx> wrote:Hello Jonathan Thanks for the review. On 11/25/23 20:25, Jonathan Cameron wrote:On Wed, 22 Nov 2023 10:47:41 +0300 George Stark <gnstark@xxxxxxxxxxxxxxxxx> wrote:According to Amlogic custom kernels ADC of axg SoC family has vref_select and requires this setting to work nominally and thus needs a separate config. Signed-off-by: George Stark <gnstark@xxxxxxxxxxxxxxxxx> Reviewed-by: Neil Armstrong <neil.armstrong@xxxxxxxxxx>Is this a fix? If so, please provide a fixes tag.Actually yes, these changes could be done in the patch that introduced new configuration parameters.Or is it aligning with the vendor kernels and we don't know if it's strictly necessary or not?I do know it's necessary if we want kernel driver to be independent from ADC initialization in vendor u-boot code. I have Amlogic a113x device (axg family) and can provide test results w and w/o this patch.Definitely best to not rely on firmware. So send a Fixes tag for this and I'll apply it as a fix (you get to figure out which patch it fixed :)
The patch is ready :) https://lore.kernel.org/lkml/20231127235558.71995-1-gnstark@xxxxxxxxxxxxxxxxx/
Jonathan--- drivers/iio/adc/meson_saradc.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/drivers/iio/adc/meson_saradc.c b/drivers/iio/adc/meson_saradc.c index db280da9edbf..34555a85f131 100644 --- a/drivers/iio/adc/meson_saradc.c +++ b/drivers/iio/adc/meson_saradc.c @@ -1242,6 +1242,20 @@ static const struct meson_sar_adc_param meson_sar_adc_gxl_param = { .cmv_select = 1, };+static const struct meson_sar_adc_param meson_sar_adc_axg_param = {+ .has_bl30_integration = true, + .clock_rate = 1200000, + .bandgap_reg = MESON_SAR_ADC_REG11, + .regmap_config = &meson_sar_adc_regmap_config_gxbb, + .resolution = 12, + .disable_ring_counter = 1, + .has_reg11 = true, + .vref_volatge = 1, + .has_vref_select = true, + .vref_select = VREF_VDDA, + .cmv_select = 1, +}; + static const struct meson_sar_adc_param meson_sar_adc_g12a_param = { .has_bl30_integration = false, .clock_rate = 1200000, @@ -1286,7 +1300,7 @@ static const struct meson_sar_adc_data meson_sar_adc_gxm_data = { };static const struct meson_sar_adc_data meson_sar_adc_axg_data = {- .param = &meson_sar_adc_gxl_param, + .param = &meson_sar_adc_axg_param, .name = "meson-axg-saradc", };
-- Best regards George