mbox series

[v4,0/2] iio: Add single and double tap events support

Message ID 20220831063117.4141-1-jagathjog1996@gmail.com (mailing list archive)
Headers show
Series iio: Add single and double tap events support | expand

Message

Jagath Jog J Aug. 31, 2022, 6:31 a.m. UTC
This patch series adds new event type for tap called gesture and direction
is used to differentiate single and double tap. This series adds single
and double tap support for bma400 accelerometer device driver.

Changes since v3
1. Added a macro for the length of the tap configuration arrays.
2. Corrected a grammar mistake.
3. Arranged the local variables in reverse Xmas tree order.

Changes since v2
1. Replaced doubletap_tap_2min to doubletap_tap2_min.
2. Added ABI docs for available attributes which lists tap configurations
   values.
3. Added 'tap' in the naming of available attributes which are related to
   tap configurations.
5. Added check for channel type in _read_event_value() and
   _write_event_value().
6. KernelVersion changed to 6.1.
7. Corrected typos.

Changes since v1
1. Included headers in alphabetical order.
2. Changing tap_event_en variable name to tap_event_en_bitmask since it is
   used in bit manipulation operation.
3. Assigning boolean value to step_event_en and activity_event_en instead
   of 0, since they are boolean type members.
4. Using local variable for regmap_read() instead for *val itself.
5. Correcting typos.
6. Remove of IIO_EV_INFO_PERIOD.
7. Now all 4 tap controls like threshold, quiet, tics_dt and quiet_dt can
   be configured from the userspace.
8. Introducing new event info IIO_EV_INFO_RESET_TIMEOUT, and
   IIO_EV_INFO_TAP_2MIN_DELAY into iio_event_info.
9. Creating custom read/write attributes for tics_dt called
   in_accel_gesture_maxtomin_time.
10. Time based tap controls can be configured in seconds instead of raw
    values.
11. Provided all available values for time base tap controls in seconds.
12. Adding one more MODULE_AUTHOR().

Changes since RFC
1. Corrected the "quite" typo to "quiet".
2. Added proper reference and name of the section from datasheet.
3. Changed the ABI documentation to make it more generic.
4. Added ABI documentation for double tap quiet period.
5. Added available list by registering new event attribute for tap
   threshold values and double tap quiet period values.
6. Sending both single and double tap events separately.
8. Removed checking for tap enabled while changing data rate.
9. Returning invalid with error message if the input data rate is not
   200Hz while enabling tap interrupts.
7. Added datasheet reference for interrupt engine overrun.

Jagath Jog J (2):
  iio: Add new event type gesture and use direction for single and
    double tap
  iio: accel: bma400: Add support for single and double tap events

 Documentation/ABI/testing/sysfs-bus-iio |  69 +++++
 drivers/iio/accel/bma400.h              |  14 +
 drivers/iio/accel/bma400_core.c         | 343 +++++++++++++++++++++++-
 drivers/iio/industrialio-event.c        |   7 +-
 include/linux/iio/types.h               |   2 +
 include/uapi/linux/iio/types.h          |   3 +
 tools/iio/iio_event_monitor.c           |   8 +-
 7 files changed, 434 insertions(+), 12 deletions(-)

Comments

Jonathan Cameron Sept. 4, 2022, 4:38 p.m. UTC | #1
On Wed, 31 Aug 2022 12:01:15 +0530
Jagath Jog J <jagathjog1996@gmail.com> wrote:

> This patch series adds new event type for tap called gesture and direction
> is used to differentiate single and double tap. This series adds single
> and double tap support for bma400 accelerometer device driver.

Applied to the togreg branch of iio.git and initially pushed out as testing
for 0-day to see if it can find things we missed.

I'm still open for comments on this if anyone interested has a chance to look
at the ABI, but changes will need to come as patches after I push the
tree out as non rebasing later this week.

Thanks for your hard work on this Jagath - it's a hole that's been there
a very long time so good to fill it in :)


Jonathan
> 
> Changes since v3
> 1. Added a macro for the length of the tap configuration arrays.
> 2. Corrected a grammar mistake.
> 3. Arranged the local variables in reverse Xmas tree order.
> 
> Changes since v2
> 1. Replaced doubletap_tap_2min to doubletap_tap2_min.
> 2. Added ABI docs for available attributes which lists tap configurations
>    values.
> 3. Added 'tap' in the naming of available attributes which are related to
>    tap configurations.
> 5. Added check for channel type in _read_event_value() and
>    _write_event_value().
> 6. KernelVersion changed to 6.1.
> 7. Corrected typos.
> 
> Changes since v1
> 1. Included headers in alphabetical order.
> 2. Changing tap_event_en variable name to tap_event_en_bitmask since it is
>    used in bit manipulation operation.
> 3. Assigning boolean value to step_event_en and activity_event_en instead
>    of 0, since they are boolean type members.
> 4. Using local variable for regmap_read() instead for *val itself.
> 5. Correcting typos.
> 6. Remove of IIO_EV_INFO_PERIOD.
> 7. Now all 4 tap controls like threshold, quiet, tics_dt and quiet_dt can
>    be configured from the userspace.
> 8. Introducing new event info IIO_EV_INFO_RESET_TIMEOUT, and
>    IIO_EV_INFO_TAP_2MIN_DELAY into iio_event_info.
> 9. Creating custom read/write attributes for tics_dt called
>    in_accel_gesture_maxtomin_time.
> 10. Time based tap controls can be configured in seconds instead of raw
>     values.
> 11. Provided all available values for time base tap controls in seconds.
> 12. Adding one more MODULE_AUTHOR().
> 
> Changes since RFC
> 1. Corrected the "quite" typo to "quiet".
> 2. Added proper reference and name of the section from datasheet.
> 3. Changed the ABI documentation to make it more generic.
> 4. Added ABI documentation for double tap quiet period.
> 5. Added available list by registering new event attribute for tap
>    threshold values and double tap quiet period values.
> 6. Sending both single and double tap events separately.
> 8. Removed checking for tap enabled while changing data rate.
> 9. Returning invalid with error message if the input data rate is not
>    200Hz while enabling tap interrupts.
> 7. Added datasheet reference for interrupt engine overrun.
> 
> Jagath Jog J (2):
>   iio: Add new event type gesture and use direction for single and
>     double tap
>   iio: accel: bma400: Add support for single and double tap events
> 
>  Documentation/ABI/testing/sysfs-bus-iio |  69 +++++
>  drivers/iio/accel/bma400.h              |  14 +
>  drivers/iio/accel/bma400_core.c         | 343 +++++++++++++++++++++++-
>  drivers/iio/industrialio-event.c        |   7 +-
>  include/linux/iio/types.h               |   2 +
>  include/uapi/linux/iio/types.h          |   3 +
>  tools/iio/iio_event_monitor.c           |   8 +-
>  7 files changed, 434 insertions(+), 12 deletions(-)
>
Jagath Jog J Sept. 5, 2022, 6:04 p.m. UTC | #2
Hi,

On Sun, Sep 4, 2022 at 10:42 PM Jonathan Cameron <jic23@kernel.org> wrote:
>
> On Wed, 31 Aug 2022 12:01:15 +0530
> Jagath Jog J <jagathjog1996@gmail.com> wrote:
>
> > This patch series adds new event type for tap called gesture and direction
> > is used to differentiate single and double tap. This series adds single
> > and double tap support for bma400 accelerometer device driver.
>
> Applied to the togreg branch of iio.git and initially pushed out as testing
> for 0-day to see if it can find things we missed.
>
> I'm still open for comments on this if anyone interested has a chance to look
> at the ABI, but changes will need to come as patches after I push the
> tree out as non rebasing later this week.
>
> Thanks for your hard work on this Jagath - it's a hole that's been there
> a very long time so good to fill it in :)

Thank you Jonathan and Andy for your suggestions and the detailed review.

Jagath

>
>
> Jonathan
> >
> > Changes since v3
> > 1. Added a macro for the length of the tap configuration arrays.
> > 2. Corrected a grammar mistake.
> > 3. Arranged the local variables in reverse Xmas tree order.
> >
> > Changes since v2
> > 1. Replaced doubletap_tap_2min to doubletap_tap2_min.
> > 2. Added ABI docs for available attributes which lists tap configurations
> >    values.
> > 3. Added 'tap' in the naming of available attributes which are related to
> >    tap configurations.
> > 5. Added check for channel type in _read_event_value() and
> >    _write_event_value().
> > 6. KernelVersion changed to 6.1.
> > 7. Corrected typos.
> >
> > Changes since v1
> > 1. Included headers in alphabetical order.
> > 2. Changing tap_event_en variable name to tap_event_en_bitmask since it is
> >    used in bit manipulation operation.
> > 3. Assigning boolean value to step_event_en and activity_event_en instead
> >    of 0, since they are boolean type members.
> > 4. Using local variable for regmap_read() instead for *val itself.
> > 5. Correcting typos.
> > 6. Remove of IIO_EV_INFO_PERIOD.
> > 7. Now all 4 tap controls like threshold, quiet, tics_dt and quiet_dt can
> >    be configured from the userspace.
> > 8. Introducing new event info IIO_EV_INFO_RESET_TIMEOUT, and
> >    IIO_EV_INFO_TAP_2MIN_DELAY into iio_event_info.
> > 9. Creating custom read/write attributes for tics_dt called
> >    in_accel_gesture_maxtomin_time.
> > 10. Time based tap controls can be configured in seconds instead of raw
> >     values.
> > 11. Provided all available values for time base tap controls in seconds.
> > 12. Adding one more MODULE_AUTHOR().
> >
> > Changes since RFC
> > 1. Corrected the "quite" typo to "quiet".
> > 2. Added proper reference and name of the section from datasheet.
> > 3. Changed the ABI documentation to make it more generic.
> > 4. Added ABI documentation for double tap quiet period.
> > 5. Added available list by registering new event attribute for tap
> >    threshold values and double tap quiet period values.
> > 6. Sending both single and double tap events separately.
> > 8. Removed checking for tap enabled while changing data rate.
> > 9. Returning invalid with error message if the input data rate is not
> >    200Hz while enabling tap interrupts.
> > 7. Added datasheet reference for interrupt engine overrun.
> >
> > Jagath Jog J (2):
> >   iio: Add new event type gesture and use direction for single and
> >     double tap
> >   iio: accel: bma400: Add support for single and double tap events
> >
> >  Documentation/ABI/testing/sysfs-bus-iio |  69 +++++
> >  drivers/iio/accel/bma400.h              |  14 +
> >  drivers/iio/accel/bma400_core.c         | 343 +++++++++++++++++++++++-
> >  drivers/iio/industrialio-event.c        |   7 +-
> >  include/linux/iio/types.h               |   2 +
> >  include/uapi/linux/iio/types.h          |   3 +
> >  tools/iio/iio_event_monitor.c           |   8 +-
> >  7 files changed, 434 insertions(+), 12 deletions(-)
> >
>