aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorHermann Pitton <hermann-pitton@arcor.de>2008-01-20 17:27:51 -0500
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-02-18 09:14:55 -0500
commit4ba243734a0363649c514353334ed3d6ca39a5fb (patch)
tree2e528162af8fb770dbdc7e2b04a1323282e1d64d /drivers/media
parentc0e0aff9779303c7e3ef7e6db4001dbc2bfdcbdd (diff)
V4L/DVB (7082): support for Twinhan Hybrid DTV-DVB 3056 PCI
S-Video is unconfirmed, but likely correct. The remote is not yet investigated. Thanks go to Sioux for providing code and asking to fix the auto detection. Signed-off-by: sioux <sioux_it@libero.it> Signed-off-by: Hermann Pitton <hermann-pitton@arcor.de> Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/saa7134/saa7134-cards.c41
-rw-r--r--drivers/media/video/saa7134/saa7134-dvb.c18
-rw-r--r--drivers/media/video/saa7134/saa7134.h1
3 files changed, 58 insertions, 2 deletions
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c
index 7d7f383b404f..176543f723ca 100644
--- a/drivers/media/video/saa7134/saa7134-cards.c
+++ b/drivers/media/video/saa7134/saa7134-cards.c
@@ -3912,6 +3912,36 @@ struct saa7134_board saa7134_boards[] = {
3912 }, 3912 },
3913 .mpeg = SAA7134_MPEG_EMPRESS, 3913 .mpeg = SAA7134_MPEG_EMPRESS,
3914 }, 3914 },
3915 [SAA7134_BOARD_TWINHAN_DTV_DVB_3056] = {
3916 .name = "Twinhan Hybrid DTV-DVB 3056 PCI",
3917 .audio_clock = 0x00187de7,
3918 .tuner_type = TUNER_PHILIPS_TDA8290,
3919 .radio_type = UNSET,
3920 .tuner_addr = ADDR_UNSET,
3921 .radio_addr = ADDR_UNSET,
3922 .tuner_config = 2,
3923 .mpeg = SAA7134_MPEG_DVB,
3924 .gpiomask = 0x0200000,
3925 .inputs = {{
3926 .name = name_tv,
3927 .vmux = 1,
3928 .amux = TV,
3929 .tv = 1,
3930 }, {
3931 .name = name_comp1,
3932 .vmux = 3,
3933 .amux = LINE1,
3934 }, {
3935 .name = name_svideo,
3936 .vmux = 8, /* untested */
3937 .amux = LINE1,
3938 } },
3939 .radio = {
3940 .name = name_radio,
3941 .amux = TV,
3942 .gpio = 0x0200000,
3943 },
3944 },
3915}; 3945};
3916 3946
3917const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); 3947const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
@@ -4843,7 +4873,13 @@ struct pci_device_id saa7134_pci_tbl[] = {
4843 .device = PCI_DEVICE_ID_PHILIPS_SAA7133, 4873 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4844 .subvendor = 0x4e42, 4874 .subvendor = 0x4e42,
4845 .subdevice = 0x3502, 4875 .subdevice = 0x3502,
4846 .driver_data = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS 4876 .driver_data = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
4877 }, {
4878 .vendor = PCI_VENDOR_ID_PHILIPS,
4879 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4880 .subvendor = 0x1822, /*Twinhan Technology Co. Ltd*/
4881 .subdevice = 0x0022,
4882 .driver_data = SAA7134_BOARD_TWINHAN_DTV_DVB_3056,
4847 },{ 4883 },{
4848 /* --- boards without eeprom + subsystem ID --- */ 4884 /* --- boards without eeprom + subsystem ID --- */
4849 .vendor = PCI_VENDOR_ID_PHILIPS, 4885 .vendor = PCI_VENDOR_ID_PHILIPS,
@@ -5232,7 +5268,8 @@ int saa7134_board_init2(struct saa7134_dev *dev)
5232 case SAA7134_BOARD_ASUSTeK_P7131_DUAL: 5268 case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
5233 case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA: 5269 case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA:
5234 case SAA7134_BOARD_MEDION_MD8800_QUADRO: 5270 case SAA7134_BOARD_MEDION_MD8800_QUADRO:
5235 case SAA7134_BOARD_AVERMEDIA_SUPER_007: 5271 case SAA7134_BOARD_AVERMEDIA_SUPER_007:
5272 case SAA7134_BOARD_TWINHAN_DTV_DVB_3056:
5236 /* this is a hybrid board, initialize to analog mode 5273 /* this is a hybrid board, initialize to analog mode
5237 * and configure firmware eeprom address 5274 * and configure firmware eeprom address
5238 */ 5275 */
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c
index a9ca5730826f..90f495a67804 100644
--- a/drivers/media/video/saa7134/saa7134-dvb.c
+++ b/drivers/media/video/saa7134/saa7134-dvb.c
@@ -779,6 +779,21 @@ static struct tda1004x_config avermedia_super_007_config = {
779 .request_firmware = philips_tda1004x_request_firmware 779 .request_firmware = philips_tda1004x_request_firmware
780}; 780};
781 781
782static struct tda1004x_config twinhan_dtv_dvb_3056_config = {
783 .demod_address = 0x08,
784 .invert = 1,
785 .invert_oclk = 0,
786 .xtal_freq = TDA10046_XTAL_16M,
787 .agc_config = TDA10046_AGC_TDA827X,
788 .gpio_config = TDA10046_GP01_I,
789 .if_freq = TDA10046_FREQ_045,
790 .i2c_gate = 0x42,
791 .tuner_address = 0x61,
792 .tuner_config = 2,
793 .antenna_switch = 1,
794 .request_firmware = philips_tda1004x_request_firmware
795};
796
782/* ------------------------------------------------------------------ 797/* ------------------------------------------------------------------
783 * special case: this card uses saa713x GPIO22 for the mode switch 798 * special case: this card uses saa713x GPIO22 for the mode switch
784 */ 799 */
@@ -1044,6 +1059,9 @@ static int dvb_init(struct saa7134_dev *dev)
1044 case SAA7134_BOARD_AVERMEDIA_SUPER_007: 1059 case SAA7134_BOARD_AVERMEDIA_SUPER_007:
1045 configure_tda827x_fe(dev, &avermedia_super_007_config); 1060 configure_tda827x_fe(dev, &avermedia_super_007_config);
1046 break; 1061 break;
1062 case SAA7134_BOARD_TWINHAN_DTV_DVB_3056:
1063 configure_tda827x_fe(dev, &twinhan_dtv_dvb_3056_config);
1064 break;
1047 default: 1065 default:
1048 wprintk("Huh? unknown DVB card?\n"); 1066 wprintk("Huh? unknown DVB card?\n");
1049 break; 1067 break;
diff --git a/drivers/media/video/saa7134/saa7134.h b/drivers/media/video/saa7134/saa7134.h
index b88ca995fafb..27fb44332215 100644
--- a/drivers/media/video/saa7134/saa7134.h
+++ b/drivers/media/video/saa7134/saa7134.h
@@ -252,6 +252,7 @@ struct saa7134_format {
252#define SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM 128 252#define SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM 128
253#define SAA7134_BOARD_BEHOLD_607_9FM 129 253#define SAA7134_BOARD_BEHOLD_607_9FM 129
254#define SAA7134_BOARD_BEHOLD_M6 130 254#define SAA7134_BOARD_BEHOLD_M6 130
255#define SAA7134_BOARD_TWINHAN_DTV_DVB_3056 131
255 256
256#define SAA7134_MAXBOARDS 8 257#define SAA7134_MAXBOARDS 8
257#define SAA7134_INPUT_MAX 8 258#define SAA7134_INPUT_MAX 8