On Thu, 6 Jun 2024 23:22:56 +0200 Vasileios Amoiridis <vassilisamir@xxxxxxxxx> wrote: > A read operation is happening as follows: > > a) Set sensor to forced mode > b) Sensor measures values and update data registers and sleeps again > c) Read data registers > > In the current implementation the read operation happens immediately > after the sensor is set to forced mode so the sensor does not have > the time to update properly the registers. This leads to the following > 2 problems: > > 1) The first ever value which is read by the register is always wrong > 2) Every read operation, puts the register into forced mode and reads > the data that were calculated in the previous conversion. > > This behaviour was tested in 2 ways: > > 1) The internal meas_status_0 register was read before and after every > read operation in order to verify that the data were ready even before > the register was set to forced mode and also to check that after the > forced mode was set the new data were not yet ready. > > 2) Physically changing the temperature and measuring the temperature > > This commit adds the waiting time in between the set of the forced mode > and the read of the data. The function is taken from the Bosch BME68x > Sensor API [1]. > > [1]: https://github.com/boschsensortec/BME68x_SensorAPI/blob/v4.4.8/bme68x.c#L490 > Fixes: 1b3bd8592780 ("iio: chemical: Add support for Bosch BME680 sensor") > Signed-off-by: Vasileios Amoiridis <vassilisamir@xxxxxxxxx> Applied and marked for stable.