aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorEvgeny Plehov <EvgenyPlehov@ukr.net>2012-08-11 17:48:14 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-08-12 13:41:26 -0400
commitda2cd767f537082be0a02d83f87e0da4270e25b2 (patch)
tree06865b75670df36dceb32b2bb0f3ce8fa30cde04 /drivers
parent062ef0d4bb66e975a79dec4d5cc3ef1bf584efef (diff)
[media] ttpci: add support for Omicom S2 PCI
Support for yet another SAA7146-based budget card (very similar to TT S2-1600, but use LNBH23 instead ISL6423). Signed-off-by: Evgeny Plehov <EvgenyPlehov@ukr.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/media/dvb/ttpci/budget.c60
1 files changed, 60 insertions, 0 deletions
diff --git a/drivers/media/dvb/ttpci/budget.c b/drivers/media/dvb/ttpci/budget.c
index b21bcce66708..7e6e43ae5c51 100644
--- a/drivers/media/dvb/ttpci/budget.c
+++ b/drivers/media/dvb/ttpci/budget.c
@@ -50,6 +50,8 @@
50#include "stv6110x.h" 50#include "stv6110x.h"
51#include "stv090x.h" 51#include "stv090x.h"
52#include "isl6423.h" 52#include "isl6423.h"
53#include "lnbh24.h"
54
53 55
54static int diseqc_method; 56static int diseqc_method;
55module_param(diseqc_method, int, 0444); 57module_param(diseqc_method, int, 0444);
@@ -679,6 +681,62 @@ static void frontend_init(struct budget *budget)
679 } 681 }
680 } 682 }
681 break; 683 break;
684
685 case 0x1020: { /* Omicom S2 */
686 struct stv6110x_devctl *ctl;
687 saa7146_setgpio(budget->dev, 2, SAA7146_GPIO_OUTLO);
688 msleep(50);
689 saa7146_setgpio(budget->dev, 2, SAA7146_GPIO_OUTHI);
690 msleep(250);
691
692 budget->dvb_frontend = dvb_attach(stv090x_attach,
693 &tt1600_stv090x_config,
694 &budget->i2c_adap,
695 STV090x_DEMODULATOR_0);
696
697 if (budget->dvb_frontend) {
698 printk(KERN_INFO "budget: Omicom S2 detected\n");
699
700 ctl = dvb_attach(stv6110x_attach,
701 budget->dvb_frontend,
702 &tt1600_stv6110x_config,
703 &budget->i2c_adap);
704
705 if (ctl) {
706 tt1600_stv090x_config.tuner_init = ctl->tuner_init;
707 tt1600_stv090x_config.tuner_sleep = ctl->tuner_sleep;
708 tt1600_stv090x_config.tuner_set_mode = ctl->tuner_set_mode;
709 tt1600_stv090x_config.tuner_set_frequency = ctl->tuner_set_frequency;
710 tt1600_stv090x_config.tuner_get_frequency = ctl->tuner_get_frequency;
711 tt1600_stv090x_config.tuner_set_bandwidth = ctl->tuner_set_bandwidth;
712 tt1600_stv090x_config.tuner_get_bandwidth = ctl->tuner_get_bandwidth;
713 tt1600_stv090x_config.tuner_set_bbgain = ctl->tuner_set_bbgain;
714 tt1600_stv090x_config.tuner_get_bbgain = ctl->tuner_get_bbgain;
715 tt1600_stv090x_config.tuner_set_refclk = ctl->tuner_set_refclk;
716 tt1600_stv090x_config.tuner_get_status = ctl->tuner_get_status;
717
718 /* call the init function once to initialize
719 tuner's clock output divider and demod's
720 master clock */
721 if (budget->dvb_frontend->ops.init)
722 budget->dvb_frontend->ops.init(budget->dvb_frontend);
723
724 if (dvb_attach(lnbh24_attach,
725 budget->dvb_frontend,
726 &budget->i2c_adap,
727 LNBH24_PCL | LNBH24_TTX,
728 LNBH24_TEN, 0x14>>1) == NULL) {
729 printk(KERN_ERR
730 "No LNBH24 found!\n");
731 goto error_out;
732 }
733 } else {
734 printk(KERN_ERR "%s: No STV6110(A) Silicon Tuner found!\n", __func__);
735 goto error_out;
736 }
737 }
738 }
739 break;
682 } 740 }
683 741
684 if (budget->dvb_frontend == NULL) { 742 if (budget->dvb_frontend == NULL) {
@@ -759,6 +817,7 @@ MAKE_BUDGET_INFO(fsacs0, "Fujitsu Siemens Activy Budget-S PCI (rev GR/grundig fr
759MAKE_BUDGET_INFO(fsacs1, "Fujitsu Siemens Activy Budget-S PCI (rev AL/alps frontend)", BUDGET_FS_ACTIVY); 817MAKE_BUDGET_INFO(fsacs1, "Fujitsu Siemens Activy Budget-S PCI (rev AL/alps frontend)", BUDGET_FS_ACTIVY);
760MAKE_BUDGET_INFO(fsact, "Fujitsu Siemens Activy Budget-T PCI (rev GR/Grundig frontend)", BUDGET_FS_ACTIVY); 818MAKE_BUDGET_INFO(fsact, "Fujitsu Siemens Activy Budget-T PCI (rev GR/Grundig frontend)", BUDGET_FS_ACTIVY);
761MAKE_BUDGET_INFO(fsact1, "Fujitsu Siemens Activy Budget-T PCI (rev AL/ALPS TDHD1-204A)", BUDGET_FS_ACTIVY); 819MAKE_BUDGET_INFO(fsact1, "Fujitsu Siemens Activy Budget-T PCI (rev AL/ALPS TDHD1-204A)", BUDGET_FS_ACTIVY);
820MAKE_BUDGET_INFO(omicom, "Omicom S2 PCI", BUDGET_TT);
762 821
763static struct pci_device_id pci_tbl[] = { 822static struct pci_device_id pci_tbl[] = {
764 MAKE_EXTENSION_PCI(ttbs, 0x13c2, 0x1003), 823 MAKE_EXTENSION_PCI(ttbs, 0x13c2, 0x1003),
@@ -772,6 +831,7 @@ static struct pci_device_id pci_tbl[] = {
772 MAKE_EXTENSION_PCI(fsacs0,0x1131, 0x4f61), 831 MAKE_EXTENSION_PCI(fsacs0,0x1131, 0x4f61),
773 MAKE_EXTENSION_PCI(fsact1, 0x1131, 0x5f60), 832 MAKE_EXTENSION_PCI(fsact1, 0x1131, 0x5f60),
774 MAKE_EXTENSION_PCI(fsact, 0x1131, 0x5f61), 833 MAKE_EXTENSION_PCI(fsact, 0x1131, 0x5f61),
834 MAKE_EXTENSION_PCI(omicom, 0x14c4, 0x1020),
775 { 835 {
776 .vendor = 0, 836 .vendor = 0,
777 } 837 }