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: Irina Tirdea <irina.tirdea@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
                This attribute is used to read the current speed value of the
                user (which is the norm or magnitude of the velocity vector).
                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.
 
        [IIO_CHAN_INFO_ENABLE] = "en",
        [IIO_CHAN_INFO_CALIBHEIGHT] = "calibheight",
        [IIO_CHAN_INFO_CALIBWEIGHT] = "calibweight",
+       [IIO_CHAN_INFO_DEBOUNCE_COUNT] = "debounce_count",
+       [IIO_CHAN_INFO_DEBOUNCE_TIME] = "debounce_time",
 };
 
 /**
 
        IIO_CHAN_INFO_ENABLE,
        IIO_CHAN_INFO_CALIBHEIGHT,
        IIO_CHAN_INFO_CALIBWEIGHT,
+       IIO_CHAN_INFO_DEBOUNCE_COUNT,
+       IIO_CHAN_INFO_DEBOUNCE_TIME,
 };
 
 enum iio_shared_by {