Hi!
2023-10-17 at 11:05, Jonathan Cameron wrote:
> On Mon, 16 Oct 2023 12:05:32 +0200
> Peter Rosin <[email protected]> wrote:
>> 2023-10-16 at 10:39, Linus Walleij wrote:
>>> Just raw (with neither offset or rescale) doesn't make sense, since
>>
>> And I don't see why not. That's the crux.
>>
>>> the AFE rescaler does just offsetting and rescaling, in that case the
>>> user should just use the raw channel. Also it would then take
>>> precedence over a processed channel (which applies rescale and
>>> offset internally) which doesn't make sense to me.
>>
>> Why isn't it perfectly fine for a device to provide only a raw
>> channel and then expect that to be interpreted as the real unit?
>> Why would it need a processed channel when no processing is
>> going on? E.g. a device reporting the temp in the expected unit
>> in one of its registers. Or whatever with such a friendly
>> register.
>
> In that case it should report a processed value to indicate that.
> It's admittedly a bit of a corner case given it's not processed by
> the kernel - there is an argument that this (more or less) only
> happens when someone has processed a raw ADC count but in theory
> that's not necessarily true.
>
> There are a few examples of drivers passing through the register value
> as processed in tree - normally when there
> is a microprocessor doing some fusion of signals or similar.
>
> Raw gets reported on it's own in a few other cases, such as when
> there are no known units - that happens for things like light intensity,
> proximity (which is often reflected light intensity).
> For those I'm not sure the rescaler is useful.
Excellent, thanks for the clarification!
Reviewed-by: Peter Rosin <[email protected]>
Cheers,
Peter
On Tue, 17 Oct 2023 16:00:22 +0200
Peter Rosin <[email protected]> wrote:
> Hi!
>
> 2023-10-17 at 11:05, Jonathan Cameron wrote:
> > On Mon, 16 Oct 2023 12:05:32 +0200
> > Peter Rosin <[email protected]> wrote:
> >> 2023-10-16 at 10:39, Linus Walleij wrote:
>
>
>
> >>> Just raw (with neither offset or rescale) doesn't make sense, since
> >>
> >> And I don't see why not. That's the crux.
> >>
> >>> the AFE rescaler does just offsetting and rescaling, in that case the
> >>> user should just use the raw channel. Also it would then take
> >>> precedence over a processed channel (which applies rescale and
> >>> offset internally) which doesn't make sense to me.
> >>
> >> Why isn't it perfectly fine for a device to provide only a raw
> >> channel and then expect that to be interpreted as the real unit?
> >> Why would it need a processed channel when no processing is
> >> going on? E.g. a device reporting the temp in the expected unit
> >> in one of its registers. Or whatever with such a friendly
> >> register.
> >
> > In that case it should report a processed value to indicate that.
> > It's admittedly a bit of a corner case given it's not processed by
> > the kernel - there is an argument that this (more or less) only
> > happens when someone has processed a raw ADC count but in theory
> > that's not necessarily true.
> >
> > There are a few examples of drivers passing through the register value
> > as processed in tree - normally when there
> > is a microprocessor doing some fusion of signals or similar.
> >
> > Raw gets reported on it's own in a few other cases, such as when
> > there are no known units - that happens for things like light intensity,
> > proximity (which is often reflected light intensity).
> > For those I'm not sure the rescaler is useful.
>
> Excellent, thanks for the clarification!
>
> Reviewed-by: Peter Rosin <[email protected]>
Thanks,
Applied to the fixes-togreg branch of iio.git. I'll just let this
sit in linux-next for a day or so before a pull request (I have
a few other fixes queued). That will almost certainly get queued for
the merge window given timing.
Thanks,
Jonathan
>
> Cheers,
> Peter