summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/cx88
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@linuxtv.org>2008-02-25 20:45:22 -0500
committerMichael Krufky <mkrufky@linuxtv.org>2008-02-25 20:45:22 -0500
commit59a05ecf2d6ff7eecb52fd181fbc8e09de9c3bfd (patch)
tree4708df2ebdedd217b794c7575ed2b4458f12dec9 /linux/drivers/media/video/cx88
parente62b2d9c5b8121e5b6325b2337cb60fd64bfba9c (diff)
downloadmediapointer-dvb-s2-59a05ecf2d6ff7eecb52fd181fbc8e09de9c3bfd.tar.gz
mediapointer-dvb-s2-59a05ecf2d6ff7eecb52fd181fbc8e09de9c3bfd.tar.bz2
cx88: add analog support for DVICO FusionHDTV7 Gold
From: Steven Toth <stoth@hauppauge.com> Signed-off-by: Steven Toth <stoth@hauppauge.com> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Diffstat (limited to 'linux/drivers/media/video/cx88')
-rw-r--r--linux/drivers/media/video/cx88/cx88-cards.c40
-rw-r--r--linux/drivers/media/video/cx88/cx88.h1
2 files changed, 41 insertions, 0 deletions
diff --git a/linux/drivers/media/video/cx88/cx88-cards.c b/linux/drivers/media/video/cx88/cx88-cards.c
index 5fe3210cd..53d996090 100644
--- a/linux/drivers/media/video/cx88/cx88-cards.c
+++ b/linux/drivers/media/video/cx88/cx88-cards.c
@@ -1621,6 +1621,26 @@ static const struct cx88_board cx88_boards[] = {
} },
.mpeg = CX88_MPEG_DVB,
},
+ [CX88_BOARD_DVICO_FUSIONHDTV_7_GOLD] = {
+ .name = "DVICO FusionHDTV7 Gold",
+ .tuner_type = TUNER_XC5000,
+ .radio_type = UNSET,
+ .tuner_addr = ADDR_UNSET,
+ .radio_addr = ADDR_UNSET,
+ .input = {{
+ .type = CX88_VMUX_TELEVISION,
+ .vmux = 0,
+ .gpio0 = 0x37df,
+ },{
+ .type = CX88_VMUX_COMPOSITE1,
+ .vmux = 1,
+ .gpio0 = 0x37df,
+ },{
+ .type = CX88_VMUX_SVIDEO,
+ .vmux = 2,
+ .gpio0 = 0x37df,
+ }},
+ },
};
/* ------------------------------------------------------------------ */
@@ -1958,6 +1978,10 @@ static const struct cx88_subid cx88_subids[] = {
.subvendor = 0x14f1,
.subdevice = 0x8852,
.card = CX88_BOARD_GENIATECH_X8000_MT,
+ },{
+ .subvendor = 0x18ac,
+ .subdevice = 0xd610,
+ .card = CX88_BOARD_DVICO_FUSIONHDTV_7_GOLD,
}
};
@@ -2239,6 +2263,18 @@ static int cx88_xc5000_tuner_callback(void *priv, int command, int arg)
return -EINVAL;
}
break;
+ case CX88_BOARD_DVICO_FUSIONHDTV_7_GOLD:
+ if (command == 0) { /* This is the reset command from xc5000 */
+ cx_clear(MO_GP0_IO, 0x00000010);
+ msleep(10);
+ cx_set(MO_GP0_IO, 0x00000010);
+ return 0;
+ } else {
+ printk(KERN_ERR
+ "xc5000: unknown tuner callback command.\n");
+ return -EINVAL;
+ }
+ break;
}
return 0; /* Should never be here */
}
@@ -2305,6 +2341,10 @@ static void cx88_card_setup_pre_i2c(struct cx88_core *core)
cx_set(MO_GP0_IO, 0x00000080); /* 702 out of reset */
udelay(1000);
break;
+ case CX88_BOARD_DVICO_FUSIONHDTV_7_GOLD:
+ /* Enable the xc5000 tuner */
+ cx_set(MO_GP0_IO, 0x00001010);
+ break;
}
}
diff --git a/linux/drivers/media/video/cx88/cx88.h b/linux/drivers/media/video/cx88/cx88.h
index 9bb000d65..892dfbb39 100644
--- a/linux/drivers/media/video/cx88/cx88.h
+++ b/linux/drivers/media/video/cx88/cx88.h
@@ -220,6 +220,7 @@ extern struct sram_channel cx88_sram_channels[];
#define CX88_BOARD_POWERCOLOR_REAL_ANGEL 62
#define CX88_BOARD_GENIATECH_X8000_MT 63
#define CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PRO 64
+#define CX88_BOARD_DVICO_FUSIONHDTV_7_GOLD 65
enum cx88_itype {
CX88_VMUX_COMPOSITE1 = 1,