One can communicate with sensor either over i2c or serial interface. This series add support for the latter. And in order to do that existing codebase needs to be separated into core and interface specific components. v2: - simplify Kconfig by hiding core component selection - export symbols as GPL compatible - drop excessive ops wrappers - rework ops to use __be32 - rework polling for measurements, sensor produces measurements within 1s so instead of polling just wait 1s - simplify frame ready condition (serial) - don't mix char with unsigned version - calculate checksum during frame validation (serial) - uncomment return status in frame validation (serial) - pass part name to probe instead of KBUILD_MODNAME Tomasz Duszynski (3): iio: sps30: separate core and interface specific code iio: sps30: add support for serial interface dt-bindings: iio: chemical: sps30: update binding with serial example .../iio/chemical/sensirion,sps30.yaml | 7 +- MAINTAINERS | 2 + drivers/iio/chemical/Kconfig | 27 +- drivers/iio/chemical/Makefile | 2 + drivers/iio/chemical/sps30.c | 269 ++--------- drivers/iio/chemical/sps30.h | 35 ++ drivers/iio/chemical/sps30_i2c.c | 251 ++++++++++ drivers/iio/chemical/sps30_serial.c | 428 ++++++++++++++++++ 8 files changed, 794 insertions(+), 227 deletions(-) create mode 100644 drivers/iio/chemical/sps30.h create mode 100644 drivers/iio/chemical/sps30_i2c.c create mode 100644 drivers/iio/chemical/sps30_serial.c -- 2.31.1