diff options
Diffstat (limited to 'linux')
-rw-r--r-- | linux/drivers/media/dvb/dvb-usb/Kconfig | 1 | ||||
-rw-r--r-- | linux/drivers/media/dvb/dvb-usb/anysee.c | 22 | ||||
-rw-r--r-- | linux/drivers/media/dvb/dvb-usb/anysee.h | 4 | ||||
-rw-r--r-- | linux/drivers/media/dvb/frontends/tda10023.c | 6 | ||||
-rw-r--r-- | linux/drivers/media/dvb/frontends/tda1002x.h | 10 |
5 files changed, 28 insertions, 15 deletions
diff --git a/linux/drivers/media/dvb/dvb-usb/Kconfig b/linux/drivers/media/dvb/dvb-usb/Kconfig index 3f7b9b632..cae574fa7 100644 --- a/linux/drivers/media/dvb/dvb-usb/Kconfig +++ b/linux/drivers/media/dvb/dvb-usb/Kconfig @@ -244,6 +244,7 @@ config DVB_USB_AF9005_REMOTE config DVB_USB_ANYSEE tristate "Anysee DVB-T/C USB2.0 support" depends on DVB_USB + select DVB_PLL if !DVB_FE_CUSTOMISE select DVB_MT352 if !DVB_FE_CUSTOMISE select DVB_ZL10353 if !DVB_FE_CUSTOMISE select DVB_TDA10023 if !DVB_FE_CUSTOMISE diff --git a/linux/drivers/media/dvb/dvb-usb/anysee.c b/linux/drivers/media/dvb/dvb-usb/anysee.c index 89675dbf7..224919559 100644 --- a/linux/drivers/media/dvb/dvb-usb/anysee.c +++ b/linux/drivers/media/dvb/dvb-usb/anysee.c @@ -23,8 +23,8 @@ * Card reader in Anysee is nothing more than ISO 7816 card reader. * There is no hardware CAM in any Anysee device sold. * In my understanding it should be implemented by making own module - * for ISO 7816 card reader, like dvb_ca_en50221 is implented. This - * module registers serial interface that can be used to comminicate + * for ISO 7816 card reader, like dvb_ca_en50221 is implemented. This + * module registers serial interface that can be used to communicate * with any ISO 7816 smart card. * * Any help according to implement serial smart card reader support @@ -227,7 +227,8 @@ static struct tda10023_config anysee_tda10023_config = { .pll_m = 11, .pll_p = 3, .pll_n = 1, - .deltaf = 0xfed6, + .output_mode = TDA10023_OUTPUT_MODE_PARALLEL_C, + .deltaf = 0xfeeb, }; static struct mt352_config anysee_mt352_config = { @@ -272,8 +273,8 @@ static int anysee_frontend_attach(struct dvb_usb_adapter *adap) 1. E30 MT352 02 0.2.1 2. E30 ZL10353 02 0.2.1 3. E30 Plus ZL10353 06 0.1.0 - 4. E30C Plus TDA10023 0a 0.1.0 - E30C Plus TDA10023 0f 0.1.2 (not working) + 4. E30C Plus TDA10023 0a 0.1.0 rev 0.2 + 4. E30C Plus TDA10023 0f 0.1.2 rev 0.4 */ /* Zarlink MT352 DVB-T demod inside of Samsung DNOS404ZH102A NIM */ @@ -305,13 +306,10 @@ static int anysee_frontend_attach(struct dvb_usb_adapter *adap) return 0; } - /* known not working (E30C Plus v0.1.2) */ - if (hw_info[0] == 0x0f) { - info("this version of Anysee is not supported yet"); - /* return IO port D to init value for safe */ - ret = anysee_write_reg(adap->dev, 0xb0, io_d); - return -ENODEV; - } + /* IO port E - E30C rev 0.4 board requires this */ + ret = anysee_write_reg(adap->dev, 0xb1, 0xa7); + if (ret) + return ret; /* Philips TDA10023 DVB-C demod */ adap->fe = dvb_attach(tda10023_attach, &anysee_tda10023_config, diff --git a/linux/drivers/media/dvb/dvb-usb/anysee.h b/linux/drivers/media/dvb/dvb-usb/anysee.h index 48da3949e..7ca01ff6e 100644 --- a/linux/drivers/media/dvb/dvb-usb/anysee.h +++ b/linux/drivers/media/dvb/dvb-usb/anysee.h @@ -23,8 +23,8 @@ * Card reader in Anysee is nothing more than ISO 7816 card reader. * There is no hardware CAM in any Anysee device sold. * In my understanding it should be implemented by making own module - * for ISO 7816 card reader, like dvb_ca_en50221 is implented. This - * module registers serial interface that can be used to comminicate + * for ISO 7816 card reader, like dvb_ca_en50221 is implemented. This + * module registers serial interface that can be used to communicate * with any ISO 7816 smart card. * * Any help according to implement serial smart card reader support diff --git a/linux/drivers/media/dvb/frontends/tda10023.c b/linux/drivers/media/dvb/frontends/tda10023.c index 82d6cb5b8..ec9d772c4 100644 --- a/linux/drivers/media/dvb/frontends/tda10023.c +++ b/linux/drivers/media/dvb/frontends/tda10023.c @@ -269,7 +269,8 @@ static int tda10023_init (struct dvb_frontend *fe) /* 084 */ 0x02, 0xff, 0x93, /* AGCCONF1 IFS=1 KAGCIF=2 KAGCTUN=3 */ /* 087 */ 0x2d, 0xff, 0xf6, /* SWEEP SWPOS=1 SWDYN=7 SWSTEP=1 SWLEN=2 */ /* 090 */ 0x04, 0x10, 0x00, /* SWRAMP=1 */ -/* 093 */ 0x12, 0xff, 0xa1, /* INTP1 POCLKP=1 FEL=1 MFS=0 */ +/* 093 */ 0x12, 0xff, TDA10023_OUTPUT_MODE_PARALLEL_B, /* + INTP1 POCLKP=1 FEL=1 MFS=0 */ /* 096 */ 0x2b, 0x01, 0xa1, /* INTS1 */ /* 099 */ 0x20, 0xff, 0x04, /* INTP2 SWAPP=? MSBFIRSTP=? INTPSEL=? */ /* 102 */ 0x2c, 0xff, 0x0d, /* INTP/S TRIP=0 TRIS=0 */ @@ -289,6 +290,9 @@ static int tda10023_init (struct dvb_frontend *fe) tda10023_inittab[83] = (state->config->deltaf >> 8); } + if (state->config->output_mode) + tda10023_inittab[95] = state->config->output_mode; + tda10023_writetab(state, tda10023_inittab); return 0; diff --git a/linux/drivers/media/dvb/frontends/tda1002x.h b/linux/drivers/media/dvb/frontends/tda1002x.h index 4522b7ef5..afc0a32ea 100644 --- a/linux/drivers/media/dvb/frontends/tda1002x.h +++ b/linux/drivers/media/dvb/frontends/tda1002x.h @@ -32,6 +32,13 @@ struct tda1002x_config { u8 invert; }; +enum tda10023_output_mode { + TDA10023_OUTPUT_MODE_PARALLEL_A = 0xe0, + TDA10023_OUTPUT_MODE_PARALLEL_B = 0xa1, + TDA10023_OUTPUT_MODE_PARALLEL_C = 0xa0, + TDA10023_OUTPUT_MODE_SERIAL, /* TODO: not implemented */ +}; + struct tda10023_config { /* the demodulator's i2c address */ u8 demod_address; @@ -43,6 +50,9 @@ struct tda10023_config { u8 pll_p; /* defaults: 4 */ u8 pll_n; /* defaults: 1 */ + /* MPEG2 TS output mode */ + u8 output_mode; + /* input freq offset + baseband conversion type */ u16 deltaf; }; |