diff options
author | Lars-Peter Clausen <lars@metafoo.de> | 2012-10-15 05:35:00 -0400 |
---|---|---|
committer | Jonathan Cameron <jic23@kernel.org> | 2012-10-19 11:13:15 -0400 |
commit | 10dda40fb605c6468045906b0bce08e2e12c0aca (patch) | |
tree | 2b411cd1837d78743a5ffb4dc94a73afea4d350a /drivers/staging | |
parent | 8735cf94afc1a63526417762c288501fc239c12d (diff) |
staging:iio: Fix adis16203 channel offsets and scales
Most of the channel offsets and scales in the adis16203 are incorrect:
* Temperature scale is off by a factor of 1000
* Voltage scale is off by a factor of 1000
* Temperature offset is completely wrong
This patch fixes these issues.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Diffstat (limited to 'drivers/staging')
-rw-r--r-- | drivers/staging/iio/accel/adis16203_core.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/drivers/staging/iio/accel/adis16203_core.c b/drivers/staging/iio/accel/adis16203_core.c index 002fa9dfc375..e7b3441115ae 100644 --- a/drivers/staging/iio/accel/adis16203_core.c +++ b/drivers/staging/iio/accel/adis16203_core.c | |||
@@ -316,25 +316,27 @@ static int adis16203_read_raw(struct iio_dev *indio_dev, | |||
316 | case IIO_CHAN_INFO_SCALE: | 316 | case IIO_CHAN_INFO_SCALE: |
317 | switch (chan->type) { | 317 | switch (chan->type) { |
318 | case IIO_VOLTAGE: | 318 | case IIO_VOLTAGE: |
319 | *val = 0; | 319 | if (chan->channel == 0) { |
320 | if (chan->channel == 0) | 320 | *val = 1; |
321 | *val2 = 1220; | 321 | *val2 = 220000; /* 1.22 mV */ |
322 | else | 322 | } else { |
323 | *val2 = 610; | 323 | *val = 0; |
324 | *val2 = 610000; /* 0.61 mV */ | ||
325 | } | ||
324 | return IIO_VAL_INT_PLUS_MICRO; | 326 | return IIO_VAL_INT_PLUS_MICRO; |
325 | case IIO_TEMP: | 327 | case IIO_TEMP: |
326 | *val = 0; | 328 | *val = -470; /* -0.47 C */ |
327 | *val2 = -470000; | 329 | *val2 = 0; |
328 | return IIO_VAL_INT_PLUS_MICRO; | 330 | return IIO_VAL_INT_PLUS_MICRO; |
329 | case IIO_INCLI: | 331 | case IIO_INCLI: |
330 | *val = 0; | 332 | *val = 0; |
331 | *val2 = 25000; | 333 | *val2 = 25000; /* 0.025 degree */ |
332 | return IIO_VAL_INT_PLUS_MICRO; | 334 | return IIO_VAL_INT_PLUS_MICRO; |
333 | default: | 335 | default: |
334 | return -EINVAL; | 336 | return -EINVAL; |
335 | } | 337 | } |
336 | case IIO_CHAN_INFO_OFFSET: | 338 | case IIO_CHAN_INFO_OFFSET: |
337 | *val = 25; | 339 | *val = 25000 / -470 - 1278; /* 25 C = 1278 */ |
338 | return IIO_VAL_INT; | 340 | return IIO_VAL_INT; |
339 | case IIO_CHAN_INFO_CALIBBIAS: | 341 | case IIO_CHAN_INFO_CALIBBIAS: |
340 | bits = 14; | 342 | bits = 14; |