#
# Industrial I/O standalone triggers
#
# When adding new entries keep the list in alphabetical order

menu "Triggers - standalone"

config IIO_HRTIMER_TRIGGER
	tristate "High resolution timer trigger"
	depends on IIO_SW_TRIGGER
	help
	  Provides a frequency based IIO trigger using high resolution
	  timers as interrupt source.

	  To compile this driver as a module, choose M here: the
	  module will be called iio-trig-hrtimer.

config IIO_INTERRUPT_TRIGGER
	tristate "Generic interrupt trigger"
	help
	  Provides support for using an interrupt of any type as an IIO
	  trigger.  This may be provided by a gpio driver for example.

	  To compile this driver as a module, choose M here: the
	  module will be called iio-trig-interrupt.

config IIO_TIGHTLOOP_TRIGGER
	tristate "A kthread based hammering loop trigger"
	depends on IIO_SW_TRIGGER
	help
	  An experimental trigger, used to allow sensors to be sampled as fast
	  as possible under the limitations of whatever else is going on.
	  Uses a tight loop in a kthread.  Will only work with lower half only
	  trigger consumers.

	  To compile this driver as a module, choose M here: the
	  module will be called iio-trig-loop.

config IIO_SYSFS_TRIGGER
	tristate "SYSFS trigger"
	depends on SYSFS
	select IRQ_WORK
	help
	  Provides support for using SYSFS entries as IIO triggers.
	  If unsure, say N (but it's safe to say "Y").

	  To compile this driver as a module, choose M here: the
	  module will be called iio-trig-sysfs.

endmenu
