From: Jonathan Cameron <jic23@kernel.org>
To: Salah Triki <salah.triki@gmail.com>
Cc: "Andy Shevchenko" <andriy.shevchenko@intel.com>,
"Marcelo Schmitt" <marcelo.schmitt@analog.com>,
"David Lechner" <dlechner@baylibre.com>,
"Nuno Sá" <nuno.sa@analog.com>,
"Andy Shevchenko" <andy@kernel.org>,
linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] iio: temperature: max30208: fix wrong scale value
Date: Tue, 28 Apr 2026 16:56:54 +0100 [thread overview]
Message-ID: <20260428165654.2badd010@jic23-huawei> (raw)
In-Reply-To: <afC3wHzcwWMMgt3i@pc>
On Tue, 28 Apr 2026 14:36:00 +0100
Salah Triki <salah.triki@gmail.com> 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@gmail.com>
> >
> > ...
> >
> > > 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
>
prev parent reply other threads:[~2026-04-28 15:57 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-28 8:54 [PATCH] iio: temperature: max30208: fix wrong scale value Salah Triki
2026-04-28 11:00 ` Andy Shevchenko
2026-04-28 13:36 ` Salah Triki
2026-04-28 15:34 ` Jonathan Cameron
2026-04-28 15:43 ` Andy Shevchenko
2026-04-28 15:56 ` Jonathan Cameron [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260428165654.2badd010@jic23-huawei \
--to=jic23@kernel.org \
--cc=andriy.shevchenko@intel.com \
--cc=andy@kernel.org \
--cc=dlechner@baylibre.com \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marcelo.schmitt@analog.com \
--cc=nuno.sa@analog.com \
--cc=salah.triki@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox