18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ci#
38c2ecf20Sopenharmony_ci# Industrial I/O generic buffer implementations
48c2ecf20Sopenharmony_ci#
58c2ecf20Sopenharmony_ci# When adding new entries keep the list in alphabetical order
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ciconfig IIO_BUFFER_CB
88c2ecf20Sopenharmony_ci	tristate "IIO callback buffer used for push in-kernel interfaces"
98c2ecf20Sopenharmony_ci	help
108c2ecf20Sopenharmony_ci	  Should be selected by any drivers that do in-kernel push
118c2ecf20Sopenharmony_ci	  usage.  That is, those where the data is pushed to the consumer.
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ciconfig IIO_BUFFER_DMA
148c2ecf20Sopenharmony_ci	tristate "Industrial I/O DMA buffer infrastructure"
158c2ecf20Sopenharmony_ci	help
168c2ecf20Sopenharmony_ci	  Provides the generic IIO DMA buffer infrastructure that can be used by
178c2ecf20Sopenharmony_ci	  drivers for devices with DMA support to implement the IIO buffer.
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci	  Should be selected by drivers that want to use the generic DMA buffer
208c2ecf20Sopenharmony_ci	  infrastructure.
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ciconfig IIO_BUFFER_DMAENGINE
238c2ecf20Sopenharmony_ci	tristate "Industrial I/O DMA buffer integration with DMAEngine"
248c2ecf20Sopenharmony_ci	select IIO_BUFFER_DMA
258c2ecf20Sopenharmony_ci	help
268c2ecf20Sopenharmony_ci	  Provides a bonding of the generic IIO DMA buffer infrastructure with the
278c2ecf20Sopenharmony_ci	  DMAEngine framework. This can be used by converter drivers with a DMA port
288c2ecf20Sopenharmony_ci	  connected to an external DMA controller which is supported by the
298c2ecf20Sopenharmony_ci	  DMAEngine framework.
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci	  Should be selected by drivers that want to use this functionality.
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ciconfig IIO_BUFFER_HW_CONSUMER
348c2ecf20Sopenharmony_ci	tristate "Industrial I/O HW buffering"
358c2ecf20Sopenharmony_ci	help
368c2ecf20Sopenharmony_ci	  Provides a way to bonding when an IIO device has a direct connection
378c2ecf20Sopenharmony_ci	  to another device in hardware. In this case buffers for data transfers
388c2ecf20Sopenharmony_ci	  are handled by hardware.
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci	  Should be selected by drivers that want to use the generic Hw consumer
418c2ecf20Sopenharmony_ci	  interface.
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ciconfig IIO_KFIFO_BUF
448c2ecf20Sopenharmony_ci	tristate "Industrial I/O buffering based on kfifo"
458c2ecf20Sopenharmony_ci	help
468c2ecf20Sopenharmony_ci	  A simple fifo based on kfifo.  Note that this currently provides
478c2ecf20Sopenharmony_ci	  no buffer events so it is up to userspace to work out how
488c2ecf20Sopenharmony_ci	  often to read from the buffer.
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ciconfig IIO_TRIGGERED_BUFFER
518c2ecf20Sopenharmony_ci	tristate "Industrial I/O triggered buffer support"
528c2ecf20Sopenharmony_ci	select IIO_TRIGGER
538c2ecf20Sopenharmony_ci	select IIO_KFIFO_BUF
548c2ecf20Sopenharmony_ci	help
558c2ecf20Sopenharmony_ci	  Provides helper functions for setting up triggered buffers.
56