diff options
author | Steven Toth <stoth@hauppauge.com> | 2008-04-22 13:45:34 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-04-24 13:07:46 -0400 |
commit | 1117d6ba1313b8821b10403de114c38764008c45 (patch) | |
tree | 3c9cff4d6128a21b5d4256d3e5d5bac156c3cd2d | |
parent | a58858556deb03ea4a464f84fe888692867ce377 (diff) |
V4L/DVB (7287): cx88: add analog support for DVICO FusionHDTV7 Gold
Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r-- | Documentation/video4linux/CARDLIST.cx88 | 1 | ||||
-rw-r--r-- | drivers/media/video/cx88/cx88-cards.c | 40 | ||||
-rw-r--r-- | drivers/media/video/cx88/cx88.h | 1 |
3 files changed, 42 insertions, 0 deletions
diff --git a/Documentation/video4linux/CARDLIST.cx88 b/Documentation/video4linux/CARDLIST.cx88 index 423da1543815..b5f2134f1664 100644 --- a/Documentation/video4linux/CARDLIST.cx88 +++ b/Documentation/video4linux/CARDLIST.cx88 | |||
@@ -63,3 +63,4 @@ | |||
63 | 62 -> PowerColor Real Angel 330 [14f1:ea3d] | 63 | 62 -> PowerColor Real Angel 330 [14f1:ea3d] |
64 | 63 -> Geniatech X8000-MT DVBT [14f1:8852] | 64 | 63 -> Geniatech X8000-MT DVBT [14f1:8852] |
65 | 64 -> DViCO FusionHDTV DVB-T PRO [18ac:db30] | 65 | 64 -> DViCO FusionHDTV DVB-T PRO [18ac:db30] |
66 | 65 -> DVICO FusionHDTV7 Gold [18ac:d610] | ||
diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c index bf58f350e269..8e29e48a86f3 100644 --- a/drivers/media/video/cx88/cx88-cards.c +++ b/drivers/media/video/cx88/cx88-cards.c | |||
@@ -1571,6 +1571,26 @@ static const struct cx88_board cx88_boards[] = { | |||
1571 | } }, | 1571 | } }, |
1572 | .mpeg = CX88_MPEG_DVB, | 1572 | .mpeg = CX88_MPEG_DVB, |
1573 | }, | 1573 | }, |
1574 | [CX88_BOARD_DVICO_FUSIONHDTV_7_GOLD] = { | ||
1575 | .name = "DVICO FusionHDTV7 Gold", | ||
1576 | .tuner_type = TUNER_XC5000, | ||
1577 | .radio_type = UNSET, | ||
1578 | .tuner_addr = ADDR_UNSET, | ||
1579 | .radio_addr = ADDR_UNSET, | ||
1580 | .input = {{ | ||
1581 | .type = CX88_VMUX_TELEVISION, | ||
1582 | .vmux = 0, | ||
1583 | .gpio0 = 0x37df, | ||
1584 | },{ | ||
1585 | .type = CX88_VMUX_COMPOSITE1, | ||
1586 | .vmux = 1, | ||
1587 | .gpio0 = 0x37df, | ||
1588 | },{ | ||
1589 | .type = CX88_VMUX_SVIDEO, | ||
1590 | .vmux = 2, | ||
1591 | .gpio0 = 0x37df, | ||
1592 | }}, | ||
1593 | }, | ||
1574 | }; | 1594 | }; |
1575 | 1595 | ||
1576 | /* ------------------------------------------------------------------ */ | 1596 | /* ------------------------------------------------------------------ */ |
@@ -1908,6 +1928,10 @@ static const struct cx88_subid cx88_subids[] = { | |||
1908 | .subvendor = 0x14f1, | 1928 | .subvendor = 0x14f1, |
1909 | .subdevice = 0x8852, | 1929 | .subdevice = 0x8852, |
1910 | .card = CX88_BOARD_GENIATECH_X8000_MT, | 1930 | .card = CX88_BOARD_GENIATECH_X8000_MT, |
1931 | },{ | ||
1932 | .subvendor = 0x18ac, | ||
1933 | .subdevice = 0xd610, | ||
1934 | .card = CX88_BOARD_DVICO_FUSIONHDTV_7_GOLD, | ||
1911 | } | 1935 | } |
1912 | }; | 1936 | }; |
1913 | 1937 | ||
@@ -2189,6 +2213,18 @@ static int cx88_xc5000_tuner_callback(void *priv, int command, int arg) | |||
2189 | return -EINVAL; | 2213 | return -EINVAL; |
2190 | } | 2214 | } |
2191 | break; | 2215 | break; |
2216 | case CX88_BOARD_DVICO_FUSIONHDTV_7_GOLD: | ||
2217 | if (command == 0) { /* This is the reset command from xc5000 */ | ||
2218 | cx_clear(MO_GP0_IO, 0x00000010); | ||
2219 | msleep(10); | ||
2220 | cx_set(MO_GP0_IO, 0x00000010); | ||
2221 | return 0; | ||
2222 | } else { | ||
2223 | printk(KERN_ERR | ||
2224 | "xc5000: unknown tuner callback command.\n"); | ||
2225 | return -EINVAL; | ||
2226 | } | ||
2227 | break; | ||
2192 | } | 2228 | } |
2193 | return 0; /* Should never be here */ | 2229 | return 0; /* Should never be here */ |
2194 | } | 2230 | } |
@@ -2255,6 +2291,10 @@ static void cx88_card_setup_pre_i2c(struct cx88_core *core) | |||
2255 | cx_set(MO_GP0_IO, 0x00000080); /* 702 out of reset */ | 2291 | cx_set(MO_GP0_IO, 0x00000080); /* 702 out of reset */ |
2256 | udelay(1000); | 2292 | udelay(1000); |
2257 | break; | 2293 | break; |
2294 | case CX88_BOARD_DVICO_FUSIONHDTV_7_GOLD: | ||
2295 | /* Enable the xc5000 tuner */ | ||
2296 | cx_set(MO_GP0_IO, 0x00001010); | ||
2297 | break; | ||
2258 | } | 2298 | } |
2259 | } | 2299 | } |
2260 | 2300 | ||
diff --git a/drivers/media/video/cx88/cx88.h b/drivers/media/video/cx88/cx88.h index 9df3f198a4df..85a95a0a94d9 100644 --- a/drivers/media/video/cx88/cx88.h +++ b/drivers/media/video/cx88/cx88.h | |||
@@ -217,6 +217,7 @@ extern struct sram_channel cx88_sram_channels[]; | |||
217 | #define CX88_BOARD_POWERCOLOR_REAL_ANGEL 62 | 217 | #define CX88_BOARD_POWERCOLOR_REAL_ANGEL 62 |
218 | #define CX88_BOARD_GENIATECH_X8000_MT 63 | 218 | #define CX88_BOARD_GENIATECH_X8000_MT 63 |
219 | #define CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PRO 64 | 219 | #define CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PRO 64 |
220 | #define CX88_BOARD_DVICO_FUSIONHDTV_7_GOLD 65 | ||
220 | 221 | ||
221 | enum cx88_itype { | 222 | enum cx88_itype { |
222 | CX88_VMUX_COMPOSITE1 = 1, | 223 | CX88_VMUX_COMPOSITE1 = 1, |