xref: /linux/drivers/iio/buffer/Kconfig (revision cbecf716ca618fd44feda6bd9a64a8179d031fc5)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
28548a63bSLars-Peter Clausen#
38548a63bSLars-Peter Clausen# Industrial I/O generic buffer implementations
48548a63bSLars-Peter Clausen#
58548a63bSLars-Peter Clausen# When adding new entries keep the list in alphabetical order
68548a63bSLars-Peter Clausen
78548a63bSLars-Peter Clausenconfig IIO_BUFFER_CB
88548a63bSLars-Peter Clausen	tristate "IIO callback buffer used for push in-kernel interfaces"
98548a63bSLars-Peter Clausen	help
108548a63bSLars-Peter Clausen	  Should be selected by any drivers that do in-kernel push
118548a63bSLars-Peter Clausen	  usage.  That is, those where the data is pushed to the consumer.
128548a63bSLars-Peter Clausen
13670b19aeSLars-Peter Clausenconfig IIO_BUFFER_DMA
143cd137f5SAlexandru Ardelean	tristate "Industrial I/O DMA buffer infrastructure"
15670b19aeSLars-Peter Clausen	help
16670b19aeSLars-Peter Clausen	  Provides the generic IIO DMA buffer infrastructure that can be used by
17670b19aeSLars-Peter Clausen	  drivers for devices with DMA support to implement the IIO buffer.
18670b19aeSLars-Peter Clausen
19670b19aeSLars-Peter Clausen	  Should be selected by drivers that want to use the generic DMA buffer
20670b19aeSLars-Peter Clausen	  infrastructure.
21670b19aeSLars-Peter Clausen
222d6ca60fSLars-Peter Clausenconfig IIO_BUFFER_DMAENGINE
233cd137f5SAlexandru Ardelean	tristate "Industrial I/O DMA buffer integration with DMAEngine"
242d6ca60fSLars-Peter Clausen	select IIO_BUFFER_DMA
252d6ca60fSLars-Peter Clausen	help
262d6ca60fSLars-Peter Clausen	  Provides a bonding of the generic IIO DMA buffer infrastructure with the
273cd137f5SAlexandru Ardelean	  DMAEngine framework. This can be used by converter drivers with a DMA port
282d6ca60fSLars-Peter Clausen	  connected to an external DMA controller which is supported by the
293cd137f5SAlexandru Ardelean	  DMAEngine framework.
302d6ca60fSLars-Peter Clausen
312d6ca60fSLars-Peter Clausen	  Should be selected by drivers that want to use this functionality.
322d6ca60fSLars-Peter Clausen
3348b66f8fSLars-Peter Clausenconfig IIO_BUFFER_HW_CONSUMER
3448b66f8fSLars-Peter Clausen	tristate "Industrial I/O HW buffering"
3548b66f8fSLars-Peter Clausen	help
3648b66f8fSLars-Peter Clausen	  Provides a way to bonding when an IIO device has a direct connection
3748b66f8fSLars-Peter Clausen	  to another device in hardware. In this case buffers for data transfers
3848b66f8fSLars-Peter Clausen	  are handled by hardware.
3948b66f8fSLars-Peter Clausen
4048b66f8fSLars-Peter Clausen	  Should be selected by drivers that want to use the generic Hw consumer
4148b66f8fSLars-Peter Clausen	  interface.
4248b66f8fSLars-Peter Clausen
438548a63bSLars-Peter Clausenconfig IIO_KFIFO_BUF
448548a63bSLars-Peter Clausen	tristate "Industrial I/O buffering based on kfifo"
458548a63bSLars-Peter Clausen	help
468548a63bSLars-Peter Clausen	  A simple fifo based on kfifo.  Note that this currently provides
478548a63bSLars-Peter Clausen	  no buffer events so it is up to userspace to work out how
488548a63bSLars-Peter Clausen	  often to read from the buffer.
498548a63bSLars-Peter Clausen
508548a63bSLars-Peter Clausenconfig IIO_TRIGGERED_BUFFER
51*c8283ba8SAlexandru Ardelean	tristate "Industrial I/O triggered buffer support"
528548a63bSLars-Peter Clausen	select IIO_TRIGGER
538548a63bSLars-Peter Clausen	select IIO_KFIFO_BUF
548548a63bSLars-Peter Clausen	help
558548a63bSLars-Peter Clausen	  Provides helper functions for setting up triggered buffers.
56