aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/bt8xx
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/bt8xx')
-rw-r--r--drivers/media/video/bt8xx/bttv-cards.c28
-rw-r--r--drivers/media/video/bt8xx/bttv.h1
2 files changed, 29 insertions, 0 deletions
diff --git a/drivers/media/video/bt8xx/bttv-cards.c b/drivers/media/video/bt8xx/bttv-cards.c
index b963bde97412..417dd552dba9 100644
--- a/drivers/media/video/bt8xx/bttv-cards.c
+++ b/drivers/media/video/bt8xx/bttv-cards.c
@@ -71,6 +71,8 @@ static void kodicom4400r_init(struct bttv *btv);
71static void sigmaSLC_muxsel(struct bttv *btv, unsigned int input); 71static void sigmaSLC_muxsel(struct bttv *btv, unsigned int input);
72static void sigmaSQ_muxsel(struct bttv *btv, unsigned int input); 72static void sigmaSQ_muxsel(struct bttv *btv, unsigned int input);
73 73
74static void geovision_muxsel(struct bttv *btv, unsigned int input);
75
74static int terratec_active_radio_upgrade(struct bttv *btv); 76static int terratec_active_radio_upgrade(struct bttv *btv);
75static int tea5757_read(struct bttv *btv); 77static int tea5757_read(struct bttv *btv);
76static int tea5757_write(struct bttv *btv, int value); 78static int tea5757_write(struct bttv *btv, int value);
@@ -301,6 +303,7 @@ static struct CARD {
301 { 0xd50018ac, BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE, "DViCO FusionHDTV 5 Lite" }, 303 { 0xd50018ac, BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE, "DViCO FusionHDTV 5 Lite" },
302 { 0x00261822, BTTV_BOARD_TWINHAN_DST, "DNTV Live! Mini "}, 304 { 0x00261822, BTTV_BOARD_TWINHAN_DST, "DNTV Live! Mini "},
303 { 0xd200dbc0, BTTV_BOARD_DVICO_FUSIONHDTV_2, "DViCO FusionHDTV 2" }, 305 { 0xd200dbc0, BTTV_BOARD_DVICO_FUSIONHDTV_2, "DViCO FusionHDTV 2" },
306 { 0x763c008a, BTTV_BOARD_GEOVISION_GV600, "GeoVision GV-600" },
304 307
305 { 0, -1, NULL } 308 { 0, -1, NULL }
306}; 309};
@@ -2994,6 +2997,24 @@ struct tvcard bttv_tvcards[] = {
2994 .tuner_addr = ADDR_UNSET, 2997 .tuner_addr = ADDR_UNSET,
2995 .radio_addr = ADDR_UNSET, 2998 .radio_addr = ADDR_UNSET,
2996 }, 2999 },
3000 [BTTV_BOARD_GEOVISION_GV600] = {
3001 /* emhn@usb.ve */
3002 .name = "Geovision GV-600",
3003 .video_inputs = 16,
3004 .audio_inputs = 0,
3005 .tuner = UNSET,
3006 .svhs = UNSET,
3007 .gpiomask = 0x0,
3008 .muxsel = { 2, 2, 2, 2, 2, 2, 2, 2,
3009 2, 2, 2, 2, 2, 2, 2, 2 },
3010 .muxsel_hook = geovision_muxsel,
3011 .gpiomux = { 0 },
3012 .no_msp34xx = 1,
3013 .pll = PLL_28,
3014 .tuner_type = UNSET,
3015 .tuner_addr = ADDR_UNSET,
3016 .radio_addr = ADDR_UNSET,
3017 },
2997}; 3018};
2998 3019
2999static const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards); 3020static const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards);
@@ -3333,6 +3354,13 @@ static void sigmaSLC_muxsel(struct bttv *btv, unsigned int input)
3333 gpio_bits( 3<<9, inmux<<9 ); 3354 gpio_bits( 3<<9, inmux<<9 );
3334} 3355}
3335 3356
3357static void geovision_muxsel(struct bttv *btv, unsigned int input)
3358{
3359 unsigned int inmux = input % 16;
3360 gpio_inout(0xf, 0xf);
3361 gpio_bits(0xf, inmux);
3362}
3363
3336/* ----------------------------------------------------------------------- */ 3364/* ----------------------------------------------------------------------- */
3337 3365
3338static void bttv_reset_audio(struct bttv *btv) 3366static void bttv_reset_audio(struct bttv *btv)
diff --git a/drivers/media/video/bt8xx/bttv.h b/drivers/media/video/bt8xx/bttv.h
index bf4c339a520c..ed0cd3b1a01e 100644
--- a/drivers/media/video/bt8xx/bttv.h
+++ b/drivers/media/video/bt8xx/bttv.h
@@ -173,6 +173,7 @@
173#define BTTV_BOARD_VOODOOTV_200 0x93 173#define BTTV_BOARD_VOODOOTV_200 0x93
174#define BTTV_BOARD_DVICO_FUSIONHDTV_2 0x94 174#define BTTV_BOARD_DVICO_FUSIONHDTV_2 0x94
175#define BTTV_BOARD_TYPHOON_TVTUNERPCI 0x95 175#define BTTV_BOARD_TYPHOON_TVTUNERPCI 0x95
176#define BTTV_BOARD_GEOVISION_GV600 0x96
176 177
177 178
178/* more card-specific defines */ 179/* more card-specific defines */