Commit bedbf3d1 authored by Antti Palosaari's avatar Antti Palosaari Committed by Mauro Carvalho Chehab

[media] anysee: add support for Anysee E7 S2

It is DVB-S/S2 USB box.

* DNBU10512IST NIM
 * STV0903 demod
 * STV6110 tuner

* Intersil ISL6423 LNB controller
Signed-off-by: default avatarAntti Palosaari <crope@iki.fi>
Cc: info@anysee.com
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent f0a53105
...@@ -294,6 +294,8 @@ config DVB_USB_ANYSEE ...@@ -294,6 +294,8 @@ config DVB_USB_ANYSEE
select DVB_TDA10023 if !DVB_FE_CUSTOMISE select DVB_TDA10023 if !DVB_FE_CUSTOMISE
select MEDIA_TUNER_TDA18212 if !MEDIA_TUNER_CUSTOMISE select MEDIA_TUNER_TDA18212 if !MEDIA_TUNER_CUSTOMISE
select DVB_CX24116 if !DVB_FE_CUSTOMISE select DVB_CX24116 if !DVB_FE_CUSTOMISE
select DVB_STV0900 if !DVB_FE_CUSTOMISE
select DVB_STV6110 if !DVB_FE_CUSTOMISE
select DVB_ISL6423 if !DVB_FE_CUSTOMISE select DVB_ISL6423 if !DVB_FE_CUSTOMISE
help help
Say Y here to support the Anysee E30, Anysee E30 Plus or Say Y here to support the Anysee E30, Anysee E30 Plus or
......
...@@ -38,6 +38,8 @@ ...@@ -38,6 +38,8 @@
#include "zl10353.h" #include "zl10353.h"
#include "tda18212.h" #include "tda18212.h"
#include "cx24116.h" #include "cx24116.h"
#include "stv0900.h"
#include "stv6110.h"
#include "isl6423.h" #include "isl6423.h"
/* debug */ /* debug */
...@@ -308,6 +310,23 @@ static struct cx24116_config anysee_cx24116_config = { ...@@ -308,6 +310,23 @@ static struct cx24116_config anysee_cx24116_config = {
.i2c_wr_max = 48, .i2c_wr_max = 48,
}; };
static struct stv0900_config anysee_stv0900_config = {
.demod_address = (0xd0 >> 1),
.demod_mode = 0,
.xtal = 8000000,
.clkmode = 3,
.diseqc_mode = 2,
.tun1_maddress = 0,
.tun1_adc = 1, /* 1 Vpp */
.path1_mode = 3,
};
static struct stv6110_config anysee_stv6110_config = {
.i2c_address = (0xc0 >> 1),
.mclk = 16000000,
.clk_div = 1,
};
static struct isl6423_config anysee_isl6423_config = { static struct isl6423_config anysee_isl6423_config = {
.current_max = SEC_CURRENT_800m, .current_max = SEC_CURRENT_800m,
.curlim = SEC_CURRENT_LIM_OFF, .curlim = SEC_CURRENT_LIM_OFF,
...@@ -386,6 +405,15 @@ static struct isl6423_config anysee_isl6423_config = { ...@@ -386,6 +405,15 @@ static struct isl6423_config anysee_isl6423_config = {
* IOD[5] TDA10023 0=disabled * IOD[5] TDA10023 0=disabled
* IOD[6] ZL10353 1=enabled * IOD[6] ZL10353 1=enabled
* IOE[0] IF 0=enabled * IOE[0] IF 0=enabled
*
* E7 S2 VID=1c73 PID=861f HW=19 FW=0.4 AMTCI=0.5 "anysee-E7S2(LP)"
* PCB: 508S2 (rev0.7)
* parts: DNBU10512IST(STV0903, STV6110), ISL6423
* OEA=80 OEB=00 OEC=03 OED=f7 OEF=ff
* IOA=4d IOB=00 IOC=c4 IOD=08 IOF=e4
* IOA[7] TS 1=enabled
* IOE[5] STV0903 1=enabled
*
*/ */
static int anysee_frontend_attach(struct dvb_usb_adapter *adap) static int anysee_frontend_attach(struct dvb_usb_adapter *adap)
...@@ -615,6 +643,24 @@ static int anysee_frontend_attach(struct dvb_usb_adapter *adap) ...@@ -615,6 +643,24 @@ static int anysee_frontend_attach(struct dvb_usb_adapter *adap)
&adap->dev->i2c_adap, 0x48); &adap->dev->i2c_adap, 0x48);
} }
break;
case ANYSEE_HW_508S2: /* 19 */
/* E7 S2 */
/* enable transport stream on IOA[7] */
ret = anysee_wr_reg_mask(adap->dev, REG_IOA, (1 << 7), 0x80);
if (ret)
goto error;
/* enable DVB-S/S2 demod on IOE[5] */
ret = anysee_wr_reg_mask(adap->dev, REG_IOE, (1 << 5), 0x20);
if (ret)
goto error;
/* attach demod */
adap->fe = dvb_attach(stv0900_attach, &anysee_stv0900_config,
&adap->dev->i2c_adap, 0);
break; break;
} }
...@@ -722,6 +768,20 @@ static int anysee_tuner_attach(struct dvb_usb_adapter *adap) ...@@ -722,6 +768,20 @@ static int anysee_tuner_attach(struct dvb_usb_adapter *adap)
fe = dvb_attach(tda18212_attach, adap->fe, &adap->dev->i2c_adap, fe = dvb_attach(tda18212_attach, adap->fe, &adap->dev->i2c_adap,
&anysee_tda18212_config); &anysee_tda18212_config);
break;
case ANYSEE_HW_508S2: /* 19 */
/* E7 S2 */
/* attach tuner */
fe = dvb_attach(stv6110_attach, adap->fe,
&anysee_stv6110_config, &adap->dev->i2c_adap);
if (fe) {
/* attach LNB controller */
fe = dvb_attach(isl6423_attach, adap->fe,
&adap->dev->i2c_adap, &anysee_isl6423_config);
}
break; break;
default: default:
fe = NULL; fe = NULL;
......
...@@ -67,6 +67,7 @@ struct anysee_state { ...@@ -67,6 +67,7 @@ struct anysee_state {
#define ANYSEE_HW_507SI 11 /* E30 S2 Plus */ #define ANYSEE_HW_507SI 11 /* E30 S2 Plus */
#define ANYSEE_HW_507FA 15 /* E30 Combo Plus / E30 C Plus */ #define ANYSEE_HW_507FA 15 /* E30 Combo Plus / E30 C Plus */
#define ANYSEE_HW_508TC 18 /* E7 TC */ #define ANYSEE_HW_508TC 18 /* E7 TC */
#define ANYSEE_HW_508S2 19 /* E7 S2 */
#define REG_IOA 0x80 /* Port A (bit addressable) */ #define REG_IOA 0x80 /* Port A (bit addressable) */
#define REG_IOB 0x90 /* Port B (bit addressable) */ #define REG_IOB 0x90 /* Port B (bit addressable) */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment