mbox series

[v2,0/4] Add WoM feature as an IIO event

Message ID 20240308151023.379705-1-inv.git-commit@tdk.com (mailing list archive)
Headers show
Series Add WoM feature as an IIO event | expand

Message

inv.git-commit@tdk.com March 8, 2024, 3:10 p.m. UTC
From: Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com>

Add WoM (Wake-on-Motion) feature for all chips supporting it
(all except MPU-6000/6050/9150). WoM compares the magnitude of
the current accel sample with the previous one against a threshold
and returns an interrupt event if the value is higher.

WoM is checking against all axes and maps best to ROC since it
compares the last 2 samples. Thus report WoM as an accel
x|y|z roc_rising IIO event, add system wakeup functionality if
WoM is on and put the chip in low-power mode when the system
is suspended. Corresponding ROC value is in SI units since
the chip is using an absolute value in mg.

v2:
- Rework to use accel x|y|z roc for reporting WoM event
- Use only datasheet advertised bits for MPU-6500 family chips

Jean-Baptiste Maneyrol (4):
  iio: imu: inv_mpu6050: add WoM (Wake-on-Motion) sensor
  iio: imu: inv_mpu6050: add WoM event as accel event
  iio: imu: inv_mpu6050: add new interrupt handler for WoM events
  iio: imu: inv_mpu6050: add WoM suspend wakeup with low-power mode

 drivers/iio/imu/inv_mpu6050/inv_mpu_core.c    | 529 ++++++++++++++++--
 drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h     |  35 +-
 drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c    |  17 +-
 drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c |  86 ++-
 4 files changed, 600 insertions(+), 67 deletions(-)