iio: accel: adxl345: add interrupt based sensor events
From: | Lothar Rubusch <l.rubusch-AT-gmail.com> | |
To: | lars-AT-metafoo.de, Michael.Hennerich-AT-analog.com, jic23-AT-kernel.org | |
Subject: | [PATCH v3 00/15] iio: accel: adxl345: add interrupt based sensor events | |
Date: | Thu, 20 Feb 2025 10:42:19 +0000 | |
Message-ID: | <20250220104234.40958-1-l.rubusch@gmail.com> | |
Cc: | linux-iio-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, eraretuya-AT-gmail.com, l.rubusch-AT-gmail.com | |
Archive-link: | Article |
Add several interrupt based sensor detection events: - single tap - double tap - free fall - activity - inactivity - sample frequency - full frequency g range approach - documentation All the needed parameters for each and methods of adjusting them, and forward a resulting IIO event for each to the IIO channel. Signed-off-by: Lothar Rubusch <l.rubusch@gmail.com> --- v2 -> v3: - generally introduction of regmap cache for all directly stored 8-bit values, specification of volatile regs and cleanup - moving thresholds, unchanged values and flags to regmap cache, in consequence removal of corresponding member values of the state instance - removal of intio and int_map member fields due to regmap cache, thus split of set_interrupts() patches in two parts - rework documentation - rework of ac-bit comment v1 -> v2: - implementation of all events (but tap2 suppress bit) by means IIO ABI - add sample frequency / ODR configuration - add g ranges configuration - add activity/inactivity using auto-sleep and powersave - add dynamic adjustment of default values for activity/inactivity thresholds and time for inactivity based on ODR and g range (can be overwritten) - add sensor documentation --- Lothar Rubusch (15): iio: accel: adxl345: reorganize measurement enable iio: accel: adxl345: add debug register access iio: accel: adxl345: reorganize irq handler iio: accel: adxl345: use regmap cache for INT mapping iio: accel: adxl345: move INT enable to regmap cache iio: accel: adxl345: add single tap feature iio: accel: adxl345: add double tap feature iio: accel: adxl345: add double tap suppress bit iio: accel: adxl345: add freefall feature iio: accel: adxl345: extend sample frequency adjustments iio: accel: adxl345: add g-range configuration iio: accel: adxl345: add activity event feature iio: accel: adxl345: add inactivity feature iio: accel: adxl345: add coupling detection for activity/inactivity docs: iio: add documentation for adxl345 driver Documentation/iio/adxl345.rst | 406 +++++++++ drivers/iio/accel/adxl345.h | 7 +- drivers/iio/accel/adxl345_core.c | 1449 +++++++++++++++++++++++++++--- drivers/iio/accel/adxl345_i2c.c | 2 + drivers/iio/accel/adxl345_spi.c | 2 + 5 files changed, 1762 insertions(+), 104 deletions(-) create mode 100644 Documentation/iio/adxl345.rst -- 2.39.5