menu "Customise DVB Frontends"
	depends on DVB_CORE

config DVB_FE_CUSTOMISE
	bool "Customise the frontend modules to build"
	default N
	help
	  This allows the user to deselect frontend drivers unnecessary
	  for their hardware from the build. Use this option with care
	  as deselecting frontends which are in fact necessary will result
	  in DVB devices which cannot be tuned due to lack of driver support.

	  If unsure say N.

comment "Multistandard (satellite) frontends"
	depends on DVB_CORE

config DVB_STB0899
	tristate "STB0899 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-S/S2/DSS Multistandard demodulator. Say Y when you want
	  to support this demodulator based frontends

config DVB_STB6100
	tristate "STB6100 based tuners"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A Silicon tuner from ST used in conjunction with the STB0899
	  demodulator. Say Y when you want to support this tuner.

comment "DVB-S (satellite) frontends"
	depends on DVB_CORE

config DVB_CX24110
	tristate "Conexant CX24110 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-S tuner module. Say Y when you want to support this frontend.

config DVB_CX24123
	tristate "Conexant CX24123 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-S tuner module. Say Y when you want to support this frontend.

config DVB_MT312
	tristate "Zarlink VP310/MT312/ZL10313 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-S tuner module. Say Y when you want to support this frontend.

config DVB_S5H1420
	tristate "Samsung S5H1420 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-S tuner module. Say Y when you want to support this frontend.

config DVB_STV0288
	tristate "ST STV0288 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-S tuner module. Say Y when you want to support this frontend.

config DVB_STB6000
	tristate "ST STB6000 silicon tuner"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	  help
	  A DVB-S silicon tuner module. Say Y when you want to support this tuner.

config DVB_STV0299
	tristate "ST STV0299 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-S tuner module. Say Y when you want to support this frontend.

config DVB_TDA8083
	tristate "Philips TDA8083 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-S tuner module. Say Y when you want to support this frontend.

config DVB_TDA10086
	tristate "Philips TDA10086 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-S tuner module. Say Y when you want to support this frontend.

config DVB_TDA8261
	tristate "Philips TDA8261 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-S tuner module. Say Y when you want to support this frontend.

config DVB_VES1X93
	tristate "VLSI VES1893 or VES1993 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-S tuner module. Say Y when you want to support this frontend.

config DVB_TUNER_ITD1000
	tristate "Integrant ITD1000 Zero IF tuner for DVB-S/DSS"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-S tuner module. Say Y when you want to support this frontend.

config DVB_TUNER_CX24113
	tristate "Conexant CX24113/CX24128 tuner for DVB-S/DSS"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-S tuner module. Say Y when you want to support this frontend.


config DVB_TDA826X
	tristate "Philips TDA826X silicon tuner"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-S silicon tuner module. Say Y when you want to support this tuner.

config DVB_TUA6100
	tristate "Infineon TUA6100 PLL"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-S PLL chip.

config DVB_CX24116
	tristate "Conexant CX24116 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-S/S2 tuner module. Say Y when you want to support this frontend.

config DVB_SI21XX
	tristate "Silicon Labs SI21XX based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-S tuner module. Say Y when you want to support this frontend.

comment "DVB-T (terrestrial) frontends"
	depends on DVB_CORE

config DVB_SP8870
	tristate "Spase sp8870 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-T tuner module. Say Y when you want to support this frontend.

	  This driver needs external firmware. Please use the command
	  "<kerneldir>/Documentation/dvb/get_dvb_firmware sp8870" to
	  download/extract it, and then copy it to /usr/lib/hotplug/firmware
	  or /lib/firmware (depending on configuration of firmware hotplug).

config DVB_SP887X
	tristate "Spase sp887x based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-T tuner module. Say Y when you want to support this frontend.

	  This driver needs external firmware. Please use the command
	  "<kerneldir>/Documentation/dvb/get_dvb_firmware sp887x" to
	  download/extract it, and then copy it to /usr/lib/hotplug/firmware
	  or /lib/firmware (depending on configuration of firmware hotplug).

config DVB_CX22700
	tristate "Conexant CX22700 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-T tuner module. Say Y when you want to support this frontend.

config DVB_CX22702
	tristate "Conexant cx22702 demodulator (OFDM)"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-T tuner module. Say Y when you want to support this frontend.

config DVB_DRX397XD
	tristate "Micronas DRX3975D/DRX3977D based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-T tuner module. Say Y when you want to support this frontend.

	  TODO:
	  This driver needs external firmware. Please use the command
	  "<kerneldir>/Documentation/dvb/get_dvb_firmware drx397xD" to
	  download/extract them, and then copy them to /usr/lib/hotplug/firmware
	  or /lib/firmware (depending on configuration of firmware hotplug).

config DVB_L64781
	tristate "LSI L64781"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-T tuner module. Say Y when you want to support this frontend.

config DVB_TDA1004X
	tristate "Philips TDA10045H/TDA10046H based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-T tuner module. Say Y when you want to support this frontend.

	  This driver needs external firmware. Please use the commands
	  "<kerneldir>/Documentation/dvb/get_dvb_firmware tda10045",
	  "<kerneldir>/Documentation/dvb/get_dvb_firmware tda10046" to
	  download/extract them, and then copy them to /usr/lib/hotplug/firmware
	  or /lib/firmware (depending on configuration of firmware hotplug).

config DVB_NXT6000
	tristate "NxtWave Communications NXT6000 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-T tuner module. Say Y when you want to support this frontend.

config DVB_MT352
	tristate "Zarlink MT352 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-T tuner module. Say Y when you want to support this frontend.

config DVB_ZL10353
	tristate "Zarlink ZL10353 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-T tuner module. Say Y when you want to support this frontend.

config DVB_DIB3000MB
	tristate "DiBcom 3000M-B"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-T tuner module. Designed for mobile usage. Say Y when you want
	  to support this frontend.

config DVB_DIB3000MC
	tristate "DiBcom 3000P/M-C"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-T tuner module. Designed for mobile usage. Say Y when you want
	  to support this frontend.

config DVB_DIB7000M
	tristate "DiBcom 7000MA/MB/PA/PB/MC"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-T tuner module. Designed for mobile usage. Say Y when you want
	  to support this frontend.

config DVB_DIB7000P
	tristate "DiBcom 7000PC"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-T tuner module. Designed for mobile usage. Say Y when you want
	  to support this frontend.

config DVB_TDA10048
	tristate "Philips TDA10048HN based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-T tuner module. Say Y when you want to support this frontend.

comment "DVB-C (cable) frontends"
	depends on DVB_CORE

config DVB_VES1820
	tristate "VLSI VES1820 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-C tuner module. Say Y when you want to support this frontend.

config DVB_TDA10021
	tristate "Philips TDA10021 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-C tuner module. Say Y when you want to support this frontend.

config DVB_TDA10023
	tristate "Philips TDA10023 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-C tuner module. Say Y when you want to support this frontend.

config DVB_STV0297
	tristate "ST STV0297 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-C tuner module. Say Y when you want to support this frontend.

comment "ATSC (North American/Korean Terrestrial/Cable DTV) frontends"
	depends on DVB_CORE

config DVB_NXT200X
	tristate "NxtWave Communications NXT2002/NXT2004 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  An ATSC 8VSB and QAM64/256 tuner module. Say Y when you want
	  to support this frontend.

	  This driver needs external firmware. Please use the commands
	  "<kerneldir>/Documentation/dvb/get_dvb_firmware nxt2002" and
	  "<kerneldir>/Documentation/dvb/get_dvb_firmware nxt2004" to
	  download/extract them, and then copy them to /usr/lib/hotplug/firmware
	  or /lib/firmware (depending on configuration of firmware hotplug).

config DVB_OR51211
	tristate "Oren OR51211 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  An ATSC 8VSB tuner module. Say Y when you want to support this frontend.

	  This driver needs external firmware. Please use the command
	  "<kerneldir>/Documentation/dvb/get_dvb_firmware or51211" to
	  download it, and then copy it to /usr/lib/hotplug/firmware
	  or /lib/firmware (depending on configuration of firmware hotplug).

config DVB_OR51132
	tristate "Oren OR51132 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  An ATSC 8VSB and QAM64/256 tuner module. Say Y when you want
	  to support this frontend.

	  This driver needs external firmware. Please use the commands
	  "<kerneldir>/Documentation/dvb/get_dvb_firmware or51132_vsb" and/or
	  "<kerneldir>/Documentation/dvb/get_dvb_firmware or51132_qam" to
	  download firmwares for 8VSB and QAM64/256, respectively. Copy them to
	  /usr/lib/hotplug/firmware or /lib/firmware (depending on
	  configuration of firmware hotplug).

config DVB_BCM3510
	tristate "Broadcom BCM3510"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  An ATSC 8VSB/16VSB and QAM64/256 tuner module. Say Y when you want to
	  support this frontend.

config DVB_LGDT330X
	tristate "LG Electronics LGDT3302/LGDT3303 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  An ATSC 8VSB and QAM64/256 tuner module. Say Y when you want
	  to support this frontend.

config DVB_LGDT3304
	tristate "LG Electronics LGDT3304"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  An ATSC 8VSB and QAM64/256 tuner module. Say Y when you want
	  to support this frontend.

config DVB_S5H1409
	tristate "Samsung S5H1409 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  An ATSC 8VSB and QAM64/256 tuner module. Say Y when you want
	  to support this frontend.

config DVB_AU8522
	tristate "Auvitek AU8522 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  An ATSC 8VSB and QAM64/256 tuner module. Say Y when you want
	  to support this frontend.

config DVB_S5H1411
	tristate "Samsung S5H1411 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  An ATSC 8VSB and QAM64/256 tuner module. Say Y when you want
	  to support this frontend.

comment "ISDB-T (terrestrial) frontends"
	depends on DVB_CORE

config DVB_S921
	tristate "Sharp S921 tuner"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  AN ISDB-T DQPSK, QPSK, 16QAM and 64QAM 1seg tuner module.
	  Say Y when you want to support this frontend.

comment "Digital terrestrial only tuners/PLL"
	depends on DVB_CORE

config DVB_PLL
	tristate "Generic I2C PLL based tuners"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  This module drives a number of tuners based on PLL chips with a
	  common I2C interface. Say Y when you want to support these tuners.

config DVB_TUNER_DIB0070
	tristate "DiBcom DiB0070 silicon base-band tuner"
	depends on I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A driver for the silicon baseband tuner DiB0070 from DiBcom.
	  This device is only used inside a SiP called togther with a
	  demodulator for now.

comment "SEC control devices for DVB-S"
	depends on DVB_CORE

config DVB_LNBP21
	tristate "LNBP21 SEC controller"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  An SEC control chip.

config DVB_ISL6405
	tristate "ISL6405 SEC controller"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  An SEC control chip.

config DVB_ISL6421
	tristate "ISL6421 SEC controller"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  An SEC control chip.

config DVB_LGS8GL5
	tristate "Silicon Legend LGS-8GL5 demodulator (OFDM)"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DMB-TH tuner module. Say Y when you want to support this frontend.

comment "Tools to develop new frontends"

config DVB_DUMMY_FE
	tristate "Dummy frontend driver"
	default n

config DVB_AF9013
	tristate "Afatech AF9013 demodulator"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  Say Y when you want to support this frontend.
endmenu
