Re: [PATCH] iio: adc: max1363: sign-extend bipolar differential channel reads

From: Andy Shevchenko

Date: Mon Aug 10 2026 - 02:51:33 EST


On Mon, Aug 10, 2026 at 9:42 AM Cong Nguyen <congnt264@xxxxxxxxx> wrote:
>
> The MAX1363 differential channels are bipolar (scan_type.sign = 's') and
> the device returns those samples in two's complement. However
> max1363_read_single_chan() masks the raw value to the ADC resolution and
> stores it as-is, without sign extension. A negative differential reading
> is therefore reported to userspace as a large positive value (for a 12-bit
> part, -1 reads back as 4095).

Try to make it more compact (remove unneeded or duplicative details,
do not blindly rely on AI).

> These channels expose only IIO_CHAN_INFO_RAW (no offset), so the raw sysfs
> value is expected to be the signed result. Sign-extend the masked value
> from the resolution bit for differential channels before returning it.
> Single-ended channels are unipolar (sign = 'u') and are left unchanged.

Same here.

> Fixes: 168c9d95a940 ("iio:adc:max1363 move from staging.")

This is a wrong reference in case the driver existed before (and that
is suggested by the commit description).

--
With Best Regards,
Andy Shevchenko