The following changes since commit 84e79a7f63e8caeac0c1a0817408860875a9b23e: Merge tag 'peci-next-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/iwi/linux into char-misc-next (2024-04-23 21:31:45 -0700) are available in the Git repository at: https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git tags/iio-for-6.10b for you to fetch changes up to 9900e7a54764998ba3a22f06ec629f7b5fe0b422: iio: temperature: mcp9600: Fix temperature reading for negative values (2024-05-01 08:38:24 +0100) ---------------------------------------------------------------- IIO: 2nd set of new device support, features and cleanup for 6.10 The usual mixed bag from towards the end of the cycle. New devices support =================== invensense,icm42600 - Support the ICM-42686-P a high range device going up to 32g and 4000 dps New features ============ adi,ad7944 - Add support for chain mode in which many ADCs may be daisy chained and read out via a single long read. adi,ad9467/backend library - Add bus tuning related interfaces. adi,axi-adc - Add control for the AXI clock - seems always enabled early in boot for other reasons, but the driver should not rely on that.. Cleanups and minor or late breaking fixes ========================================= Micrsoft/ACPI mount matrix handling. - Replace several implementations of the Microsoft defined ROTM ACPI method with a single one. multiple drivers - Don't call the result of wait_for_completion() timeout as it's more accurate as time_left. adi,ad7266 - Stop setting the iio_dev->masklength as it's done by the IIO core and should not be set from drivers. adi,ad799x - Some checkpatch type fixes. adi,ad9839 - Ensure compelte MU_CNT1 is written during lock phase. adi,axi-dac - Fix inverted parameter. adi,adis16475 - Drop documentation of non existent sysfs files. avago,apds9306 - Fix an off by one error that overly restricts the range of persistence and adaptive thresholds that the driver accepts. freescale,mxs-lradc - Stop setting the iio_dev->masklength as it's done by the IIO core and should not be set from drivers. invensense,timestamp library - Fix timestamp vs interupt alignment and aovid soms glitches that occured when switching sampling frequency. microchip,mcp3564 - Make use of device_for_each_child_node_scoped() to allow early release without manual fwnode_handle_put(). microchip,mcp9600 - Allow for negative temperatures. microchip,pac1934 - Avoid an out of bounds array index. richtek,rtq6056 - Use iio_device_claim_direct_scoped() to automate lock release and simplify the code. sensortek,stk3110 - Drop a likely incorrect ACPI ID. No known users of this ID and it's not a valid ACPI ID. ti,ads1015 - Make use of device_for_each_child_node_scoped() to allow early release without manual fwnode_handle_put(). ---------------------------------------------------------------- Andy Shevchenko (1): iio: light: stk3310: Drop most likely fake ACPI ID Dan Carpenter (1): iio: dac: adi-axi: fix a mistake in axi_dac_ext_info_set() David Lechner (5): iio: adc: ad7266: don't set masklength iio: adc: mxs-lradc-adc: don't set masklength iio: buffer: initialize masklength accumulator to 0 iio: adc: ad7944: add support for chain mode docs: iio: ad7944: add documentation for chain mode Dimitri Fedrau (1): iio: temperature: mcp9600: Fix temperature reading for negative values Gabriel Schwartz (1): iio: adc: rtq6056: Use automated cleanup for mode handling in write_raw Gustavo Rodrigues (3): iio: adc: ad799x: change 'unsigned' to 'unsigned int' declaration iio: adc: ad799x: add blank line to avoid warning messages iio: adc: ad799x: Prefer to use octal permission Hans de Goede (4): iio: core: Add iio_read_acpi_mount_matrix() helper function iio: accel: kxcjk-1013: Use new iio_read_acpi_mount_matrix() helper iio: bmc150-accel-core: Use iio_read_acpi_mount_matrix() helper iio: accel: mxc4005: Read orientation matrix from ACPI ROTM method Jean-Baptiste Maneyrol (4): dt-bindings: iio: imu: add icm42686 inside inv_icm42600 iio: imu: inv_icm42600: add support of ICM-42686-P iio: invensense: fix interrupt timestamp alignment iio: invensense: fix timestamp glitches when switching frequency Jonathan Cameron (1): iio: adc: mcp3564: Use device_for_each_child_node_scoped() Lincoln Yuji (1): iio: adc: ti-ads1015: use device_for_each_child_node_scoped() Marius Cristea (1): iio: adc: PAC1934: fix accessing out of bounds array index Nuno Sa (8): dt-bindings: adc: axi-adc: add clocks property iio: adc: axi-adc: make sure AXI clock is enabled iio: backend: change docs padding iio: backend: add API for interface tuning iio: adc: adi-axi-adc: remove regmap max register iio: adc: adi-axi-adc: support digital interface calibration iio: adc: ad9467: support digital interface calibration iio: dac: ad9739a: write complete MU_CNT1 register during lock Ramona Gradinariu (1): docs: iio: adis16475: fix device files tables Subhajit Ghosh (1): iio: light: apds9306: Fix input arguments to in_range() Wolfram Sang (8): iio: adc: ad_sigma_delta: use 'time_left' variable with wait_for_completion_timeout() iio: adc: exynos_adc: use 'time_left' variable with wait_for_completion_timeout() iio: adc: fsl-imx25-gcq: use 'time_left' variable with wait_for_completion_interruptible_timeout() iio: adc: intel_mrfld_adc: use 'time_left' variable with wait_for_completion_interruptible_timeout() iio: adc: stm32-adc: use 'time_left' variable with wait_for_completion_interruptible_timeout() iio: adc: stm32-dfsdm-adc: use 'time_left' variable with wait_for_completion_interruptible_timeout() iio: adc: twl6030-gpadc: use 'time_left' variable with wait_for_completion_interruptible_timeout() iio: pressure: zpa2326: use 'time_left' variable with wait_for_completion_interruptible_timeout() .../devicetree/bindings/iio/adc/adi,axi-adc.yaml | 5 + .../bindings/iio/imu/invensense,icm42600.yaml | 1 + Documentation/iio/ad7944.rst | 30 +- Documentation/iio/adis16475.rst | 8 +- drivers/iio/Makefile | 1 + drivers/iio/accel/bmc150-accel-core.c | 44 +-- drivers/iio/accel/kxcjk-1013.c | 80 +---- drivers/iio/accel/mxc4005.c | 22 ++ drivers/iio/adc/ad7266.c | 1 - drivers/iio/adc/ad7944.c | 186 +++++++++- drivers/iio/adc/ad799x.c | 7 +- drivers/iio/adc/ad9467.c | 374 ++++++++++++++++++--- drivers/iio/adc/ad_sigma_delta.c | 6 +- drivers/iio/adc/adi-axi-adc.c | 127 ++++++- drivers/iio/adc/exynos_adc.c | 16 +- drivers/iio/adc/fsl-imx25-gcq.c | 10 +- drivers/iio/adc/intel_mrfld_adc.c | 12 +- drivers/iio/adc/mcp3564.c | 16 +- drivers/iio/adc/mxs-lradc-adc.c | 1 - drivers/iio/adc/pac1934.c | 9 + drivers/iio/adc/rtq6056.c | 34 +- drivers/iio/adc/stm32-adc.c | 10 +- drivers/iio/adc/stm32-dfsdm-adc.c | 12 +- drivers/iio/adc/ti-ads1015.c | 5 +- drivers/iio/adc/twl6030-gpadc.c | 8 +- .../iio/common/inv_sensors/inv_sensors_timestamp.c | 33 +- drivers/iio/dac/ad9739a.c | 5 +- drivers/iio/dac/adi-axi-dac.c | 6 +- drivers/iio/imu/inv_icm42600/inv_icm42600.h | 35 ++ drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c | 75 +++-- drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c | 23 +- drivers/iio/imu/inv_icm42600/inv_icm42600_core.c | 21 ++ drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c | 84 +++-- drivers/iio/imu/inv_icm42600/inv_icm42600_i2c.c | 3 + drivers/iio/imu/inv_icm42600/inv_icm42600_spi.c | 3 + drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c | 2 +- drivers/iio/industrialio-acpi.c | 85 +++++ drivers/iio/industrialio-backend.c | 162 ++++++--- drivers/iio/industrialio-buffer.c | 2 +- drivers/iio/light/apds9306.c | 12 +- drivers/iio/light/stk3310.c | 1 - drivers/iio/pressure/zpa2326.c | 10 +- drivers/iio/temperature/mcp9600.c | 3 +- include/linux/iio/backend.h | 74 ++-- include/linux/iio/common/inv_sensors_timestamp.h | 3 +- include/linux/iio/iio.h | 13 + 46 files changed, 1276 insertions(+), 404 deletions(-) create mode 100644 drivers/iio/industrialio-acpi.c