mbox series

[v9,0/4] iio: accel: adxl345: add FIFO operating with IRQ triggered watermark events

Message ID 20241228232949.72487-1-l.rubusch@gmail.com (mailing list archive)
Headers show
Series iio: accel: adxl345: add FIFO operating with IRQ triggered watermark events | expand

Message

Lothar Rubusch Dec. 28, 2024, 11:29 p.m. UTC
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.

Signed-off-by: Lothar Rubusch <l.rubusch@gmail.com>
---
v8 -> v9:
- move FIELD_PREP() usage to a local usage in adxl345_core.c
- remove ADXL345_{SD}_TAP_MSK macros
v7 -> v8:
- remove dt-binding quotation marks
- add DMA alignment
- fix indention, formatting and text alignment
v6 -> v7:
- reorder dt-binding patches
- extracted FIFO specific from constants list
- reorder constants list in header patch to the end
- verify watermark input is within valid range
v5 -> v6:
- dropped justify patch, since unnecessary change to format mask
- added separate dt-bindings patch to remove required interrupts property
- merged FIFO watermark patches
- reworked bitfield handling
- group irq setup in probe()
- several type fixes by smatch and tools
v4 -> v5:
- fix dt-binding for enum array of INT1 and INT2
v3 -> v4:
- fix dt-binding indention 
v2 -> v3:
- reorganize commits, merge the watermark handling
- INT lines are defined by binding
- kfifo is prepared by devm_iio_kfifo_buffer_setup()
- event handler is registered w/ devm_request_threaded_irq()
v1 -> v2:
Fix comments according to Documentation/doc-guide/kernel-doc.rst
and missing static declaration of function.
---
Lothar Rubusch (4):
  iio: accel: adxl345: introduce interrupt handling
  iio: accel: adxl345: initialize FIFO delay value for SPI
  iio: accel: adxl345: add FIFO with watermark events
  iio: accel: adxl345: complete the list of defines

 drivers/iio/accel/adxl345.h      |  77 +++++--
 drivers/iio/accel/adxl345_core.c | 338 ++++++++++++++++++++++++++++++-
 drivers/iio/accel/adxl345_i2c.c  |   2 +-
 drivers/iio/accel/adxl345_spi.c  |   7 +-
 4 files changed, 404 insertions(+), 20 deletions(-)

Comments

Jonathan Cameron Jan. 4, 2025, 1:09 p.m. UTC | #1
On Sat, 28 Dec 2024 23:29:45 +0000
Lothar Rubusch <l.rubusch@gmail.com> wrote:

> 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.
> 
> Signed-off-by: Lothar Rubusch <l.rubusch@gmail.com>
Series applied but with a tweak on patch 3.  Please take a look at the
testing branch where this will sit for a few days,

Jonathan

> ---
> v8 -> v9:
> - move FIELD_PREP() usage to a local usage in adxl345_core.c
> - remove ADXL345_{SD}_TAP_MSK macros
> v7 -> v8:
> - remove dt-binding quotation marks
> - add DMA alignment
> - fix indention, formatting and text alignment
> v6 -> v7:
> - reorder dt-binding patches
> - extracted FIFO specific from constants list
> - reorder constants list in header patch to the end
> - verify watermark input is within valid range
> v5 -> v6:
> - dropped justify patch, since unnecessary change to format mask
> - added separate dt-bindings patch to remove required interrupts property
> - merged FIFO watermark patches
> - reworked bitfield handling
> - group irq setup in probe()
> - several type fixes by smatch and tools
> v4 -> v5:
> - fix dt-binding for enum array of INT1 and INT2
> v3 -> v4:
> - fix dt-binding indention 
> v2 -> v3:
> - reorganize commits, merge the watermark handling
> - INT lines are defined by binding
> - kfifo is prepared by devm_iio_kfifo_buffer_setup()
> - event handler is registered w/ devm_request_threaded_irq()
> v1 -> v2:
> Fix comments according to Documentation/doc-guide/kernel-doc.rst
> and missing static declaration of function.
> ---
> Lothar Rubusch (4):
>   iio: accel: adxl345: introduce interrupt handling
>   iio: accel: adxl345: initialize FIFO delay value for SPI
>   iio: accel: adxl345: add FIFO with watermark events
>   iio: accel: adxl345: complete the list of defines
> 
>  drivers/iio/accel/adxl345.h      |  77 +++++--
>  drivers/iio/accel/adxl345_core.c | 338 ++++++++++++++++++++++++++++++-
>  drivers/iio/accel/adxl345_i2c.c  |   2 +-
>  drivers/iio/accel/adxl345_spi.c  |   7 +-
>  4 files changed, 404 insertions(+), 20 deletions(-)
>
Lothar Rubusch Jan. 5, 2025, 10:22 p.m. UTC | #2
Hi Jonathan, find my answer inlined down below.

On Sat, Jan 4, 2025 at 2:09 PM Jonathan Cameron <jic23@kernel.org> wrote:
>
> On Sat, 28 Dec 2024 23:29:45 +0000
> Lothar Rubusch <l.rubusch@gmail.com> wrote:
>
> > 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.
> >
> > Signed-off-by: Lothar Rubusch <l.rubusch@gmail.com>
> Series applied but with a tweak on patch 3.  Please take a look at the
> testing branch where this will sit for a few days,
>

The patches w/ adjustments are looking fine at the sensor.

[Do I need to say ACK here, or the like? I guess not.]

Thank you so much for applying. I verified several watermark settings
and could observe /proc/interrupts increasing with at a higher and
lower pace, respectively, as expected. I could turn the feature on,
off and back on. I saw the measurements on my sensor as they used to
show up before.

I'll continue with the implementation of the sensor features, and I
will have a more thorough look at it anyway. I really appreciate the
adjustments. Again cleaner!

Best,
L

> Jonathan
>
> > ---
> > v8 -> v9:
> > - move FIELD_PREP() usage to a local usage in adxl345_core.c
> > - remove ADXL345_{SD}_TAP_MSK macros
> > v7 -> v8:
> > - remove dt-binding quotation marks
> > - add DMA alignment
> > - fix indention, formatting and text alignment
> > v6 -> v7:
> > - reorder dt-binding patches
> > - extracted FIFO specific from constants list
> > - reorder constants list in header patch to the end
> > - verify watermark input is within valid range
> > v5 -> v6:
> > - dropped justify patch, since unnecessary change to format mask
> > - added separate dt-bindings patch to remove required interrupts property
> > - merged FIFO watermark patches
> > - reworked bitfield handling
> > - group irq setup in probe()
> > - several type fixes by smatch and tools
> > v4 -> v5:
> > - fix dt-binding for enum array of INT1 and INT2
> > v3 -> v4:
> > - fix dt-binding indention
> > v2 -> v3:
> > - reorganize commits, merge the watermark handling
> > - INT lines are defined by binding
> > - kfifo is prepared by devm_iio_kfifo_buffer_setup()
> > - event handler is registered w/ devm_request_threaded_irq()
> > v1 -> v2:
> > Fix comments according to Documentation/doc-guide/kernel-doc.rst
> > and missing static declaration of function.
> > ---
> > Lothar Rubusch (4):
> >   iio: accel: adxl345: introduce interrupt handling
> >   iio: accel: adxl345: initialize FIFO delay value for SPI
> >   iio: accel: adxl345: add FIFO with watermark events
> >   iio: accel: adxl345: complete the list of defines
> >
> >  drivers/iio/accel/adxl345.h      |  77 +++++--
> >  drivers/iio/accel/adxl345_core.c | 338 ++++++++++++++++++++++++++++++-
> >  drivers/iio/accel/adxl345_i2c.c  |   2 +-
> >  drivers/iio/accel/adxl345_spi.c  |   7 +-
> >  4 files changed, 404 insertions(+), 20 deletions(-)
> >
>