aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/bt8xx/bttv-cards.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/bt8xx/bttv-cards.c')
-rw-r--r--drivers/media/video/bt8xx/bttv-cards.c55
1 files changed, 53 insertions, 2 deletions
diff --git a/drivers/media/video/bt8xx/bttv-cards.c b/drivers/media/video/bt8xx/bttv-cards.c
index 7374c02dd183..f20a01cfc73e 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};
@@ -576,6 +579,8 @@ struct tvcard bttv_tvcards[] = {
576 .needs_tvaudio = 1, 579 .needs_tvaudio = 1,
577 .pll = PLL_28, 580 .pll = PLL_28,
578 .tuner_type = UNSET, 581 .tuner_type = UNSET,
582 .tuner_addr = ADDR_UNSET,
583 .radio_addr = ADDR_UNSET,
579 }, 584 },
580 [BTTV_BOARD_WINVIEW_601] = { 585 [BTTV_BOARD_WINVIEW_601] = {
581 .name = "Leadtek WinView 601", 586 .name = "Leadtek WinView 601",
@@ -2322,7 +2327,7 @@ struct tvcard bttv_tvcards[] = {
2322 .tuner = 0, 2327 .tuner = 0,
2323 .svhs = 2, 2328 .svhs = 2,
2324 .muxsel = { 2, 3, 1, 0 }, 2329 .muxsel = { 2, 3, 1, 0 },
2325 .tuner_type = TUNER_PHILIPS_ATSC, 2330 .tuner_type = TUNER_PHILIPS_FCV1236D,
2326 .tuner_addr = ADDR_UNSET, 2331 .tuner_addr = ADDR_UNSET,
2327 .radio_addr = ADDR_UNSET, 2332 .radio_addr = ADDR_UNSET,
2328 .has_dvb = 1, 2333 .has_dvb = 1,
@@ -2961,7 +2966,7 @@ struct tvcard bttv_tvcards[] = {
2961 [BTTV_BOARD_DVICO_FUSIONHDTV_2] = { 2966 [BTTV_BOARD_DVICO_FUSIONHDTV_2] = {
2962 .name = "DViCO FusionHDTV 2", 2967 .name = "DViCO FusionHDTV 2",
2963 .tuner = 0, 2968 .tuner = 0,
2964 .tuner_type = TUNER_PHILIPS_ATSC, /* FCV1236D */ 2969 .tuner_type = TUNER_PHILIPS_FCV1236D,
2965 .tuner_addr = ADDR_UNSET, 2970 .tuner_addr = ADDR_UNSET,
2966 .radio_addr = ADDR_UNSET, 2971 .radio_addr = ADDR_UNSET,
2967 .video_inputs = 3, 2972 .video_inputs = 3,
@@ -2992,6 +2997,45 @@ struct tvcard bttv_tvcards[] = {
2992 .tuner_addr = ADDR_UNSET, 2997 .tuner_addr = ADDR_UNSET,
2993 .radio_addr = ADDR_UNSET, 2998 .radio_addr = ADDR_UNSET,
2994 }, 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 },
3018 [BTTV_BOARD_KOZUMI_KTV_01C] = {
3019 /* Mauro Lacy <mauro@lacy.com.ar>
3020 * Based on MagicTV and Conceptronic CONTVFMi */
3021
3022 .name = "Kozumi KTV-01C",
3023 .video_inputs = 3,
3024 .audio_inputs = 1,
3025 .tuner = 0,
3026 .svhs = 2,
3027 .gpiomask = 0x008007,
3028 .muxsel = { 2, 3, 1, 1 },
3029 .gpiomux = { 0, 1, 2, 2 }, /* CONTVFMi */
3030 .gpiomute = 3, /* CONTVFMi */
3031 .needs_tvaudio = 0,
3032 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, /* TCL MK3 */
3033 .tuner_addr = ADDR_UNSET,
3034 .radio_addr = ADDR_UNSET,
3035 .pll = PLL_28,
3036 .has_radio = 1,
3037 .has_remote = 1,
3038 },
2995}; 3039};
2996 3040
2997static const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards); 3041static const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards);
@@ -3331,6 +3375,13 @@ static void sigmaSLC_muxsel(struct bttv *btv, unsigned int input)
3331 gpio_bits( 3<<9, inmux<<9 ); 3375 gpio_bits( 3<<9, inmux<<9 );
3332} 3376}
3333 3377
3378static void geovision_muxsel(struct bttv *btv, unsigned int input)
3379{
3380 unsigned int inmux = input % 16;
3381 gpio_inout(0xf, 0xf);
3382 gpio_bits(0xf, inmux);
3383}
3384
3334/* ----------------------------------------------------------------------- */ 3385/* ----------------------------------------------------------------------- */
3335 3386
3336static void bttv_reset_audio(struct bttv *btv) 3387static void bttv_reset_audio(struct bttv *btv)