diff options
author | Evgeny Plehov <EvgenyPlehov@ukr.net> | 2012-08-11 17:48:14 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-08-12 13:41:26 -0400 |
commit | da2cd767f537082be0a02d83f87e0da4270e25b2 (patch) | |
tree | 06865b75670df36dceb32b2bb0f3ce8fa30cde04 /drivers | |
parent | 062ef0d4bb66e975a79dec4d5cc3ef1bf584efef (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.c | 60 |
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 | ||
54 | static int diseqc_method; | 56 | static int diseqc_method; |
55 | module_param(diseqc_method, int, 0444); | 57 | module_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 | |||
759 | MAKE_BUDGET_INFO(fsacs1, "Fujitsu Siemens Activy Budget-S PCI (rev AL/alps frontend)", BUDGET_FS_ACTIVY); | 817 | MAKE_BUDGET_INFO(fsacs1, "Fujitsu Siemens Activy Budget-S PCI (rev AL/alps frontend)", BUDGET_FS_ACTIVY); |
760 | MAKE_BUDGET_INFO(fsact, "Fujitsu Siemens Activy Budget-T PCI (rev GR/Grundig frontend)", BUDGET_FS_ACTIVY); | 818 | MAKE_BUDGET_INFO(fsact, "Fujitsu Siemens Activy Budget-T PCI (rev GR/Grundig frontend)", BUDGET_FS_ACTIVY); |
761 | MAKE_BUDGET_INFO(fsact1, "Fujitsu Siemens Activy Budget-T PCI (rev AL/ALPS TDHD1-204A)", BUDGET_FS_ACTIVY); | 819 | MAKE_BUDGET_INFO(fsact1, "Fujitsu Siemens Activy Budget-T PCI (rev AL/ALPS TDHD1-204A)", BUDGET_FS_ACTIVY); |
820 | MAKE_BUDGET_INFO(omicom, "Omicom S2 PCI", BUDGET_TT); | ||
762 | 821 | ||
763 | static struct pci_device_id pci_tbl[] = { | 822 | static 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 | } |