V4L/DVB (5015): Add support for more Encore TV cards
[powerpc.git] / drivers / media / video / saa7134 / saa7134-cards.c
index d8d8142..0403ae9 100644 (file)
@@ -2468,6 +2468,11 @@ struct saa7134_board saa7134_boards[] = {
                        .vmux = 3,
                        .amux = LINE2,
                        .gpio = 0x0200000,
+               },{
+                       .name = name_comp2,
+                       .vmux = 0,
+                       .amux = LINE2,
+                       .gpio = 0x0200000,
                },{
                        .name = name_svideo,
                        .vmux = 8,
@@ -2570,6 +2575,7 @@ struct saa7134_board saa7134_boards[] = {
                .radio_type     = UNSET,
                .tuner_addr     = ADDR_UNSET,
                .radio_addr     = ADDR_UNSET,
+               .gpiomask       = 1 << 21,
                .inputs = {{
                        .name   = name_tv,
                        .vmux   = 1,
@@ -2578,15 +2584,20 @@ struct saa7134_board saa7134_boards[] = {
                },{
                        .name   = name_comp1,
                        .vmux   = 3,
-                       .amux   = LINE1,
+                       .amux   = LINE2,        /* unconfirmed, taken from Philips driver */
+               },{
+                       .name   = name_comp2,
+                       .vmux   = 0,            /* untested, Composite over S-Video */
+                       .amux   = LINE2,
                },{
                        .name   = name_svideo,
-                       .vmux   = 0,
-                       .amux   = LINE1,
+                       .vmux   = 8,
+                       .amux   = LINE2,
                }},
                .radio = {
                        .name   = name_radio,
-                       .amux   = LINE1,
+                       .amux   = TV,
+                       .gpio   = 0x0200000,
                },
        },
        [SAA7134_BOARD_CINERGY250PCI] = {
@@ -3135,17 +3146,124 @@ struct saa7134_board saa7134_boards[] = {
                .tuner_addr     = ADDR_UNSET,
                .radio_addr     = ADDR_UNSET,
                .mpeg           = SAA7134_MPEG_DVB,
-               .gpiomask       = 0x000200000,
                .inputs         = {{
                        .name = name_tv,
                        .vmux = 1,
                        .amux = TV,
                        .tv   = 1,
+               },{
+                       .name   = name_comp1,
+                       .vmux   = 3,
+                       .amux   = LINE2, /* FIXME: audio doesn't work on svideo/composite */
+               },{
+                       .name   = name_svideo,
+                       .vmux   = 8,
+                       .amux   = LINE2, /* FIXME: audio doesn't work on svideo/composite */
                }},
                .radio = {
                        .name = name_radio,
                        .amux   = TV,
-                       .gpio   = 0x0200000,
+               },
+       },
+       [SAA7134_BOARD_CINERGY_HT_PCMCIA] = {
+               .name           = "Terratec Cinergy HT PCMCIA",
+               .audio_clock    = 0x00187de7,
+               .tuner_type     = TUNER_PHILIPS_TDA8290,
+               .radio_type     = UNSET,
+               .tuner_addr     = ADDR_UNSET,
+               .radio_addr     = ADDR_UNSET,
+               .mpeg           = SAA7134_MPEG_DVB,
+               .inputs = {{
+                       .name   = name_tv,
+                       .vmux   = 1,
+                       .amux   = TV,
+                       .tv     = 1,
+               },{
+                       .name   = name_comp1,
+                       .vmux   = 0,
+                       .amux   = LINE1,
+               },{
+                       .name   = name_svideo,
+                       .vmux   = 6,
+                       .amux   = LINE1,
+               }},
+       },
+       [SAA7134_BOARD_ENCORE_ENLTV] = {
+       /* Steven Walter <stevenrwalter@gmail.com>
+          Juan Pablo Sormani <sorman@gmail.com> */
+               .name           = "Encore ENLTV",
+               .audio_clock    = 0x00200000,
+               .tuner_type     = TUNER_TNF_5335MF,
+               .radio_type     = UNSET,
+               .tuner_addr     = ADDR_UNSET,
+               .radio_addr     = ADDR_UNSET,
+               .inputs         = {{
+                       .name = name_tv,
+                       .vmux = 1,
+                       .amux = 3,
+                       .tv   = 1,
+               },{
+                       .name = name_tv_mono,
+                       .vmux = 7,
+                       .amux = 4,
+                       .tv   = 1,
+               },{
+                       .name = name_comp1,
+                       .vmux = 3,
+                       .amux = 2,
+               },{
+                       .name = name_svideo,
+                       .vmux = 0,
+                       .amux = 2,
+               }},
+               .radio = {
+                       .name = name_radio,
+                       .amux = LINE2,
+/*                     .gpio = 0x00300001,*/
+                       .gpio = 0x20000,
+
+               },
+               .mute = {
+                       .name = name_mute,
+                       .amux = 0,
+               },
+       },
+       [SAA7134_BOARD_ENCORE_ENLTV_FM] = {
+  /*   Juan Pablo Sormani <sorman@gmail.com> */
+               .name           = "Encore ENLTV-FM",
+               .audio_clock    = 0x00200000,
+               .tuner_type     = TUNER_PHILIPS_ATSC,
+               .radio_type     = UNSET,
+               .tuner_addr     = ADDR_UNSET,
+               .radio_addr     = ADDR_UNSET,
+               .inputs         = {{
+                       .name = name_tv,
+                       .vmux = 1,
+                       .amux = 3,
+                       .tv   = 1,
+               },{
+                       .name = name_tv_mono,
+                       .vmux = 7,
+                       .amux = 4,
+                       .tv   = 1,
+               },{
+                       .name = name_comp1,
+                       .vmux = 3,
+                       .amux = 2,
+               },{
+                       .name = name_svideo,
+                       .vmux = 0,
+                       .amux = 2,
+               }},
+               .radio = {
+                       .name = name_radio,
+                       .amux = LINE2,
+                       .gpio = 0x20000,
+
+               },
+               .mute = {
+                       .name = name_mute,
+                       .amux = 0,
                },
        },
 };
@@ -3780,6 +3898,36 @@ struct pci_device_id saa7134_pci_tbl[] = {
                .subvendor    = 0x0070,
                .subdevice    = 0x6701,
                .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
+       },{
+               .vendor       = PCI_VENDOR_ID_PHILIPS,
+               .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+               .subvendor    = 0x153b,
+               .subdevice    = 0x1172,
+               .driver_data  = SAA7134_BOARD_CINERGY_HT_PCMCIA,
+       },{
+               .vendor       = PCI_VENDOR_ID_PHILIPS,
+               .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
+               .subvendor    = PCI_VENDOR_ID_PHILIPS,
+               .subdevice    = 0x2342,
+               .driver_data  = SAA7134_BOARD_ENCORE_ENLTV,
+       },{
+               .vendor       = PCI_VENDOR_ID_PHILIPS,
+               .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
+               .subvendor    = 0x1131,
+               .subdevice    = 0x2341,
+               .driver_data  = SAA7134_BOARD_ENCORE_ENLTV,
+       },{
+               .vendor       = PCI_VENDOR_ID_PHILIPS,
+               .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
+               .subvendor    = 0x3016,
+               .subdevice    = 0x2344,
+               .driver_data  = SAA7134_BOARD_ENCORE_ENLTV,
+       },{
+               .vendor       = PCI_VENDOR_ID_PHILIPS,
+               .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
+               .subvendor    = 0x1131,
+               .subdevice    = 0x230f,
+               .driver_data  = SAA7134_BOARD_ENCORE_ENLTV_FM,
        },{
                /* --- boards without eeprom + subsystem ID --- */
                .vendor       = PCI_VENDOR_ID_PHILIPS,
@@ -3885,9 +4033,12 @@ int saa7134_board_init1(struct saa7134_dev *dev)
        case SAA7134_BOARD_KWORLD_TERMINATOR:
        case SAA7134_BOARD_SEDNA_PC_TV_CARDBUS:
        case SAA7134_BOARD_FLYDVBT_LR301:
+       case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
        case SAA7134_BOARD_FLYDVBTDUO:
        case SAA7134_BOARD_PROTEUS_2309:
        case SAA7134_BOARD_AVERMEDIA_A16AR:
+       case SAA7134_BOARD_ENCORE_ENLTV:
+       case SAA7134_BOARD_ENCORE_ENLTV_FM:
                dev->has_remote = SAA7134_REMOTE_GPIO;
                break;
        case SAA7134_BOARD_FLYDVBS_LR300:
@@ -3947,6 +4098,7 @@ int saa7134_board_init1(struct saa7134_dev *dev)
        case SAA7134_BOARD_PINNACLE_PCTV_110i:
        case SAA7134_BOARD_PINNACLE_PCTV_310i:
        case SAA7134_BOARD_UPMOST_PURPLE_TV:
+       case SAA7134_BOARD_HAUPPAUGE_HVR1110:
                dev->has_remote = SAA7134_REMOTE_I2C;
                break;
        case SAA7134_BOARD_AVERMEDIA_A169_B:
@@ -4107,6 +4259,14 @@ int saa7134_board_init2(struct saa7134_dev *dev)
                i2c_transfer(&dev->i2c_adap, &msg, 1);
                }
                break;
+       case SAA7134_BOARD_CINERGY_HT_PCMCIA:
+               /* make the tda10046 find its eeprom */
+               {
+               u8 data[] = { 0x3c, 0x33, 0x60};
+               struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
+               i2c_transfer(&dev->i2c_adap, &msg, 1);
+               }
+               break;
        case SAA7134_BOARD_KWORLD_ATSC110:
                {
                        /* enable tuner */