[PATCH v3 0/7]: iio: chemical: bme680: 2nd round of cleanup

Vasileios Amoiridis
2024-11-02T13:13:26Z

Changes in v3:

Removed applied patches 1,2,3,5,6,7,8

[PATCH v3 1/7]:
- v2 4/13
- Set mode of sensor with enum variable and remove macros

[PATCH v3 5/7]:
- v2 11/13
- removed regulators from being required, adjusted commit
message

[PATCH v3 7/7]:
- v2 13/13
- removed unecessary usage of runtime PM functions

---
v2: https://lore.kernel.org/linux-iio/20241021195316.58911-1-vassilisamir@gmail.com/
Changes in v2:

Generally, the patches were rearranged according to comments from Andy
in previous version in order to be more consistent. The refactoring of
the ambient temperature was dropped for now because it was a bit more
complicated than I thought and this series is already heavy enough.

[PATCH v2 01/13]:
- New patch

[PATCH v2 02/13]:
- v1 1/13
- used "optimized" in commit message to not prompt for a fix.
- added documentation of where this sleep comes from

[PATCH v2 03/13]:
- v1 2/13
- Fix indentation of array and removed extra whitespace.

[PATCH v2 04/13]:
- v1 5/13
- removed extra check inside the set_mode() function.

[PATCH v2 06/13]:
- v1 1/13
- removed indentation fixes which are fixed later since code is
changed in those lines in later commits.

[PATCH v2 09/13]:
- v1 12/13
- removed unnecessary debug messages
- Used struture instead of buffer to push data to userspace

[PATCH v2 10/13]:
- v1 13/13
- used better naming
- made channel index to -1

[PATCH v2 11/13]:
- v1 06/13
- removed device from trivial-devices

[PATCH v2 12/13]:
- v1 07/13
- use devm_regulator_bulk_get_enable()

[PATCH v2 13/13]:
- v1 08/13
- removed internal usage of dev structure
- added missing header in both bme680_core.c and bme680.h
- used devm_pm_runtime_enable

---
v1: https://lore.kernel.org/linux-iio/20241010210030.33309-1-vassilisamir@gmail.com

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@gmail.com

Vasileios Amoiridis (7):
iio: chemical: bme680: refactorize set_mode() mode
iio: chemical: bme680: Add SCALE and RAW channels
iio: chemical: bme680: Add triggered buffer support
iio: chemical: bme680: Add support for preheat current
dt-bindings: iio: bosch,bme680: Add supply properties
iio: chemical: bme680: add regulators
iio: chemical: bme680: add power management

.../bindings/iio/chemical/bosch,bme680.yaml | 62 +++
.../devicetree/bindings/trivial-devices.yaml | 2 -
drivers/iio/chemical/Kconfig | 2 +
drivers/iio/chemical/bme680.h | 8 +-
drivers/iio/chemical/bme680_core.c | 375 ++++++++++++++++--
drivers/iio/chemical/bme680_i2c.c | 1 +
drivers/iio/chemical/bme680_spi.c | 1 +
7 files changed, 423 insertions(+), 28 deletions(-)
create mode 100644 Documentation/devicetree/bindings/iio/chemical/bosch,bme680.yaml

base-commit: c218214db564ca7d6885fa5859541a86197856c0
--
2.43.0