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>
This commit is contained in:
Irina Tirdea 2015-01-11 21:10:09 +02:00 committed by Jonathan Cameron
parent cc3c9eecae
commit 5a1a932981
3 changed files with 14 additions and 0 deletions

View File

@ -295,6 +295,7 @@ What: /sys/bus/iio/devices/iio:deviceX/in_rot_from_north_true_tilt_comp_scale
What: /sys/bus/iio/devices/iio:deviceX/in_pressureY_scale What: /sys/bus/iio/devices/iio:deviceX/in_pressureY_scale
What: /sys/bus/iio/devices/iio:deviceX/in_pressure_scale What: /sys/bus/iio/devices/iio:deviceX/in_pressure_scale
What: /sys/bus/iio/devices/iio:deviceX/in_humidityrelative_scale What: /sys/bus/iio/devices/iio:deviceX/in_humidityrelative_scale
What: /sys/bus/iio/devices/iio:deviceX/in_velocity_sqrt(x^2+y^2+z^2)_scale
KernelVersion: 2.6.35 KernelVersion: 2.6.35
Contact: linux-iio@vger.kernel.org Contact: linux-iio@vger.kernel.org
Description: Description:
@ -1164,3 +1165,12 @@ Contact: linux-iio@vger.kernel.org
Description: Description:
This attribute is used to read the number of steps taken by the user This attribute is used to read the number of steps taken by the user
since the last reboot while activated. since the last reboot while activated.
What: /sys/.../iio:deviceX/in_velocity_sqrt(x^2+y^2+z^2)_input
What: /sys/.../iio:deviceX/in_velocity_sqrt(x^2+y^2+z^2)_raw
KernelVersion: 3.19
Contact: linux-iio@vger.kernel.org
Description:
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.

View File

@ -74,6 +74,7 @@ static const char * const iio_chan_type_name_spec[] = {
[IIO_STEPS] = "steps", [IIO_STEPS] = "steps",
[IIO_ENERGY] = "energy", [IIO_ENERGY] = "energy",
[IIO_DISTANCE] = "distance", [IIO_DISTANCE] = "distance",
[IIO_VELOCITY] = "velocity",
}; };
static const char * const iio_modifier_names[] = { static const char * const iio_modifier_names[] = {
@ -99,6 +100,7 @@ static const char * const iio_modifier_names[] = {
[IIO_MOD_JOGGING] = "jogging", [IIO_MOD_JOGGING] = "jogging",
[IIO_MOD_WALKING] = "walking", [IIO_MOD_WALKING] = "walking",
[IIO_MOD_STILL] = "still", [IIO_MOD_STILL] = "still",
[IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z] = "sqrt(x^2+y^2+z^2)",
}; };
/* relies on pairs of these shared then separate */ /* relies on pairs of these shared then separate */

View File

@ -34,6 +34,7 @@ enum iio_chan_type {
IIO_STEPS, IIO_STEPS,
IIO_ENERGY, IIO_ENERGY,
IIO_DISTANCE, IIO_DISTANCE,
IIO_VELOCITY,
}; };
enum iio_modifier { enum iio_modifier {
@ -68,6 +69,7 @@ enum iio_modifier {
IIO_MOD_JOGGING, IIO_MOD_JOGGING,
IIO_MOD_WALKING, IIO_MOD_WALKING,
IIO_MOD_STILL, IIO_MOD_STILL,
IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z,
}; };
enum iio_event_type { enum iio_event_type {