]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
[media] saa7134: add Leadtek Winfast TV2100 FM card support
authorDarek Zielski <dz1125tor@gmail.com>
Thu, 27 Aug 2015 22:18:54 +0000 (19:18 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Fri, 25 Sep 2015 20:19:17 +0000 (17:19 -0300)
Add Leadtek Winfast TV2100 FM card to saa7134 driver. It is a card bearing
SAA7130HL chip.

Signed-off-by: Darek Zielski <dz1125tor@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Documentation/video4linux/CARDLIST.saa7134
drivers/media/pci/saa7134/saa7134-cards.c
drivers/media/pci/saa7134/saa7134-input.c
drivers/media/pci/saa7134/saa7134.h

index f4b395bdc090956dded8f38ff262d528116018d6..282102014bb993017c0a481f1e6f3fe6fb11c60f 100644 (file)
 192 -> AverMedia AverTV Satellite Hybrid+FM A706 [1461:2055]
 193 -> WIS Voyager or compatible                [1905:7007]
 194 -> AverMedia AverTV/505                     [1461:a10a]
+195 -> Leadtek Winfast TV2100 FM                [107d:6f3a]
index c7405766609c7079667d5e9d42b283185424b740..29d2094c42a0daabfbb625dd2b2f254d0fcd815c 100644 (file)
@@ -5884,6 +5884,42 @@ struct saa7134_board saa7134_boards[] = {
                        .amux = LINE1,
                },
        },
+       [SAA7134_BOARD_LEADTEK_WINFAST_TV2100_FM] = {
+               .name           = "Leadtek Winfast TV2100 FM",
+               .audio_clock    = 0x00187de7,
+               .tuner_type     = TUNER_TNF_5335MF,
+               .radio_type     = UNSET,
+               .tuner_addr     = ADDR_UNSET,
+               .radio_addr     = ADDR_UNSET,
+               .gpiomask       = 0x0d,
+               .inputs         = {{
+                       .name = name_tv_mono,
+                       .vmux = 1,
+                       .amux = LINE1,
+                       .gpio = 0x00,
+                       .tv   = 1,
+               }, {
+                       .name = name_comp1,
+                       .vmux = 3,
+                       .amux = LINE2,
+                       .gpio = 0x08,
+               }, {
+                       .name = name_svideo,
+                       .vmux = 8,
+                       .amux = LINE2,
+                       .gpio = 0x08,
+               } },
+               .radio = {
+                       .name = name_radio,
+                       .amux = LINE1,
+                       .gpio = 0x04,
+               },
+               .mute = {
+                       .name = name_mute,
+                       .amux = LINE1,
+                       .gpio = 0x08,
+               },
+       },
 
 };
 
@@ -7148,6 +7184,12 @@ struct pci_device_id saa7134_pci_tbl[] = {
                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
                .subdevice    = 0xa10a,
                .driver_data  = SAA7134_BOARD_AVERMEDIA_505,
+       }, {
+               .vendor       = PCI_VENDOR_ID_PHILIPS,
+               .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
+               .subvendor    = 0x107d,
+               .subdevice    = 0x6f3a,
+               .driver_data  = SAA7134_BOARD_LEADTEK_WINFAST_TV2100_FM,
        }, {
                /* --- boards without eeprom + subsystem ID --- */
                .vendor       = PCI_VENDOR_ID_PHILIPS,
@@ -7545,6 +7587,7 @@ int saa7134_board_init1(struct saa7134_dev *dev)
        case SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS:
        case SAA7134_BOARD_ROVERMEDIA_LINK_PRO_FM:
        case SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S:
+       case SAA7134_BOARD_LEADTEK_WINFAST_TV2100_FM:
                dev->has_remote = SAA7134_REMOTE_GPIO;
                break;
        case SAA7134_BOARD_FLYDVBS_LR300:
index 11a1720002918cec4b66e965974c0ab98134bf68..69d32d3fa32ca214f35bf68217122ee7bb6f2060 100644 (file)
@@ -835,6 +835,13 @@ int saa7134_input_init1(struct saa7134_dev *dev)
                mask_keycode = 0xffff;
                raw_decode   = true;
                break;
+       case SAA7134_BOARD_LEADTEK_WINFAST_TV2100_FM:
+               ir_codes     = RC_MAP_LEADTEK_Y04G0051;
+               mask_keydown = 0x0040000;       /* Enable GPIO18 line on both edges */
+               mask_keyup   = 0x0040000;
+               mask_keycode = 0xffff;
+               raw_decode   = true;
+               break;
        }
        if (NULL == ir_codes) {
                pr_err("Oops: IR config error [card=%d]\n", dev->board);
index 6b5f6f45d285a8cda89eade16caece13c033546a..14c2b4e0ee400c9048ae0929a11039dbd99713cf 100644 (file)
@@ -342,6 +342,7 @@ struct saa7134_card_ir {
 #define SAA7134_BOARD_AVERMEDIA_A706           192
 #define SAA7134_BOARD_WIS_VOYAGER           193
 #define SAA7134_BOARD_AVERMEDIA_505         194
+#define SAA7134_BOARD_LEADTEK_WINFAST_TV2100_FM 195
 
 #define SAA7134_MAXBOARDS 32
 #define SAA7134_INPUT_MAX 8