All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: Jean-Baptiste Maneyrol <JManeyrol@invensense.com>
Cc: Lars-Peter Clausen <lars@metafoo.de>,
	"robh+dt@kernel.org" <robh+dt@kernel.org>,
	"robh@kernel.org" <robh@kernel.org>,
	"mchehab+huawei@kernel.org" <mchehab+huawei@kernel.org>,
	"davem@davemloft.net" <davem@davemloft.net>,
	"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
	"linux-iio@vger.kernel.org" <linux-iio@vger.kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v3 06/13] iio: imu: inv_icm42600: add temperature sensor support
Date: Sat, 20 Jun 2020 16:57:39 +0100	[thread overview]
Message-ID: <20200620165739.29694b9b@archlinux> (raw)
In-Reply-To: <MN2PR12MB4422148948CF6FC7953A6D2AC49F0@MN2PR12MB4422.namprd12.prod.outlook.com>

On Sun, 14 Jun 2020 20:35:13 +0000
Jean-Baptiste Maneyrol <JManeyrol@invensense.com> wrote:

> Hello Lars,
> 
> for the temperature data, the problem is that temperature in the FIFO (used in buffer) is not in the same format than when reading the register.
> 
> Reading the temperature register return a full precision value on 16 bits. I am using a PROCESSED attribute for it.
> Temperature data in buffer (coming from the FIFO) is on 8 bits in lower precision. It is reported as raw data, thus the need of the offset and scale values.
> 
> So offset and scale values are only for transforming the temperature data from the buffer, and direct read is a full precision already processed in m°C.

That is a problem.  We have no means of describing it in IIO.

If the channel is processed via sysfs the assumption would normally
be that it is processed in the buffer as well. We don't really
have any means of describing the two separately.

In cases where we've seen this before the way around it was to
change the data in the fifo so that the scaling was the same as the
sysfs channel (usually it's just a bit of padding).

Can we do that here?  Looks like the ratio is 1:64 so should
be possible. 



> 
> Thanks for the review,
> JB
> 
> From: Lars-Peter Clausen <lars@metafoo.de>
> Sent: Sunday, June 14, 2020 17:10
> To: Jean-Baptiste Maneyrol <JManeyrol@invensense.com>; jic23@kernel.org <jic23@kernel.org>; robh+dt@kernel.org <robh+dt@kernel.org>; robh@kernel.org <robh@kernel.org>; mchehab+huawei@kernel.org <mchehab+huawei@kernel.org>; davem@davemloft.net <davem@davemloft.net>; gregkh@linuxfoundation.org <gregkh@linuxfoundation.org>
> Cc: linux-iio@vger.kernel.org <linux-iio@vger.kernel.org>; devicetree@vger.kernel.org <devicetree@vger.kernel.org>; linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org>
> Subject: Re: [PATCH v3 06/13] iio: imu: inv_icm42600: add temperature sensor support 
>  
>  CAUTION: This email originated from outside of the organization. Please make sure the sender is who they say they are and do not click links or open attachments unless you recognize the sender and know the content is safe.
> 
> On 6/8/20 10:42 PM, Jean-Baptiste Maneyrol wrote:
> > +     case IIO_CHAN_INFO_PROCESSED:
> > +             ret = iio_device_claim_direct_mode(indio_dev);
> > +             if (ret)
> > +                     return ret;
> > +             ret = inv_icm42600_temp_read(st, &temp);
> > +             iio_device_release_direct_mode(indio_dev);
> > +             if (ret)
> > +                     return ret;
> > +             *val = temp;
> > +             return IIO_VAL_INT;
> > +     case IIO_CHAN_INFO_SCALE:
> > +             *val = 483;
> > +             *val2 = 91787;
> > +             return IIO_VAL_INT_PLUS_MICRO;
> > +     case IIO_CHAN_INFO_OFFSET:
> > +             *val = 25000;
> > +             return IIO_VAL_INT;  
> 
> If the data is returned processed there is no need to specify scale and 
> offset.
> 
> But since the transformation to turn the data into standard units is a 
> simple linear transform the preferred way to handle this is to return 
> RAW data and specify scale and offset.


  reply	other threads:[~2020-06-20 15:57 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-08 20:42 [PATCH v3 00/13] iio: imu: new inv_icm42600 driver Jean-Baptiste Maneyrol
2020-06-08 20:42 ` [PATCH v3 01/13] iio: imu: inv_icm42600: add core of " Jean-Baptiste Maneyrol
2020-06-08 20:42 ` [PATCH v3 02/13] iio: imu: inv_icm42600: add I2C driver for " Jean-Baptiste Maneyrol
2020-06-08 20:42 ` [PATCH v3 03/13] iio: imu: inv_icm42600: add SPI " Jean-Baptiste Maneyrol
2020-06-08 20:42 ` [PATCH v3 04/13] iio: imu: inv_icm42600: add gyroscope IIO device Jean-Baptiste Maneyrol
2020-06-08 20:42 ` [PATCH v3 05/13] iio: imu: inv_icm42600: add accelerometer " Jean-Baptiste Maneyrol
2020-06-08 20:42 ` [PATCH v3 06/13] iio: imu: inv_icm42600: add temperature sensor support Jean-Baptiste Maneyrol
2020-06-14 15:10   ` Lars-Peter Clausen
2020-06-14 20:35     ` Jean-Baptiste Maneyrol
2020-06-20 15:57       ` Jonathan Cameron [this message]
2020-06-22  9:21         ` Jean-Baptiste Maneyrol
2020-06-08 20:42 ` [PATCH v3 07/13] iio: imu: add Kconfig and Makefile for inv_icm42600 driver Jean-Baptiste Maneyrol
2020-06-08 23:03   ` kernel test robot
2020-06-08 23:03     ` kernel test robot
2020-06-14 13:52     ` Jonathan Cameron
2020-06-14 13:52       ` Jonathan Cameron
2020-06-09  6:33   ` kernel test robot
2020-06-09  6:33     ` kernel test robot
2020-06-08 20:42 ` [PATCH v3 08/13] Documentation: ABI: add specific icm42600 documentation Jean-Baptiste Maneyrol
2020-06-08 20:42 ` [PATCH v3 09/13] iio: imu: inv_icm42600: add device interrupt Jean-Baptiste Maneyrol
2020-06-08 20:42 ` [PATCH v3 10/13] iio: imu: inv_icm42600: add buffer support in iio devices Jean-Baptiste Maneyrol
2020-06-14 14:17   ` Jonathan Cameron
2020-06-08 20:42 ` [PATCH v3 11/13] iio: imu: inv_icm42600: add accurate timestamping Jean-Baptiste Maneyrol
2020-06-14 14:21   ` Jonathan Cameron
2020-06-08 20:42 ` [PATCH v3 12/13] dt-bindings: iio: imu: Add inv_icm42600 documentation Jean-Baptiste Maneyrol
2020-06-17 20:53   ` Rob Herring
2020-06-08 20:42 ` [PATCH v3 13/13] MAINTAINERS: add entry for inv_icm42600 6-axis imu sensor Jean-Baptiste Maneyrol

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=20200620165739.29694b9b@archlinux \
    --to=jic23@kernel.org \
    --cc=JManeyrol@invensense.com \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=lars@metafoo.de \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mchehab+huawei@kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=robh@kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.