[PATCH 2/3] iio: adc: mt6359-auxadc: mask conversion ready bit in mt6358_read_imp

Jonathan Cameron jic23 at kernel.org
Tue Nov 3 15:45:40 PST 2026


On Tue, 03 Nov 2026 18:32:08 +0200
Roman Vivchar via B4 Relay <devnull+rva333.protonmail.com at kernel.org> wrote:

> From: Roman Vivchar <rva333 at protonmail.com>
> 
> In mt6358_read_imp() the raw ADC value is returned directly without
> masking out ready bit, resulting in incorrect battery voltage reporting.

Can you add where the ready bit is.  That might help someone
looking at wrong values and wondering if this is what is causing them.

This one is pretty glaring as bugs go (given I think this means the
top bit is set?) so any reason it wasn't obvious to anyone testing
this device?

Jonathan


> 
> Apply the mask to strip the ready bit, matching the behavior in
> mt6359_auxadc_read_adc() function.
> 
> Fixes: 3587914bf61d ("iio: adc: Add support for MediaTek MT6357/8/9 Auxiliary ADC")
> Signed-off-by: Roman Vivchar <rva333 at protonmail.com>
> ---
>  drivers/iio/adc/mt6359-auxadc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/adc/mt6359-auxadc.c b/drivers/iio/adc/mt6359-auxadc.c
> index 951d236f972b..09432d0974cf 100644
> --- a/drivers/iio/adc/mt6359-auxadc.c
> +++ b/drivers/iio/adc/mt6359-auxadc.c
> @@ -502,7 +502,7 @@ static int mt6358_read_imp(struct mt6359_auxadc *adc_dev,
>  	mt6358_stop_imp_conv(adc_dev);
>  
>  	if (vbat)
> -		*vbat = val_v;
> +		*vbat = val_v & GENMASK(chan->scan_type.realbits - 1, 0);
>  	if (ibat)
>  		*ibat = 0;
>  
> 




More information about the linux-arm-kernel mailing list