iio:pressure:bmp280: fix pressure calculation
authorHartmut Knaack <knaack.h@gmx.de>
Fri, 31 Oct 2014 01:22:00 +0000 (01:22 +0000)
committerJonathan Cameron <jic23@kernel.org>
Wed, 5 Nov 2014 15:58:35 +0000 (15:58 +0000)
commit81ebe850a019ccb8bf0a429fb463d9bfc15ec298
tree7235e3aa02eebe7c6289f8b89c1e1c8d2cff16dd
parentc1b501564c98a94b48f4ed936737403108dc7300
iio:pressure:bmp280: fix pressure calculation

According to the datasheet and as defined in struct bmp280_comp_press, dig_p1 is
of type u16, while dig_p2 to dig_p9 are of type s16. In
bmp280_read_compensation_press(), values read from the device were treated as
the wrong type.
In bmp280_read_press() the fractional part of the measured pressure is
calculated wrong. A better way is to use *val for the raw pressure and *val2 for
the quotient and let the core do the proper conversion using IIO_VAL_FRACTIONAL.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Acked-by: Vlad Dogaru <vlad.dogaru@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/pressure/bmp280.c