summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
Diffstat (limited to 'linux')
-rw-r--r--linux/drivers/media/dvb/dvb-usb/Kconfig1
-rw-r--r--linux/drivers/media/dvb/dvb-usb/anysee.c22
-rw-r--r--linux/drivers/media/dvb/dvb-usb/anysee.h4
-rw-r--r--linux/drivers/media/dvb/frontends/tda10023.c6
-rw-r--r--linux/drivers/media/dvb/frontends/tda1002x.h10
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;
};