[PATCH v9 0/7] iio: accel: Add support for Kionix/ROHM KX132-1211 accelerometer

From: Mehdi Djait
Date: Sat Sep 16 2023 - 08:39:53 EST


Hello everyone,

Version 9 for adding support for the kx132-1211 accelerometer

KX132-1211 accelerometer is a sensor which:
- supports G-ranges of (+/-) 2, 4, 8, and 16G
- can be connected to I2C or SPI
- has internal HW FIFO buffer
- supports various ODRs (output data rates)

The KX132-1211 accelerometer is very similar to the KX022A.
One key difference is number of bits to report the number of data bytes that
have been stored in the buffer: 8 bits for KX022A vs 10 bits for
KX132-1211.

Changes in v9:
- used i2c_get_match_data
- changed the name and description of the function to get available data
in HW fifo buffer
- changed the description in the Kconfig file

Changes in v8:
- replaced min_t by min and kmalloc by kmalloc_array as suggested by Andy

Changes in v7:
- added a min_t in kx132_get_fifo_bytes to ensure that we don't that the
fifo_bytes is never bigger than the
fifo_length * KX022A_FIFO_SAMPLES_SIZE_BYTES - no matter what we read from I2C
as suggested by Matti

Changes in v6:
- check for availability of chip_info for the SPI case
- changed the order of elements in the kx022a_data struct to save memory

Changes in v5:
- moved the "kfree" call to match the reverse of what happens in
kx022a_fifo_enable() as suggested by Matti and Jonathan
- used min_t, checked for availability of chip_info and moved the
position of u16 buf_smp_lvl_mask as suggested by Andy
- introduced buf_smp_lvl_mask in Patch 7 as suggested by Jonathan

Changes in v4:
- moved the allocation of the fifo_buffer to kx022a_fifo_enable and
kx022a_fifo_disable
- some fixes to the regmap ranges of kx132-1211

Changes in v3:
- added two new patches by separating the addition of the
i2c_device_id table and the removal of blank lines from other
unrelated changes
- fixes a warning detected by the kernel test robot
- made all the changes related the chip_info in one patch

Changes in v2:
- added a new patch for warning when the device_id match fails in the
probe function
- added a new patch for the function that retrieves the number of bytes
in the buffer
- added a change to the Kconfig file in the patch adding the support
for the kx132-1211
- various fixes and modifications listed under each patch

Mehdi Djait (7):
dt-bindings: iio: Add KX132-1211 accelerometer
iio: accel: kionix-kx022a: Remove blank lines
iio: accel: kionix-kx022a: Warn on failed matches and assume
compatibility
iio: accel: kionix-kx022a: Add an i2c_device_id table
iio: accel: kionix-kx022a: Refactor driver and add chip_info structure
iio: accel: kionix-kx022a: Add a function to retrieve number of bytes
in buffer
iio: accel: Add support for Kionix/ROHM KX132-1211 accelerometer

.../bindings/iio/accel/kionix,kx022a.yaml | 12 +-
drivers/iio/accel/Kconfig | 10 +-
drivers/iio/accel/kionix-kx022a-i2c.c | 20 +-
drivers/iio/accel/kionix-kx022a-spi.c | 15 +-
drivers/iio/accel/kionix-kx022a.c | 315 ++++++++++++++----
drivers/iio/accel/kionix-kx022a.h | 112 ++++++-
6 files changed, 409 insertions(+), 75 deletions(-)

--
2.30.2