Message ID | 1551857508-4254-1-git-send-email-mike.looijmans@topic.nl (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v3,1/2] iio/chemical/bme680: Report temperature in millidegrees | expand |
On Wed, 6 Mar 2019 08:31:47 +0100 Mike Looijmans <mike.looijmans@topic.nl> wrote: > The standard unit for temperature is millidegrees Celcius. Adapt the > driver to report in millidegrees instead of degrees. > > Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl> I tweaked the patch title to make it obvious this was a fix (added the word fix ;) Applied to the fixes-togreg branch of iio.git and marked for stable. Thanks, Jonathan > --- > v2: Remove unused 'addr7' variable > v3: Split patch into temperature and SPI > > drivers/iio/chemical/bme680_core.c | 16 +++++++--------- > 1 file changed, 7 insertions(+), 9 deletions(-) > > diff --git a/drivers/iio/chemical/bme680_core.c b/drivers/iio/chemical/bme680_core.c > index 70c1fe4..fefe32b 100644 > --- a/drivers/iio/chemical/bme680_core.c > +++ b/drivers/iio/chemical/bme680_core.c > @@ -583,8 +583,7 @@ static int bme680_gas_config(struct bme680_data *data) > return ret; > } > > -static int bme680_read_temp(struct bme680_data *data, > - int *val, int *val2) > +static int bme680_read_temp(struct bme680_data *data, int *val) > { > struct device *dev = regmap_get_device(data->regmap); > int ret; > @@ -617,10 +616,9 @@ static int bme680_read_temp(struct bme680_data *data, > * compensate_press/compensate_humid to get compensated > * pressure/humidity readings. > */ > - if (val && val2) { > - *val = comp_temp; > - *val2 = 100; > - return IIO_VAL_FRACTIONAL; > + if (val) { > + *val = comp_temp * 10; /* Centidegrees to millidegrees */ > + return IIO_VAL_INT; > } > > return ret; > @@ -635,7 +633,7 @@ static int bme680_read_press(struct bme680_data *data, > s32 adc_press; > > /* Read and compensate temperature to get a reading of t_fine */ > - ret = bme680_read_temp(data, NULL, NULL); > + ret = bme680_read_temp(data, NULL); > if (ret < 0) > return ret; > > @@ -668,7 +666,7 @@ static int bme680_read_humid(struct bme680_data *data, > u32 comp_humidity; > > /* Read and compensate temperature to get a reading of t_fine */ > - ret = bme680_read_temp(data, NULL, NULL); > + ret = bme680_read_temp(data, NULL); > if (ret < 0) > return ret; > > @@ -761,7 +759,7 @@ static int bme680_read_raw(struct iio_dev *indio_dev, > case IIO_CHAN_INFO_PROCESSED: > switch (chan->type) { > case IIO_TEMP: > - return bme680_read_temp(data, val, val2); > + return bme680_read_temp(data, val); > case IIO_PRESSURE: > return bme680_read_press(data, val, val2); > case IIO_HUMIDITYRELATIVE:
diff --git a/drivers/iio/chemical/bme680_core.c b/drivers/iio/chemical/bme680_core.c index 70c1fe4..fefe32b 100644 --- a/drivers/iio/chemical/bme680_core.c +++ b/drivers/iio/chemical/bme680_core.c @@ -583,8 +583,7 @@ static int bme680_gas_config(struct bme680_data *data) return ret; } -static int bme680_read_temp(struct bme680_data *data, - int *val, int *val2) +static int bme680_read_temp(struct bme680_data *data, int *val) { struct device *dev = regmap_get_device(data->regmap); int ret; @@ -617,10 +616,9 @@ static int bme680_read_temp(struct bme680_data *data, * compensate_press/compensate_humid to get compensated * pressure/humidity readings. */ - if (val && val2) { - *val = comp_temp; - *val2 = 100; - return IIO_VAL_FRACTIONAL; + if (val) { + *val = comp_temp * 10; /* Centidegrees to millidegrees */ + return IIO_VAL_INT; } return ret; @@ -635,7 +633,7 @@ static int bme680_read_press(struct bme680_data *data, s32 adc_press; /* Read and compensate temperature to get a reading of t_fine */ - ret = bme680_read_temp(data, NULL, NULL); + ret = bme680_read_temp(data, NULL); if (ret < 0) return ret; @@ -668,7 +666,7 @@ static int bme680_read_humid(struct bme680_data *data, u32 comp_humidity; /* Read and compensate temperature to get a reading of t_fine */ - ret = bme680_read_temp(data, NULL, NULL); + ret = bme680_read_temp(data, NULL); if (ret < 0) return ret; @@ -761,7 +759,7 @@ static int bme680_read_raw(struct iio_dev *indio_dev, case IIO_CHAN_INFO_PROCESSED: switch (chan->type) { case IIO_TEMP: - return bme680_read_temp(data, val, val2); + return bme680_read_temp(data, val); case IIO_PRESSURE: return bme680_read_press(data, val, val2); case IIO_HUMIDITYRELATIVE:
The standard unit for temperature is millidegrees Celcius. Adapt the driver to report in millidegrees instead of degrees. Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl> --- v2: Remove unused 'addr7' variable v3: Split patch into temperature and SPI drivers/iio/chemical/bme680_core.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-)