V4L/DVB (4362): Cx88: Shenzhen Tungsten Ages Tech TE-DTV-250 / Swann PCI TV Tuner card support

Add support for Shenzhen Tungsten Ages Tech TE-DTV-250 OEM for
Swann PCI TV Tuner Card

Signed-off-by: David Bussenschutt <buzz@oska.com>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
diff --git a/Documentation/video4linux/CARDLIST.cx88 b/Documentation/video4linux/CARDLIST.cx88
index 348b67d..76b3092 100644
--- a/Documentation/video4linux/CARDLIST.cx88
+++ b/Documentation/video4linux/CARDLIST.cx88
@@ -53,3 +53,4 @@
  52 -> Geniatech DVB-S                                     [14f1:0084]
  53 -> Hauppauge WinTV-HVR3000 TriMode Analog/DVB-S/DVB-T  [0070:1404]
  54 -> Norwood Micro TV Tuner
+ 55 -> Shenzhen Tungsten Ages Tech TE-DTV-250 / Swann OEM  [c180:c980]
diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c
index 83bfcec..ba3ff57 100644
--- a/drivers/media/video/cx88/cx88-cards.c
+++ b/drivers/media/video/cx88/cx88-cards.c
@@ -1251,6 +1251,35 @@
 			.gpio0  = 0x070b,
 		}},
 	},
+       [CX88_BOARD_TE_DTV_250_OEM_SWANN] = {
+	       .name           = "Shenzhen Tungsten Ages Tech TE-DTV-250 / Swann OEM",
+	       .tuner_type     = TUNER_LG_PAL_NEW_TAPC,
+	       .radio_type     = UNSET,
+	       .tuner_addr     = ADDR_UNSET,
+	       .radio_addr     = ADDR_UNSET,
+	       .input          = {{
+		       .type   = CX88_VMUX_TELEVISION,
+		       .vmux   = 0,
+		       .gpio0  = 0x003fffff,
+		       .gpio1  = 0x00e00000,
+		       .gpio2  = 0x003fffff,
+		       .gpio3  = 0x02000000,
+	       },{
+		       .type   = CX88_VMUX_COMPOSITE1,
+		       .vmux   = 1,
+		       .gpio0  = 0x003fffff,
+		       .gpio1  = 0x00e00000,
+		       .gpio2  = 0x003fffff,
+		       .gpio3  = 0x02000000,
+		},{
+		       .type   = CX88_VMUX_SVIDEO,
+		       .vmux   = 2,
+		       .gpio0  = 0x003fffff,
+		       .gpio1  = 0x00e00000,
+		       .gpio2  = 0x003fffff,
+		       .gpio3  = 0x02000000,
+	       }},
+       },
 };
 const unsigned int cx88_bcount = ARRAY_SIZE(cx88_boards);
 
@@ -1509,6 +1538,10 @@
 		.subdevice = 0xc111, /* AverMedia M150-D */
 		/* This board is known to work with the ASUS PVR416 config */
 		.card      = CX88_BOARD_ASUS_PVR_416,
+	},{
+		.subvendor = 0xc180,
+		.subdevice = 0xc980,
+		.card      = CX88_BOARD_TE_DTV_250_OEM_SWANN,
 	},
 };
 const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids);
diff --git a/drivers/media/video/cx88/cx88.h b/drivers/media/video/cx88/cx88.h
index 0405d6d..1c87c2e 100644
--- a/drivers/media/video/cx88/cx88.h
+++ b/drivers/media/video/cx88/cx88.h
@@ -199,6 +199,7 @@
 #define CX88_BOARD_GENIATECH_DVBS          52
 #define CX88_BOARD_HAUPPAUGE_HVR3000       53
 #define CX88_BOARD_NORWOOD_MICRO           54
+#define CX88_BOARD_TE_DTV_250_OEM_SWANN    55
 
 enum cx88_itype {
 	CX88_VMUX_COMPOSITE1 = 1,