diff options
author | Lars-Peter Clausen <lars@metafoo.de> | 2015-05-22 12:17:38 -0400 |
---|---|---|
committer | Jonathan Cameron <jic23@kernel.org> | 2015-05-23 05:49:55 -0400 |
commit | 1ce87f21edf6a071a7cc6bc77d628d7c7650d0d8 (patch) | |
tree | e21dccd1d0abee6c525407f91f60e7141fcd1c6a | |
parent | 2f4adaeebfb6f30fd6cd7a1a1dffe31f8e93a4c9 (diff) |
iio: Add I/Q modifiers
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>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
-rw-r--r-- | Documentation/ABI/testing/sysfs-bus-iio | 46 | ||||
-rw-r--r-- | drivers/iio/industrialio-core.c | 2 | ||||
-rw-r--r-- | include/uapi/linux/iio/types.h | 2 |
3 files changed, 50 insertions, 0 deletions
diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio index f66262c64e2f..bbed111c31b4 100644 --- a/Documentation/ABI/testing/sysfs-bus-iio +++ b/Documentation/ABI/testing/sysfs-bus-iio | |||
@@ -71,6 +71,8 @@ Description: | |||
71 | 71 | ||
72 | What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_raw | 72 | What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_raw |
73 | What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_supply_raw | 73 | What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_supply_raw |
74 | What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_i_raw | ||
75 | What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_q_raw | ||
74 | KernelVersion: 2.6.35 | 76 | KernelVersion: 2.6.35 |
75 | Contact: linux-iio@vger.kernel.org | 77 | Contact: linux-iio@vger.kernel.org |
76 | Description: | 78 | Description: |
@@ -81,6 +83,11 @@ Description: | |||
81 | unique to allow association with event codes. Units after | 83 | unique to allow association with event codes. Units after |
82 | application of scale and offset are millivolts. | 84 | application of scale and offset are millivolts. |
83 | 85 | ||
86 | Channels with 'i' and 'q' modifiers always exist in pairs and both | ||
87 | channels refer to the same signal. The 'i' channel contains the in-phase | ||
88 | component of the signal while the 'q' channel contains the quadrature | ||
89 | component. | ||
90 | |||
84 | What: /sys/bus/iio/devices/iio:deviceX/in_voltageY-voltageZ_raw | 91 | What: /sys/bus/iio/devices/iio:deviceX/in_voltageY-voltageZ_raw |
85 | KernelVersion: 2.6.35 | 92 | KernelVersion: 2.6.35 |
86 | Contact: linux-iio@vger.kernel.org | 93 | Contact: linux-iio@vger.kernel.org |
@@ -246,8 +253,16 @@ What: /sys/bus/iio/devices/iio:deviceX/in_accel_y_offset | |||
246 | What: /sys/bus/iio/devices/iio:deviceX/in_accel_z_offset | 253 | What: /sys/bus/iio/devices/iio:deviceX/in_accel_z_offset |
247 | What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_offset | 254 | What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_offset |
248 | What: /sys/bus/iio/devices/iio:deviceX/in_voltage_offset | 255 | What: /sys/bus/iio/devices/iio:deviceX/in_voltage_offset |
256 | What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_i_offset | ||
257 | What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_q_offset | ||
258 | What: /sys/bus/iio/devices/iio:deviceX/in_voltage_q_offset | ||
259 | What: /sys/bus/iio/devices/iio:deviceX/in_voltage_i_offset | ||
249 | What: /sys/bus/iio/devices/iio:deviceX/in_currentY_offset | 260 | What: /sys/bus/iio/devices/iio:deviceX/in_currentY_offset |
250 | What: /sys/bus/iio/devices/iio:deviceX/in_current_offset | 261 | What: /sys/bus/iio/devices/iio:deviceX/in_current_offset |
262 | What: /sys/bus/iio/devices/iio:deviceX/in_currentY_i_offset | ||
263 | What: /sys/bus/iio/devices/iio:deviceX/in_currentY_q_offset | ||
264 | What: /sys/bus/iio/devices/iio:deviceX/in_current_q_offset | ||
265 | What: /sys/bus/iio/devices/iio:deviceX/in_current_i_offset | ||
251 | What: /sys/bus/iio/devices/iio:deviceX/in_tempY_offset | 266 | What: /sys/bus/iio/devices/iio:deviceX/in_tempY_offset |
252 | What: /sys/bus/iio/devices/iio:deviceX/in_temp_offset | 267 | What: /sys/bus/iio/devices/iio:deviceX/in_temp_offset |
253 | What: /sys/bus/iio/devices/iio:deviceX/in_pressureY_offset | 268 | What: /sys/bus/iio/devices/iio:deviceX/in_pressureY_offset |
@@ -273,14 +288,22 @@ Description: | |||
273 | to the _raw output. | 288 | to the _raw output. |
274 | 289 | ||
275 | What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_scale | 290 | What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_scale |
291 | What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_i_scale | ||
292 | What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_q_scale | ||
276 | What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_supply_scale | 293 | What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_supply_scale |
277 | What: /sys/bus/iio/devices/iio:deviceX/in_voltage_scale | 294 | What: /sys/bus/iio/devices/iio:deviceX/in_voltage_scale |
295 | What: /sys/bus/iio/devices/iio:deviceX/in_voltage_i_scale | ||
296 | What: /sys/bus/iio/devices/iio:deviceX/in_voltage_q_scale | ||
278 | What: /sys/bus/iio/devices/iio:deviceX/in_voltage-voltage_scale | 297 | What: /sys/bus/iio/devices/iio:deviceX/in_voltage-voltage_scale |
279 | What: /sys/bus/iio/devices/iio:deviceX/out_voltageY_scale | 298 | What: /sys/bus/iio/devices/iio:deviceX/out_voltageY_scale |
280 | What: /sys/bus/iio/devices/iio:deviceX/out_altvoltageY_scale | 299 | What: /sys/bus/iio/devices/iio:deviceX/out_altvoltageY_scale |
281 | What: /sys/bus/iio/devices/iio:deviceX/in_currentY_scale | 300 | What: /sys/bus/iio/devices/iio:deviceX/in_currentY_scale |
282 | What: /sys/bus/iio/devices/iio:deviceX/in_currentY_supply_scale | 301 | What: /sys/bus/iio/devices/iio:deviceX/in_currentY_supply_scale |
283 | What: /sys/bus/iio/devices/iio:deviceX/in_current_scale | 302 | What: /sys/bus/iio/devices/iio:deviceX/in_current_scale |
303 | What: /sys/bus/iio/devices/iio:deviceX/in_currentY_i_scale | ||
304 | What: /sys/bus/iio/devices/iio:deviceX/in_currentY_q_scale | ||
305 | What: /sys/bus/iio/devices/iio:deviceX/in_current_i_scale | ||
306 | What: /sys/bus/iio/devices/iio:deviceX/in_current_q_scale | ||
284 | What: /sys/bus/iio/devices/iio:deviceX/in_accel_scale | 307 | What: /sys/bus/iio/devices/iio:deviceX/in_accel_scale |
285 | What: /sys/bus/iio/devices/iio:deviceX/in_accel_peak_scale | 308 | What: /sys/bus/iio/devices/iio:deviceX/in_accel_peak_scale |
286 | What: /sys/bus/iio/devices/iio:deviceX/in_anglvel_scale | 309 | What: /sys/bus/iio/devices/iio:deviceX/in_anglvel_scale |
@@ -328,6 +351,10 @@ Description: | |||
328 | 351 | ||
329 | What /sys/bus/iio/devices/iio:deviceX/in_voltageY_calibscale | 352 | What /sys/bus/iio/devices/iio:deviceX/in_voltageY_calibscale |
330 | What /sys/bus/iio/devices/iio:deviceX/in_voltageY_supply_calibscale | 353 | What /sys/bus/iio/devices/iio:deviceX/in_voltageY_supply_calibscale |
354 | What /sys/bus/iio/devices/iio:deviceX/in_voltageY_i_calibscale | ||
355 | What /sys/bus/iio/devices/iio:deviceX/in_voltageY_q_calibscale | ||
356 | What /sys/bus/iio/devices/iio:deviceX/in_voltage_i_calibscale | ||
357 | What /sys/bus/iio/devices/iio:deviceX/in_voltage_q_calibscale | ||
331 | What /sys/bus/iio/devices/iio:deviceX/in_voltage_calibscale | 358 | What /sys/bus/iio/devices/iio:deviceX/in_voltage_calibscale |
332 | What /sys/bus/iio/devices/iio:deviceX/in_accel_x_calibscale | 359 | What /sys/bus/iio/devices/iio:deviceX/in_accel_x_calibscale |
333 | What /sys/bus/iio/devices/iio:deviceX/in_accel_y_calibscale | 360 | What /sys/bus/iio/devices/iio:deviceX/in_accel_y_calibscale |
@@ -1046,6 +1073,10 @@ What: /sys/.../iio:deviceX/scan_elements/in_timestamp_en | |||
1046 | What: /sys/.../iio:deviceX/scan_elements/in_voltageY_supply_en | 1073 | What: /sys/.../iio:deviceX/scan_elements/in_voltageY_supply_en |
1047 | What: /sys/.../iio:deviceX/scan_elements/in_voltageY_en | 1074 | What: /sys/.../iio:deviceX/scan_elements/in_voltageY_en |
1048 | What: /sys/.../iio:deviceX/scan_elements/in_voltageY-voltageZ_en | 1075 | What: /sys/.../iio:deviceX/scan_elements/in_voltageY-voltageZ_en |
1076 | What: /sys/.../iio:deviceX/scan_elements/in_voltageY_i_en | ||
1077 | What: /sys/.../iio:deviceX/scan_elements/in_voltageY_q_en | ||
1078 | What: /sys/.../iio:deviceX/scan_elements/in_voltage_i_en | ||
1079 | What: /sys/.../iio:deviceX/scan_elements/in_voltage_q_en | ||
1049 | What: /sys/.../iio:deviceX/scan_elements/in_incli_x_en | 1080 | What: /sys/.../iio:deviceX/scan_elements/in_incli_x_en |
1050 | What: /sys/.../iio:deviceX/scan_elements/in_incli_y_en | 1081 | What: /sys/.../iio:deviceX/scan_elements/in_incli_y_en |
1051 | What: /sys/.../iio:deviceX/scan_elements/in_pressureY_en | 1082 | What: /sys/.../iio:deviceX/scan_elements/in_pressureY_en |
@@ -1064,6 +1095,10 @@ What: /sys/.../iio:deviceX/scan_elements/in_incli_type | |||
1064 | What: /sys/.../iio:deviceX/scan_elements/in_voltageY_type | 1095 | What: /sys/.../iio:deviceX/scan_elements/in_voltageY_type |
1065 | What: /sys/.../iio:deviceX/scan_elements/in_voltage_type | 1096 | What: /sys/.../iio:deviceX/scan_elements/in_voltage_type |
1066 | What: /sys/.../iio:deviceX/scan_elements/in_voltageY_supply_type | 1097 | What: /sys/.../iio:deviceX/scan_elements/in_voltageY_supply_type |
1098 | What: /sys/.../iio:deviceX/scan_elements/in_voltageY_i_type | ||
1099 | What: /sys/.../iio:deviceX/scan_elements/in_voltageY_q_type | ||
1100 | What: /sys/.../iio:deviceX/scan_elements/in_voltage_i_type | ||
1101 | What: /sys/.../iio:deviceX/scan_elements/in_voltage_q_type | ||
1067 | What: /sys/.../iio:deviceX/scan_elements/in_timestamp_type | 1102 | What: /sys/.../iio:deviceX/scan_elements/in_timestamp_type |
1068 | What: /sys/.../iio:deviceX/scan_elements/in_pressureY_type | 1103 | What: /sys/.../iio:deviceX/scan_elements/in_pressureY_type |
1069 | What: /sys/.../iio:deviceX/scan_elements/in_pressure_type | 1104 | What: /sys/.../iio:deviceX/scan_elements/in_pressure_type |
@@ -1101,6 +1136,10 @@ Description: | |||
1101 | 1136 | ||
1102 | What: /sys/.../iio:deviceX/scan_elements/in_voltageY_index | 1137 | What: /sys/.../iio:deviceX/scan_elements/in_voltageY_index |
1103 | What: /sys/.../iio:deviceX/scan_elements/in_voltageY_supply_index | 1138 | What: /sys/.../iio:deviceX/scan_elements/in_voltageY_supply_index |
1139 | What: /sys/.../iio:deviceX/scan_elements/in_voltageY_i_index | ||
1140 | What: /sys/.../iio:deviceX/scan_elements/in_voltageY_q_index | ||
1141 | What: /sys/.../iio:deviceX/scan_elements/in_voltage_i_index | ||
1142 | What: /sys/.../iio:deviceX/scan_elements/in_voltage_q_index | ||
1104 | What: /sys/.../iio:deviceX/scan_elements/in_accel_x_index | 1143 | What: /sys/.../iio:deviceX/scan_elements/in_accel_x_index |
1105 | What: /sys/.../iio:deviceX/scan_elements/in_accel_y_index | 1144 | What: /sys/.../iio:deviceX/scan_elements/in_accel_y_index |
1106 | What: /sys/.../iio:deviceX/scan_elements/in_accel_z_index | 1145 | What: /sys/.../iio:deviceX/scan_elements/in_accel_z_index |
@@ -1260,6 +1299,8 @@ Description: | |||
1260 | or without compensation from tilt sensors. | 1299 | or without compensation from tilt sensors. |
1261 | 1300 | ||
1262 | What: /sys/bus/iio/devices/iio:deviceX/in_currentX_raw | 1301 | What: /sys/bus/iio/devices/iio:deviceX/in_currentX_raw |
1302 | What: /sys/bus/iio/devices/iio:deviceX/in_currentX_i_raw | ||
1303 | What: /sys/bus/iio/devices/iio:deviceX/in_currentX_q_raw | ||
1263 | KernelVersion: 3.18 | 1304 | KernelVersion: 3.18 |
1264 | Contact: linux-iio@vger.kernel.org | 1305 | Contact: linux-iio@vger.kernel.org |
1265 | Description: | 1306 | Description: |
@@ -1268,6 +1309,11 @@ Description: | |||
1268 | present, output should be considered as processed with the | 1309 | present, output should be considered as processed with the |
1269 | unit in milliamps. | 1310 | unit in milliamps. |
1270 | 1311 | ||
1312 | Channels with 'i' and 'q' modifiers always exist in pairs and both | ||
1313 | channels refer to the same signal. The 'i' channel contains the in-phase | ||
1314 | component of the signal while the 'q' channel contains the quadrature | ||
1315 | component. | ||
1316 | |||
1271 | What: /sys/.../iio:deviceX/in_energy_en | 1317 | What: /sys/.../iio:deviceX/in_energy_en |
1272 | What: /sys/.../iio:deviceX/in_distance_en | 1318 | What: /sys/.../iio:deviceX/in_distance_en |
1273 | What: /sys/.../iio:deviceX/in_velocity_sqrt(x^2+y^2+z^2)_en | 1319 | 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 9688a88b6198..3524b0de8721 100644 --- a/drivers/iio/industrialio-core.c +++ b/drivers/iio/industrialio-core.c | |||
@@ -101,6 +101,8 @@ static const char * const iio_modifier_names[] = { | |||
101 | [IIO_MOD_WALKING] = "walking", | 101 | [IIO_MOD_WALKING] = "walking", |
102 | [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)", | 103 | [IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z] = "sqrt(x^2+y^2+z^2)", |
104 | [IIO_MOD_I] = "i", | ||
105 | [IIO_MOD_Q] = "q", | ||
104 | }; | 106 | }; |
105 | 107 | ||
106 | /* relies on pairs of these shared then separate */ | 108 | /* 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 5c4601935005..2f8b11722204 100644 --- a/include/uapi/linux/iio/types.h +++ b/include/uapi/linux/iio/types.h | |||
@@ -70,6 +70,8 @@ enum iio_modifier { | |||
70 | IIO_MOD_WALKING, | 70 | IIO_MOD_WALKING, |
71 | IIO_MOD_STILL, | 71 | IIO_MOD_STILL, |
72 | IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z, | 72 | IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z, |
73 | IIO_MOD_I, | ||
74 | IIO_MOD_Q, | ||
73 | }; | 75 | }; |
74 | 76 | ||
75 | enum iio_event_type { | 77 | enum iio_event_type { |