iio: Add event enums for running period and count
authorWaqar Hameed <waqar.hameed@axis.com>
Wed, 19 Jul 2023 07:51:17 +0000 (09:51 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 23 Jul 2023 12:16:18 +0000 (13:16 +0100)
There are devices (such as Murata IRS-D200 PIR proximity sensor) that
check the data signal with a running period. I.e. for a specified time,
they count the number of conditions that have occurred, and then signal
if that is more than a specified amount.

`IIO_EV_INFO_PERIOD` resets when the condition no longer is true and is
therefore not suitable for these devices. Add a new `iio_event_info`
`IIO_EV_INFO_RUNNING_PERIOD` that can be used as a running period. Also
add a new `IIO_EV_INFO_RUNNING_COUNT` that can be used to specify the
number of conditions that must occur during this running period.

Signed-off-by: Waqar Hameed <waqar.hameed@axis.com>
Link: https://lore.kernel.org/r/ee4a801ae9b9c4716c7bd23d8f79f232351df8bd.1689753076.git.waqar.hameed@axis.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Documentation/ABI/testing/sysfs-bus-iio
drivers/iio/industrialio-event.c
include/linux/iio/types.h

index 7140e8e..a2854dc 100644 (file)
@@ -2163,3 +2163,19 @@ Contact: linux-iio@vger.kernel.org
 Description:
                An example format is 16-bytes, 2-digits-per-byte, HEX-string
                representing the sensor unique ID number.
+
+What:          /sys/.../events/in_proximity_thresh_either_runningperiod
+KernelVersion: 6.6
+Contact:       linux-iio@vger.kernel.org
+Description:
+               A running period of time (in seconds) for which
+               in_proximity_thresh_either_runningcount amount of conditions
+               must occur before an event is generated. If direction is not
+               specified then this period applies to both directions.
+
+What:          /sys/.../events/in_proximity_thresh_either_runningcount
+KernelVersion: 6.6
+Contact:       linux-iio@vger.kernel.org
+Description:
+               Number of conditions that must occur, during a running
+               period, before an event is generated.
index f77ce49..19f7a91 100644 (file)
@@ -252,6 +252,8 @@ static const char * const iio_ev_info_text[] = {
        [IIO_EV_INFO_TIMEOUT] = "timeout",
        [IIO_EV_INFO_RESET_TIMEOUT] = "reset_timeout",
        [IIO_EV_INFO_TAP2_MIN_DELAY] = "tap2_min_delay",
+       [IIO_EV_INFO_RUNNING_PERIOD] = "runningperiod",
+       [IIO_EV_INFO_RUNNING_COUNT] = "runningcount",
 };
 
 static enum iio_event_direction iio_ev_attr_dir(struct iio_dev_attr *attr)
index 82faa98..117bde7 100644 (file)
@@ -19,6 +19,8 @@ enum iio_event_info {
        IIO_EV_INFO_TIMEOUT,
        IIO_EV_INFO_RESET_TIMEOUT,
        IIO_EV_INFO_TAP2_MIN_DELAY,
+       IIO_EV_INFO_RUNNING_PERIOD,
+       IIO_EV_INFO_RUNNING_COUNT,
 };
 
 #define IIO_VAL_INT 1