Commit 94a39f2c authored by Ramona Bolboaca's avatar Ramona Bolboaca Committed by Jonathan Cameron
Browse files

iio: Add IIO_DELTA_VELOCITY channel type



The delta velocity is defined as a piece-wise integration of
acceleration data. The delta velocity represents the linear velocity
change between two consecutive measurements and it
is measured in m / s (meters per second).

In order to track the total linear velocity change during a desired
period of time, simply sum-up the delta velocity samples acquired
during that time.

IIO currently does not offer a suitable channel type for this
type of measurements hence this patch adds it.

Signed-off-by: default avatarRamona Bolboaca <ramona.bolboaca@analog.com>
Reviewed-by: default avatarNuno Sa <nuno.sa@analog.com>
Link: https://lore.kernel.org/r/20230808075059.645525-3-ramona.bolboaca@analog.com


Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 744f4990
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -293,6 +293,21 @@ Description:
		angle samples acquired during that time.
		Units after application of scale and offset are radians.

What:		/sys/bus/iio/devices/iio:deviceX/in_deltavelocity_x_raw
What:		/sys/bus/iio/devices/iio:deviceX/in_deltavelocity_y_raw
What:		/sys/bus/iio/devices/iio:deviceX/in_deltavelocity_z_raw
KernelVersion:	6.5
Contact:	linux-iio@vger.kernel.org
Description:
		The linear velocity change between two consecutive samples on x,
		y or z (may be arbitrarily assigned but should match other such
		assignments on device).
		In order to compute the total linear velocity change during a
		desired period of time, the application should sum-up the delta
		velocity samples acquired during that time.
		Units after application of scale and offset are meters per
		second.

What:		/sys/bus/iio/devices/iio:deviceX/in_angl_raw
What:		/sys/bus/iio/devices/iio:deviceX/in_anglY_raw
KernelVersion:	4.17
@@ -476,6 +491,7 @@ What: /sys/bus/iio/devices/iio:deviceX/in_velocity_sqrt(x^2+y^2+z^2)_scale
What:		/sys/bus/iio/devices/iio:deviceX/in_illuminance_scale
What:		/sys/bus/iio/devices/iio:deviceX/in_countY_scale
What:		/sys/bus/iio/devices/iio:deviceX/in_deltaangl_scale
What:		/sys/bus/iio/devices/iio:deviceX/in_deltavelocity_scale
What:		/sys/bus/iio/devices/iio:deviceX/in_angl_scale
What:		/sys/bus/iio/devices/iio:deviceX/in_intensity_x_scale
What:		/sys/bus/iio/devices/iio:deviceX/in_intensity_y_scale
@@ -1350,6 +1366,9 @@ What: /sys/.../iio:deviceX/bufferY/in_accel_z_en
What:		/sys/.../iio:deviceX/bufferY/in_deltaangl_x_en
What:		/sys/.../iio:deviceX/bufferY/in_deltaangl_y_en
What:		/sys/.../iio:deviceX/bufferY/in_deltaangl_z_en
What:		/sys/.../iio:deviceX/bufferY/in_deltavelocity_x_en
What:		/sys/.../iio:deviceX/bufferY/in_deltavelocity_y_en
What:		/sys/.../iio:deviceX/bufferY/in_deltavelocity_z_en
What:		/sys/.../iio:deviceX/bufferY/in_anglvel_x_en
What:		/sys/.../iio:deviceX/bufferY/in_anglvel_y_en
What:		/sys/.../iio:deviceX/bufferY/in_anglvel_z_en
@@ -1381,6 +1400,7 @@ Description:

What:		/sys/.../iio:deviceX/bufferY/in_accel_type
What:		/sys/.../iio:deviceX/bufferY/in_deltaangl_type
What:		/sys/.../iio:deviceX/bufferY/in_deltavelocity_type
What:		/sys/.../iio:deviceX/bufferY/in_anglvel_type
What:		/sys/.../iio:deviceX/bufferY/in_magn_type
What:		/sys/.../iio:deviceX/bufferY/in_incli_type
@@ -1438,6 +1458,9 @@ What: /sys/.../iio:deviceX/bufferY/in_accel_z_index
What:		/sys/.../iio:deviceX/bufferY/in_deltaangl_x_index
What:		/sys/.../iio:deviceX/bufferY/in_deltaangl_y_index
What:		/sys/.../iio:deviceX/bufferY/in_deltaangl_z_index
What:		/sys/.../iio:deviceX/bufferY/in_deltavelocity_x_index
What:		/sys/.../iio:deviceX/bufferY/in_deltavelocity_y_index
What:		/sys/.../iio:deviceX/bufferY/in_deltavelocity_z_index
What:		/sys/.../iio:deviceX/bufferY/in_anglvel_x_index
What:		/sys/.../iio:deviceX/bufferY/in_anglvel_y_index
What:		/sys/.../iio:deviceX/bufferY/in_anglvel_z_index
+1 −0
Original line number Diff line number Diff line
@@ -91,6 +91,7 @@ static const char * const iio_chan_type_name_spec[] = {
	[IIO_PHASE] = "phase",
	[IIO_MASSCONCENTRATION] = "massconcentration",
	[IIO_DELTA_ANGL] = "deltaangl",
	[IIO_DELTA_VELOCITY] = "deltavelocity",
};

static const char * const iio_modifier_names[] = {
+1 −0
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@ enum iio_chan_type {
	IIO_PHASE,
	IIO_MASSCONCENTRATION,
	IIO_DELTA_ANGL,
	IIO_DELTA_VELOCITY,
};

enum iio_modifier {
+2 −0
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@ static const char * const iio_chan_type_name_spec[] = {
	[IIO_PHASE] = "phase",
	[IIO_MASSCONCENTRATION] = "massconcentration",
	[IIO_DELTA_ANGL] = "deltaangl",
	[IIO_DELTA_VELOCITY] = "deltavelocity",
};

static const char * const iio_ev_type_text[] = {
@@ -175,6 +176,7 @@ static bool event_is_known(struct iio_event_data *event)
	case IIO_PHASE:
	case IIO_MASSCONCENTRATION:
	case IIO_DELTA_ANGL:
	case IIO_DELTA_VELOCITY:
		break;
	default:
		return false;