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

Taha Ed-Dafili posted 5 patches 1 month, 2 weeks ago
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(-)
[PATCH v6 0/5] iio: accel: adxl345: Implement event scaling and ABI compliance
Posted by Taha Ed-Dafili 1 month, 2 weeks ago
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
Re: [PATCH v6 0/5] iio: accel: adxl345: Implement event scaling and ABI compliance
Posted by David Lechner 1 month, 2 weeks ago
On 2/26/26 9:11 AM, Taha Ed-Dafili wrote:
> This series addresses ADXL345 driver non-compliance with the IIO ABI.
> 
Reviewed-by: David Lechner <dlechner@baylibre.com>
Re: [PATCH v6 0/5] iio: accel: adxl345: Implement event scaling and ABI compliance
Posted by Jonathan Cameron 1 month, 2 weeks ago
On Sat, 28 Feb 2026 10:27:35 -0600
David Lechner <dlechner@baylibre.com> wrote:

> On 2/26/26 9:11 AM, Taha Ed-Dafili wrote:
> > This series addresses ADXL345 driver non-compliance with the IIO ABI.
> >   
> Reviewed-by: David Lechner <dlechner@baylibre.com>
> 

Updated to add your tag.

Thanks,

J
Re: [PATCH v6 0/5] iio: accel: adxl345: Implement event scaling and ABI compliance
Posted by Jonathan Cameron 1 month, 2 weeks ago
On Thu, 26 Feb 2026 15:11:01 +0000
Taha Ed-Dafili <0rayn.dev@gmail.com> wrote:

> 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.
Series applied to the testing branch of iio.git. After that's had a few days
being poked at by the bots, I'll push it out as togreg which is the branch
linux-next picks up.

Thanks,

Jonathan