diff options
author | Hartmut Hackmann <hartmut.hackmann@t\-online.de> | 2006-02-07 03:49:10 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-02-07 03:49:10 -0500 |
commit | df42eaf2b2f2c43969d879dbcafa698c666fe8a9 (patch) | |
tree | 7cbfeaf66d839d29f682cfc7356bd8cca0116965 /drivers/media/video/saa7134/saa7134-dvb.c | |
parent | 0eb3de20a1cec67547951cebc4fcddc701e7428b (diff) |
V4L/DVB (3305): Added support for the ADS Instant TV DUO Cardbus PTV331
Analog and DVB-T are working, Remote not yet.
This card is based on the new LifeView design, there should be many variants.
Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/saa7134/saa7134-dvb.c')
-rw-r--r-- | drivers/media/video/saa7134/saa7134-dvb.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c index be110b85f097..a0c8fa393501 100644 --- a/drivers/media/video/saa7134/saa7134-dvb.c +++ b/drivers/media/video/saa7134/saa7134-dvb.c | |||
@@ -846,6 +846,45 @@ static struct tda1004x_config philips_tiger_config = { | |||
846 | .request_firmware = NULL, | 846 | .request_firmware = NULL, |
847 | }; | 847 | }; |
848 | 848 | ||
849 | /* ------------------------------------------------------------------ */ | ||
850 | |||
851 | static int ads_duo_pll_set(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) | ||
852 | { | ||
853 | int ret; | ||
854 | |||
855 | ret = philips_tda827xa_pll_set(0x61, fe, params); | ||
856 | return ret; | ||
857 | }; | ||
858 | |||
859 | static int ads_duo_dvb_mode(struct dvb_frontend *fe) | ||
860 | { | ||
861 | struct saa7134_dev *dev = fe->dvb->priv; | ||
862 | /* route TDA8275a AGC input to the channel decoder */ | ||
863 | saa_writeb(SAA7134_GPIO_GPSTATUS2, 0x60); | ||
864 | return 0; | ||
865 | } | ||
866 | |||
867 | static void ads_duo_analog_mode(struct dvb_frontend *fe) | ||
868 | { | ||
869 | struct saa7134_dev *dev = fe->dvb->priv; | ||
870 | /* route TDA8275a AGC input to the analog IF chip*/ | ||
871 | saa_writeb(SAA7134_GPIO_GPSTATUS2, 0x20); | ||
872 | philips_tda827xa_pll_sleep( 0x61, fe); | ||
873 | } | ||
874 | |||
875 | static struct tda1004x_config ads_tech_duo_config = { | ||
876 | .demod_address = 0x08, | ||
877 | .invert = 1, | ||
878 | .invert_oclk = 0, | ||
879 | .xtal_freq = TDA10046_XTAL_16M, | ||
880 | .agc_config = TDA10046_AGC_TDA827X_GPL, | ||
881 | .if_freq = TDA10046_FREQ_045, | ||
882 | .pll_init = ads_duo_dvb_mode, | ||
883 | .pll_set = ads_duo_pll_set, | ||
884 | .pll_sleep = ads_duo_analog_mode, | ||
885 | .request_firmware = NULL, | ||
886 | }; | ||
887 | |||
849 | #endif | 888 | #endif |
850 | 889 | ||
851 | /* ------------------------------------------------------------------ */ | 890 | /* ------------------------------------------------------------------ */ |
@@ -928,6 +967,10 @@ static int dvb_init(struct saa7134_dev *dev) | |||
928 | dev->dvb.frontend = tda10046_attach(&tda827x_lifeview_config, | 967 | dev->dvb.frontend = tda10046_attach(&tda827x_lifeview_config, |
929 | &dev->i2c_adap); | 968 | &dev->i2c_adap); |
930 | break; | 969 | break; |
970 | case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331: | ||
971 | dev->dvb.frontend = tda10046_attach(&ads_tech_duo_config, | ||
972 | &dev->i2c_adap); | ||
973 | break; | ||
931 | #endif | 974 | #endif |
932 | #ifdef HAVE_NXT200X | 975 | #ifdef HAVE_NXT200X |
933 | case SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180: | 976 | case SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180: |