Re: [PATCH] iio: Add I/Q modifiers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 19 May 2015, Lars-Peter Clausen wrote:

> I/Q modifiers can be used to denote signals which are represented by a
> in-phase and a quadrature component.
> 
> The ABI documentation describes the I and Q modifiers for current and
> voltage channels for now as those will be the most likely users.

comments below
 
> Signed-off-by: Lars-Peter Clausen <lars@xxxxxxxxxx>
> ---
>  Documentation/ABI/testing/sysfs-bus-iio | 46 +++++++++++++++++++++++++++++++++
>  drivers/iio/industrialio-core.c         |  2 ++
>  include/uapi/linux/iio/types.h          |  2 ++
>  3 files changed, 50 insertions(+)
> 
> diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio
> index f66262c..85a8e05 100644
> --- a/Documentation/ABI/testing/sysfs-bus-iio
> +++ b/Documentation/ABI/testing/sysfs-bus-iio
> @@ -71,6 +71,8 @@ Description:
>  
>  What:		/sys/bus/iio/devices/iio:deviceX/in_voltageY_raw
>  What:		/sys/bus/iio/devices/iio:deviceX/in_voltageY_supply_raw
> +What:		/sys/bus/iio/devices/iio:deviceX/in_voltageY_i_raw
> +What:		/sys/bus/iio/devices/iio:deviceX/in_voltageY_q_raw
>  KernelVersion:	2.6.35
>  Contact:	linux-iio@xxxxxxxxxxxxxxx
>  Description:
> @@ -81,6 +83,11 @@ Description:
>  		unique to allow association with event codes. Units after
>  		application of scale and offset are millivolts.
>  
> +		Channels with a 'i' and 'q' modifiers always exists in pairs and both

spelling, perhaps:
"Channels with 'i' and 'q' modifiers always exist in pairs and "...
drop 'a', exists -> exist

> +		channels refer to the same signal. The 'i' channel contains the in-phase
> +		component of the signal while the 'q' channel contains the quadrature
> +		component.
> +
>  What:		/sys/bus/iio/devices/iio:deviceX/in_voltageY-voltageZ_raw
>  KernelVersion:	2.6.35
>  Contact:	linux-iio@xxxxxxxxxxxxxxx
> @@ -246,8 +253,16 @@ What:		/sys/bus/iio/devices/iio:deviceX/in_accel_y_offset
>  What:		/sys/bus/iio/devices/iio:deviceX/in_accel_z_offset
>  What:		/sys/bus/iio/devices/iio:deviceX/in_voltageY_offset
>  What:		/sys/bus/iio/devices/iio:deviceX/in_voltage_offset
> +What:		/sys/bus/iio/devices/iio:deviceX/in_voltageY_i_offset
> +What:		/sys/bus/iio/devices/iio:deviceX/in_voltageY_q_offset
> +What:		/sys/bus/iio/devices/iio:deviceX/in_voltage_q_offset
> +What:		/sys/bus/iio/devices/iio:deviceX/in_voltage_i_offset
>  What:		/sys/bus/iio/devices/iio:deviceX/in_currentY_offset
>  What:		/sys/bus/iio/devices/iio:deviceX/in_current_offset
> +What:		/sys/bus/iio/devices/iio:deviceX/in_currentY_i_offset
> +What:		/sys/bus/iio/devices/iio:deviceX/in_currentY_q_offset
> +What:		/sys/bus/iio/devices/iio:deviceX/in_current_q_offset
> +What:		/sys/bus/iio/devices/iio:deviceX/in_current_i_offset
>  What:		/sys/bus/iio/devices/iio:deviceX/in_tempY_offset
>  What:		/sys/bus/iio/devices/iio:deviceX/in_temp_offset
>  What:		/sys/bus/iio/devices/iio:deviceX/in_pressureY_offset
> @@ -273,14 +288,22 @@ Description:
>  		to the _raw output.
>  
>  What:		/sys/bus/iio/devices/iio:deviceX/in_voltageY_scale
> +What:		/sys/bus/iio/devices/iio:deviceX/in_voltageY_i_scale
> +What:		/sys/bus/iio/devices/iio:deviceX/in_voltageY_q_scale
>  What:		/sys/bus/iio/devices/iio:deviceX/in_voltageY_supply_scale
>  What:		/sys/bus/iio/devices/iio:deviceX/in_voltage_scale
> +What:		/sys/bus/iio/devices/iio:deviceX/in_voltage_i_scale
> +What:		/sys/bus/iio/devices/iio:deviceX/in_voltage_q_scale
>  What:		/sys/bus/iio/devices/iio:deviceX/in_voltage-voltage_scale
>  What:		/sys/bus/iio/devices/iio:deviceX/out_voltageY_scale
>  What:		/sys/bus/iio/devices/iio:deviceX/out_altvoltageY_scale
>  What:		/sys/bus/iio/devices/iio:deviceX/in_currentY_scale
>  What:		/sys/bus/iio/devices/iio:deviceX/in_currentY_supply_scale
>  What:		/sys/bus/iio/devices/iio:deviceX/in_current_scale
> +What:		/sys/bus/iio/devices/iio:deviceX/in_currentY_i_scale
> +What:		/sys/bus/iio/devices/iio:deviceX/in_currentY_q_scale
> +What:		/sys/bus/iio/devices/iio:deviceX/in_current_i_scale
> +What:		/sys/bus/iio/devices/iio:deviceX/in_current_q_scale
>  What:		/sys/bus/iio/devices/iio:deviceX/in_accel_scale
>  What:		/sys/bus/iio/devices/iio:deviceX/in_accel_peak_scale
>  What:		/sys/bus/iio/devices/iio:deviceX/in_anglvel_scale
> @@ -328,6 +351,10 @@ Description:
>  
>  What		/sys/bus/iio/devices/iio:deviceX/in_voltageY_calibscale
>  What		/sys/bus/iio/devices/iio:deviceX/in_voltageY_supply_calibscale
> +What		/sys/bus/iio/devices/iio:deviceX/in_voltageY_i_calibscale
> +What		/sys/bus/iio/devices/iio:deviceX/in_voltageY_q_calibscale
> +What		/sys/bus/iio/devices/iio:deviceX/in_voltage_i_calibscale
> +What		/sys/bus/iio/devices/iio:deviceX/in_voltage_q_calibscale
>  What		/sys/bus/iio/devices/iio:deviceX/in_voltage_calibscale
>  What		/sys/bus/iio/devices/iio:deviceX/in_accel_x_calibscale
>  What		/sys/bus/iio/devices/iio:deviceX/in_accel_y_calibscale
> @@ -1046,6 +1073,10 @@ What:		/sys/.../iio:deviceX/scan_elements/in_timestamp_en
>  What:		/sys/.../iio:deviceX/scan_elements/in_voltageY_supply_en
>  What:		/sys/.../iio:deviceX/scan_elements/in_voltageY_en
>  What:		/sys/.../iio:deviceX/scan_elements/in_voltageY-voltageZ_en
> +What:		/sys/.../iio:deviceX/scan_elements/in_voltageY_i_en
> +What:		/sys/.../iio:deviceX/scan_elements/in_voltageY_q_en
> +What:		/sys/.../iio:deviceX/scan_elements/in_voltage_i_en
> +What:		/sys/.../iio:deviceX/scan_elements/in_voltage_q_en
>  What:		/sys/.../iio:deviceX/scan_elements/in_incli_x_en
>  What:		/sys/.../iio:deviceX/scan_elements/in_incli_y_en
>  What:		/sys/.../iio:deviceX/scan_elements/in_pressureY_en
> @@ -1064,6 +1095,10 @@ What:		/sys/.../iio:deviceX/scan_elements/in_incli_type
>  What:		/sys/.../iio:deviceX/scan_elements/in_voltageY_type
>  What:		/sys/.../iio:deviceX/scan_elements/in_voltage_type
>  What:		/sys/.../iio:deviceX/scan_elements/in_voltageY_supply_type
> +What:		/sys/.../iio:deviceX/scan_elements/in_voltageY_i_type
> +What:		/sys/.../iio:deviceX/scan_elements/in_voltageY_q_type
> +What:		/sys/.../iio:deviceX/scan_elements/in_voltage_i_type
> +What:		/sys/.../iio:deviceX/scan_elements/in_voltage_q_type
>  What:		/sys/.../iio:deviceX/scan_elements/in_timestamp_type
>  What:		/sys/.../iio:deviceX/scan_elements/in_pressureY_type
>  What:		/sys/.../iio:deviceX/scan_elements/in_pressure_type
> @@ -1101,6 +1136,10 @@ Description:
>  
>  What:		/sys/.../iio:deviceX/scan_elements/in_voltageY_index
>  What:		/sys/.../iio:deviceX/scan_elements/in_voltageY_supply_index
> +What:		/sys/.../iio:deviceX/scan_elements/in_voltageY_i_index
> +What:		/sys/.../iio:deviceX/scan_elements/in_voltageY_q_index
> +What:		/sys/.../iio:deviceX/scan_elements/in_voltage_i_index
> +What:		/sys/.../iio:deviceX/scan_elements/in_voltage_q_index
>  What:		/sys/.../iio:deviceX/scan_elements/in_accel_x_index
>  What:		/sys/.../iio:deviceX/scan_elements/in_accel_y_index
>  What:		/sys/.../iio:deviceX/scan_elements/in_accel_z_index
> @@ -1260,6 +1299,8 @@ Description:
>  		or without compensation from tilt sensors.
>  
>  What:		/sys/bus/iio/devices/iio:deviceX/in_currentX_raw
> +What:		/sys/bus/iio/devices/iio:deviceX/in_currentX_i_raw
> +What:		/sys/bus/iio/devices/iio:deviceX/in_currentX_q_raw
>  KernelVersion:	3.18
>  Contact:	linux-iio@xxxxxxxxxxxxxxx
>  Description:
> @@ -1268,6 +1309,11 @@ Description:
>  		present, output should be considered as processed with the
>  		unit in milliamps.
>  
> +		Channels with a 'i' and 'q' modifiers always exists in pairs and both
> +		channels refer to the same signal. The 'i' channel contains the in-phase
> +		component of the signal while the 'q' channel contains the quadrature
> +		component.
> +
>  What:		/sys/.../iio:deviceX/in_energy_en
>  What:		/sys/.../iio:deviceX/in_distance_en
>  What:		/sys/.../iio:deviceX/in_velocity_sqrt(x^2+y^2+z^2)_en
> diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
> index 9688a88..3524b0d 100644
> --- a/drivers/iio/industrialio-core.c
> +++ b/drivers/iio/industrialio-core.c
> @@ -101,6 +101,8 @@ static const char * const iio_modifier_names[] = {
>  	[IIO_MOD_WALKING] = "walking",
>  	[IIO_MOD_STILL] = "still",
>  	[IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z] = "sqrt(x^2+y^2+z^2)",
> +	[IIO_MOD_I] = "i",
> +	[IIO_MOD_Q] = "q",
>  };
>  
>  /* relies on pairs of these shared then separate */
> diff --git a/include/uapi/linux/iio/types.h b/include/uapi/linux/iio/types.h
> index 5c46019..2f8b117 100644
> --- a/include/uapi/linux/iio/types.h
> +++ b/include/uapi/linux/iio/types.h
> @@ -70,6 +70,8 @@ enum iio_modifier {
>  	IIO_MOD_WALKING,
>  	IIO_MOD_STILL,
>  	IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z,
> +	IIO_MOD_I,
> +	IIO_MOD_Q,
>  };
>  
>  enum iio_event_type {
> 

-- 

Peter Meerwald
+43-664-2444418 (mobile)
--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux