diff options
author | Mauro Carvalho Chehab <mchehab@brturbo.com.br> | 2005-11-09 00:36:51 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-09 10:56:12 -0500 |
commit | 2bfa1ac6ce854a7f895d5c9d6c273ef770fad9ae (patch) | |
tree | 5739417b6b320669ba8d35b3ce04f085e44479d7 /drivers | |
parent | 70b6934a6c6b5f242a42978f3c5e4f45d476dddb (diff) |
[PATCH] v4l: 692: bttv coding style and card ids
- BTTV Boards now use the same CodingStyle as cx88 and saa7134.
- Included missing card numbers
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/media/video/bttv-cards.c | 4433 |
1 files changed, 2296 insertions, 2137 deletions
diff --git a/drivers/media/video/bttv-cards.c b/drivers/media/video/bttv-cards.c index c6010692746d..12f38e8cd0a4 100644 --- a/drivers/media/video/bttv-cards.c +++ b/drivers/media/video/bttv-cards.c | |||
@@ -309,2143 +309,2303 @@ static struct CARD { | |||
309 | /* array with description for bt848 / bt878 tv/grabber cards */ | 309 | /* array with description for bt848 / bt878 tv/grabber cards */ |
310 | 310 | ||
311 | struct tvcard bttv_tvcards[] = { | 311 | struct tvcard bttv_tvcards[] = { |
312 | { | 312 | [BTTV_UNKNOWN] = { |
313 | /* ---- card 0x00 ---------------------------------- */ | 313 | /* ---- card 0x00 ---------------------------------- */ |
314 | .name = " *** UNKNOWN/GENERIC *** ", | 314 | .name = " *** UNKNOWN/GENERIC *** ", |
315 | .video_inputs = 4, | 315 | .video_inputs = 4, |
316 | .audio_inputs = 1, | 316 | .audio_inputs = 1, |
317 | .tuner = 0, | 317 | .tuner = 0, |
318 | .svhs = 2, | 318 | .svhs = 2, |
319 | .muxsel = { 2, 3, 1, 0}, | 319 | .muxsel = { 2, 3, 1, 0}, |
320 | .tuner_type = -1, | 320 | .tuner_type = -1, |
321 | .tuner_addr = ADDR_UNSET, | 321 | .tuner_addr = ADDR_UNSET, |
322 | },{ | 322 | }, |
323 | .name = "MIRO PCTV", | 323 | [BTTV_MIRO] = { |
324 | .video_inputs = 4, | 324 | .name = "MIRO PCTV", |
325 | .audio_inputs = 1, | 325 | .video_inputs = 4, |
326 | .tuner = 0, | 326 | .audio_inputs = 1, |
327 | .svhs = 2, | 327 | .tuner = 0, |
328 | .gpiomask = 15, | 328 | .svhs = 2, |
329 | .muxsel = { 2, 3, 1, 1}, | 329 | .gpiomask = 15, |
330 | .audiomux = { 2, 0, 0, 0, 10}, | 330 | .muxsel = { 2, 3, 1, 1}, |
331 | .needs_tvaudio = 1, | 331 | .audiomux = { 2, 0, 0, 0, 10}, |
332 | .tuner_type = -1, | 332 | .needs_tvaudio = 1, |
333 | .tuner_addr = ADDR_UNSET, | 333 | .tuner_type = -1, |
334 | },{ | 334 | .tuner_addr = ADDR_UNSET, |
335 | .name = "Hauppauge (bt848)", | 335 | }, |
336 | .video_inputs = 4, | 336 | [BTTV_HAUPPAUGE] = { |
337 | .audio_inputs = 1, | 337 | .name = "Hauppauge (bt848)", |
338 | .tuner = 0, | 338 | .video_inputs = 4, |
339 | .svhs = 2, | 339 | .audio_inputs = 1, |
340 | .gpiomask = 7, | 340 | .tuner = 0, |
341 | .muxsel = { 2, 3, 1, 1}, | 341 | .svhs = 2, |
342 | .audiomux = { 0, 1, 2, 3, 4}, | 342 | .gpiomask = 7, |
343 | .needs_tvaudio = 1, | 343 | .muxsel = { 2, 3, 1, 1}, |
344 | .tuner_type = -1, | 344 | .audiomux = { 0, 1, 2, 3, 4}, |
345 | .tuner_addr = ADDR_UNSET, | 345 | .needs_tvaudio = 1, |
346 | },{ | 346 | .tuner_type = -1, |
347 | .name = "STB, Gateway P/N 6000699 (bt848)", | 347 | .tuner_addr = ADDR_UNSET, |
348 | .video_inputs = 3, | 348 | }, |
349 | .audio_inputs = 1, | 349 | [BTTV_STB] = { |
350 | .tuner = 0, | 350 | .name = "STB, Gateway P/N 6000699 (bt848)", |
351 | .svhs = 2, | 351 | .video_inputs = 3, |
352 | .gpiomask = 7, | 352 | .audio_inputs = 1, |
353 | .muxsel = { 2, 3, 1, 1}, | 353 | .tuner = 0, |
354 | .audiomux = { 4, 0, 2, 3, 1}, | 354 | .svhs = 2, |
355 | .no_msp34xx = 1, | 355 | .gpiomask = 7, |
356 | .needs_tvaudio = 1, | 356 | .muxsel = { 2, 3, 1, 1}, |
357 | .tuner_type = TUNER_PHILIPS_NTSC, | 357 | .audiomux = { 4, 0, 2, 3, 1}, |
358 | .tuner_addr = ADDR_UNSET, | 358 | .no_msp34xx = 1, |
359 | .pll = PLL_28, | 359 | .needs_tvaudio = 1, |
360 | .has_radio = 1, | 360 | .tuner_type = TUNER_PHILIPS_NTSC, |
361 | },{ | 361 | .tuner_addr = ADDR_UNSET, |
362 | 362 | .pll = PLL_28, | |
363 | /* ---- card 0x04 ---------------------------------- */ | 363 | .has_radio = 1, |
364 | .name = "Intel Create and Share PCI/ Smart Video Recorder III", | 364 | }, |
365 | .video_inputs = 4, | 365 | |
366 | .audio_inputs = 0, | 366 | /* ---- card 0x04 ---------------------------------- */ |
367 | .tuner = -1, | 367 | [BTTV_INTEL] = { |
368 | .svhs = 2, | 368 | .name = "Intel Create and Share PCI/ Smart Video Recorder III", |
369 | .gpiomask = 0, | 369 | .video_inputs = 4, |
370 | .muxsel = { 2, 3, 1, 1}, | 370 | .audio_inputs = 0, |
371 | .audiomux = { 0 }, | 371 | .tuner = -1, |
372 | .needs_tvaudio = 0, | 372 | .svhs = 2, |
373 | .tuner_type = 4, | 373 | .gpiomask = 0, |
374 | .tuner_addr = ADDR_UNSET, | 374 | .muxsel = { 2, 3, 1, 1}, |
375 | },{ | 375 | .audiomux = { 0 }, |
376 | .name = "Diamond DTV2000", | 376 | .needs_tvaudio = 0, |
377 | .video_inputs = 4, | 377 | .tuner_type = 4, |
378 | .audio_inputs = 1, | 378 | .tuner_addr = ADDR_UNSET, |
379 | .tuner = 0, | 379 | }, |
380 | .svhs = 2, | 380 | [BTTV_DIAMOND] = { |
381 | .gpiomask = 3, | 381 | .name = "Diamond DTV2000", |
382 | .muxsel = { 2, 3, 1, 0}, | 382 | .video_inputs = 4, |
383 | .audiomux = { 0, 1, 0, 1, 3}, | 383 | .audio_inputs = 1, |
384 | .needs_tvaudio = 1, | 384 | .tuner = 0, |
385 | .tuner_type = -1, | 385 | .svhs = 2, |
386 | .tuner_addr = ADDR_UNSET, | 386 | .gpiomask = 3, |
387 | },{ | 387 | .muxsel = { 2, 3, 1, 0}, |
388 | .name = "AVerMedia TVPhone", | 388 | .audiomux = { 0, 1, 0, 1, 3}, |
389 | .video_inputs = 3, | 389 | .needs_tvaudio = 1, |
390 | .audio_inputs = 1, | 390 | .tuner_type = -1, |
391 | .tuner = 0, | 391 | .tuner_addr = ADDR_UNSET, |
392 | .svhs = 3, | 392 | }, |
393 | .muxsel = { 2, 3, 1, 1}, | 393 | [BTTV_AVERMEDIA] = { |
394 | .gpiomask = 0x0f, | 394 | .name = "AVerMedia TVPhone", |
395 | .audiomux = { 0x0c, 0x04, 0x08, 0x04, 0}, | 395 | .video_inputs = 3, |
396 | /* 0x04 for some cards ?? */ | 396 | .audio_inputs = 1, |
397 | .needs_tvaudio = 1, | 397 | .tuner = 0, |
398 | .tuner_type = -1, | 398 | .svhs = 3, |
399 | .tuner_addr = ADDR_UNSET, | 399 | .muxsel = { 2, 3, 1, 1}, |
400 | .audio_hook = avermedia_tvphone_audio, | 400 | .gpiomask = 0x0f, |
401 | .has_remote = 1, | 401 | .audiomux = { 0x0c, 0x04, 0x08, 0x04, 0}, |
402 | },{ | 402 | /* 0x04 for some cards ?? */ |
403 | .name = "MATRIX-Vision MV-Delta", | 403 | .needs_tvaudio = 1, |
404 | .video_inputs = 5, | 404 | .tuner_type = -1, |
405 | .audio_inputs = 1, | 405 | .tuner_addr = ADDR_UNSET, |
406 | .tuner = -1, | 406 | .audio_hook = avermedia_tvphone_audio, |
407 | .svhs = 3, | 407 | .has_remote = 1, |
408 | .gpiomask = 0, | 408 | }, |
409 | .muxsel = { 2, 3, 1, 0, 0}, | 409 | [BTTV_MATRIX_VISION] = { |
410 | .audiomux = {0 }, | 410 | .name = "MATRIX-Vision MV-Delta", |
411 | .needs_tvaudio = 1, | 411 | .video_inputs = 5, |
412 | .tuner_type = -1, | 412 | .audio_inputs = 1, |
413 | .tuner_addr = ADDR_UNSET, | 413 | .tuner = -1, |
414 | },{ | 414 | .svhs = 3, |
415 | 415 | .gpiomask = 0, | |
416 | /* ---- card 0x08 ---------------------------------- */ | 416 | .muxsel = { 2, 3, 1, 0, 0}, |
417 | .name = "Lifeview FlyVideo II (Bt848) LR26 / MAXI TV Video PCI2 LR26", | 417 | .audiomux = {0 }, |
418 | .video_inputs = 4, | 418 | .needs_tvaudio = 1, |
419 | .audio_inputs = 1, | 419 | .tuner_type = -1, |
420 | .tuner = 0, | 420 | .tuner_addr = ADDR_UNSET, |
421 | .svhs = 2, | 421 | }, |
422 | .gpiomask = 0xc00, | 422 | |
423 | .muxsel = { 2, 3, 1, 1}, | 423 | /* ---- card 0x08 ---------------------------------- */ |
424 | .audiomux = { 0, 0xc00, 0x800, 0x400, 0xc00, 0}, | 424 | [BTTV_FLYVIDEO] = { |
425 | .needs_tvaudio = 1, | 425 | .name = "Lifeview FlyVideo II (Bt848) LR26 / MAXI TV Video PCI2 LR26", |
426 | .pll = PLL_28, | 426 | .video_inputs = 4, |
427 | .tuner_type = -1, | 427 | .audio_inputs = 1, |
428 | .tuner_addr = ADDR_UNSET, | 428 | .tuner = 0, |
429 | },{ | 429 | .svhs = 2, |
430 | .name = "IMS/IXmicro TurboTV", | 430 | .gpiomask = 0xc00, |
431 | .video_inputs = 3, | 431 | .muxsel = { 2, 3, 1, 1}, |
432 | .audio_inputs = 1, | 432 | .audiomux = { 0, 0xc00, 0x800, 0x400, 0xc00, 0}, |
433 | .tuner = 0, | 433 | .needs_tvaudio = 1, |
434 | .svhs = 2, | 434 | .pll = PLL_28, |
435 | .gpiomask = 3, | 435 | .tuner_type = -1, |
436 | .muxsel = { 2, 3, 1, 1}, | 436 | .tuner_addr = ADDR_UNSET, |
437 | .audiomux = { 1, 1, 2, 3, 0}, | 437 | }, |
438 | .needs_tvaudio = 0, | 438 | [BTTV_TURBOTV] = { |
439 | .pll = PLL_28, | 439 | .name = "IMS/IXmicro TurboTV", |
440 | .tuner_type = TUNER_TEMIC_PAL, | 440 | .video_inputs = 3, |
441 | .tuner_addr = ADDR_UNSET, | 441 | .audio_inputs = 1, |
442 | },{ | 442 | .tuner = 0, |
443 | .name = "Hauppauge (bt878)", | 443 | .svhs = 2, |
444 | .video_inputs = 4, | 444 | .gpiomask = 3, |
445 | .audio_inputs = 1, | 445 | .muxsel = { 2, 3, 1, 1}, |
446 | .tuner = 0, | 446 | .audiomux = { 1, 1, 2, 3, 0}, |
447 | .svhs = 2, | 447 | .needs_tvaudio = 0, |
448 | .gpiomask = 0x0f, /* old: 7 */ | 448 | .pll = PLL_28, |
449 | .muxsel = { 2, 0, 1, 1}, | 449 | .tuner_type = TUNER_TEMIC_PAL, |
450 | .audiomux = { 0, 1, 2, 3, 4}, | 450 | .tuner_addr = ADDR_UNSET, |
451 | .needs_tvaudio = 1, | 451 | }, |
452 | .pll = PLL_28, | 452 | [BTTV_HAUPPAUGE878] = { |
453 | .tuner_type = -1, | 453 | .name = "Hauppauge (bt878)", |
454 | .tuner_addr = ADDR_UNSET, | 454 | .video_inputs = 4, |
455 | },{ | 455 | .audio_inputs = 1, |
456 | .name = "MIRO PCTV pro", | 456 | .tuner = 0, |
457 | .video_inputs = 3, | 457 | .svhs = 2, |
458 | .audio_inputs = 1, | 458 | .gpiomask = 0x0f, /* old: 7 */ |
459 | .tuner = 0, | 459 | .muxsel = { 2, 0, 1, 1}, |
460 | .svhs = 2, | 460 | .audiomux = { 0, 1, 2, 3, 4}, |
461 | .gpiomask = 0x3014f, | 461 | .needs_tvaudio = 1, |
462 | .muxsel = { 2, 3, 1, 1}, | 462 | .pll = PLL_28, |
463 | .audiomux = { 0x20001,0x10001, 0, 0,10}, | 463 | .tuner_type = -1, |
464 | .needs_tvaudio = 1, | 464 | .tuner_addr = ADDR_UNSET, |
465 | .tuner_type = -1, | 465 | }, |
466 | .tuner_addr = ADDR_UNSET, | 466 | [BTTV_MIROPRO] = { |
467 | },{ | 467 | .name = "MIRO PCTV pro", |
468 | 468 | .video_inputs = 3, | |
469 | /* ---- card 0x0c ---------------------------------- */ | 469 | .audio_inputs = 1, |
470 | .name = "ADS Technologies Channel Surfer TV (bt848)", | 470 | .tuner = 0, |
471 | .video_inputs = 3, | 471 | .svhs = 2, |
472 | .audio_inputs = 1, | 472 | .gpiomask = 0x3014f, |
473 | .tuner = 0, | 473 | .muxsel = { 2, 3, 1, 1}, |
474 | .svhs = 2, | 474 | .audiomux = { 0x20001,0x10001, 0, 0,10}, |
475 | .gpiomask = 15, | 475 | .needs_tvaudio = 1, |
476 | .muxsel = { 2, 3, 1, 1}, | 476 | .tuner_type = -1, |
477 | .audiomux = { 13, 14, 11, 7, 0, 0}, | 477 | .tuner_addr = ADDR_UNSET, |
478 | .needs_tvaudio = 1, | 478 | }, |
479 | .tuner_type = -1, | 479 | |
480 | .tuner_addr = ADDR_UNSET, | 480 | /* ---- card 0x0c ---------------------------------- */ |
481 | },{ | 481 | [BTTV_ADSTECH_TV] = { |
482 | .name = "AVerMedia TVCapture 98", | 482 | .name = "ADS Technologies Channel Surfer TV (bt848)", |
483 | .video_inputs = 3, | 483 | .video_inputs = 3, |
484 | .audio_inputs = 4, | 484 | .audio_inputs = 1, |
485 | .tuner = 0, | 485 | .tuner = 0, |
486 | .svhs = 2, | 486 | .svhs = 2, |
487 | .gpiomask = 15, | 487 | .gpiomask = 15, |
488 | .muxsel = { 2, 3, 1, 1}, | 488 | .muxsel = { 2, 3, 1, 1}, |
489 | .audiomux = { 13, 14, 11, 7, 0, 0}, | 489 | .audiomux = { 13, 14, 11, 7, 0, 0}, |
490 | .needs_tvaudio = 1, | 490 | .needs_tvaudio = 1, |
491 | .msp34xx_alt = 1, | 491 | .tuner_type = -1, |
492 | .pll = PLL_28, | 492 | .tuner_addr = ADDR_UNSET, |
493 | .tuner_type = TUNER_PHILIPS_PAL, | 493 | }, |
494 | .tuner_addr = ADDR_UNSET, | 494 | [BTTV_AVERMEDIA98] = { |
495 | .audio_hook = avermedia_tv_stereo_audio, | 495 | .name = "AVerMedia TVCapture 98", |
496 | },{ | 496 | .video_inputs = 3, |
497 | .name = "Aimslab Video Highway Xtreme (VHX)", | 497 | .audio_inputs = 4, |
498 | .video_inputs = 3, | 498 | .tuner = 0, |
499 | .audio_inputs = 1, | 499 | .svhs = 2, |
500 | .tuner = 0, | 500 | .gpiomask = 15, |
501 | .svhs = 2, | 501 | .muxsel = { 2, 3, 1, 1}, |
502 | .gpiomask = 7, | 502 | .audiomux = { 13, 14, 11, 7, 0, 0}, |
503 | .muxsel = { 2, 3, 1, 1}, | 503 | .needs_tvaudio = 1, |
504 | .audiomux = { 0, 2, 1, 3, 4}, /* old: { 0, 1, 2, 3, 4} */ | 504 | .msp34xx_alt = 1, |
505 | .needs_tvaudio = 1, | 505 | .pll = PLL_28, |
506 | .pll = PLL_28, | 506 | .tuner_type = TUNER_PHILIPS_PAL, |
507 | .tuner_type = -1, | 507 | .tuner_addr = ADDR_UNSET, |
508 | .tuner_addr = ADDR_UNSET, | 508 | .audio_hook = avermedia_tv_stereo_audio, |
509 | },{ | 509 | }, |
510 | .name = "Zoltrix TV-Max", | 510 | [BTTV_VHX] = { |
511 | .video_inputs = 3, | 511 | .name = "Aimslab Video Highway Xtreme (VHX)", |
512 | .audio_inputs = 1, | 512 | .video_inputs = 3, |
513 | .tuner = 0, | 513 | .audio_inputs = 1, |
514 | .svhs = 2, | 514 | .tuner = 0, |
515 | .gpiomask = 15, | 515 | .svhs = 2, |
516 | .muxsel = { 2, 3, 1, 1}, | 516 | .gpiomask = 7, |
517 | .audiomux = {0 , 0, 1 , 0, 10}, | 517 | .muxsel = { 2, 3, 1, 1}, |
518 | .needs_tvaudio = 1, | 518 | .audiomux = { 0, 2, 1, 3, 4}, /* old: { 0, 1, 2, 3, 4} */ |
519 | .tuner_type = -1, | 519 | .needs_tvaudio = 1, |
520 | .tuner_addr = ADDR_UNSET, | 520 | .pll = PLL_28, |
521 | },{ | 521 | .tuner_type = -1, |
522 | 522 | .tuner_addr = ADDR_UNSET, | |
523 | /* ---- card 0x10 ---------------------------------- */ | 523 | }, |
524 | .name = "Prolink Pixelview PlayTV (bt878)", | 524 | [BTTV_ZOLTRIX] = { |
525 | .video_inputs = 3, | 525 | .name = "Zoltrix TV-Max", |
526 | .audio_inputs = 1, | 526 | .video_inputs = 3, |
527 | .tuner = 0, | 527 | .audio_inputs = 1, |
528 | .svhs = 2, | 528 | .tuner = 0, |
529 | .gpiomask = 0x01fe00, | 529 | .svhs = 2, |
530 | .muxsel = { 2, 3, 1, 1}, | 530 | .gpiomask = 15, |
531 | /* 2003-10-20 by "Anton A. Arapov" <arapov@mail.ru> */ | 531 | .muxsel = { 2, 3, 1, 1}, |
532 | .audiomux = { 0x001e00, 0, 0x018000, 0x014000, 0x002000, 0 }, | 532 | .audiomux = {0 , 0, 1 , 0, 10}, |
533 | .needs_tvaudio = 1, | 533 | .needs_tvaudio = 1, |
534 | .pll = PLL_28, | 534 | .tuner_type = -1, |
535 | .tuner_type = -1, | 535 | .tuner_addr = ADDR_UNSET, |
536 | },{ | 536 | }, |
537 | .name = "Leadtek WinView 601", | 537 | |
538 | .video_inputs = 3, | 538 | /* ---- card 0x10 ---------------------------------- */ |
539 | .audio_inputs = 1, | 539 | [BTTV_PIXVIEWPLAYTV] = { |
540 | .tuner = 0, | 540 | .name = "Prolink Pixelview PlayTV (bt878)", |
541 | .svhs = 2, | 541 | .video_inputs = 3, |
542 | .gpiomask = 0x8300f8, | 542 | .audio_inputs = 1, |
543 | .muxsel = { 2, 3, 1, 1,0}, | 543 | .tuner = 0, |
544 | .audiomux = { 0x4fa007,0xcfa007,0xcfa007,0xcfa007,0xcfa007,0xcfa007}, | 544 | .svhs = 2, |
545 | .needs_tvaudio = 1, | 545 | .gpiomask = 0x01fe00, |
546 | .tuner_type = -1, | 546 | .muxsel = { 2, 3, 1, 1}, |
547 | .tuner_addr = ADDR_UNSET, | 547 | #if 0 |
548 | .audio_hook = winview_audio, | 548 | /* old */ |
549 | .has_radio = 1, | 549 | .audiomux = { 0x01c000, 0, 0x018000, 0x014000, 0x002000, 0 }, |
550 | },{ | 550 | #else |
551 | .name = "AVEC Intercapture", | 551 | /* 2003-10-20 by "Anton A. Arapov" <arapov@mail.ru> */ |
552 | .video_inputs = 3, | 552 | .audiomux = { 0x001e00, 0, 0x018000, 0x014000, 0x002000, 0 }, |
553 | .audio_inputs = 2, | 553 | #endif |
554 | .tuner = 0, | 554 | .needs_tvaudio = 1, |
555 | .svhs = 2, | 555 | .pll = PLL_28, |
556 | .gpiomask = 0, | 556 | .tuner_type = -1, |
557 | .muxsel = {2, 3, 1, 1}, | 557 | }, |
558 | .audiomux = {1, 0, 0, 0, 0}, | 558 | [BTTV_WINVIEW_601] = { |
559 | .needs_tvaudio = 1, | 559 | .name = "Leadtek WinView 601", |
560 | .tuner_type = -1, | 560 | .video_inputs = 3, |
561 | .tuner_addr = ADDR_UNSET, | 561 | .audio_inputs = 1, |
562 | },{ | 562 | .tuner = 0, |
563 | .name = "Lifeview FlyVideo II EZ /FlyKit LR38 Bt848 (capture only)", | 563 | .svhs = 2, |
564 | .video_inputs = 4, | 564 | .gpiomask = 0x8300f8, |
565 | .audio_inputs = 1, | 565 | .muxsel = { 2, 3, 1, 1,0}, |
566 | .tuner = -1, | 566 | .audiomux = { 0x4fa007,0xcfa007,0xcfa007,0xcfa007,0xcfa007,0xcfa007}, |
567 | .svhs = -1, | 567 | .needs_tvaudio = 1, |
568 | .gpiomask = 0x8dff00, | 568 | .tuner_type = -1, |
569 | .muxsel = { 2, 3, 1, 1}, | 569 | .tuner_addr = ADDR_UNSET, |
570 | .audiomux = { 0 }, | 570 | .audio_hook = winview_audio, |
571 | .no_msp34xx = 1, | 571 | .has_radio = 1, |
572 | .tuner_type = -1, | 572 | }, |
573 | .tuner_addr = ADDR_UNSET, | 573 | [BTTV_AVEC_INTERCAP] = { |
574 | },{ | 574 | .name = "AVEC Intercapture", |
575 | 575 | .video_inputs = 3, | |
576 | /* ---- card 0x14 ---------------------------------- */ | 576 | .audio_inputs = 2, |
577 | .name = "CEI Raffles Card", | 577 | .tuner = 0, |
578 | .video_inputs = 3, | 578 | .svhs = 2, |
579 | .audio_inputs = 3, | 579 | .gpiomask = 0, |
580 | .tuner = 0, | 580 | .muxsel = {2, 3, 1, 1}, |
581 | .svhs = 2, | 581 | .audiomux = {1, 0, 0, 0, 0}, |
582 | .muxsel = {2, 3, 1, 1}, | 582 | .needs_tvaudio = 1, |
583 | .tuner_type = -1, | 583 | .tuner_type = -1, |
584 | .tuner_addr = ADDR_UNSET, | 584 | .tuner_addr = ADDR_UNSET, |
585 | },{ | 585 | }, |
586 | .name = "Lifeview FlyVideo 98/ Lucky Star Image World ConferenceTV LR50", | 586 | [BTTV_LIFE_FLYKIT] = { |
587 | .video_inputs = 4, | 587 | .name = "Lifeview FlyVideo II EZ /FlyKit LR38 Bt848 (capture only)", |
588 | .audio_inputs = 2, /* tuner, line in */ | 588 | .video_inputs = 4, |
589 | .tuner = 0, | 589 | .audio_inputs = 1, |
590 | .svhs = 2, | 590 | .tuner = -1, |
591 | .gpiomask = 0x1800, | 591 | .svhs = -1, |
592 | .muxsel = { 2, 3, 1, 1}, | 592 | .gpiomask = 0x8dff00, |
593 | .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800}, | 593 | .muxsel = { 2, 3, 1, 1}, |
594 | .pll = PLL_28, | 594 | .audiomux = { 0 }, |
595 | .tuner_type = TUNER_PHILIPS_PAL_I, | 595 | .no_msp34xx = 1, |
596 | .tuner_addr = ADDR_UNSET, | 596 | .tuner_type = -1, |
597 | },{ | 597 | .tuner_addr = ADDR_UNSET, |
598 | .name = "Askey CPH050/ Phoebe Tv Master + FM", | 598 | }, |
599 | .video_inputs = 3, | 599 | |
600 | .audio_inputs = 1, | 600 | /* ---- card 0x14 ---------------------------------- */ |
601 | .tuner = 0, | 601 | [BTTV_CEI_RAFFLES] = { |
602 | .svhs = 2, | 602 | .name = "CEI Raffles Card", |
603 | .gpiomask = 0xc00, | 603 | .video_inputs = 3, |
604 | .muxsel = { 2, 3, 1, 1}, | 604 | .audio_inputs = 3, |
605 | .audiomux = {0, 1, 0x800, 0x400, 0xc00, 0}, | 605 | .tuner = 0, |
606 | .needs_tvaudio = 1, | 606 | .svhs = 2, |
607 | .pll = PLL_28, | 607 | .muxsel = {2, 3, 1, 1}, |
608 | .tuner_type = -1, | 608 | .tuner_type = -1, |
609 | .tuner_addr = ADDR_UNSET, | 609 | .tuner_addr = ADDR_UNSET, |
610 | },{ | 610 | }, |
611 | .name = "Modular Technology MM201/MM202/MM205/MM210/MM215 PCTV, bt878", | 611 | [BTTV_CONFERENCETV] = { |
612 | .video_inputs = 3, | 612 | .name = "Lifeview FlyVideo 98/ Lucky Star Image World ConferenceTV LR50", |
613 | .audio_inputs = 1, | 613 | .video_inputs = 4, |
614 | .tuner = 0, | 614 | .audio_inputs = 2, /* tuner, line in */ |
615 | .svhs = -1, | 615 | .tuner = 0, |
616 | .gpiomask = 7, | 616 | .svhs = 2, |
617 | .muxsel = { 2, 3, -1 }, | 617 | .gpiomask = 0x1800, |
618 | .digital_mode = DIGITAL_MODE_CAMERA, | 618 | .muxsel = { 2, 3, 1, 1}, |
619 | .audiomux = { 0, 0, 0, 0, 0 }, | 619 | .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800}, |
620 | .no_msp34xx = 1, | 620 | .pll = PLL_28, |
621 | .pll = PLL_28, | 621 | .tuner_type = TUNER_PHILIPS_PAL_I, |
622 | .tuner_type = TUNER_ALPS_TSBB5_PAL_I, | 622 | .tuner_addr = ADDR_UNSET, |
623 | .tuner_addr = ADDR_UNSET, | 623 | }, |
624 | },{ | 624 | [BTTV_PHOEBE_TVMAS] = { |
625 | 625 | .name = "Askey CPH050/ Phoebe Tv Master + FM", | |
626 | /* ---- card 0x18 ---------------------------------- */ | 626 | .video_inputs = 3, |
627 | .name = "Askey CPH05X/06X (bt878) [many vendors]", | 627 | .audio_inputs = 1, |
628 | .video_inputs = 3, | 628 | .tuner = 0, |
629 | .audio_inputs = 1, | 629 | .svhs = 2, |
630 | .tuner = 0, | 630 | .gpiomask = 0xc00, |
631 | .svhs = 2, | 631 | .muxsel = { 2, 3, 1, 1}, |
632 | .gpiomask = 0xe00, | 632 | .audiomux = {0, 1, 0x800, 0x400, 0xc00, 0}, |
633 | .muxsel = { 2, 3, 1, 1}, | 633 | .needs_tvaudio = 1, |
634 | .audiomux = {0x400, 0x400, 0x400, 0x400, 0xc00}, | 634 | .pll = PLL_28, |
635 | .needs_tvaudio = 1, | 635 | .tuner_type = -1, |
636 | .pll = PLL_28, | 636 | .tuner_addr = ADDR_UNSET, |
637 | .tuner_type = -1, | 637 | }, |
638 | .tuner_addr = ADDR_UNSET, | 638 | [BTTV_MODTEC_205] = { |
639 | .has_remote = 1, | 639 | .name = "Modular Technology MM201/MM202/MM205/MM210/MM215 PCTV, bt878", |
640 | },{ | 640 | .video_inputs = 3, |
641 | .name = "Terratec TerraTV+ Version 1.0 (Bt848)/ Terra TValue Version 1.0/ Vobis TV-Boostar", | 641 | .audio_inputs = 1, |
642 | .video_inputs = 3, | 642 | .tuner = 0, |
643 | .audio_inputs = 1, | 643 | .svhs = -1, |
644 | .tuner = 0, | 644 | .gpiomask = 7, |
645 | .svhs = 2, | 645 | .muxsel = { 2, 3, -1 }, |
646 | .gpiomask = 0x1f0fff, | 646 | .digital_mode = DIGITAL_MODE_CAMERA, |
647 | .muxsel = { 2, 3, 1, 1}, | 647 | .audiomux = { 0, 0, 0, 0, 0 }, |
648 | .audiomux = { 0x20000, 0x30000, 0x10000, 0, 0x40000}, | 648 | .no_msp34xx = 1, |
649 | .needs_tvaudio = 0, | 649 | .pll = PLL_28, |
650 | .tuner_type = TUNER_PHILIPS_PAL, | 650 | .tuner_type = TUNER_ALPS_TSBB5_PAL_I, |
651 | .tuner_addr = ADDR_UNSET, | 651 | .tuner_addr = ADDR_UNSET, |
652 | .audio_hook = terratv_audio, | 652 | }, |
653 | },{ | 653 | |
654 | .name = "Hauppauge WinCam newer (bt878)", | 654 | /* ---- card 0x18 ---------------------------------- */ |
655 | .video_inputs = 4, | 655 | [BTTV_MAGICTVIEW061] = { |
656 | .audio_inputs = 1, | 656 | .name = "Askey CPH05X/06X (bt878) [many vendors]", |
657 | .tuner = 0, | 657 | .video_inputs = 3, |
658 | .svhs = 3, | 658 | .audio_inputs = 1, |
659 | .gpiomask = 7, | 659 | .tuner = 0, |
660 | .muxsel = { 2, 0, 1, 1}, | 660 | .svhs = 2, |
661 | .audiomux = { 0, 1, 2, 3, 4}, | 661 | .gpiomask = 0xe00, |
662 | .needs_tvaudio = 1, | 662 | .muxsel = { 2, 3, 1, 1}, |
663 | .tuner_type = -1, | 663 | .audiomux = {0x400, 0x400, 0x400, 0x400, 0xc00}, |
664 | .tuner_addr = ADDR_UNSET, | 664 | .needs_tvaudio = 1, |
665 | },{ | 665 | .pll = PLL_28, |
666 | .name = "Lifeview FlyVideo 98/ MAXI TV Video PCI2 LR50", | 666 | .tuner_type = -1, |
667 | .video_inputs = 4, | 667 | .tuner_addr = ADDR_UNSET, |
668 | .audio_inputs = 2, | 668 | .has_remote = 1, |
669 | .tuner = 0, | 669 | }, |
670 | .svhs = 2, | 670 | [BTTV_VOBIS_BOOSTAR] = { |
671 | .gpiomask = 0x1800, | 671 | .name = "Terratec TerraTV+ Version 1.0 (Bt848)/ Terra TValue Version 1.0/ Vobis TV-Boostar", |
672 | .muxsel = { 2, 3, 1, 1}, | 672 | .video_inputs = 3, |
673 | .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800}, | 673 | .audio_inputs = 1, |
674 | .pll = PLL_28, | 674 | .tuner = 0, |
675 | .tuner_type = TUNER_PHILIPS_SECAM, | 675 | .svhs = 2, |
676 | .tuner_addr = ADDR_UNSET, | 676 | .gpiomask = 0x1f0fff, |
677 | },{ | 677 | .muxsel = { 2, 3, 1, 1}, |
678 | 678 | .audiomux = { 0x20000, 0x30000, 0x10000, 0, 0x40000}, | |
679 | /* ---- card 0x1c ---------------------------------- */ | 679 | .needs_tvaudio = 0, |
680 | .name = "Terratec TerraTV+ Version 1.1 (bt878)", | 680 | .tuner_type = TUNER_PHILIPS_PAL, |
681 | .video_inputs = 3, | 681 | .tuner_addr = ADDR_UNSET, |
682 | .audio_inputs = 1, | 682 | .audio_hook = terratv_audio, |
683 | .tuner = 0, | 683 | }, |
684 | .svhs = 2, | 684 | [BTTV_HAUPPAUG_WCAM] = { |
685 | .gpiomask = 0x1f0fff, | 685 | .name = "Hauppauge WinCam newer (bt878)", |
686 | .muxsel = { 2, 3, 1, 1}, | 686 | .video_inputs = 4, |
687 | .audiomux = { 0x20000, 0x30000, 0x10000, 0x00000, 0x40000}, | 687 | .audio_inputs = 1, |
688 | .needs_tvaudio = 0, | 688 | .tuner = 0, |
689 | .tuner_type = TUNER_PHILIPS_PAL, | 689 | .svhs = 3, |
690 | .tuner_addr = ADDR_UNSET, | 690 | .gpiomask = 7, |
691 | .audio_hook = terratv_audio, | 691 | .muxsel = { 2, 0, 1, 1}, |
692 | /* GPIO wiring: | 692 | .audiomux = { 0, 1, 2, 3, 4}, |
693 | External 20 pin connector (for Active Radio Upgrade board) | 693 | .needs_tvaudio = 1, |
694 | gpio00: i2c-sda | 694 | .tuner_type = -1, |
695 | gpio01: i2c-scl | 695 | .tuner_addr = ADDR_UNSET, |
696 | gpio02: om5610-data | 696 | }, |
697 | gpio03: om5610-clk | 697 | [BTTV_MAXI] = { |
698 | gpio04: om5610-wre | 698 | .name = "Lifeview FlyVideo 98/ MAXI TV Video PCI2 LR50", |
699 | gpio05: om5610-stereo | 699 | .video_inputs = 4, |
700 | gpio06: rds6588-davn | 700 | .audio_inputs = 2, |
701 | gpio07: Pin 7 n.c. | 701 | .tuner = 0, |
702 | gpio08: nIOW | 702 | .svhs = 2, |
703 | gpio09+10: nIOR, nSEL ?? (bt878) | 703 | .gpiomask = 0x1800, |
704 | gpio09: nIOR (bt848) | 704 | .muxsel = { 2, 3, 1, 1}, |
705 | gpio10: nSEL (bt848) | 705 | .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800}, |
706 | Sound Routing: | 706 | .pll = PLL_28, |
707 | gpio16: u2-A0 (1st 4052bt) | 707 | .tuner_type = TUNER_PHILIPS_SECAM, |
708 | gpio17: u2-A1 | 708 | .tuner_addr = ADDR_UNSET, |
709 | gpio18: u2-nEN | 709 | }, |
710 | gpio19: u4-A0 (2nd 4052) | 710 | |
711 | gpio20: u4-A1 | 711 | /* ---- card 0x1c ---------------------------------- */ |
712 | u4-nEN - GND | 712 | [BTTV_TERRATV] = { |
713 | Btspy: | 713 | .name = "Terratec TerraTV+ Version 1.1 (bt878)", |
714 | 00000 : Cdrom (internal audio input) | 714 | .video_inputs = 3, |
715 | 10000 : ext. Video audio input | 715 | .audio_inputs = 1, |
716 | 20000 : TV Mono | 716 | .tuner = 0, |
717 | a0000 : TV Mono/2 | 717 | .svhs = 2, |
718 | 1a0000 : TV Stereo | 718 | .gpiomask = 0x1f0fff, |
719 | 30000 : Radio | 719 | .muxsel = { 2, 3, 1, 1}, |
720 | 40000 : Mute | 720 | .audiomux = { 0x20000, 0x30000, 0x10000, 0x00000, 0x40000}, |
721 | */ | 721 | .needs_tvaudio = 0, |
722 | 722 | .tuner_type = TUNER_PHILIPS_PAL, | |
723 | },{ | 723 | .tuner_addr = ADDR_UNSET, |
724 | /* Jannik Fritsch <jannik@techfak.uni-bielefeld.de> */ | 724 | .audio_hook = terratv_audio, |
725 | .name = "Imagenation PXC200", | 725 | /* GPIO wiring: |
726 | .video_inputs = 5, | 726 | External 20 pin connector (for Active Radio Upgrade board) |
727 | .audio_inputs = 1, | 727 | gpio00: i2c-sda |
728 | .tuner = -1, | 728 | gpio01: i2c-scl |
729 | .svhs = 1, /* was: 4 */ | 729 | gpio02: om5610-data |
730 | .gpiomask = 0, | 730 | gpio03: om5610-clk |
731 | .muxsel = { 2, 3, 1, 0, 0}, | 731 | gpio04: om5610-wre |
732 | .audiomux = { 0 }, | 732 | gpio05: om5610-stereo |
733 | .needs_tvaudio = 1, | 733 | gpio06: rds6588-davn |
734 | .tuner_type = -1, | 734 | gpio07: Pin 7 n.c. |
735 | .tuner_addr = ADDR_UNSET, | 735 | gpio08: nIOW |
736 | .muxsel_hook = PXC200_muxsel, | 736 | gpio09+10: nIOR, nSEL ?? (bt878) |
737 | 737 | gpio09: nIOR (bt848) | |
738 | },{ | 738 | gpio10: nSEL (bt848) |
739 | .name = "Lifeview FlyVideo 98 LR50", | 739 | Sound Routing: |
740 | .video_inputs = 4, | 740 | gpio16: u2-A0 (1st 4052bt) |
741 | .audio_inputs = 1, | 741 | gpio17: u2-A1 |
742 | .tuner = 0, | 742 | gpio18: u2-nEN |
743 | .svhs = 2, | 743 | gpio19: u4-A0 (2nd 4052) |
744 | .gpiomask = 0x1800, /* 0x8dfe00 */ | 744 | gpio20: u4-A1 |
745 | .muxsel = { 2, 3, 1, 1}, | 745 | u4-nEN - GND |
746 | .audiomux = { 0, 0x0800, 0x1000, 0x1000, 0x1800, 0 }, | 746 | Btspy: |
747 | .pll = PLL_28, | 747 | 00000 : Cdrom (internal audio input) |
748 | .tuner_type = -1, | 748 | 10000 : ext. Video audio input |
749 | .tuner_addr = ADDR_UNSET, | 749 | 20000 : TV Mono |
750 | },{ | 750 | a0000 : TV Mono/2 |
751 | .name = "Formac iProTV, Formac ProTV I (bt848)", | 751 | 1a0000 : TV Stereo |
752 | .video_inputs = 4, | 752 | 30000 : Radio |
753 | .audio_inputs = 1, | 753 | 40000 : Mute |
754 | .tuner = 0, | ||
755 | .svhs = 3, | ||
756 | .gpiomask = 1, | ||
757 | .muxsel = { 2, 3, 1, 1}, | ||
758 | .audiomux = { 1, 0, 0, 0, 0 }, | ||
759 | .pll = PLL_28, | ||
760 | .tuner_type = TUNER_PHILIPS_PAL, | ||
761 | .tuner_addr = ADDR_UNSET, | ||
762 | },{ | ||
763 | |||
764 | /* ---- card 0x20 ---------------------------------- */ | ||
765 | .name = "Intel Create and Share PCI/ Smart Video Recorder III", | ||
766 | .video_inputs = 4, | ||
767 | .audio_inputs = 0, | ||
768 | .tuner = -1, | ||
769 | .svhs = 2, | ||
770 | .gpiomask = 0, | ||
771 | .muxsel = { 2, 3, 1, 1}, | ||
772 | .audiomux = { 0 }, | ||
773 | .needs_tvaudio = 0, | ||
774 | .tuner_type = 4, | ||
775 | .tuner_addr = ADDR_UNSET, | ||
776 | },{ | ||
777 | .name = "Terratec TerraTValue Version Bt878", | ||
778 | .video_inputs = 3, | ||
779 | .audio_inputs = 1, | ||
780 | .tuner = 0, | ||
781 | .svhs = 2, | ||
782 | .gpiomask = 0xffff00, | ||
783 | .muxsel = { 2, 3, 1, 1}, | ||
784 | .audiomux = { 0x500, 0, 0x300, 0x900, 0x900}, | ||
785 | .needs_tvaudio = 1, | ||
786 | .pll = PLL_28, | ||
787 | .tuner_type = TUNER_PHILIPS_PAL, | ||
788 | .tuner_addr = ADDR_UNSET, | ||
789 | },{ | ||
790 | .name = "Leadtek WinFast 2000/ WinFast 2000 XP", | ||
791 | .video_inputs = 4, | ||
792 | .audio_inputs = 1, | ||
793 | .tuner = 0, | ||
794 | .svhs = 2, | ||
795 | .muxsel = { 2, 3, 1, 1, 0}, /* TV, CVid, SVid, CVid over SVid connector */ | ||
796 | /* Alexander Varakin <avarakin@hotmail.com> [stereo version] */ | ||
797 | .gpiomask = 0xb33000, | ||
798 | .audiomux = { 0x122000,0x1000,0x0000,0x620000,0x800000 }, | ||
799 | /* Audio Routing for "WinFast 2000 XP" (no tv stereo !) | ||
800 | gpio23 -- hef4052:nEnable (0x800000) | ||
801 | gpio12 -- hef4052:A1 | ||
802 | gpio13 -- hef4052:A0 | ||
803 | 0x0000: external audio | ||
804 | 0x1000: FM | ||
805 | 0x2000: TV | ||
806 | 0x3000: n.c. | ||
807 | Note: There exists another variant "Winfast 2000" with tv stereo !? | ||
808 | Note: eeprom only contains FF and pci subsystem id 107d:6606 | ||
809 | */ | ||
810 | .needs_tvaudio = 0, | ||
811 | .pll = PLL_28, | ||
812 | .has_radio = 1, | ||
813 | .tuner_type = 5, /* default for now, gpio reads BFFF06 for Pal bg+dk */ | ||
814 | .tuner_addr = ADDR_UNSET, | ||
815 | .audio_hook = winfast2000_audio, | ||
816 | .has_remote = 1, | ||
817 | },{ | ||
818 | .name = "Lifeview FlyVideo 98 LR50 / Chronos Video Shuttle II", | ||
819 | .video_inputs = 4, | ||
820 | .audio_inputs = 3, | ||
821 | .tuner = 0, | ||
822 | .svhs = 2, | ||
823 | .gpiomask = 0x1800, | ||
824 | .muxsel = { 2, 3, 1, 1}, | ||
825 | .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800}, | ||
826 | .pll = PLL_28, | ||
827 | .tuner_type = -1, | ||
828 | .tuner_addr = ADDR_UNSET, | ||
829 | },{ | ||
830 | |||
831 | /* ---- card 0x24 ---------------------------------- */ | ||
832 | .name = "Lifeview FlyVideo 98FM LR50 / Typhoon TView TV/FM Tuner", | ||
833 | .video_inputs = 4, | ||
834 | .audio_inputs = 3, | ||
835 | .tuner = 0, | ||
836 | .svhs = 2, | ||
837 | .gpiomask = 0x1800, | ||
838 | .muxsel = { 2, 3, 1, 1}, | ||
839 | .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800, 0 }, | ||
840 | .pll = PLL_28, | ||
841 | .tuner_type = -1, | ||
842 | .tuner_addr = ADDR_UNSET, | ||
843 | .has_radio = 1, | ||
844 | },{ | ||
845 | .name = "Prolink PixelView PlayTV pro", | ||
846 | .video_inputs = 3, | ||
847 | .audio_inputs = 1, | ||
848 | .tuner = 0, | ||
849 | .svhs = 2, | ||
850 | .gpiomask = 0xff, | ||
851 | .muxsel = { 2, 3, 1, 1 }, | ||
852 | .audiomux = { 0x21, 0x20, 0x24, 0x2c, 0x29, 0x29 }, | ||
853 | .no_msp34xx = 1, | ||
854 | .pll = PLL_28, | ||
855 | .tuner_type = -1, | ||
856 | .tuner_addr = ADDR_UNSET, | ||
857 | },{ | ||
858 | .name = "Askey CPH06X TView99", | ||
859 | .video_inputs = 4, | ||
860 | .audio_inputs = 1, | ||
861 | .tuner = 0, | ||
862 | .svhs = 2, | ||
863 | .gpiomask = 0x551e00, | ||
864 | .muxsel = { 2, 3, 1, 0}, | ||
865 | .audiomux = { 0x551400, 0x551200, 0, 0, 0x551c00, 0x551200 }, | ||
866 | .needs_tvaudio = 1, | ||
867 | .pll = PLL_28, | ||
868 | .tuner_type = 1, | ||
869 | .tuner_addr = ADDR_UNSET, | ||
870 | .has_remote = 1, | ||
871 | },{ | ||
872 | .name = "Pinnacle PCTV Studio/Rave", | ||
873 | .video_inputs = 3, | ||
874 | .audio_inputs = 1, | ||
875 | .tuner = 0, | ||
876 | .svhs = 2, | ||
877 | .gpiomask = 0x03000F, | ||
878 | .muxsel = { 2, 3, 1, 1}, | ||
879 | .audiomux = { 2, 0xd0001, 0, 0, 1}, | ||
880 | .needs_tvaudio = 0, | ||
881 | .pll = PLL_28, | ||
882 | .tuner_type = -1, | ||
883 | .tuner_addr = ADDR_UNSET, | ||
884 | },{ | ||
885 | |||
886 | /* ---- card 0x28 ---------------------------------- */ | ||
887 | .name = "STB TV PCI FM, Gateway P/N 6000704 (bt878), 3Dfx VoodooTV 100", | ||
888 | .video_inputs = 3, | ||
889 | .audio_inputs = 1, | ||
890 | .tuner = 0, | ||
891 | .svhs = 2, | ||
892 | .gpiomask = 7, | ||
893 | .muxsel = { 2, 3, 1, 1}, | ||
894 | .audiomux = { 4, 0, 2, 3, 1}, | ||
895 | .no_msp34xx = 1, | ||
896 | .needs_tvaudio = 1, | ||
897 | .tuner_type = TUNER_PHILIPS_NTSC, | ||
898 | .tuner_addr = ADDR_UNSET, | ||
899 | .pll = PLL_28, | ||
900 | .has_radio = 1, | ||
901 | },{ | ||
902 | .name = "AVerMedia TVPhone 98", | ||
903 | .video_inputs = 3, | ||
904 | .audio_inputs = 4, | ||
905 | .tuner = 0, | ||
906 | .svhs = 2, | ||
907 | .gpiomask = 15, | ||
908 | .muxsel = { 2, 3, 1, 1}, | ||
909 | .audiomux = { 13, 4, 11, 7, 0, 0}, | ||
910 | .needs_tvaudio = 1, | ||
911 | .pll = PLL_28, | ||
912 | .tuner_type = -1, | ||
913 | .tuner_addr = ADDR_UNSET, | ||
914 | .has_radio = 1, | ||
915 | .audio_hook = avermedia_tvphone_audio, | ||
916 | },{ | ||
917 | .name = "ProVideo PV951", /* pic16c54 */ | ||
918 | .video_inputs = 3, | ||
919 | .audio_inputs = 1, | ||
920 | .tuner = 0, | ||
921 | .svhs = 2, | ||
922 | .gpiomask = 0, | ||
923 | .muxsel = { 2, 3, 1, 1}, | ||
924 | .audiomux = { 0, 0, 0, 0, 0}, | ||
925 | .needs_tvaudio = 1, | ||
926 | .no_msp34xx = 1, | ||
927 | .pll = PLL_28, | ||
928 | .tuner_type = 1, | ||
929 | .tuner_addr = ADDR_UNSET, | ||
930 | },{ | ||
931 | .name = "Little OnAir TV", | ||
932 | .video_inputs = 3, | ||
933 | .audio_inputs = 1, | ||
934 | .tuner = 0, | ||
935 | .svhs = 2, | ||
936 | .gpiomask = 0xe00b, | ||
937 | .muxsel = {2, 3, 1, 1}, | ||
938 | .audiomux = {0xff9ff6, 0xff9ff6, 0xff1ff7, 0, 0xff3ffc}, | ||
939 | .no_msp34xx = 1, | ||
940 | .tuner_type = -1, | ||
941 | .tuner_addr = ADDR_UNSET, | ||
942 | },{ | ||
943 | |||
944 | /* ---- card 0x2c ---------------------------------- */ | ||
945 | .name = "Sigma TVII-FM", | ||
946 | .video_inputs = 2, | ||
947 | .audio_inputs = 1, | ||
948 | .tuner = 0, | ||
949 | .svhs = -1, | ||
950 | .gpiomask = 3, | ||
951 | .muxsel = {2, 3, 1, 1}, | ||
952 | .audiomux = {1, 1, 0, 2, 3}, | ||
953 | .no_msp34xx = 1, | ||
954 | .pll = PLL_NONE, | ||
955 | .tuner_type = -1, | ||
956 | .tuner_addr = ADDR_UNSET, | ||
957 | },{ | ||
958 | .name = "MATRIX-Vision MV-Delta 2", | ||
959 | .video_inputs = 5, | ||
960 | .audio_inputs = 1, | ||
961 | .tuner = -1, | ||
962 | .svhs = 3, | ||
963 | .gpiomask = 0, | ||
964 | .muxsel = { 2, 3, 1, 0, 0}, | ||
965 | .audiomux = {0 }, | ||
966 | .no_msp34xx = 1, | ||
967 | .pll = PLL_28, | ||
968 | .tuner_type = -1, | ||
969 | .tuner_addr = ADDR_UNSET, | ||
970 | },{ | ||
971 | .name = "Zoltrix Genie TV/FM", | ||
972 | .video_inputs = 3, | ||
973 | .audio_inputs = 1, | ||
974 | .tuner = 0, | ||
975 | .svhs = 2, | ||
976 | .gpiomask = 0xbcf03f, | ||
977 | .muxsel = { 2, 3, 1, 1}, | ||
978 | .audiomux = { 0xbc803f, 0xbc903f, 0xbcb03f, 0, 0xbcb03f}, | ||
979 | .no_msp34xx = 1, | ||
980 | .pll = PLL_28, | ||
981 | .tuner_type = 21, | ||
982 | .tuner_addr = ADDR_UNSET, | ||
983 | },{ | ||
984 | .name = "Terratec TV/Radio+", | ||
985 | .video_inputs = 3, | ||
986 | .audio_inputs = 1, | ||
987 | .tuner = 0, | ||
988 | .svhs = 2, | ||
989 | .gpiomask = 0x70000, | ||
990 | .muxsel = { 2, 3, 1, 1}, | ||
991 | .audiomux = { 0x20000, 0x30000, 0x10000, 0, 0x40000, 0x20000 }, | ||
992 | .needs_tvaudio = 1, | ||
993 | .no_msp34xx = 1, | ||
994 | .pll = PLL_35, | ||
995 | .tuner_type = 1, | ||
996 | .tuner_addr = ADDR_UNSET, | ||
997 | .has_radio = 1, | ||
998 | },{ | ||
999 | |||
1000 | /* ---- card 0x30 ---------------------------------- */ | ||
1001 | .name = "Askey CPH03x/ Dynalink Magic TView", | ||
1002 | .video_inputs = 3, | ||
1003 | .audio_inputs = 1, | ||
1004 | .tuner = 0, | ||
1005 | .svhs = 2, | ||
1006 | .gpiomask = 15, | ||
1007 | .muxsel = { 2, 3, 1, 1}, | ||
1008 | .audiomux = {2,0,0,0,1}, | ||
1009 | .needs_tvaudio = 1, | ||
1010 | .pll = PLL_28, | ||
1011 | .tuner_type = -1, | ||
1012 | .tuner_addr = ADDR_UNSET, | ||
1013 | },{ | ||
1014 | .name = "IODATA GV-BCTV3/PCI", | ||
1015 | .video_inputs = 3, | ||
1016 | .audio_inputs = 1, | ||
1017 | .tuner = 0, | ||
1018 | .svhs = 2, | ||
1019 | .gpiomask = 0x010f00, | ||
1020 | .muxsel = {2, 3, 0, 0}, | ||
1021 | .audiomux = {0x10000, 0, 0x10000, 0, 0, 0}, | ||
1022 | .no_msp34xx = 1, | ||
1023 | .pll = PLL_28, | ||
1024 | .tuner_type = TUNER_ALPS_TSHC6_NTSC, | ||
1025 | .tuner_addr = ADDR_UNSET, | ||
1026 | .audio_hook = gvbctv3pci_audio, | ||
1027 | },{ | ||
1028 | .name = "Prolink PV-BT878P+4E / PixelView PlayTV PAK / Lenco MXTV-9578 CP", | ||
1029 | .video_inputs = 5, | ||
1030 | .audio_inputs = 1, | ||
1031 | .tuner = 0, | ||
1032 | .svhs = 3, | ||
1033 | .gpiomask = 0xAA0000, | ||
1034 | .muxsel = { 2,3,1,1,-1 }, | ||
1035 | .digital_mode = DIGITAL_MODE_CAMERA, | ||
1036 | .audiomux = { 0x20000, 0, 0x80000, 0x80000, 0xa8000, 0x46000 }, | ||
1037 | .no_msp34xx = 1, | ||
1038 | .pll = PLL_28, | ||
1039 | .tuner_type = TUNER_PHILIPS_PAL_I, | ||
1040 | .tuner_addr = ADDR_UNSET, | ||
1041 | .has_remote = 1, | ||
1042 | /* GPIO wiring: (different from Rev.4C !) | ||
1043 | GPIO17: U4.A0 (first hef4052bt) | ||
1044 | GPIO19: U4.A1 | ||
1045 | GPIO20: U5.A1 (second hef4052bt) | ||
1046 | GPIO21: U4.nEN | ||
1047 | GPIO22: BT832 Reset Line | ||
1048 | GPIO23: A5,A0, U5,nEN | ||
1049 | Note: At i2c=0x8a is a Bt832 chip, which changes to 0x88 after being reset via GPIO22 | ||
1050 | */ | ||
1051 | },{ | ||
1052 | .name = "Eagle Wireless Capricorn2 (bt878A)", | ||
1053 | .video_inputs = 4, | ||
1054 | .audio_inputs = 1, | ||
1055 | .tuner = 0, | ||
1056 | .svhs = 2, | ||
1057 | .gpiomask = 7, | ||
1058 | .muxsel = { 2, 0, 1, 1}, | ||
1059 | .audiomux = { 0, 1, 2, 3, 4}, | ||
1060 | .pll = PLL_28, | ||
1061 | .tuner_type = -1 /* TUNER_ALPS_TMDH2_NTSC */, | ||
1062 | .tuner_addr = ADDR_UNSET, | ||
1063 | },{ | ||
1064 | |||
1065 | /* ---- card 0x34 ---------------------------------- */ | ||
1066 | /* David Härdeman <david@2gen.com> */ | ||
1067 | .name = "Pinnacle PCTV Studio Pro", | ||
1068 | .video_inputs = 4, | ||
1069 | .audio_inputs = 1, | ||
1070 | .tuner = 0, | ||
1071 | .svhs = 3, | ||
1072 | .gpiomask = 0x03000F, | ||
1073 | .muxsel = { 2, 3, 1, 1}, | ||
1074 | .audiomux = { 1, 0xd0001, 0, 0, 10}, | ||
1075 | /* sound path (5 sources): | ||
1076 | MUX1 (mask 0x03), Enable Pin 0x08 (0=enable, 1=disable) | ||
1077 | 0= ext. Audio IN | ||
1078 | 1= from MUX2 | ||
1079 | 2= Mono TV sound from Tuner | ||
1080 | 3= not connected | ||
1081 | MUX2 (mask 0x30000): | ||
1082 | 0,2,3= from MSP34xx | ||
1083 | 1= FM stereo Radio from Tuner */ | ||
1084 | .needs_tvaudio = 0, | ||
1085 | .pll = PLL_28, | ||
1086 | .tuner_type = -1, | ||
1087 | .tuner_addr = ADDR_UNSET, | ||
1088 | },{ | ||
1089 | /* Claas Langbehn <claas@bigfoot.com>, | ||
1090 | Sven Grothklags <sven@upb.de> */ | ||
1091 | .name = "Typhoon TView RDS + FM Stereo / KNC1 TV Station RDS", | ||
1092 | .video_inputs = 4, | ||
1093 | .audio_inputs = 3, | ||
1094 | .tuner = 0, | ||
1095 | .svhs = 2, | ||
1096 | .gpiomask = 0x1c, | ||
1097 | .muxsel = { 2, 3, 1, 1}, | ||
1098 | .audiomux = { 0, 0, 0x10, 8, 4 }, | ||
1099 | .needs_tvaudio = 1, | ||
1100 | .pll = PLL_28, | ||
1101 | .tuner_type = TUNER_PHILIPS_PAL, | ||
1102 | .tuner_addr = ADDR_UNSET, | ||
1103 | .has_radio = 1, | ||
1104 | },{ | ||
1105 | /* Tim Röstermundt <rosterm@uni-muenster.de> | ||
1106 | in de.comp.os.unix.linux.hardware: | ||
1107 | options bttv card=0 pll=1 radio=1 gpiomask=0x18e0 | ||
1108 | audiomux=0x44c71f,0x44d71f,0,0x44d71f,0x44dfff | ||
1109 | options tuner type=5 */ | ||
1110 | .name = "Lifeview FlyVideo 2000 /FlyVideo A2/ Lifetec LT 9415 TV [LR90]", | ||
1111 | .video_inputs = 4, | ||
1112 | .audio_inputs = 1, | ||
1113 | .tuner = 0, | ||
1114 | .svhs = 2, | ||
1115 | .gpiomask = 0x18e0, | ||
1116 | .muxsel = { 2, 3, 1, 1}, | ||
1117 | .audiomux = { 0x0000,0x0800,0x1000,0x1000,0x18e0 }, | ||
1118 | /* For cards with tda9820/tda9821: | ||
1119 | 0x0000: Tuner normal stereo | ||
1120 | 0x0080: Tuner A2 SAP (second audio program = Zweikanalton) | ||
1121 | 0x0880: Tuner A2 stereo */ | ||
1122 | .pll = PLL_28, | ||
1123 | .tuner_type = -1, | ||
1124 | .tuner_addr = ADDR_UNSET, | ||
1125 | },{ | ||
1126 | /* Miguel Angel Alvarez <maacruz@navegalia.com> | ||
1127 | old Easy TV BT848 version (model CPH031) */ | ||
1128 | .name = "Askey CPH031/ BESTBUY Easy TV", | ||
1129 | .video_inputs = 4, | ||
1130 | .audio_inputs = 1, | ||
1131 | .tuner = 0, | ||
1132 | .svhs = 2, | ||
1133 | .gpiomask = 0xF, | ||
1134 | .muxsel = { 2, 3, 1, 0}, | ||
1135 | .audiomux = { 2, 0, 0, 0, 10}, | ||
1136 | .needs_tvaudio = 0, | ||
1137 | .pll = PLL_28, | ||
1138 | .tuner_type = TUNER_TEMIC_PAL, | ||
1139 | .tuner_addr = ADDR_UNSET, | ||
1140 | },{ | ||
1141 | |||
1142 | /* ---- card 0x38 ---------------------------------- */ | ||
1143 | /* Gordon Heydon <gjheydon@bigfoot.com ('98) */ | ||
1144 | .name = "Lifeview FlyVideo 98FM LR50", | ||
1145 | .video_inputs = 4, | ||
1146 | .audio_inputs = 3, | ||
1147 | .tuner = 0, | ||
1148 | .svhs = 2, | ||
1149 | .gpiomask = 0x1800, | ||
1150 | .muxsel = { 2, 3, 1, 1}, | ||
1151 | .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800, 0 }, | ||
1152 | .pll = PLL_28, | ||
1153 | .tuner_type = 5, | ||
1154 | .tuner_addr = ADDR_UNSET, | ||
1155 | },{ | ||
1156 | /* This is the ultimate cheapo capture card | ||
1157 | * just a BT848A on a small PCB! | ||
1158 | * Steve Hosgood <steve@equiinet.com> */ | ||
1159 | .name = "GrandTec 'Grand Video Capture' (Bt848)", | ||
1160 | .video_inputs = 2, | ||
1161 | .audio_inputs = 0, | ||
1162 | .tuner = -1, | ||
1163 | .svhs = 1, | ||
1164 | .gpiomask = 0, | ||
1165 | .muxsel = { 3, 1 }, | ||
1166 | .audiomux = { 0 }, | ||
1167 | .needs_tvaudio = 0, | ||
1168 | .no_msp34xx = 1, | ||
1169 | .pll = PLL_35, | ||
1170 | .tuner_type = -1, | ||
1171 | .tuner_addr = ADDR_UNSET, | ||
1172 | },{ | ||
1173 | /* Daniel Herrington <daniel.herrington@home.com> */ | ||
1174 | .name = "Askey CPH060/ Phoebe TV Master Only (No FM)", | ||
1175 | .video_inputs = 3, | ||
1176 | .audio_inputs = 1, | ||
1177 | .tuner = 0, | ||
1178 | .svhs = 2, | ||
1179 | .gpiomask = 0xe00, | ||
1180 | .muxsel = { 2, 3, 1, 1}, | ||
1181 | .audiomux = { 0x400, 0x400, 0x400, 0x400, 0x800, 0x400 }, | ||
1182 | .needs_tvaudio = 1, | ||
1183 | .pll = PLL_28, | ||
1184 | .tuner_type = TUNER_TEMIC_4036FY5_NTSC, | ||
1185 | .tuner_addr = ADDR_UNSET, | ||
1186 | },{ | ||
1187 | /* Matti Mottus <mottus@physic.ut.ee> */ | ||
1188 | .name = "Askey CPH03x TV Capturer", | ||
1189 | .video_inputs = 4, | ||
1190 | .audio_inputs = 1, | ||
1191 | .tuner = 0, | ||
1192 | .svhs = 2, | ||
1193 | .gpiomask = 0x03000F, | ||
1194 | .muxsel = { 2, 3, 1, 0}, | ||
1195 | .audiomux = { 2,0,0,0,1 }, | ||
1196 | .pll = PLL_28, | ||
1197 | .tuner_type = 0, | ||
1198 | .tuner_addr = ADDR_UNSET, | ||
1199 | },{ | ||
1200 | |||
1201 | /* ---- card 0x3c ---------------------------------- */ | ||
1202 | /* Philip Blundell <philb@gnu.org> */ | ||
1203 | .name = "Modular Technology MM100PCTV", | ||
1204 | .video_inputs = 2, | ||
1205 | .audio_inputs = 2, | ||
1206 | .tuner = 0, | ||
1207 | .svhs = -1, | ||
1208 | .gpiomask = 11, | ||
1209 | .muxsel = { 2, 3, 1, 1}, | ||
1210 | .audiomux = { 2, 0, 0, 1, 8}, | ||
1211 | .pll = PLL_35, | ||
1212 | .tuner_type = TUNER_TEMIC_PAL, | ||
1213 | .tuner_addr = ADDR_UNSET, | ||
1214 | },{ | ||
1215 | /* Adrian Cox <adrian@humboldt.co.uk */ | ||
1216 | .name = "AG Electronics GMV1", | ||
1217 | .video_inputs = 2, | ||
1218 | .audio_inputs = 0, | ||
1219 | .tuner = -1, | ||
1220 | .svhs = 1, | ||
1221 | .gpiomask = 0xF, | ||
1222 | .muxsel = { 2, 2}, | ||
1223 | .audiomux = { }, | ||
1224 | .no_msp34xx = 1, | ||
1225 | .needs_tvaudio = 0, | ||
1226 | .pll = PLL_28, | ||
1227 | .tuner_type = -1, | ||
1228 | .tuner_addr = ADDR_UNSET, | ||
1229 | },{ | ||
1230 | /* Miguel Angel Alvarez <maacruz@navegalia.com> | ||
1231 | new Easy TV BT878 version (model CPH061) | ||
1232 | special thanks to Informatica Mieres for providing the card */ | ||
1233 | .name = "Askey CPH061/ BESTBUY Easy TV (bt878)", | ||
1234 | .video_inputs = 3, | ||
1235 | .audio_inputs = 2, | ||
1236 | .tuner = 0, | ||
1237 | .svhs = 2, | ||
1238 | .gpiomask = 0xFF, | ||
1239 | .muxsel = { 2, 3, 1, 0}, | ||
1240 | .audiomux = { 1, 0, 4, 4, 9}, | ||
1241 | .needs_tvaudio = 0, | ||
1242 | .pll = PLL_28, | ||
1243 | .tuner_type = TUNER_PHILIPS_PAL, | ||
1244 | .tuner_addr = ADDR_UNSET, | ||
1245 | },{ | ||
1246 | /* Lukas Gebauer <geby@volny.cz> */ | ||
1247 | .name = "ATI TV-Wonder", | ||
1248 | .video_inputs = 3, | ||
1249 | .audio_inputs = 1, | ||
1250 | .tuner = 0, | ||
1251 | .svhs = 2, | ||
1252 | .gpiomask = 0xf03f, | ||
1253 | .muxsel = { 2, 3, 1, 0 }, | ||
1254 | .audiomux = { 0xbffe, 0, 0xbfff, 0, 0xbffe}, | ||
1255 | .pll = PLL_28, | ||
1256 | .tuner_type = TUNER_TEMIC_4006FN5_MULTI_PAL, | ||
1257 | .tuner_addr = ADDR_UNSET, | ||
1258 | },{ | ||
1259 | |||
1260 | /* ---- card 0x40 ---------------------------------- */ | ||
1261 | /* Lukas Gebauer <geby@volny.cz> */ | ||
1262 | .name = "ATI TV-Wonder VE", | ||
1263 | .video_inputs = 2, | ||
1264 | .audio_inputs = 1, | ||
1265 | .tuner = 0, | ||
1266 | .svhs = -1, | ||
1267 | .gpiomask = 1, | ||
1268 | .muxsel = { 2, 3, 0, 1}, | ||
1269 | .audiomux = { 0, 0, 1, 0, 0}, | ||
1270 | .no_msp34xx = 1, | ||
1271 | .pll = PLL_28, | ||
1272 | .tuner_type = TUNER_TEMIC_4006FN5_MULTI_PAL, | ||
1273 | .tuner_addr = ADDR_UNSET, | ||
1274 | },{ | ||
1275 | /* DeeJay <deejay@westel900.net (2000S) */ | ||
1276 | .name = "Lifeview FlyVideo 2000S LR90", | ||
1277 | .video_inputs = 3, | ||
1278 | .audio_inputs = 3, | ||
1279 | .tuner = 0, | ||
1280 | .svhs = 2, | ||
1281 | .gpiomask = 0x18e0, | ||
1282 | .muxsel = { 2, 3, 0, 1}, | ||
1283 | /* Radio changed from 1e80 to 0x800 to make | ||
1284 | FlyVideo2000S in .hu happy (gm)*/ | ||
1285 | /* -dk-???: set mute=0x1800 for tda9874h daughterboard */ | ||
1286 | .audiomux = { 0x0000,0x0800,0x1000,0x1000,0x1800, 0x1080 }, | ||
1287 | .audio_hook = fv2000s_audio, | ||
1288 | .no_msp34xx = 1, | ||
1289 | .no_tda9875 = 1, | ||
1290 | .needs_tvaudio = 1, | ||
1291 | .pll = PLL_28, | ||
1292 | .tuner_type = 5, | ||
1293 | .tuner_addr = ADDR_UNSET, | ||
1294 | },{ | ||
1295 | .name = "Terratec TValueRadio", | ||
1296 | .video_inputs = 3, | ||
1297 | .audio_inputs = 1, | ||
1298 | .tuner = 0, | ||
1299 | .svhs = 2, | ||
1300 | .gpiomask = 0xffff00, | ||
1301 | .muxsel = { 2, 3, 1, 1}, | ||
1302 | .audiomux = { 0x500, 0x500, 0x300, 0x900, 0x900}, | ||
1303 | .needs_tvaudio = 1, | ||
1304 | .pll = PLL_28, | ||
1305 | .tuner_type = TUNER_PHILIPS_PAL, | ||
1306 | .tuner_addr = ADDR_UNSET, | ||
1307 | .has_radio = 1, | ||
1308 | },{ | ||
1309 | /* TANAKA Kei <peg00625@nifty.com> */ | ||
1310 | .name = "IODATA GV-BCTV4/PCI", | ||
1311 | .video_inputs = 3, | ||
1312 | .audio_inputs = 1, | ||
1313 | .tuner = 0, | ||
1314 | .svhs = 2, | ||
1315 | .gpiomask = 0x010f00, | ||
1316 | .muxsel = {2, 3, 0, 0}, | ||
1317 | .audiomux = {0x10000, 0, 0x10000, 0, 0, 0}, | ||
1318 | .no_msp34xx = 1, | ||
1319 | .pll = PLL_28, | ||
1320 | .tuner_type = TUNER_SHARP_2U5JF5540_NTSC, | ||
1321 | .tuner_addr = ADDR_UNSET, | ||
1322 | .audio_hook = gvbctv3pci_audio, | ||
1323 | },{ | ||
1324 | |||
1325 | /* ---- card 0x44 ---------------------------------- */ | ||
1326 | .name = "3Dfx VoodooTV FM (Euro), VoodooTV 200 (USA)", | ||
1327 | /* try "insmod msp3400 simple=0" if you have | ||
1328 | * sound problems with this card. */ | ||
1329 | .video_inputs = 4, | ||
1330 | .audio_inputs = 1, | ||
1331 | .tuner = 0, | ||
1332 | .svhs = -1, | ||
1333 | .gpiomask = 0x4f8a00, | ||
1334 | /* 0x100000: 1=MSP enabled (0=disable again) | ||
1335 | * 0x010000: Connected to "S0" on tda9880 (0=Pal/BG, 1=NTSC) */ | ||
1336 | .audiomux = {0x947fff, 0x987fff,0x947fff,0x947fff, 0x947fff}, | ||
1337 | /* tvtuner, radio, external,internal, mute, stereo | ||
1338 | * tuner, Composit, SVid, Composit-on-Svid-adapter */ | ||
1339 | .muxsel = { 2, 3 ,0 ,1}, | ||
1340 | .tuner_type = TUNER_MT2032, | ||
1341 | .tuner_addr = ADDR_UNSET, | ||
1342 | .pll = PLL_28, | ||
1343 | .has_radio = 1, | ||
1344 | },{ | ||
1345 | /* Philip Blundell <pb@nexus.co.uk> */ | ||
1346 | .name = "Active Imaging AIMMS", | ||
1347 | .video_inputs = 1, | ||
1348 | .audio_inputs = 0, | ||
1349 | .tuner = -1, | ||
1350 | .tuner_type = -1, | ||
1351 | .tuner_addr = ADDR_UNSET, | ||
1352 | .pll = PLL_28, | ||
1353 | .muxsel = { 2 }, | ||
1354 | .gpiomask = 0 | ||
1355 | },{ | ||
1356 | /* Tomasz Pyra <hellfire@sedez.iq.pl> */ | ||
1357 | .name = "Prolink Pixelview PV-BT878P+ (Rev.4C,8E)", | ||
1358 | .video_inputs = 3, | ||
1359 | .audio_inputs = 4, | ||
1360 | .tuner = 0, | ||
1361 | .svhs = 2, | ||
1362 | .gpiomask = 15, | ||
1363 | .muxsel = { 2, 3, 1, 1}, | ||
1364 | .audiomux = { 0, 0, 11, 7, 13, 0}, /* TV and Radio with same GPIO ! */ | ||
1365 | .needs_tvaudio = 1, | ||
1366 | .pll = PLL_28, | ||
1367 | .tuner_type = 25, | ||
1368 | .tuner_addr = ADDR_UNSET, | ||
1369 | .has_remote = 1, | ||
1370 | /* GPIO wiring: | ||
1371 | GPIO0: U4.A0 (hef4052bt) | ||
1372 | GPIO1: U4.A1 | ||
1373 | GPIO2: U4.A1 (second hef4052bt) | ||
1374 | GPIO3: U4.nEN, U5.A0, A5.nEN | ||
1375 | GPIO8-15: vrd866b ? | ||
1376 | */ | ||
1377 | },{ | ||
1378 | .name = "Lifeview FlyVideo 98EZ (capture only) LR51", | ||
1379 | .video_inputs = 4, | ||
1380 | .audio_inputs = 0, | ||
1381 | .tuner = -1, | ||
1382 | .svhs = 2, | ||
1383 | .muxsel = { 2, 3, 1, 1}, /* AV1, AV2, SVHS, CVid adapter on SVHS */ | ||
1384 | .pll = PLL_28, | ||
1385 | .no_msp34xx = 1, | ||
1386 | .tuner_type = UNSET, | ||
1387 | .tuner_addr = ADDR_UNSET, | ||
1388 | },{ | ||
1389 | |||
1390 | /* ---- card 0x48 ---------------------------------- */ | ||
1391 | /* Dariusz Kowalewski <darekk@automex.pl> */ | ||
1392 | .name = "Prolink Pixelview PV-BT878P+9B (PlayTV Pro rev.9B FM+NICAM)", | ||
1393 | .video_inputs = 4, | ||
1394 | .audio_inputs = 1, | ||
1395 | .tuner = 0, | ||
1396 | .svhs = 2, | ||
1397 | .gpiomask = 0x3f, | ||
1398 | .muxsel = { 2, 3, 1, 1 }, | ||
1399 | .audiomux = { 0x01, 0x00, 0x03, 0x03, 0x09, 0x02 }, | ||
1400 | .needs_tvaudio = 1, | ||
1401 | .no_msp34xx = 1, | ||
1402 | .no_tda9875 = 1, | ||
1403 | .pll = PLL_28, | ||
1404 | .tuner_type = 5, | ||
1405 | .tuner_addr = ADDR_UNSET, | ||
1406 | .audio_hook = pvbt878p9b_audio, /* Note: not all cards have stereo */ | ||
1407 | .has_radio = 1, /* Note: not all cards have radio */ | ||
1408 | .has_remote = 1, | ||
1409 | /* GPIO wiring: | ||
1410 | GPIO0: A0 hef4052 | ||
1411 | GPIO1: A1 hef4052 | ||
1412 | GPIO3: nEN hef4052 | ||
1413 | GPIO8-15: vrd866b | ||
1414 | GPIO20,22,23: R30,R29,R28 | ||
1415 | */ | ||
1416 | },{ | ||
1417 | /* Clay Kunz <ckunz@mail.arc.nasa.gov> */ | ||
1418 | /* you must jumper JP5 for the card to work */ | ||
1419 | .name = "Sensoray 311", | ||
1420 | .video_inputs = 5, | ||
1421 | .audio_inputs = 0, | ||
1422 | .tuner = -1, | ||
1423 | .svhs = 4, | ||
1424 | .gpiomask = 0, | ||
1425 | .muxsel = { 2, 3, 1, 0, 0}, | ||
1426 | .audiomux = { 0 }, | ||
1427 | .needs_tvaudio = 0, | ||
1428 | .tuner_type = -1, | ||
1429 | .tuner_addr = ADDR_UNSET, | ||
1430 | },{ | ||
1431 | /* Miguel Freitas <miguel@cetuc.puc-rio.br> */ | ||
1432 | .name = "RemoteVision MX (RV605)", | ||
1433 | .video_inputs = 16, | ||
1434 | .audio_inputs = 0, | ||
1435 | .tuner = -1, | ||
1436 | .svhs = -1, | ||
1437 | .gpiomask = 0x00, | ||
1438 | .gpiomask2 = 0x07ff, | ||
1439 | .muxsel = { 0x33, 0x13, 0x23, 0x43, 0xf3, 0x73, 0xe3, 0x03, | ||
1440 | 0xd3, 0xb3, 0xc3, 0x63, 0x93, 0x53, 0x83, 0xa3 }, | ||
1441 | .no_msp34xx = 1, | ||
1442 | .no_tda9875 = 1, | ||
1443 | .tuner_type = -1, | ||
1444 | .tuner_addr = ADDR_UNSET, | ||
1445 | .muxsel_hook = rv605_muxsel, | ||
1446 | },{ | ||
1447 | .name = "Powercolor MTV878/ MTV878R/ MTV878F", | ||
1448 | .video_inputs = 3, | ||
1449 | .audio_inputs = 2, | ||
1450 | .tuner = 0, | ||
1451 | .svhs = 2, | ||
1452 | .gpiomask = 0x1C800F, /* Bit0-2: Audio select, 8-12:remote control 14:remote valid 15:remote reset */ | ||
1453 | .muxsel = { 2, 1, 1, }, | ||
1454 | .audiomux = { 0, 1, 2, 2, 4 }, | ||
1455 | .needs_tvaudio = 0, | ||
1456 | .tuner_type = TUNER_PHILIPS_PAL, | ||
1457 | .tuner_addr = ADDR_UNSET, | ||
1458 | .pll = PLL_28, | ||
1459 | .has_radio = 1, | ||
1460 | },{ | ||
1461 | |||
1462 | /* ---- card 0x4c ---------------------------------- */ | ||
1463 | /* Masaki Suzuki <masaki@btree.org> */ | ||
1464 | .name = "Canopus WinDVR PCI (COMPAQ Presario 3524JP, 5112JP)", | ||
1465 | .video_inputs = 3, | ||
1466 | .audio_inputs = 1, | ||
1467 | .tuner = 0, | ||
1468 | .svhs = 2, | ||
1469 | .gpiomask = 0x140007, | ||
1470 | .muxsel = { 2, 3, 1, 1 }, | ||
1471 | .audiomux = { 0, 1, 2, 3, 4, 0 }, | ||
1472 | .tuner_type = TUNER_PHILIPS_NTSC, | ||
1473 | .tuner_addr = ADDR_UNSET, | ||
1474 | .audio_hook = windvr_audio, | ||
1475 | },{ | ||
1476 | .name = "GrandTec Multi Capture Card (Bt878)", | ||
1477 | .video_inputs = 4, | ||
1478 | .audio_inputs = 0, | ||
1479 | .tuner = -1, | ||
1480 | .svhs = -1, | ||
1481 | .gpiomask = 0, | ||
1482 | .muxsel = { 2, 3, 1, 0 }, | ||
1483 | .audiomux = { 0 }, | ||
1484 | .needs_tvaudio = 0, | ||
1485 | .no_msp34xx = 1, | ||
1486 | .pll = PLL_28, | ||
1487 | .tuner_type = -1, | ||
1488 | .tuner_addr = ADDR_UNSET, | ||
1489 | },{ | ||
1490 | .name = "Jetway TV/Capture JW-TV878-FBK, Kworld KW-TV878RF", | ||
1491 | .video_inputs = 4, | ||
1492 | .audio_inputs = 3, | ||
1493 | .tuner = 0, | ||
1494 | .svhs = 2, | ||
1495 | .gpiomask = 7, | ||
1496 | .muxsel = { 2, 3, 1, 1 }, /* Tuner, SVid, SVHS, SVid to SVHS connector */ | ||
1497 | .audiomux = { 0 ,0 ,4, 4,4,4},/* Yes, this tuner uses the same audio output for TV and FM radio! | ||
1498 | * This card lacks external Audio In, so we mute it on Ext. & Int. | ||
1499 | * The PCB can take a sbx1637/sbx1673, wiring unknown. | ||
1500 | * This card lacks PCI subsystem ID, sigh. | ||
1501 | * audiomux=1: lower volume, 2+3: mute | ||
1502 | * btwincap uses 0x80000/0x80003 | ||
1503 | */ | ||
1504 | .needs_tvaudio = 0, | ||
1505 | .no_msp34xx = 1, | ||
1506 | .pll = PLL_28, | ||
1507 | .tuner_type = 5, | ||
1508 | .tuner_addr = ADDR_UNSET, | ||
1509 | /* Samsung TCPA9095PC27A (BG+DK), philips compatible, w/FM, stereo and | ||
1510 | radio signal strength indicators work fine. */ | ||
1511 | .has_radio = 1, | ||
1512 | /* GPIO Info: | ||
1513 | GPIO0,1: HEF4052 A0,A1 | ||
1514 | GPIO2: HEF4052 nENABLE | ||
1515 | GPIO3-7: n.c. | ||
1516 | GPIO8-13: IRDC357 data0-5 (data6 n.c. ?) [chip not present on my card] | ||
1517 | GPIO14,15: ?? | ||
1518 | GPIO16-21: n.c. | ||
1519 | GPIO22,23: ?? | ||
1520 | ?? : mtu8b56ep microcontroller for IR (GPIO wiring unknown)*/ | ||
1521 | },{ | ||
1522 | /* Arthur Tetzlaff-Deas, DSP Design Ltd <software@dspdesign.com> */ | ||
1523 | .name = "DSP Design TCVIDEO", | ||
1524 | .video_inputs = 4, | ||
1525 | .svhs = -1, | ||
1526 | .muxsel = { 2, 3, 1, 0}, | ||
1527 | .pll = PLL_28, | ||
1528 | .tuner_type = -1, | ||
1529 | .tuner_addr = ADDR_UNSET, | ||
1530 | },{ | ||
1531 | |||
1532 | /* ---- card 0x50 ---------------------------------- */ | ||
1533 | .name = "Hauppauge WinTV PVR", | ||
1534 | .video_inputs = 4, | ||
1535 | .audio_inputs = 1, | ||
1536 | .tuner = 0, | ||
1537 | .svhs = 2, | ||
1538 | .muxsel = { 2, 0, 1, 1}, | ||
1539 | .needs_tvaudio = 1, | ||
1540 | .pll = PLL_28, | ||
1541 | .tuner_type = -1, | ||
1542 | .tuner_addr = ADDR_UNSET, | ||
1543 | |||
1544 | .gpiomask = 7, | ||
1545 | .audiomux = {7}, | ||
1546 | },{ | ||
1547 | .name = "IODATA GV-BCTV5/PCI", | ||
1548 | .video_inputs = 3, | ||
1549 | .audio_inputs = 1, | ||
1550 | .tuner = 0, | ||
1551 | .svhs = 2, | ||
1552 | .gpiomask = 0x0f0f80, | ||
1553 | .muxsel = {2, 3, 1, 0}, | ||
1554 | .audiomux = {0x030000, 0x010000, 0, 0, 0x020000, 0}, | ||
1555 | .no_msp34xx = 1, | ||
1556 | .pll = PLL_28, | ||
1557 | .tuner_type = TUNER_PHILIPS_NTSC_M, | ||
1558 | .tuner_addr = ADDR_UNSET, | ||
1559 | .audio_hook = gvbctv5pci_audio, | ||
1560 | .has_radio = 1, | ||
1561 | },{ | ||
1562 | .name = "Osprey 100/150 (878)", /* 0x1(2|3)-45C6-C1 */ | ||
1563 | .video_inputs = 4, /* id-inputs-clock */ | ||
1564 | .audio_inputs = 0, | ||
1565 | .tuner = -1, | ||
1566 | .svhs = 3, | ||
1567 | .muxsel = { 3, 2, 0, 1 }, | ||
1568 | .pll = PLL_28, | ||
1569 | .tuner_type = -1, | ||
1570 | .tuner_addr = ADDR_UNSET, | ||
1571 | .no_msp34xx = 1, | ||
1572 | .no_tda9875 = 1, | ||
1573 | .no_tda7432 = 1, | ||
1574 | },{ | ||
1575 | .name = "Osprey 100/150 (848)", /* 0x04-54C0-C1 & older boards */ | ||
1576 | .video_inputs = 3, | ||
1577 | .audio_inputs = 0, | ||
1578 | .tuner = -1, | ||
1579 | .svhs = 2, | ||
1580 | .muxsel = { 2, 3, 1 }, | ||
1581 | .pll = PLL_28, | ||
1582 | .tuner_type = -1, | ||
1583 | .tuner_addr = ADDR_UNSET, | ||
1584 | .no_msp34xx = 1, | ||
1585 | .no_tda9875 = 1, | ||
1586 | .no_tda7432 = 1, | ||
1587 | },{ | ||
1588 | |||
1589 | /* ---- card 0x54 ---------------------------------- */ | ||
1590 | .name = "Osprey 101 (848)", /* 0x05-40C0-C1 */ | ||
1591 | .video_inputs = 2, | ||
1592 | .audio_inputs = 0, | ||
1593 | .tuner = -1, | ||
1594 | .svhs = 1, | ||
1595 | .muxsel = { 3, 1 }, | ||
1596 | .pll = PLL_28, | ||
1597 | .tuner_type = -1, | ||
1598 | .tuner_addr = ADDR_UNSET, | ||
1599 | .no_msp34xx = 1, | ||
1600 | .no_tda9875 = 1, | ||
1601 | .no_tda7432 = 1, | ||
1602 | },{ | ||
1603 | .name = "Osprey 101/151", /* 0x1(4|5)-0004-C4 */ | ||
1604 | .video_inputs = 1, | ||
1605 | .audio_inputs = 0, | ||
1606 | .tuner = -1, | ||
1607 | .svhs = -1, | ||
1608 | .muxsel = { 0 }, | ||
1609 | .pll = PLL_28, | ||
1610 | .tuner_type = -1, | ||
1611 | .tuner_addr = ADDR_UNSET, | ||
1612 | .no_msp34xx = 1, | ||
1613 | .no_tda9875 = 1, | ||
1614 | .no_tda7432 = 1, | ||
1615 | },{ | ||
1616 | .name = "Osprey 101/151 w/ svid", /* 0x(16|17|20)-00C4-C1 */ | ||
1617 | .video_inputs = 2, | ||
1618 | .audio_inputs = 0, | ||
1619 | .tuner = -1, | ||
1620 | .svhs = 1, | ||
1621 | .muxsel = { 0, 1 }, | ||
1622 | .pll = PLL_28, | ||
1623 | .tuner_type = -1, | ||
1624 | .tuner_addr = ADDR_UNSET, | ||
1625 | .no_msp34xx = 1, | ||
1626 | .no_tda9875 = 1, | ||
1627 | .no_tda7432 = 1, | ||
1628 | },{ | ||
1629 | .name = "Osprey 200/201/250/251", /* 0x1(8|9|E|F)-0004-C4 */ | ||
1630 | .video_inputs = 1, | ||
1631 | .audio_inputs = 1, | ||
1632 | .tuner = -1, | ||
1633 | .svhs = -1, | ||
1634 | .muxsel = { 0 }, | ||
1635 | .pll = PLL_28, | ||
1636 | .tuner_type = UNSET, | ||
1637 | .tuner_addr = ADDR_UNSET, | ||
1638 | .no_msp34xx = 1, | ||
1639 | .no_tda9875 = 1, | ||
1640 | .no_tda7432 = 1, | ||
1641 | },{ | ||
1642 | |||
1643 | /* ---- card 0x58 ---------------------------------- */ | ||
1644 | .name = "Osprey 200/250", /* 0x1(A|B)-00C4-C1 */ | ||
1645 | .video_inputs = 2, | ||
1646 | .audio_inputs = 1, | ||
1647 | .tuner = -1, | ||
1648 | .svhs = 1, | ||
1649 | .muxsel = { 0, 1 }, | ||
1650 | .pll = PLL_28, | ||
1651 | .tuner_type = UNSET, | ||
1652 | .tuner_addr = ADDR_UNSET, | ||
1653 | .no_msp34xx = 1, | ||
1654 | .no_tda9875 = 1, | ||
1655 | .no_tda7432 = 1, | ||
1656 | },{ | ||
1657 | .name = "Osprey 210/220", /* 0x1(A|B)-04C0-C1 */ | ||
1658 | .video_inputs = 2, | ||
1659 | .audio_inputs = 1, | ||
1660 | .tuner = -1, | ||
1661 | .svhs = 1, | ||
1662 | .muxsel = { 2, 3 }, | ||
1663 | .pll = PLL_28, | ||
1664 | .tuner_type = UNSET, | ||
1665 | .tuner_addr = ADDR_UNSET, | ||
1666 | .no_msp34xx = 1, | ||
1667 | .no_tda9875 = 1, | ||
1668 | .no_tda7432 = 1, | ||
1669 | },{ | ||
1670 | .name = "Osprey 500", /* 500 */ | ||
1671 | .video_inputs = 2, | ||
1672 | .audio_inputs = 1, | ||
1673 | .tuner = -1, | ||
1674 | .svhs = 1, | ||
1675 | .muxsel = { 2, 3 }, | ||
1676 | .pll = PLL_28, | ||
1677 | .tuner_type = -1, | ||
1678 | .tuner_addr = ADDR_UNSET, | ||
1679 | .no_msp34xx = 1, | ||
1680 | .no_tda9875 = 1, | ||
1681 | .no_tda7432 = 1, | ||
1682 | },{ | ||
1683 | .name = "Osprey 540", /* 540 */ | ||
1684 | .video_inputs = 4, | ||
1685 | .audio_inputs = 1, | ||
1686 | .tuner = -1, | ||
1687 | .pll = PLL_28, | ||
1688 | .tuner_type = -1, | ||
1689 | .tuner_addr = ADDR_UNSET, | ||
1690 | .no_msp34xx = 1, | ||
1691 | .no_tda9875 = 1, | ||
1692 | .no_tda7432 = 1, | ||
1693 | },{ | ||
1694 | |||
1695 | /* ---- card 0x5C ---------------------------------- */ | ||
1696 | .name = "Osprey 2000", /* 2000 */ | ||
1697 | .video_inputs = 2, | ||
1698 | .audio_inputs = 1, | ||
1699 | .tuner = -1, | ||
1700 | .svhs = 1, | ||
1701 | .muxsel = { 2, 3 }, | ||
1702 | .pll = PLL_28, | ||
1703 | .tuner_type = UNSET, | ||
1704 | .tuner_addr = ADDR_UNSET, | ||
1705 | .no_msp34xx = 1, | ||
1706 | .no_tda9875 = 1, | ||
1707 | .no_tda7432 = 1, /* must avoid, conflicts with the bt860 */ | ||
1708 | },{ | ||
1709 | /* M G Berberich <berberic@forwiss.uni-passau.de> */ | ||
1710 | .name = "IDS Eagle", | ||
1711 | .video_inputs = 4, | ||
1712 | .audio_inputs = 0, | ||
1713 | .tuner = -1, | ||
1714 | .tuner_type = -1, | ||
1715 | .tuner_addr = ADDR_UNSET, | ||
1716 | .svhs = -1, | ||
1717 | .gpiomask = 0, | ||
1718 | .muxsel = { 0, 1, 2, 3 }, | ||
1719 | .muxsel_hook = eagle_muxsel, | ||
1720 | .no_msp34xx = 1, | ||
1721 | .no_tda9875 = 1, | ||
1722 | .pll = PLL_28, | ||
1723 | },{ | ||
1724 | .name = "Pinnacle PCTV Sat", | ||
1725 | .video_inputs = 2, | ||
1726 | .audio_inputs = 0, | ||
1727 | .svhs = 1, | ||
1728 | .tuner = -1, | ||
1729 | .tuner_type = -1, | ||
1730 | .tuner_addr = ADDR_UNSET, | ||
1731 | .no_msp34xx = 1, | ||
1732 | .no_tda9875 = 1, | ||
1733 | .no_tda7432 = 1, | ||
1734 | .muxsel = { 3, 0, 1, 2}, | ||
1735 | .pll = PLL_28, | ||
1736 | .no_gpioirq = 1, | ||
1737 | .has_dvb = 1, | ||
1738 | },{ | ||
1739 | .name = "Formac ProTV II (bt878)", | ||
1740 | .video_inputs = 4, | ||
1741 | .audio_inputs = 1, | ||
1742 | .tuner = 0, | ||
1743 | .svhs = 3, | ||
1744 | .gpiomask = 2, | ||
1745 | /* TV, Comp1, Composite over SVID con, SVID */ | ||
1746 | .muxsel = { 2, 3, 1, 1}, | ||
1747 | .audiomux = { 2, 2, 0, 0, 0 }, | ||
1748 | .pll = PLL_28, | ||
1749 | .has_radio = 1, | ||
1750 | .tuner_type = TUNER_PHILIPS_PAL, | ||
1751 | .tuner_addr = ADDR_UNSET, | ||
1752 | /* sound routing: | ||
1753 | GPIO=0x00,0x01,0x03: mute (?) | ||
1754 | 0x02: both TV and radio (tuner: FM1216/I) | ||
1755 | The card has onboard audio connectors labeled "cdrom" and "board", | ||
1756 | not soldered here, though unknown wiring. | ||
1757 | Card lacks: external audio in, pci subsystem id. | ||
1758 | */ | ||
1759 | },{ | ||
1760 | |||
1761 | /* ---- card 0x60 ---------------------------------- */ | ||
1762 | .name = "MachTV", | ||
1763 | .video_inputs = 3, | ||
1764 | .audio_inputs = 1, | ||
1765 | .tuner = 0, | ||
1766 | .svhs = -1, | ||
1767 | .gpiomask = 7, | ||
1768 | .muxsel = { 2, 3, 1, 1}, | ||
1769 | .audiomux = { 0, 1, 2, 3, 4}, | ||
1770 | .needs_tvaudio = 1, | ||
1771 | .tuner_type = 5, | ||
1772 | .tuner_addr = ADDR_UNSET, | ||
1773 | .pll = 1, | ||
1774 | },{ | ||
1775 | .name = "Euresys Picolo", | ||
1776 | .video_inputs = 3, | ||
1777 | .audio_inputs = 0, | ||
1778 | .tuner = -1, | ||
1779 | .svhs = 2, | ||
1780 | .gpiomask = 0, | ||
1781 | .no_msp34xx = 1, | ||
1782 | .no_tda9875 = 1, | ||
1783 | .no_tda7432 = 1, | ||
1784 | .muxsel = { 2, 0, 1}, | ||
1785 | .pll = PLL_28, | ||
1786 | .tuner_type = UNSET, | ||
1787 | .tuner_addr = ADDR_UNSET, | ||
1788 | },{ | ||
1789 | /* Luc Van Hoeylandt <luc@e-magic.be> */ | ||
1790 | .name = "ProVideo PV150", /* 0x4f */ | ||
1791 | .video_inputs = 2, | ||
1792 | .audio_inputs = 0, | ||
1793 | .tuner = -1, | ||
1794 | .svhs = -1, | ||
1795 | .gpiomask = 0, | ||
1796 | .muxsel = { 2, 3 }, | ||
1797 | .audiomux = { 0 }, | ||
1798 | .needs_tvaudio = 0, | ||
1799 | .no_msp34xx = 1, | ||
1800 | .pll = PLL_28, | ||
1801 | .tuner_type = UNSET, | ||
1802 | .tuner_addr = ADDR_UNSET, | ||
1803 | },{ | ||
1804 | /* Hiroshi Takekawa <sian@big.or.jp> */ | ||
1805 | /* This card lacks subsystem ID */ | ||
1806 | .name = "AD-TVK503", /* 0x63 */ | ||
1807 | .video_inputs = 4, | ||
1808 | .audio_inputs = 1, | ||
1809 | .tuner = 0, | ||
1810 | .svhs = 2, | ||
1811 | .gpiomask = 0x001e8007, | ||
1812 | .muxsel = { 2, 3, 1, 0 }, | ||
1813 | /* Tuner, Radio, external, internal, off, on */ | ||
1814 | .audiomux = { 0x08, 0x0f, 0x0a, 0x08, 0x0f, 0x08 }, | ||
1815 | .needs_tvaudio = 0, | ||
1816 | .no_msp34xx = 1, | ||
1817 | .pll = PLL_28, | ||
1818 | .tuner_type = 2, | ||
1819 | .tuner_addr = ADDR_UNSET, | ||
1820 | .audio_hook = adtvk503_audio, | ||
1821 | },{ | ||
1822 | |||
1823 | /* ---- card 0x64 ---------------------------------- */ | ||
1824 | .name = "Hercules Smart TV Stereo", | ||
1825 | .video_inputs = 4, | ||
1826 | .audio_inputs = 1, | ||
1827 | .tuner = 0, | ||
1828 | .svhs = 2, | ||
1829 | .gpiomask = 0x00, | ||
1830 | .muxsel = { 2, 3, 1, 1 }, | ||
1831 | .needs_tvaudio = 1, | ||
1832 | .no_msp34xx = 1, | ||
1833 | .pll = PLL_28, | ||
1834 | .tuner_type = 5, | ||
1835 | .tuner_addr = ADDR_UNSET, | ||
1836 | /* Notes: | ||
1837 | - card lacks subsystem ID | ||
1838 | - stereo variant w/ daughter board with tda9874a @0xb0 | ||
1839 | - Audio Routing: | ||
1840 | always from tda9874 independent of GPIO (?) | ||
1841 | external line in: unknown | ||
1842 | - Other chips: em78p156elp @ 0x96 (probably IR remote control) | ||
1843 | hef4053 (instead 4052) for unknown function | ||
1844 | */ | ||
1845 | },{ | ||
1846 | .name = "Pace TV & Radio Card", | ||
1847 | .video_inputs = 4, | ||
1848 | .audio_inputs = 1, | ||
1849 | .tuner = 0, | ||
1850 | .svhs = 2, | ||
1851 | .muxsel = { 2, 3, 1, 1}, /* Tuner, CVid, SVid, CVid over SVid connector */ | ||
1852 | .gpiomask = 0, | ||
1853 | .no_tda9875 = 1, | ||
1854 | .no_tda7432 = 1, | ||
1855 | .tuner_type = 1, | ||
1856 | .tuner_addr = ADDR_UNSET, | ||
1857 | .has_radio = 1, | ||
1858 | .pll = PLL_28, | ||
1859 | /* Bt878, Bt832, FI1246 tuner; no pci subsystem id | ||
1860 | only internal line out: (4pin header) RGGL | ||
1861 | Radio must be decoded by msp3410d (not routed through)*/ | ||
1862 | /* | ||
1863 | .digital_mode = DIGITAL_MODE_CAMERA, todo! | ||
1864 | */ | ||
1865 | },{ | ||
1866 | /* Chris Willing <chris@vislab.usyd.edu.au> */ | ||
1867 | .name = "IVC-200", | ||
1868 | .video_inputs = 1, | ||
1869 | .audio_inputs = 0, | ||
1870 | .tuner = -1, | ||
1871 | .tuner_type = -1, | ||
1872 | .tuner_addr = ADDR_UNSET, | ||
1873 | .svhs = -1, | ||
1874 | .gpiomask = 0xdf, | ||
1875 | .muxsel = { 2 }, | ||
1876 | .pll = PLL_28, | ||
1877 | },{ | ||
1878 | .name = "Grand X-Guard / Trust 814PCI", | ||
1879 | .video_inputs = 16, | ||
1880 | .audio_inputs = 0, | ||
1881 | .tuner = -1, | ||
1882 | .svhs = -1, | ||
1883 | .tuner_type = 4, | ||
1884 | .tuner_addr = ADDR_UNSET, | ||
1885 | .gpiomask2 = 0xff, | ||
1886 | .muxsel = { 2,2,2,2, 3,3,3,3, 1,1,1,1, 0,0,0,0 }, | ||
1887 | .muxsel_hook = xguard_muxsel, | ||
1888 | .no_msp34xx = 1, | ||
1889 | .no_tda9875 = 1, | ||
1890 | .no_tda7432 = 1, | ||
1891 | .pll = PLL_28, | ||
1892 | },{ | ||
1893 | |||
1894 | /* ---- card 0x68 ---------------------------------- */ | ||
1895 | .name = "Nebula Electronics DigiTV", | ||
1896 | .video_inputs = 1, | ||
1897 | .tuner = -1, | ||
1898 | .svhs = -1, | ||
1899 | .muxsel = { 2, 3, 1, 0}, | ||
1900 | .no_msp34xx = 1, | ||
1901 | .no_tda9875 = 1, | ||
1902 | .no_tda7432 = 1, | ||
1903 | .pll = PLL_28, | ||
1904 | .tuner_type = -1, | ||
1905 | .tuner_addr = ADDR_UNSET, | ||
1906 | .has_dvb = 1, | ||
1907 | .no_gpioirq = 1, | ||
1908 | },{ | ||
1909 | /* Jorge Boncompte - DTI2 <jorge@dti2.net> */ | ||
1910 | .name = "ProVideo PV143", | ||
1911 | .video_inputs = 4, | ||
1912 | .audio_inputs = 0, | ||
1913 | .tuner = -1, | ||
1914 | .svhs = -1, | ||
1915 | .gpiomask = 0, | ||
1916 | .muxsel = { 2, 3, 1, 0 }, | ||
1917 | .audiomux = { 0 }, | ||
1918 | .needs_tvaudio = 0, | ||
1919 | .no_msp34xx = 1, | ||
1920 | .pll = PLL_28, | ||
1921 | .tuner_type = -1, | ||
1922 | .tuner_addr = ADDR_UNSET, | ||
1923 | },{ | ||
1924 | /* M.Klahr@phytec.de */ | ||
1925 | .name = "PHYTEC VD-009-X1 MiniDIN (bt878)", | ||
1926 | .video_inputs = 4, | ||
1927 | .audio_inputs = 0, | ||
1928 | .tuner = -1, /* card has no tuner */ | ||
1929 | .svhs = 3, | ||
1930 | .gpiomask = 0x00, | ||
1931 | .muxsel = { 2, 3, 1, 0}, | ||
1932 | .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ | ||
1933 | .needs_tvaudio = 1, | ||
1934 | .pll = PLL_28, | ||
1935 | .tuner_type = -1, | ||
1936 | .tuner_addr = ADDR_UNSET, | ||
1937 | },{ | ||
1938 | .name = "PHYTEC VD-009-X1 Combi (bt878)", | ||
1939 | .video_inputs = 4, | ||
1940 | .audio_inputs = 0, | ||
1941 | .tuner = -1, /* card has no tuner */ | ||
1942 | .svhs = 3, | ||
1943 | .gpiomask = 0x00, | ||
1944 | .muxsel = { 2, 3, 1, 1}, | ||
1945 | .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ | ||
1946 | .needs_tvaudio = 1, | ||
1947 | .pll = PLL_28, | ||
1948 | .tuner_type = -1, | ||
1949 | .tuner_addr = ADDR_UNSET, | ||
1950 | },{ | ||
1951 | |||
1952 | /* ---- card 0x6c ---------------------------------- */ | ||
1953 | .name = "PHYTEC VD-009 MiniDIN (bt878)", | ||
1954 | .video_inputs = 10, | ||
1955 | .audio_inputs = 0, | ||
1956 | .tuner = -1, /* card has no tuner */ | ||
1957 | .svhs = 9, | ||
1958 | .gpiomask = 0x00, | ||
1959 | .gpiomask2 = 0x03, /* gpiomask2 defines the bits used to switch audio | ||
1960 | via the upper nibble of muxsel. here: used for | ||
1961 | xternal video-mux */ | ||
1962 | .muxsel = { 0x02, 0x12, 0x22, 0x32, 0x03, 0x13, 0x23, 0x33, 0x01, 0x00 }, | ||
1963 | .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ | ||
1964 | .needs_tvaudio = 1, | ||
1965 | .pll = PLL_28, | ||
1966 | .tuner_type = -1, | ||
1967 | .tuner_addr = ADDR_UNSET, | ||
1968 | },{ | ||
1969 | .name = "PHYTEC VD-009 Combi (bt878)", | ||
1970 | .video_inputs = 10, | ||
1971 | .audio_inputs = 0, | ||
1972 | .tuner = -1, /* card has no tuner */ | ||
1973 | .svhs = 9, | ||
1974 | .gpiomask = 0x00, | ||
1975 | .gpiomask2 = 0x03, /* gpiomask2 defines the bits used to switch audio | ||
1976 | via the upper nibble of muxsel. here: used for | ||
1977 | xternal video-mux */ | ||
1978 | .muxsel = { 0x02, 0x12, 0x22, 0x32, 0x03, 0x13, 0x23, 0x33, 0x01, 0x01 }, | ||
1979 | .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ | ||
1980 | .needs_tvaudio = 1, | ||
1981 | .pll = PLL_28, | ||
1982 | .tuner_type = -1, | ||
1983 | .tuner_addr = ADDR_UNSET, | ||
1984 | },{ | ||
1985 | .name = "IVC-100", | ||
1986 | .video_inputs = 4, | ||
1987 | .audio_inputs = 0, | ||
1988 | .tuner = -1, | ||
1989 | .tuner_type = -1, | ||
1990 | .tuner_addr = ADDR_UNSET, | ||
1991 | .svhs = -1, | ||
1992 | .gpiomask = 0xdf, | ||
1993 | .muxsel = { 2, 3, 1, 0 }, | ||
1994 | .pll = PLL_28, | ||
1995 | },{ | ||
1996 | /* IVC-120G - Alan Garfield <alan@fromorbit.com> */ | ||
1997 | .name = "IVC-120G", | ||
1998 | .video_inputs = 16, | ||
1999 | .audio_inputs = 0, /* card has no audio */ | ||
2000 | .tuner = -1, /* card has no tuner */ | ||
2001 | .tuner_type = -1, | ||
2002 | .tuner_addr = ADDR_UNSET, | ||
2003 | .svhs = -1, /* card has no svhs */ | ||
2004 | .needs_tvaudio = 0, | ||
2005 | .no_msp34xx = 1, | ||
2006 | .no_tda9875 = 1, | ||
2007 | .no_tda7432 = 1, | ||
2008 | .gpiomask = 0x00, | ||
2009 | .muxsel = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, | ||
2010 | 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10 }, | ||
2011 | .muxsel_hook = ivc120_muxsel, | ||
2012 | .pll = PLL_28, | ||
2013 | },{ | ||
2014 | |||
2015 | /* ---- card 0x70 ---------------------------------- */ | ||
2016 | .name = "pcHDTV HD-2000 TV", | ||
2017 | .video_inputs = 4, | ||
2018 | .audio_inputs = 1, | ||
2019 | .tuner = 0, | ||
2020 | .svhs = 2, | ||
2021 | .muxsel = { 2, 3, 1, 0}, | ||
2022 | .tuner_type = TUNER_PHILIPS_ATSC, | ||
2023 | .tuner_addr = ADDR_UNSET, | ||
2024 | .has_dvb = 1, | ||
2025 | },{ | ||
2026 | .name = "Twinhan DST + clones", | ||
2027 | .no_msp34xx = 1, | ||
2028 | .no_tda9875 = 1, | ||
2029 | .no_tda7432 = 1, | ||
2030 | .tuner_type = TUNER_ABSENT, | ||
2031 | .tuner_addr = ADDR_UNSET, | ||
2032 | .no_video = 1, | ||
2033 | .has_dvb = 1, | ||
2034 | },{ | ||
2035 | .name = "Winfast VC100", | ||
2036 | .video_inputs = 3, | ||
2037 | .audio_inputs = 0, | ||
2038 | .svhs = 1, | ||
2039 | .tuner = -1, | ||
2040 | .muxsel = { 3, 1, 1, 3}, /* Vid In, SVid In, Vid over SVid in connector */ | ||
2041 | .no_msp34xx = 1, | ||
2042 | .no_tda9875 = 1, | ||
2043 | .no_tda7432 = 1, | ||
2044 | .tuner_type = TUNER_ABSENT, | ||
2045 | .tuner_addr = ADDR_UNSET, | ||
2046 | .pll = PLL_28, | ||
2047 | },{ | ||
2048 | .name = "Teppro TEV-560/InterVision IV-560", | ||
2049 | .video_inputs = 3, | ||
2050 | .audio_inputs = 1, | ||
2051 | .tuner = 0, | ||
2052 | .svhs = 2, | ||
2053 | .gpiomask = 3, | ||
2054 | .muxsel = { 2, 3, 1, 1}, | ||
2055 | .audiomux = { 1, 1, 1, 1, 0}, | ||
2056 | .needs_tvaudio = 1, | ||
2057 | .tuner_type = TUNER_PHILIPS_PAL, | ||
2058 | .tuner_addr = ADDR_UNSET, | ||
2059 | .pll = PLL_35, | ||
2060 | },{ | ||
2061 | |||
2062 | /* ---- card 0x74 ---------------------------------- */ | ||
2063 | .name = "SIMUS GVC1100", | ||
2064 | .video_inputs = 4, | ||
2065 | .audio_inputs = 0, | ||
2066 | .tuner = -1, | ||
2067 | .svhs = -1, | ||
2068 | .tuner_type = -1, | ||
2069 | .tuner_addr = ADDR_UNSET, | ||
2070 | .pll = PLL_28, | ||
2071 | .muxsel = { 2, 2, 2, 2}, | ||
2072 | .gpiomask = 0x3F, | ||
2073 | .muxsel_hook = gvc1100_muxsel, | ||
2074 | },{ | ||
2075 | /* Carlos Silva r3pek@r3pek.homelinux.org || card 0x75 */ | ||
2076 | .name = "NGS NGSTV+", | ||
2077 | .video_inputs = 3, | ||
2078 | .tuner = 0, | ||
2079 | .svhs = 2, | ||
2080 | .gpiomask = 0x008007, | ||
2081 | .muxsel = {2, 3, 0, 0}, | ||
2082 | .audiomux = {0, 0, 0, 0, 0x000003, 0}, | ||
2083 | .pll = PLL_28, | ||
2084 | .tuner_type = TUNER_PHILIPS_PAL, | ||
2085 | .tuner_addr = ADDR_UNSET, | ||
2086 | .has_remote = 1, | ||
2087 | },{ | ||
2088 | /* http://linuxmedialabs.com */ | ||
2089 | .name = "LMLBT4", | ||
2090 | .video_inputs = 4, /* IN1,IN2,IN3,IN4 */ | ||
2091 | .audio_inputs = 0, | ||
2092 | .tuner = -1, | ||
2093 | .svhs = -1, | ||
2094 | .muxsel = { 2, 3, 1, 0 }, | ||
2095 | .no_msp34xx = 1, | ||
2096 | .no_tda9875 = 1, | ||
2097 | .no_tda7432 = 1, | ||
2098 | .needs_tvaudio = 0, | ||
2099 | .tuner_type = -1, | ||
2100 | .tuner_addr = ADDR_UNSET, | ||
2101 | },{ | ||
2102 | /* Helmroos Harri <harri.helmroos@pp.inet.fi> */ | ||
2103 | .name = "Tekram M205 PRO", | ||
2104 | .video_inputs = 3, | ||
2105 | .audio_inputs = 1, | ||
2106 | .tuner = 0, | ||
2107 | .tuner_type = TUNER_PHILIPS_PAL, | ||
2108 | .tuner_addr = ADDR_UNSET, | ||
2109 | .svhs = 2, | ||
2110 | .needs_tvaudio = 0, | ||
2111 | .gpiomask = 0x68, | ||
2112 | .muxsel = { 2, 3, 1}, | ||
2113 | .audiomux = { 0x68, 0x68, 0x61, 0x61, 0x00 }, | ||
2114 | .pll = PLL_28, | ||
2115 | },{ | ||
2116 | |||
2117 | /* ---- card 0x78 ---------------------------------- */ | ||
2118 | /* Javier Cendan Ares <jcendan@lycos.es> */ | ||
2119 | /* bt878 TV + FM without subsystem ID */ | ||
2120 | .name = "Conceptronic CONTVFMi", | ||
2121 | .video_inputs = 3, | ||
2122 | .audio_inputs = 1, | ||
2123 | .tuner = 0, | ||
2124 | .svhs = 2, | ||
2125 | .gpiomask = 0x008007, | ||
2126 | .muxsel = { 2, 3, 1, 1 }, | ||
2127 | .audiomux = { 0, 1, 2, 2, 3 }, | ||
2128 | .needs_tvaudio = 0, | ||
2129 | .pll = PLL_28, | ||
2130 | .tuner_type = TUNER_PHILIPS_PAL, | ||
2131 | .tuner_addr = ADDR_UNSET, | ||
2132 | .has_remote = 1, | ||
2133 | .has_radio = 1, | ||
2134 | },{ | ||
2135 | /*Eric DEBIEF <debief@telemsa.com>*/ | ||
2136 | /*EURESYS Picolo Tetra : 4 Conexant Fusion 878A, no audio, video input set with analog multiplexers GPIO controled*/ | ||
2137 | /* adds picolo_tetra_muxsel(), picolo_tetra_init(), the folowing declaration strucure, and #define BTTV_PICOLO_TETRA_CHIP*/ | ||
2138 | /*0x79 in bttv.h*/ | ||
2139 | .name = "Euresys Picolo Tetra", | ||
2140 | .video_inputs = 4, | ||
2141 | .audio_inputs = 0, | ||
2142 | .tuner = -1, | ||
2143 | .svhs = -1, | ||
2144 | .gpiomask = 0, | ||
2145 | .gpiomask2 = 0x3C<<16,/*Set the GPIO[18]->GPIO[21] as output pin.==> drive the video inputs through analog multiplexers*/ | ||
2146 | .no_msp34xx = 1, | ||
2147 | .no_tda9875 = 1, | ||
2148 | .no_tda7432 = 1, | ||
2149 | .muxsel = {2,2,2,2},/*878A input is always MUX0, see above.*/ | ||
2150 | .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ | ||
2151 | .pll = PLL_28, | ||
2152 | .needs_tvaudio = 0, | ||
2153 | .muxsel_hook = picolo_tetra_muxsel,/*Required as it doesn't follow the classic input selection policy*/ | ||
2154 | .tuner_type = -1, | ||
2155 | .tuner_addr = ADDR_UNSET, | ||
2156 | },{ | ||
2157 | /* Spirit TV Tuner from http://spiritmodems.com.au */ | ||
2158 | /* Stafford Goodsell <surge@goliath.homeunix.org> */ | ||
2159 | .name = "Spirit TV Tuner", | ||
2160 | .video_inputs = 3, | ||
2161 | .audio_inputs = 1, | ||
2162 | .tuner = 0, | ||
2163 | .svhs = 2, | ||
2164 | .gpiomask = 0x0000000f, | ||
2165 | .muxsel = { 2, 1, 1 }, | ||
2166 | .audiomux = { 0x02, 0x00, 0x00, 0x00, 0x00}, | ||
2167 | .tuner_type = TUNER_TEMIC_PAL, | ||
2168 | .tuner_addr = ADDR_UNSET, | ||
2169 | .no_msp34xx = 1, | ||
2170 | .no_tda9875 = 1, | ||
2171 | },{ | ||
2172 | /* Wolfram Joost <wojo@frokaschwei.de> */ | ||
2173 | .name = "AVerMedia AVerTV DVB-T 771", | ||
2174 | .video_inputs = 2, | ||
2175 | .svhs = 1, | ||
2176 | .tuner = -1, | ||
2177 | .tuner_type = TUNER_ABSENT, | ||
2178 | .tuner_addr = ADDR_UNSET, | ||
2179 | .muxsel = { 3 , 3 }, | ||
2180 | .no_msp34xx = 1, | ||
2181 | .no_tda9875 = 1, | ||
2182 | .no_tda7432 = 1, | ||
2183 | .pll = PLL_28, | ||
2184 | .has_dvb = 1, | ||
2185 | .no_gpioirq = 1, | ||
2186 | .has_remote = 1, | ||
2187 | },{ | ||
2188 | /* ---- card 0x7c ---------------------------------- */ | ||
2189 | /* Matt Jesson <dvb@jesson.eclipse.co.uk> */ | ||
2190 | /* Based on the Nebula card data - added remote and new card number - BTTV_AVDVBT_761, see also ir-kbd-gpio.c */ | ||
2191 | .name = "AverMedia AverTV DVB-T 761", | ||
2192 | .video_inputs = 2, | ||
2193 | .tuner = -1, | ||
2194 | .svhs = 1, | ||
2195 | .muxsel = { 3, 1, 2, 0}, /* Comp0, S-Video, ?, ? */ | ||
2196 | .no_msp34xx = 1, | ||
2197 | .no_tda9875 = 1, | ||
2198 | .no_tda7432 = 1, | ||
2199 | .pll = PLL_28, | ||
2200 | .tuner_type = -1, | ||
2201 | .tuner_addr = ADDR_UNSET, | ||
2202 | .has_dvb = 1, | ||
2203 | .no_gpioirq = 1, | ||
2204 | .has_remote = 1, | ||
2205 | },{ | ||
2206 | /* andre.schwarz@matrix-vision.de */ | ||
2207 | .name = "MATRIX Vision Sigma-SQ", | ||
2208 | .video_inputs = 16, | ||
2209 | .audio_inputs = 0, | ||
2210 | .tuner = -1, | ||
2211 | .svhs = -1, | ||
2212 | .gpiomask = 0x0, | ||
2213 | .muxsel = { 2, 2, 2, 2, 2, 2, 2, 2, | ||
2214 | 3, 3, 3, 3, 3, 3, 3, 3 }, | ||
2215 | .muxsel_hook = sigmaSQ_muxsel, | ||
2216 | .audiomux = { 0 }, | ||
2217 | .no_msp34xx = 1, | ||
2218 | .pll = PLL_28, | ||
2219 | .tuner_type = -1, | ||
2220 | .tuner_addr = ADDR_UNSET, | ||
2221 | },{ | ||
2222 | /* andre.schwarz@matrix-vision.de */ | ||
2223 | .name = "MATRIX Vision Sigma-SLC", | ||
2224 | .video_inputs = 4, | ||
2225 | .audio_inputs = 0, | ||
2226 | .tuner = -1, | ||
2227 | .svhs = -1, | ||
2228 | .gpiomask = 0x0, | ||
2229 | .muxsel = { 2, 2, 2, 2 }, | ||
2230 | .muxsel_hook = sigmaSLC_muxsel, | ||
2231 | .audiomux = { 0 }, | ||
2232 | .no_msp34xx = 1, | ||
2233 | .pll = PLL_28, | ||
2234 | .tuner_type = -1, | ||
2235 | .tuner_addr = ADDR_UNSET, | ||
2236 | },{ | ||
2237 | /* BTTV_APAC_VIEWCOMP */ | ||
2238 | /* Attila Kondoros <attila.kondoros@chello.hu> */ | ||
2239 | /* bt878 TV + FM 0x00000000 subsystem ID */ | ||
2240 | .name = "APAC Viewcomp 878(AMAX)", | ||
2241 | .video_inputs = 2, | ||
2242 | .audio_inputs = 1, | ||
2243 | .tuner = 0, | ||
2244 | .svhs = -1, | ||
2245 | .gpiomask = 0xFF, | ||
2246 | .muxsel = { 2, 3, 1, 1}, | ||
2247 | .audiomux = { 2, 0, 0, 0, 10}, | ||
2248 | .needs_tvaudio = 0, | ||
2249 | .pll = PLL_28, | ||
2250 | .tuner_type = TUNER_PHILIPS_PAL, | ||
2251 | .tuner_addr = ADDR_UNSET, | ||
2252 | .has_remote = 1, /* miniremote works, see ir-kbd-gpio.c */ | ||
2253 | .has_radio = 1, /* not every card has radio */ | ||
2254 | },{ | ||
2255 | |||
2256 | /* ---- card 0x80 ---------------------------------- */ | ||
2257 | /* Chris Pascoe <c.pascoe@itee.uq.edu.au> */ | ||
2258 | .name = "DViCO FusionHDTV DVB-T Lite", | ||
2259 | .tuner = -1, | ||
2260 | .no_msp34xx = 1, | ||
2261 | .no_tda9875 = 1, | ||
2262 | .no_tda7432 = 1, | ||
2263 | .pll = PLL_28, | ||
2264 | .no_video = 1, | ||
2265 | .has_dvb = 1, | ||
2266 | .tuner_type = -1, | ||
2267 | .tuner_addr = ADDR_UNSET, | ||
2268 | },{ | ||
2269 | /* Steven <photon38@pchome.com.tw> */ | ||
2270 | .name = "V-Gear MyVCD", | ||
2271 | .video_inputs = 3, | ||
2272 | .audio_inputs = 1, | ||
2273 | .tuner = 0, | ||
2274 | .svhs = 2, | ||
2275 | .gpiomask = 0x3f, | ||
2276 | .muxsel = {2, 3, 1, 0}, | ||
2277 | .audiomux = {0x31, 0x31, 0x31, 0x31, 0x31, 0x31}, | ||
2278 | .no_msp34xx = 1, | ||
2279 | .pll = PLL_28, | ||
2280 | .tuner_type = TUNER_PHILIPS_NTSC_M, | ||
2281 | .tuner_addr = ADDR_UNSET, | ||
2282 | .has_radio = 0, | ||
2283 | },{ | ||
2284 | /* Rick C <cryptdragoon@gmail.com> */ | ||
2285 | .name = "Super TV Tuner", | ||
2286 | .video_inputs = 4, | ||
2287 | .audio_inputs = 1, | ||
2288 | .tuner = 0, | ||
2289 | .svhs = 2, | ||
2290 | .muxsel = { 2, 3, 1, 0}, | ||
2291 | .tuner_type = TUNER_PHILIPS_NTSC, | ||
2292 | .tuner_addr = ADDR_UNSET, | ||
2293 | .gpiomask = 0x008007, | ||
2294 | .audiomux = { 0, 0x000001,0,0, 0}, | ||
2295 | .needs_tvaudio = 1, | ||
2296 | .has_radio = 1, | ||
2297 | },{ | ||
2298 | /* Chris Fanning <video4linux@haydon.net> */ | ||
2299 | .name = "Tibet Systems 'Progress DVR' CS16", | ||
2300 | .video_inputs = 16, | ||
2301 | .audio_inputs = 0, | ||
2302 | .tuner = -1, | ||
2303 | .svhs = -1, | ||
2304 | .muxsel = { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, | ||
2305 | .pll = PLL_28, | ||
2306 | .no_msp34xx = 1, | ||
2307 | .no_tda9875 = 1, | ||
2308 | .no_tda7432 = 1, | ||
2309 | .tuner_type = -1, | ||
2310 | .tuner_addr = ADDR_UNSET, | ||
2311 | .muxsel_hook = tibetCS16_muxsel, | ||
2312 | }, | ||
2313 | { | ||
2314 | /* Bill Brack <wbrack@mmm.com.hk> */ | ||
2315 | /* | ||
2316 | * Note that, because of the card's wiring, the "master" | ||
2317 | * BT878A chip (i.e. the one which controls the analog switch | ||
2318 | * and must use this card type) is the 2nd one detected. The | ||
2319 | * other 3 chips should use card type 0x85, whose description | ||
2320 | * follows this one. There is a EEPROM on the card (which is | ||
2321 | * connected to the I2C of one of those other chips), but is | ||
2322 | * not currently handled. There is also a facility for a | ||
2323 | * "monitor", which is also not currently implemented. | ||
2324 | */ | 754 | */ |
2325 | .name = "Kodicom 4400R (master)", | 755 | |
2326 | .video_inputs = 16, | 756 | }, |
2327 | .audio_inputs = 0, | 757 | [BTTV_PXC200] = { |
2328 | .tuner = -1, | 758 | /* Jannik Fritsch <jannik@techfak.uni-bielefeld.de> */ |
2329 | .tuner_type = -1, | 759 | .name = "Imagenation PXC200", |
2330 | .tuner_addr = ADDR_UNSET, | 760 | .video_inputs = 5, |
2331 | .svhs = -1, | 761 | .audio_inputs = 1, |
2332 | /* GPIO bits 0-9 used for analog switch: | 762 | .tuner = -1, |
2333 | * 00 - 03: camera selector | 763 | .svhs = 1, /* was: 4 */ |
2334 | * 04 - 06: channel (controller) selector | 764 | .gpiomask = 0, |
2335 | * 07: data (1->on, 0->off) | 765 | .muxsel = { 2, 3, 1, 0, 0}, |
2336 | * 08: strobe | 766 | .audiomux = { 0 }, |
2337 | * 09: reset | 767 | .needs_tvaudio = 1, |
2338 | * bit 16 is input from sync separator for the channel | 768 | .tuner_type = -1, |
2339 | */ | 769 | .tuner_addr = ADDR_UNSET, |
2340 | .gpiomask = 0x0003ff, | 770 | .muxsel_hook = PXC200_muxsel, |
2341 | .no_gpioirq = 1, | 771 | |
2342 | .muxsel = { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 }, | 772 | }, |
2343 | .pll = PLL_28, | 773 | [BTTV_FLYVIDEO_98] = { |
2344 | .no_msp34xx = 1, | 774 | .name = "Lifeview FlyVideo 98 LR50", |
2345 | .no_tda7432 = 1, | 775 | .video_inputs = 4, |
2346 | .no_tda9875 = 1, | 776 | .audio_inputs = 1, |
2347 | .muxsel_hook = kodicom4400r_muxsel, | 777 | .tuner = 0, |
2348 | }, | 778 | .svhs = 2, |
2349 | { | 779 | .gpiomask = 0x1800, /* 0x8dfe00 */ |
2350 | /* Bill Brack <wbrack@mmm.com.hk> */ | 780 | .muxsel = { 2, 3, 1, 1}, |
2351 | /* Note that, for reasons unknown, the "master" BT878A chip (i.e. the | 781 | .audiomux = { 0, 0x0800, 0x1000, 0x1000, 0x1800, 0 }, |
2352 | * one which controls the analog switch, and must use the card type) | 782 | .pll = PLL_28, |
2353 | * is the 2nd one detected. The other 3 chips should use this card | 783 | .tuner_type = -1, |
2354 | * type | 784 | .tuner_addr = ADDR_UNSET, |
785 | }, | ||
786 | [BTTV_IPROTV] = { | ||
787 | .name = "Formac iProTV, Formac ProTV I (bt848)", | ||
788 | .video_inputs = 4, | ||
789 | .audio_inputs = 1, | ||
790 | .tuner = 0, | ||
791 | .svhs = 3, | ||
792 | .gpiomask = 1, | ||
793 | .muxsel = { 2, 3, 1, 1}, | ||
794 | .audiomux = { 1, 0, 0, 0, 0 }, | ||
795 | .pll = PLL_28, | ||
796 | .tuner_type = TUNER_PHILIPS_PAL, | ||
797 | .tuner_addr = ADDR_UNSET, | ||
798 | }, | ||
799 | |||
800 | /* ---- card 0x20 ---------------------------------- */ | ||
801 | [BTTV_INTEL_C_S_PCI] = { | ||
802 | .name = "Intel Create and Share PCI/ Smart Video Recorder III", | ||
803 | .video_inputs = 4, | ||
804 | .audio_inputs = 0, | ||
805 | .tuner = -1, | ||
806 | .svhs = 2, | ||
807 | .gpiomask = 0, | ||
808 | .muxsel = { 2, 3, 1, 1}, | ||
809 | .audiomux = { 0 }, | ||
810 | .needs_tvaudio = 0, | ||
811 | .tuner_type = 4, | ||
812 | .tuner_addr = ADDR_UNSET, | ||
813 | }, | ||
814 | [BTTV_TERRATVALUE] = { | ||
815 | .name = "Terratec TerraTValue Version Bt878", | ||
816 | .video_inputs = 3, | ||
817 | .audio_inputs = 1, | ||
818 | .tuner = 0, | ||
819 | .svhs = 2, | ||
820 | .gpiomask = 0xffff00, | ||
821 | .muxsel = { 2, 3, 1, 1}, | ||
822 | .audiomux = { 0x500, 0, 0x300, 0x900, 0x900}, | ||
823 | .needs_tvaudio = 1, | ||
824 | .pll = PLL_28, | ||
825 | .tuner_type = TUNER_PHILIPS_PAL, | ||
826 | .tuner_addr = ADDR_UNSET, | ||
827 | }, | ||
828 | [BTTV_WINFAST2000] = { | ||
829 | .name = "Leadtek WinFast 2000/ WinFast 2000 XP", | ||
830 | .video_inputs = 4, | ||
831 | .audio_inputs = 1, | ||
832 | .tuner = 0, | ||
833 | .svhs = 2, | ||
834 | .muxsel = { 2, 3, 1, 1, 0}, /* TV, CVid, SVid, CVid over SVid connector */ | ||
835 | #if 0 | ||
836 | .gpiomask = 0xc33000, | ||
837 | .audiomux = { 0x422000,0x1000,0x0000,0x620000,0x800000 }, | ||
838 | #else | ||
839 | /* Alexander Varakin <avarakin@hotmail.com> [stereo version] */ | ||
840 | .gpiomask = 0xb33000, | ||
841 | .audiomux = { 0x122000,0x1000,0x0000,0x620000,0x800000 }, | ||
842 | #endif | ||
843 | /* Audio Routing for "WinFast 2000 XP" (no tv stereo !) | ||
844 | gpio23 -- hef4052:nEnable (0x800000) | ||
845 | gpio12 -- hef4052:A1 | ||
846 | gpio13 -- hef4052:A0 | ||
847 | 0x0000: external audio | ||
848 | 0x1000: FM | ||
849 | 0x2000: TV | ||
850 | 0x3000: n.c. | ||
851 | Note: There exists another variant "Winfast 2000" with tv stereo !? | ||
852 | Note: eeprom only contains FF and pci subsystem id 107d:6606 | ||
853 | */ | ||
854 | .needs_tvaudio = 0, | ||
855 | .pll = PLL_28, | ||
856 | .has_radio = 1, | ||
857 | .tuner_type = 5, /* default for now, gpio reads BFFF06 for Pal bg+dk */ | ||
858 | .tuner_addr = ADDR_UNSET, | ||
859 | .audio_hook = winfast2000_audio, | ||
860 | .has_remote = 1, | ||
861 | }, | ||
862 | [BTTV_CHRONOS_VS2] = { | ||
863 | .name = "Lifeview FlyVideo 98 LR50 / Chronos Video Shuttle II", | ||
864 | .video_inputs = 4, | ||
865 | .audio_inputs = 3, | ||
866 | .tuner = 0, | ||
867 | .svhs = 2, | ||
868 | .gpiomask = 0x1800, | ||
869 | .muxsel = { 2, 3, 1, 1}, | ||
870 | .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800}, | ||
871 | .pll = PLL_28, | ||
872 | .tuner_type = -1, | ||
873 | .tuner_addr = ADDR_UNSET, | ||
874 | }, | ||
875 | |||
876 | /* ---- card 0x24 ---------------------------------- */ | ||
877 | [BTTV_TYPHOON_TVIEW] = { | ||
878 | .name = "Lifeview FlyVideo 98FM LR50 / Typhoon TView TV/FM Tuner", | ||
879 | .video_inputs = 4, | ||
880 | .audio_inputs = 3, | ||
881 | .tuner = 0, | ||
882 | .svhs = 2, | ||
883 | .gpiomask = 0x1800, | ||
884 | .muxsel = { 2, 3, 1, 1}, | ||
885 | .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800, 0 }, | ||
886 | .pll = PLL_28, | ||
887 | .tuner_type = -1, | ||
888 | .tuner_addr = ADDR_UNSET, | ||
889 | .has_radio = 1, | ||
890 | }, | ||
891 | [BTTV_PXELVWPLTVPRO] = { | ||
892 | .name = "Prolink PixelView PlayTV pro", | ||
893 | .video_inputs = 3, | ||
894 | .audio_inputs = 1, | ||
895 | .tuner = 0, | ||
896 | .svhs = 2, | ||
897 | .gpiomask = 0xff, | ||
898 | .muxsel = { 2, 3, 1, 1 }, | ||
899 | .audiomux = { 0x21, 0x20, 0x24, 0x2c, 0x29, 0x29 }, | ||
900 | .no_msp34xx = 1, | ||
901 | .pll = PLL_28, | ||
902 | .tuner_type = -1, | ||
903 | .tuner_addr = ADDR_UNSET, | ||
904 | }, | ||
905 | [BTTV_MAGICTVIEW063] = { | ||
906 | .name = "Askey CPH06X TView99", | ||
907 | .video_inputs = 4, | ||
908 | .audio_inputs = 1, | ||
909 | .tuner = 0, | ||
910 | .svhs = 2, | ||
911 | .gpiomask = 0x551e00, | ||
912 | .muxsel = { 2, 3, 1, 0}, | ||
913 | .audiomux = { 0x551400, 0x551200, 0, 0, 0x551c00, 0x551200 }, | ||
914 | .needs_tvaudio = 1, | ||
915 | .pll = PLL_28, | ||
916 | .tuner_type = 1, | ||
917 | .tuner_addr = ADDR_UNSET, | ||
918 | .has_remote = 1, | ||
919 | }, | ||
920 | [BTTV_PINNACLE] = { | ||
921 | .name = "Pinnacle PCTV Studio/Rave", | ||
922 | .video_inputs = 3, | ||
923 | .audio_inputs = 1, | ||
924 | .tuner = 0, | ||
925 | .svhs = 2, | ||
926 | .gpiomask = 0x03000F, | ||
927 | .muxsel = { 2, 3, 1, 1}, | ||
928 | .audiomux = { 2, 0xd0001, 0, 0, 1}, | ||
929 | .needs_tvaudio = 0, | ||
930 | .pll = PLL_28, | ||
931 | .tuner_type = -1, | ||
932 | .tuner_addr = ADDR_UNSET, | ||
933 | }, | ||
934 | |||
935 | /* ---- card 0x28 ---------------------------------- */ | ||
936 | [BTTV_STB2] = { | ||
937 | .name = "STB TV PCI FM, Gateway P/N 6000704 (bt878), 3Dfx VoodooTV 100", | ||
938 | .video_inputs = 3, | ||
939 | .audio_inputs = 1, | ||
940 | .tuner = 0, | ||
941 | .svhs = 2, | ||
942 | .gpiomask = 7, | ||
943 | .muxsel = { 2, 3, 1, 1}, | ||
944 | .audiomux = { 4, 0, 2, 3, 1}, | ||
945 | .no_msp34xx = 1, | ||
946 | .needs_tvaudio = 1, | ||
947 | .tuner_type = TUNER_PHILIPS_NTSC, | ||
948 | .tuner_addr = ADDR_UNSET, | ||
949 | .pll = PLL_28, | ||
950 | .has_radio = 1, | ||
951 | }, | ||
952 | [BTTV_AVPHONE98] = { | ||
953 | .name = "AVerMedia TVPhone 98", | ||
954 | .video_inputs = 3, | ||
955 | .audio_inputs = 4, | ||
956 | .tuner = 0, | ||
957 | .svhs = 2, | ||
958 | .gpiomask = 15, | ||
959 | .muxsel = { 2, 3, 1, 1}, | ||
960 | .audiomux = { 13, 4, 11, 7, 0, 0}, | ||
961 | .needs_tvaudio = 1, | ||
962 | .pll = PLL_28, | ||
963 | .tuner_type = -1, | ||
964 | .tuner_addr = ADDR_UNSET, | ||
965 | .has_radio = 1, | ||
966 | .audio_hook = avermedia_tvphone_audio, | ||
967 | }, | ||
968 | [BTTV_PV951] = { | ||
969 | .name = "ProVideo PV951", /* pic16c54 */ | ||
970 | .video_inputs = 3, | ||
971 | .audio_inputs = 1, | ||
972 | .tuner = 0, | ||
973 | .svhs = 2, | ||
974 | .gpiomask = 0, | ||
975 | .muxsel = { 2, 3, 1, 1}, | ||
976 | .audiomux = { 0, 0, 0, 0, 0}, | ||
977 | .needs_tvaudio = 1, | ||
978 | .no_msp34xx = 1, | ||
979 | .pll = PLL_28, | ||
980 | .tuner_type = 1, | ||
981 | .tuner_addr = ADDR_UNSET, | ||
982 | }, | ||
983 | [BTTV_ONAIR_TV] = { | ||
984 | .name = "Little OnAir TV", | ||
985 | .video_inputs = 3, | ||
986 | .audio_inputs = 1, | ||
987 | .tuner = 0, | ||
988 | .svhs = 2, | ||
989 | .gpiomask = 0xe00b, | ||
990 | .muxsel = {2, 3, 1, 1}, | ||
991 | .audiomux = {0xff9ff6, 0xff9ff6, 0xff1ff7, 0, 0xff3ffc}, | ||
992 | .no_msp34xx = 1, | ||
993 | .tuner_type = -1, | ||
994 | .tuner_addr = ADDR_UNSET, | ||
995 | }, | ||
996 | |||
997 | /* ---- card 0x2c ---------------------------------- */ | ||
998 | [BTTV_SIGMA_TVII_FM] = { | ||
999 | .name = "Sigma TVII-FM", | ||
1000 | .video_inputs = 2, | ||
1001 | .audio_inputs = 1, | ||
1002 | .tuner = 0, | ||
1003 | .svhs = -1, | ||
1004 | .gpiomask = 3, | ||
1005 | .muxsel = {2, 3, 1, 1}, | ||
1006 | .audiomux = {1, 1, 0, 2, 3}, | ||
1007 | .no_msp34xx = 1, | ||
1008 | .pll = PLL_NONE, | ||
1009 | .tuner_type = -1, | ||
1010 | .tuner_addr = ADDR_UNSET, | ||
1011 | }, | ||
1012 | [BTTV_MATRIX_VISION2] = { | ||
1013 | .name = "MATRIX-Vision MV-Delta 2", | ||
1014 | .video_inputs = 5, | ||
1015 | .audio_inputs = 1, | ||
1016 | .tuner = -1, | ||
1017 | .svhs = 3, | ||
1018 | .gpiomask = 0, | ||
1019 | .muxsel = { 2, 3, 1, 0, 0}, | ||
1020 | .audiomux = {0 }, | ||
1021 | .no_msp34xx = 1, | ||
1022 | .pll = PLL_28, | ||
1023 | .tuner_type = -1, | ||
1024 | .tuner_addr = ADDR_UNSET, | ||
1025 | }, | ||
1026 | [BTTV_ZOLTRIX_GENIE] = { | ||
1027 | .name = "Zoltrix Genie TV/FM", | ||
1028 | .video_inputs = 3, | ||
1029 | .audio_inputs = 1, | ||
1030 | .tuner = 0, | ||
1031 | .svhs = 2, | ||
1032 | .gpiomask = 0xbcf03f, | ||
1033 | .muxsel = { 2, 3, 1, 1}, | ||
1034 | .audiomux = { 0xbc803f, 0xbc903f, 0xbcb03f, 0, 0xbcb03f}, | ||
1035 | .no_msp34xx = 1, | ||
1036 | .pll = PLL_28, | ||
1037 | .tuner_type = 21, | ||
1038 | .tuner_addr = ADDR_UNSET, | ||
1039 | }, | ||
1040 | [BTTV_TERRATVRADIO] = { | ||
1041 | .name = "Terratec TV/Radio+", | ||
1042 | .video_inputs = 3, | ||
1043 | .audio_inputs = 1, | ||
1044 | .tuner = 0, | ||
1045 | .svhs = 2, | ||
1046 | .gpiomask = 0x70000, | ||
1047 | .muxsel = { 2, 3, 1, 1}, | ||
1048 | .audiomux = { 0x20000, 0x30000, 0x10000, 0, 0x40000, 0x20000 }, | ||
1049 | .needs_tvaudio = 1, | ||
1050 | .no_msp34xx = 1, | ||
1051 | .pll = PLL_35, | ||
1052 | .tuner_type = 1, | ||
1053 | .tuner_addr = ADDR_UNSET, | ||
1054 | .has_radio = 1, | ||
1055 | }, | ||
1056 | |||
1057 | /* ---- card 0x30 ---------------------------------- */ | ||
1058 | [BTTV_DYNALINK] = { | ||
1059 | .name = "Askey CPH03x/ Dynalink Magic TView", | ||
1060 | .video_inputs = 3, | ||
1061 | .audio_inputs = 1, | ||
1062 | .tuner = 0, | ||
1063 | .svhs = 2, | ||
1064 | .gpiomask = 15, | ||
1065 | .muxsel = { 2, 3, 1, 1}, | ||
1066 | .audiomux = {2,0,0,0,1}, | ||
1067 | .needs_tvaudio = 1, | ||
1068 | .pll = PLL_28, | ||
1069 | .tuner_type = -1, | ||
1070 | .tuner_addr = ADDR_UNSET, | ||
1071 | }, | ||
1072 | [BTTV_GVBCTV3PCI] = { | ||
1073 | .name = "IODATA GV-BCTV3/PCI", | ||
1074 | .video_inputs = 3, | ||
1075 | .audio_inputs = 1, | ||
1076 | .tuner = 0, | ||
1077 | .svhs = 2, | ||
1078 | .gpiomask = 0x010f00, | ||
1079 | .muxsel = {2, 3, 0, 0}, | ||
1080 | .audiomux = {0x10000, 0, 0x10000, 0, 0, 0}, | ||
1081 | .no_msp34xx = 1, | ||
1082 | .pll = PLL_28, | ||
1083 | .tuner_type = TUNER_ALPS_TSHC6_NTSC, | ||
1084 | .tuner_addr = ADDR_UNSET, | ||
1085 | .audio_hook = gvbctv3pci_audio, | ||
1086 | }, | ||
1087 | [BTTV_PXELVWPLTVPAK] = { | ||
1088 | .name = "Prolink PV-BT878P+4E / PixelView PlayTV PAK / Lenco MXTV-9578 CP", | ||
1089 | .video_inputs = 5, | ||
1090 | .audio_inputs = 1, | ||
1091 | .tuner = 0, | ||
1092 | .svhs = 3, | ||
1093 | .gpiomask = 0xAA0000, | ||
1094 | .muxsel = { 2,3,1,1,-1 }, | ||
1095 | .digital_mode = DIGITAL_MODE_CAMERA, | ||
1096 | .audiomux = { 0x20000, 0, 0x80000, 0x80000, 0xa8000, 0x46000 }, | ||
1097 | .no_msp34xx = 1, | ||
1098 | .pll = PLL_28, | ||
1099 | .tuner_type = TUNER_PHILIPS_PAL_I, | ||
1100 | .tuner_addr = ADDR_UNSET, | ||
1101 | .has_remote = 1, | ||
1102 | /* GPIO wiring: (different from Rev.4C !) | ||
1103 | GPIO17: U4.A0 (first hef4052bt) | ||
1104 | GPIO19: U4.A1 | ||
1105 | GPIO20: U5.A1 (second hef4052bt) | ||
1106 | GPIO21: U4.nEN | ||
1107 | GPIO22: BT832 Reset Line | ||
1108 | GPIO23: A5,A0, U5,nEN | ||
1109 | Note: At i2c=0x8a is a Bt832 chip, which changes to 0x88 after being reset via GPIO22 | ||
1110 | */ | ||
1111 | }, | ||
1112 | [BTTV_EAGLE] = { | ||
1113 | .name = "Eagle Wireless Capricorn2 (bt878A)", | ||
1114 | .video_inputs = 4, | ||
1115 | .audio_inputs = 1, | ||
1116 | .tuner = 0, | ||
1117 | .svhs = 2, | ||
1118 | .gpiomask = 7, | ||
1119 | .muxsel = { 2, 0, 1, 1}, | ||
1120 | .audiomux = { 0, 1, 2, 3, 4}, | ||
1121 | .pll = PLL_28, | ||
1122 | .tuner_type = -1 /* TUNER_ALPS_TMDH2_NTSC */, | ||
1123 | .tuner_addr = ADDR_UNSET, | ||
1124 | }, | ||
1125 | |||
1126 | /* ---- card 0x34 ---------------------------------- */ | ||
1127 | [BTTV_PINNACLEPRO] = { | ||
1128 | /* David Härdeman <david@2gen.com> */ | ||
1129 | .name = "Pinnacle PCTV Studio Pro", | ||
1130 | .video_inputs = 4, | ||
1131 | .audio_inputs = 1, | ||
1132 | .tuner = 0, | ||
1133 | .svhs = 3, | ||
1134 | .gpiomask = 0x03000F, | ||
1135 | .muxsel = { 2, 3, 1, 1}, | ||
1136 | .audiomux = { 1, 0xd0001, 0, 0, 10}, | ||
1137 | /* sound path (5 sources): | ||
1138 | MUX1 (mask 0x03), Enable Pin 0x08 (0=enable, 1=disable) | ||
1139 | 0= ext. Audio IN | ||
1140 | 1= from MUX2 | ||
1141 | 2= Mono TV sound from Tuner | ||
1142 | 3= not connected | ||
1143 | MUX2 (mask 0x30000): | ||
1144 | 0,2,3= from MSP34xx | ||
1145 | 1= FM stereo Radio from Tuner */ | ||
1146 | .needs_tvaudio = 0, | ||
1147 | .pll = PLL_28, | ||
1148 | .tuner_type = -1, | ||
1149 | .tuner_addr = ADDR_UNSET, | ||
1150 | }, | ||
1151 | [BTTV_TVIEW_RDS_FM] = { | ||
1152 | /* Claas Langbehn <claas@bigfoot.com>, | ||
1153 | Sven Grothklags <sven@upb.de> */ | ||
1154 | .name = "Typhoon TView RDS + FM Stereo / KNC1 TV Station RDS", | ||
1155 | .video_inputs = 4, | ||
1156 | .audio_inputs = 3, | ||
1157 | .tuner = 0, | ||
1158 | .svhs = 2, | ||
1159 | .gpiomask = 0x1c, | ||
1160 | .muxsel = { 2, 3, 1, 1}, | ||
1161 | .audiomux = { 0, 0, 0x10, 8, 4 }, | ||
1162 | .needs_tvaudio = 1, | ||
1163 | .pll = PLL_28, | ||
1164 | .tuner_type = TUNER_PHILIPS_PAL, | ||
1165 | .tuner_addr = ADDR_UNSET, | ||
1166 | .has_radio = 1, | ||
1167 | }, | ||
1168 | [BTTV_LIFETEC_9415] = { | ||
1169 | /* Tim Röstermundt <rosterm@uni-muenster.de> | ||
1170 | in de.comp.os.unix.linux.hardware: | ||
1171 | options bttv card=0 pll=1 radio=1 gpiomask=0x18e0 | ||
1172 | audiomux=0x44c71f,0x44d71f,0,0x44d71f,0x44dfff | ||
1173 | options tuner type=5 */ | ||
1174 | .name = "Lifeview FlyVideo 2000 /FlyVideo A2/ Lifetec LT 9415 TV [LR90]", | ||
1175 | .video_inputs = 4, | ||
1176 | .audio_inputs = 1, | ||
1177 | .tuner = 0, | ||
1178 | .svhs = 2, | ||
1179 | .gpiomask = 0x18e0, | ||
1180 | .muxsel = { 2, 3, 1, 1}, | ||
1181 | .audiomux = { 0x0000,0x0800,0x1000,0x1000,0x18e0 }, | ||
1182 | /* For cards with tda9820/tda9821: | ||
1183 | 0x0000: Tuner normal stereo | ||
1184 | 0x0080: Tuner A2 SAP (second audio program = Zweikanalton) | ||
1185 | 0x0880: Tuner A2 stereo */ | ||
1186 | .pll = PLL_28, | ||
1187 | .tuner_type = -1, | ||
1188 | .tuner_addr = ADDR_UNSET, | ||
1189 | }, | ||
1190 | [BTTV_BESTBUY_EASYTV] = { | ||
1191 | /* Miguel Angel Alvarez <maacruz@navegalia.com> | ||
1192 | old Easy TV BT848 version (model CPH031) */ | ||
1193 | .name = "Askey CPH031/ BESTBUY Easy TV", | ||
1194 | .video_inputs = 4, | ||
1195 | .audio_inputs = 1, | ||
1196 | .tuner = 0, | ||
1197 | .svhs = 2, | ||
1198 | .gpiomask = 0xF, | ||
1199 | .muxsel = { 2, 3, 1, 0}, | ||
1200 | .audiomux = { 2, 0, 0, 0, 10}, | ||
1201 | .needs_tvaudio = 0, | ||
1202 | .pll = PLL_28, | ||
1203 | .tuner_type = TUNER_TEMIC_PAL, | ||
1204 | .tuner_addr = ADDR_UNSET, | ||
1205 | }, | ||
1206 | |||
1207 | /* ---- card 0x38 ---------------------------------- */ | ||
1208 | [BTTV_FLYVIDEO_98FM] = { | ||
1209 | /* Gordon Heydon <gjheydon@bigfoot.com ('98) */ | ||
1210 | .name = "Lifeview FlyVideo 98FM LR50", | ||
1211 | .video_inputs = 4, | ||
1212 | .audio_inputs = 3, | ||
1213 | .tuner = 0, | ||
1214 | .svhs = 2, | ||
1215 | .gpiomask = 0x1800, | ||
1216 | .muxsel = { 2, 3, 1, 1}, | ||
1217 | .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800, 0 }, | ||
1218 | .pll = PLL_28, | ||
1219 | .tuner_type = 5, | ||
1220 | .tuner_addr = ADDR_UNSET, | ||
1221 | }, | ||
1222 | /* This is the ultimate cheapo capture card | ||
1223 | * just a BT848A on a small PCB! | ||
1224 | * Steve Hosgood <steve@equiinet.com> */ | ||
1225 | [BTTV_GRANDTEC] = { | ||
1226 | .name = "GrandTec 'Grand Video Capture' (Bt848)", | ||
1227 | .video_inputs = 2, | ||
1228 | .audio_inputs = 0, | ||
1229 | .tuner = -1, | ||
1230 | .svhs = 1, | ||
1231 | .gpiomask = 0, | ||
1232 | .muxsel = { 3, 1 }, | ||
1233 | .audiomux = { 0 }, | ||
1234 | .needs_tvaudio = 0, | ||
1235 | .no_msp34xx = 1, | ||
1236 | .pll = PLL_35, | ||
1237 | .tuner_type = -1, | ||
1238 | .tuner_addr = ADDR_UNSET, | ||
1239 | }, | ||
1240 | [BTTV_ASKEY_CPH060] = { | ||
1241 | /* Daniel Herrington <daniel.herrington@home.com> */ | ||
1242 | .name = "Askey CPH060/ Phoebe TV Master Only (No FM)", | ||
1243 | .video_inputs = 3, | ||
1244 | .audio_inputs = 1, | ||
1245 | .tuner = 0, | ||
1246 | .svhs = 2, | ||
1247 | .gpiomask = 0xe00, | ||
1248 | .muxsel = { 2, 3, 1, 1}, | ||
1249 | .audiomux = { 0x400, 0x400, 0x400, 0x400, 0x800, 0x400 }, | ||
1250 | .needs_tvaudio = 1, | ||
1251 | .pll = PLL_28, | ||
1252 | .tuner_type = TUNER_TEMIC_4036FY5_NTSC, | ||
1253 | .tuner_addr = ADDR_UNSET, | ||
1254 | }, | ||
1255 | [BTTV_ASKEY_CPH03X] = { | ||
1256 | /* Matti Mottus <mottus@physic.ut.ee> */ | ||
1257 | .name = "Askey CPH03x TV Capturer", | ||
1258 | .video_inputs = 4, | ||
1259 | .audio_inputs = 1, | ||
1260 | .tuner = 0, | ||
1261 | .svhs = 2, | ||
1262 | .gpiomask = 0x03000F, | ||
1263 | .muxsel = { 2, 3, 1, 0}, | ||
1264 | .audiomux = { 2,0,0,0,1 }, | ||
1265 | .pll = PLL_28, | ||
1266 | .tuner_type = 0, | ||
1267 | .tuner_addr = ADDR_UNSET, | ||
1268 | }, | ||
1269 | |||
1270 | /* ---- card 0x3c ---------------------------------- */ | ||
1271 | [BTTV_MM100PCTV] = { | ||
1272 | /* Philip Blundell <philb@gnu.org> */ | ||
1273 | .name = "Modular Technology MM100PCTV", | ||
1274 | .video_inputs = 2, | ||
1275 | .audio_inputs = 2, | ||
1276 | .tuner = 0, | ||
1277 | .svhs = -1, | ||
1278 | .gpiomask = 11, | ||
1279 | .muxsel = { 2, 3, 1, 1}, | ||
1280 | .audiomux = { 2, 0, 0, 1, 8}, | ||
1281 | .pll = PLL_35, | ||
1282 | .tuner_type = TUNER_TEMIC_PAL, | ||
1283 | .tuner_addr = ADDR_UNSET, | ||
1284 | }, | ||
1285 | [BTTV_GMV1] = { | ||
1286 | /* Adrian Cox <adrian@humboldt.co.uk */ | ||
1287 | .name = "AG Electronics GMV1", | ||
1288 | .video_inputs = 2, | ||
1289 | .audio_inputs = 0, | ||
1290 | .tuner = -1, | ||
1291 | .svhs = 1, | ||
1292 | .gpiomask = 0xF, | ||
1293 | .muxsel = { 2, 2}, | ||
1294 | .audiomux = { }, | ||
1295 | .no_msp34xx = 1, | ||
1296 | .needs_tvaudio = 0, | ||
1297 | .pll = PLL_28, | ||
1298 | .tuner_type = -1, | ||
1299 | .tuner_addr = ADDR_UNSET, | ||
1300 | }, | ||
1301 | [BTTV_BESTBUY_EASYTV2] = { | ||
1302 | /* Miguel Angel Alvarez <maacruz@navegalia.com> | ||
1303 | new Easy TV BT878 version (model CPH061) | ||
1304 | special thanks to Informatica Mieres for providing the card */ | ||
1305 | .name = "Askey CPH061/ BESTBUY Easy TV (bt878)", | ||
1306 | .video_inputs = 3, | ||
1307 | .audio_inputs = 2, | ||
1308 | .tuner = 0, | ||
1309 | .svhs = 2, | ||
1310 | .gpiomask = 0xFF, | ||
1311 | .muxsel = { 2, 3, 1, 0}, | ||
1312 | .audiomux = { 1, 0, 4, 4, 9}, | ||
1313 | .needs_tvaudio = 0, | ||
1314 | .pll = PLL_28, | ||
1315 | .tuner_type = TUNER_PHILIPS_PAL, | ||
1316 | .tuner_addr = ADDR_UNSET, | ||
1317 | }, | ||
1318 | [BTTV_ATI_TVWONDER] = { | ||
1319 | /* Lukas Gebauer <geby@volny.cz> */ | ||
1320 | .name = "ATI TV-Wonder", | ||
1321 | .video_inputs = 3, | ||
1322 | .audio_inputs = 1, | ||
1323 | .tuner = 0, | ||
1324 | .svhs = 2, | ||
1325 | .gpiomask = 0xf03f, | ||
1326 | .muxsel = { 2, 3, 1, 0 }, | ||
1327 | .audiomux = { 0xbffe, 0, 0xbfff, 0, 0xbffe}, | ||
1328 | .pll = PLL_28, | ||
1329 | .tuner_type = TUNER_TEMIC_4006FN5_MULTI_PAL, | ||
1330 | .tuner_addr = ADDR_UNSET, | ||
1331 | }, | ||
1332 | |||
1333 | /* ---- card 0x40 ---------------------------------- */ | ||
1334 | [BTTV_ATI_TVWONDERVE] = { | ||
1335 | /* Lukas Gebauer <geby@volny.cz> */ | ||
1336 | .name = "ATI TV-Wonder VE", | ||
1337 | .video_inputs = 2, | ||
1338 | .audio_inputs = 1, | ||
1339 | .tuner = 0, | ||
1340 | .svhs = -1, | ||
1341 | .gpiomask = 1, | ||
1342 | .muxsel = { 2, 3, 0, 1}, | ||
1343 | .audiomux = { 0, 0, 1, 0, 0}, | ||
1344 | .no_msp34xx = 1, | ||
1345 | .pll = PLL_28, | ||
1346 | .tuner_type = TUNER_TEMIC_4006FN5_MULTI_PAL, | ||
1347 | .tuner_addr = ADDR_UNSET, | ||
1348 | }, | ||
1349 | [BTTV_FLYVIDEO2000] = { | ||
1350 | /* DeeJay <deejay@westel900.net (2000S) */ | ||
1351 | .name = "Lifeview FlyVideo 2000S LR90", | ||
1352 | .video_inputs = 3, | ||
1353 | .audio_inputs = 3, | ||
1354 | .tuner = 0, | ||
1355 | .svhs = 2, | ||
1356 | .gpiomask = 0x18e0, | ||
1357 | .muxsel = { 2, 3, 0, 1}, | ||
1358 | /* Radio changed from 1e80 to 0x800 to make | ||
1359 | FlyVideo2000S in .hu happy (gm)*/ | ||
1360 | /* -dk-???: set mute=0x1800 for tda9874h daughterboard */ | ||
1361 | .audiomux = { 0x0000,0x0800,0x1000,0x1000,0x1800, 0x1080 }, | ||
1362 | .audio_hook = fv2000s_audio, | ||
1363 | .no_msp34xx = 1, | ||
1364 | .no_tda9875 = 1, | ||
1365 | .needs_tvaudio = 1, | ||
1366 | .pll = PLL_28, | ||
1367 | .tuner_type = 5, | ||
1368 | .tuner_addr = ADDR_UNSET, | ||
1369 | }, | ||
1370 | [BTTV_TERRATVALUER] = { | ||
1371 | .name = "Terratec TValueRadio", | ||
1372 | .video_inputs = 3, | ||
1373 | .audio_inputs = 1, | ||
1374 | .tuner = 0, | ||
1375 | .svhs = 2, | ||
1376 | .gpiomask = 0xffff00, | ||
1377 | .muxsel = { 2, 3, 1, 1}, | ||
1378 | .audiomux = { 0x500, 0x500, 0x300, 0x900, 0x900}, | ||
1379 | .needs_tvaudio = 1, | ||
1380 | .pll = PLL_28, | ||
1381 | .tuner_type = TUNER_PHILIPS_PAL, | ||
1382 | .tuner_addr = ADDR_UNSET, | ||
1383 | .has_radio = 1, | ||
1384 | }, | ||
1385 | [BTTV_GVBCTV4PCI] = { | ||
1386 | /* TANAKA Kei <peg00625@nifty.com> */ | ||
1387 | .name = "IODATA GV-BCTV4/PCI", | ||
1388 | .video_inputs = 3, | ||
1389 | .audio_inputs = 1, | ||
1390 | .tuner = 0, | ||
1391 | .svhs = 2, | ||
1392 | .gpiomask = 0x010f00, | ||
1393 | .muxsel = {2, 3, 0, 0}, | ||
1394 | .audiomux = {0x10000, 0, 0x10000, 0, 0, 0}, | ||
1395 | .no_msp34xx = 1, | ||
1396 | .pll = PLL_28, | ||
1397 | .tuner_type = TUNER_SHARP_2U5JF5540_NTSC, | ||
1398 | .tuner_addr = ADDR_UNSET, | ||
1399 | .audio_hook = gvbctv3pci_audio, | ||
1400 | }, | ||
1401 | |||
1402 | /* ---- card 0x44 ---------------------------------- */ | ||
1403 | [BTTV_VOODOOTV_FM] = { | ||
1404 | .name = "3Dfx VoodooTV FM (Euro), VoodooTV 200 (USA)", | ||
1405 | /* try "insmod msp3400 simple=0" if you have | ||
1406 | * sound problems with this card. */ | ||
1407 | .video_inputs = 4, | ||
1408 | .audio_inputs = 1, | ||
1409 | .tuner = 0, | ||
1410 | .svhs = -1, | ||
1411 | .gpiomask = 0x4f8a00, | ||
1412 | /* 0x100000: 1=MSP enabled (0=disable again) | ||
1413 | * 0x010000: Connected to "S0" on tda9880 (0=Pal/BG, 1=NTSC) */ | ||
1414 | .audiomux = {0x947fff, 0x987fff,0x947fff,0x947fff, 0x947fff}, | ||
1415 | /* tvtuner, radio, external,internal, mute, stereo | ||
1416 | * tuner, Composit, SVid, Composit-on-Svid-adapter */ | ||
1417 | .muxsel = { 2, 3 ,0 ,1}, | ||
1418 | .tuner_type = TUNER_MT2032, | ||
1419 | .tuner_addr = ADDR_UNSET, | ||
1420 | .pll = PLL_28, | ||
1421 | .has_radio = 1, | ||
1422 | }, | ||
1423 | [BTTV_AIMMS] = { | ||
1424 | /* Philip Blundell <pb@nexus.co.uk> */ | ||
1425 | .name = "Active Imaging AIMMS", | ||
1426 | .video_inputs = 1, | ||
1427 | .audio_inputs = 0, | ||
1428 | .tuner = -1, | ||
1429 | .tuner_type = -1, | ||
1430 | .tuner_addr = ADDR_UNSET, | ||
1431 | .pll = PLL_28, | ||
1432 | .muxsel = { 2 }, | ||
1433 | .gpiomask = 0 | ||
1434 | }, | ||
1435 | [BTTV_PV_BT878P_PLUS] = { | ||
1436 | /* Tomasz Pyra <hellfire@sedez.iq.pl> */ | ||
1437 | .name = "Prolink Pixelview PV-BT878P+ (Rev.4C,8E)", | ||
1438 | .video_inputs = 3, | ||
1439 | .audio_inputs = 4, | ||
1440 | .tuner = 0, | ||
1441 | .svhs = 2, | ||
1442 | .gpiomask = 15, | ||
1443 | .muxsel = { 2, 3, 1, 1}, | ||
1444 | .audiomux = { 0, 0, 11, 7, 13, 0}, /* TV and Radio with same GPIO ! */ | ||
1445 | .needs_tvaudio = 1, | ||
1446 | .pll = PLL_28, | ||
1447 | .tuner_type = 25, | ||
1448 | .tuner_addr = ADDR_UNSET, | ||
1449 | .has_remote = 1, | ||
1450 | /* GPIO wiring: | ||
1451 | GPIO0: U4.A0 (hef4052bt) | ||
1452 | GPIO1: U4.A1 | ||
1453 | GPIO2: U4.A1 (second hef4052bt) | ||
1454 | GPIO3: U4.nEN, U5.A0, A5.nEN | ||
1455 | GPIO8-15: vrd866b ? | ||
1456 | */ | ||
1457 | }, | ||
1458 | [BTTV_FLYVIDEO98EZ] = { | ||
1459 | .name = "Lifeview FlyVideo 98EZ (capture only) LR51", | ||
1460 | .video_inputs = 4, | ||
1461 | .audio_inputs = 0, | ||
1462 | .tuner = -1, | ||
1463 | .svhs = 2, | ||
1464 | .muxsel = { 2, 3, 1, 1}, /* AV1, AV2, SVHS, CVid adapter on SVHS */ | ||
1465 | .pll = PLL_28, | ||
1466 | .no_msp34xx = 1, | ||
1467 | .tuner_type = UNSET, | ||
1468 | .tuner_addr = ADDR_UNSET, | ||
1469 | }, | ||
1470 | |||
1471 | /* ---- card 0x48 ---------------------------------- */ | ||
1472 | [BTTV_PV_BT878P_9B] = { | ||
1473 | /* Dariusz Kowalewski <darekk@automex.pl> */ | ||
1474 | .name = "Prolink Pixelview PV-BT878P+9B (PlayTV Pro rev.9B FM+NICAM)", | ||
1475 | .video_inputs = 4, | ||
1476 | .audio_inputs = 1, | ||
1477 | .tuner = 0, | ||
1478 | .svhs = 2, | ||
1479 | .gpiomask = 0x3f, | ||
1480 | .muxsel = { 2, 3, 1, 1 }, | ||
1481 | .audiomux = { 0x01, 0x00, 0x03, 0x03, 0x09, 0x02 }, | ||
1482 | .needs_tvaudio = 1, | ||
1483 | .no_msp34xx = 1, | ||
1484 | .no_tda9875 = 1, | ||
1485 | .pll = PLL_28, | ||
1486 | .tuner_type = 5, | ||
1487 | .tuner_addr = ADDR_UNSET, | ||
1488 | .audio_hook = pvbt878p9b_audio, /* Note: not all cards have stereo */ | ||
1489 | .has_radio = 1, /* Note: not all cards have radio */ | ||
1490 | .has_remote = 1, | ||
1491 | /* GPIO wiring: | ||
1492 | GPIO0: A0 hef4052 | ||
1493 | GPIO1: A1 hef4052 | ||
1494 | GPIO3: nEN hef4052 | ||
1495 | GPIO8-15: vrd866b | ||
1496 | GPIO20,22,23: R30,R29,R28 | ||
1497 | */ | ||
1498 | }, | ||
1499 | [BTTV_SENSORAY311] = { | ||
1500 | /* Clay Kunz <ckunz@mail.arc.nasa.gov> */ | ||
1501 | /* you must jumper JP5 for the card to work */ | ||
1502 | .name = "Sensoray 311", | ||
1503 | .video_inputs = 5, | ||
1504 | .audio_inputs = 0, | ||
1505 | .tuner = -1, | ||
1506 | .svhs = 4, | ||
1507 | .gpiomask = 0, | ||
1508 | .muxsel = { 2, 3, 1, 0, 0}, | ||
1509 | .audiomux = { 0 }, | ||
1510 | .needs_tvaudio = 0, | ||
1511 | .tuner_type = -1, | ||
1512 | .tuner_addr = ADDR_UNSET, | ||
1513 | }, | ||
1514 | [BTTV_RV605] = { | ||
1515 | /* Miguel Freitas <miguel@cetuc.puc-rio.br> */ | ||
1516 | .name = "RemoteVision MX (RV605)", | ||
1517 | .video_inputs = 16, | ||
1518 | .audio_inputs = 0, | ||
1519 | .tuner = -1, | ||
1520 | .svhs = -1, | ||
1521 | .gpiomask = 0x00, | ||
1522 | .gpiomask2 = 0x07ff, | ||
1523 | .muxsel = { 0x33, 0x13, 0x23, 0x43, 0xf3, 0x73, 0xe3, 0x03, | ||
1524 | 0xd3, 0xb3, 0xc3, 0x63, 0x93, 0x53, 0x83, 0xa3 }, | ||
1525 | .no_msp34xx = 1, | ||
1526 | .no_tda9875 = 1, | ||
1527 | .tuner_type = -1, | ||
1528 | .tuner_addr = ADDR_UNSET, | ||
1529 | .muxsel_hook = rv605_muxsel, | ||
1530 | }, | ||
1531 | [BTTV_POWERCLR_MTV878] = { | ||
1532 | .name = "Powercolor MTV878/ MTV878R/ MTV878F", | ||
1533 | .video_inputs = 3, | ||
1534 | .audio_inputs = 2, | ||
1535 | .tuner = 0, | ||
1536 | .svhs = 2, | ||
1537 | .gpiomask = 0x1C800F, /* Bit0-2: Audio select, 8-12:remote control 14:remote valid 15:remote reset */ | ||
1538 | .muxsel = { 2, 1, 1, }, | ||
1539 | .audiomux = { 0, 1, 2, 2, 4 }, | ||
1540 | .needs_tvaudio = 0, | ||
1541 | .tuner_type = TUNER_PHILIPS_PAL, | ||
1542 | .tuner_addr = ADDR_UNSET, | ||
1543 | .pll = PLL_28, | ||
1544 | .has_radio = 1, | ||
1545 | }, | ||
1546 | |||
1547 | /* ---- card 0x4c ---------------------------------- */ | ||
1548 | [BTTV_WINDVR] = { | ||
1549 | /* Masaki Suzuki <masaki@btree.org> */ | ||
1550 | .name = "Canopus WinDVR PCI (COMPAQ Presario 3524JP, 5112JP)", | ||
1551 | .video_inputs = 3, | ||
1552 | .audio_inputs = 1, | ||
1553 | .tuner = 0, | ||
1554 | .svhs = 2, | ||
1555 | .gpiomask = 0x140007, | ||
1556 | .muxsel = { 2, 3, 1, 1 }, | ||
1557 | .audiomux = { 0, 1, 2, 3, 4, 0 }, | ||
1558 | .tuner_type = TUNER_PHILIPS_NTSC, | ||
1559 | .tuner_addr = ADDR_UNSET, | ||
1560 | .audio_hook = windvr_audio, | ||
1561 | }, | ||
1562 | [BTTV_GRANDTEC_MULTI] = { | ||
1563 | .name = "GrandTec Multi Capture Card (Bt878)", | ||
1564 | .video_inputs = 4, | ||
1565 | .audio_inputs = 0, | ||
1566 | .tuner = -1, | ||
1567 | .svhs = -1, | ||
1568 | .gpiomask = 0, | ||
1569 | .muxsel = { 2, 3, 1, 0 }, | ||
1570 | .audiomux = { 0 }, | ||
1571 | .needs_tvaudio = 0, | ||
1572 | .no_msp34xx = 1, | ||
1573 | .pll = PLL_28, | ||
1574 | .tuner_type = -1, | ||
1575 | .tuner_addr = ADDR_UNSET, | ||
1576 | }, | ||
1577 | [BTTV_KWORLD] = { | ||
1578 | .name = "Jetway TV/Capture JW-TV878-FBK, Kworld KW-TV878RF", | ||
1579 | .video_inputs = 4, | ||
1580 | .audio_inputs = 3, | ||
1581 | .tuner = 0, | ||
1582 | .svhs = 2, | ||
1583 | .gpiomask = 7, | ||
1584 | .muxsel = { 2, 3, 1, 1 }, /* Tuner, SVid, SVHS, SVid to SVHS connector */ | ||
1585 | .audiomux = { 0 ,0 ,4, 4,4,4},/* Yes, this tuner uses the same audio output for TV and FM radio! | ||
1586 | * This card lacks external Audio In, so we mute it on Ext. & Int. | ||
1587 | * The PCB can take a sbx1637/sbx1673, wiring unknown. | ||
1588 | * This card lacks PCI subsystem ID, sigh. | ||
1589 | * audiomux=1: lower volume, 2+3: mute | ||
1590 | * btwincap uses 0x80000/0x80003 | ||
1591 | */ | ||
1592 | .needs_tvaudio = 0, | ||
1593 | .no_msp34xx = 1, | ||
1594 | .pll = PLL_28, | ||
1595 | .tuner_type = 5, | ||
1596 | .tuner_addr = ADDR_UNSET, | ||
1597 | /* Samsung TCPA9095PC27A (BG+DK), philips compatible, w/FM, stereo and | ||
1598 | radio signal strength indicators work fine. */ | ||
1599 | .has_radio = 1, | ||
1600 | /* GPIO Info: | ||
1601 | GPIO0,1: HEF4052 A0,A1 | ||
1602 | GPIO2: HEF4052 nENABLE | ||
1603 | GPIO3-7: n.c. | ||
1604 | GPIO8-13: IRDC357 data0-5 (data6 n.c. ?) [chip not present on my card] | ||
1605 | GPIO14,15: ?? | ||
1606 | GPIO16-21: n.c. | ||
1607 | GPIO22,23: ?? | ||
1608 | ?? : mtu8b56ep microcontroller for IR (GPIO wiring unknown)*/ | ||
1609 | }, | ||
1610 | [BTTV_DSP_TCVIDEO] = { | ||
1611 | /* Arthur Tetzlaff-Deas, DSP Design Ltd <software@dspdesign.com> */ | ||
1612 | .name = "DSP Design TCVIDEO", | ||
1613 | .video_inputs = 4, | ||
1614 | .svhs = -1, | ||
1615 | .muxsel = { 2, 3, 1, 0}, | ||
1616 | .pll = PLL_28, | ||
1617 | .tuner_type = -1, | ||
1618 | .tuner_addr = ADDR_UNSET, | ||
1619 | }, | ||
1620 | |||
1621 | /* ---- card 0x50 ---------------------------------- */ | ||
1622 | [BTTV_HAUPPAUGEPVR] = { | ||
1623 | .name = "Hauppauge WinTV PVR", | ||
1624 | .video_inputs = 4, | ||
1625 | .audio_inputs = 1, | ||
1626 | .tuner = 0, | ||
1627 | .svhs = 2, | ||
1628 | .muxsel = { 2, 0, 1, 1}, | ||
1629 | .needs_tvaudio = 1, | ||
1630 | .pll = PLL_28, | ||
1631 | .tuner_type = -1, | ||
1632 | .tuner_addr = ADDR_UNSET, | ||
1633 | |||
1634 | .gpiomask = 7, | ||
1635 | .audiomux = {7}, | ||
1636 | }, | ||
1637 | [BTTV_GVBCTV5PCI] = { | ||
1638 | .name = "IODATA GV-BCTV5/PCI", | ||
1639 | .video_inputs = 3, | ||
1640 | .audio_inputs = 1, | ||
1641 | .tuner = 0, | ||
1642 | .svhs = 2, | ||
1643 | .gpiomask = 0x0f0f80, | ||
1644 | .muxsel = {2, 3, 1, 0}, | ||
1645 | .audiomux = {0x030000, 0x010000, 0, 0, 0x020000, 0}, | ||
1646 | .no_msp34xx = 1, | ||
1647 | .pll = PLL_28, | ||
1648 | .tuner_type = TUNER_PHILIPS_NTSC_M, | ||
1649 | .tuner_addr = ADDR_UNSET, | ||
1650 | .audio_hook = gvbctv5pci_audio, | ||
1651 | .has_radio = 1, | ||
1652 | }, | ||
1653 | [BTTV_OSPREY1x0] = { | ||
1654 | .name = "Osprey 100/150 (878)", /* 0x1(2|3)-45C6-C1 */ | ||
1655 | .video_inputs = 4, /* id-inputs-clock */ | ||
1656 | .audio_inputs = 0, | ||
1657 | .tuner = -1, | ||
1658 | .svhs = 3, | ||
1659 | .muxsel = { 3, 2, 0, 1 }, | ||
1660 | .pll = PLL_28, | ||
1661 | .tuner_type = -1, | ||
1662 | .tuner_addr = ADDR_UNSET, | ||
1663 | .no_msp34xx = 1, | ||
1664 | .no_tda9875 = 1, | ||
1665 | .no_tda7432 = 1, | ||
1666 | }, | ||
1667 | [BTTV_OSPREY1x0_848] = { | ||
1668 | .name = "Osprey 100/150 (848)", /* 0x04-54C0-C1 & older boards */ | ||
1669 | .video_inputs = 3, | ||
1670 | .audio_inputs = 0, | ||
1671 | .tuner = -1, | ||
1672 | .svhs = 2, | ||
1673 | .muxsel = { 2, 3, 1 }, | ||
1674 | .pll = PLL_28, | ||
1675 | .tuner_type = -1, | ||
1676 | .tuner_addr = ADDR_UNSET, | ||
1677 | .no_msp34xx = 1, | ||
1678 | .no_tda9875 = 1, | ||
1679 | .no_tda7432 = 1, | ||
1680 | }, | ||
1681 | |||
1682 | /* ---- card 0x54 ---------------------------------- */ | ||
1683 | [BTTV_OSPREY101_848] = { | ||
1684 | .name = "Osprey 101 (848)", /* 0x05-40C0-C1 */ | ||
1685 | .video_inputs = 2, | ||
1686 | .audio_inputs = 0, | ||
1687 | .tuner = -1, | ||
1688 | .svhs = 1, | ||
1689 | .muxsel = { 3, 1 }, | ||
1690 | .pll = PLL_28, | ||
1691 | .tuner_type = -1, | ||
1692 | .tuner_addr = ADDR_UNSET, | ||
1693 | .no_msp34xx = 1, | ||
1694 | .no_tda9875 = 1, | ||
1695 | .no_tda7432 = 1, | ||
1696 | }, | ||
1697 | [BTTV_OSPREY1x1] = { | ||
1698 | .name = "Osprey 101/151", /* 0x1(4|5)-0004-C4 */ | ||
1699 | .video_inputs = 1, | ||
1700 | .audio_inputs = 0, | ||
1701 | .tuner = -1, | ||
1702 | .svhs = -1, | ||
1703 | .muxsel = { 0 }, | ||
1704 | .pll = PLL_28, | ||
1705 | .tuner_type = -1, | ||
1706 | .tuner_addr = ADDR_UNSET, | ||
1707 | .no_msp34xx = 1, | ||
1708 | .no_tda9875 = 1, | ||
1709 | .no_tda7432 = 1, | ||
1710 | }, | ||
1711 | [BTTV_OSPREY1x1_SVID] = { | ||
1712 | .name = "Osprey 101/151 w/ svid", /* 0x(16|17|20)-00C4-C1 */ | ||
1713 | .video_inputs = 2, | ||
1714 | .audio_inputs = 0, | ||
1715 | .tuner = -1, | ||
1716 | .svhs = 1, | ||
1717 | .muxsel = { 0, 1 }, | ||
1718 | .pll = PLL_28, | ||
1719 | .tuner_type = -1, | ||
1720 | .tuner_addr = ADDR_UNSET, | ||
1721 | .no_msp34xx = 1, | ||
1722 | .no_tda9875 = 1, | ||
1723 | .no_tda7432 = 1, | ||
1724 | }, | ||
1725 | [BTTV_OSPREY2xx] = { | ||
1726 | .name = "Osprey 200/201/250/251", /* 0x1(8|9|E|F)-0004-C4 */ | ||
1727 | .video_inputs = 1, | ||
1728 | .audio_inputs = 1, | ||
1729 | .tuner = -1, | ||
1730 | .svhs = -1, | ||
1731 | .muxsel = { 0 }, | ||
1732 | .pll = PLL_28, | ||
1733 | .tuner_type = UNSET, | ||
1734 | .tuner_addr = ADDR_UNSET, | ||
1735 | .no_msp34xx = 1, | ||
1736 | .no_tda9875 = 1, | ||
1737 | .no_tda7432 = 1, | ||
1738 | }, | ||
1739 | |||
1740 | /* ---- card 0x58 ---------------------------------- */ | ||
1741 | [BTTV_OSPREY2x0_SVID] = { | ||
1742 | .name = "Osprey 200/250", /* 0x1(A|B)-00C4-C1 */ | ||
1743 | .video_inputs = 2, | ||
1744 | .audio_inputs = 1, | ||
1745 | .tuner = -1, | ||
1746 | .svhs = 1, | ||
1747 | .muxsel = { 0, 1 }, | ||
1748 | .pll = PLL_28, | ||
1749 | .tuner_type = UNSET, | ||
1750 | .tuner_addr = ADDR_UNSET, | ||
1751 | .no_msp34xx = 1, | ||
1752 | .no_tda9875 = 1, | ||
1753 | .no_tda7432 = 1, | ||
1754 | }, | ||
1755 | [BTTV_OSPREY2x0] = { | ||
1756 | .name = "Osprey 210/220", /* 0x1(A|B)-04C0-C1 */ | ||
1757 | .video_inputs = 2, | ||
1758 | .audio_inputs = 1, | ||
1759 | .tuner = -1, | ||
1760 | .svhs = 1, | ||
1761 | .muxsel = { 2, 3 }, | ||
1762 | .pll = PLL_28, | ||
1763 | .tuner_type = UNSET, | ||
1764 | .tuner_addr = ADDR_UNSET, | ||
1765 | .no_msp34xx = 1, | ||
1766 | .no_tda9875 = 1, | ||
1767 | .no_tda7432 = 1, | ||
1768 | }, | ||
1769 | [BTTV_OSPREY500] = { | ||
1770 | .name = "Osprey 500", /* 500 */ | ||
1771 | .video_inputs = 2, | ||
1772 | .audio_inputs = 1, | ||
1773 | .tuner = -1, | ||
1774 | .svhs = 1, | ||
1775 | .muxsel = { 2, 3 }, | ||
1776 | .pll = PLL_28, | ||
1777 | .tuner_type = -1, | ||
1778 | .tuner_addr = ADDR_UNSET, | ||
1779 | .no_msp34xx = 1, | ||
1780 | .no_tda9875 = 1, | ||
1781 | .no_tda7432 = 1, | ||
1782 | }, | ||
1783 | [BTTV_OSPREY540] = { | ||
1784 | .name = "Osprey 540", /* 540 */ | ||
1785 | .video_inputs = 4, | ||
1786 | .audio_inputs = 1, | ||
1787 | .tuner = -1, | ||
1788 | #if 0 /* TODO ... */ | ||
1789 | .svhs = OSPREY540_SVID_ANALOG, | ||
1790 | .muxsel = { [OSPREY540_COMP_ANALOG] = 2, | ||
1791 | [OSPREY540_SVID_ANALOG] = 3, }, | ||
1792 | #endif | ||
1793 | .pll = PLL_28, | ||
1794 | .tuner_type = -1, | ||
1795 | .tuner_addr = ADDR_UNSET, | ||
1796 | .no_msp34xx = 1, | ||
1797 | .no_tda9875 = 1, | ||
1798 | .no_tda7432 = 1, | ||
1799 | #if 0 /* TODO ... */ | ||
1800 | .muxsel_hook = osprey_540_muxsel, | ||
1801 | .picture_hook = osprey_540_set_picture, | ||
1802 | #endif | ||
1803 | }, | ||
1804 | |||
1805 | /* ---- card 0x5C ---------------------------------- */ | ||
1806 | [BTTV_OSPREY2000] = { | ||
1807 | .name = "Osprey 2000", /* 2000 */ | ||
1808 | .video_inputs = 2, | ||
1809 | .audio_inputs = 1, | ||
1810 | .tuner = -1, | ||
1811 | .svhs = 1, | ||
1812 | .muxsel = { 2, 3 }, | ||
1813 | .pll = PLL_28, | ||
1814 | .tuner_type = UNSET, | ||
1815 | .tuner_addr = ADDR_UNSET, | ||
1816 | .no_msp34xx = 1, | ||
1817 | .no_tda9875 = 1, | ||
1818 | .no_tda7432 = 1, /* must avoid, conflicts with the bt860 */ | ||
1819 | }, | ||
1820 | [BTTV_IDS_EAGLE] = { | ||
1821 | /* M G Berberich <berberic@forwiss.uni-passau.de> */ | ||
1822 | .name = "IDS Eagle", | ||
1823 | .video_inputs = 4, | ||
1824 | .audio_inputs = 0, | ||
1825 | .tuner = -1, | ||
1826 | .tuner_type = -1, | ||
1827 | .tuner_addr = ADDR_UNSET, | ||
1828 | .svhs = -1, | ||
1829 | .gpiomask = 0, | ||
1830 | .muxsel = { 0, 1, 2, 3 }, | ||
1831 | .muxsel_hook = eagle_muxsel, | ||
1832 | .no_msp34xx = 1, | ||
1833 | .no_tda9875 = 1, | ||
1834 | .pll = PLL_28, | ||
1835 | }, | ||
1836 | [BTTV_PINNACLESAT] = { | ||
1837 | .name = "Pinnacle PCTV Sat", | ||
1838 | .video_inputs = 2, | ||
1839 | .audio_inputs = 0, | ||
1840 | .svhs = 1, | ||
1841 | .tuner = -1, | ||
1842 | .tuner_type = -1, | ||
1843 | .tuner_addr = ADDR_UNSET, | ||
1844 | .no_msp34xx = 1, | ||
1845 | .no_tda9875 = 1, | ||
1846 | .no_tda7432 = 1, | ||
1847 | .muxsel = { 3, 0, 1, 2}, | ||
1848 | .pll = PLL_28, | ||
1849 | .no_gpioirq = 1, | ||
1850 | .has_dvb = 1, | ||
1851 | }, | ||
1852 | [BTTV_FORMAC_PROTV] = { | ||
1853 | .name = "Formac ProTV II (bt878)", | ||
1854 | .video_inputs = 4, | ||
1855 | .audio_inputs = 1, | ||
1856 | .tuner = 0, | ||
1857 | .svhs = 3, | ||
1858 | .gpiomask = 2, | ||
1859 | /* TV, Comp1, Composite over SVID con, SVID */ | ||
1860 | .muxsel = { 2, 3, 1, 1}, | ||
1861 | .audiomux = { 2, 2, 0, 0, 0 }, | ||
1862 | .pll = PLL_28, | ||
1863 | .has_radio = 1, | ||
1864 | .tuner_type = TUNER_PHILIPS_PAL, | ||
1865 | .tuner_addr = ADDR_UNSET, | ||
1866 | /* sound routing: | ||
1867 | GPIO=0x00,0x01,0x03: mute (?) | ||
1868 | 0x02: both TV and radio (tuner: FM1216/I) | ||
1869 | The card has onboard audio connectors labeled "cdrom" and "board", | ||
1870 | not soldered here, though unknown wiring. | ||
1871 | Card lacks: external audio in, pci subsystem id. | ||
2355 | */ | 1872 | */ |
2356 | .name = "Kodicom 4400R (slave)", | 1873 | }, |
2357 | .video_inputs = 16, | 1874 | |
2358 | .audio_inputs = 0, | 1875 | /* ---- card 0x60 ---------------------------------- */ |
2359 | .tuner = -1, | 1876 | [BTTV_MACHTV] = { |
2360 | .tuner_type = -1, | 1877 | .name = "MachTV", |
2361 | .tuner_addr = ADDR_UNSET, | 1878 | .video_inputs = 3, |
2362 | .svhs = -1, | 1879 | .audio_inputs = 1, |
2363 | .gpiomask = 0x010000, | 1880 | .tuner = 0, |
2364 | .no_gpioirq = 1, | 1881 | .svhs = -1, |
2365 | .muxsel = { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 }, | 1882 | .gpiomask = 7, |
2366 | .pll = PLL_28, | 1883 | .muxsel = { 2, 3, 1, 1}, |
2367 | .no_msp34xx = 1, | 1884 | .audiomux = { 0, 1, 2, 3, 4}, |
2368 | .no_tda7432 = 1, | 1885 | .needs_tvaudio = 1, |
2369 | .no_tda9875 = 1, | 1886 | .tuner_type = 5, |
2370 | .muxsel_hook = kodicom4400r_muxsel, | 1887 | .tuner_addr = ADDR_UNSET, |
2371 | }, | 1888 | .pll = 1, |
2372 | { | 1889 | }, |
2373 | /* ---- card 0x86---------------------------------- */ | 1890 | [BTTV_EURESYS_PICOLO] = { |
2374 | /* Michael Henson <mhenson@clarityvi.com> */ | 1891 | .name = "Euresys Picolo", |
2375 | /* Adlink RTV24 with special unlock codes */ | 1892 | .video_inputs = 3, |
2376 | .name = "Adlink RTV24", | 1893 | .audio_inputs = 0, |
2377 | .video_inputs = 4, | 1894 | .tuner = -1, |
2378 | .audio_inputs = 1, | 1895 | .svhs = 2, |
2379 | .tuner = 0, | 1896 | .gpiomask = 0, |
2380 | .svhs = 2, | 1897 | .no_msp34xx = 1, |
2381 | .muxsel = { 2, 3, 1, 0}, | 1898 | .no_tda9875 = 1, |
2382 | .tuner_type = -1, | 1899 | .no_tda7432 = 1, |
2383 | .tuner_addr = ADDR_UNSET, | 1900 | .muxsel = { 2, 0, 1}, |
2384 | .pll = PLL_28, | 1901 | .pll = PLL_28, |
2385 | }, | 1902 | .tuner_type = UNSET, |
2386 | { | 1903 | .tuner_addr = ADDR_UNSET, |
2387 | /* ---- card 0x87---------------------------------- */ | 1904 | }, |
2388 | /* Michael Krufky <mkrufky@m1k.net> */ | 1905 | [BTTV_PV150] = { |
2389 | .name = "DViCO FusionHDTV 5 Lite", | 1906 | /* Luc Van Hoeylandt <luc@e-magic.be> */ |
2390 | .tuner = 0, | 1907 | .name = "ProVideo PV150", /* 0x4f */ |
2391 | .tuner_type = TUNER_LG_TDVS_H062F, | 1908 | .video_inputs = 2, |
2392 | .tuner_addr = ADDR_UNSET, | 1909 | .audio_inputs = 0, |
2393 | .video_inputs = 3, | 1910 | .tuner = -1, |
2394 | .audio_inputs = 1, | 1911 | .svhs = -1, |
2395 | .svhs = 2, | 1912 | .gpiomask = 0, |
2396 | .muxsel = { 2, 3, 1 }, | 1913 | .muxsel = { 2, 3 }, |
2397 | .gpiomask = 0x00e00007, | 1914 | .audiomux = { 0 }, |
2398 | .audiomux = { 0x00400005, 0, 0x00000001, 0, 0x00c00007, 0 }, | 1915 | .needs_tvaudio = 0, |
2399 | .no_msp34xx = 1, | 1916 | .no_msp34xx = 1, |
2400 | .no_tda9875 = 1, | 1917 | .pll = PLL_28, |
2401 | .no_tda7432 = 1, | 1918 | .tuner_type = UNSET, |
2402 | .has_dvb = 1, | 1919 | .tuner_addr = ADDR_UNSET, |
2403 | },{ | 1920 | }, |
2404 | /* ---- card 0x88---------------------------------- */ | 1921 | [BTTV_AD_TVK503] = { |
2405 | /* Mauro Carvalho Chehab <mchehab@brturbo.com.br> */ | 1922 | /* Hiroshi Takekawa <sian@big.or.jp> */ |
2406 | .name = "Acorp Y878F", | 1923 | /* This card lacks subsystem ID */ |
2407 | .video_inputs = 3, | 1924 | .name = "AD-TVK503", /* 0x63 */ |
2408 | .audio_inputs = 1, | 1925 | .video_inputs = 4, |
2409 | .tuner = 0, | 1926 | .audio_inputs = 1, |
2410 | .svhs = 2, | 1927 | .tuner = 0, |
2411 | .gpiomask = 0x01fe00, | 1928 | .svhs = 2, |
2412 | .muxsel = { 2, 3, 1, 1}, | 1929 | .gpiomask = 0x001e8007, |
2413 | .audiomux = { 0x001e00, 0, 0x018000, 0x014000, 0x002000, 0 }, | 1930 | .muxsel = { 2, 3, 1, 0 }, |
2414 | .needs_tvaudio = 1, | 1931 | /* Tuner, Radio, external, internal, off, on */ |
2415 | .pll = PLL_28, | 1932 | .audiomux = { 0x08, 0x0f, 0x0a, 0x08, 0x0f, 0x08 }, |
2416 | .tuner_type = TUNER_YMEC_TVF66T5_B_DFF, | 1933 | .needs_tvaudio = 0, |
2417 | .tuner_addr = 0xc1 >>1, | 1934 | .no_msp34xx = 1, |
2418 | .has_radio = 1, | 1935 | .pll = PLL_28, |
2419 | },{ | 1936 | .tuner_type = 2, |
2420 | /* ---- card 0x89 ---------------------------------- */ | 1937 | .tuner_addr = ADDR_UNSET, |
2421 | .name = "Conceptronic CTVFMi v2", | 1938 | .audio_hook = adtvk503_audio, |
2422 | .video_inputs = 3, | 1939 | }, |
2423 | .audio_inputs = 1, | 1940 | |
2424 | .tuner = 0, | 1941 | /* ---- card 0x64 ---------------------------------- */ |
2425 | .svhs = 2, | 1942 | [BTTV_HERCULES_SM_TV] = { |
2426 | .gpiomask = 0x001c0007, | 1943 | .name = "Hercules Smart TV Stereo", |
2427 | .muxsel = { 2, 3, 1, 1 }, | 1944 | .video_inputs = 4, |
2428 | .audiomux = { 0, 1, 2, 2, 3 }, | 1945 | .audio_inputs = 1, |
2429 | .needs_tvaudio = 0, | 1946 | .tuner = 0, |
2430 | .pll = PLL_28, | 1947 | .svhs = 2, |
2431 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, | 1948 | .gpiomask = 0x00, |
2432 | .tuner_addr = ADDR_UNSET, | 1949 | .muxsel = { 2, 3, 1, 1 }, |
2433 | .has_remote = 1, | 1950 | .needs_tvaudio = 1, |
2434 | },{ | 1951 | .no_msp34xx = 1, |
2435 | .name = "Prolink Pixelview PV-BT878P+ (Rev.2E)", | 1952 | .pll = PLL_28, |
2436 | .video_inputs = 5, | 1953 | .tuner_type = 5, |
2437 | .audio_inputs = 1, | 1954 | .tuner_addr = ADDR_UNSET, |
2438 | .tuner = 0, | 1955 | /* Notes: |
2439 | .svhs = 3, | 1956 | - card lacks subsystem ID |
2440 | .gpiomask = 0x01fe00, | 1957 | - stereo variant w/ daughter board with tda9874a @0xb0 |
2441 | .muxsel = { 2,3,1,1,-1 }, | 1958 | - Audio Routing: |
2442 | .digital_mode = DIGITAL_MODE_CAMERA, | 1959 | always from tda9874 independent of GPIO (?) |
2443 | .audiomux = { 0x00400, 0x10400, 0x04400, 0x80000, 0x12400, 0x46000 }, | 1960 | external line in: unknown |
2444 | .no_msp34xx = 1, | 1961 | - Other chips: em78p156elp @ 0x96 (probably IR remote control) |
2445 | .pll = PLL_28, | 1962 | hef4053 (instead 4052) for unknown function |
2446 | .tuner_type = TUNER_LG_PAL_FM, | 1963 | */ |
2447 | .has_remote = 1, | 1964 | }, |
2448 | }}; | 1965 | [BTTV_PACETV] = { |
1966 | .name = "Pace TV & Radio Card", | ||
1967 | .video_inputs = 4, | ||
1968 | .audio_inputs = 1, | ||
1969 | .tuner = 0, | ||
1970 | .svhs = 2, | ||
1971 | .muxsel = { 2, 3, 1, 1}, /* Tuner, CVid, SVid, CVid over SVid connector */ | ||
1972 | .gpiomask = 0, | ||
1973 | .no_tda9875 = 1, | ||
1974 | .no_tda7432 = 1, | ||
1975 | .tuner_type = 1, | ||
1976 | .tuner_addr = ADDR_UNSET, | ||
1977 | .has_radio = 1, | ||
1978 | .pll = PLL_28, | ||
1979 | /* Bt878, Bt832, FI1246 tuner; no pci subsystem id | ||
1980 | only internal line out: (4pin header) RGGL | ||
1981 | Radio must be decoded by msp3410d (not routed through)*/ | ||
1982 | /* | ||
1983 | .digital_mode = DIGITAL_MODE_CAMERA, todo! | ||
1984 | */ | ||
1985 | }, | ||
1986 | [BTTV_IVC200] = { | ||
1987 | /* Chris Willing <chris@vislab.usyd.edu.au> */ | ||
1988 | .name = "IVC-200", | ||
1989 | .video_inputs = 1, | ||
1990 | .audio_inputs = 0, | ||
1991 | .tuner = -1, | ||
1992 | .tuner_type = -1, | ||
1993 | .tuner_addr = ADDR_UNSET, | ||
1994 | .svhs = -1, | ||
1995 | .gpiomask = 0xdf, | ||
1996 | .muxsel = { 2 }, | ||
1997 | .pll = PLL_28, | ||
1998 | }, | ||
1999 | [BTTV_XGUARD] = { | ||
2000 | .name = "Grand X-Guard / Trust 814PCI", | ||
2001 | .video_inputs = 16, | ||
2002 | .audio_inputs = 0, | ||
2003 | .tuner = -1, | ||
2004 | .svhs = -1, | ||
2005 | .tuner_type = 4, | ||
2006 | .tuner_addr = ADDR_UNSET, | ||
2007 | .gpiomask2 = 0xff, | ||
2008 | .muxsel = { 2,2,2,2, 3,3,3,3, 1,1,1,1, 0,0,0,0 }, | ||
2009 | .muxsel_hook = xguard_muxsel, | ||
2010 | .no_msp34xx = 1, | ||
2011 | .no_tda9875 = 1, | ||
2012 | .no_tda7432 = 1, | ||
2013 | .pll = PLL_28, | ||
2014 | }, | ||
2015 | |||
2016 | /* ---- card 0x68 ---------------------------------- */ | ||
2017 | [BTTV_NEBULA_DIGITV] = { | ||
2018 | .name = "Nebula Electronics DigiTV", | ||
2019 | .video_inputs = 1, | ||
2020 | .tuner = -1, | ||
2021 | .svhs = -1, | ||
2022 | .muxsel = { 2, 3, 1, 0}, | ||
2023 | .no_msp34xx = 1, | ||
2024 | .no_tda9875 = 1, | ||
2025 | .no_tda7432 = 1, | ||
2026 | .pll = PLL_28, | ||
2027 | .tuner_type = -1, | ||
2028 | .tuner_addr = ADDR_UNSET, | ||
2029 | .has_dvb = 1, | ||
2030 | .no_gpioirq = 1, | ||
2031 | }, | ||
2032 | [BTTV_PV143] = { | ||
2033 | /* Jorge Boncompte - DTI2 <jorge@dti2.net> */ | ||
2034 | .name = "ProVideo PV143", | ||
2035 | .video_inputs = 4, | ||
2036 | .audio_inputs = 0, | ||
2037 | .tuner = -1, | ||
2038 | .svhs = -1, | ||
2039 | .gpiomask = 0, | ||
2040 | .muxsel = { 2, 3, 1, 0 }, | ||
2041 | .audiomux = { 0 }, | ||
2042 | .needs_tvaudio = 0, | ||
2043 | .no_msp34xx = 1, | ||
2044 | .pll = PLL_28, | ||
2045 | .tuner_type = -1, | ||
2046 | .tuner_addr = ADDR_UNSET, | ||
2047 | }, | ||
2048 | [BTTV_VD009X1_MINIDIN] = { | ||
2049 | /* M.Klahr@phytec.de */ | ||
2050 | .name = "PHYTEC VD-009-X1 MiniDIN (bt878)", | ||
2051 | .video_inputs = 4, | ||
2052 | .audio_inputs = 0, | ||
2053 | .tuner = -1, /* card has no tuner */ | ||
2054 | .svhs = 3, | ||
2055 | .gpiomask = 0x00, | ||
2056 | .muxsel = { 2, 3, 1, 0}, | ||
2057 | .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ | ||
2058 | .needs_tvaudio = 1, | ||
2059 | .pll = PLL_28, | ||
2060 | .tuner_type = -1, | ||
2061 | .tuner_addr = ADDR_UNSET, | ||
2062 | }, | ||
2063 | [BTTV_VD009X1_COMBI] = { | ||
2064 | .name = "PHYTEC VD-009-X1 Combi (bt878)", | ||
2065 | .video_inputs = 4, | ||
2066 | .audio_inputs = 0, | ||
2067 | .tuner = -1, /* card has no tuner */ | ||
2068 | .svhs = 3, | ||
2069 | .gpiomask = 0x00, | ||
2070 | .muxsel = { 2, 3, 1, 1}, | ||
2071 | .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ | ||
2072 | .needs_tvaudio = 1, | ||
2073 | .pll = PLL_28, | ||
2074 | .tuner_type = -1, | ||
2075 | .tuner_addr = ADDR_UNSET, | ||
2076 | }, | ||
2077 | |||
2078 | /* ---- card 0x6c ---------------------------------- */ | ||
2079 | [BTTV_VD009_MINIDIN] = { | ||
2080 | .name = "PHYTEC VD-009 MiniDIN (bt878)", | ||
2081 | .video_inputs = 10, | ||
2082 | .audio_inputs = 0, | ||
2083 | .tuner = -1, /* card has no tuner */ | ||
2084 | .svhs = 9, | ||
2085 | .gpiomask = 0x00, | ||
2086 | .gpiomask2 = 0x03, /* gpiomask2 defines the bits used to switch audio | ||
2087 | via the upper nibble of muxsel. here: used for | ||
2088 | xternal video-mux */ | ||
2089 | .muxsel = { 0x02, 0x12, 0x22, 0x32, 0x03, 0x13, 0x23, 0x33, 0x01, 0x00 }, | ||
2090 | .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ | ||
2091 | .needs_tvaudio = 1, | ||
2092 | .pll = PLL_28, | ||
2093 | .tuner_type = -1, | ||
2094 | .tuner_addr = ADDR_UNSET, | ||
2095 | }, | ||
2096 | [BTTV_VD009_COMBI] = { | ||
2097 | .name = "PHYTEC VD-009 Combi (bt878)", | ||
2098 | .video_inputs = 10, | ||
2099 | .audio_inputs = 0, | ||
2100 | .tuner = -1, /* card has no tuner */ | ||
2101 | .svhs = 9, | ||
2102 | .gpiomask = 0x00, | ||
2103 | .gpiomask2 = 0x03, /* gpiomask2 defines the bits used to switch audio | ||
2104 | via the upper nibble of muxsel. here: used for | ||
2105 | xternal video-mux */ | ||
2106 | .muxsel = { 0x02, 0x12, 0x22, 0x32, 0x03, 0x13, 0x23, 0x33, 0x01, 0x01 }, | ||
2107 | .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ | ||
2108 | .needs_tvaudio = 1, | ||
2109 | .pll = PLL_28, | ||
2110 | .tuner_type = -1, | ||
2111 | .tuner_addr = ADDR_UNSET, | ||
2112 | }, | ||
2113 | [BTTV_IVC100] = { | ||
2114 | .name = "IVC-100", | ||
2115 | .video_inputs = 4, | ||
2116 | .audio_inputs = 0, | ||
2117 | .tuner = -1, | ||
2118 | .tuner_type = -1, | ||
2119 | .tuner_addr = ADDR_UNSET, | ||
2120 | .svhs = -1, | ||
2121 | .gpiomask = 0xdf, | ||
2122 | .muxsel = { 2, 3, 1, 0 }, | ||
2123 | .pll = PLL_28, | ||
2124 | }, | ||
2125 | [BTTV_IVC120] = { | ||
2126 | /* IVC-120G - Alan Garfield <alan@fromorbit.com> */ | ||
2127 | .name = "IVC-120G", | ||
2128 | .video_inputs = 16, | ||
2129 | .audio_inputs = 0, /* card has no audio */ | ||
2130 | .tuner = -1, /* card has no tuner */ | ||
2131 | .tuner_type = -1, | ||
2132 | .tuner_addr = ADDR_UNSET, | ||
2133 | .svhs = -1, /* card has no svhs */ | ||
2134 | .needs_tvaudio = 0, | ||
2135 | .no_msp34xx = 1, | ||
2136 | .no_tda9875 = 1, | ||
2137 | .no_tda7432 = 1, | ||
2138 | .gpiomask = 0x00, | ||
2139 | .muxsel = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, | ||
2140 | 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10 }, | ||
2141 | .muxsel_hook = ivc120_muxsel, | ||
2142 | .pll = PLL_28, | ||
2143 | }, | ||
2144 | |||
2145 | /* ---- card 0x70 ---------------------------------- */ | ||
2146 | [BTTV_PC_HDTV] = { | ||
2147 | .name = "pcHDTV HD-2000 TV", | ||
2148 | .video_inputs = 4, | ||
2149 | .audio_inputs = 1, | ||
2150 | .tuner = 0, | ||
2151 | .svhs = 2, | ||
2152 | .muxsel = { 2, 3, 1, 0}, | ||
2153 | .tuner_type = TUNER_PHILIPS_ATSC, | ||
2154 | .tuner_addr = ADDR_UNSET, | ||
2155 | .has_dvb = 1, | ||
2156 | }, | ||
2157 | [BTTV_TWINHAN_DST] = { | ||
2158 | .name = "Twinhan DST + clones", | ||
2159 | .no_msp34xx = 1, | ||
2160 | .no_tda9875 = 1, | ||
2161 | .no_tda7432 = 1, | ||
2162 | .tuner_type = TUNER_ABSENT, | ||
2163 | .tuner_addr = ADDR_UNSET, | ||
2164 | .no_video = 1, | ||
2165 | .has_dvb = 1, | ||
2166 | }, | ||
2167 | [BTTV_WINFASTVC100] = { | ||
2168 | .name = "Winfast VC100", | ||
2169 | .video_inputs = 3, | ||
2170 | .audio_inputs = 0, | ||
2171 | .svhs = 1, | ||
2172 | .tuner = -1, | ||
2173 | .muxsel = { 3, 1, 1, 3}, /* Vid In, SVid In, Vid over SVid in connector */ | ||
2174 | .no_msp34xx = 1, | ||
2175 | .no_tda9875 = 1, | ||
2176 | .no_tda7432 = 1, | ||
2177 | .tuner_type = TUNER_ABSENT, | ||
2178 | .tuner_addr = ADDR_UNSET, | ||
2179 | .pll = PLL_28, | ||
2180 | }, | ||
2181 | [BTTV_TEV560] = { | ||
2182 | .name = "Teppro TEV-560/InterVision IV-560", | ||
2183 | .video_inputs = 3, | ||
2184 | .audio_inputs = 1, | ||
2185 | .tuner = 0, | ||
2186 | .svhs = 2, | ||
2187 | .gpiomask = 3, | ||
2188 | .muxsel = { 2, 3, 1, 1}, | ||
2189 | .audiomux = { 1, 1, 1, 1, 0}, | ||
2190 | .needs_tvaudio = 1, | ||
2191 | .tuner_type = TUNER_PHILIPS_PAL, | ||
2192 | .tuner_addr = ADDR_UNSET, | ||
2193 | .pll = PLL_35, | ||
2194 | }, | ||
2195 | |||
2196 | /* ---- card 0x74 ---------------------------------- */ | ||
2197 | [BTTV_SIMUS_GVC1100] = { | ||
2198 | .name = "SIMUS GVC1100", | ||
2199 | .video_inputs = 4, | ||
2200 | .audio_inputs = 0, | ||
2201 | .tuner = -1, | ||
2202 | .svhs = -1, | ||
2203 | .tuner_type = -1, | ||
2204 | .tuner_addr = ADDR_UNSET, | ||
2205 | .pll = PLL_28, | ||
2206 | .muxsel = { 2, 2, 2, 2}, | ||
2207 | .gpiomask = 0x3F, | ||
2208 | .muxsel_hook = gvc1100_muxsel, | ||
2209 | }, | ||
2210 | [BTTV_NGSTV_PLUS] = { | ||
2211 | /* Carlos Silva r3pek@r3pek.homelinux.org || card 0x75 */ | ||
2212 | .name = "NGS NGSTV+", | ||
2213 | .video_inputs = 3, | ||
2214 | .tuner = 0, | ||
2215 | .svhs = 2, | ||
2216 | .gpiomask = 0x008007, | ||
2217 | .muxsel = {2, 3, 0, 0}, | ||
2218 | .audiomux = {0, 0, 0, 0, 0x000003, 0}, | ||
2219 | .pll = PLL_28, | ||
2220 | .tuner_type = TUNER_PHILIPS_PAL, | ||
2221 | .tuner_addr = ADDR_UNSET, | ||
2222 | .has_remote = 1, | ||
2223 | }, | ||
2224 | [BTTV_LMLBT4] = { | ||
2225 | /* http://linuxmedialabs.com */ | ||
2226 | .name = "LMLBT4", | ||
2227 | .video_inputs = 4, /* IN1,IN2,IN3,IN4 */ | ||
2228 | .audio_inputs = 0, | ||
2229 | .tuner = -1, | ||
2230 | .svhs = -1, | ||
2231 | .muxsel = { 2, 3, 1, 0 }, | ||
2232 | .no_msp34xx = 1, | ||
2233 | .no_tda9875 = 1, | ||
2234 | .no_tda7432 = 1, | ||
2235 | .needs_tvaudio = 0, | ||
2236 | .tuner_type = -1, | ||
2237 | .tuner_addr = ADDR_UNSET, | ||
2238 | }, | ||
2239 | [BTTV_TEKRAM_M205] = { | ||
2240 | /* Helmroos Harri <harri.helmroos@pp.inet.fi> */ | ||
2241 | .name = "Tekram M205 PRO", | ||
2242 | .video_inputs = 3, | ||
2243 | .audio_inputs = 1, | ||
2244 | .tuner = 0, | ||
2245 | .tuner_type = TUNER_PHILIPS_PAL, | ||
2246 | .tuner_addr = ADDR_UNSET, | ||
2247 | .svhs = 2, | ||
2248 | .needs_tvaudio = 0, | ||
2249 | .gpiomask = 0x68, | ||
2250 | .muxsel = { 2, 3, 1}, | ||
2251 | .audiomux = { 0x68, 0x68, 0x61, 0x61, 0x00 }, | ||
2252 | .pll = PLL_28, | ||
2253 | }, | ||
2254 | |||
2255 | /* ---- card 0x78 ---------------------------------- */ | ||
2256 | [BTTV_CONTVFMI] = { | ||
2257 | /* Javier Cendan Ares <jcendan@lycos.es> */ | ||
2258 | /* bt878 TV + FM without subsystem ID */ | ||
2259 | .name = "Conceptronic CONTVFMi", | ||
2260 | .video_inputs = 3, | ||
2261 | .audio_inputs = 1, | ||
2262 | .tuner = 0, | ||
2263 | .svhs = 2, | ||
2264 | .gpiomask = 0x008007, | ||
2265 | .muxsel = { 2, 3, 1, 1 }, | ||
2266 | .audiomux = { 0, 1, 2, 2, 3 }, | ||
2267 | .needs_tvaudio = 0, | ||
2268 | .pll = PLL_28, | ||
2269 | .tuner_type = TUNER_PHILIPS_PAL, | ||
2270 | .tuner_addr = ADDR_UNSET, | ||
2271 | .has_remote = 1, | ||
2272 | .has_radio = 1, | ||
2273 | }, | ||
2274 | [BTTV_PICOLO_TETRA_CHIP] = { | ||
2275 | /*Eric DEBIEF <debief@telemsa.com>*/ | ||
2276 | /*EURESYS Picolo Tetra : 4 Conexant Fusion 878A, no audio, video input set with analog multiplexers GPIO controled*/ | ||
2277 | /* adds picolo_tetra_muxsel(), picolo_tetra_init(), the folowing declaration strucure, and #define BTTV_PICOLO_TETRA_CHIP*/ | ||
2278 | /*0x79 in bttv.h*/ | ||
2279 | .name = "Euresys Picolo Tetra", | ||
2280 | .video_inputs = 4, | ||
2281 | .audio_inputs = 0, | ||
2282 | .tuner = -1, | ||
2283 | .svhs = -1, | ||
2284 | .gpiomask = 0, | ||
2285 | .gpiomask2 = 0x3C<<16,/*Set the GPIO[18]->GPIO[21] as output pin.==> drive the video inputs through analog multiplexers*/ | ||
2286 | .no_msp34xx = 1, | ||
2287 | .no_tda9875 = 1, | ||
2288 | .no_tda7432 = 1, | ||
2289 | .muxsel = {2,2,2,2},/*878A input is always MUX0, see above.*/ | ||
2290 | .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ | ||
2291 | .pll = PLL_28, | ||
2292 | .needs_tvaudio = 0, | ||
2293 | .muxsel_hook = picolo_tetra_muxsel,/*Required as it doesn't follow the classic input selection policy*/ | ||
2294 | .tuner_type = -1, | ||
2295 | .tuner_addr = ADDR_UNSET, | ||
2296 | }, | ||
2297 | [BTTV_SPIRIT_TV] = { | ||
2298 | /* Spirit TV Tuner from http://spiritmodems.com.au */ | ||
2299 | /* Stafford Goodsell <surge@goliath.homeunix.org> */ | ||
2300 | .name = "Spirit TV Tuner", | ||
2301 | .video_inputs = 3, | ||
2302 | .audio_inputs = 1, | ||
2303 | .tuner = 0, | ||
2304 | .svhs = 2, | ||
2305 | .gpiomask = 0x0000000f, | ||
2306 | .muxsel = { 2, 1, 1 }, | ||
2307 | .audiomux = { 0x02, 0x00, 0x00, 0x00, 0x00}, | ||
2308 | .tuner_type = TUNER_TEMIC_PAL, | ||
2309 | .tuner_addr = ADDR_UNSET, | ||
2310 | .no_msp34xx = 1, | ||
2311 | .no_tda9875 = 1, | ||
2312 | }, | ||
2313 | [BTTV_AVDVBT_771] = { | ||
2314 | /* Wolfram Joost <wojo@frokaschwei.de> */ | ||
2315 | .name = "AVerMedia AVerTV DVB-T 771", | ||
2316 | .video_inputs = 2, | ||
2317 | .svhs = 1, | ||
2318 | .tuner = -1, | ||
2319 | .tuner_type = TUNER_ABSENT, | ||
2320 | .tuner_addr = ADDR_UNSET, | ||
2321 | .muxsel = { 3 , 3 }, | ||
2322 | .no_msp34xx = 1, | ||
2323 | .no_tda9875 = 1, | ||
2324 | .no_tda7432 = 1, | ||
2325 | .pll = PLL_28, | ||
2326 | .has_dvb = 1, | ||
2327 | .no_gpioirq = 1, | ||
2328 | .has_remote = 1, | ||
2329 | }, | ||
2330 | /* ---- card 0x7c ---------------------------------- */ | ||
2331 | [BTTV_AVDVBT_761] = { | ||
2332 | /* Matt Jesson <dvb@jesson.eclipse.co.uk> */ | ||
2333 | /* Based on the Nebula card data - added remote and new card number - BTTV_AVDVBT_761, see also ir-kbd-gpio.c */ | ||
2334 | .name = "AverMedia AverTV DVB-T 761", | ||
2335 | .video_inputs = 2, | ||
2336 | .tuner = -1, | ||
2337 | .svhs = 1, | ||
2338 | .muxsel = { 3, 1, 2, 0}, /* Comp0, S-Video, ?, ? */ | ||
2339 | .no_msp34xx = 1, | ||
2340 | .no_tda9875 = 1, | ||
2341 | .no_tda7432 = 1, | ||
2342 | .pll = PLL_28, | ||
2343 | .tuner_type = -1, | ||
2344 | .tuner_addr = ADDR_UNSET, | ||
2345 | .has_dvb = 1, | ||
2346 | .no_gpioirq = 1, | ||
2347 | .has_remote = 1, | ||
2348 | }, | ||
2349 | [BTTV_MATRIX_VISIONSQ] = { | ||
2350 | /* andre.schwarz@matrix-vision.de */ | ||
2351 | .name = "MATRIX Vision Sigma-SQ", | ||
2352 | .video_inputs = 16, | ||
2353 | .audio_inputs = 0, | ||
2354 | .tuner = -1, | ||
2355 | .svhs = -1, | ||
2356 | .gpiomask = 0x0, | ||
2357 | .muxsel = { 2, 2, 2, 2, 2, 2, 2, 2, | ||
2358 | 3, 3, 3, 3, 3, 3, 3, 3 }, | ||
2359 | .muxsel_hook = sigmaSQ_muxsel, | ||
2360 | .audiomux = { 0 }, | ||
2361 | .no_msp34xx = 1, | ||
2362 | .pll = PLL_28, | ||
2363 | .tuner_type = -1, | ||
2364 | .tuner_addr = ADDR_UNSET, | ||
2365 | }, | ||
2366 | [BTTV_MATRIX_VISIONSLC] = { | ||
2367 | /* andre.schwarz@matrix-vision.de */ | ||
2368 | .name = "MATRIX Vision Sigma-SLC", | ||
2369 | .video_inputs = 4, | ||
2370 | .audio_inputs = 0, | ||
2371 | .tuner = -1, | ||
2372 | .svhs = -1, | ||
2373 | .gpiomask = 0x0, | ||
2374 | .muxsel = { 2, 2, 2, 2 }, | ||
2375 | .muxsel_hook = sigmaSLC_muxsel, | ||
2376 | .audiomux = { 0 }, | ||
2377 | .no_msp34xx = 1, | ||
2378 | .pll = PLL_28, | ||
2379 | .tuner_type = -1, | ||
2380 | .tuner_addr = ADDR_UNSET, | ||
2381 | }, | ||
2382 | /* BTTV_APAC_VIEWCOMP */ | ||
2383 | [BTTV_APAC_VIEWCOMP] = { | ||
2384 | /* Attila Kondoros <attila.kondoros@chello.hu> */ | ||
2385 | /* bt878 TV + FM 0x00000000 subsystem ID */ | ||
2386 | .name = "APAC Viewcomp 878(AMAX)", | ||
2387 | .video_inputs = 2, | ||
2388 | .audio_inputs = 1, | ||
2389 | .tuner = 0, | ||
2390 | .svhs = -1, | ||
2391 | .gpiomask = 0xFF, | ||
2392 | .muxsel = { 2, 3, 1, 1}, | ||
2393 | .audiomux = { 2, 0, 0, 0, 10}, | ||
2394 | .needs_tvaudio = 0, | ||
2395 | .pll = PLL_28, | ||
2396 | .tuner_type = TUNER_PHILIPS_PAL, | ||
2397 | .tuner_addr = ADDR_UNSET, | ||
2398 | .has_remote = 1, /* miniremote works, see ir-kbd-gpio.c */ | ||
2399 | .has_radio = 1, /* not every card has radio */ | ||
2400 | }, | ||
2401 | |||
2402 | /* ---- card 0x80 ---------------------------------- */ | ||
2403 | [BTTV_DVICO_DVBT_LITE] = { | ||
2404 | /* Chris Pascoe <c.pascoe@itee.uq.edu.au> */ | ||
2405 | .name = "DViCO FusionHDTV DVB-T Lite", | ||
2406 | .tuner = -1, | ||
2407 | .no_msp34xx = 1, | ||
2408 | .no_tda9875 = 1, | ||
2409 | .no_tda7432 = 1, | ||
2410 | .pll = PLL_28, | ||
2411 | .no_video = 1, | ||
2412 | .has_dvb = 1, | ||
2413 | .tuner_type = -1, | ||
2414 | .tuner_addr = ADDR_UNSET, | ||
2415 | }, | ||
2416 | [BTTV_VGEAR_MYVCD] = { | ||
2417 | /* Steven <photon38@pchome.com.tw> */ | ||
2418 | .name = "V-Gear MyVCD", | ||
2419 | .video_inputs = 3, | ||
2420 | .audio_inputs = 1, | ||
2421 | .tuner = 0, | ||
2422 | .svhs = 2, | ||
2423 | .gpiomask = 0x3f, | ||
2424 | .muxsel = {2, 3, 1, 0}, | ||
2425 | .audiomux = {0x31, 0x31, 0x31, 0x31, 0x31, 0x31}, | ||
2426 | .no_msp34xx = 1, | ||
2427 | .pll = PLL_28, | ||
2428 | .tuner_type = TUNER_PHILIPS_NTSC_M, | ||
2429 | .tuner_addr = ADDR_UNSET, | ||
2430 | .has_radio = 0, | ||
2431 | #if 0 | ||
2432 | .has_remote = 1, | ||
2433 | #endif | ||
2434 | }, | ||
2435 | [BTTV_SUPER_TV] = { | ||
2436 | /* Rick C <cryptdragoon@gmail.com> */ | ||
2437 | .name = "Super TV Tuner", | ||
2438 | .video_inputs = 4, | ||
2439 | .audio_inputs = 1, | ||
2440 | .tuner = 0, | ||
2441 | .svhs = 2, | ||
2442 | .muxsel = { 2, 3, 1, 0}, | ||
2443 | .tuner_type = TUNER_PHILIPS_NTSC, | ||
2444 | .tuner_addr = ADDR_UNSET, | ||
2445 | .gpiomask = 0x008007, | ||
2446 | .audiomux = { 0, 0x000001,0,0, 0}, | ||
2447 | .needs_tvaudio = 1, | ||
2448 | .has_radio = 1, | ||
2449 | }, | ||
2450 | [BTTV_TIBET_CS16] = { | ||
2451 | /* Chris Fanning <video4linux@haydon.net> */ | ||
2452 | .name = "Tibet Systems 'Progress DVR' CS16", | ||
2453 | .video_inputs = 16, | ||
2454 | .audio_inputs = 0, | ||
2455 | .tuner = -1, | ||
2456 | .svhs = -1, | ||
2457 | .muxsel = { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, | ||
2458 | .pll = PLL_28, | ||
2459 | .no_msp34xx = 1, | ||
2460 | .no_tda9875 = 1, | ||
2461 | .no_tda7432 = 1, | ||
2462 | .tuner_type = -1, | ||
2463 | .tuner_addr = ADDR_UNSET, | ||
2464 | .muxsel_hook = tibetCS16_muxsel, | ||
2465 | }, | ||
2466 | { | ||
2467 | /* Bill Brack <wbrack@mmm.com.hk> */ | ||
2468 | /* | ||
2469 | * Note that, because of the card's wiring, the "master" | ||
2470 | * BT878A chip (i.e. the one which controls the analog switch | ||
2471 | * and must use this card type) is the 2nd one detected. The | ||
2472 | * other 3 chips should use card type 0x85, whose description | ||
2473 | * follows this one. There is a EEPROM on the card (which is | ||
2474 | * connected to the I2C of one of those other chips), but is | ||
2475 | * not currently handled. There is also a facility for a | ||
2476 | * "monitor", which is also not currently implemented. | ||
2477 | */ | ||
2478 | .name = "Kodicom 4400R (master)", | ||
2479 | .video_inputs = 16, | ||
2480 | .audio_inputs = 0, | ||
2481 | .tuner = -1, | ||
2482 | .tuner_type = -1, | ||
2483 | .tuner_addr = ADDR_UNSET, | ||
2484 | .svhs = -1, | ||
2485 | /* GPIO bits 0-9 used for analog switch: | ||
2486 | * 00 - 03: camera selector | ||
2487 | * 04 - 06: channel (controller) selector | ||
2488 | * 07: data (1->on, 0->off) | ||
2489 | * 08: strobe | ||
2490 | * 09: reset | ||
2491 | * bit 16 is input from sync separator for the channel | ||
2492 | */ | ||
2493 | .gpiomask = 0x0003ff, | ||
2494 | .no_gpioirq = 1, | ||
2495 | .muxsel = { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 }, | ||
2496 | .pll = PLL_28, | ||
2497 | .no_msp34xx = 1, | ||
2498 | .no_tda7432 = 1, | ||
2499 | .no_tda9875 = 1, | ||
2500 | .muxsel_hook = kodicom4400r_muxsel, | ||
2501 | }, | ||
2502 | { | ||
2503 | /* Bill Brack <wbrack@mmm.com.hk> */ | ||
2504 | /* Note that, for reasons unknown, the "master" BT878A chip (i.e. the | ||
2505 | * one which controls the analog switch, and must use the card type) | ||
2506 | * is the 2nd one detected. The other 3 chips should use this card | ||
2507 | * type | ||
2508 | */ | ||
2509 | .name = "Kodicom 4400R (slave)", | ||
2510 | .video_inputs = 16, | ||
2511 | .audio_inputs = 0, | ||
2512 | .tuner = -1, | ||
2513 | .tuner_type = -1, | ||
2514 | .tuner_addr = ADDR_UNSET, | ||
2515 | .svhs = -1, | ||
2516 | .gpiomask = 0x010000, | ||
2517 | .no_gpioirq = 1, | ||
2518 | .muxsel = { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 }, | ||
2519 | .pll = PLL_28, | ||
2520 | .no_msp34xx = 1, | ||
2521 | .no_tda7432 = 1, | ||
2522 | .no_tda9875 = 1, | ||
2523 | .muxsel_hook = kodicom4400r_muxsel, | ||
2524 | }, | ||
2525 | { | ||
2526 | /* ---- card 0x86---------------------------------- */ | ||
2527 | /* Michael Henson <mhenson@clarityvi.com> */ | ||
2528 | /* Adlink RTV24 with special unlock codes */ | ||
2529 | .name = "Adlink RTV24", | ||
2530 | .video_inputs = 4, | ||
2531 | .audio_inputs = 1, | ||
2532 | .tuner = 0, | ||
2533 | .svhs = 2, | ||
2534 | .muxsel = { 2, 3, 1, 0}, | ||
2535 | .tuner_type = -1, | ||
2536 | .tuner_addr = ADDR_UNSET, | ||
2537 | .pll = PLL_28, | ||
2538 | }, | ||
2539 | { | ||
2540 | /* ---- card 0x87---------------------------------- */ | ||
2541 | /* Michael Krufky <mkrufky@m1k.net> */ | ||
2542 | .name = "DViCO FusionHDTV 5 Lite", | ||
2543 | .tuner = 0, | ||
2544 | .tuner_type = TUNER_LG_TDVS_H062F, | ||
2545 | .tuner_addr = ADDR_UNSET, | ||
2546 | .video_inputs = 2, | ||
2547 | .audio_inputs = 1, | ||
2548 | .svhs = 2, | ||
2549 | .muxsel = { 2, 3 }, | ||
2550 | .gpiomask = 0x00e00007, | ||
2551 | .audiomux = { 0x00400005, 0, 0x00000001, 0, 0x00c00007, 0 }, | ||
2552 | .no_msp34xx = 1, | ||
2553 | .no_tda9875 = 1, | ||
2554 | .no_tda7432 = 1, | ||
2555 | .has_dvb = 1, | ||
2556 | }, | ||
2557 | /* ---- card 0x88---------------------------------- */ | ||
2558 | [BTTV_KODICOM_4400R] = { | ||
2559 | /* Mauro Carvalho Chehab <mchehab@brturbo.com.br> */ | ||
2560 | .name = "Acorp Y878F", | ||
2561 | .video_inputs = 3, | ||
2562 | .audio_inputs = 1, | ||
2563 | .tuner = 0, | ||
2564 | .svhs = 2, | ||
2565 | .gpiomask = 0x01fe00, | ||
2566 | .muxsel = { 2, 3, 1, 1}, | ||
2567 | .audiomux = { 0x001e00, 0, 0x018000, 0x014000, 0x002000, 0 }, | ||
2568 | .needs_tvaudio = 1, | ||
2569 | .pll = PLL_28, | ||
2570 | .tuner_type = TUNER_YMEC_TVF66T5_B_DFF, | ||
2571 | .tuner_addr = 0xc1 >>1, | ||
2572 | .has_radio = 1, | ||
2573 | }, | ||
2574 | /* ---- card 0x89 ---------------------------------- */ | ||
2575 | [BTTV_KODICOM_4400R_SL] = { | ||
2576 | .name = "Conceptronic CTVFMi v2", | ||
2577 | .video_inputs = 3, | ||
2578 | .audio_inputs = 1, | ||
2579 | .tuner = 0, | ||
2580 | .svhs = 2, | ||
2581 | .gpiomask = 0x001c0007, | ||
2582 | .muxsel = { 2, 3, 1, 1 }, | ||
2583 | .audiomux = { 0, 1, 2, 2, 3 }, | ||
2584 | .needs_tvaudio = 0, | ||
2585 | .pll = PLL_28, | ||
2586 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, | ||
2587 | .tuner_addr = ADDR_UNSET, | ||
2588 | .has_remote = 1, | ||
2589 | #if 0 | ||
2590 | .has_radio = 1, | ||
2591 | #endif | ||
2592 | }, | ||
2593 | [BTTV_ADLINK_RTV24] = { | ||
2594 | .name = "Prolink Pixelview PV-BT878P+ (Rev.2E)", | ||
2595 | .video_inputs = 5, | ||
2596 | .audio_inputs = 1, | ||
2597 | .tuner = 0, | ||
2598 | .svhs = 3, | ||
2599 | .gpiomask = 0x01fe00, | ||
2600 | .muxsel = { 2,3,1,1,-1 }, | ||
2601 | .digital_mode = DIGITAL_MODE_CAMERA, | ||
2602 | .audiomux = { 0x00400, 0x10400, 0x04400, 0x80000, 0x12400, 0x46000 }, | ||
2603 | .no_msp34xx = 1, | ||
2604 | .pll = PLL_28, | ||
2605 | .tuner_type = TUNER_LG_PAL_FM, | ||
2606 | .has_remote = 1, | ||
2607 | } | ||
2608 | }; | ||
2449 | 2609 | ||
2450 | static const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards); | 2610 | static const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards); |
2451 | 2611 | ||
@@ -4513,8 +4673,7 @@ void __devinit bttv_check_chipset(void) | |||
4513 | } | 4673 | } |
4514 | if (UNSET != latency) | 4674 | if (UNSET != latency) |
4515 | printk(KERN_INFO "bttv: pci latency fixup [%d]\n",latency); | 4675 | printk(KERN_INFO "bttv: pci latency fixup [%d]\n",latency); |
4516 | 4676 | while ((dev = pci_get_device(PCI_VENDOR_ID_INTEL, | |
4517 | while ((dev = pci_find_device(PCI_VENDOR_ID_INTEL, | ||
4518 | PCI_DEVICE_ID_INTEL_82441, dev))) { | 4677 | PCI_DEVICE_ID_INTEL_82441, dev))) { |
4519 | unsigned char b; | 4678 | unsigned char b; |
4520 | pci_read_config_byte(dev, 0x53, &b); | 4679 | pci_read_config_byte(dev, 0x53, &b); |