IIO: New devices support, features and cleanup for 7.1

Includes merge of v7.0-rc4 to pull in a fix and a merge of
 ib-iio-thermal-qcom-pmic5 immutable branch (provided from the IIO tree so
 thermal could also pick this up and add thermal specific remainder
 of the series on top.
 
 New device support
 ------------------
 
 adi,ad4030
 - Add support for ADA4316 and ADAQ4224 ADCs with PGAs.
 adi,ad4080
 - Add support for AD4082, AD4085 and AD4088 ADCs.
 adi,ad8366
 - Add ADRF5702 and ADRF5703 digital step attenuators.
 adi,adxl372
 - Add support for the ADXL371 accelerometer after refactors to allow multiple
   device variants to be supported by the driver. In particular a silicon
   issue means the hardware FIFO doesn't work on the ADXL371
 bosch,bma255/bmg160
 - Add support for BMX055 gyroscope and magnetometer (effectively separate
   devices from point of view of interface).
 lltc,ltc2309
 - Add support for LTC2305 2 channel 12-bit ADC.
 lltc,ltc2532
 - Add support for 4 variants of the LTC2654 quad DAC.
 maxim,ds4424
 - Add IDs for DS4402 and DS4404 parts. Initially patch is ID only but additional
   features also added that are device dependent.
 qcom,spmi-adc-gen3
 - New driver supporting this generation of Qualcomm's SoC ADC.
 st,vl53l1
 - New driver for this Time Of Flight (TOF) sensor.
 ti,ina2xx
 - Support the INA236 digital power monitor.
 vishay,vcnl4000
 - Add support for CM36686 ambient light and proximity sensor.
 - Add support for CM36672P proximity sensors.
 
 ID only additions.
 amlogic,meson-adc
 - Support the Meson S4.
 
 Features
 --------
 
 iio-backend framework
 - Add capability discovery so front end drivers can know what features are
   available from the backend and adjust how they operate.
 adi,ad4030
 - Add SPI offload support requiring a non trivial PWM setup.
 adi,ad7380
 - Add support for multiple SPI lanes to improve throughput.
 adi,ad7768-1
 - Support SPI offload and always use continuous mode, enabling more
   filter options.
 adi,ad8366
 - Device tree bindings and support.
 aspeed,adc
 - Handle battery channel.
 maxim,ds4424
 - Add external resistor controlled scale and per-variant limits.
 - Handle per variant range limits.
 - Move it to regmap.
 motorola,cpcap-adc
 - Support for the ADC found on the Motorola Mot board. Effectively some board
   specific configuration handled in the driver.
 vishay,vcnl4000
 - Support explicit power supply regulators.
 tyhx,hx9023s
 - Allow device tree specification of firmware file name.
 
 Cleanup and minor fixes
 -----------------------
 
 treewide
 - Remove a bunch of unused structure elements.
 - Replaces standard fixed width integers with kernel types.
 - Replace some other error values that were returned on allocation failure
   with -ENOMEM
 iio-core
 - Replace a few custom devm implementations for devm_add_action_or_reset()
 iio-trigger
 - Use put_device() to cleanup on error.
 iio-backend
 - Use __free(fwmode_handle) to simplify some code.
 hw-consumer
 - Use separate allocation for scan mask bitmap to simplify code.
 acpi-als
 - Switch from ACPI driver to platform driver.
 adi,ad4030
 - Use BIT() to replace values that are always a power of 2 to slightly
   improve readability.
 adi,ad4062
 - Add a missing check for error form iio_get_current_scan_type()
 adi,ad5933
 - Use div64_ul() rather than do_div() as remainder was not used.
 adi,ad7191
 - Documentation fixes related to clocks
 adi,ad7816
 - Use sysfs_emit()
 adi,ad8366
 - General driver modernization
 adi,adf4350
 - Change a TOOD to NOTE in a comment to avoid anyone from walking into
   a tricky to improve corner case.
 adi,admv1013
 - Avoid a null pointer dereference if device_property_read_string() fails.
 adi,admv4420
 - Return error code rather than -1..
 adi,adxl345
 - Add separate scaling for events from that of raw channels.
 amlogic,meson-adc
 - Don't bother keeping nvmem cell access around when only used in probe.
 atmel,at91-sama5d
 - Don't bother keeping nvmem cell access around when only used in probe.
 bosch,bmc150
 - Use sysfs_emit() in a few places.
 honeywell,hsc030pa
 - Improve handling of return values from i2c_transfer.
 liteon,ltr501
 - Return error values rather than -1 replaced by -EINVAL at higher
   levels of the callstack.
 maxim,ds4424
 - A bunch of general minor improvements prior to adding new features.
 maxim,max11410
 - Make some const string arrays static.
 maxim,max5522
 - Use devm_regulator_get_enable_read_voltage() at probe to cache the
   voltage rather than keeping the regulator around to access and query
   later.
 vishay,vcnl4000
 - Various code improvements.
 sharp,gp2ap020a00f
 - General driver modernization.
 silabs,si7210
 - Use devm_regulator_get_enable_read_voltage() at probe to cache the
   voltage rather than keeping the regulator around to access and query
   later.
 st,lsm6dsx
 - Add SMOCF00 ACPI ID seen on products by SHIFT.
 st,st_sensors
 - Fix up various kernel-doc issues.
 - Avoid kmalloc of a single use buffer and instead reused existing
   buffer_data.
 taos,tsl2772
 - Fix some kernel-doc warnings due to missing :
 ti,ads7950
 - Use iio_push_to_buffers_with_ts_unaligned() as first few elements of
   array are not the data that is pushed.
 - Move from array of chip_info structures to individual named ones. This
   is part of slowly replacing use of a code pattern that we don't want
   replicated in new drivers.
 vti,sca3000
 - General driver modernization included use of devm and guard().
 
 Various other more minor stuff not called out explicitly.
 Includes things like typo fixes, use of dev_err_probe() and local
 variables to avoid repeated dereferencing of the same member as well as
 increasing use of guard() to simplify release of locks.
 
 Another slow improvement to code quality is both standardizing on
 header order and ensure all appropriate headers are included.
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEbilms4eEBlKRJoGxVIU0mcT0FogFAmnINKERHGppYzIzQGtl
 cm5lbC5vcmcACgkQVIU0mcT0FognJg//a2J1qP+D8gf3nfBdrTyLaS7DCQZib60V
 0wHrSewlT49fM2P1A4Y//cNV+wekb84EAmZLduxaRLkgHC8ZAeGxWy6DY2q0SFww
 AN20+6toP3M1J7eIRW7ENB7aqwAczu/SzU+6fGcwxGicbjorDE1iQHiR38eXuKqi
 l8kjV4YO4PICHkQWU7D0y2D7Nvp/BgBwDmtRzzfVdtIMYcyaOH5fvDFByfaQiTW6
 rftwvzFH3lgV2pMOMUDwa0e071DQhMLxjleFwAW5jbvMqXf/15379tVXhFA6BhMi
 T1wlB10w1xl0QBbmYJrDOIpaFT4BdET+pQyrlB74sDrVbFF2ip8a1e4ux0fCPZIZ
 qmBAjzTTtE36PFWVdak8PCasEuyKGEpsSMfSOpmZZEaXFTAjKISuKLZrCuHgmkIl
 BY+Vswq5trkLF3GLLc8me+4L3hG4ujx40OZEk42G2B10kAJXyvG5bHGeJ0Jy/B3O
 CaMweZJeDBloZyXwrgNx5n+wIeKm7g6SqcL+85XMSN9x+jh4FcBDoHTFXAq5kqlv
 u4hWg2fjoyu+O/CRHRBLIfg5CBd+8oNlf8kbSa1wx1VY4IHSO9z5Xj/se+VSTew3
 haCR/wvVG4Rs33krGyYnjMhoOGOnFZkiHoI85ATqsb+ZRzZdFWG+5mb5wN5Hgt5V
 I6KAnuZNsrI=
 =/WQe
 -----END PGP SIGNATURE-----

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

Jonathan writes:

IIO: New devices support, features and cleanup for 7.1

Includes merge of v7.0-rc4 to pull in a fix and a merge of
ib-iio-thermal-qcom-pmic5 immutable branch (provided from the IIO tree so
thermal could also pick this up and add thermal specific remainder
of the series on top.

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

adi,ad4030
- Add support for ADA4316 and ADAQ4224 ADCs with PGAs.
adi,ad4080
- Add support for AD4082, AD4085 and AD4088 ADCs.
adi,ad8366
- Add ADRF5702 and ADRF5703 digital step attenuators.
adi,adxl372
- Add support for the ADXL371 accelerometer after refactors to allow multiple
  device variants to be supported by the driver. In particular a silicon
  issue means the hardware FIFO doesn't work on the ADXL371
bosch,bma255/bmg160
- Add support for BMX055 gyroscope and magnetometer (effectively separate
  devices from point of view of interface).
lltc,ltc2309
- Add support for LTC2305 2 channel 12-bit ADC.
lltc,ltc2532
- Add support for 4 variants of the LTC2654 quad DAC.
maxim,ds4424
- Add IDs for DS4402 and DS4404 parts. Initially patch is ID only but additional
  features also added that are device dependent.
qcom,spmi-adc-gen3
- New driver supporting this generation of Qualcomm's SoC ADC.
st,vl53l1
- New driver for this Time Of Flight (TOF) sensor.
ti,ina2xx
- Support the INA236 digital power monitor.
vishay,vcnl4000
- Add support for CM36686 ambient light and proximity sensor.
- Add support for CM36672P proximity sensors.

ID only additions.
amlogic,meson-adc
- Support the Meson S4.

Features
--------

iio-backend framework
- Add capability discovery so front end drivers can know what features are
  available from the backend and adjust how they operate.
adi,ad4030
- Add SPI offload support requiring a non trivial PWM setup.
adi,ad7380
- Add support for multiple SPI lanes to improve throughput.
adi,ad7768-1
- Support SPI offload and always use continuous mode, enabling more
  filter options.
adi,ad8366
- Device tree bindings and support.
aspeed,adc
- Handle battery channel.
maxim,ds4424
- Add external resistor controlled scale and per-variant limits.
- Handle per variant range limits.
- Move it to regmap.
motorola,cpcap-adc
- Support for the ADC found on the Motorola Mot board. Effectively some board
  specific configuration handled in the driver.
vishay,vcnl4000
- Support explicit power supply regulators.
tyhx,hx9023s
- Allow device tree specification of firmware file name.

Cleanup and minor fixes
-----------------------

treewide
- Remove a bunch of unused structure elements.
- Replaces standard fixed width integers with kernel types.
- Replace some other error values that were returned on allocation failure
  with -ENOMEM
iio-core
- Replace a few custom devm implementations for devm_add_action_or_reset()
iio-trigger
- Use put_device() to cleanup on error.
iio-backend
- Use __free(fwmode_handle) to simplify some code.
hw-consumer
- Use separate allocation for scan mask bitmap to simplify code.
acpi-als
- Switch from ACPI driver to platform driver.
adi,ad4030
- Use BIT() to replace values that are always a power of 2 to slightly
  improve readability.
adi,ad4062
- Add a missing check for error form iio_get_current_scan_type()
adi,ad5933
- Use div64_ul() rather than do_div() as remainder was not used.
adi,ad7191
- Documentation fixes related to clocks
adi,ad7816
- Use sysfs_emit()
adi,ad8366
- General driver modernization
adi,adf4350
- Change a TOOD to NOTE in a comment to avoid anyone from walking into
  a tricky to improve corner case.
adi,admv1013
- Avoid a null pointer dereference if device_property_read_string() fails.
adi,admv4420
- Return error code rather than -1..
adi,adxl345
- Add separate scaling for events from that of raw channels.
amlogic,meson-adc
- Don't bother keeping nvmem cell access around when only used in probe.
atmel,at91-sama5d
- Don't bother keeping nvmem cell access around when only used in probe.
bosch,bmc150
- Use sysfs_emit() in a few places.
honeywell,hsc030pa
- Improve handling of return values from i2c_transfer.
liteon,ltr501
- Return error values rather than -1 replaced by -EINVAL at higher
  levels of the callstack.
maxim,ds4424
- A bunch of general minor improvements prior to adding new features.
maxim,max11410
- Make some const string arrays static.
maxim,max5522
- Use devm_regulator_get_enable_read_voltage() at probe to cache the
  voltage rather than keeping the regulator around to access and query
  later.
vishay,vcnl4000
- Various code improvements.
sharp,gp2ap020a00f
- General driver modernization.
silabs,si7210
- Use devm_regulator_get_enable_read_voltage() at probe to cache the
  voltage rather than keeping the regulator around to access and query
  later.
st,lsm6dsx
- Add SMOCF00 ACPI ID seen on products by SHIFT.
st,st_sensors
- Fix up various kernel-doc issues.
- Avoid kmalloc of a single use buffer and instead reused existing
  buffer_data.
taos,tsl2772
- Fix some kernel-doc warnings due to missing :
ti,ads7950
- Use iio_push_to_buffers_with_ts_unaligned() as first few elements of
  array are not the data that is pushed.
- Move from array of chip_info structures to individual named ones. This
  is part of slowly replacing use of a code pattern that we don't want
  replicated in new drivers.
vti,sca3000
- General driver modernization included use of devm and guard().

Various other more minor stuff not called out explicitly.
Includes things like typo fixes, use of dev_err_probe() and local
variables to avoid repeated dereferencing of the same member as well as
increasing use of guard() to simplify release of locks.

Another slow improvement to code quality is both standardizing on
header order and ensure all appropriate headers are included.

* tag 'iio-for-7.1a' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (217 commits)
  Docs: iio: ad7191 Correct clock configuration
  iio: amplifiers: ad8366: add support for adrf5702/3
  dt-bindings: iio: amplifiers: ad8366: add adrf5702/3 support
  iio: adc: meson-saradc: add support for Meson S4
  dt-bindings: iio: adc: amlogic,meson-saradc: add S4 compatible
  iio: imu: st_lsm6dsx: Add ACPI ID for SHIFT13mi gyroscope
  iio: proximity: add driver for ST VL53L1X ToF sensor
  dt-bindings: iio: proximity: add ST VL53L1X ToF sensor
  iio: adc: max11410: make vref register name arrays static const
  iio: accel: bmc150-accel-core: use sysfs_emit() in show functions
  iio: frequency: adf4350: replace TODO with NOTE in adf4350_set_freq()
  iio: adc: ltc2309: add support for ltc2305
  iio: adc: ltc2309: explicitly assign hex values to channel enums
  dt-bindings: adc: ltc2497: add support for ltc2305
  iio: accel: adxl380: fix typo in PART_ID register macro
  iio: dac: ds4424: add Rfs-based scale and per-variant limits
  dt-bindings: iio: dac: maxim,ds4424: add maxim,rfs-ohms property
  iio: dac: ds4424: convert to regmap
  iio: dac: ds4424: support per-variant output range limits
  iio: dac: ds4424: add DS4402/DS4404 device IDs
  ...
This commit is contained in:
Greg Kroah-Hartman 2026-03-29 14:35:31 +02:00
commit a8a37957f2
165 changed files with 5740 additions and 2166 deletions

Some files were not shown because too many files have changed in this diff Show more