Re: [PATCH] iio: adc: max1363: sign-extend bipolar differential channel reads
Andy Shevchenko <[email protected]>
| Newsgroups | org.kernel.vger.linux-iio,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <CAHp75Vfzb6cyrpfadfr3-UkNKVqNP1jsLMkmnozG9uqizt=thQ@mail.gmail.com> |
On Mon, Aug 10, 2026 at 9:42 AM Cong Nguyen <[email protected]> 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