config VIDEO_CX231XX
	tristate "Conexant cx231xx USB video capture support"
	depends on VIDEO_DEV && I2C
	select VIDEO_TUNER
	select VIDEO_TVEEPROM
	depends on RC_CORE
	select VIDEOBUF_VMALLOC
	select VIDEO_CX25840
	select VIDEO_CX2341X

	---help---
	  This is a video4linux driver for Conexant 231xx USB based TV cards.

	  To compile this driver as a module, choose M here: the
	  module will be called cx231xx

config VIDEO_CX231XX_RC
	bool "Conexant cx231xx Remote Controller additional support"
	depends on RC_CORE
	depends on VIDEO_CX231XX
	default y
	---help---
	  cx231xx hardware has a builtin RX/TX support. However, a few
	  designs opted to not use it, but, instead, some other hardware.
	  This module enables the usage of those other hardware, like the
	  ones used with ISDB-T boards.

	  On most cases, all you need for IR is mceusb module.

config VIDEO_CX231XX_ALSA
	tristate "Conexant Cx231xx ALSA audio module"
	depends on VIDEO_CX231XX && SND
	select SND_PCM

	---help---
	  This is an ALSA driver for Cx231xx USB based TV cards.

	  To compile this driver as a module, choose M here: the
	  module will be called cx231xx-alsa

config VIDEO_CX231XX_DVB
	tristate "DVB/ATSC Support for Cx231xx based TV cards"
	depends on VIDEO_CX231XX && DVB_CORE
	select VIDEOBUF_DVB
	select MEDIA_TUNER_XC5000 if MEDIA_SUBDRV_AUTOSELECT
	select MEDIA_TUNER_TDA18271 if MEDIA_SUBDRV_AUTOSELECT
	select DVB_MB86A20S if MEDIA_SUBDRV_AUTOSELECT
	select DVB_LGDT3305 if MEDIA_SUBDRV_AUTOSELECT
	select DVB_TDA18271C2DD if MEDIA_SUBDRV_AUTOSELECT

	---help---
	  This adds support for DVB cards based on the
	  Conexant cx231xx chips.
