summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video
diff options
context:
space:
mode:
authorGerd Knorr <devnull@localhost>2004-04-23 08:15:08 +0000
committerGerd Knorr <devnull@localhost>2004-04-23 08:15:08 +0000
commit80ea173ccf63ba5f9e8704fc99240c8a3349d095 (patch)
treecf5a2af55ff53bc2ee0faf55000b1e9400089c2e /linux/drivers/media/video
parent6c0055a30c097200645b472e903363de2f9c72ff (diff)
downloadmediapointer-dvb-s2-80ea173ccf63ba5f9e8704fc99240c8a3349d095.tar.gz
mediapointer-dvb-s2-80ea173ccf63ba5f9e8704fc99240c8a3349d095.tar.bz2
- bttv: support for the Picolo Tetra by Eric DEBIEF
Diffstat (limited to 'linux/drivers/media/video')
-rw-r--r--linux/drivers/media/video/bttv-cards.c46
-rw-r--r--linux/drivers/media/video/bttv.h1
2 files changed, 47 insertions, 0 deletions
diff --git a/linux/drivers/media/video/bttv-cards.c b/linux/drivers/media/video/bttv-cards.c
index 9fd9f89ea..1f7eaec7d 100644
--- a/linux/drivers/media/video/bttv-cards.c
+++ b/linux/drivers/media/video/bttv-cards.c
@@ -71,6 +71,9 @@ static void gvc1100_muxsel(struct bttv *btv, unsigned int input);
static void PXC200_muxsel(struct bttv *btv, unsigned int input);
+static void picolo_tetra_muxsel(struct bttv *btv, unsigned int input);
+static void picolo_tetra_init(struct bttv *btv);
+
static int terratec_active_radio_upgrade(struct bttv *btv);
static int tea5757_read(struct bttv *btv);
static int tea5757_write(struct bttv *btv, int value);
@@ -288,6 +291,10 @@ static struct CARD {
{ 0x002611bd, BTTV_TWINHAN_DST, "Pinnacle PCTV SAT CI" },
{ 0x00011822, BTTV_TWINHAN_DST, "Twinhan VisionPlus DVB-T" },
{ 0xfc00270f, BTTV_TWINHAN_DST, "ChainTech digitop DST-1000 DVB-S" },
+ { 0x01051805, BTTV_PICOLO_TETRA_CHIP, "Picolo Tetra Chip #1" },
+ { 0x01061805, BTTV_PICOLO_TETRA_CHIP, "Picolo Tetra Chip #2" },
+ { 0x01071805, BTTV_PICOLO_TETRA_CHIP, "Picolo Tetra Chip #3" },
+ { 0x01081805, BTTV_PICOLO_TETRA_CHIP, "Picolo Tetra Chip #4" },
{ 0, -1, NULL }
};
@@ -2012,6 +2019,27 @@ struct tvcard bttv_tvcards[] = {
.tuner_type = TUNER_PHILIPS_PAL,
.has_remote = 1,
.has_radio = 1,
+},{
+ /*-------- card 0x79 (NEW !) ------------------*/
+ /*Eric DEBIEF <debief@telemsa.com>*/
+ /*EURESYS Picolo Tetra : 4 Conexant Fusion 878A, no audio, video input set with analog multiplexers GPIO controled*/
+ /* adds picolo_tetra_muxsel(), picolo_tetra_init(), the folowing declaration strucure, and #define BTTV_PICOLO_TETRA_CHIP*/
+ /*0x79 in bttv.h*/
+ .name = "Euresys Picolo Tetra",
+ .video_inputs = 4,
+ .audio_inputs = 0,
+ .tuner = -1,
+ .svhs = -1,
+ .gpiomask = 0,
+ .gpiomask2 = 0x3C<<16,/*Set the GPIO[18]->GPIO[21] as output pin.==> drive the video inputs through analog multiplexers*/
+ .no_msp34xx = 1,
+ .no_tda9875 = 1,
+ .no_tda7432 = 1,
+ .muxsel = {2,2,2,2},/*878A input is always MUX0, see above.*/
+ .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */
+ .pll = PLL_28,
+ .needs_tvaudio = 0,
+ .muxsel_hook = picolo_tetra_muxsel,/*Required as it doesn't follow the classic input selection policy*/
}};
const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards);
@@ -2432,6 +2460,9 @@ void __devinit bttv_init_card2(struct bttv *btv)
case BTTV_PXC200:
init_PXC200(btv);
break;
+ case BTTV_PICOLO_TETRA_CHIP:
+ picolo_tetra_init(btv);
+ break;
case BTTV_VHX:
btv->has_radio = 1;
btv->has_matchbox = 1;
@@ -3790,6 +3821,21 @@ static void xguard_muxsel(struct bttv *btv, unsigned int input)
};
gpio_write(masks[input%16]);
}
+static void picolo_tetra_init(struct bttv *btv)
+{
+ /*This is the video input redirection fonctionality : I DID NOT USED IT. */
+ btwrite (0x08<<16,BT848_GPIO_DATA);/*GPIO[19] [==> 4053 B+C] set to 1 */
+ btwrite (0x04<<16,BT848_GPIO_DATA);/*GPIO[18] [==> 4053 A] set to 1*/
+}
+static void picolo_tetra_muxsel (struct bttv* btv, unsigned int input)
+{
+
+ dprintk (KERN_DEBUG "bttv%d : picolo_tetra_muxsel => input = %d\n",btv->c.nr,input);
+ /*Just set the right path in the analog multiplexers : channel 1 -> 4 ==> Analog Mux ==> MUX0*/
+ /*GPIO[20]&GPIO[21] used to choose the right input*/
+ btwrite (input<<20,BT848_GPIO_DATA);
+
+}
/*
* ivc120_muxsel [Added by Alan Garfield <alan@fromorbit.com>]
diff --git a/linux/drivers/media/video/bttv.h b/linux/drivers/media/video/bttv.h
index 864f9fcf1..ea108693c 100644
--- a/linux/drivers/media/video/bttv.h
+++ b/linux/drivers/media/video/bttv.h
@@ -124,6 +124,7 @@
#define BTTV_SIMUS_GVC1100 0x74
#define BTTV_NGSTV_PLUS 0x75
#define BTTV_LMLBT4 0x76
+#define BTTV_PICOLO_TETRA_CHIP 0x79
/* i2c address list */
#define I2C_TSA5522 0xc2