[PULL] IIO new device support, features, fixes and cleanups for 5.18

Jonathan Cameron
2022-03-02T13:43:56Z

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