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