1# SPDX-License-Identifier: GPL-2.0-only
2#
3# Industrial I/O generic buffer implementations
4#
5# When adding new entries keep the list in alphabetical order
6
7config IIO_BUFFER_CB
8	tristate "IIO callback buffer used for push in-kernel interfaces"
9	help
10	  Should be selected by any drivers that do in-kernel push
11	  usage.  That is, those where the data is pushed to the consumer.
12
13config IIO_BUFFER_DMA
14	tristate "Industrial I/O DMA buffer infrastructure"
15	help
16	  Provides the generic IIO DMA buffer infrastructure that can be used by
17	  drivers for devices with DMA support to implement the IIO buffer.
18
19	  Should be selected by drivers that want to use the generic DMA buffer
20	  infrastructure.
21
22config IIO_BUFFER_DMAENGINE
23	tristate "Industrial I/O DMA buffer integration with DMAEngine"
24	select IIO_BUFFER_DMA
25	help
26	  Provides a bonding of the generic IIO DMA buffer infrastructure with the
27	  DMAEngine framework. This can be used by converter drivers with a DMA port
28	  connected to an external DMA controller which is supported by the
29	  DMAEngine framework.
30
31	  Should be selected by drivers that want to use this functionality.
32
33config IIO_BUFFER_HW_CONSUMER
34	tristate "Industrial I/O HW buffering"
35	help
36	  Provides a way to bonding when an IIO device has a direct connection
37	  to another device in hardware. In this case buffers for data transfers
38	  are handled by hardware.
39
40	  Should be selected by drivers that want to use the generic Hw consumer
41	  interface.
42
43config IIO_KFIFO_BUF
44	tristate "Industrial I/O buffering based on kfifo"
45	help
46	  A simple fifo based on kfifo.  Note that this currently provides
47	  no buffer events so it is up to userspace to work out how
48	  often to read from the buffer.
49
50config IIO_TRIGGERED_BUFFER
51	tristate "Industrial I/O triggered buffer support"
52	select IIO_TRIGGER
53	select IIO_KFIFO_BUF
54	help
55	  Provides helper functions for setting up triggered buffers.
56