summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIrina Tirdea <irina.tirdea@intel.com>2015-01-11 21:10:11 +0200
committerJonathan Cameron <jic23@kernel.org>2015-01-27 18:49:55 +0000
commit27be84236d75c13a83c45d850390f40b58401d97 (patch)
treead80b4543ccd8e386dcc23662375330a55192990
parentd37f6836fa285882450e28d1cbc5a9b624911e7e (diff)
downloadop-kernel-dev-27be84236d75c13a83c45d850390f40b58401d97.zip
op-kernel-dev-27be84236d75c13a83c45d850390f40b58401d97.tar.gz
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: Irina Tirdea <irina.tirdea@intel.com> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
-rw-r--r--Documentation/ABI/testing/sysfs-bus-iio20
-rw-r--r--drivers/iio/industrialio-event.c1
-rw-r--r--drivers/staging/iio/Documentation/iio_event_monitor.c2
-rw-r--r--include/linux/iio/types.h1
4 files changed, 20 insertions, 4 deletions
diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio
index 71dc8db..c03a140 100644
--- a/Documentation/ABI/testing/sysfs-bus-iio
+++ b/Documentation/ABI/testing/sysfs-bus-iio
@@ -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
diff --git a/drivers/iio/industrialio-event.c b/drivers/iio/industrialio-event.c
index 78cf115..b33ce55 100644
--- a/drivers/iio/industrialio-event.c
+++ b/drivers/iio/industrialio-event.c
@@ -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[] = {
diff --git a/drivers/staging/iio/Documentation/iio_event_monitor.c b/drivers/staging/iio/Documentation/iio_event_monitor.c
index def236a..2e78d58 100644
--- a/drivers/staging/iio/Documentation/iio_event_monitor.c
+++ b/drivers/staging/iio/Documentation/iio_event_monitor.c
@@ -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;
diff --git a/include/linux/iio/types.h b/include/linux/iio/types.h
index c3601c2..3ba3d66 100644
--- a/include/linux/iio/types.h
+++ b/include/linux/iio/types.h
@@ -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 {
OpenPOWER on IntegriCloud