On Mon, 13 May 2024 01:05:20 +0200 Vasileios Amoiridis <vassilisamir@xxxxxxxxx> wrote: > For BMP18x, BMP28x, BME280, BMP38x the reading of the pressure > value requires an update of the t_fine variable which happens > through reading the temperature value. > > So all the bmpxxx_read_press() functions of the above sensors > are internally calling the equivalent bmpxxx_read_temp() function > in order to update the t_fine value. By just looking at the code > this functionality is a bit hidden and is not easy to understand > why those channels are not independent. > > This commit tries to clear these things a bit by splitting the > bmpxxx_{read/compensate}_{temp/press/humid}() to the following: > > i. bmpxxx_read_{temp/press/humid}_adc(): read the raw value from > the sensor. > > ii. bmpxx_calc_t_fine(): calculate the t_fine variable. > > iii. bmpxxx_get_t_fine(): get the t_fine variable. > > iv. bmpxxx_compensate_{temp/press/humid}(): compensate the adc > values and return the calculated value. > > v. bmpxxx_read_{temp/press/humid}(): combine calls of the > aforementioned functions to return the requested value. > > Suggested-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > Signed-off-by: Vasileios Amoiridis <vassilisamir@xxxxxxxxx> Applied with a fix... drivers/iio/pressure/bmp280-core.c: In function ‘bmp180_read_press’: drivers/iio/pressure/bmp280-core.c:2091:9: error: ‘ret’ undeclared (first use in this function); did you mean ‘net’? 2091 | ret = bmp180_get_t_fine(data, &t_fine); | ^~~ | net I guess something got lost in rebasing. Anyhow, fix obvious so not problem. Thanks, Jonathan