[PATCH v6 0/5] iio: accel: adxl345: Implement event scaling and ABI compliance

From: Taha Ed-Dafili

Date: Thu Feb 26 2026 - 10:30:38 EST


This series addresses ADXL345 driver non-compliance with the IIO ABI.

Currently, the driver exposes raw threshold values without a scale factor
to convert them to SI units (m/s^2). It also hides the double tap
threshold value because it shares a hardware register with single tap,
which violates ABI expectations.

This series implements `IIO_EV_INFO_SCALE` in the IIO core and applies it
to the ADXL345 driver. It also exposes the missing `IIO_EV_INFO_VALUE` for
double tap, ensuring userspace can correctly interpret all events, and
cleans up related documentation.

Changes in v6:
- Fixed bitmask pipe alignment(Andy Shevchenko).
- Squeezed IIO_EV_INFO_SCALE bitmask insertions to prevent unnecessary
git blame churn on trailing list elements (Andy Shevchenko).
- Removed bouncing mentees mailing list from CC.

Changes in v5:
- Split the series into 5 patches for better logical separation.
- Patch 1: Moved alphabetical sorting of the event attribute table here
(David Lechner).
- Patch 3 (new): Expose `IIO_EV_INFO_VALUE` for the double tap event to
ensure ABI compliance (Jonathan Cameron).
- Patch 5: Add the newly exposed `in_accel_gesture_doubletap_value` to
the documentation.

Changes in v4:
- Fixed missing IIO_EV_INFO_SCALE handling for MAG/MAG_ADAPTIVE events.
- Explicitly rejected writes to IIO_EV_INFO_SCALE with -EINVAL.
- Fixed bitmask ordering and whitespace alignment.
- Updated documentation with exact sysfs scale attributes.

Changes in v3:
- Reverted "axis" to "axes" in documentation.
- Removed repetitive scale values from documentation table.

Changes in v2:
- Added core infrastructure for IIO_EV_INFO_SCALE.
- Implemented event scaling (0.612915 m/s^2) for ADXL345.

Thanks to David Lechner for the structural patch feedback, Jonathan
Cameron for the architectural guidance on ABI compliance, and Andy
Shevchenko for the formatting and git history reviews.

Taha Ed-Dafili (5):
docs: iio: adxl345: grammar and formatting cleanups
iio: core: Add IIO_EV_INFO_SCALE to event info
iio: accel: adxl345: Expose IIO_EV_INFO_VALUE for double tap
iio: accel: adxl345: Implement event scaling for ABI compliance
docs: iio: adxl345: update event attributes and scaling math

Documentation/iio/adxl345.rst | 81 ++++++++++++++++++++------------
drivers/iio/accel/adxl345_core.c | 32 +++++++++----
drivers/iio/industrialio-event.c | 1 +
include/linux/iio/types.h | 1 +
4 files changed, 78 insertions(+), 37 deletions(-)

--
2.47.3