[PATCH 0/5] iio: accel: adxl3xx: Add timestamps to FIFO data
From: Md Shofiqul Islam
Date: Sun May 10 2026 - 04:26:10 EST
Five ADXL-family accelerometer drivers (ADXL313, ADXL345, ADXL367,
ADXL372, ADXL380) push buffered samples using iio_push_to_buffers(),
which does not attach a hardware timestamp to the scan data.
Userspace consumers therefore receive samples with no timing
information.
This series adds timestamp support uniformly across the family:
- A scan buffer struct with an aligned_s64 ts field is added to each
driver's state struct. The struct layout ensures the timestamp
field sits at an 8-byte aligned offset as required by
iio_push_to_buffers_with_timestamp().
- In the FIFO push loop, FIFO data is copied into scan.channels via
memcpy(), then iio_push_to_buffers_with_timestamp() is called with
a single timestamp captured once per interrupt with
iio_get_time_ns(). Using one timestamp per IRQ is consistent with
the existing approach in the same handlers for event timestamps.
- For ADXL367, the helper adxl367_push_fifo_data() gains a s64 ts
parameter so the timestamp captured in the IRQ handler is passed
through instead of calling iio_get_time_ns() a second time.
- For ADXL372 and ADXL380, where the IRQ handler already called
iio_get_time_ns() for the event push, the same captured timestamp
is now also passed to the FIFO push, removing the duplicate call.
The ADXL313 and ADXL345 drivers always scan all three axes together
(available_scan_masks contains only the full X|Y|Z mask), so their
scan buffer layout is fixed. The ADXL367, ADXL372, and ADXL380
drivers support variable scan masks; fifo_set_size tracks the number
of enabled channels per sample set and is used as the memcpy length.
Md Shofiqul Islam (5):
iio: accel: adxl372: Add timestamp to FIFO data
iio: accel: adxl380: Add timestamp to FIFO data
iio: accel: adxl367: Add timestamp to FIFO data
iio: accel: adxl313: Add timestamp to FIFO data
iio: accel: adxl345: Add timestamp to FIFO data
drivers/iio/accel/adxl313.h | 4 ++++
drivers/iio/accel/adxl313_core.c | 8 ++++++--
drivers/iio/accel/adxl345_core.c | 12 ++++++++++--
drivers/iio/accel/adxl367.c | 17 +++++++++++++----
drivers/iio/accel/adxl372.c | 13 +++++++++++--
drivers/iio/accel/adxl380.c | 15 ++++++++++++---
6 files changed, 56 insertions(+), 13 deletions(-)
--
2.54.0.windows.1