Merge master.kernel.org:/home/rmk/linux-2.6-arm
[pandora-kernel.git] / drivers / media / video / cx88 / cx88-cards.c
index b3fb043..4da91d5 100644 (file)
@@ -1,5 +1,4 @@
 /*
- * $Id: cx88-cards.c,v 1.76 2005/06/08 01:28:09 mchehab Exp $
  *
  * device driver for Conexant 2388x based TV cards
  * card-specific stuff.
@@ -90,6 +89,9 @@ struct cx88_board cx88_boards[] = {
                .input          = {{
                        .type   = CX88_VMUX_TELEVISION,
                        .vmux   = 0,
+               },{
+                       .type   = CX88_VMUX_SVIDEO,
+                       .vmux   = 2,
                }},
        },
        [CX88_BOARD_PIXELVIEW] = {
@@ -401,7 +403,7 @@ struct cx88_board cx88_boards[] = {
                .dvb            = 1,
        },
        [CX88_BOARD_DVICO_FUSIONHDTV_DVB_T1] = {
-               .name           = "DVICO FusionHDTV DVB-T1",
+               .name           = "DViCO FusionHDTV DVB-T1",
                .tuner_type     = TUNER_ABSENT, /* No analog tuner */
                .radio_type     = UNSET,
                .tuner_addr     = ADDR_UNSET,
@@ -445,8 +447,8 @@ struct cx88_board cx88_boards[] = {
                         .gpio0  = 0x000007f8,
                 },
        },
-       [CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD] = {
-               .name           = "DViCO - FusionHDTV 3 Gold",
+       [CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q] = {
+               .name           = "DViCO FusionHDTV 3 Gold-Q",
                .tuner_type     = TUNER_MICROTUNE_4042FI5,
                .radio_type     = UNSET,
                .tuner_addr     = ADDR_UNSET,
@@ -464,6 +466,9 @@ struct cx88_board cx88_boards[] = {
                   GPIO[3] selects RF input connector on tuner module
                    0 - RF connector labeled CABLE
                    1 - RF connector labeled ANT
+                  GPIO[4] selects high RF for QAM256 mode
+                   0 - normal RF
+                   1 - high RF
                */
                .input          = {{
                        .type   = CX88_VMUX_TELEVISION,
@@ -482,6 +487,7 @@ struct cx88_board cx88_boards[] = {
                        .vmux   = 2,
                        .gpio0  = 0x0f00,
                }},
+               .dvb            = 1,
        },
         [CX88_BOARD_HAUPPAUGE_DVB_T1] = {
                .name           = "Hauppauge Nova-T DVB-T",
@@ -520,7 +526,7 @@ struct cx88_board cx88_boards[] = {
                .blackbird = 1,
        },
        [CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PLUS] = {
-               .name           = "DVICO FusionHDTV DVB-T Plus",
+               .name           = "DViCO FusionHDTV DVB-T Plus",
                .tuner_type     = TUNER_ABSENT, /* No analog tuner */
                .radio_type     = UNSET,
                .tuner_addr     = ADDR_UNSET,
@@ -604,12 +610,12 @@ struct cx88_board cx88_boards[] = {
                .input          = {{
                        .type   = CX88_VMUX_TELEVISION,
                        .vmux   = 0,
-                       .gpio0  = 0xed12,  // internal decoder
+                       .gpio0  = 0xed12,  /* internal decoder */
                        .gpio2  = 0x00ff,
                },{
                        .type   = CX88_VMUX_DEBUG,
                        .vmux   = 0,
-                       .gpio0  = 0xff01,  // mono from tuner chip
+                       .gpio0  = 0xff01,  /* mono from tuner chip */
                },{
                        .type   = CX88_VMUX_COMPOSITE1,
                        .vmux   = 1,
@@ -678,9 +684,9 @@ struct cx88_board cx88_boards[] = {
                .name           = "PixelView PlayTV Ultra Pro (Stereo)",
                /* May be also TUNER_YMEC_TVF_5533MF for NTSC/M or PAL/M */
                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
-               .radio_type     = TUNER_TEA5767,
-               .tuner_addr     = 0xc2>>1,
-               .radio_addr     = 0xc0>>1,
+               .radio_type     = UNSET,
+               .tuner_addr     = ADDR_UNSET,
+               .radio_addr     = ADDR_UNSET,
                .input          = {{
                        .type   = CX88_VMUX_TELEVISION,
                        .vmux   = 0,
@@ -700,30 +706,76 @@ struct cx88_board cx88_boards[] = {
                 },
        },
         [CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_T] = {
-                .name           = "DViCO - FusionHDTV 3 Gold-T",
+               .name           = "DViCO FusionHDTV 3 Gold-T",
                .tuner_type     = TUNER_THOMSON_DTT7611,
                .radio_type     = UNSET,
                .tuner_addr     = ADDR_UNSET,
                .radio_addr     = ADDR_UNSET,
-               /*  See DViCO FusionHDTV 3 Gold for GPIO documentation.  */
-                .input          = {{
+               .input          = {{
                         .type   = CX88_VMUX_TELEVISION,
                         .vmux   = 0,
-                        .gpio0  = 0x0f0d,
+                        .gpio0  = 0x97ed,
+                },{
+                        .type   = CX88_VMUX_COMPOSITE1,
+                        .vmux   = 1,
+                        .gpio0  = 0x97e9,
+                },{
+                        .type   = CX88_VMUX_SVIDEO,
+                        .vmux   = 2,
+                        .gpio0  = 0x97e9,
+                }},
+               .dvb            = 1,
+        },
+        [CX88_BOARD_ADSTECH_DVB_T_PCI] = {
+                .name           = "ADS Tech Instant TV DVB-T PCI",
+               .tuner_type     = TUNER_ABSENT,
+               .radio_type     = UNSET,
+               .tuner_addr     = ADDR_UNSET,
+               .radio_addr     = ADDR_UNSET,
+               .input          = {{
+                        .type   = CX88_VMUX_COMPOSITE1,
+                        .vmux   = 1,
+                       .gpio0  = 0x0700,
+                       .gpio2  = 0x0101,
                 },{
-                        .type   = CX88_VMUX_CABLE,
+                        .type   = CX88_VMUX_SVIDEO,
+                        .vmux   = 2,
+                       .gpio0  = 0x0700,
+                       .gpio2  = 0x0101,
+                }},
+               .dvb            = 1,
+       },
+       [CX88_BOARD_TERRATEC_CINERGY_1400_DVB_T1] = {
+               .name           = "TerraTec Cinergy 1400 DVB-T",
+               .tuner_type     = TUNER_ABSENT,
+               .input          = {{
+                       .type   = CX88_VMUX_DVB,
+                       .vmux   = 0,
+               }},
+               .dvb            = 1,
+       },
+       [CX88_BOARD_DVICO_FUSIONHDTV_5_GOLD] = {
+               .name           = "DViCO FusionHDTV 5 Gold",
+               .tuner_type     = TUNER_LG_TDVS_H062F,
+               .radio_type     = UNSET,
+               .tuner_addr     = ADDR_UNSET,
+               .radio_addr     = ADDR_UNSET,
+               .tda9887_conf   = TDA9887_PRESENT,
+               .input          = {{
+                        .type   = CX88_VMUX_TELEVISION,
                         .vmux   = 0,
-                        .gpio0  = 0x0f05,
+                        .gpio0  = 0x87fd,
                 },{
                         .type   = CX88_VMUX_COMPOSITE1,
                         .vmux   = 1,
-                        .gpio0  = 0x0f00,
+                        .gpio0  = 0x87f9,
                 },{
                         .type   = CX88_VMUX_SVIDEO,
                         .vmux   = 2,
-                        .gpio0  = 0x0f00,
+                        .gpio0  = 0x87f9,
                 }},
-        },
+               .dvb            = 1,
+       },
 };
 const unsigned int cx88_bcount = ARRAY_SIZE(cx88_boards);
 
@@ -794,7 +846,7 @@ struct cx88_subid cx88_subids[] = {
        },{
                .subvendor = 0x18ac,
                .subdevice = 0xd810,
-               .card      = CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD,
+               .card      = CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q,
        },{
                .subvendor = 0x18ac,
                .subdevice = 0xd820,
@@ -843,7 +895,19 @@ struct cx88_subid cx88_subids[] = {
                .subvendor = 0x10fc,
                .subdevice = 0xd035,
                .card      = CX88_BOARD_IODATA_GVBCTV7E,
-       }
+       },{
+               .subvendor = 0x1421,
+               .subdevice = 0x0334,
+               .card      = CX88_BOARD_ADSTECH_DVB_T_PCI,
+       },{
+               .subvendor = 0x153b,
+               .subdevice = 0x1166,
+               .card      = CX88_BOARD_TERRATEC_CINERGY_1400_DVB_T1,
+       },{
+               .subvendor = 0x18ac,
+               .subdevice = 0xd500,
+               .card      = CX88_BOARD_DVICO_FUSIONHDTV_5_GOLD,
+       },
 };
 const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids);
 
@@ -881,7 +945,7 @@ static void hauppauge_eeprom(struct cx88_core *core, u8 *eeprom_data)
 {
        struct tveeprom tv;
 
-       tveeprom_hauppauge_analog(&tv, eeprom_data);
+       tveeprom_hauppauge_analog(&core->i2c_client, &tv, eeprom_data);
        core->tuner_type = tv.tuner_type;
        core->has_radio  = tv.has_radio;
 }