From: Lukasz Luba <lukasz.luba@arm.com>
To: Svyatoslav Ryhel <clamor95@gmail.com>
Cc: linux-pm@vger.kernel.org, devicetree@vger.kernel.org,
Jonathan Cameron <jic23@kernel.org>,
Laxman Dewangan <ldewangan@nvidia.com>,
Conor Dooley <conor+dt@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Rob Herring <robh@kernel.org>,
Daniel Lezcano <daniel.lezcano@linaro.org>,
Zhang Rui <rui.zhang@intel.com>,
linux-kernel@vger.kernel.org,
"Rafael J. Wysocki" <rafael@kernel.org>
Subject: Re: [PATCH v3 2/2] thermal: thermal-generic-adc: add temperature sensor channel
Date: Wed, 5 Mar 2025 14:37:23 +0000 [thread overview]
Message-ID: <f56596fe-92e8-481b-b15b-29b531eaec32@arm.com> (raw)
In-Reply-To: <CAPVz0n0yvw4kyYKSve9sSZEvcZrCYZ6RqCjFSO5OCqtvRZSfJg@mail.gmail.com>
On 3/5/25 10:06, Svyatoslav Ryhel wrote:
> ср, 5 бер. 2025 р. о 11:52 Lukasz Luba <lukasz.luba@arm.com> пише:
>>
>>
>>
>> On 3/3/25 12:21, Svyatoslav Ryhel wrote:
>>> To avoid duplicating sensor functionality and conversion tables, this design
>>> allows converting an ADC IIO channel's output directly into a temperature IIO
>>> channel. This is particularly useful for devices where hwmon isn't suitable
>>> or where temperature data must be accessible through IIO.
>>>
>>> One such device is, for example, the MAX17040 fuel gauge.
>>>
>>> Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
>>> ---
>>> drivers/thermal/thermal-generic-adc.c | 54 ++++++++++++++++++++++++++-
>>> 1 file changed, 53 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/thermal/thermal-generic-adc.c b/drivers/thermal/thermal-generic-adc.c
> ...
>>>
>>> +static const struct iio_chan_spec gadc_thermal_iio_channel[] = {
>>> + {
>>> + .type = IIO_TEMP,
>>> + .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED),
>>
>> I would add the IIO_CHAN_INFO_SCALE and say it's in milli-degrees.
>>
>
> I have hit this issue already with als sensor. This should definitely
> be a IIO_CHAN_INFO_PROCESSED since there is no raw temp data we have,
> it gets processed into temp data via conversion table. I will add
> Jonathan Cameron to list if you don't mind, he might give some good
> advice.
I'm not talking about 'PROCESSED' vs 'RAW'...
I'm asking if you can add the 'SCALE' case to handle and report
that this device will report 'processed' temp value in milli-degrees
of Celsius.
>
>>> + }
>>> +};
>>> +
>>> +static int gadc_thermal_read_raw(struct iio_dev *indio_dev,
>>> + struct iio_chan_spec const *chan,
>>> + int *temp, int *val2, long mask)
>>> +{
>>> + struct gadc_thermal_info *gtinfo = iio_priv(indio_dev);
>>> + int ret;
>>> +
>>> + if (mask != IIO_CHAN_INFO_PROCESSED)
>>> + return -EINVAL;
>>
>> Therefore, here it would need to handle such case as well, when
>> a client is asking about scale.
>>
>>> +
>>> + ret = gadc_thermal_get_temp(gtinfo->tz_dev, temp);
>>> + if (ret < 0)
>>> + return ret;
>>> +
>>> + *temp /= 1000;
>>
>> IMO we shouldn't cut the precision if it's provided.
>> The user of this would know what to do with the value (when
>> the proper information about scale is also available).
>>
>
> The it will not fit existing IIO framework and thermal readings will
> be 1000 off. I have had to adjust this since my battery suddenly got
> temperature reading of 23200C which obviously was not true. With
> adjustment temperature will be in 10th of C (yes, odd, I know but it
> is what it is).
Your battery driver should get and check the 'SCALE' info first, then
it will know that the value is in higher resolution than it needs.
Therefore, it can divide the value inside its code.
Your proposed division here is creating a limitation.
You shouldn't force all other drivers to ignore and drop the
available information about milli-degC (which is done in this patch).
next prev parent reply other threads:[~2025-03-05 14:37 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-03 12:21 [PATCH v3 0/2] thermal: thermal-generic-adc: add temp sensor function Svyatoslav Ryhel
2025-03-03 12:21 ` [PATCH v3 1/2] dt-bindings: thermal: generic-adc: Add optional io-channel-cells property Svyatoslav Ryhel
2025-03-05 10:00 ` Lukasz Luba
2025-03-05 10:03 ` Svyatoslav Ryhel
2025-03-05 14:51 ` Lukasz Luba
2025-03-05 16:10 ` Rob Herring
2025-03-03 12:21 ` [PATCH v3 2/2] thermal: thermal-generic-adc: add temperature sensor channel Svyatoslav Ryhel
2025-03-05 9:52 ` Lukasz Luba
2025-03-05 10:06 ` Svyatoslav Ryhel
2025-03-05 14:37 ` Lukasz Luba [this message]
2025-03-05 14:43 ` Svyatoslav Ryhel
2025-03-06 9:49 ` Svyatoslav Ryhel
2025-03-06 10:04 ` Lukasz Luba
2025-04-05 15:15 ` Jonathan Cameron
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=f56596fe-92e8-481b-b15b-29b531eaec32@arm.com \
--to=lukasz.luba@arm.com \
--cc=clamor95@gmail.com \
--cc=conor+dt@kernel.org \
--cc=daniel.lezcano@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=jic23@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=ldewangan@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=rafael@kernel.org \
--cc=robh@kernel.org \
--cc=rui.zhang@intel.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
all inboxes | Powered by JetHome®