drivers/iio/imu/inv_icm42600/inv_icm42600.h | 56 +++- drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c | 329 ++++++++++++++++++++- drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c | 2 +- drivers/iio/imu/inv_icm42600/inv_icm42600_core.c | 97 +++++- 4 files changed, 470 insertions(+), 14 deletions(-)
Similar to feature present in older chip, it compares the magnitude of the last 2 accel samples against a threshold and returns an interrupt even if the value is higher. WoM maps best to accel x|y|z ROC event. This series add system wakeup functionality if WoM is on and wakeup is enabled when system suspends. This series also prepare the driver for supporting further APEX features like pedometer, tilt, ... It introduces an apex structure that will hold all APEX settings and track the enable state. Signed-off-by: Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com> --- Changes in v6: - Rework scoped_guard() for not using break - Reword move DMA buffers initial patch to add better explanations - Link to v5: https://lore.kernel.org/r/20250623-losd-3-inv-icm42600-add-wom-support-v5-0-4b3b33e028fe@tdk.com Changes in v5: - Add preliminary patch to move DMA buffers at end of structure. - Check return code of devm_device_init_wakeup() - Rebase and rework series to use kernel types - Link to v4: https://lore.kernel.org/r/20250613-losd-3-inv-icm42600-add-wom-support-v4-0-7e5f554201bf@tdk.com Changes in v4: - Avoid mix of gotos and scoped_guard() - Invert conditionals for better code readability - Switch to use devm_device_init_wakeup() - Several code readabilities improvements - Link to v3: https://lore.kernel.org/r/20250418-losd-3-inv-icm42600-add-wom-support-v3-0-7a180af02bfe@tdk.com Changes in v3: - Rewrites following code review - Link to v2: https://lore.kernel.org/r/20250415-losd-3-inv-icm42600-add-wom-support-v2-0-de94dfb92b7e@tdk.com Changes in v2: - change struct order to avoir DMA overflow - separate wom enable/disable in 2 functions - delete mutex rework - Link to v1: https://lore.kernel.org/r/20250220-losd-3-inv-icm42600-add-wom-support-v1-0-9b937f986954@tdk.com --- Jean-Baptiste Maneyrol (3): iio: imu: inv_icm42600: reorganize DMA aligned buffers in structure iio: imu: inv_icm42600: add WoM support iio: imu: inv_icm42600: add wakeup functionality for Wake-on-Motion drivers/iio/imu/inv_icm42600/inv_icm42600.h | 56 +++- drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c | 329 ++++++++++++++++++++- drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c | 2 +- drivers/iio/imu/inv_icm42600/inv_icm42600_core.c | 97 +++++- 4 files changed, 470 insertions(+), 14 deletions(-) --- base-commit: 42498420746a4db923f03d048a0ebc9bd2371f56 change-id: 20250220-losd-3-inv-icm42600-add-wom-support-0620fef9db23 Best regards, -- Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com>
On Mon, 30 Jun 2025 21:47:28 +0200 Jean-Baptiste Maneyrol via B4 Relay <devnull+jean-baptiste.maneyrol.tdk.com@kernel.org> wrote: > Similar to feature present in older chip, it compares the magnitude of > the last 2 accel samples against a threshold and returns an interrupt > even if the value is higher. > > WoM maps best to accel x|y|z ROC event. This series add system wakeup > functionality if WoM is on and wakeup is enabled when system suspends. > > This series also prepare the driver for supporting further APEX > features like pedometer, tilt, ... It introduces an apex structure that > will hold all APEX settings and track the enable state. Applied to the togreg branch of iio.git and pushed out initially as testing for 0-day to poke at it. Thanks, Jonathan > > Signed-off-by: Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com> > --- > Changes in v6: > - Rework scoped_guard() for not using break > - Reword move DMA buffers initial patch to add better explanations > - Link to v5: https://lore.kernel.org/r/20250623-losd-3-inv-icm42600-add-wom-support-v5-0-4b3b33e028fe@tdk.com > > Changes in v5: > - Add preliminary patch to move DMA buffers at end of structure. > - Check return code of devm_device_init_wakeup() > - Rebase and rework series to use kernel types > - Link to v4: https://lore.kernel.org/r/20250613-losd-3-inv-icm42600-add-wom-support-v4-0-7e5f554201bf@tdk.com > > Changes in v4: > - Avoid mix of gotos and scoped_guard() > - Invert conditionals for better code readability > - Switch to use devm_device_init_wakeup() > - Several code readabilities improvements > - Link to v3: https://lore.kernel.org/r/20250418-losd-3-inv-icm42600-add-wom-support-v3-0-7a180af02bfe@tdk.com > > Changes in v3: > - Rewrites following code review > - Link to v2: https://lore.kernel.org/r/20250415-losd-3-inv-icm42600-add-wom-support-v2-0-de94dfb92b7e@tdk.com > > Changes in v2: > - change struct order to avoir DMA overflow > - separate wom enable/disable in 2 functions > - delete mutex rework > - Link to v1: https://lore.kernel.org/r/20250220-losd-3-inv-icm42600-add-wom-support-v1-0-9b937f986954@tdk.com > > --- > Jean-Baptiste Maneyrol (3): > iio: imu: inv_icm42600: reorganize DMA aligned buffers in structure > iio: imu: inv_icm42600: add WoM support > iio: imu: inv_icm42600: add wakeup functionality for Wake-on-Motion > > drivers/iio/imu/inv_icm42600/inv_icm42600.h | 56 +++- > drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c | 329 ++++++++++++++++++++- > drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c | 2 +- > drivers/iio/imu/inv_icm42600/inv_icm42600_core.c | 97 +++++- > 4 files changed, 470 insertions(+), 14 deletions(-) > --- > base-commit: 42498420746a4db923f03d048a0ebc9bd2371f56 > change-id: 20250220-losd-3-inv-icm42600-add-wom-support-0620fef9db23 > > Best regards,
© 2016 - 2025 Red Hat, Inc.