aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIrina Tirdea <irina.tirdea@intel.com>2015-01-11 14:10:09 -0500
committerJonathan Cameron <jic23@kernel.org>2015-01-27 13:49:54 -0500
commit5a1a932981415661827f7edd9e99943a2a3b7b67 (patch)
tree3e08a87f80e1fa5dd60f543cd28d2244428182e5
parentcc3c9eecaed65b26ee0661e9e9491fd8d48e3907 (diff)
iio: core: Introduce IIO_VELOCITY and IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z
Some devices export the current speed value of the user. One of this devices is Freescale's MMA9553L (http://www.freescale.com/files/sensors/doc/ref_manual/MMA9553LSWRM.pdf) that computes the speed of the user based on the number of steps and stride length. Introduce a new channel type VELOCITY and a modifier for the magniture or norm of the velocity vector, IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z. 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-iio10
-rw-r--r--drivers/iio/industrialio-core.c2
-rw-r--r--include/linux/iio/types.h2
3 files changed, 14 insertions, 0 deletions
diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio
index c627a9a1cd56..80b5efb1cdbf 100644
--- a/Documentation/ABI/testing/sysfs-bus-iio
+++ b/Documentation/ABI/testing/sysfs-bus-iio
@@ -295,6 +295,7 @@ What: /sys/bus/iio/devices/iio:deviceX/in_rot_from_north_true_tilt_comp_scale
295What: /sys/bus/iio/devices/iio:deviceX/in_pressureY_scale 295What: /sys/bus/iio/devices/iio:deviceX/in_pressureY_scale
296What: /sys/bus/iio/devices/iio:deviceX/in_pressure_scale 296What: /sys/bus/iio/devices/iio:deviceX/in_pressure_scale
297What: /sys/bus/iio/devices/iio:deviceX/in_humidityrelative_scale 297What: /sys/bus/iio/devices/iio:deviceX/in_humidityrelative_scale
298What: /sys/bus/iio/devices/iio:deviceX/in_velocity_sqrt(x^2+y^2+z^2)_scale
298KernelVersion: 2.6.35 299KernelVersion: 2.6.35
299Contact: linux-iio@vger.kernel.org 300Contact: linux-iio@vger.kernel.org
300Description: 301Description:
@@ -1164,3 +1165,12 @@ Contact: linux-iio@vger.kernel.org
1164Description: 1165Description:
1165 This attribute is used to read the number of steps taken by the user 1166 This attribute is used to read the number of steps taken by the user
1166 since the last reboot while activated. 1167 since the last reboot while activated.
1168
1169What: /sys/.../iio:deviceX/in_velocity_sqrt(x^2+y^2+z^2)_input
1170What: /sys/.../iio:deviceX/in_velocity_sqrt(x^2+y^2+z^2)_raw
1171KernelVersion: 3.19
1172Contact: linux-iio@vger.kernel.org
1173Description:
1174 This attribute is used to read the current speed value of the
1175 user (which is the norm or magnitude of the velocity vector).
1176 Units after application of scale are m/s.
diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
index 655755b49ccd..18a8ab911aab 100644
--- a/drivers/iio/industrialio-core.c
+++ b/drivers/iio/industrialio-core.c
@@ -74,6 +74,7 @@ static const char * const iio_chan_type_name_spec[] = {
74 [IIO_STEPS] = "steps", 74 [IIO_STEPS] = "steps",
75 [IIO_ENERGY] = "energy", 75 [IIO_ENERGY] = "energy",
76 [IIO_DISTANCE] = "distance", 76 [IIO_DISTANCE] = "distance",
77 [IIO_VELOCITY] = "velocity",
77}; 78};
78 79
79static const char * const iio_modifier_names[] = { 80static const char * const iio_modifier_names[] = {
@@ -99,6 +100,7 @@ static const char * const iio_modifier_names[] = {
99 [IIO_MOD_JOGGING] = "jogging", 100 [IIO_MOD_JOGGING] = "jogging",
100 [IIO_MOD_WALKING] = "walking", 101 [IIO_MOD_WALKING] = "walking",
101 [IIO_MOD_STILL] = "still", 102 [IIO_MOD_STILL] = "still",
103 [IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z] = "sqrt(x^2+y^2+z^2)",
102}; 104};
103 105
104/* relies on pairs of these shared then separate */ 106/* relies on pairs of these shared then separate */
diff --git a/include/linux/iio/types.h b/include/linux/iio/types.h
index a7de445222f4..c3601c2c0a9d 100644
--- a/include/linux/iio/types.h
+++ b/include/linux/iio/types.h
@@ -34,6 +34,7 @@ enum iio_chan_type {
34 IIO_STEPS, 34 IIO_STEPS,
35 IIO_ENERGY, 35 IIO_ENERGY,
36 IIO_DISTANCE, 36 IIO_DISTANCE,
37 IIO_VELOCITY,
37}; 38};
38 39
39enum iio_modifier { 40enum iio_modifier {
@@ -68,6 +69,7 @@ enum iio_modifier {
68 IIO_MOD_JOGGING, 69 IIO_MOD_JOGGING,
69 IIO_MOD_WALKING, 70 IIO_MOD_WALKING,
70 IIO_MOD_STILL, 71 IIO_MOD_STILL,
72 IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z,
71}; 73};
72 74
73enum iio_event_type { 75enum iio_event_type {