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, | ||
