V4L/DVB (4397): Add tda10086 support for TT DVB-S-1401
authorAndrew de Quincey <adq_dvb@lidskialf.net>
Tue, 8 Aug 2006 12:10:10 +0000 (09:10 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Tue, 26 Sep 2006 14:53:30 +0000 (11:53 -0300)
Add the necessary code and makefile infrastructure

Signed-off-by: Andrew de Quincey <adq_dvb@lidskialf.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/dvb/ttpci/Kconfig
drivers/media/dvb/ttpci/budget.c

index 5fb0975..0f01b9f 100644 (file)
@@ -3,15 +3,14 @@ config DVB_AV7110
        depends on DVB_CORE && PCI && I2C && VIDEO_V4L1
        select FW_LOADER
        select VIDEO_SAA7146_VV
-       select DVB_PLL
-       select DVB_VES1820
-       select DVB_VES1X93
-       select DVB_STV0299
-       select DVB_TDA8083
-       select DVB_SP8870
-       select DVB_STV0297
-       select DVB_L64781
-       select DVB_LNBP21
+       select DVB_VES1820 if !DVB_FE_CUSTOMISE
+       select DVB_VES1X93 if !DVB_FE_CUSTOMISE
+       select DVB_STV0299 if !DVB_FE_CUSTOMISE
+       select DVB_TDA8083 if !DVB_FE_CUSTOMISE
+       select DVB_SP8870 if !DVB_FE_CUSTOMISE
+       select DVB_STV0297 if !DVB_FE_CUSTOMISE
+       select DVB_L64781 if !DVB_FE_CUSTOMISE
+       select DVB_LNBP21 if !DVB_FE_CUSTOMISE
        help
          Support for SAA7146 and AV7110 based DVB cards as produced
          by Fujitsu-Siemens, Technotrend, Hauppauge and others.
@@ -62,15 +61,14 @@ config DVB_BUDGET
        tristate "Budget cards"
        depends on DVB_CORE && PCI && I2C && VIDEO_V4L1
        select VIDEO_SAA7146
-       select DVB_PLL
-       select DVB_STV0299
-       select DVB_VES1X93
-       select DVB_VES1820
-       select DVB_L64781
-       select DVB_TDA8083
-       select DVB_TDA10021
-       select DVB_S5H1420
-       select DVB_LNBP21
+       select DVB_STV0299 if !DVB_FE_CUSTOMISE
+       select DVB_VES1X93 if !DVB_FE_CUSTOMISE
+       select DVB_VES1820 if !DVB_FE_CUSTOMISE
+       select DVB_L64781 if !DVB_FE_CUSTOMISE
+       select DVB_TDA8083 if !DVB_FE_CUSTOMISE
+       select DVB_TDA10021 if !DVB_FE_CUSTOMISE
+       select DVB_S5H1420 if !DVB_FE_CUSTOMISE
+       select DVB_LNBP21 if !DVB_FE_CUSTOMISE
        help
          Support for simple SAA7146 based DVB cards
          (so called Budget- or Nova-PCI cards) without onboard
@@ -85,11 +83,10 @@ config DVB_BUDGET_CI
        tristate "Budget cards with onboard CI connector"
        depends on DVB_CORE && PCI && I2C && VIDEO_V4L1
        select VIDEO_SAA7146
-       select DVB_PLL
-       select DVB_STV0297
-       select DVB_STV0299
-       select DVB_TDA1004X
-       select DVB_LNBP21
+       select DVB_STV0297 if !DVB_FE_CUSTOMISE
+       select DVB_STV0299 if !DVB_FE_CUSTOMISE
+       select DVB_TDA1004X if !DVB_FE_CUSTOMISE
+       select DVB_LNBP21 if !DVB_FE_CUSTOMISE
        help
          Support for simple SAA7146 based DVB cards
          (so called Budget- or Nova-PCI cards) without onboard
@@ -107,10 +104,9 @@ config DVB_BUDGET_AV
        tristate "Budget cards with analog video inputs"
        depends on DVB_CORE && PCI && I2C && VIDEO_V4L1
        select VIDEO_SAA7146_VV
-       select DVB_PLL
-       select DVB_STV0299
-       select DVB_TDA1004X
-       select DVB_TDA10021
+       select DVB_STV0299 if !DVB_FE_CUSTOMISE
+       select DVB_TDA1004X if !DVB_FE_CUSTOMISE
+       select DVB_TDA10021 if !DVB_FE_CUSTOMISE
        select FW_LOADER
        help
          Support for simple SAA7146 based DVB cards
@@ -126,10 +122,9 @@ config DVB_BUDGET_PATCH
        tristate "AV7110 cards with Budget Patch"
        depends on DVB_CORE && DVB_BUDGET && VIDEO_V4L1
        select DVB_AV7110
-       select DVB_PLL
-       select DVB_STV0299
-       select DVB_VES1X93
-       select DVB_TDA8083
+       select DVB_STV0299 if !DVB_FE_CUSTOMISE
+       select DVB_VES1X93 if !DVB_FE_CUSTOMISE
+       select DVB_TDA8083 if !DVB_FE_CUSTOMISE
        help
          Support for Budget Patch (full TS) modification on
          SAA7146+AV7110 based cards (DVB-S cards). This
index e846b96..886eb6a 100644 (file)
@@ -41,6 +41,8 @@
 #include "l64781.h"
 #include "tda8083.h"
 #include "s5h1420.h"
+#include "tda10086.h"
+#include "tda826x.h"
 #include "lnbp21.h"
 #include "bsru6.h"
 
@@ -342,6 +344,11 @@ static struct s5h1420_config s5h1420_config = {
        .invert = 1,
 };
 
+static struct tda10086_config tda10086_config = {
+       .demod_address = 0x0e,
+       .invert = 0,
+};
+
 static u8 read_pwm(struct budget* budget)
 {
        u8 b = 0xff;
@@ -420,7 +427,25 @@ static void frontend_init(struct budget *budget)
                budget->dvb_frontend = dvb_attach(s5h1420_attach, &s5h1420_config, &budget->i2c_adap);
                if (budget->dvb_frontend) {
                        budget->dvb_frontend->ops.tuner_ops.set_params = s5h1420_tuner_set_params;
-                       if (lnbp21_attach(budget->dvb_frontend, &budget->i2c_adap, 0, 0) == NULL) {
+                       if (dvb_attach(lnbp21_attach, budget->dvb_frontend, &budget->i2c_adap, 0, 0) == NULL) {
+                               printk("%s: No LNBP21 found!\n", __FUNCTION__);
+                               goto error_out;
+                       }
+                       break;
+               }
+
+       case 0x1018: // TT Budget-S-1401 (philips tda10086/philips tda8262)
+               // gpio2 is connected to CLB - reset it + leave it high
+               saa7146_setgpio(budget->dev, 2, SAA7146_GPIO_OUTLO);
+               msleep(1);
+               saa7146_setgpio(budget->dev, 2, SAA7146_GPIO_OUTHI);
+               msleep(1);
+
+               budget->dvb_frontend = dvb_attach(tda10086_attach, &tda10086_config, &budget->i2c_adap);
+               if (budget->dvb_frontend) {
+                       if (dvb_attach(tda826x_attach, budget->dvb_frontend, 0x60, &budget->i2c_adap, 0) == NULL)
+                               printk("%s: No tda826x found!\n", __FUNCTION__);
+                       if (dvb_attach(lnbp21_attach, budget->dvb_frontend, &budget->i2c_adap, 0, 0) == NULL) {
                                printk("%s: No LNBP21 found!\n", __FUNCTION__);
                                goto error_out;
                        }
@@ -499,6 +524,7 @@ MAKE_BUDGET_INFO(ttbs,      "TT-Budget/WinTV-NOVA-S  PCI",  BUDGET_TT);
 MAKE_BUDGET_INFO(ttbc, "TT-Budget/WinTV-NOVA-C  PCI",  BUDGET_TT);
 MAKE_BUDGET_INFO(ttbt, "TT-Budget/WinTV-NOVA-T  PCI",  BUDGET_TT);
 MAKE_BUDGET_INFO(satel,        "SATELCO Multimedia PCI",       BUDGET_TT_HW_DISEQC);
+MAKE_BUDGET_INFO(ttbs1401, "TT-Budget-S-1401 PCI", BUDGET_TT);
 MAKE_BUDGET_INFO(fsacs0, "Fujitsu Siemens Activy Budget-S PCI (rev GR/grundig frontend)", BUDGET_FS_ACTIVY);
 MAKE_BUDGET_INFO(fsacs1, "Fujitsu Siemens Activy Budget-S PCI (rev AL/alps frontend)", BUDGET_FS_ACTIVY);
 
@@ -508,6 +534,7 @@ static struct pci_device_id pci_tbl[] = {
        MAKE_EXTENSION_PCI(ttbt,  0x13c2, 0x1005),
        MAKE_EXTENSION_PCI(satel, 0x13c2, 0x1013),
        MAKE_EXTENSION_PCI(ttbs,  0x13c2, 0x1016),
+       MAKE_EXTENSION_PCI(ttbs1401, 0x13c2, 0x1018),
        MAKE_EXTENSION_PCI(fsacs1,0x1131, 0x4f60),
        MAKE_EXTENSION_PCI(fsacs0,0x1131, 0x4f61),
        {