diff options
author | Irina Tirdea <irina.tirdea@intel.com> | 2015-01-11 14:10:09 -0500 |
---|---|---|
committer | Jonathan Cameron <jic23@kernel.org> | 2015-01-27 13:49:54 -0500 |
commit | 5a1a932981415661827f7edd9e99943a2a3b7b67 (patch) | |
tree | 3e08a87f80e1fa5dd60f543cd28d2244428182e5 | |
parent | cc3c9eecaed65b26ee0661e9e9491fd8d48e3907 (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-iio | 10 | ||||
-rw-r--r-- | drivers/iio/industrialio-core.c | 2 | ||||
-rw-r--r-- | include/linux/iio/types.h | 2 |
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 | |||
295 | What: /sys/bus/iio/devices/iio:deviceX/in_pressureY_scale | 295 | What: /sys/bus/iio/devices/iio:deviceX/in_pressureY_scale |
296 | What: /sys/bus/iio/devices/iio:deviceX/in_pressure_scale | 296 | What: /sys/bus/iio/devices/iio:deviceX/in_pressure_scale |
297 | What: /sys/bus/iio/devices/iio:deviceX/in_humidityrelative_scale | 297 | What: /sys/bus/iio/devices/iio:deviceX/in_humidityrelative_scale |
298 | What: /sys/bus/iio/devices/iio:deviceX/in_velocity_sqrt(x^2+y^2+z^2)_scale | ||
298 | KernelVersion: 2.6.35 | 299 | KernelVersion: 2.6.35 |
299 | Contact: linux-iio@vger.kernel.org | 300 | Contact: linux-iio@vger.kernel.org |
300 | Description: | 301 | Description: |
@@ -1164,3 +1165,12 @@ Contact: linux-iio@vger.kernel.org | |||
1164 | Description: | 1165 | Description: |
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 | |||
1169 | What: /sys/.../iio:deviceX/in_velocity_sqrt(x^2+y^2+z^2)_input | ||
1170 | What: /sys/.../iio:deviceX/in_velocity_sqrt(x^2+y^2+z^2)_raw | ||
1171 | KernelVersion: 3.19 | ||
1172 | Contact: linux-iio@vger.kernel.org | ||
1173 | Description: | ||
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 | ||
79 | static const char * const iio_modifier_names[] = { | 80 | static 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 | ||
39 | enum iio_modifier { | 40 | enum 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 | ||
73 | enum iio_event_type { | 75 | enum iio_event_type { |