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

Commit 2f0ecb7c authored by Irina Tirdea's avatar Irina Tirdea Committed by Jonathan Cameron
Browse files

iio: core: Introduce IIO_CHAN_INFO_DEBOUNCE_COUNT and _TIME

The pedometer needs to filter out false steps that might be generated by
tapping the foot, sitting, etc. To do that it computes the number of
steps that occur in a given time and decides the user is moving only
if this value is over a threshold. E.g.: the user starts moving only
if he takes 4 steps in 3 seconds. This filter is applied only when
the user starts moving.

A device that has such pedometer functionality is Freescale's MMA9553L:
http://www.freescale.com/files/sensors/doc/ref_manual/MMA9553LSWRM.pdf

.

To export this feature, this patch introduces IIO_CHAN_INFO_DEBOUNCE_COUNT
and IIO_CHAN_INFO_DEBOUNCE_TIME. For the pedometer, in_steps_debounce_count
will specify the number of steps that need to occur in
in_steps_debounce_time seconds so that the pedometer decides the user is
moving.

Signed-off-by: default avatarIrina Tirdea <irina.tirdea@intel.com>
Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
parent a9afcaa6
Loading
Loading
Loading
Loading
+15 −0
Original line number Original line Diff line number Diff line
@@ -1193,3 +1193,18 @@ Description:
		This attribute is used to read the current speed value of the
		This attribute is used to read the current speed value of the
		user (which is the norm or magnitude of the velocity vector).
		user (which is the norm or magnitude of the velocity vector).
		Units after application of scale are m/s.
		Units after application of scale are m/s.

What:		/sys/.../iio:deviceX/in_steps_debounce_count
KernelVersion:	3.20
Contact:	linux-iio@vger.kernel.org
Description:
		Specifies the number of steps that must occur within
		in_steps_filter_debounce_time for the pedometer to decide the
		consumer is making steps.

What:		/sys/.../iio:deviceX/in_steps_debounce_time
KernelVersion:	3.20
Contact:	linux-iio@vger.kernel.org
Description:
		Specifies number of seconds in which we compute the steps
		that occur in order to decide if the consumer is making steps.
+2 −0
Original line number Original line Diff line number Diff line
@@ -126,6 +126,8 @@ static const char * const iio_chan_info_postfix[] = {
	[IIO_CHAN_INFO_ENABLE] = "en",
	[IIO_CHAN_INFO_ENABLE] = "en",
	[IIO_CHAN_INFO_CALIBHEIGHT] = "calibheight",
	[IIO_CHAN_INFO_CALIBHEIGHT] = "calibheight",
	[IIO_CHAN_INFO_CALIBWEIGHT] = "calibweight",
	[IIO_CHAN_INFO_CALIBWEIGHT] = "calibweight",
	[IIO_CHAN_INFO_DEBOUNCE_COUNT] = "debounce_count",
	[IIO_CHAN_INFO_DEBOUNCE_TIME] = "debounce_time",
};
};


/**
/**
+2 −0
Original line number Original line Diff line number Diff line
@@ -41,6 +41,8 @@ enum iio_chan_info_enum {
	IIO_CHAN_INFO_ENABLE,
	IIO_CHAN_INFO_ENABLE,
	IIO_CHAN_INFO_CALIBHEIGHT,
	IIO_CHAN_INFO_CALIBHEIGHT,
	IIO_CHAN_INFO_CALIBWEIGHT,
	IIO_CHAN_INFO_CALIBWEIGHT,
	IIO_CHAN_INFO_DEBOUNCE_COUNT,
	IIO_CHAN_INFO_DEBOUNCE_TIME,
};
};


enum iio_shared_by {
enum iio_shared_by {