linux/drivers/iio/gyro
Greg Kroah-Hartman 258ad62593 IIO new device support, features, cleanup for 7.3
Includes a merge of 7.2-rc2 to pick up the changes around
 mod_devicetable.h and reduce resulting conflicts around includes.
 
 New device support
 ------------------
 
 adi,ad3530R
 - Add support for the AD3532R and AD3532 16 channel DACs.
 adi,ad4080
 - Add support for the AD4883 ADC.
 adi,ad5686
 - Add support for AD5313R, AD5317R, AD5674, AD5687R, AD5689, AD5689R DACs
   over SPI
 - Add support for AD5316R, AD5674, AD5697R and AD5696 DACs over I2C
 - Significant driver refactoring prior to these additions, partly to reduce
   bus traffic and to add triggered buffer and gain control support. An
   earlier set added support for missing supplies, reset and LDAC GPIO.
 adi,adf41513
 - New driver to support this PLL frequency synthesizer that runs up to
   26.5 GHz.
 - Included infrastructure to handle higher precision attributes with
   extensive tests
 adi,ltc2378-20
 - New driver supporting LTC2338, LTC2364, LTC2367, LTC2368, LT2369, LTC2370
   LTC2376, LTC2377, LTC2378, LTC2379 and LTC23980 ADCs with both high speed
   capture via appropriate backend and conventional triggered buffer SPI
   capture.
 invensense,icm42607
 - New driver for this IMU.
 mediateck,mt6323
 - New driver for this PMIC ADC.
 microchip,mcp47a1
 - New driver for this I2C 6 bit DAC.
 nxp,mcf54415-dac
 - New driver for this DAC found in NXP SoCs.
 qst,qmc5884l
 - New driver for this 3 axis magnetometer. Included dt vendor entry for qst.
 qst,qmc6308
 - New driver for this 3 axis magnetometer.
 sensiron,slf3s
 - New driver for this liquid flow sensor. Includes adding IIO_VOLUMEFLOW
   channel type.
 st,vl53l1x
 - Refactors to improve readability.
 ti,ads112c14
 - New driver supporting the ADS112C14 and ADS122C14 ADCs. These bring
   some new ABI for input chopping, particular useful for resistive sensors
   like thermocouples or Wheatstone bridges.
 - Support CRC8 detection of corruption on the bus.
 - Support buffered reads.
 ti,tmp117
 - (trivial) Add support for the tmp119 temperature sensor.
 xilinx,versal-sysmon
 - New ADC driver for this block found on various FPGAs including various
   bus interfaces, threshold and oversampling support.
 
 dt binding updates
 ------------------
 new shared bindings
 - excitation-channels and excitation-current-nanoamp allow per channel
   specification of currents used for resistive sensor measurement.
 - reference-sources property to allow selection of a per channel reference.
 rockchip,saradc
 - Add RV1106 which is compatible with the RV3588.
 
 Features
 --------
 
 buffer-dmaengine
 - Allow cyclic buffers, useful for repeating sequence generation with DACs.
 devantech,dmard09
 - Implement read back of channel scale - previously interface always
   returned an error.
 hid,sensors-als
 - Enable separate channel scaling for hardware that supports it.
 invensense,timestamp library
 - Various precision improvements.
 invensense,icm42600
 - Add support for hwfifo watermark interfaces.
 taos,tcs3472
 - Support wait time and sampling frequency control.
 
 Cleanups, minor fixes
 ---------------------
 
 Minor cleanups not mentioned at all in this summary such
 as white space fixes or typos.
 
 Affecting various drivers
 - Cleanup of conditionals that had no affect.
 - Drop some runtime pm local wrappers as now runtime_pm does the
   mark_last_busy part inside the put, these provide no useful code
   deduplication or readability advantages over directly calling the
   runtime_pm functions.
 - Return 0 from write_raw() on success.
 - Use of dev_err_probe() to simplify code and sometimes provide useful
   info for deferred probe debugging.
 - Drop some redundant error prints where the called function already
   provides information on errors.
 - Make some read only arrays in functions static.
 - Fix up missing handling of regcache_sync() errors.
 - Drop some false kernel-doc markings.
 - Add missing MODULE_DEVICE_TABLE for some of_match_id tables.
 - Use local variables for things like the struct device to shorten and
   improve readability of code.
 - Drop some unused structure elements.
 - Reorder dds.h macro parameters to be inline with others.
 - Header reorders and IWYU. Often part of a more significant series.
 - Remove abstractions designed to allow a driver to support multiple device
   types, when they have been around a long time and only the original part
   showed up.
 - Initialize spi_device_id arrays using member names following dropping of
   driver data from drivers that didn't actually use it.
 - Catch up with i2c_device_id tables added since previous effort to use
   named initializers for all those.
 - Use kernel types in a few places instead of standard C ones or bare
   unsigned.
 
 Misc
 - Update Xilinx AMS maintainer.
 - Update email address for Maxwell Doose.
 - Update email address for Siratul Islam.
 - Update email address for Tomasz Duszynski and re-add Tomasz to
   various maintainer entries.
 Docs
 - Encourage use of differential channel naming even when there is no
   flexibility in input to differential pair mapping. Intended to
   provide a strong signal to userspace that a channel is differential.
 adi,ad_sigma_delta
 - Allow COMPILE_TEST without any users.
 adi,ad2s1201
 - Refactor trigger handler to avoid mix of guard() and goto.
 adi,ad5686
 - Avoid potential NULL dereference is user forces a driver bind.
 adi,ad5696
 - Add a couple of missing entries to the of_match_id table and update
   binding to match.
 atmel,ad91_adc
 - Use const char * for DT string property allowing a cast to be dropped.
 avia,hx711
 - Various refactors and cleanup to enable support of additional parts
   (to come)
 - Add missing supply and gpio dt-bindings.
 bosch,bmc150
 - Harden against device reporting too large a FIFO sample count.
 - Use FIELD_PREP() / FIELD_GET() to improve readability.
 freescale,fxls8962af
 - Harden against device reporting too large a FIFO sample count.
 hid-sensors-*
 - Reorder probe to not expose userspace interfaces until the rest of
   the setup is done to avoid potentially dropping data.
 honeywell,abp2030pa
 - Drop an unreachable return.
 invensens,icm45600
 - Harden against bad value of FIFO sample count from device.
 - Use i2c_match_data if firmware table sourced match data isn't available.
 nxp,mpl1115
 - Ensure runtime_pm is balanced on error in probe.
 rohm,bm1390
 - Make the driver slightly more likely to recover from transient errors.
 sensiron,sgp30
 - Handle thread creation errors.
 st,lsm6dsx
 - Update the enable mask when doing sensor fusion to avoid incorrect fifo
   data handling.
 st,stm32-dfsdm
 - Treat dt flags as booleans.
 ti,ads1015
 - Switch to devm helpers which simplified code and closed a resource leak.
 ti,opt3001
 - Split complicated opt3001_get_processed() logic into irq an no irq
   helper functions.
 - Use devm to simplify code.
 - Use guard() to simplify code.
 - Reorder probe so final call exposes userspace interfaces.
 - Various other more minor cleanup
 taos,tsl2772
 - Fix calibscale readback to check right channel type.
 taos,tsl2583
 - Use sysfs_emit() and sysfs_emit_at() to replace open coded equivalents.
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEbilms4eEBlKRJoGxVIU0mcT0FogFAmp1Pm8RHGppYzIzQGtl
 cm5lbC5vcmcACgkQVIU0mcT0FoioNRAAi338gJ/xvG3rZlPr1RrTEgmsWaMqxxpr
 FWxFApdjAGvINn6SGwcWWkdfmB+OYg8sbhLLGkOx07e9R/GbS0y3j2kODvZHodZz
 k3wYXEy12HwuMgQRQWR+rNIke6bJdJFI10saJTfIRr3if7GkVvBTqd9exfoD2vGa
 Xzj12YN6ZcRiv8eWgju4yqQuVomMkRigd2mDHwvN4H9/ZylBRMgGIHhteWoPjx3y
 hs6lLeqc8lfocz1Azslb0ZEDPJ4+zPCO9eCBZ+1ZMwrzKUeqCfMYDQdE9TVUswpG
 aHlr5E+R2PlpLn4Ijk0faFJUZYFaOFIn3II3ZZfzzgFop2C0cVORYuIf7bgDRsaD
 zrLj2ybzSr/7+aAK2ry3hoVrxh9mkbv6G0Lf7bvFhQaXltJJBVQi98pU13p2AoFj
 BT8+pHOwgKUsF+LyxNqch6LyLDEzNw0P3Fl7SmrH/k2RVfj/L4+8PMOAijBTLpCC
 3J4k17laTYWJZ8sFpyBEXYyhgp6SZqr2UIIcizrc1nIUK+mJI2/XBVbtsBY/6jW8
 7RM07TNqkm+ZhsV58YiMfKdDuqPiQpCp5TYjVcxjjmOK4aE5bFSbyzi5SvAcG6oG
 C2l9k5vgZEpti6ZkFBj4qNUK0cVXinDWqHhlAXF7wjKCj69yEFLCtl+de//A0I+v
 3FBEkBCsq+M=
 =4ayG
 -----END PGP SIGNATURE-----

Merge tag 'iio-for-7.3a' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-next

Jonathan writes:

IIO new device support, features, cleanup for 7.3

Includes a merge of 7.2-rc2 to pick up the changes around
mod_devicetable.h and reduce resulting conflicts around includes.

New device support
------------------

adi,ad3530R
- Add support for the AD3532R and AD3532 16 channel DACs.
adi,ad4080
- Add support for the AD4883 ADC.
adi,ad5686
- Add support for AD5313R, AD5317R, AD5674, AD5687R, AD5689, AD5689R DACs
  over SPI
- Add support for AD5316R, AD5674, AD5697R and AD5696 DACs over I2C
- Significant driver refactoring prior to these additions, partly to reduce
  bus traffic and to add triggered buffer and gain control support. An
  earlier set added support for missing supplies, reset and LDAC GPIO.
adi,adf41513
- New driver to support this PLL frequency synthesizer that runs up to
  26.5 GHz.
- Included infrastructure to handle higher precision attributes with
  extensive tests
adi,ltc2378-20
- New driver supporting LTC2338, LTC2364, LTC2367, LTC2368, LT2369, LTC2370
  LTC2376, LTC2377, LTC2378, LTC2379 and LTC23980 ADCs with both high speed
  capture via appropriate backend and conventional triggered buffer SPI
  capture.
invensense,icm42607
- New driver for this IMU.
mediateck,mt6323
- New driver for this PMIC ADC.
microchip,mcp47a1
- New driver for this I2C 6 bit DAC.
nxp,mcf54415-dac
- New driver for this DAC found in NXP SoCs.
qst,qmc5884l
- New driver for this 3 axis magnetometer. Included dt vendor entry for qst.
qst,qmc6308
- New driver for this 3 axis magnetometer.
sensiron,slf3s
- New driver for this liquid flow sensor. Includes adding IIO_VOLUMEFLOW
  channel type.
st,vl53l1x
- Refactors to improve readability.
ti,ads112c14
- New driver supporting the ADS112C14 and ADS122C14 ADCs. These bring
  some new ABI for input chopping, particular useful for resistive sensors
  like thermocouples or Wheatstone bridges.
- Support CRC8 detection of corruption on the bus.
- Support buffered reads.
ti,tmp117
- (trivial) Add support for the tmp119 temperature sensor.
xilinx,versal-sysmon
- New ADC driver for this block found on various FPGAs including various
  bus interfaces, threshold and oversampling support.

dt binding updates
------------------
new shared bindings
- excitation-channels and excitation-current-nanoamp allow per channel
  specification of currents used for resistive sensor measurement.
- reference-sources property to allow selection of a per channel reference.
rockchip,saradc
- Add RV1106 which is compatible with the RV3588.

Features
--------

buffer-dmaengine
- Allow cyclic buffers, useful for repeating sequence generation with DACs.
devantech,dmard09
- Implement read back of channel scale - previously interface always
  returned an error.
hid,sensors-als
- Enable separate channel scaling for hardware that supports it.
invensense,timestamp library
- Various precision improvements.
invensense,icm42600
- Add support for hwfifo watermark interfaces.
taos,tcs3472
- Support wait time and sampling frequency control.

Cleanups, minor fixes
---------------------

Minor cleanups not mentioned at all in this summary such
as white space fixes or typos.

Affecting various drivers
- Cleanup of conditionals that had no affect.
- Drop some runtime pm local wrappers as now runtime_pm does the
  mark_last_busy part inside the put, these provide no useful code
  deduplication or readability advantages over directly calling the
  runtime_pm functions.
- Return 0 from write_raw() on success.
- Use of dev_err_probe() to simplify code and sometimes provide useful
  info for deferred probe debugging.
- Drop some redundant error prints where the called function already
  provides information on errors.
- Make some read only arrays in functions static.
- Fix up missing handling of regcache_sync() errors.
- Drop some false kernel-doc markings.
- Add missing MODULE_DEVICE_TABLE for some of_match_id tables.
- Use local variables for things like the struct device to shorten and
  improve readability of code.
- Drop some unused structure elements.
- Reorder dds.h macro parameters to be inline with others.
- Header reorders and IWYU. Often part of a more significant series.
- Remove abstractions designed to allow a driver to support multiple device
  types, when they have been around a long time and only the original part
  showed up.
- Initialize spi_device_id arrays using member names following dropping of
  driver data from drivers that didn't actually use it.
- Catch up with i2c_device_id tables added since previous effort to use
  named initializers for all those.
- Use kernel types in a few places instead of standard C ones or bare
  unsigned.

Misc
- Update Xilinx AMS maintainer.
- Update email address for Maxwell Doose.
- Update email address for Siratul Islam.
- Update email address for Tomasz Duszynski and re-add Tomasz to
  various maintainer entries.
Docs
- Encourage use of differential channel naming even when there is no
  flexibility in input to differential pair mapping. Intended to
  provide a strong signal to userspace that a channel is differential.
adi,ad_sigma_delta
- Allow COMPILE_TEST without any users.
adi,ad2s1201
- Refactor trigger handler to avoid mix of guard() and goto.
adi,ad5686
- Avoid potential NULL dereference is user forces a driver bind.
adi,ad5696
- Add a couple of missing entries to the of_match_id table and update
  binding to match.
atmel,ad91_adc
- Use const char * for DT string property allowing a cast to be dropped.
avia,hx711
- Various refactors and cleanup to enable support of additional parts
  (to come)
- Add missing supply and gpio dt-bindings.
bosch,bmc150
- Harden against device reporting too large a FIFO sample count.
- Use FIELD_PREP() / FIELD_GET() to improve readability.
freescale,fxls8962af
- Harden against device reporting too large a FIFO sample count.
hid-sensors-*
- Reorder probe to not expose userspace interfaces until the rest of
  the setup is done to avoid potentially dropping data.
honeywell,abp2030pa
- Drop an unreachable return.
invensens,icm45600
- Harden against bad value of FIFO sample count from device.
- Use i2c_match_data if firmware table sourced match data isn't available.
nxp,mpl1115
- Ensure runtime_pm is balanced on error in probe.
rohm,bm1390
- Make the driver slightly more likely to recover from transient errors.
sensiron,sgp30
- Handle thread creation errors.
st,lsm6dsx
- Update the enable mask when doing sensor fusion to avoid incorrect fifo
  data handling.
st,stm32-dfsdm
- Treat dt flags as booleans.
ti,ads1015
- Switch to devm helpers which simplified code and closed a resource leak.
ti,opt3001
- Split complicated opt3001_get_processed() logic into irq an no irq
  helper functions.
- Use devm to simplify code.
- Use guard() to simplify code.
- Reorder probe so final call exposes userspace interfaces.
- Various other more minor cleanup
taos,tsl2772
- Fix calibscale readback to check right channel type.
taos,tsl2583
- Use sysfs_emit() and sysfs_emit_at() to replace open coded equivalents.

* tag 'iio-for-7.3a' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (232 commits)
  iio: dac: mcp47a1: add support for new device
  dt-bindings: iio: dac: add support for mcp47a1
  iio: Update email for Maxwell Doose
  iio: imu: st_lsm6dsx: Update enable mask when using sensor fusion
  iio: light: cm32181: return zero after writing calibscale
  iio: flow: add Sensirion SLF3S liquid flow sensor driver
  iio: core: add IIO_VAL_DECIMAL64_FEMTO format type
  dt-bindings: iio: flow: add Sensirion SLF3S liquid flow sensor
  iio: types: add IIO_VOLUMEFLOW channel type
  iio: ABI: Encourage differential voltage ABI usage
  iio: adc: ltc2378: Add support for LTC2338-18
  iio: adc: ltc2378: Enable triggered buffer data capture
  iio: adc: ltc2378: Enable high-speed data capture
  iio: adc: ltc2378: Add support for LTC2378-20 and similar ADCs
  dt-bindings: iio: adc: Add ltc2378
  iio: magnetometer: ak8974: remove conditional return with no effect
  iio: light: tsl2583: remove conditional return with no effect
  iio: adc: rcar-gyroadc: remove rcar_gyroadc_set_power() helper
  iio: light: vcnl4000: remove vcnl4000_set_pm_runtime_state() helper
  iio: light: vcnl4035: remove vcnl4035_set_pm_runtime_state() helper
  ...
2026-08-19 09:45:01 +02:00
..
adis16080.c iio: Initialize spi_device_id arrays using member names 2026-06-30 00:15:56 +01:00
adis16130.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
adis16136.c iio: Initialize spi_device_id arrays using member names 2026-06-30 00:15:56 +01:00
adis16260.c iio: Initialize spi_device_id arrays using member names 2026-06-30 00:15:56 +01:00
adxrs290.c iio: gyro: adxrs290: Remove redundant dev_err_probe() 2026-07-27 22:13:07 +01:00
adxrs450.c iio: Initialize spi_device_id arrays using member names 2026-06-30 00:15:56 +01:00
bmg160_core.c iio: gyro: bmg160: wait full startup time after mode change at probe 2026-05-16 11:48:38 +01:00
bmg160_i2c.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
bmg160_spi.c iio: Drop unused assignment of spi_device_id driver data 2026-06-30 00:15:56 +01:00
bmg160.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fxas21002c_core.c iio: gyro: Remove redundant pm_runtime_mark_last_busy() calls 2025-08-25 16:04:47 +01:00
fxas21002c_i2c.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
fxas21002c_spi.c Linux 7.2-rc2 2026-07-06 16:59:47 +01:00
fxas21002c.h iio: gyro: fxas21002c: Move 'fxas21002c_reg_fields' to the only file its used 2020-07-20 09:03:25 +01:00
hid-sensor-gyro-3d.c iio: hid-sensors: align function parenthesis for readability 2026-07-07 03:12:50 +01:00
itg3200_buffer.c iio: gyro: itg3200: fix i2c read into the wrong stack location 2026-05-15 12:05:35 +01:00
itg3200_core.c iio: Initialize i2c_device_id arrays using member names 2026-05-31 11:01:46 +01:00
Kconfig iio: gyro: list adis16137 in Kconfig description 2024-10-21 19:19:24 +01:00
Makefile iio: gyro: Add driver support for ADXRS290 2020-08-22 10:53:20 +01:00
mpu3050-core.c iio: gyro: mpu3050: fix sign of raw angular velocity readings 2026-08-07 23:51:05 +01:00
mpu3050-i2c.c iio: Initialize i2c_device_id arrays using member names 2026-05-31 11:01:46 +01:00
mpu3050.h iio: gyro: mpu3050: Make mpu3050_common_remove() return void 2022-05-01 19:01:13 +01:00
ssp_gyro_sensor.c iio: common: ssp: remove SSP_CHAN_TIMESTAMP() macro 2026-05-31 11:01:46 +01:00
st_gyro_buffer.c iio:st-sensors: Remove duplicate MODULE_* 2022-02-18 11:36:54 +00:00
st_gyro_core.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
st_gyro_i2c.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
st_gyro_spi.c Linux 7.2-rc2 2026-07-06 16:59:47 +01:00
st_gyro.h iio: gyro: st_gyro: use devm_iio_triggered_buffer_setup() for buffer 2021-07-24 16:35:05 +01:00