This patch series is continuing the work that started on [1] by improving some small issues of the driver in the commits 1,2,3. Commits 4,5 are refactorizing existing code. Commits 6,7,8 are adding DT, regulator and PM support. Commit 9 is refactorizing one macro to attribute. Commit 10,11,12 are refactorizing the read/compensate functions to become generic and add triggered buffer support. Finally, commit 13 adds support for an *output* channel of type IIO_CURRENT in order to preheat the plate that is used to measure the quality of the air. This and the previous series [1] started with the idea to add support for the new bme688 device but due to the structure of the driver I decided that it is better to restructure and improve some things before adding extra funcitonalities. [1]: https://lore.kernel.org/linux-iio/20240609233826.330516-1-vassilisamir@xxxxxxxxx Vasileios Amoiridis (13): iio: chemical: bme680: Fix indentation and unnecessary spaces iio: chemical: bme680: avoid using camel case iio: chemical: bme680: fix startup time iio: chemical: bme680: move to fsleep() iio: chemical: bme680: refactorize set_mode() mode dt-bindings: iio: add binding for BME680 driver iio: chemical: bme680: add regulators iio: chemical: bme680: add power management iio: chemical: bme680: Move ambient temperature to attributes iio: chemical: bme680: generalize read_*() functions iio: chemical: bme680: Add SCALE and RAW channels iio: chemical: bme680: Add triggered buffer support iio: chemical: bme680: Add support for preheat current .../bindings/iio/chemical/bosch,bme680.yaml | 64 ++ drivers/iio/chemical/Kconfig | 2 + drivers/iio/chemical/bme680.h | 7 +- drivers/iio/chemical/bme680_core.c | 554 +++++++++++++++--- 4 files changed, 556 insertions(+), 71 deletions(-) create mode 100644 Documentation/devicetree/bindings/iio/chemical/bosch,bme680.yaml -- 2.43.0