Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 27be8423 authored by Irina Tirdea's avatar Irina Tirdea Committed by Jonathan Cameron
Browse files

iio: core: Introduce CHANGE event type

A step detector will generate an interrupt each time N step are detected.
A device that has such pedometer functionality is Freescale's MMA9553L:
http://www.freescale.com/files/sensors/doc/ref_manual/MMA9553LSWRM.pdf

.

Introduce IIO_EV_TYPE_CHANGE event type for events that are generated
when the channel passes a threshold on the absolute change in value.

Signed-off-by: default avatarIrina Tirdea <irina.tirdea@intel.com>
Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
parent d37f6836
Loading
Loading
Loading
Loading
+16 −4
Original line number Diff line number Diff line
@@ -891,12 +891,24 @@ Description:
		number or direction is not specified, applies to all channels of
		this type.

What:		/sys/.../events/in_steps_instance_en
KernelVersion:	3.19
What:		/sys/.../events/in_steps_change_en
KernelVersion:	3.20
Contact:	linux-iio@vger.kernel.org
Description:
		Enables or disables step detection. Each time the user takes a step an
		event of this type will be generated.
		Event generated when channel passes a threshold on the absolute
		change in value. E.g. for steps: a step change event is
		generated each time the user takes N steps, where N is set using
		in_steps_change_value.

What:		/sys/.../events/in_steps_change_value
KernelVersion:	3.20
Contact:	linux-iio@vger.kernel.org
Description:
		Specifies the value of change threshold that the
		device is comparing against for the events enabled by
		<type>[Y][_name]_roc[_rising|falling|]_en. E.g. for steps:
		if set to 3, a step change event will be generated every 3
		steps.

What:		/sys/bus/iio/devices/iio:deviceX/trigger/current_trigger
KernelVersion:	2.6.35
+1 −0
Original line number Diff line number Diff line
@@ -198,6 +198,7 @@ static const char * const iio_ev_type_text[] = {
	[IIO_EV_TYPE_THRESH_ADAPTIVE] = "thresh_adaptive",
	[IIO_EV_TYPE_MAG_ADAPTIVE] = "mag_adaptive",
	[IIO_EV_TYPE_INSTANCE] = "instance",
	[IIO_EV_TYPE_CHANGE] = "change",
};

static const char * const iio_ev_dir_text[] = {
+2 −0
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@ static const char * const iio_ev_type_text[] = {
	[IIO_EV_TYPE_THRESH_ADAPTIVE] = "thresh_adaptive",
	[IIO_EV_TYPE_MAG_ADAPTIVE] = "mag_adaptive",
	[IIO_EV_TYPE_INSTANCE] = "instance",
	[IIO_EV_TYPE_CHANGE] = "change",
};

static const char * const iio_ev_dir_text[] = {
@@ -179,6 +180,7 @@ static bool event_is_known(struct iio_event_data *event)
	case IIO_EV_TYPE_THRESH_ADAPTIVE:
	case IIO_EV_TYPE_MAG_ADAPTIVE:
	case IIO_EV_TYPE_INSTANCE:
	case IIO_EV_TYPE_CHANGE:
		break;
	default:
		return false;
+1 −0
Original line number Diff line number Diff line
@@ -79,6 +79,7 @@ enum iio_event_type {
	IIO_EV_TYPE_THRESH_ADAPTIVE,
	IIO_EV_TYPE_MAG_ADAPTIVE,
	IIO_EV_TYPE_INSTANCE,
	IIO_EV_TYPE_CHANGE,
};

enum iio_event_info {