162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci# 362306a36Sopenharmony_ci# Industrial I/O generic buffer implementations 462306a36Sopenharmony_ci# 562306a36Sopenharmony_ci# When adding new entries keep the list in alphabetical order 662306a36Sopenharmony_ci 762306a36Sopenharmony_ciconfig IIO_BUFFER_CB 862306a36Sopenharmony_ci tristate "IIO callback buffer used for push in-kernel interfaces" 962306a36Sopenharmony_ci help 1062306a36Sopenharmony_ci Should be selected by any drivers that do in-kernel push 1162306a36Sopenharmony_ci usage. That is, those where the data is pushed to the consumer. 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ciconfig IIO_BUFFER_DMA 1462306a36Sopenharmony_ci tristate "Industrial I/O DMA buffer infrastructure" 1562306a36Sopenharmony_ci help 1662306a36Sopenharmony_ci Provides the generic IIO DMA buffer infrastructure that can be used by 1762306a36Sopenharmony_ci drivers for devices with DMA support to implement the IIO buffer. 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci Should be selected by drivers that want to use the generic DMA buffer 2062306a36Sopenharmony_ci infrastructure. 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ciconfig IIO_BUFFER_DMAENGINE 2362306a36Sopenharmony_ci tristate "Industrial I/O DMA buffer integration with DMAEngine" 2462306a36Sopenharmony_ci select IIO_BUFFER_DMA 2562306a36Sopenharmony_ci help 2662306a36Sopenharmony_ci Provides a bonding of the generic IIO DMA buffer infrastructure with the 2762306a36Sopenharmony_ci DMAEngine framework. This can be used by converter drivers with a DMA port 2862306a36Sopenharmony_ci connected to an external DMA controller which is supported by the 2962306a36Sopenharmony_ci DMAEngine framework. 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci Should be selected by drivers that want to use this functionality. 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ciconfig IIO_BUFFER_HW_CONSUMER 3462306a36Sopenharmony_ci tristate "Industrial I/O HW buffering" 3562306a36Sopenharmony_ci help 3662306a36Sopenharmony_ci Provides a way to bonding when an IIO device has a direct connection 3762306a36Sopenharmony_ci to another device in hardware. In this case buffers for data transfers 3862306a36Sopenharmony_ci are handled by hardware. 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci Should be selected by drivers that want to use the generic Hw consumer 4162306a36Sopenharmony_ci interface. 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ciconfig IIO_KFIFO_BUF 4462306a36Sopenharmony_ci tristate "Industrial I/O buffering based on kfifo" 4562306a36Sopenharmony_ci help 4662306a36Sopenharmony_ci A simple fifo based on kfifo. Note that this currently provides 4762306a36Sopenharmony_ci no buffer events so it is up to userspace to work out how 4862306a36Sopenharmony_ci often to read from the buffer. 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ciconfig IIO_TRIGGERED_BUFFER 5162306a36Sopenharmony_ci tristate "Industrial I/O triggered buffer support" 5262306a36Sopenharmony_ci select IIO_TRIGGER 5362306a36Sopenharmony_ci select IIO_KFIFO_BUF 5462306a36Sopenharmony_ci help 5562306a36Sopenharmony_ci Provides helper functions for setting up triggered buffers. 56