v1: https://lore.kernel.org/linux-iio/20231204144925.4fe9922f@jic23-huawei/T/#m222f5175273b81dbfe40b7f0daffcdc67d6cb8ff v2: https://lore.kernel.org/r/20231208-dev-iio-backend-v2-0-5450951895e1@xxxxxxxxxx v3: https://lore.kernel.org/linux-iio/20231213-dev-iio-backend-v3-0-bb9f12a5c6dc@xxxxxxxxxx/ v4: https://lore.kernel.org/r/20231220-iio-backend-v4-0-998e9148b692@xxxxxxxxxx v5: https://lore.kernel.org/r/20240112-iio-backend-v5-0-bdecad041ab4@xxxxxxxxxx Changes in v6: - Patch 2 * Add '#io-backends-cells' property to the example dts. - Patch 6 * Improve comment on struct iio_backend_buffer_pair; * Be consistent with dots in kernel-docs. So dots only exist now in description and return. Also be consistent on device managed APIs subject and @dev description; * Added devm_iio_backend_enable() and hence (and for now) iio_backend_disable is static; * Fixed __devm_iio_backend_get_from_fwnode_lookup() kernel-doc; * Improved english in devm_iio_backend_register() comment; * Don't make private data mandatory; - Patch 7 * Use local ad9467_chip_info *info variable; * Improve error handling for optional devm_iio_backend_get(); * Make use of devm_iio_backend_enable(). - Patch 8 * Also change string format in version error path. Not that big of change in this version (more small things). The most noticeable is perhaps the introduction of devm_iio_backend_enable(). Keeping the block diagram so we don't have to follow links to check one of the typical setups. ------------------------------------------------------- ------------------ | ----------- ------------ ------- FPGA | | ADC |------------------------| | AXI ADC |---------| DMA CORE |------| RAM | | | (Frontend/IIO) | Serial Data (eg: LVDS) | |(backend)|---------| |------| | | | |------------------------| ----------- ------------ ------- | ------------------ ------------------------------------------------------- --- Nuno Sa (7): dt-bindings: adc: ad9467: add new io-backend property dt-bindings: adc: axi-adc: update bindings for backend framework driver: core: allow modifying device_links flags iio: buffer-dmaengine: export buffer alloc and free functions iio: add the IIO backend framework iio: adc: ad9467: convert to backend framework iio: adc: adi-axi-adc: move to backend framework Olivier Moysan (1): of: property: add device link support for io-backends .../devicetree/bindings/iio/adc/adi,ad9467.yaml | 4 + .../devicetree/bindings/iio/adc/adi,axi-adc.yaml | 8 +- MAINTAINERS | 8 + drivers/base/core.c | 14 +- drivers/iio/Kconfig | 9 + drivers/iio/Makefile | 1 + drivers/iio/adc/Kconfig | 4 +- drivers/iio/adc/ad9467.c | 272 +++++++++----- drivers/iio/adc/adi-axi-adc.c | 383 +++++-------------- drivers/iio/buffer/industrialio-buffer-dmaengine.c | 8 +- drivers/iio/industrialio-backend.c | 412 +++++++++++++++++++++ drivers/of/property.c | 2 + include/linux/iio/adc/adi-axi-adc.h | 68 ---- include/linux/iio/backend.h | 72 ++++ include/linux/iio/buffer-dmaengine.h | 3 + 15 files changed, 806 insertions(+), 462 deletions(-) --- base-commit: 801590b27bfbdb6721f85e2c3af70e627e52c8d5 change-id: 20231219-iio-backend-a3dc1a6a7a58 -- Thanks! - Nuno Sá