Re: [PATCH] iio: temperature: max30208: fix wrong scale value

From: Jonathan Cameron

Date: Tue Apr 28 2026 - 11:59:27 EST


On Tue, 28 Apr 2026 14:36:00 +0100
Salah Triki <salah.triki@xxxxxxxxx> wrote:

> On Tue, Apr 28, 2026 at 02:00:48PM +0300, Andy Shevchenko wrote:
> > On Tue, Apr 28, 2026 at 09:54:15AM +0100, Salah Triki wrote:
> > > The driver currently returns a scale of 5 for IIO_CHAN_INFO_SCALE, which
> > > leads to incorrect temperature readings.
> > >
> > > According to the MAX30208 datasheet, the temperature resolution is 0.005°C
> > > per LSB. Using IIO_VAL_FRACTIONAL with 5/1000 correctly represents this
> > > 16-bit resolution.
> > >
> > > Fix the scale value to ensure user space tools report the temperature
> > > correctly in Celsius.
> >
> > > Fixes: 9ee95ae4cffd ("iio: temperature: Add driver support for Maxim
> > > MAX30208")
> >
> > The tags should go with 1 tag per one (single) line. Do not wrap them.
>
> Sorry about that, I will fix the tag wrapping in v2.


>
> >
> > > Signed-off-by: Salah Triki <salah.triki@xxxxxxxxx>
> >
> > ...
> >
> > > case IIO_CHAN_INFO_SCALE:
> > > *val = 5;
> > > - return IIO_VAL_INT;
> > > + *val2 = 1000;
> > > + return IIO_VAL_FRACTIONAL;
> >
> > Isn't it an ABI change?
> >
>
> Yes, it technically changes the value exposed to user space. However, the
> current scale (5) is objectively incorrect according to the datasheet
> (0.005°C per LSB).
>
> With the current scale, a raw reading of 5000 (25°C) is reported as
> 25000°C by user space tools. This makes the driver practically unusable
It should be reporting in milli degrees C.

There are a few IIO units that are a bit odd like this because long long
ago in a galaxy far away, I decided to start from the scaling hwmon uses.
It turned out that gets really messy as you add more unit types so we
later standardized any new units on SI without a multiplier. However
having to maintain ABI compatibility meant we were stuck with milli for
several units including temperature.

So I think this driver is correct as it stands.



> for standard IIO consumers without custom workarounds. Since the driver is
> relatively recent, I believe fixing it now to match the hardware
> specification is preferable to keeping a broken ABI.
>
> What do you think?
>
> Best regards,
> --
> Salah Triki
>