The following changes since commit e783362eb54cd99b2cac8b3a9aeac942e6f6ac07: Linux 5.17-rc1 (2022-01-23 10:12:53 +0200) are available in the Git repository at: https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git tags/iio-for-5.18a for you to fetch changes up to 0bf126163c3e7e6d722622073046aed567a5551e: iio: adc: xilinx-ams: Fix single channel switching sequence (2022-03-02 13:39:08 +0000) ---------------------------------------------------------------- First set of new device support, fixes, cleanups and features for IIO in 5.18 This cycle we had quite a few series that applied similar changes to lots of drivers. To keep this description manageable I have called those out in their own section rather than per driver. Particularly pleased to see the long running AFE precision series going in this cycle. Series includes some late breaking fixes. New device support * adi,ada4250 amplifier - New driver and dt bindings for this programmable gain amplifier. * adi,admv1014 microwave down-converter - New driver, dt bindings and some device specific ABI that may be generalized as more drivers for devices similar to this are added. * adi,admv4420 K Band down-converter. - New driver and dt bindings. * adi,adxl367 accelerometer driver. - New driver, dt-bindings + some new IIO ABI definitions to support reference magnitude events where an estimate of the acceleration due to gravity has been removed. - A few fixes as follow up patches. * adi,ltc2688 DAC with toggle and dither modes. - New driver and bindings. Includes some new driver specific (for now) ABI for handling toggle mode and the addition of a dither waveform to the DAC output. * AFE (analog front end) add support for additional types of analog device in front of an ADC. - RTD temperature sensors with dt bindings. - Temperature transducers wit dt bindings. - Related cleanup and features listed in other sections below. * maxim,ds3502 potentiometer. - Add support to ds1803 driver which required significant rework. * mediatek,mt2701-auxadc driver - Add mediatek,mt8186-auxadc - id table and chip specific info only. * semtech,sx9324, semtech,ax9360 - Substantial refactoring of sx9310 to extract core logic for reuse into a separate module - New driver using this supporting sx9324 proximity sensors. - New driver using this supporting sx9360 proximity sensors. * silan,sc7a20 - Compatible with the st,lis2dh (or nearly anyway) so add ID and chip specific info to enable support. Also silan vendor ID added for dt-bindings. Staging graduation * adi,ad7280a monitoring ADC for stacked lithium-ion batteries in electric cars and similar. - Substantial rework of driver required to bring inline with current IIO best practice. An unusual device in IIO so some interesting features we may see more of in future. Multiple driver/core cleanup - Use sysfs_emit() in simple locations where there is no path to change to various core created attributes. - Trivial white space fixes around inconsistency between space after { and before } in id tables. - Introduce new handling for fractional types to avoid repeated similar implementations. Use this in 3 drivers. Note this is also targeted at future use in the AFE driver and was motivated by discussions around the precision related work on that driver. - of related header cleanups - drop of*.h and add mod_devicetable.h as appropriate. - Move a number of symbol exports into IIO_* namespaces. Two categories, 1) Library used by multiple drivers e.g. st_sensors 2) Core driver module exporting functions used by bus specific modules. A few related cleanups in this set. - Switch from CONFIG_PM_* guards to new DEFINE_SIMPLE_DEV_PM_OPS() and similar to simplify drivers and take advantage of these new macros allowing the compiler to do the job or removing unused code without the need for __maybe_unused markings. Conversion of other drivers to these new macros ongoing. Features * adi,adf4350 - Switch from of specific to generic device properties enabling use with other firmware types. * adi,adx345 - Switch from of specific to generic device properties. - Add ACPI ID ADS0345 - Related driver cleanup. * adi,hmc425a - Switch from of specific to generic device properties. * afe analog rescaler driver - Wider range of types supported for scale. - Support offset. - Kunit tests. * atlas,ezo-sensor - Convert from of to device properties. * fsl,mma8452 - Support mount matrix. * infineon,dps310: - Add ACPI ID IFX3100. * invensense,mpu6050 - Convert to generic device properties. * maxim,ds1803 - Add out_raw_available before supporting more devices. - Convert from of specific to device properties. * samsung,ssp_sensors - Convert from of specific to device properties. * st,stm32-timer trigger - Convert from of specific to device properties. * ti,hdc101x - Add ACPI ID TXNW1010. * ti,tsc2046: - Add read_raw support to enable use of iio_hwmon and similar. Fixes / cleanup. * mailmap - Update for Cai Huoqing * MAINTAINERS - Fix Analog Devices related links. - Add entry for ADRF6780 - Add entry for ADMV1013 - Add entry for AD7293 - Add entry for ADMV8818 - Update files listed for adis-lib * iio core: - Fix wrong comment about current_mode being something a driver should ever access. - Use struct_size() rather than open coding in industrialio-hw-consumer * adi,axl355 - Use units.h definitions instead of local versions. * adi,adis-lib - Simplify *updated_bits() macro - Whitespace cleanup. * afe - Note many of these fixes only apply to particular configurations so the problems have probably not been seen in the wild, but will be visible with new usecases enabled this cycle. - Fix application of consumer scale for IIO_VAL_INT. - Apply a scale of 1 when no scale is provided. - Make best effort to establish a valid offset value for fractional cases. - Use s64 for scale calculations where parameters may be signed. - Tidy up include order. - Improve accuracy for small fractional sales - Reduce risk of integer overflow. * ams,as3935 - Use devm_delayed_work_autocancel() to replace open coded equivalent. * aspeed,adc - Fix wrong use of divider flag. * atmel,sama5d2-adc - Relax atmel,trigger-edge-type to optional. - Drop Ludovic Desroches from listed maintainers of the dt-binding inline with previous MAINTAINERS entry update. * fsl,mma8452 - Fix probing when i2c_device_id used. - dev_get_drvdata() on the iio_dev->dev, no longer returns iio_dev. Use dev_to_iio_dev() instead. Note the original path in here worked more by luck than design. * invensense,mpu6050 - Drop ACPI_PTR() protection to avoid an unused warning. - Use fact ACPI_COMPANION() returns null when ACPI_HANDLE() does to simplify handling. * motorola,cpcap-adc - Drop unused assignment. * qcom,spmi-adc - Fix wrong example of 'reg' in binding document. * renesas,rzg2l-adc - Trivial typo fix. * semtech,sx9360 - Fix wrong register handling for event generation. * st_sensors - Allow manual disabling of I2C or SPI module if not needed for a particular board. Default is still to enable the bus specific module if appropriate bus is supported. * st,lsm6dsx - dev_get_drvdata() on the iio_dev->dev, no longer returns iio_dev. Use dev_to_iio_dev() instead. * ti,palmas-gpadc - Split the interrupt fields in the dt-binding example * ti,tsc2046 - Rework state machine to improve readability after recent debugging of an issue fixed elsewhere. - Add a sanity check to avoid very large memory allocations if a crazy delay is specified. * ti,twl6030 - Add error handling if devm_request_threaded_irq() fails. * xilinx,ams - Use devm_delayed_work_autocancel() instead of open coding equivalent. - Fix missing required clock entry in dt-binding. - Fix miss counting of channels resulting in ps channels not being enabled. - Fix incorrect values written to sequencer registers. - Fix sequence for single channel reading. ---------------------------------------------------------------- Andy Shevchenko (25): math.h: Introduce data types for fractional numbers iio: adc: rn5t618: Re-use generic struct u16_fract iio: adc: twl4030-madc: Re-use generic struct s16_fract iio: adc: qcom-vadc-common: Re-use generic struct u32_fract iio: dac: ad5592r: Drop leftover header inclusion iio: chemical: bme680: Switch from of headers to mod_devicetable.h iio: amplifiers: hmc425a: Make use of device properties iio: frequency: adf4350: Make use of device properties iio: humidity: dht11: Switch from of headers to mod_devicetable.h iio: temperature: mlx90632: Switch from of headers to mod_devicetable.h iio: temperature: maxim_thermocouple: Switch from of headers to mod_devicetable.h iio: accel: adxl355: Replace custom definitions with generic from units.h iio: imu: inv_mpu6050: Drop wrong use of ACPI_PTR() iio: imu: inv_mpu6050: Check ACPI companion directly iio: imu: inv_mpu6050: Make use of device properties iio: ssp_sensors: Make use of device properties iio: chemical: atlas-ezo-sensor: Make use of device properties iio: trigger: stm32-timer: Make use of device properties iio: accel: adxl345: Convert to use dev_err_probe() iio: accel: adxl345: Set driver_data for OF enumeration iio: accel: adxl345: Get rid of name parameter in adxl345_core_probe() iio: accel: adxl345: Make use of device properties iio: accel: adxl345: Extract adxl345_powerup() helper iio: accel: adxl345: Drop comma in terminator entries iio: accel: adxl345: Remove unneeded blank lines Antoniu Miclaus (12): MAINTAINERS: fix Analog Devices links MAINTAINERS: add maintainer for ADRF6780 driver MAINTAINERS: add maintainer for AD7293 driver MAINTAINERS: add maintainer for ADMV1013 driver MAINTAINERS: add maintainer for ADMV8818 driver iio: frequency: admv1014: add support for ADMV1014 dt-bindings: iio: frequency: add admv1014 binding Documentation: ABI: testing: admv1014: add ABI docs MAINTAINERS: add maintainer for ADMV1014 driver dt-bindings: iio: amplifiers: add ada4250 doc iio: amplifiers: ada4250: add support for ADA4250 MAINTAINERS: add maintainer for ADA4250 driver Billy Tsai (1): iio: adc: aspeed: Add divider flag to fix incorrect voltage reading. Cai Huoqing (1): mailmap: Update email address for Cai Huoqing Christophe JAILLET (2): iio: as3935: Use devm_delayed_work_autocancel() iio: adc: xilinx-ams: Use devm_delayed_work_autocancel() to simplify code Colin Ian King (1): iio: adc: cpcap-adc: remove redundant assignment to variable cal_data_diff Cosmin Tanislav (5): iio: introduce mag_referenced iio: ABI: document mag_referenced iio: ABI: add note about configuring other attributes during buffer capture dt-bindings: iio: accel: add ADXL367 iio: accel: add ADXL367 driver Cristian Pop (2): dt-bindings: iio: frequency: Add ADMV4420 doc iio: frequency: admv4420.c: Add support for ADMV4420 Dan Carpenter (1): iio: accel: adxl367: unlock on error in adxl367_buffer_predisable() Eugen Hristev (1): dt-bindings: iio: adc: atmel,sama5d2-adc: make atmel,trigger-edge-type non-mandatory Guodong Liu (2): dt-bindings: iio: adc: Add compatible for Mediatek MT8186 iio: adc: mt8186: Add compatible node for mt8186 Gustavo A. R. Silva (1): iio: hw_consumer: Use struct_size() helper in kzalloc() Gwendal Grignou (8): iio:proximity:sx9310: Add frequency in read_avail iio:proximity:sx9310: Extract common Semtech sensor logic iio:proximity:sx9324: Add SX9324 support dt-bindings:iio:proximity: Add sx9324 binding iio:proximity:sx9324: Add dt_binding support iio:proximity:sx9360: Add sx9360 support dt-bindings:iio:proximity: Add sx9360 binding iio:proximity:sx9360: Add dt-binding support Haibo Chen (2): iio: imu: st_lsm6dsx: use dev_to_iio_dev() to get iio_dev struct iio: accel: mma8452: use the correct logic to get mma8452_data Hans de Goede (2): iio: mma8452: Fix probe failing when an i2c_device_id is used iio: mma8452: Add support for the "mount-matrix" device property Jagath Jog J (7): iio: potentiometer: ds1803: Alignment to match the open parenthesis iio: potentiometer: ds1803: Add available functionality iio: potentiometer: ds1803: Add channel information in device data iio: potentiometer: ds1803: Change to firmware provided data iio: potentiometer: ds1803: Add device specific read_raw function iio: potentiometer: ds1803: Add support for Maxim DS3502 dt-bindings: iio: potentiometer: Add Maxim DS3502 in trivial-devices Jan Luebbe (1): dt-bindings: iio: adc: microchip,mcp3201: fix interface type (I2C -> SPI) Jiasheng Jiang (1): iio: adc: Add check for devm_request_threaded_irq Jonathan Cameron (115): iio:chemical:atlas: Trivial white space cleanup to add space before } iio:light:pa12203001: Tidy up white space change to add spaces after { and before } iio:light:vcnl4035: Trivial whitespace cleanup to add space before } iio:light:us5182: White space cleanup of spacing around {} in id tables iio:light:ltr501: White space cleanup of spacing around {} in id tables iio:proximity:ping: White space cleanup of spacing around {} in id tables iio:proximity:rfd77402: White space cleanup of spacing around {} in id tables iio:proximity:srf04: White space cleanup of spacing around {} in id tables iio:proximity:srf08: White space cleanup of spacing around {} in id tables iio:frequency:admv1013: White space cleanup of spacing around {} in id tables iio:adc:mt6577_auxadc: Tidy up white space around {} in id tables iio:adc:hi8435: Tidy up white space around {} in id tables iio:adc:ti-adc084s021: Tidy up white space around {} iio:light:tsl2722: Fix inconsistent spacing before } in id table iio:proximity:vl53l0x: Tidy up white space around {} in id tables iio:accel:dmard09: Tidy up white space around {} in id table iio:accel:mma9551_core: Move exports into IIO_MMA9551 namespace iio:accel:mma7455_core: Move exports into IIO_MMA7455 namespace iio:accel:kxsd9: Move exports into IIO_KDSD9 namespace iio:accel:bma400: Move exports into IIO_BMA400 namespace iio:accel:adxl313: Move exports into IIO_ADXL313 namespace iio:accel:adxl345: Move exports into IIO_ADXL345 namespace iio:accel:adxl355: Move exports into IIO_ADXL355 namespace iio:accel:adxl372: Move exports into IIO_ADXL372 namespace iio:accel:bmc150: Move exports into IIO_BMC150 namespace iio:accel:bmi088: Move exports into IIO_BMI088 namespace iio:accel:fxl8962af: Move exports into IIO_FXL8962AF namespace iio:st-sensors: Remove duplicate MODULE_* iio:st-sensors: Move exports into IIO_ST_SENSORS namespace iio:adc:ad_sigma_delta: Move exports into IIO_AD_SIGMA_DELTA namespace iio:adc:ad7091r: Move exports into IIO_AD7091R namespace. iio:adc:ad76060: Move exports into IIO_AD7606 namespace. iio:common:meas-spec: Move exports into IIO_MEAS_SPEC_SENSORS iio:common:ssp_sensors: Move exports into IIO_SSP_SENSORS namespace iio:dac:ad5592r: Move exports into IIO_AD5592R namespace iio:dac:ad5686: Move exports into IIO_AD5686 namespace iio:imu:adis: Move exports into IIO_ADISLIB namespace iio:pressure:zpa2326: Move exports into IIO_ZPA2326 namespace iio:pressure:ms5611: Move exports into IIO_MS5611 namespace iio:pressure:mpl115: Move exports into IIO_MPL115 namespace iio:magnetometer:rm3100: Move exports to IIO_RM3100 namespace iio:magnetometer:bmc150: Move exports to IIO_BMC150_MAGN namespace iio:magnetometer:hmc5843: Move exports to IIO_HMC5843 namespace iio:light:st_uvis25: Move exports to IIO_UVIS25 namespace iio:chemical:bme680: Move exports to IIO_BME680 namespace iio:accel:da311: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:accel:da280: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:accel:dmard06: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:accel:dmard10: Switch from CONFIG_PM guards to pm_sleep_ptr() etc iio:accel:mc3230: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:accel:mma7660: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() iio:accel:mma9551: Switch from CONFIG_PM guards to pm_ptr() etc iio:accel:mma9553: Switch from CONFIG_PM guards to pm_ptr() etc iio:accel:stk8ba50: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:adc:at91-adc: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:adc:exynos_adc: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() iio:adc:palmas_gpadc: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() iio:adc:rockchip: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:adc:twl6030: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:adc:vf610: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:common:ssp: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:dac:vf610: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:light:apds9300: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:light:cm3232: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:light:isl29018: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() iio:light:isl29125: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:light:jsa1212: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:light:ltr501: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:light:stk3310: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:light:tcs3414: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:light:tcs3472: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:light:tsl2563: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:light:tsl4531: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:magn:ak8975: Switch from CONFIG_PM guards to pm_ptr() etc iio:magn:mag3110: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:magn:mmc35240: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:pressure:mpl3115: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:proximity:as3935: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:proximity:rfd77492: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:proximity:sx9500: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:temperature:tmp006: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:temperature:tmp007: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:accel:stk8312: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:accel:bma180: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:dac:m62332: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc iio:imu:kmx61: Switch from CONFIG_PM* guards to pm_ptr() etc iio:temperature:mlx90614: Switch from CONFIG_PM* guards to pm_ptr() etc iio:adc:ab8500: Switch from CONFIG_PM guards to pm_ptr() etc iio:adc:stm32:Switch from CONFIG_PM guards to pm_ptr() iio:adc:rcar: Switch from CONFIG_PM guards to pm_ptr() etc iio:light:bh1780: Switch from CONFIG_PM guards to pm_ptr() etc iio:proximity:pulsedlight: Switch from CONFIG_PM guards to pm_ptr() etc iio:chemical:atlas: Switch from CONFIG_PM guards to pm_ptr() etc iio:light:rpr0521: Switch from CONFIG_PM guards to pm_ptr() etc iio:adc:stm32*: Use pm[_sleep]_ptr() etc to avoid need to make pm __maybe_unused staging:iio:adc:ad7280a: Fix handing of device address bit reversing. staging:iio:adc:ad7280a: Register define cleanup. staging:iio:adc:ad7280a: rename _read() to _read_reg() staging:iio:adc:ad7280a: Split buff[2] into tx and rx parts staging:iio:adc:ad7280a: Use bitfield ops to managed fields in transfers. staging:iio:adc:ad7280a: Switch to standard event control staging:iio:adc:ad7280a: Standardize extended ABI naming staging:iio:adc:ad7280a: Drop unused timestamp channel. staging:iio:adc:ad7280a: Trivial comment formatting cleanup staging:iio:adc:ad7280a: Make oversampling_ratio a runtime control staging:iio:adc:ad7280a: Cleanup includes staging:iio:ad7280a: Reflect optionality of irq in ABI staging:iio:adc:ad7280a: Use a local dev pointer to avoid &spi->dev staging:iio:adc:ad7280a: Use device properties to replace platform data. staging:iio:adc:ad7280a: Drop buggy support for early termination of AUX alert. dt-bindings:iio:adc:ad7280a: Add binding iio:adc:ad7280a: Document ABI for cell balance switches staging:iio:adc:ad7280a: Remove shift from cb_mask state cache. staging:iio:adc:ad7280a: Use more conservative delays to allow 105C operation. iio:adc:ad7280a: Move out of staging Jongpil Jung (1): iio: sx9360: fix iio event generation Kai-Heng Feng (3): iio: pressure: dps310: Add ACPI HID table iio: humidity: hdc100x: Add ACPI HID table iio: accel: adxl345: Add ACPI HID table Lad Prabhakar (1): iio: adc: rzg2l_adc: Fix typo Lars-Peter Clausen (13): iio: core: Use sysfs_emit() iio: dmaengine-buffer: Use sysfs_emit() iio: ad7192: Use sysfs_emit() iio: ad9523: Use sysfs_emit() iio: as3935: Use sysfs_emit() iio: ina2xx-adc: sysfs_emit() iio: lm3533: Use sysfs_emit() iio: max31856: Use sysfs_emit() iio: max31865: Use sysfs_emit() iio: max9611: Use sysfs_emit() iio: ms_sensors: Use sysfs_emit() iio: scd4x: Use sysfs_emit() iio: sps30: Use sysfs_emit() Liam Beguin (15): iio: inkern: apply consumer scale on IIO_VAL_INT cases iio: inkern: apply consumer scale when no channel scale is available iio: inkern: make a best effort on offset calculation iio: afe: rescale: use s64 for temporary scale calculations iio: afe: rescale: reorder includes iio: afe: rescale: expose scale processing function iio: afe: rescale: add INT_PLUS_{MICRO,NANO} support iio: afe: rescale: add offset support iio: afe: rescale: fix accuracy for small fractional scales iio: afe: rescale: reduce risk of integer overflow iio: test: add basic tests for the iio-rescale driver iio: afe: rescale: add RTD temperature sensor support iio: afe: rescale: add temperature transducers dt-bindings: iio: afe: add bindings for temperature-sense-rtd dt-bindings: iio: afe: add bindings for temperature transducers Miquel Raynal (1): iio: core: Fix the kernel doc regarding the currentmode iio_dev entry Nathan Chancellor (1): iio: accel: adxl367: Fix handled initialization in adxl367_irq_handler() Nicolas Ferre (1): dt-bindings: iio: adc: at91-sama5d2: update maintainers entry Nikita Yushchenko (1): iio: st_sensors: don't always auto-enable I2C and SPI interface drivers Nuno Sá (6): MAINTAINERS: add missing files to the adis lib adis: simplify 'adis_update_bits' macros iio: adis: stylistic changes iio: dac: add support for ltc2688 iio: ABI: add ABI file for the LTC2688 DAC dt-bindings: iio: Add ltc2688 documentation Oleksij Rempel (3): iio: adc: tsc2046: rework the trigger state machine iio: adc: tsc2046: add .read_raw support iio: adc: tsc2046: add sanity check to avoid to big allocations Rob Herring (2): dt-bindings: iio/adc: ti,palmas-gpadc: Split interrupt fields in example dt-bindings: iio/adc: qcom,spmi-iadc: Fix 'reg' property in example Robert Hancock (4): dt-bindings: iio: adc: zynqmp_ams: Add clock entry iio: adc: xilinx-ams: Fixed missing PS channels iio: adc: xilinx-ams: Fixed wrong sequencer register settings iio: adc: xilinx-ams: Fix single channel switching sequence Samuel Holland (3): dt-bindings: vendor-prefixes: Add silan vendor prefix dt-bindings: iio: st: Add Silan SC7A20 accelerometer iio: accel: st_accel: Add support for Silan SC7A20 .mailmap | 1 + Documentation/ABI/testing/sysfs-bus-iio | 31 + .../ABI/testing/sysfs-bus-iio-adc-ad7280a | 13 + .../ABI/testing/sysfs-bus-iio-dac-ltc2688 | 86 ++ .../ABI/testing/sysfs-bus-iio-frequency-admv1014 | 23 + Documentation/ABI/testing/sysfs-bus-iio-sx9324 | 28 + .../devicetree/bindings/iio/accel/adi,adxl367.yaml | 79 + .../devicetree/bindings/iio/adc/adi,ad7280a.yaml | 77 + .../bindings/iio/adc/atmel,sama5d2-adc.yaml | 2 - .../bindings/iio/adc/mediatek,mt2701-auxadc.yaml | 1 + .../bindings/iio/adc/microchip,mcp3201.yaml | 2 +- .../bindings/iio/adc/qcom,spmi-iadc.yaml | 2 +- .../bindings/iio/adc/ti,palmas-gpadc.yaml | 6 +- .../bindings/iio/adc/xlnx,zynqmp-ams.yaml | 8 + .../bindings/iio/afe/temperature-sense-rtd.yaml | 101 ++ .../bindings/iio/afe/temperature-transducer.yaml | 114 ++ .../bindings/iio/amplifiers/adi,ada4250.yaml | 50 + .../devicetree/bindings/iio/dac/adi,ltc2688.yaml | 146 ++ .../bindings/iio/frequency/adi,admv1014.yaml | 134 ++ .../bindings/iio/frequency/adi,admv4420.yaml | 55 + .../bindings/iio/proximity/semtech,sx9324.yaml | 161 ++ .../bindings/iio/proximity/semtech,sx9360.yaml | 89 ++ .../devicetree/bindings/iio/st,st-sensors.yaml | 3 + .../devicetree/bindings/trivial-devices.yaml | 2 + .../devicetree/bindings/vendor-prefixes.yaml | 2 + MAINTAINERS | 123 +- drivers/iio/accel/Kconfig | 62 +- drivers/iio/accel/Makefile | 3 + drivers/iio/accel/adis16201.c | 1 + drivers/iio/accel/adis16209.c | 1 + drivers/iio/accel/adxl313_core.c | 6 +- drivers/iio/accel/adxl313_i2c.c | 1 + drivers/iio/accel/adxl313_spi.c | 1 + drivers/iio/accel/adxl345.h | 7 +- drivers/iio/accel/adxl345_core.c | 56 +- drivers/iio/accel/adxl345_i2c.c | 35 +- drivers/iio/accel/adxl345_spi.c | 35 +- drivers/iio/accel/adxl355_core.c | 11 +- drivers/iio/accel/adxl355_i2c.c | 1 + drivers/iio/accel/adxl355_spi.c | 1 + drivers/iio/accel/adxl367.c | 1588 ++++++++++++++++++++ drivers/iio/accel/adxl367.h | 23 + drivers/iio/accel/adxl367_i2c.c | 90 ++ drivers/iio/accel/adxl367_spi.c | 164 ++ drivers/iio/accel/adxl372.c | 4 +- drivers/iio/accel/adxl372_i2c.c | 1 + drivers/iio/accel/adxl372_spi.c | 1 + drivers/iio/accel/bma180.c | 9 +- drivers/iio/accel/bma400_core.c | 6 +- drivers/iio/accel/bma400_i2c.c | 1 + drivers/iio/accel/bma400_spi.c | 1 + drivers/iio/accel/bmc150-accel-core.c | 8 +- drivers/iio/accel/bmc150-accel-i2c.c | 1 + drivers/iio/accel/bmc150-accel-spi.c | 1 + drivers/iio/accel/bmi088-accel-core.c | 8 +- drivers/iio/accel/bmi088-accel-spi.c | 1 + drivers/iio/accel/da280.c | 6 +- drivers/iio/accel/da311.c | 6 +- drivers/iio/accel/dmard06.c | 10 +- drivers/iio/accel/dmard09.c | 2 +- drivers/iio/accel/dmard10.c | 7 +- drivers/iio/accel/fxls8962af-core.c | 6 +- drivers/iio/accel/fxls8962af-i2c.c | 1 + drivers/iio/accel/fxls8962af-spi.c | 1 + drivers/iio/accel/kxsd9-i2c.c | 1 + drivers/iio/accel/kxsd9-spi.c | 1 + drivers/iio/accel/kxsd9.c | 6 +- drivers/iio/accel/mc3230.c | 6 +- drivers/iio/accel/mma7455_core.c | 6 +- drivers/iio/accel/mma7455_i2c.c | 1 + drivers/iio/accel/mma7455_spi.c | 1 + drivers/iio/accel/mma7660.c | 11 +- drivers/iio/accel/mma8452.c | 54 +- drivers/iio/accel/mma9551.c | 12 +- drivers/iio/accel/mma9551_core.c | 36 +- drivers/iio/accel/mma9553.c | 12 +- drivers/iio/accel/ssp_accel_sensor.c | 1 + drivers/iio/accel/st_accel.h | 2 + drivers/iio/accel/st_accel_buffer.c | 5 - drivers/iio/accel/st_accel_core.c | 88 +- drivers/iio/accel/st_accel_i2c.c | 6 + drivers/iio/accel/st_accel_spi.c | 1 + drivers/iio/accel/stk8312.c | 11 +- drivers/iio/accel/stk8ba50.c | 11 +- drivers/iio/adc/Kconfig | 11 + drivers/iio/adc/Makefile | 1 + drivers/iio/adc/ab8500-gpadc.c | 14 +- drivers/iio/adc/ad7091r-base.c | 4 +- drivers/iio/adc/ad7091r5.c | 1 + drivers/iio/adc/ad7124.c | 1 + drivers/iio/adc/ad7192.c | 5 +- drivers/iio/adc/ad7280a.c | 1111 ++++++++++++++ drivers/iio/adc/ad7606.c | 4 +- drivers/iio/adc/ad7606_par.c | 1 + drivers/iio/adc/ad7606_spi.c | 1 + drivers/iio/adc/ad7780.c | 1 + drivers/iio/adc/ad7791.c | 1 + drivers/iio/adc/ad7793.c | 1 + drivers/iio/adc/ad_sigma_delta.c | 20 +- drivers/iio/adc/aspeed_adc.c | 4 +- drivers/iio/adc/at91_adc.c | 7 +- drivers/iio/adc/cpcap-adc.c | 2 +- drivers/iio/adc/exynos_adc.c | 9 +- drivers/iio/adc/hi8435.c | 2 +- drivers/iio/adc/ina2xx-adc.c | 2 +- drivers/iio/adc/max9611.c | 2 +- drivers/iio/adc/mt6577_auxadc.c | 16 +- drivers/iio/adc/palmas_gpadc.c | 10 +- drivers/iio/adc/qcom-pm8xxx-xoadc.c | 15 +- drivers/iio/adc/qcom-spmi-vadc.c | 24 +- drivers/iio/adc/qcom-vadc-common.c | 92 +- drivers/iio/adc/rcar-gyroadc.c | 6 +- drivers/iio/adc/rn5t618-adc.c | 7 +- drivers/iio/adc/rockchip_saradc.c | 9 +- drivers/iio/adc/rzg2l_adc.c | 4 +- drivers/iio/adc/stm32-adc-core.c | 17 +- drivers/iio/adc/stm32-adc.c | 12 +- drivers/iio/adc/stm32-dfsdm-adc.c | 11 +- drivers/iio/adc/stm32-dfsdm-core.c | 19 +- drivers/iio/adc/ti-adc084s021.c | 2 +- drivers/iio/adc/ti-tsc2046.c | 269 +++- drivers/iio/adc/twl4030-madc.c | 9 +- drivers/iio/adc/twl6030-gpadc.c | 10 +- drivers/iio/adc/vf610_adc.c | 7 +- drivers/iio/adc/xilinx-ams.c | 26 +- drivers/iio/afe/iio-rescale.c | 288 +++- drivers/iio/amplifiers/Kconfig | 11 + drivers/iio/amplifiers/Makefile | 1 + drivers/iio/amplifiers/ada4250.c | 403 +++++ drivers/iio/amplifiers/hmc425a.c | 6 +- drivers/iio/buffer/industrialio-buffer-dmaengine.c | 2 +- drivers/iio/buffer/industrialio-hw-consumer.c | 4 +- drivers/iio/chemical/atlas-ezo-sensor.c | 32 +- drivers/iio/chemical/atlas-sensor.c | 17 +- drivers/iio/chemical/bme680_core.c | 4 +- drivers/iio/chemical/bme680_i2c.c | 1 + drivers/iio/chemical/bme680_spi.c | 3 +- drivers/iio/chemical/scd4x.c | 2 +- drivers/iio/chemical/sps30.c | 2 +- drivers/iio/common/ms_sensors/ms_sensors_i2c.c | 28 +- drivers/iio/common/ssp_sensors/ssp_dev.c | 40 +- drivers/iio/common/ssp_sensors/ssp_iio.c | 7 +- drivers/iio/common/st_sensors/Kconfig | 2 - drivers/iio/common/st_sensors/st_sensors_buffer.c | 7 +- drivers/iio/common/st_sensors/st_sensors_core.c | 28 +- drivers/iio/common/st_sensors/st_sensors_i2c.c | 2 +- drivers/iio/common/st_sensors/st_sensors_spi.c | 2 +- drivers/iio/common/st_sensors/st_sensors_trigger.c | 9 +- drivers/iio/dac/Kconfig | 11 + drivers/iio/dac/Makefile | 1 + drivers/iio/dac/ad5592r-base.c | 5 +- drivers/iio/dac/ad5592r.c | 1 + drivers/iio/dac/ad5593r.c | 1 + drivers/iio/dac/ad5686-spi.c | 1 + drivers/iio/dac/ad5686.c | 4 +- drivers/iio/dac/ad5696-i2c.c | 1 + drivers/iio/dac/ltc2688.c | 1071 +++++++++++++ drivers/iio/dac/m62332.c | 11 +- drivers/iio/dac/stm32-dac-core.c | 16 +- drivers/iio/dac/stm32-dac.c | 9 +- drivers/iio/dac/vf610_dac.c | 7 +- drivers/iio/frequency/Kconfig | 20 + drivers/iio/frequency/Makefile | 2 + drivers/iio/frequency/ad9523.c | 2 +- drivers/iio/frequency/adf4350.c | 103 +- drivers/iio/frequency/admv1013.c | 2 +- drivers/iio/frequency/admv1014.c | 823 ++++++++++ drivers/iio/frequency/admv4420.c | 398 +++++ drivers/iio/gyro/Kconfig | 37 +- drivers/iio/gyro/adis16136.c | 1 + drivers/iio/gyro/adis16260.c | 1 + drivers/iio/gyro/ssp_gyro_sensor.c | 1 + drivers/iio/gyro/st_gyro_buffer.c | 4 - drivers/iio/gyro/st_gyro_core.c | 5 +- drivers/iio/gyro/st_gyro_i2c.c | 1 + drivers/iio/gyro/st_gyro_spi.c | 1 + drivers/iio/humidity/dht11.c | 3 +- drivers/iio/humidity/hdc100x.c | 7 + drivers/iio/humidity/htu21.c | 1 + drivers/iio/imu/adis.c | 67 +- drivers/iio/imu/adis16400.c | 1 + drivers/iio/imu/adis16460.c | 1 + drivers/iio/imu/adis16475.c | 1 + drivers/iio/imu/adis16480.c | 1 + drivers/iio/imu/adis_buffer.c | 10 +- drivers/iio/imu/adis_trigger.c | 5 +- drivers/iio/imu/inv_mpu6050/inv_mpu_acpi.c | 5 +- drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c | 15 +- drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c | 5 +- drivers/iio/imu/kmx61.c | 10 +- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 4 +- drivers/iio/imu/st_lsm9ds0/Kconfig | 28 +- drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_core.c | 3 +- drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c | 1 + drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c | 1 + drivers/iio/industrialio-buffer.c | 4 +- drivers/iio/industrialio-core.c | 2 +- drivers/iio/industrialio-event.c | 1 + drivers/iio/inkern.c | 40 +- drivers/iio/light/apds9300.c | 10 +- drivers/iio/light/bh1780.c | 12 +- drivers/iio/light/cm3232.c | 9 +- drivers/iio/light/isl29018.c | 10 +- drivers/iio/light/isl29125.c | 7 +- drivers/iio/light/jsa1212.c | 11 +- drivers/iio/light/lm3533-als.c | 6 +- drivers/iio/light/ltr501.c | 20 +- drivers/iio/light/pa12203001.c | 4 +- drivers/iio/light/rpr0521.c | 7 +- drivers/iio/light/st_uvis25_core.c | 4 +- drivers/iio/light/st_uvis25_i2c.c | 1 + drivers/iio/light/st_uvis25_spi.c | 1 + drivers/iio/light/stk3310.c | 11 +- drivers/iio/light/tcs3414.c | 7 +- drivers/iio/light/tcs3472.c | 7 +- drivers/iio/light/tsl2563.c | 10 +- drivers/iio/light/tsl2772.c | 2 +- drivers/iio/light/tsl4531.c | 10 +- drivers/iio/light/us5182d.c | 6 +- drivers/iio/light/vcnl4035.c | 2 +- drivers/iio/magnetometer/Kconfig | 35 +- drivers/iio/magnetometer/ak8975.c | 12 +- drivers/iio/magnetometer/bmc150_magn.c | 8 +- drivers/iio/magnetometer/bmc150_magn_i2c.c | 1 + drivers/iio/magnetometer/bmc150_magn_spi.c | 1 + drivers/iio/magnetometer/hmc5843_core.c | 8 +- drivers/iio/magnetometer/hmc5843_i2c.c | 1 + drivers/iio/magnetometer/hmc5843_spi.c | 1 + drivers/iio/magnetometer/mag3110.c | 10 +- drivers/iio/magnetometer/mmc35240.c | 9 +- drivers/iio/magnetometer/rm3100-core.c | 8 +- drivers/iio/magnetometer/rm3100-i2c.c | 1 + drivers/iio/magnetometer/rm3100-spi.c | 1 + drivers/iio/magnetometer/st_magn_buffer.c | 4 - drivers/iio/magnetometer/st_magn_core.c | 5 +- drivers/iio/magnetometer/st_magn_i2c.c | 1 + drivers/iio/magnetometer/st_magn_spi.c | 1 + drivers/iio/potentiometer/Kconfig | 6 +- drivers/iio/potentiometer/ds1803.c | 169 ++- drivers/iio/pressure/Kconfig | 35 +- drivers/iio/pressure/dps310.c | 7 + drivers/iio/pressure/mpl115.c | 2 +- drivers/iio/pressure/mpl115_i2c.c | 1 + drivers/iio/pressure/mpl115_spi.c | 1 + drivers/iio/pressure/mpl3115.c | 10 +- drivers/iio/pressure/ms5611_core.c | 4 +- drivers/iio/pressure/ms5611_i2c.c | 1 + drivers/iio/pressure/ms5611_spi.c | 1 + drivers/iio/pressure/ms5637.c | 1 + drivers/iio/pressure/st_pressure_buffer.c | 5 - drivers/iio/pressure/st_pressure_core.c | 5 +- drivers/iio/pressure/st_pressure_i2c.c | 1 + drivers/iio/pressure/st_pressure_spi.c | 1 + drivers/iio/pressure/zpa2326.c | 12 +- drivers/iio/pressure/zpa2326_i2c.c | 1 + drivers/iio/pressure/zpa2326_spi.c | 1 + drivers/iio/proximity/Kconfig | 34 + drivers/iio/proximity/Makefile | 3 + drivers/iio/proximity/as3935.c | 26 +- drivers/iio/proximity/ping.c | 4 +- drivers/iio/proximity/pulsedlight-lidar-lite-v2.c | 7 +- drivers/iio/proximity/rfd77402.c | 9 +- drivers/iio/proximity/srf04.c | 12 +- drivers/iio/proximity/srf08.c | 6 +- drivers/iio/proximity/sx9310.c | 741 ++------- drivers/iio/proximity/sx9324.c | 1068 +++++++++++++ drivers/iio/proximity/sx9360.c | 893 +++++++++++ drivers/iio/proximity/sx9500.c | 8 +- drivers/iio/proximity/sx_common.c | 572 +++++++ drivers/iio/proximity/sx_common.h | 157 ++ drivers/iio/proximity/vl53l0x-i2c.c | 2 +- drivers/iio/temperature/max31856.c | 4 +- drivers/iio/temperature/max31865.c | 4 +- drivers/iio/temperature/maxim_thermocouple.c | 5 +- drivers/iio/temperature/mlx90614.c | 12 +- drivers/iio/temperature/mlx90632.c | 2 +- drivers/iio/temperature/tmp006.c | 6 +- drivers/iio/temperature/tmp007.c | 6 +- drivers/iio/temperature/tsys01.c | 1 + drivers/iio/temperature/tsys02d.c | 1 + drivers/iio/test/Kconfig | 10 + drivers/iio/test/Makefile | 1 + drivers/iio/test/iio-test-rescale.c | 710 +++++++++ drivers/iio/trigger/Kconfig | 2 +- drivers/iio/trigger/stm32-timer-trigger.c | 23 +- drivers/staging/iio/accel/adis16203.c | 1 + drivers/staging/iio/accel/adis16240.c | 1 + drivers/staging/iio/adc/Kconfig | 11 - drivers/staging/iio/adc/Makefile | 1 - drivers/staging/iio/adc/ad7280a.c | 1044 ------------- drivers/staging/iio/adc/ad7280a.h | 37 - include/linux/iio/adc/qcom-vadc-common.h | 15 +- include/linux/iio/afe/rescale.h | 36 + include/linux/iio/iio.h | 2 +- include/linux/iio/imu/adis.h | 60 +- include/linux/math.h | 12 + include/uapi/linux/iio/types.h | 1 + tools/iio/iio_event_monitor.c | 1 + 298 files changed, 12334 insertions(+), 2950 deletions(-) create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-adc-ad7280a create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-dac-ltc2688 create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-frequency-admv1014 create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-sx9324 create mode 100644 Documentation/devicetree/bindings/iio/accel/adi,adxl367.yaml create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad7280a.yaml create mode 100644 Documentation/devicetree/bindings/iio/afe/temperature-sense-rtd.yaml create mode 100644 Documentation/devicetree/bindings/iio/afe/temperature-transducer.yaml create mode 100644 Documentation/devicetree/bindings/iio/amplifiers/adi,ada4250.yaml create mode 100644 Documentation/devicetree/bindings/iio/dac/adi,ltc2688.yaml create mode 100644 Documentation/devicetree/bindings/iio/frequency/adi,admv1014.yaml create mode 100644 Documentation/devicetree/bindings/iio/frequency/adi,admv4420.yaml create mode 100644 Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml create mode 100644 Documentation/devicetree/bindings/iio/proximity/semtech,sx9360.yaml create mode 100644 drivers/iio/accel/adxl367.c create mode 100644 drivers/iio/accel/adxl367.h create mode 100644 drivers/iio/accel/adxl367_i2c.c create mode 100644 drivers/iio/accel/adxl367_spi.c create mode 100644 drivers/iio/adc/ad7280a.c create mode 100644 drivers/iio/amplifiers/ada4250.c create mode 100644 drivers/iio/dac/ltc2688.c create mode 100644 drivers/iio/frequency/admv1014.c create mode 100644 drivers/iio/frequency/admv4420.c create mode 100644 drivers/iio/proximity/sx9324.c create mode 100644 drivers/iio/proximity/sx9360.c create mode 100644 drivers/iio/proximity/sx_common.c create mode 100644 drivers/iio/proximity/sx_common.h create mode 100644 drivers/iio/test/iio-test-rescale.c delete mode 100644 drivers/staging/iio/adc/ad7280a.c delete mode 100644 drivers/staging/iio/adc/ad7280a.h create mode 100644 include/linux/iio/afe/rescale.h