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