#
# LIRC driver(s) configuration
#
menuconfig LIRC_STAGING
	bool "Linux Infrared Remote Control IR receiver/transmitter drivers"
	depends on LIRC
	help
	  Say Y here, and all supported Linux Infrared Remote Control IR and
	  RF receiver and transmitter drivers will be displayed. When paired
	  with a remote control and the lirc daemon, the receiver drivers
	  allow control of your Linux system via remote control.

if LIRC_STAGING

config LIRC_BT829
        tristate "BT829 based hardware"
	depends on LIRC_STAGING && PCI
	help
	  Driver for the IR interface on BT829-based hardware

config LIRC_I2C
	tristate "I2C Based IR Receivers"
	depends on LIRC_STAGING && I2C
	help
	  Driver for I2C-based IR receivers, such as those commonly
	  found onboard Hauppauge PVR-150/250/350 video capture cards

config LIRC_IGORPLUGUSB
	tristate "Igor Cesko's USB IR Receiver"
	depends on LIRC_STAGING && USB
	help
	  Driver for Igor Cesko's USB IR Receiver

config LIRC_IMON
	tristate "Legacy SoundGraph iMON Receiver and Display"
	depends on LIRC_STAGING && USB
	help
	  Driver for the original SoundGraph iMON IR Receiver and Display

	  Current generation iMON devices use the input layer imon driver.

config LIRC_IT87
	tristate "ITE IT87XX CIR Port Receiver"
	depends on LIRC_STAGING && PNP
	help
	  Driver for the ITE IT87xx IR Receiver

config LIRC_ITE8709
	tristate "ITE8709 CIR Port Receiver"
	depends on LIRC_STAGING && PNP
	help
	  Driver for the ITE8709 IR Receiver

config LIRC_PARALLEL
	tristate "Homebrew Parallel Port Receiver"
	depends on LIRC_STAGING && PARPORT
	help
	  Driver for Homebrew Parallel Port Receivers

config LIRC_SASEM
	tristate "Sasem USB IR Remote"
	depends on LIRC_STAGING && USB
	help
	  Driver for the Sasem OnAir Remocon-V or Dign HV5 HTPC IR/VFD Module

config LIRC_SERIAL
	tristate "Homebrew Serial Port Receiver"
	depends on LIRC_STAGING
	help
	  Driver for Homebrew Serial Port Receivers

config LIRC_SERIAL_TRANSMITTER
	bool "Serial Port Transmitter"
	default y
	depends on LIRC_SERIAL
	help
	  Serial Port Transmitter support

config LIRC_SIR
	tristate "Built-in SIR IrDA port"
	depends on LIRC_STAGING
	help
	  Driver for the SIR IrDA port

config LIRC_TTUSBIR
	tristate "Technotrend USB IR Receiver"
	depends on LIRC_STAGING && USB
	help
	  Driver for the Technotrend USB IR Receiver

config LIRC_ZILOG
	tristate "Zilog/Hauppauge IR Transmitter"
	depends on LIRC_STAGING && I2C
	help
	  Driver for the Zilog/Hauppauge IR Transmitter, found on
	  PVR-150/500, HVR-1200/1250/1700/1800, HD-PVR and other cards
endif
