config MEDIA_ATTACH
	bool "Load and attach frontend and tuner driver modules as needed"
	depends on VIDEO_MEDIA
	depends on MODULES
	help
	  Remove the static dependency of DVB card drivers on all
	  frontend modules for all possible card variants. Instead,
	  allow the card drivers to only load the frontend modules
	  they require.

	  Also, tuner module will automatically load a tuner driver
	  when needed, for analog mode.

	  This saves several KBytes of memory.

	  Note: You will need module-init-tools v3.2 or later for this feature.

	  If unsure say Y.

config MEDIA_TUNER
	tristate
	default VIDEO_MEDIA && I2C
	depends on VIDEO_MEDIA && I2C
	select MEDIA_TUNER_XC2028 if !MEDIA_TUNER_CUSTOMISE
	select MEDIA_TUNER_XC5000 if !MEDIA_TUNER_CUSTOMISE
	select MEDIA_TUNER_MT20XX if !MEDIA_TUNER_CUSTOMISE
	select MEDIA_TUNER_TDA8290 if !MEDIA_TUNER_CUSTOMISE
	select MEDIA_TUNER_TEA5761 if !MEDIA_TUNER_CUSTOMISE
	select MEDIA_TUNER_TEA5767 if !MEDIA_TUNER_CUSTOMISE
	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMISE
	select MEDIA_TUNER_TDA9887 if !MEDIA_TUNER_CUSTOMISE
	select MEDIA_TUNER_MC44S803 if !MEDIA_TUNER_CUSTOMISE

config MEDIA_TUNER_CUSTOMISE
	bool "Customize analog and hybrid tuner modules to build"
	depends on MEDIA_TUNER
	default y if EXPERT
	help
	  This allows the user to deselect tuner drivers unnecessary
	  for their hardware from the build. Use this option with care
	  as deselecting tuner drivers which are in fact necessary will
	  result in V4L/DVB devices which cannot be tuned due to lack of
	  driver support

	  If unsure say N.

menu "Customize TV tuners"
	visible if MEDIA_TUNER_CUSTOMISE

config MEDIA_TUNER_SIMPLE
	tristate "Simple tuner support"
	depends on VIDEO_MEDIA && I2C
	select MEDIA_TUNER_TDA9887
	default m if MEDIA_TUNER_CUSTOMISE
	help
	  Say Y here to include support for various simple tuners.

config MEDIA_TUNER_TDA8290
	tristate "TDA 8290/8295 + 8275(a)/18271 tuner combo"
	depends on VIDEO_MEDIA && I2C
	select MEDIA_TUNER_TDA827X
	select MEDIA_TUNER_TDA18271
	default m if MEDIA_TUNER_CUSTOMISE
	help
	  Say Y here to include support for Philips TDA8290+8275(a) tuner.

config MEDIA_TUNER_TDA827X
	tristate "Philips TDA827X silicon tuner"
	depends on VIDEO_MEDIA && I2C
	default m if MEDIA_TUNER_CUSTOMISE
	help
	  A DVB-T silicon tuner module. Say Y when you want to support this tuner.

config MEDIA_TUNER_TDA18271
	tristate "NXP TDA18271 silicon tuner"
	depends on VIDEO_MEDIA && I2C
	default m if MEDIA_TUNER_CUSTOMISE
	help
	  A silicon tuner module. Say Y when you want to support this tuner.

config MEDIA_TUNER_TDA9887
	tristate "TDA 9885/6/7 analog IF demodulator"
	depends on VIDEO_MEDIA && I2C
	default m if MEDIA_TUNER_CUSTOMISE
	help
	  Say Y here to include support for Philips TDA9885/6/7
	  analog IF demodulator.

config MEDIA_TUNER_TEA5761
	tristate "TEA 5761 radio tuner (EXPERIMENTAL)"
	depends on VIDEO_MEDIA && I2C
	depends on EXPERIMENTAL
	default m if MEDIA_TUNER_CUSTOMISE
	help
	  Say Y here to include support for the Philips TEA5761 radio tuner.

config MEDIA_TUNER_TEA5767
	tristate "TEA 5767 radio tuner"
	depends on VIDEO_MEDIA && I2C
	default m if MEDIA_TUNER_CUSTOMISE
	help
	  Say Y here to include support for the Philips TEA5767 radio tuner.

config MEDIA_TUNER_MT20XX
	tristate "Microtune 2032 / 2050 tuners"
	depends on VIDEO_MEDIA && I2C
	default m if MEDIA_TUNER_CUSTOMISE
	help
	  Say Y here to include support for the MT2032 / MT2050 tuner.

config MEDIA_TUNER_MT2060
	tristate "Microtune MT2060 silicon IF tuner"
	depends on VIDEO_MEDIA && I2C
	default m if MEDIA_TUNER_CUSTOMISE
	help
	  A driver for the silicon IF tuner MT2060 from Microtune.

config MEDIA_TUNER_MT2266
	tristate "Microtune MT2266 silicon tuner"
	depends on VIDEO_MEDIA && I2C
	default m if MEDIA_TUNER_CUSTOMISE
	help
	  A driver for the silicon baseband tuner MT2266 from Microtune.

config MEDIA_TUNER_MT2131
	tristate "Microtune MT2131 silicon tuner"
	depends on VIDEO_MEDIA && I2C
	default m if MEDIA_TUNER_CUSTOMISE
	help
	  A driver for the silicon baseband tuner MT2131 from Microtune.

config MEDIA_TUNER_QT1010
	tristate "Quantek QT1010 silicon tuner"
	depends on VIDEO_MEDIA && I2C
	default m if MEDIA_TUNER_CUSTOMISE
	help
	  A driver for the silicon tuner QT1010 from Quantek.

config MEDIA_TUNER_XC2028
	tristate "XCeive xc2028/xc3028 tuners"
	depends on VIDEO_MEDIA && I2C
	default m if MEDIA_TUNER_CUSTOMISE
	help
	  Say Y here to include support for the xc2028/xc3028 tuners.

config MEDIA_TUNER_XC5000
	tristate "Xceive XC5000 silicon tuner"
	depends on VIDEO_MEDIA && I2C
	default m if MEDIA_TUNER_CUSTOMISE
	help
	  A driver for the silicon tuner XC5000 from Xceive.
	  This device is only used inside a SiP called together with a
	  demodulator for now.

config MEDIA_TUNER_MXL5005S
	tristate "MaxLinear MSL5005S silicon tuner"
	depends on VIDEO_MEDIA && I2C
	default m if MEDIA_TUNER_CUSTOMISE
	help
	  A driver for the silicon tuner MXL5005S from MaxLinear.

config MEDIA_TUNER_MXL5007T
	tristate "MaxLinear MxL5007T silicon tuner"
	depends on VIDEO_MEDIA && I2C
	default m if MEDIA_TUNER_CUSTOMISE
	help
	  A driver for the silicon tuner MxL5007T from MaxLinear.

config MEDIA_TUNER_MC44S803
	tristate "Freescale MC44S803 Low Power CMOS Broadband tuners"
	depends on VIDEO_MEDIA && I2C
	default m if MEDIA_TUNER_CUSTOMISE
	help
	  Say Y here to support the Freescale MC44S803 based tuners

config MEDIA_TUNER_MAX2165
	tristate "Maxim MAX2165 silicon tuner"
	depends on VIDEO_MEDIA && I2C
	default m if MEDIA_TUNER_CUSTOMISE
	help
	  A driver for the silicon tuner MAX2165 from Maxim.

config MEDIA_TUNER_TDA18218
	tristate "NXP TDA18218 silicon tuner"
	depends on VIDEO_MEDIA && I2C
	default m if MEDIA_TUNER_CUSTOMISE
	help
	  NXP TDA18218 silicon tuner driver.
endmenu
