Scale channels are available by axis. For example for accelerometers, in_accel_x_scale, in_accel_y_scale and in_accel_z_scale are available. However, they should be shared by type as documented in Documentation/ABI/testing/sysfs-bus-iio. For each sensor (acceleros, gyros and magnetos) only one value is specified for all the axes. Existing, by axis, entries are preserved in order to to leave the old ABI untouched. Signed-off-by: Gaëtan André <rvlander@xxxxxxxxxxxxxx> --- v1->v2: add comment explaining why we are doing both. include/linux/iio/common/st_sensors.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/include/linux/iio/common/st_sensors.h b/include/linux/iio/common/st_sensors.h index 33e939977444..42663fbab085 100644 --- a/include/linux/iio/common/st_sensors.h +++ b/include/linux/iio/common/st_sensors.h @@ -46,12 +46,19 @@ #define ST_SENSORS_MAX_NAME 17 #define ST_SENSORS_MAX_4WAI 8 +/* + * Scale channels are configured both by type and by axis. + * - By axis to keep the previous ABI and flexibility. + * - By type because it is how some userland + * applications are expecting them (ex: iio-sensor-proxy). + */ #define ST_SENSORS_LSM_CHANNELS(device_type, mask, index, mod, \ ch2, s, endian, rbits, sbits, addr) \ { \ .type = device_type, \ .modified = mod, \ .info_mask_separate = mask, \ + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), \ .info_mask_shared_by_all = BIT(IIO_CHAN_INFO_SAMP_FREQ), \ .scan_index = index, \ .channel2 = ch2, \ base-commit: 2de8c02349f02d014e51b43f306d28fc7a23ea6e -- 2.26.1