The adxl345 sensor offers several features. Most of them are based on using the hardware FIFO and reacting on events coming in on an interrupt line. Add access to configure and read out the FIFO, handling of interrupts and configuration and application of the watermark feature on that FIFO. The series will include the public adxl345.h used also in the corresponding older input driver. In brief, the data fields seem to be identical when implementing it for IIO, the file is already in public include, and to avoid duplication. The series is meant as base. Implementation of single tap, double tap, freefall, activity/inactivity on top is relatively straight forward and will be upcoming, as soon as this patch set is stabilized. The series reverts the data justification mode of the measurements (right and left-justified) since it comes in more handy. Further the series reverts moving out constant defines to the header file and moves them back into the source file. This is kind of embarassing, and definitely not on purpose. When implementing the features, it became clear what was actually used to be in the header. I hope this is still acceptible, for the learning curve. Signed-off-by: Lothar Rubusch <l.rubusch@xxxxxxxxx> --- v1 -> v2: Fix comments according to Documentation/doc-guide/kernel-doc.rst and missing static declaration of function. --- Lothar Rubusch (22): iio: accel: adxl345: fix comment on probe iio: accel: adxl345: rename variable data to st iio: accel: adxl345: rename struct adxl34x_state iio: accel: adxl345: rename to adxl34x_channels iio: accel: adxl345: measure right-justified iio: accel: adxl345: add function to switch measuring iio: accel: adxl345: initialize IRQ number iio: accel: adxl345: initialize FIFO delay value for SPI iio: accel: adxl345: unexpose private defines iio: accel: adxl345: set interrupt line to INT1 iio: accel: adxl345: import adxl345 general data iio: accel: adxl345: elaborate iio channel definition iio: accel: adxl345: add trigger handler iio: accel: adxl345: read FIFO entries iio: accel: adxl345: reset the FIFO on error iio: accel: adxl345: register trigger ops iio: accel: adxl345: push FIFO data to iio iio: accel: adxl345: start measure at buffer en/disable iio: accel: adxl345: prepare FIFO watermark handling iio: accel: adxl345: use FIFO with watermark IRQ iio: accel: adxl345: sync FIFO reading with sensor iio: accel: adxl345: add debug printout drivers/iio/accel/adxl345.h | 34 +- drivers/iio/accel/adxl345_core.c | 887 +++++++++++++++++++++++++++++-- drivers/iio/accel/adxl345_i2c.c | 2 +- drivers/iio/accel/adxl345_spi.c | 11 +- 4 files changed, 845 insertions(+), 89 deletions(-) -- 2.39.5