[PATCH v3 0/6] Series to add triggered buffer support to BMP280 driver

From: Vasileios Amoiridis
Date: Mon Mar 18 2024 - 20:29:43 EST


Changes in v3:

Patch 2: Add guard(mutex) as per request {read/write}_raw() functions.

Patch 3: Patch 2 of v2. Added IIO return value as per request.

Patch 4: Patch 3 of v2.

Patch 5: Patch 4 of v2.

Patch 6: Completely different approach from v2. Instead of leveraging the
functionality of the read_*() functions for the oneshot capture, burst reads
were used in order to read all the values in one single read operation. This
minimizes the number of accesses to the device to just 1 time, which all the
values are being read. Different buffer_handler() functions were implemented
for the different "families" of sensors because there were a lot of differences
in the register configuration and read operation for different sensors.

BMP085 and BMP180 have a very well defined read operation that is kept in the
buffer_handler(). There is no option for a burst read in these sensors.

BM(P/E)2xx, BMP3xx, and BMP5xx have their own buffer_handler() functions.
Registers, endianess and compensation formulas are different in each one of
those 3 categories which doesn't allow for a more generic buffer_handler().

[v2] https://lore.kernel.org/linux-iio/20240313174007.1934983-1-vassilisamir@xxxxxxxxx
[v1] https://lore.kernel.org/linux-iio/20240303165300.468011-1-vassilisamir@xxxxxxxxx

Vasileios Amoiridis (6):
iio: pressure: BMP280 core driver headers sorting
iio: pressure: Introduce new cleanup routines to BMP280 driver *_raw()
functions
iio: pressure: Generalize read_{temp/press/humid}() functions
iio: pressure: Add SCALE and RAW values for channels
iio: pressure: Add timestamp and scan_masks for BMP280 driver
iio: pressure: Add triggered buffer support for BMP280 driver

drivers/iio/pressure/Kconfig | 2 +
drivers/iio/pressure/bmp280-core.c | 727 +++++++++++++++++++++--------
drivers/iio/pressure/bmp280-spi.c | 8 +-
drivers/iio/pressure/bmp280.h | 28 +-
4 files changed, 570 insertions(+), 195 deletions(-)

--
2.25.1