[PATCH v6 0/7] imu: st_lsm6dsx: Add support for rotation sensor

Francesco Lavra posted 7 patches 1 month, 1 week ago
There is a newer version of this series
Documentation/ABI/testing/sysfs-bus-iio       |  52 ++--
Documentation/driver-api/iio/buffers.rst      |   9 +-
Documentation/iio/iio_devbuf.rst              |   3 +-
drivers/iio/accel/adxl313_core.c              |   2 +-
drivers/iio/accel/adxl345_core.c              |   2 +-
drivers/iio/accel/adxl355_core.c              |   4 +-
drivers/iio/accel/adxl367.c                   |   4 +-
drivers/iio/accel/adxl372.c                   |   2 +-
drivers/iio/accel/adxl380.c                   |   4 +-
drivers/iio/accel/bma180.c                    |  10 +-
drivers/iio/accel/bma220_core.c               |   2 +-
drivers/iio/accel/bma400_core.c               |   4 +-
drivers/iio/accel/bmc150-accel-core.c         |   2 +-
drivers/iio/accel/cros_ec_accel_legacy.c      |   2 +-
drivers/iio/accel/fxls8962af-core.c           |   4 +-
drivers/iio/accel/hid-sensor-accel-3d.c       |   2 +-
drivers/iio/accel/kionix-kx022a.c             |   2 +-
drivers/iio/accel/kxcjk-1013.c                |   2 +-
drivers/iio/accel/kxsd9.c                     |   4 +-
drivers/iio/accel/mma7455_core.c              |   2 +-
drivers/iio/accel/mma8452.c                   |   4 +-
drivers/iio/accel/msa311.c                    |   2 +-
drivers/iio/accel/mxc4005.c                   |   2 +-
drivers/iio/accel/sca3000.c                   |   4 +-
drivers/iio/accel/sca3300.c                   |   6 +-
drivers/iio/accel/stk8312.c                   |   2 +-
drivers/iio/accel/stk8ba50.c                  |   2 +-
drivers/iio/adc/ad4000.c                      |   8 +-
drivers/iio/adc/ad4030.c                      |  10 +-
drivers/iio/adc/ad4062.c                      |   8 +-
drivers/iio/adc/ad4080.c                      |   2 +-
drivers/iio/adc/ad4130.c                      |   2 +-
drivers/iio/adc/ad4170-4.c                    |  12 +-
drivers/iio/adc/ad4695.c                      |  24 +-
drivers/iio/adc/ad4851.c                      |  12 +-
drivers/iio/adc/ad7124.c                      |   4 +-
drivers/iio/adc/ad7173.c                      |   6 +-
drivers/iio/adc/ad7191.c                      |   6 +-
drivers/iio/adc/ad7192.c                      |   2 +-
drivers/iio/adc/ad7266.c                      |   6 +-
drivers/iio/adc/ad7280a.c                     |   4 +-
drivers/iio/adc/ad7298.c                      |   4 +-
drivers/iio/adc/ad7380.c                      |  44 ++--
drivers/iio/adc/ad7405.c                      |   2 +-
drivers/iio/adc/ad7476.c                      |   2 +-
drivers/iio/adc/ad7606.c                      |  14 +-
drivers/iio/adc/ad7625.c                      |   2 +-
drivers/iio/adc/ad7766.c                      |   2 +-
drivers/iio/adc/ad7768-1.c                    |   8 +-
drivers/iio/adc/ad7779.c                      |   2 +-
drivers/iio/adc/ad7780.c                      |   2 +-
drivers/iio/adc/ad7791.c                      |   2 +-
drivers/iio/adc/ad7793.c                      |   2 +-
drivers/iio/adc/ad7887.c                      |   2 +-
drivers/iio/adc/ad7923.c                      |   2 +-
drivers/iio/adc/ad7944.c                      |   8 +-
drivers/iio/adc/ad799x.c                      |   2 +-
drivers/iio/adc/ad9467.c                      |   4 +-
drivers/iio/adc/ade9000.c                     |   4 +-
drivers/iio/adc/at91-sama5d2_adc.c            |  10 +-
drivers/iio/adc/at91_adc.c                    |   4 +-
drivers/iio/adc/cc10001_adc.c                 |   4 +-
drivers/iio/adc/cpcap-adc.c                   |   2 +-
drivers/iio/adc/dln2-adc.c                    |   4 +-
drivers/iio/adc/hx711.c                       |   4 +-
drivers/iio/adc/ina2xx-adc.c                  |   8 +-
drivers/iio/adc/ingenic-adc.c                 |  12 +-
drivers/iio/adc/max1027.c                     |   4 +-
drivers/iio/adc/max1118.c                     |   2 +-
drivers/iio/adc/max11205.c                    |   2 +-
drivers/iio/adc/max11410.c                    |   2 +-
drivers/iio/adc/max1363.c                     |   4 +-
drivers/iio/adc/mcp3911.c                     |   2 +-
drivers/iio/adc/mt6359-auxadc.c               |   2 +-
drivers/iio/adc/mt6360-adc.c                  |   2 +-
drivers/iio/adc/mxs-lradc-adc.c               |   6 +-
drivers/iio/adc/nxp-sar-adc.c                 |   2 +-
drivers/iio/adc/pac1921.c                     |   8 +-
drivers/iio/adc/pac1934.c                     |  32 +--
drivers/iio/adc/rockchip_saradc.c             |   2 +-
drivers/iio/adc/rtq6056.c                     |  16 +-
drivers/iio/adc/sd_adc_modulator.c            |   2 +-
drivers/iio/adc/stm32-adc.c                   |   4 +-
drivers/iio/adc/stm32-dfsdm-adc.c             |   2 +-
drivers/iio/adc/ti-adc081c.c                  |   2 +-
drivers/iio/adc/ti-adc0832.c                  |   4 +-
drivers/iio/adc/ti-adc084s021.c               |   2 +-
drivers/iio/adc/ti-adc108s102.c               |   2 +-
drivers/iio/adc/ti-adc12138.c                 |   4 +-
drivers/iio/adc/ti-adc161s626.c               |   4 +-
drivers/iio/adc/ti-ads1015.c                  |   4 +-
drivers/iio/adc/ti-ads1018.c                  |   6 +-
drivers/iio/adc/ti-ads1100.c                  |   2 +-
drivers/iio/adc/ti-ads1119.c                  |   2 +-
drivers/iio/adc/ti-ads124s08.c                |   2 +-
drivers/iio/adc/ti-ads1298.c                  |   2 +-
drivers/iio/adc/ti-ads131e08.c                |   2 +-
drivers/iio/adc/ti-ads7950.c                  |   2 +-
drivers/iio/adc/ti-ads8688.c                  |   2 +-
drivers/iio/adc/ti-lmp92064.c                 |   4 +-
drivers/iio/adc/ti-tlc4541.c                  |   2 +-
drivers/iio/adc/ti-tsc2046.c                  |   2 +-
drivers/iio/adc/ti_am335x_adc.c               |   2 +-
drivers/iio/adc/vf610_adc.c                   |   4 +-
drivers/iio/adc/xilinx-ams.c                  |   2 +-
drivers/iio/adc/xilinx-xadc-core.c            |  10 +-
drivers/iio/addac/ad74115.c                   |   2 +-
drivers/iio/addac/ad74413r.c                  |   2 +-
drivers/iio/chemical/atlas-ezo-sensor.c       |   4 +-
drivers/iio/chemical/atlas-sensor.c           |  12 +-
drivers/iio/chemical/bme680_core.c            |   8 +-
drivers/iio/chemical/ccs811.c                 |   4 +-
drivers/iio/chemical/ens160_core.c            |   4 +-
drivers/iio/chemical/pms7003.c                |   2 +-
drivers/iio/chemical/scd30_core.c             |   2 +-
drivers/iio/chemical/scd4x.c                  |   6 +-
drivers/iio/chemical/sps30.c                  |   2 +-
.../common/cros_ec_sensors/cros_ec_activity.c |   2 +-
.../cros_ec_sensors/cros_ec_lid_angle.c       |   2 +-
.../common/cros_ec_sensors/cros_ec_sensors.c  |   4 +-
drivers/iio/common/scmi_sensors/scmi_iio.c    |   4 +-
.../iio/common/ssp_sensors/ssp_iio_sensor.h   |   4 +-
drivers/iio/dac/ad3552r-hs.c                  |   2 +-
drivers/iio/dac/ad3552r.c                     |   2 +-
drivers/iio/dac/ad5064.c                      |   2 +-
drivers/iio/dac/ad5360.c                      |   2 +-
drivers/iio/dac/ad5380.c                      |   2 +-
drivers/iio/dac/ad5421.c                      |   2 +-
drivers/iio/dac/ad5446.h                      |   2 +-
drivers/iio/dac/ad5449.c                      |   2 +-
drivers/iio/dac/ad5504.c                      |   2 +-
drivers/iio/dac/ad5592r-base.c                |   2 +-
drivers/iio/dac/ad5624r_spi.c                 |   2 +-
drivers/iio/dac/ad5686.c                      |   2 +-
drivers/iio/dac/ad5755.c                      |   2 +-
drivers/iio/dac/ad5761.c                      |   2 +-
drivers/iio/dac/ad5764.c                      |   2 +-
drivers/iio/dac/ad5766.c                      |   2 +-
drivers/iio/dac/ad5791.c                      |   4 +-
drivers/iio/dac/ad7303.c                      |   2 +-
drivers/iio/dac/ad8460.c                      |   2 +-
drivers/iio/dac/ad9739a.c                     |   2 +-
drivers/iio/dac/ltc1660.c                     |   2 +-
drivers/iio/dac/max5522.c                     |   2 +-
drivers/iio/dac/mcp4922.c                     |   2 +-
drivers/iio/dac/stm32-dac.c                   |   2 +-
drivers/iio/dummy/iio_simple_dummy.c          |   8 +-
drivers/iio/gyro/adis16136.c                  |   4 +-
drivers/iio/gyro/adxrs290.c                   |   4 +-
drivers/iio/gyro/bmg160_core.c                |   2 +-
drivers/iio/gyro/fxas21002c_core.c            |   2 +-
drivers/iio/gyro/hid-sensor-gyro-3d.c         |   2 +-
drivers/iio/gyro/itg3200_core.c               |   2 +-
drivers/iio/gyro/mpu3050-core.c               |   4 +-
drivers/iio/health/afe440x.h                  |   2 +-
drivers/iio/health/max30100.c                 |   4 +-
drivers/iio/health/max30102.c                 |   2 +-
drivers/iio/humidity/am2315.c                 |   4 +-
drivers/iio/humidity/hdc100x.c                |   4 +-
drivers/iio/humidity/hid-sensor-humidity.c    |   2 +-
drivers/iio/humidity/hts221_core.c            |   4 +-
drivers/iio/imu/adis.c                        |   2 +-
drivers/iio/imu/adis16400.c                   |  16 +-
drivers/iio/imu/adis16460.c                   |   4 +-
drivers/iio/imu/adis16475.c                   |   6 +-
drivers/iio/imu/adis16480.c                   |   6 +-
drivers/iio/imu/adis16550.c                   |   6 +-
drivers/iio/imu/bmi160/bmi160_core.c          |   2 +-
drivers/iio/imu/bmi270/bmi270_core.c          |   4 +-
drivers/iio/imu/bmi323/bmi323_core.c          |   4 +-
drivers/iio/imu/bno055/bno055.c               |   2 +-
.../iio/imu/inv_icm42600/inv_icm42600_accel.c |   2 +-
.../iio/imu/inv_icm42600/inv_icm42600_gyro.c  |   2 +-
.../iio/imu/inv_icm42600/inv_icm42600_temp.h  |   2 +-
drivers/iio/imu/inv_icm45600/inv_icm45600.h   |   2 +-
.../iio/imu/inv_icm45600/inv_icm45600_accel.c |   2 +-
.../iio/imu/inv_icm45600/inv_icm45600_gyro.c  |   2 +-
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c    |   6 +-
drivers/iio/imu/kmx61.c                       |   4 +-
drivers/iio/imu/smi240.c                      |   4 +-
drivers/iio/imu/smi330/smi330_core.c          |   6 +-
drivers/iio/imu/st_lsm6dsx/Makefile           |   2 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h       |  30 ++-
.../iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c    |  45 +++-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c  |  58 +++++
.../iio/imu/st_lsm6dsx/st_lsm6dsx_fusion.c    | 235 ++++++++++++++++++
drivers/iio/industrialio-buffer.c             |   4 +-
drivers/iio/industrialio-core.c               |   1 +
drivers/iio/light/acpi-als.c                  |   2 +-
drivers/iio/light/adjd_s311.c                 |   2 +-
drivers/iio/light/apds9960.c                  |   2 +-
drivers/iio/light/as73211.c                   |   6 +-
drivers/iio/light/bh1745.c                    |   2 +-
drivers/iio/light/cros_ec_light_prox.c        |   4 +-
drivers/iio/light/gp2ap020a00f.c              |   6 +-
drivers/iio/light/hid-sensor-als.c            |   2 +-
drivers/iio/light/hid-sensor-prox.c           |   2 +-
drivers/iio/light/isl29125.c                  |   2 +-
drivers/iio/light/ltr501.c                    |   4 +-
drivers/iio/light/max44000.c                  |   4 +-
drivers/iio/light/opt4060.c                   |   4 +-
drivers/iio/light/rohm-bu27034.c              |   4 +-
drivers/iio/light/rpr0521.c                   |   6 +-
drivers/iio/light/si1145.c                    |   2 +-
drivers/iio/light/st_uvis25_core.c            |   2 +-
drivers/iio/light/tcs3414.c                   |   2 +-
drivers/iio/light/tcs3472.c                   |   2 +-
drivers/iio/light/vcnl4000.c                  |   2 +-
drivers/iio/light/vcnl4035.c                  |   4 +-
drivers/iio/light/veml6030.c                  |   8 +-
drivers/iio/light/veml6046x00.c               |   8 +-
drivers/iio/light/vl6180.c                    |   6 +-
drivers/iio/magnetometer/af8133j.c            |   2 +-
drivers/iio/magnetometer/ak8974.c             |   2 +-
drivers/iio/magnetometer/ak8975.c             |   2 +-
drivers/iio/magnetometer/als31300.c           |   4 +-
drivers/iio/magnetometer/bmc150_magn.c        |   2 +-
drivers/iio/magnetometer/hid-sensor-magn-3d.c |   2 +-
drivers/iio/magnetometer/hmc5843_core.c       |   4 +-
drivers/iio/magnetometer/mag3110.c            |   4 +-
drivers/iio/magnetometer/rm3100-core.c        |   2 +-
drivers/iio/magnetometer/tlv493d.c            |   4 +-
drivers/iio/magnetometer/tmag5273.c           |   8 +-
drivers/iio/magnetometer/yamaha-yas530.c      |   4 +-
drivers/iio/orientation/hid-sensor-incl-3d.c  |   2 +-
drivers/iio/orientation/hid-sensor-rotation.c |   2 +-
.../position/hid-sensor-custom-intel-hinge.c  |   6 +-
drivers/iio/potentiostat/lmp91000.c           |   2 +-
drivers/iio/pressure/abp2030pa.c              |   4 +-
drivers/iio/pressure/bmp280-core.c            |  18 +-
drivers/iio/pressure/cros_ec_baro.c           |   4 +-
drivers/iio/pressure/dlhl60d.c                |   4 +-
drivers/iio/pressure/hid-sensor-press.c       |   2 +-
drivers/iio/pressure/hsc030pa.c               |   4 +-
drivers/iio/pressure/mpl3115.c                |   4 +-
drivers/iio/pressure/mprls0025pa.c            |   2 +-
drivers/iio/pressure/ms5611_core.c            |   4 +-
drivers/iio/pressure/rohm-bm1390.c            |   4 +-
drivers/iio/pressure/st_pressure_core.c       |  12 +-
drivers/iio/pressure/zpa2326.c                |   4 +-
drivers/iio/proximity/as3935.c                |   2 +-
drivers/iio/proximity/hx9023s.c               |   2 +-
drivers/iio/proximity/irsd200.c               |   2 +-
drivers/iio/proximity/isl29501.c              |   2 +-
drivers/iio/proximity/mb1232.c                |   2 +-
.../iio/proximity/pulsedlight-lidar-lite-v2.c |   2 +-
drivers/iio/proximity/srf08.c                 |   2 +-
drivers/iio/proximity/sx9310.c                |   2 +-
drivers/iio/proximity/sx9324.c                |   2 +-
drivers/iio/proximity/sx9360.c                |   4 +-
drivers/iio/proximity/sx9500.c                |   2 +-
drivers/iio/proximity/vl53l0x-i2c.c           |   2 +-
drivers/iio/resolver/ad2s1210.c               |   4 +-
.../iio/temperature/hid-sensor-temperature.c  |   2 +-
drivers/iio/temperature/maxim_thermocouple.c  |   6 +-
drivers/iio/temperature/tmp006.c              |   4 +-
include/linux/iio/common/st_sensors.h         |   2 +-
include/linux/iio/iio.h                       |   6 +-
include/linux/iio/imu/adis.h                  |   6 +-
include/uapi/linux/iio/types.h                |   1 +
260 files changed, 905 insertions(+), 545 deletions(-)
create mode 100644 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_fusion.c
[PATCH v6 0/7] imu: st_lsm6dsx: Add support for rotation sensor
Posted by Francesco Lavra 1 month, 1 week ago
This series adds support for the rotation sensor functionality present in
some chips from the ST LSM6DSX IMU family.
The IIO ABI has been amended to allow the use of floating-point data and
custom (driver-specific) channels in IIO buffers.
Tested on LSM6DSV16X.

Changes from v5 [5]:
- cleaned up FIFO data representation in st_lsm6dsx_read_tagged_fifo() to
  avoid casting (Andy, Jonathan)
- renamed 'sign' field to `format` in struct iio_scan_type
- added support for IEEE 754 floating-point format in buffer scan elements
- added custom data type in the ABI (IIO_CUSTOM in enum iio_chan_type)
  (Jonathan)
- added driver document in Documentation/iio/ (Jonathan)

Changes from v4 [4]:
- changed data parameter in st_lsm6dsx_push_tagged_data() to __le16 *
  (Andy)

Changes from v3 [3]:
- added patch 3 (Andy)
- removed unneeded checks for negative return values in st_lsm6dsx_fusion.c
  (Andy)
- replaced st_lsm6dsx_sf_set_page function with
  st_lsm6dsx_sf_page_enable/disable (Andy)
- used reversed xmas tree ordering for local variables (Andy)
- added parentheses to MILLI / MICRO in st_lsm6dsx_sf_write_raw (Andy)
- added check for string truncation in st_lsm6dsx_sf_probe (Andy)

Changes from v2 [2]:
- amended description of patch 2 to point out that there are no supported
  gyro events (Jonathan)
- removed superfluous parentheses in st_lsm6dsx_fifo_setup (Lorenzo)
- added Lorenzo's acked-by tag to patch 3
- added missing checks of st_lsm6dsx_sf_set_page() return value (Jonathan)
- added comment in st_lsm6dsx_sf_write_raw (Jonathan)

Changes from v1 [1]:
- swapped patches 1 and 2 (Jonathan)
- miscellaneous stylistic changes (Andy)
- fixed usage of MICRO and MILLI constants in st_lsm6dsx_sf_read_raw and
  st_lsm6dsx_sf_write_raw (Andy)
- replaced scnprintf() with sysfs_emit_at() in
  st_lsm6dsx_sf_sampling_freq_avail (Andy)
- replaced scnprintf() with snprintf() in st_lsm6dsx_sf_probe (Andy)
- clarified in a comment in st_lsm6dsx_set_fifo_odr() that only internal
  sensors have a FIFO ODR configuration register (Jonathan)
- modified patch 3 description to explain justification for the extra IIO
  device (Jonathan)
- moved page lock from st_lsm6dsx_sf_set_page() to the callers (Jonathan)
- s/magnetometer/gyroscope/ in patch 2 description

[1] https://lore.kernel.org/linux-iio/20260109181528.154127-1-flavra@baylibre.com/T/
[2] https://lore.kernel.org/linux-iio/20260115122431.1014630-1-flavra@baylibre.com/T/
[3] https://lore.kernel.org/linux-iio/20260119100449.1559624-1-flavra@baylibre.com/T/
[4] https://lore.kernel.org/linux-iio/20260121112758.1831077-1-flavra@baylibre.com/T/
[5] https://lore.kernel.org/linux-iio/20260122162335.2020006-1-flavra@baylibre.com/T/

Francesco Lavra (7):
  iio: imu: st_lsm6dsx: Set FIFO ODR for accelerometer and gyroscope
    only
  iio: imu: st_lsm6dsx: Set buffer sampling frequency for accelerometer
    only
  iio: imu: st_lsm6dsx: Fix check for invalid samples from FIFO
  iio: Rename 'sign' field to `format` in struct iio_scan_type
  iio: ABI: Add support for floating-point numbers in buffer scan
    elements
  iio: ABI: Add custom data type
  iio: imu: st_lsm6dsx: Add support for rotation sensor

 Documentation/ABI/testing/sysfs-bus-iio       |  52 ++--
 Documentation/driver-api/iio/buffers.rst      |   9 +-
 Documentation/iio/iio_devbuf.rst              |   3 +-
 drivers/iio/accel/adxl313_core.c              |   2 +-
 drivers/iio/accel/adxl345_core.c              |   2 +-
 drivers/iio/accel/adxl355_core.c              |   4 +-
 drivers/iio/accel/adxl367.c                   |   4 +-
 drivers/iio/accel/adxl372.c                   |   2 +-
 drivers/iio/accel/adxl380.c                   |   4 +-
 drivers/iio/accel/bma180.c                    |  10 +-
 drivers/iio/accel/bma220_core.c               |   2 +-
 drivers/iio/accel/bma400_core.c               |   4 +-
 drivers/iio/accel/bmc150-accel-core.c         |   2 +-
 drivers/iio/accel/cros_ec_accel_legacy.c      |   2 +-
 drivers/iio/accel/fxls8962af-core.c           |   4 +-
 drivers/iio/accel/hid-sensor-accel-3d.c       |   2 +-
 drivers/iio/accel/kionix-kx022a.c             |   2 +-
 drivers/iio/accel/kxcjk-1013.c                |   2 +-
 drivers/iio/accel/kxsd9.c                     |   4 +-
 drivers/iio/accel/mma7455_core.c              |   2 +-
 drivers/iio/accel/mma8452.c                   |   4 +-
 drivers/iio/accel/msa311.c                    |   2 +-
 drivers/iio/accel/mxc4005.c                   |   2 +-
 drivers/iio/accel/sca3000.c                   |   4 +-
 drivers/iio/accel/sca3300.c                   |   6 +-
 drivers/iio/accel/stk8312.c                   |   2 +-
 drivers/iio/accel/stk8ba50.c                  |   2 +-
 drivers/iio/adc/ad4000.c                      |   8 +-
 drivers/iio/adc/ad4030.c                      |  10 +-
 drivers/iio/adc/ad4062.c                      |   8 +-
 drivers/iio/adc/ad4080.c                      |   2 +-
 drivers/iio/adc/ad4130.c                      |   2 +-
 drivers/iio/adc/ad4170-4.c                    |  12 +-
 drivers/iio/adc/ad4695.c                      |  24 +-
 drivers/iio/adc/ad4851.c                      |  12 +-
 drivers/iio/adc/ad7124.c                      |   4 +-
 drivers/iio/adc/ad7173.c                      |   6 +-
 drivers/iio/adc/ad7191.c                      |   6 +-
 drivers/iio/adc/ad7192.c                      |   2 +-
 drivers/iio/adc/ad7266.c                      |   6 +-
 drivers/iio/adc/ad7280a.c                     |   4 +-
 drivers/iio/adc/ad7298.c                      |   4 +-
 drivers/iio/adc/ad7380.c                      |  44 ++--
 drivers/iio/adc/ad7405.c                      |   2 +-
 drivers/iio/adc/ad7476.c                      |   2 +-
 drivers/iio/adc/ad7606.c                      |  14 +-
 drivers/iio/adc/ad7625.c                      |   2 +-
 drivers/iio/adc/ad7766.c                      |   2 +-
 drivers/iio/adc/ad7768-1.c                    |   8 +-
 drivers/iio/adc/ad7779.c                      |   2 +-
 drivers/iio/adc/ad7780.c                      |   2 +-
 drivers/iio/adc/ad7791.c                      |   2 +-
 drivers/iio/adc/ad7793.c                      |   2 +-
 drivers/iio/adc/ad7887.c                      |   2 +-
 drivers/iio/adc/ad7923.c                      |   2 +-
 drivers/iio/adc/ad7944.c                      |   8 +-
 drivers/iio/adc/ad799x.c                      |   2 +-
 drivers/iio/adc/ad9467.c                      |   4 +-
 drivers/iio/adc/ade9000.c                     |   4 +-
 drivers/iio/adc/at91-sama5d2_adc.c            |  10 +-
 drivers/iio/adc/at91_adc.c                    |   4 +-
 drivers/iio/adc/cc10001_adc.c                 |   4 +-
 drivers/iio/adc/cpcap-adc.c                   |   2 +-
 drivers/iio/adc/dln2-adc.c                    |   4 +-
 drivers/iio/adc/hx711.c                       |   4 +-
 drivers/iio/adc/ina2xx-adc.c                  |   8 +-
 drivers/iio/adc/ingenic-adc.c                 |  12 +-
 drivers/iio/adc/max1027.c                     |   4 +-
 drivers/iio/adc/max1118.c                     |   2 +-
 drivers/iio/adc/max11205.c                    |   2 +-
 drivers/iio/adc/max11410.c                    |   2 +-
 drivers/iio/adc/max1363.c                     |   4 +-
 drivers/iio/adc/mcp3911.c                     |   2 +-
 drivers/iio/adc/mt6359-auxadc.c               |   2 +-
 drivers/iio/adc/mt6360-adc.c                  |   2 +-
 drivers/iio/adc/mxs-lradc-adc.c               |   6 +-
 drivers/iio/adc/nxp-sar-adc.c                 |   2 +-
 drivers/iio/adc/pac1921.c                     |   8 +-
 drivers/iio/adc/pac1934.c                     |  32 +--
 drivers/iio/adc/rockchip_saradc.c             |   2 +-
 drivers/iio/adc/rtq6056.c                     |  16 +-
 drivers/iio/adc/sd_adc_modulator.c            |   2 +-
 drivers/iio/adc/stm32-adc.c                   |   4 +-
 drivers/iio/adc/stm32-dfsdm-adc.c             |   2 +-
 drivers/iio/adc/ti-adc081c.c                  |   2 +-
 drivers/iio/adc/ti-adc0832.c                  |   4 +-
 drivers/iio/adc/ti-adc084s021.c               |   2 +-
 drivers/iio/adc/ti-adc108s102.c               |   2 +-
 drivers/iio/adc/ti-adc12138.c                 |   4 +-
 drivers/iio/adc/ti-adc161s626.c               |   4 +-
 drivers/iio/adc/ti-ads1015.c                  |   4 +-
 drivers/iio/adc/ti-ads1018.c                  |   6 +-
 drivers/iio/adc/ti-ads1100.c                  |   2 +-
 drivers/iio/adc/ti-ads1119.c                  |   2 +-
 drivers/iio/adc/ti-ads124s08.c                |   2 +-
 drivers/iio/adc/ti-ads1298.c                  |   2 +-
 drivers/iio/adc/ti-ads131e08.c                |   2 +-
 drivers/iio/adc/ti-ads7950.c                  |   2 +-
 drivers/iio/adc/ti-ads8688.c                  |   2 +-
 drivers/iio/adc/ti-lmp92064.c                 |   4 +-
 drivers/iio/adc/ti-tlc4541.c                  |   2 +-
 drivers/iio/adc/ti-tsc2046.c                  |   2 +-
 drivers/iio/adc/ti_am335x_adc.c               |   2 +-
 drivers/iio/adc/vf610_adc.c                   |   4 +-
 drivers/iio/adc/xilinx-ams.c                  |   2 +-
 drivers/iio/adc/xilinx-xadc-core.c            |  10 +-
 drivers/iio/addac/ad74115.c                   |   2 +-
 drivers/iio/addac/ad74413r.c                  |   2 +-
 drivers/iio/chemical/atlas-ezo-sensor.c       |   4 +-
 drivers/iio/chemical/atlas-sensor.c           |  12 +-
 drivers/iio/chemical/bme680_core.c            |   8 +-
 drivers/iio/chemical/ccs811.c                 |   4 +-
 drivers/iio/chemical/ens160_core.c            |   4 +-
 drivers/iio/chemical/pms7003.c                |   2 +-
 drivers/iio/chemical/scd30_core.c             |   2 +-
 drivers/iio/chemical/scd4x.c                  |   6 +-
 drivers/iio/chemical/sps30.c                  |   2 +-
 .../common/cros_ec_sensors/cros_ec_activity.c |   2 +-
 .../cros_ec_sensors/cros_ec_lid_angle.c       |   2 +-
 .../common/cros_ec_sensors/cros_ec_sensors.c  |   4 +-
 drivers/iio/common/scmi_sensors/scmi_iio.c    |   4 +-
 .../iio/common/ssp_sensors/ssp_iio_sensor.h   |   4 +-
 drivers/iio/dac/ad3552r-hs.c                  |   2 +-
 drivers/iio/dac/ad3552r.c                     |   2 +-
 drivers/iio/dac/ad5064.c                      |   2 +-
 drivers/iio/dac/ad5360.c                      |   2 +-
 drivers/iio/dac/ad5380.c                      |   2 +-
 drivers/iio/dac/ad5421.c                      |   2 +-
 drivers/iio/dac/ad5446.h                      |   2 +-
 drivers/iio/dac/ad5449.c                      |   2 +-
 drivers/iio/dac/ad5504.c                      |   2 +-
 drivers/iio/dac/ad5592r-base.c                |   2 +-
 drivers/iio/dac/ad5624r_spi.c                 |   2 +-
 drivers/iio/dac/ad5686.c                      |   2 +-
 drivers/iio/dac/ad5755.c                      |   2 +-
 drivers/iio/dac/ad5761.c                      |   2 +-
 drivers/iio/dac/ad5764.c                      |   2 +-
 drivers/iio/dac/ad5766.c                      |   2 +-
 drivers/iio/dac/ad5791.c                      |   4 +-
 drivers/iio/dac/ad7303.c                      |   2 +-
 drivers/iio/dac/ad8460.c                      |   2 +-
 drivers/iio/dac/ad9739a.c                     |   2 +-
 drivers/iio/dac/ltc1660.c                     |   2 +-
 drivers/iio/dac/max5522.c                     |   2 +-
 drivers/iio/dac/mcp4922.c                     |   2 +-
 drivers/iio/dac/stm32-dac.c                   |   2 +-
 drivers/iio/dummy/iio_simple_dummy.c          |   8 +-
 drivers/iio/gyro/adis16136.c                  |   4 +-
 drivers/iio/gyro/adxrs290.c                   |   4 +-
 drivers/iio/gyro/bmg160_core.c                |   2 +-
 drivers/iio/gyro/fxas21002c_core.c            |   2 +-
 drivers/iio/gyro/hid-sensor-gyro-3d.c         |   2 +-
 drivers/iio/gyro/itg3200_core.c               |   2 +-
 drivers/iio/gyro/mpu3050-core.c               |   4 +-
 drivers/iio/health/afe440x.h                  |   2 +-
 drivers/iio/health/max30100.c                 |   4 +-
 drivers/iio/health/max30102.c                 |   2 +-
 drivers/iio/humidity/am2315.c                 |   4 +-
 drivers/iio/humidity/hdc100x.c                |   4 +-
 drivers/iio/humidity/hid-sensor-humidity.c    |   2 +-
 drivers/iio/humidity/hts221_core.c            |   4 +-
 drivers/iio/imu/adis.c                        |   2 +-
 drivers/iio/imu/adis16400.c                   |  16 +-
 drivers/iio/imu/adis16460.c                   |   4 +-
 drivers/iio/imu/adis16475.c                   |   6 +-
 drivers/iio/imu/adis16480.c                   |   6 +-
 drivers/iio/imu/adis16550.c                   |   6 +-
 drivers/iio/imu/bmi160/bmi160_core.c          |   2 +-
 drivers/iio/imu/bmi270/bmi270_core.c          |   4 +-
 drivers/iio/imu/bmi323/bmi323_core.c          |   4 +-
 drivers/iio/imu/bno055/bno055.c               |   2 +-
 .../iio/imu/inv_icm42600/inv_icm42600_accel.c |   2 +-
 .../iio/imu/inv_icm42600/inv_icm42600_gyro.c  |   2 +-
 .../iio/imu/inv_icm42600/inv_icm42600_temp.h  |   2 +-
 drivers/iio/imu/inv_icm45600/inv_icm45600.h   |   2 +-
 .../iio/imu/inv_icm45600/inv_icm45600_accel.c |   2 +-
 .../iio/imu/inv_icm45600/inv_icm45600_gyro.c  |   2 +-
 drivers/iio/imu/inv_mpu6050/inv_mpu_core.c    |   6 +-
 drivers/iio/imu/kmx61.c                       |   4 +-
 drivers/iio/imu/smi240.c                      |   4 +-
 drivers/iio/imu/smi330/smi330_core.c          |   6 +-
 drivers/iio/imu/st_lsm6dsx/Makefile           |   2 +-
 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h       |  30 ++-
 .../iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c    |  45 +++-
 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c  |  58 +++++
 .../iio/imu/st_lsm6dsx/st_lsm6dsx_fusion.c    | 235 ++++++++++++++++++
 drivers/iio/industrialio-buffer.c             |   4 +-
 drivers/iio/industrialio-core.c               |   1 +
 drivers/iio/light/acpi-als.c                  |   2 +-
 drivers/iio/light/adjd_s311.c                 |   2 +-
 drivers/iio/light/apds9960.c                  |   2 +-
 drivers/iio/light/as73211.c                   |   6 +-
 drivers/iio/light/bh1745.c                    |   2 +-
 drivers/iio/light/cros_ec_light_prox.c        |   4 +-
 drivers/iio/light/gp2ap020a00f.c              |   6 +-
 drivers/iio/light/hid-sensor-als.c            |   2 +-
 drivers/iio/light/hid-sensor-prox.c           |   2 +-
 drivers/iio/light/isl29125.c                  |   2 +-
 drivers/iio/light/ltr501.c                    |   4 +-
 drivers/iio/light/max44000.c                  |   4 +-
 drivers/iio/light/opt4060.c                   |   4 +-
 drivers/iio/light/rohm-bu27034.c              |   4 +-
 drivers/iio/light/rpr0521.c                   |   6 +-
 drivers/iio/light/si1145.c                    |   2 +-
 drivers/iio/light/st_uvis25_core.c            |   2 +-
 drivers/iio/light/tcs3414.c                   |   2 +-
 drivers/iio/light/tcs3472.c                   |   2 +-
 drivers/iio/light/vcnl4000.c                  |   2 +-
 drivers/iio/light/vcnl4035.c                  |   4 +-
 drivers/iio/light/veml6030.c                  |   8 +-
 drivers/iio/light/veml6046x00.c               |   8 +-
 drivers/iio/light/vl6180.c                    |   6 +-
 drivers/iio/magnetometer/af8133j.c            |   2 +-
 drivers/iio/magnetometer/ak8974.c             |   2 +-
 drivers/iio/magnetometer/ak8975.c             |   2 +-
 drivers/iio/magnetometer/als31300.c           |   4 +-
 drivers/iio/magnetometer/bmc150_magn.c        |   2 +-
 drivers/iio/magnetometer/hid-sensor-magn-3d.c |   2 +-
 drivers/iio/magnetometer/hmc5843_core.c       |   4 +-
 drivers/iio/magnetometer/mag3110.c            |   4 +-
 drivers/iio/magnetometer/rm3100-core.c        |   2 +-
 drivers/iio/magnetometer/tlv493d.c            |   4 +-
 drivers/iio/magnetometer/tmag5273.c           |   8 +-
 drivers/iio/magnetometer/yamaha-yas530.c      |   4 +-
 drivers/iio/orientation/hid-sensor-incl-3d.c  |   2 +-
 drivers/iio/orientation/hid-sensor-rotation.c |   2 +-
 .../position/hid-sensor-custom-intel-hinge.c  |   6 +-
 drivers/iio/potentiostat/lmp91000.c           |   2 +-
 drivers/iio/pressure/abp2030pa.c              |   4 +-
 drivers/iio/pressure/bmp280-core.c            |  18 +-
 drivers/iio/pressure/cros_ec_baro.c           |   4 +-
 drivers/iio/pressure/dlhl60d.c                |   4 +-
 drivers/iio/pressure/hid-sensor-press.c       |   2 +-
 drivers/iio/pressure/hsc030pa.c               |   4 +-
 drivers/iio/pressure/mpl3115.c                |   4 +-
 drivers/iio/pressure/mprls0025pa.c            |   2 +-
 drivers/iio/pressure/ms5611_core.c            |   4 +-
 drivers/iio/pressure/rohm-bm1390.c            |   4 +-
 drivers/iio/pressure/st_pressure_core.c       |  12 +-
 drivers/iio/pressure/zpa2326.c                |   4 +-
 drivers/iio/proximity/as3935.c                |   2 +-
 drivers/iio/proximity/hx9023s.c               |   2 +-
 drivers/iio/proximity/irsd200.c               |   2 +-
 drivers/iio/proximity/isl29501.c              |   2 +-
 drivers/iio/proximity/mb1232.c                |   2 +-
 .../iio/proximity/pulsedlight-lidar-lite-v2.c |   2 +-
 drivers/iio/proximity/srf08.c                 |   2 +-
 drivers/iio/proximity/sx9310.c                |   2 +-
 drivers/iio/proximity/sx9324.c                |   2 +-
 drivers/iio/proximity/sx9360.c                |   4 +-
 drivers/iio/proximity/sx9500.c                |   2 +-
 drivers/iio/proximity/vl53l0x-i2c.c           |   2 +-
 drivers/iio/resolver/ad2s1210.c               |   4 +-
 .../iio/temperature/hid-sensor-temperature.c  |   2 +-
 drivers/iio/temperature/maxim_thermocouple.c  |   6 +-
 drivers/iio/temperature/tmp006.c              |   4 +-
 include/linux/iio/common/st_sensors.h         |   2 +-
 include/linux/iio/iio.h                       |   6 +-
 include/linux/iio/imu/adis.h                  |   6 +-
 include/uapi/linux/iio/types.h                |   1 +
 260 files changed, 905 insertions(+), 545 deletions(-)
 create mode 100644 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_fusion.c

-- 
2.39.5