From: Alison Schofield <amsfield22@gmail.com>
To: Matt Ranostay <mranostay@gmail.com>, jic23@kernel.org
Cc: "linux-iio@vger.kernel.org" <linux-iio@vger.kernel.org>
Subject: Re: [PATCH] iio: hudmidity: hdc100x: fix incorrect shifting and scaling
Date: Tue, 31 May 2016 10:45:22 -0700 [thread overview]
Message-ID: <20160531174521.GA2841@d830.WORKGROUP> (raw)
In-Reply-To: <CAKzfze9usfXfL=MpbFJOCcfgGXYbkN6bvykC1jXs3ebEsaioqA@mail.gmail.com>
On Sun, May 29, 2016 at 07:53:08PM -0700, Matt Ranostay wrote:
> Alison,
>
> Can you give a Tested-by: since I don't own this sensor anymore.
>
> Thanks,
>
> Matt
Tested it. Verified temp & humidty calcs. Looks great!
And, (seeing a pattern here ;)) this comes with another question,
probably directed a Jonathan...
with regards to temperature calculations:
Datasheets give numbers for this method:
temp = ((raw * scale) + offset)
IIO drivers report numbers for this method:
temp = ((raw + offset) * scale)
I've figured out the math for translating between them and creating
the offset for the driver to report in sysfs, but don't know why we
are doing that. 'Our' way seems kind of ugly. For example, for HDC1008
the offset is -40. It's the minimum expected temp value. But, we munge
it to be -15887.515151 so we can apply it before scaling.
Why do we do it this way in IIO?
alisons
>
> On Sun, May 29, 2016 at 7:52 PM, Matt Ranostay <mranostay@gmail.com> wrote:
> > Shifting sensor data to the right 2 bits was incorrect and caused the
> > scaling values + offsets to be invalid.
> >
> > Reported-by: Alison Schofield <amsfield22@gmail.com>
> > Signed-off-by: Matt Ranostay <mranostay@gmail.com>
> > ---
> > drivers/iio/humidity/hdc100x.c | 16 ++++++++--------
> > 1 file changed, 8 insertions(+), 8 deletions(-)
> >
> > diff --git a/drivers/iio/humidity/hdc100x.c b/drivers/iio/humidity/hdc100x.c
> > index 3070983..a03832a 100644
> > --- a/drivers/iio/humidity/hdc100x.c
> > +++ b/drivers/iio/humidity/hdc100x.c
> > @@ -164,14 +164,14 @@ static int hdc100x_get_measurement(struct hdc100x_data *data,
> > dev_err(&client->dev, "cannot read high byte measurement");
> > return ret;
> > }
> > - val = ret << 6;
> > + val = ret << 8;
> >
> > ret = i2c_smbus_read_byte(client);
> > if (ret < 0) {
> > dev_err(&client->dev, "cannot read low byte measurement");
> > return ret;
> > }
> > - val |= ret >> 2;
> > + val |= ret;
> >
> > return val;
> > }
> > @@ -212,17 +212,17 @@ static int hdc100x_read_raw(struct iio_dev *indio_dev,
> > case IIO_CHAN_INFO_SCALE:
> > if (chan->type == IIO_TEMP) {
> > *val = 165000;
> > - *val2 = 65536 >> 2;
> > + *val2 = 65536;
> > return IIO_VAL_FRACTIONAL;
> > } else {
> > - *val = 0;
> > - *val2 = 10000;
> > - return IIO_VAL_INT_PLUS_MICRO;
> > + *val = 100;
> > + *val2 = 65536;
> > + return IIO_VAL_FRACTIONAL;
> > }
> > break;
> > case IIO_CHAN_INFO_OFFSET:
> > - *val = -3971;
> > - *val2 = 879096;
> > + *val = -15887;
> > + *val2 = 515151;
> > return IIO_VAL_INT_PLUS_MICRO;
> > default:
> > return -EINVAL;
> > --
> > 2.7.4
> >
next prev parent reply other threads:[~2016-05-31 17:45 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-30 2:52 [PATCH] iio: hudmidity: hdc100x: fix incorrect shifting and scaling Matt Ranostay
2016-05-30 2:53 ` Matt Ranostay
2016-05-31 17:45 ` Alison Schofield [this message]
2016-05-31 18:57 ` Matt Ranostay
2016-05-31 21:05 ` Jonathan Cameron
2016-06-03 12:26 ` 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=20160531174521.GA2841@d830.WORKGROUP \
--to=amsfield22@gmail.com \
--cc=jic23@kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=mranostay@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;
as well as URLs for NNTP newsgroup(s).