All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] iio: Add I/Q modifiers
@ 2015-05-19 16:26 Lars-Peter Clausen
  2015-05-19 17:32 ` Peter Meerwald
  2015-05-20  5:57 ` Daniel Baluta
  0 siblings, 2 replies; 7+ messages in thread
From: Lars-Peter Clausen @ 2015-05-19 16:26 UTC (permalink / raw)
  To: Jonathan Cameron, Hartmut Knaack, Peter Meerwald
  Cc: linux-iio, Lars-Peter Clausen

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.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 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@vger.kernel.org
 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
+		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@vger.kernel.org
@@ -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@vger.kernel.org
 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 {
-- 
1.8.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] iio: Add I/Q modifiers
  2015-05-19 16:26 [PATCH] iio: Add I/Q modifiers Lars-Peter Clausen
@ 2015-05-19 17:32 ` Peter Meerwald
  2015-05-20  5:57 ` Daniel Baluta
  1 sibling, 0 replies; 7+ messages in thread
From: Peter Meerwald @ 2015-05-19 17:32 UTC (permalink / raw)
  To: Lars-Peter Clausen; +Cc: Jonathan Cameron, Hartmut Knaack, linux-iio

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@metafoo.de>
> ---
>  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@vger.kernel.org
>  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@vger.kernel.org
> @@ -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@vger.kernel.org
>  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)

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] iio: Add I/Q modifiers
  2015-05-19 16:26 [PATCH] iio: Add I/Q modifiers Lars-Peter Clausen
  2015-05-19 17:32 ` Peter Meerwald
@ 2015-05-20  5:57 ` Daniel Baluta
  2015-05-20  7:47   ` Lars-Peter Clausen
  1 sibling, 1 reply; 7+ messages in thread
From: Daniel Baluta @ 2015-05-20  5:57 UTC (permalink / raw)
  To: Lars-Peter Clausen
  Cc: Jonathan Cameron, Hartmut Knaack, Peter Meerwald,
	linux-iio@vger.kernel.org

On Tue, May 19, 2015 at 7:26 PM, Lars-Peter Clausen <lars@metafoo.de> 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.
>

Hi Lars,

Is there a driver exposing this ABI?

Daniel.

> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
> ---
>  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@vger.kernel.org
>  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
> +               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@vger.kernel.org
> @@ -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@vger.kernel.org
>  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 {
> --
> 1.8.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-iio" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] iio: Add I/Q modifiers
  2015-05-20  5:57 ` Daniel Baluta
@ 2015-05-20  7:47   ` Lars-Peter Clausen
  2015-05-20 10:22     ` Daniel Baluta
  0 siblings, 1 reply; 7+ messages in thread
From: Lars-Peter Clausen @ 2015-05-20  7:47 UTC (permalink / raw)
  To: Daniel Baluta
  Cc: Jonathan Cameron, Hartmut Knaack, Peter Meerwald,
	linux-iio@vger.kernel.org

On 05/20/2015 07:57 AM, Daniel Baluta wrote:
> On Tue, May 19, 2015 at 7:26 PM, Lars-Peter Clausen <lars@metafoo.de> 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.
>>
>
> Hi Lars,
>
> Is there a driver exposing this ABI?

There is a driver. It is not yet upstream though.

- Lars

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] iio: Add I/Q modifiers
  2015-05-20  7:47   ` Lars-Peter Clausen
@ 2015-05-20 10:22     ` Daniel Baluta
  2015-05-22 12:36       ` Lars-Peter Clausen
  0 siblings, 1 reply; 7+ messages in thread
From: Daniel Baluta @ 2015-05-20 10:22 UTC (permalink / raw)
  To: Lars-Peter Clausen
  Cc: Jonathan Cameron, Hartmut Knaack, Peter Meerwald,
	linux-iio@vger.kernel.org

On Wed, May 20, 2015 at 10:47 AM, Lars-Peter Clausen <lars@metafoo.de> wrote:
> On 05/20/2015 07:57 AM, Daniel Baluta wrote:
>>
>> On Tue, May 19, 2015 at 7:26 PM, Lars-Peter Clausen <lars@metafoo.de>
>> 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.
>>>
>>
>> Hi Lars,
>>
>> Is there a driver exposing this ABI?
>
>
> There is a driver. It is not yet upstream though.

In this case we should try to upstream that driver too. Or at least,
add an example
entry in our IIO dummy driver.

It does make any sense to expose an ABI if no one is using it.

Daniel.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] iio: Add I/Q modifiers
  2015-05-20 10:22     ` Daniel Baluta
@ 2015-05-22 12:36       ` Lars-Peter Clausen
  2015-05-22 12:50         ` Daniel Baluta
  0 siblings, 1 reply; 7+ messages in thread
From: Lars-Peter Clausen @ 2015-05-22 12:36 UTC (permalink / raw)
  To: Daniel Baluta
  Cc: Jonathan Cameron, Hartmut Knaack, Peter Meerwald,
	linux-iio@vger.kernel.org

On 05/20/2015 12:22 PM, Daniel Baluta wrote:
> On Wed, May 20, 2015 at 10:47 AM, Lars-Peter Clausen <lars@metafoo.de> wrote:
>> On 05/20/2015 07:57 AM, Daniel Baluta wrote:
>>>
>>> On Tue, May 19, 2015 at 7:26 PM, Lars-Peter Clausen <lars@metafoo.de>
>>> 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.
>>>>
>>>
>>> Hi Lars,
>>>
>>> Is there a driver exposing this ABI?
>>
>>
>> There is a driver. It is not yet upstream though.
>
> In this case we should try to upstream that driver too. Or at least,
> add an example
> entry in our IIO dummy driver.

The driver will go upstream eventually, but there are a quite a few 
infrastructure dependencies, both in IIO and other parts of the kernel, that 
need to go upstream first. Sometimes it makes sense to split things into 
smaller parts and submit those things that are simple and ready rather than 
accumulating a patch-bomb of 50+ patches.

>
> It does make any sense to expose an ABI if no one is using it.

I'm using it :)

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] iio: Add I/Q modifiers
  2015-05-22 12:36       ` Lars-Peter Clausen
@ 2015-05-22 12:50         ` Daniel Baluta
  0 siblings, 0 replies; 7+ messages in thread
From: Daniel Baluta @ 2015-05-22 12:50 UTC (permalink / raw)
  To: Lars-Peter Clausen
  Cc: Jonathan Cameron, Hartmut Knaack, Peter Meerwald,
	linux-iio@vger.kernel.org

On Fri, May 22, 2015 at 3:36 PM, Lars-Peter Clausen <lars@metafoo.de> wrote:
> On 05/20/2015 12:22 PM, Daniel Baluta wrote:
>>
>> On Wed, May 20, 2015 at 10:47 AM, Lars-Peter Clausen <lars@metafoo.de>
>> wrote:
>>>
>>> On 05/20/2015 07:57 AM, Daniel Baluta wrote:
>>>>
>>>>
>>>> On Tue, May 19, 2015 at 7:26 PM, Lars-Peter Clausen <lars@metafoo.de>
>>>> 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.
>>>>>
>>>>
>>>> Hi Lars,
>>>>
>>>> Is there a driver exposing this ABI?
>>>
>>>
>>>
>>> There is a driver. It is not yet upstream though.
>>
>>
>> In this case we should try to upstream that driver too. Or at least,
>> add an example
>> entry in our IIO dummy driver.
>
>
> The driver will go upstream eventually, but there are a quite a few
> infrastructure dependencies, both in IIO and other parts of the kernel, that
> need to go upstream first. Sometimes it makes sense to split things into
> smaller parts and submit those things that are simple and ready rather than
> accumulating a patch-bomb of 50+ patches.
>
>>
>> It does make any sense to expose an ABI if no one is using it.
>
>
> I'm using it :)

Not sure that's enough :).

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-05-22 12:50 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-19 16:26 [PATCH] iio: Add I/Q modifiers Lars-Peter Clausen
2015-05-19 17:32 ` Peter Meerwald
2015-05-20  5:57 ` Daniel Baluta
2015-05-20  7:47   ` Lars-Peter Clausen
2015-05-20 10:22     ` Daniel Baluta
2015-05-22 12:36       ` Lars-Peter Clausen
2015-05-22 12:50         ` Daniel Baluta

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.