config DVB_B2C2_FLEXCOP
	tristate "Technisat/B2C2 FlexCopII(b) and FlexCopIII adapters"
	depends on DVB_CORE && I2C
	select DVB_PLL if !DVB_FE_CUSTOMISE
	select DVB_STV0299 if !DVB_FE_CUSTOMISE
	select DVB_MT352 if !DVB_FE_CUSTOMISE
	select DVB_MT312 if !DVB_FE_CUSTOMISE
	select DVB_NXT200X if !DVB_FE_CUSTOMISE
	select DVB_STV0297 if !DVB_FE_CUSTOMISE
	select DVB_BCM3510 if !DVB_FE_CUSTOMISE
	select DVB_LGDT330X if !DVB_FE_CUSTOMISE
	select DVB_S5H1420 if !DVB_FE_CUSTOMISE
	select DVB_TUNER_ITD1000 if !DVB_FE_CUSTOMISE
	select DVB_ISL6421 if !DVB_FE_CUSTOMISE
	select DVB_CX24123 if !DVB_FE_CUSTOMISE
	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMISE
	select DVB_TUNER_CX24113 if !DVB_FE_CUSTOMISE
	help
	  Support for the digital TV receiver chip made by B2C2 Inc. included in
	  Technisats PCI cards and USB boxes.

	  Say Y if you own such a device and want to use it.

config DVB_B2C2_FLEXCOP_PCI
	tristate "Technisat/B2C2 Air/Sky/Cable2PC PCI"
	depends on DVB_B2C2_FLEXCOP && PCI && I2C
	help
	  Support for the Air/Sky/CableStar2 PCI card (DVB/ATSC) by Technisat/B2C2.

	  Say Y if you own such a device and want to use it.

config DVB_B2C2_FLEXCOP_USB
	tristate "Technisat/B2C2 Air/Sky/Cable2PC USB"
	depends on DVB_B2C2_FLEXCOP && USB && I2C
	help
	  Support for the Air/Sky/Cable2PC USB1.1 box (DVB/ATSC) by Technisat/B2C2,

	  Say Y if you own such a device and want to use it.

config DVB_B2C2_FLEXCOP_DEBUG
	bool "Enable debug for the B2C2 FlexCop drivers"
	depends on DVB_B2C2_FLEXCOP
	help
	  Say Y if you want to enable the module option to control debug messages
	  of all B2C2 FlexCop drivers.
