diff options
author | Peter Hartshorn <p3r@users.sourceforge.net> | 2006-02-07 03:49:13 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@brturbo.com.br> | 2006-02-07 03:49:13 -0500 |
commit | 3dfb729f4513184d06a0c618179489ac7bb277e0 (patch) | |
tree | e31f89ca06c5ec10fa4a62fa07089d018f53254b | |
parent | e5d4a56d5d824e4dfe7d065d0fedb02e63952710 (diff) |
V4L/DVB (3315): Added support for the Tevion DVB-T 220RF card
This is an analog / digital hybrid card.
Signed-off-by: Peter Hartshorn <p3r@users.sourceforge.net>
Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r-- | Documentation/video4linux/CARDLIST.saa7134 | 1 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-cards.c | 38 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-dvb.c | 36 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134.h | 1 |
4 files changed, 75 insertions, 1 deletions
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134 index ee1618deadf2..c10cfd26d529 100644 --- a/Documentation/video4linux/CARDLIST.saa7134 +++ b/Documentation/video4linux/CARDLIST.saa7134 | |||
@@ -86,3 +86,4 @@ | |||
86 | 85 -> AverTV DVB-T 777 [1461:2c05] | 86 | 85 -> AverTV DVB-T 777 [1461:2c05] |
87 | 86 -> LifeView FlyDVB-T [5168:0301] | 87 | 86 -> LifeView FlyDVB-T [5168:0301] |
88 | 87 -> ADS Instant TV Duo Cardbus PTV331 [0331:1421] | 88 | 87 -> ADS Instant TV Duo Cardbus PTV331 [0331:1421] |
89 | 88 -> Tevion DVB-T 220RF [17de:7201] | ||
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index d65b9dd90342..3f418620bacf 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c | |||
@@ -2674,6 +2674,33 @@ struct saa7134_board saa7134_boards[] = { | |||
2674 | .gpio = 0x00200000, | 2674 | .gpio = 0x00200000, |
2675 | }}, | 2675 | }}, |
2676 | }, | 2676 | }, |
2677 | [SAA7134_BOARD_TEVION_DVBT_220RF] = { | ||
2678 | .name = "Tevion DVB-T 220RF", | ||
2679 | .audio_clock = 0x00187de7, | ||
2680 | .tuner_type = TUNER_PHILIPS_TDA8290, | ||
2681 | .radio_type = UNSET, | ||
2682 | .tuner_addr = ADDR_UNSET, | ||
2683 | .radio_addr = ADDR_UNSET, | ||
2684 | .mpeg = SAA7134_MPEG_DVB, | ||
2685 | .inputs = {{ | ||
2686 | .name = name_tv, | ||
2687 | .vmux = 1, | ||
2688 | .amux = TV, | ||
2689 | .tv = 1, | ||
2690 | },{ | ||
2691 | .name = name_comp1, | ||
2692 | .vmux = 3, | ||
2693 | .amux = LINE1, | ||
2694 | },{ | ||
2695 | .name = name_svideo, | ||
2696 | .vmux = 0, | ||
2697 | .amux = LINE1, | ||
2698 | }}, | ||
2699 | .radio = { | ||
2700 | .name = name_radio, | ||
2701 | .amux = LINE1, | ||
2702 | }, | ||
2703 | }, | ||
2677 | }; | 2704 | }; |
2678 | 2705 | ||
2679 | const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); | 2706 | const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); |
@@ -3163,6 +3190,12 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
3163 | .subdevice = 0x1421, | 3190 | .subdevice = 0x1421, |
3164 | .driver_data = SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331, | 3191 | .driver_data = SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331, |
3165 | },{ | 3192 | },{ |
3193 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
3194 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
3195 | .subvendor = 0x17de, | ||
3196 | .subdevice = 0x7201, | ||
3197 | .driver_data = SAA7134_BOARD_TEVION_DVBT_220RF, | ||
3198 | },{ | ||
3166 | /* --- boards without eeprom + subsystem ID --- */ | 3199 | /* --- boards without eeprom + subsystem ID --- */ |
3167 | .vendor = PCI_VENDOR_ID_PHILIPS, | 3200 | .vendor = PCI_VENDOR_ID_PHILIPS, |
3168 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 3201 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
@@ -3431,8 +3464,11 @@ int saa7134_board_init2(struct saa7134_dev *dev) | |||
3431 | } | 3464 | } |
3432 | break; | 3465 | break; |
3433 | case SAA7134_BOARD_PHILIPS_TIGER: | 3466 | case SAA7134_BOARD_PHILIPS_TIGER: |
3467 | case SAA7134_BOARD_TEVION_DVBT_220RF: | ||
3434 | case SAA7134_BOARD_ASUSTeK_P7131_DUAL: | 3468 | case SAA7134_BOARD_ASUSTeK_P7131_DUAL: |
3435 | /* this is a hybrid board, initialize to analog mode */ | 3469 | /* this is a hybrid board, initialize to analog mode |
3470 | * and configure firmware eeprom address | ||
3471 | */ | ||
3436 | { | 3472 | { |
3437 | u8 data[] = { 0x3c, 0x33, 0x68}; | 3473 | u8 data[] = { 0x3c, 0x33, 0x68}; |
3438 | struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)}; | 3474 | struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)}; |
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c index a0c8fa393501..56ca3fad55c4 100644 --- a/drivers/media/video/saa7134/saa7134-dvb.c +++ b/drivers/media/video/saa7134/saa7134-dvb.c | |||
@@ -885,6 +885,38 @@ static struct tda1004x_config ads_tech_duo_config = { | |||
885 | .request_firmware = NULL, | 885 | .request_firmware = NULL, |
886 | }; | 886 | }; |
887 | 887 | ||
888 | /* ------------------------------------------------------------------ */ | ||
889 | |||
890 | static int tevion_dvb220rf_pll_set(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) | ||
891 | { | ||
892 | int ret; | ||
893 | ret = philips_tda827xa_pll_set(0x60, fe, params); | ||
894 | return ret; | ||
895 | } | ||
896 | |||
897 | static int tevion_dvb220rf_pll_init(struct dvb_frontend *fe) | ||
898 | { | ||
899 | return 0; | ||
900 | } | ||
901 | |||
902 | static void tevion_dvb220rf_pll_sleep(struct dvb_frontend *fe) | ||
903 | { | ||
904 | philips_tda827xa_pll_sleep( 0x61, fe); | ||
905 | } | ||
906 | |||
907 | static struct tda1004x_config tevion_dvbt220rf_config = { | ||
908 | .demod_address = 0x08, | ||
909 | .invert = 1, | ||
910 | .invert_oclk = 0, | ||
911 | .xtal_freq = TDA10046_XTAL_16M, | ||
912 | .agc_config = TDA10046_AGC_TDA827X, | ||
913 | .if_freq = TDA10046_FREQ_045, | ||
914 | .pll_init = tevion_dvb220rf_pll_init, | ||
915 | .pll_set = tevion_dvb220rf_pll_set, | ||
916 | .pll_sleep = tevion_dvb220rf_pll_sleep, | ||
917 | .request_firmware = NULL, | ||
918 | }; | ||
919 | |||
888 | #endif | 920 | #endif |
889 | 921 | ||
890 | /* ------------------------------------------------------------------ */ | 922 | /* ------------------------------------------------------------------ */ |
@@ -971,6 +1003,10 @@ static int dvb_init(struct saa7134_dev *dev) | |||
971 | dev->dvb.frontend = tda10046_attach(&ads_tech_duo_config, | 1003 | dev->dvb.frontend = tda10046_attach(&ads_tech_duo_config, |
972 | &dev->i2c_adap); | 1004 | &dev->i2c_adap); |
973 | break; | 1005 | break; |
1006 | case SAA7134_BOARD_TEVION_DVBT_220RF: | ||
1007 | dev->dvb.frontend = tda10046_attach(&tevion_dvbt220rf_config, | ||
1008 | &dev->i2c_adap); | ||
1009 | break; | ||
974 | #endif | 1010 | #endif |
975 | #ifdef HAVE_NXT200X | 1011 | #ifdef HAVE_NXT200X |
976 | case SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180: | 1012 | case SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180: |
diff --git a/drivers/media/video/saa7134/saa7134.h b/drivers/media/video/saa7134/saa7134.h index 4b49ee03fc21..ff39a63c7372 100644 --- a/drivers/media/video/saa7134/saa7134.h +++ b/drivers/media/video/saa7134/saa7134.h | |||
@@ -214,6 +214,7 @@ struct saa7134_format { | |||
214 | #define SAA7134_BOARD_AVERMEDIA_777 85 | 214 | #define SAA7134_BOARD_AVERMEDIA_777 85 |
215 | #define SAA7134_BOARD_FLYDVBT_LR301 86 | 215 | #define SAA7134_BOARD_FLYDVBT_LR301 86 |
216 | #define SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331 87 | 216 | #define SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331 87 |
217 | #define SAA7134_BOARD_TEVION_DVBT_220RF 88 | ||
217 | 218 | ||
218 | #define SAA7134_MAXBOARDS 8 | 219 | #define SAA7134_MAXBOARDS 8 |
219 | #define SAA7134_INPUT_MAX 8 | 220 | #define SAA7134_INPUT_MAX 8 |