config DVB_USB_DIBUSB_MB
        tristate "DiBcom USB DVB-T devices (based on the DiB3000M-B) (see help for device list)"
        depends on DVB_USB
+       select DVB_PLL
        select DVB_DIB3000MB
        select DVB_TUNER_MT2060 if !DVB_FE_CUSTOMISE
        help
 config DVB_USB_UMT_010
        tristate "HanfTek UMT-010 DVB-T USB2.0 support"
        depends on DVB_USB
+       select DVB_PLL
        select DVB_DIB3000MC
        select DVB_TUNER_MT2060 if !DVB_FE_CUSTOMISE
        help
 config DVB_USB_CXUSB
        tristate "Conexant USB2.0 hybrid reference design support"
        depends on DVB_USB
+       select DVB_PLL
        select DVB_CX22702 if !DVB_FE_CUSTOMISE
        select DVB_LGDT330X if !DVB_FE_CUSTOMISE
        select DVB_TUNER_LGH06XF if !DVB_FE_CUSTOMISE
 config DVB_USB_DIGITV
        tristate "Nebula Electronics uDigiTV DVB-T USB2.0 support"
        depends on DVB_USB
+       select DVB_PLL
        select DVB_NXT6000 if !DVB_FE_CUSTOMISE
        select DVB_MT352 if !DVB_FE_CUSTOMISE
        help
 
        depends on DVB_CORE
 
 config DVB_PLL
-       tristate
+       tristate "Generic I2C PLL based tuners"
        depends on DVB_CORE && I2C
+       default m if DVB_FE_CUSTOMISE
+       help
+         This module driver a number of tuners based on PLL chips with a
+         common I2C interface. Say Y when you want to support these tuners.
 
 config DVB_TDA826X
        tristate "Philips TDA826X silicon tuner"
 
  * @param desc dvb_pll_desc to use.
  * @return Frontend pointer on success, NULL on failure
  */
+#if defined(CONFIG_DVB_PLL) || (defined(CONFIG_DVB_PLL_MODULE) && defined(MODULE))
 extern struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe,
                                           int pll_addr,
                                           struct i2c_adapter *i2c,
                                           struct dvb_pll_desc *desc);
+#else
+static inline struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe,
+                                          int pll_addr,
+                                          struct i2c_adapter *i2c,
+                                          struct dvb_pll_desc *desc)
+{
+       printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
+       return NULL;
+}
+#endif
 
 #endif
 
        tristate "Pluto2 cards"
        depends on DVB_CORE && PCI && I2C
        select I2C_ALGOBIT
-       select DVB_PLL
        select DVB_TDA1004X
        help
          Support for PCI cards based on the Pluto2 FPGA like the Satelco
 
        depends on DVB_CORE && PCI && I2C && VIDEO_V4L1
        select FW_LOADER if !DVB_AV7110_FIRMWARE
        select VIDEO_SAA7146_VV
-       select DVB_PLL
        select DVB_VES1820 if !DVB_FE_CUSTOMISE
        select DVB_VES1X93 if !DVB_FE_CUSTOMISE
        select DVB_STV0299 if !DVB_FE_CUSTOMISE
        tristate "Budget cards"
        depends on DVB_CORE && PCI && I2C && VIDEO_V4L1
        select VIDEO_SAA7146
-       select DVB_PLL
        select DVB_STV0299 if !DVB_FE_CUSTOMISE
        select DVB_VES1X93 if !DVB_FE_CUSTOMISE
        select DVB_VES1820 if !DVB_FE_CUSTOMISE
        tristate "Budget cards with onboard CI connector"
        depends on DVB_CORE && PCI && I2C && VIDEO_V4L1
        select VIDEO_SAA7146
-       select DVB_PLL
        select DVB_STV0297 if !DVB_FE_CUSTOMISE
        select DVB_STV0299 if !DVB_FE_CUSTOMISE
        select DVB_TDA1004X if !DVB_FE_CUSTOMISE
        tristate "AV7110 cards with Budget Patch"
        depends on DVB_CORE && DVB_BUDGET && VIDEO_V4L1
        select DVB_AV7110
-       select DVB_PLL
        select DVB_STV0299 if !DVB_FE_CUSTOMISE
        select DVB_VES1X93 if !DVB_FE_CUSTOMISE
        select DVB_TDA8083 if !DVB_FE_CUSTOMISE
 
 config DVB_TTUSB_BUDGET
        tristate "Technotrend/Hauppauge Nova-USB devices"
        depends on DVB_CORE && USB && I2C
-       select DVB_PLL
        select DVB_CX22700 if !DVB_FE_CUSTOMISE
        select DVB_TDA1004X if !DVB_FE_CUSTOMISE
        select DVB_VES1820 if !DVB_FE_CUSTOMISE