aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/saa7134/saa7134-cards.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/saa7134/saa7134-cards.c')
-rw-r--r--drivers/media/video/saa7134/saa7134-cards.c80
1 files changed, 72 insertions, 8 deletions
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c
index 82fe19c3b1d..98375955a84 100644
--- a/drivers/media/video/saa7134/saa7134-cards.c
+++ b/drivers/media/video/saa7134/saa7134-cards.c
@@ -30,6 +30,7 @@
30#include "tuner-xc2028.h" 30#include "tuner-xc2028.h"
31#include <media/v4l2-common.h> 31#include <media/v4l2-common.h>
32#include <media/tveeprom.h> 32#include <media/tveeprom.h>
33#include "tea5767.h"
33 34
34/* commly used strings */ 35/* commly used strings */
35static char name_mute[] = "mute"; 36static char name_mute[] = "mute";
@@ -1049,7 +1050,7 @@ struct saa7134_board saa7134_boards[] = {
1049 }, 1050 },
1050 [SAA7134_BOARD_MANLI_MTV002] = { 1051 [SAA7134_BOARD_MANLI_MTV002] = {
1051 /* Ognjen Nastic <ognjen@logosoft.ba> */ 1052 /* Ognjen Nastic <ognjen@logosoft.ba> */
1052 .name = "Manli MuchTV M-TV002/Behold TV 403 FM", 1053 .name = "Manli MuchTV M-TV002",
1053 .audio_clock = 0x00200000, 1054 .audio_clock = 0x00200000,
1054 .tuner_type = TUNER_PHILIPS_PAL, 1055 .tuner_type = TUNER_PHILIPS_PAL,
1055 .radio_type = UNSET, 1056 .radio_type = UNSET,
@@ -1076,7 +1077,7 @@ struct saa7134_board saa7134_boards[] = {
1076 }, 1077 },
1077 [SAA7134_BOARD_MANLI_MTV001] = { 1078 [SAA7134_BOARD_MANLI_MTV001] = {
1078 /* Ognjen Nastic <ognjen@logosoft.ba> UNTESTED */ 1079 /* Ognjen Nastic <ognjen@logosoft.ba> UNTESTED */
1079 .name = "Manli MuchTV M-TV001/Behold TV 401", 1080 .name = "Manli MuchTV M-TV001",
1080 .audio_clock = 0x00200000, 1081 .audio_clock = 0x00200000,
1081 .tuner_type = TUNER_PHILIPS_PAL, 1082 .tuner_type = TUNER_PHILIPS_PAL,
1082 .radio_type = UNSET, 1083 .radio_type = UNSET,
@@ -2198,6 +2199,8 @@ struct saa7134_board saa7134_boards[] = {
2198 }, 2199 },
2199 [SAA7134_BOARD_BEHOLD_409FM] = { 2200 [SAA7134_BOARD_BEHOLD_409FM] = {
2200 /* <http://tuner.beholder.ru>, Sergey <skiv@orel.ru> */ 2201 /* <http://tuner.beholder.ru>, Sergey <skiv@orel.ru> */
2202 /* Beholder Intl. Ltd. 2008 */
2203 /*Dmitry Belimov <d.belimov@gmail.com> */
2201 .name = "Beholder BeholdTV 409 FM", 2204 .name = "Beholder BeholdTV 409 FM",
2202 .audio_clock = 0x00187de7, 2205 .audio_clock = 0x00187de7,
2203 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, 2206 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
@@ -2205,6 +2208,7 @@ struct saa7134_board saa7134_boards[] = {
2205 .tuner_addr = ADDR_UNSET, 2208 .tuner_addr = ADDR_UNSET,
2206 .radio_addr = ADDR_UNSET, 2209 .radio_addr = ADDR_UNSET,
2207 .tda9887_conf = TDA9887_PRESENT, 2210 .tda9887_conf = TDA9887_PRESENT,
2211 .gpiomask = 0x00008000,
2208 .inputs = {{ 2212 .inputs = {{
2209 .name = name_tv, 2213 .name = name_tv,
2210 .vmux = 3, 2214 .vmux = 3,
@@ -3576,12 +3580,15 @@ struct saa7134_board saa7134_boards[] = {
3576 }}, 3580 }},
3577 }, 3581 },
3578 [SAA7134_BOARD_BEHOLD_401] = { 3582 [SAA7134_BOARD_BEHOLD_401] = {
3583 /* Beholder Intl. Ltd. 2008 */
3584 /*Dmitry Belimov <d.belimov@gmail.com> */
3579 .name = "Beholder BeholdTV 401", 3585 .name = "Beholder BeholdTV 401",
3580 .audio_clock = 0x00187de7, 3586 .audio_clock = 0x00187de7,
3581 .tuner_type = TUNER_PHILIPS_FQ1216ME, 3587 .tuner_type = TUNER_PHILIPS_FQ1216ME,
3582 .radio_type = UNSET, 3588 .radio_type = UNSET,
3583 .tuner_addr = ADDR_UNSET, 3589 .tuner_addr = ADDR_UNSET,
3584 .radio_addr = ADDR_UNSET, 3590 .radio_addr = ADDR_UNSET,
3591 .gpiomask = 0x00008000,
3585 .inputs = {{ 3592 .inputs = {{
3586 .name = name_svideo, 3593 .name = name_svideo,
3587 .vmux = 8, 3594 .vmux = 8,
@@ -3602,12 +3609,15 @@ struct saa7134_board saa7134_boards[] = {
3602 }, 3609 },
3603 }, 3610 },
3604 [SAA7134_BOARD_BEHOLD_403] = { 3611 [SAA7134_BOARD_BEHOLD_403] = {
3612 /* Beholder Intl. Ltd. 2008 */
3613 /*Dmitry Belimov <d.belimov@gmail.com> */
3605 .name = "Beholder BeholdTV 403", 3614 .name = "Beholder BeholdTV 403",
3606 .audio_clock = 0x00187de7, 3615 .audio_clock = 0x00187de7,
3607 .tuner_type = TUNER_PHILIPS_FQ1216ME, 3616 .tuner_type = TUNER_PHILIPS_FQ1216ME,
3608 .radio_type = UNSET, 3617 .radio_type = UNSET,
3609 .tuner_addr = ADDR_UNSET, 3618 .tuner_addr = ADDR_UNSET,
3610 .radio_addr = ADDR_UNSET, 3619 .radio_addr = ADDR_UNSET,
3620 .gpiomask = 0x00008000,
3611 .inputs = {{ 3621 .inputs = {{
3612 .name = name_svideo, 3622 .name = name_svideo,
3613 .vmux = 8, 3623 .vmux = 8,
@@ -3624,12 +3634,15 @@ struct saa7134_board saa7134_boards[] = {
3624 }}, 3634 }},
3625 }, 3635 },
3626 [SAA7134_BOARD_BEHOLD_403FM] = { 3636 [SAA7134_BOARD_BEHOLD_403FM] = {
3637 /* Beholder Intl. Ltd. 2008 */
3638 /*Dmitry Belimov <d.belimov@gmail.com> */
3627 .name = "Beholder BeholdTV 403 FM", 3639 .name = "Beholder BeholdTV 403 FM",
3628 .audio_clock = 0x00187de7, 3640 .audio_clock = 0x00187de7,
3629 .tuner_type = TUNER_PHILIPS_FQ1216ME, 3641 .tuner_type = TUNER_PHILIPS_FQ1216ME,
3630 .radio_type = UNSET, 3642 .radio_type = UNSET,
3631 .tuner_addr = ADDR_UNSET, 3643 .tuner_addr = ADDR_UNSET,
3632 .radio_addr = ADDR_UNSET, 3644 .radio_addr = ADDR_UNSET,
3645 .gpiomask = 0x00008000,
3633 .inputs = {{ 3646 .inputs = {{
3634 .name = name_svideo, 3647 .name = name_svideo,
3635 .vmux = 8, 3648 .vmux = 8,
@@ -3650,6 +3663,8 @@ struct saa7134_board saa7134_boards[] = {
3650 }, 3663 },
3651 }, 3664 },
3652 [SAA7134_BOARD_BEHOLD_405] = { 3665 [SAA7134_BOARD_BEHOLD_405] = {
3666 /* Beholder Intl. Ltd. 2008 */
3667 /*Dmitry Belimov <d.belimov@gmail.com> */
3653 .name = "Beholder BeholdTV 405", 3668 .name = "Beholder BeholdTV 405",
3654 .audio_clock = 0x00187de7, 3669 .audio_clock = 0x00187de7,
3655 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, 3670 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
@@ -3657,6 +3672,7 @@ struct saa7134_board saa7134_boards[] = {
3657 .tuner_addr = ADDR_UNSET, 3672 .tuner_addr = ADDR_UNSET,
3658 .radio_addr = ADDR_UNSET, 3673 .radio_addr = ADDR_UNSET,
3659 .tda9887_conf = TDA9887_PRESENT, 3674 .tda9887_conf = TDA9887_PRESENT,
3675 .gpiomask = 0x00008000,
3660 .inputs = {{ 3676 .inputs = {{
3661 .name = name_svideo, 3677 .name = name_svideo,
3662 .vmux = 8, 3678 .vmux = 8,
@@ -3674,6 +3690,8 @@ struct saa7134_board saa7134_boards[] = {
3674 }, 3690 },
3675 [SAA7134_BOARD_BEHOLD_405FM] = { 3691 [SAA7134_BOARD_BEHOLD_405FM] = {
3676 /* Sergey <skiv@orel.ru> */ 3692 /* Sergey <skiv@orel.ru> */
3693 /* Beholder Intl. Ltd. 2008 */
3694 /*Dmitry Belimov <d.belimov@gmail.com> */
3677 .name = "Beholder BeholdTV 405 FM", 3695 .name = "Beholder BeholdTV 405 FM",
3678 .audio_clock = 0x00187de7, 3696 .audio_clock = 0x00187de7,
3679 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, 3697 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
@@ -3681,6 +3699,7 @@ struct saa7134_board saa7134_boards[] = {
3681 .tuner_addr = ADDR_UNSET, 3699 .tuner_addr = ADDR_UNSET,
3682 .radio_addr = ADDR_UNSET, 3700 .radio_addr = ADDR_UNSET,
3683 .tda9887_conf = TDA9887_PRESENT, 3701 .tda9887_conf = TDA9887_PRESENT,
3702 .gpiomask = 0x00008000,
3684 .inputs = {{ 3703 .inputs = {{
3685 .name = name_svideo, 3704 .name = name_svideo,
3686 .vmux = 8, 3705 .vmux = 8,
@@ -3701,6 +3720,8 @@ struct saa7134_board saa7134_boards[] = {
3701 }, 3720 },
3702 }, 3721 },
3703 [SAA7134_BOARD_BEHOLD_407] = { 3722 [SAA7134_BOARD_BEHOLD_407] = {
3723 /* Beholder Intl. Ltd. 2008 */
3724 /*Dmitry Belimov <d.belimov@gmail.com> */
3704 .name = "Beholder BeholdTV 407", 3725 .name = "Beholder BeholdTV 407",
3705 .audio_clock = 0x00187de7, 3726 .audio_clock = 0x00187de7,
3706 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, 3727 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
@@ -3708,7 +3729,7 @@ struct saa7134_board saa7134_boards[] = {
3708 .tuner_addr = ADDR_UNSET, 3729 .tuner_addr = ADDR_UNSET,
3709 .radio_addr = ADDR_UNSET, 3730 .radio_addr = ADDR_UNSET,
3710 .tda9887_conf = TDA9887_PRESENT, 3731 .tda9887_conf = TDA9887_PRESENT,
3711 .gpiomask = 0xc0c000, 3732 .gpiomask = 0x00008000,
3712 .inputs = {{ 3733 .inputs = {{
3713 .name = name_svideo, 3734 .name = name_svideo,
3714 .vmux = 8, 3735 .vmux = 8,
@@ -3728,6 +3749,8 @@ struct saa7134_board saa7134_boards[] = {
3728 }}, 3749 }},
3729 }, 3750 },
3730 [SAA7134_BOARD_BEHOLD_407FM] = { 3751 [SAA7134_BOARD_BEHOLD_407FM] = {
3752 /* Beholder Intl. Ltd. 2008 */
3753 /*Dmitry Belimov <d.belimov@gmail.com> */
3731 .name = "Beholder BeholdTV 407 FM", 3754 .name = "Beholder BeholdTV 407 FM",
3732 .audio_clock = 0x00187de7, 3755 .audio_clock = 0x00187de7,
3733 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, 3756 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
@@ -3735,7 +3758,7 @@ struct saa7134_board saa7134_boards[] = {
3735 .tuner_addr = ADDR_UNSET, 3758 .tuner_addr = ADDR_UNSET,
3736 .radio_addr = ADDR_UNSET, 3759 .radio_addr = ADDR_UNSET,
3737 .tda9887_conf = TDA9887_PRESENT, 3760 .tda9887_conf = TDA9887_PRESENT,
3738 .gpiomask = 0xc0c000, 3761 .gpiomask = 0x00008000,
3739 .inputs = {{ 3762 .inputs = {{
3740 .name = name_svideo, 3763 .name = name_svideo,
3741 .vmux = 8, 3764 .vmux = 8,
@@ -3760,6 +3783,8 @@ struct saa7134_board saa7134_boards[] = {
3760 }, 3783 },
3761 }, 3784 },
3762 [SAA7134_BOARD_BEHOLD_409] = { 3785 [SAA7134_BOARD_BEHOLD_409] = {
3786 /* Beholder Intl. Ltd. 2008 */
3787 /*Dmitry Belimov <d.belimov@gmail.com> */
3763 .name = "Beholder BeholdTV 409", 3788 .name = "Beholder BeholdTV 409",
3764 .audio_clock = 0x00187de7, 3789 .audio_clock = 0x00187de7,
3765 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, 3790 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
@@ -3767,6 +3792,7 @@ struct saa7134_board saa7134_boards[] = {
3767 .tuner_addr = ADDR_UNSET, 3792 .tuner_addr = ADDR_UNSET,
3768 .radio_addr = ADDR_UNSET, 3793 .radio_addr = ADDR_UNSET,
3769 .tda9887_conf = TDA9887_PRESENT, 3794 .tda9887_conf = TDA9887_PRESENT,
3795 .gpiomask = 0x00008000,
3770 .inputs = {{ 3796 .inputs = {{
3771 .name = name_tv, 3797 .name = name_tv,
3772 .vmux = 3, 3798 .vmux = 3,
@@ -3783,6 +3809,8 @@ struct saa7134_board saa7134_boards[] = {
3783 }}, 3809 }},
3784 }, 3810 },
3785 [SAA7134_BOARD_BEHOLD_505FM] = { 3811 [SAA7134_BOARD_BEHOLD_505FM] = {
3812 /* Beholder Intl. Ltd. 2008 */
3813 /*Dmitry Belimov <d.belimov@gmail.com> */
3786 .name = "Beholder BeholdTV 505 FM/RDS", 3814 .name = "Beholder BeholdTV 505 FM/RDS",
3787 .audio_clock = 0x00200000, 3815 .audio_clock = 0x00200000,
3788 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, 3816 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
@@ -3790,6 +3818,7 @@ struct saa7134_board saa7134_boards[] = {
3790 .tuner_addr = ADDR_UNSET, 3818 .tuner_addr = ADDR_UNSET,
3791 .radio_addr = ADDR_UNSET, 3819 .radio_addr = ADDR_UNSET,
3792 .tda9887_conf = TDA9887_PRESENT, 3820 .tda9887_conf = TDA9887_PRESENT,
3821 .gpiomask = 0x00008000,
3793 .inputs = {{ 3822 .inputs = {{
3794 .name = name_tv, 3823 .name = name_tv,
3795 .vmux = 3, 3824 .vmux = 3,
@@ -3814,6 +3843,8 @@ struct saa7134_board saa7134_boards[] = {
3814 }, 3843 },
3815 }, 3844 },
3816 [SAA7134_BOARD_BEHOLD_507_9FM] = { 3845 [SAA7134_BOARD_BEHOLD_507_9FM] = {
3846 /* Beholder Intl. Ltd. 2008 */
3847 /*Dmitry Belimov <d.belimov@gmail.com> */
3817 .name = "Beholder BeholdTV 507 FM/RDS / BeholdTV 509 FM", 3848 .name = "Beholder BeholdTV 507 FM/RDS / BeholdTV 509 FM",
3818 .audio_clock = 0x00187de7, 3849 .audio_clock = 0x00187de7,
3819 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, 3850 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
@@ -3821,6 +3852,7 @@ struct saa7134_board saa7134_boards[] = {
3821 .tuner_addr = ADDR_UNSET, 3852 .tuner_addr = ADDR_UNSET,
3822 .radio_addr = ADDR_UNSET, 3853 .radio_addr = ADDR_UNSET,
3823 .tda9887_conf = TDA9887_PRESENT, 3854 .tda9887_conf = TDA9887_PRESENT,
3855 .gpiomask = 0x00008000,
3824 .inputs = {{ 3856 .inputs = {{
3825 .name = name_tv, 3857 .name = name_tv,
3826 .vmux = 3, 3858 .vmux = 3,
@@ -3841,6 +3873,8 @@ struct saa7134_board saa7134_boards[] = {
3841 }, 3873 },
3842 }, 3874 },
3843 [SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM] = { 3875 [SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM] = {
3876 /* Beholder Intl. Ltd. 2008 */
3877 /*Dmitry Belimov <d.belimov@gmail.com> */
3844 .name = "Beholder BeholdTV Columbus TVFM", 3878 .name = "Beholder BeholdTV Columbus TVFM",
3845 .audio_clock = 0x00187de7, 3879 .audio_clock = 0x00187de7,
3846 .tuner_type = TUNER_ALPS_TSBE5_PAL, 3880 .tuner_type = TUNER_ALPS_TSBE5_PAL,
@@ -3848,23 +3882,28 @@ struct saa7134_board saa7134_boards[] = {
3848 .tuner_addr = ADDR_UNSET, 3882 .tuner_addr = ADDR_UNSET,
3849 .radio_addr = ADDR_UNSET, 3883 .radio_addr = ADDR_UNSET,
3850 .tda9887_conf = TDA9887_PRESENT, 3884 .tda9887_conf = TDA9887_PRESENT,
3885 .gpiomask = 0x000A8004,
3851 .inputs = {{ 3886 .inputs = {{
3852 .name = name_tv, 3887 .name = name_tv,
3853 .vmux = 3, 3888 .vmux = 3,
3854 .amux = TV, 3889 .amux = TV,
3855 .tv = 1, 3890 .tv = 1,
3856 },{ 3891 .gpio = 0x000A8004,
3892 }, {
3857 .name = name_comp1, 3893 .name = name_comp1,
3858 .vmux = 1, 3894 .vmux = 1,
3859 .amux = LINE1, 3895 .amux = LINE1,
3860 },{ 3896 .gpio = 0x000A8000,
3897 }, {
3861 .name = name_svideo, 3898 .name = name_svideo,
3862 .vmux = 8, 3899 .vmux = 8,
3863 .amux = LINE1, 3900 .amux = LINE1,
3864 }}, 3901 .gpio = 0x000A8000,
3902 } },
3865 .radio = { 3903 .radio = {
3866 .name = name_radio, 3904 .name = name_radio,
3867 .amux = LINE2, 3905 .amux = LINE2,
3906 .gpio = 0x000A8000,
3868 }, 3907 },
3869 }, 3908 },
3870 [SAA7134_BOARD_BEHOLD_607_9FM] = { 3909 [SAA7134_BOARD_BEHOLD_607_9FM] = {
@@ -5471,7 +5510,6 @@ int saa7134_board_init1(struct saa7134_dev *dev)
5471 case SAA7134_BOARD_AVERMEDIA_CARDBUS: 5510 case SAA7134_BOARD_AVERMEDIA_CARDBUS:
5472 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506: 5511 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
5473 case SAA7134_BOARD_AVERMEDIA_M115: 5512 case SAA7134_BOARD_AVERMEDIA_M115:
5474 case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
5475 case SAA7134_BOARD_AVERMEDIA_A16D: 5513 case SAA7134_BOARD_AVERMEDIA_A16D:
5476 /* power-down tuner chip */ 5514 /* power-down tuner chip */
5477 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0xffffffff, 0); 5515 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0xffffffff, 0);
@@ -5482,6 +5520,18 @@ int saa7134_board_init1(struct saa7134_dev *dev)
5482 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff); 5520 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff);
5483 msleep(10); 5521 msleep(10);
5484 break; 5522 break;
5523 case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
5524 /* power-down tuner chip */
5525 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x000A8004, 0x000A8004);
5526 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x000A8004, 0);
5527 msleep(10);
5528 /* power-up tuner chip */
5529 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x000A8004, 0x000A8004);
5530 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x000A8004, 0x000A8004);
5531 msleep(10);
5532 /* remote via GPIO */
5533 dev->has_remote = SAA7134_REMOTE_GPIO;
5534 break;
5485 case SAA7134_BOARD_RTD_VFG7350: 5535 case SAA7134_BOARD_RTD_VFG7350:
5486 5536
5487 /* 5537 /*
@@ -5770,6 +5820,20 @@ int saa7134_board_init2(struct saa7134_dev *dev)
5770 break; 5820 break;
5771 } 5821 }
5772 break; 5822 break;
5823 case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
5824 {
5825 struct v4l2_priv_tun_config tea5767_cfg;
5826 struct tea5767_ctrl ctl;
5827
5828 dev->i2c_client.addr = 0xC0;
5829 /* set TEA5767(analog FM) defines */
5830 memset(&ctl, 0, sizeof(ctl));
5831 ctl.xtal_freq = TEA5767_HIGH_LO_13MHz;
5832 tea5767_cfg.tuner = TUNER_TEA5767;
5833 tea5767_cfg.priv = &ctl;
5834 saa7134_i2c_call_clients(dev, TUNER_SET_CONFIG, &tea5767_cfg);
5835 }
5836 break;
5773 } 5837 }
5774 5838
5775 if (dev->tuner_type == TUNER_XC2028) { 5839 if (dev->tuner_type == TUNER_XC2028) {