Add support for AD485X fully buffered, 8-channel simultaneous sampling, 16/20-bit, 1 MSPS data acquisition system (DAS) with differential, wide common-mode range inputs. Some particularities: 1. softspan - the devices support multiple softspans which are represented in iio through offset/scale. The current handling implies changing both the scale and the offset separately via IIO, therefore in order to properly set the softspan, each time the offset changes the softspan is set to the default value. And only after changing also the scale the desired softspan is set. This is the approach we are suggesting since we need the softspan configurable from userspace and not from devicetree. 2. packet format - Data provided on the CMOS and LVDS conversion data output buses are packaged into eight channel packets. This is currently handled as extended info. Antoniu Miclaus (8): iio: backend: add API for interface get iio: backend: add support for data size set iio: backend: add API for oversampling iio: adc: adi-axi-adc: add interface type iio: adc: adi-axi-adc: set data format iio: adc: adi-axi-adc: add oversampling dt-bindings: iio: adc: add ad4851 iio: adc: ad4851: add ad485x driver .../bindings/iio/adc/adi,ad4851.yaml | 103 ++ drivers/iio/adc/Kconfig | 13 + drivers/iio/adc/Makefile | 1 + drivers/iio/adc/ad4851.c | 1190 +++++++++++++++++ drivers/iio/adc/adi-axi-adc.c | 63 + drivers/iio/industrialio-backend.c | 59 + include/linux/iio/backend.h | 17 + 7 files changed, 1446 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad4851.yaml create mode 100644 drivers/iio/adc/ad4851.c -- 2.47.0