Commit 5e1cd3e9 authored by Waqar Hameed's avatar Waqar Hameed Committed by Jonathan Cameron
Browse files

iio: Add event enums for running period and count



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: default avatarWaqar Hameed <waqar.hameed@axis.com>
Link: https://lore.kernel.org/r/ee4a801ae9b9c4716c7bd23d8f79f232351df8bd.1689753076.git.waqar.hameed@axis.com


Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 67060927
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -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.
+2 −0
Original line number Diff line number Diff line
@@ -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)
+2 −0
Original line number Diff line number Diff line
@@ -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