V4L/DVB (6072): saa7134: add DVB-T support for Avermedia Super 007
authorEdgar Simo <bobbens@gmail.com>
Mon, 20 Aug 2007 17:14:50 +0000 (14:14 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Wed, 10 Oct 2007 01:06:01 +0000 (22:06 -0300)
Add DVB-T support for Avermedia Super 007

Analog television is untested.  The device lacks input adapters for radio,
svideo & composite -- seems to be a DVB-T ONLY device.

Signed-off-by: Edgar Simo <bobbens@gmail.com>
Acked-by: Hermann Pitton <hermann-pitton@arcor.de>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Documentation/video4linux/CARDLIST.saa7134
drivers/media/video/saa7134/saa7134-cards.c
drivers/media/video/saa7134/saa7134-dvb.c
drivers/media/video/saa7134/saa7134.h

index 3f8aeab50a103b406a5075645aefa4cc740f499a..831b4da48b8089c2091164ea653b4716d43b5ec2 100644 (file)
 114 -> KWorld DVB-T 210                         [17de:7250]
 115 -> Sabrent PCMCIA TV-PCB05                  [0919:2003]
 116 -> 10MOONS TM300 TV Card                    [1131:2304]
+117 -> Avermedia Super 007                      [1461:f01d]
index 25ec16810818c2758555ad11a3c98ffc4e466e92..5c3174a62e58dd87f392bf50fbbcab90dbea93fb 100644 (file)
@@ -3534,6 +3534,22 @@ struct saa7134_board saa7134_boards[] = {
                        .gpio = 0x3000,
                },
        },
+       [SAA7134_BOARD_AVERMEDIA_SUPER_007] = {
+               .name           = "Avermedia Super 007",
+               .audio_clock    = 0x00187de7,
+               .tuner_type     = TUNER_PHILIPS_TDA8290,
+               .radio_type     = UNSET,
+               .tuner_addr     = ADDR_UNSET,
+               .radio_addr     = ADDR_UNSET,
+               .tuner_config   = 0,
+               .mpeg           = SAA7134_MPEG_DVB,
+               .inputs = {{
+                       .name   = name_tv, /* FIXME: analog tv untested */
+                       .vmux   = 1,
+                       .amux   = TV,
+                       .tv     = 1,
+               }},
+       },
 };
 
 const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
@@ -4256,6 +4272,12 @@ struct pci_device_id saa7134_pci_tbl[] = {
                .subvendor    = PCI_VENDOR_ID_PHILIPS,
                .subdevice    = 0x2304,
                .driver_data  = SAA7134_BOARD_10MOONSTVMASTER3,
+       },{
+               .vendor       = PCI_VENDOR_ID_PHILIPS,
+               .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+               .subvendor    = 0x1461, /* Avermedia Technologies Inc */
+               .subdevice    = 0xf01d, /* AVerTV DVB-T Super 007 */
+               .driver_data  = SAA7134_BOARD_AVERMEDIA_SUPER_007,
        },{
                /* --- boards without eeprom + subsystem ID --- */
                .vendor       = PCI_VENDOR_ID_PHILIPS,
@@ -4564,6 +4586,7 @@ int saa7134_board_init2(struct saa7134_dev *dev)
                break;
        case SAA7134_BOARD_PHILIPS_TIGER:
        case SAA7134_BOARD_PHILIPS_TIGER_S:
+       case SAA7134_BOARD_AVERMEDIA_SUPER_007:
                {
                u8 data[] = { 0x3c, 0x33, 0x60};
                struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
index a0ce67ecb0182eda7c38bdd8a1581e2ca4ba6816..bbab252cbeee347643f90fdd9c74473e7f0fc2c8 100644 (file)
@@ -763,6 +763,21 @@ static struct tda1004x_config kworld_dvb_t_210_config = {
        .request_firmware = philips_tda1004x_request_firmware
 };
 
+static struct tda1004x_config avermedia_super_007_config = {
+       .demod_address = 0x08,
+       .invert        = 1,
+       .invert_oclk   = 0,
+       .xtal_freq     = TDA10046_XTAL_16M,
+       .agc_config    = TDA10046_AGC_TDA827X,
+       .gpio_config   = TDA10046_GP01_I,
+       .if_freq       = TDA10046_FREQ_045,
+       .i2c_gate      = 0x4b,
+       .tuner_address = 0x60,
+       .tuner_config  = 0,
+       .antenna_switch= 1,
+       .request_firmware = philips_tda1004x_request_firmware
+};
+
 /* ------------------------------------------------------------------
  * special case: this card uses saa713x GPIO22 for the mode switch
  */
@@ -1025,6 +1040,9 @@ static int dvb_init(struct saa7134_dev *dev)
        case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA:
                configure_tda827x_fe(dev, &asus_p7131_hybrid_lna_config);
                break;
+       case SAA7134_BOARD_AVERMEDIA_SUPER_007:
+               configure_tda827x_fe(dev, &avermedia_super_007_config);
+               break;
        default:
                wprintk("Huh? unknown DVB card?\n");
                break;
index 346255468dad2f478795f41ebfef86002f80e658..fd12942b3a108aa00a36939a790f4a4428b780c1 100644 (file)
@@ -239,6 +239,7 @@ struct saa7134_format {
 #define SAA7134_BOARD_KWORLD_DVBT_210 114
 #define SAA7134_BOARD_SABRENT_TV_PCB05     115
 #define SAA7134_BOARD_10MOONSTVMASTER3     116
+#define SAA7134_BOARD_AVERMEDIA_SUPER_007  117
 
 #define SAA7134_MAXBOARDS 8
 #define SAA7134_INPUT_MAX 8