config DVB_FE_CUSTOMISE
	bool "Customise the frontend modules to build"
	depends on DVB_CORE
	default y if EXPERT
	help
	  This allows the user to select/deselect frontend drivers 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.

menu "Customise DVB Frontends"
	visible if DVB_FE_CUSTOMISE

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.

config DVB_STV090x
	tristate "STV0900/STV0903(A/B) based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  DVB-S/S2/DSS Multistandard Professional/Broadcast demodulators.
	  Say Y when you want to support these frontends.

config DVB_STV6110x
	tristate "STV6110/(A) based tuners"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A Silicon tuner that supports DVB-S and DVB-S2 modes

comment "Multistandard (cable + terrestrial) frontends"
	depends on DVB_CORE

config DVB_DRXK
	tristate "Micronas DRXK based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  Micronas DRX-K DVB-C/T demodulator.

	  Say Y when you want to support this frontend.

config DVB_TDA18271C2DD
	tristate "NXP TDA18271C2 silicon tuner"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  NXP TDA18271 silicon tuner.

	  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_ZL10036
	tristate "Zarlink ZL10036 silicon tuner"
	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_ZL10039
	tristate "Zarlink ZL10039 silicon tuner"
	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_STV6110
	tristate "ST STV6110 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_STV0900
	tristate "ST STV0900 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-S/S2 demodulator. 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.

config DVB_DS3000
	tristate "Montage Tehnology DS3000 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_MB86A16
	tristate "Fujitsu MB86A16 based"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-S/DSS Direct Conversion reveiver.
	  Say Y when you want to support this frontend.

config DVB_TDA10071
	tristate "NXP TDA10071"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  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_S5H1432
	tristate "Samsung s5h1432 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_DRXD
	tristate "Micronas DRXD driver"
	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.

	  Note: this driver was based on vendor driver reference code (released
	  under the GPL) as opposed to the existing drx397xd driver, which
	  was written via reverse engineering.

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_DIB9000
	tristate "DiBcom 9000"
	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.

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.

config DVB_EC100
	tristate "E3C EC100"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  Say Y when you want to support this frontend.

config DVB_HD29L2
	tristate "HDIC HD29L2"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  Say Y when you want to support this frontend.

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

config DVB_CXD2820R
	tristate "Sony CXD2820R"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  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_LGDT3305
	tristate "LG Electronics LGDT3304 and LGDT3305 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_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 && VIDEO_V4L2
	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 frontend"
	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.

config DVB_DIB8000
	tristate "DiBcom 8000MB/MC"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A driver for DiBcom's DiB8000 ISDB-T/ISDB-Tsb demodulator.
	  Say Y when you want to support this frontend.

config DVB_MB86A20S
	tristate "Fujitsu mb86a20s"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A driver for Fujitsu mb86a20s ISDB-T/ISDB-Tsb demodulator.
	  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 together with a
	  demodulator for now.

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

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

config DVB_LNBP21
	tristate "LNBP21/LNBH24 SEC controllers"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  An SEC control chips.

config DVB_LNBP22
	tristate "LNBP22 SEC controllers"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  LNB power supply and control voltage
	  regulator chip with step-up converter
	  and I2C interface.
	  Say Y when you want to support this 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_ISL6423
	tristate "ISL6423 SEC controller"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A SEC controller chip from Intersil

config DVB_A8293
	tristate "Allegro A8293"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE

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.

config DVB_LGS8GXX
	tristate "Legend Silicon LGS8913/LGS8GL5/LGS8GXX DMB-TH demodulator"
	depends on DVB_CORE && I2C
	select FW_LOADER
	default m if DVB_FE_CUSTOMISE
	help
	  A DMB-TH tuner module. Say Y when you want to support this frontend.

config DVB_ATBM8830
	tristate "AltoBeam ATBM8830/8831 DMB-TH demodulator"
	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.

config DVB_TDA665x
	tristate "TDA665x tuner"
	depends on DVB_CORE && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  Support for tuner modules based on Philips TDA6650/TDA6651 chips.
	  Say Y when you want to support this chip.

	  Currently supported tuners:
	  * Panasonic ENV57H12D5 (ET-50DT)

config DVB_IX2505V
	tristate "Sharp IX2505V silicon tuner"
	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_IT913X_FE
	tristate "it913x frontend and it9137 tuner"
	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 "Tools to develop new frontends"

config DVB_DUMMY_FE
	tristate "Dummy frontend driver"
	default n
endmenu
