diff options
Diffstat (limited to 'drivers/media/dvb/dvb-usb/anysee.c')
-rw-r--r-- | drivers/media/dvb/dvb-usb/anysee.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/drivers/media/dvb/dvb-usb/anysee.c b/drivers/media/dvb/dvb-usb/anysee.c index 0e94541ffcf..ebcc05b73c7 100644 --- a/drivers/media/dvb/dvb-usb/anysee.c +++ b/drivers/media/dvb/dvb-usb/anysee.c | |||
@@ -37,6 +37,8 @@ | |||
37 | #include "mt352_priv.h" | 37 | #include "mt352_priv.h" |
38 | #include "zl10353.h" | 38 | #include "zl10353.h" |
39 | #include "tda18212.h" | 39 | #include "tda18212.h" |
40 | #include "cx24116.h" | ||
41 | #include "isl6423.h" | ||
40 | 42 | ||
41 | /* debug */ | 43 | /* debug */ |
42 | static int dvb_usb_anysee_debug; | 44 | static int dvb_usb_anysee_debug; |
@@ -300,6 +302,19 @@ static struct tda18212_config anysee_tda18212_config = { | |||
300 | .if_dvbc = 5000, | 302 | .if_dvbc = 5000, |
301 | }; | 303 | }; |
302 | 304 | ||
305 | static struct cx24116_config anysee_cx24116_config = { | ||
306 | .demod_address = (0xaa >> 1), | ||
307 | .mpg_clk_pos_pol = 0x00, | ||
308 | .i2c_wr_max = 48, | ||
309 | }; | ||
310 | |||
311 | static struct isl6423_config anysee_isl6423_config = { | ||
312 | .current_max = SEC_CURRENT_800m, | ||
313 | .curlim = SEC_CURRENT_LIM_OFF, | ||
314 | .mod_extern = 1, | ||
315 | .addr = (0x10 >> 1), | ||
316 | }; | ||
317 | |||
303 | /* | 318 | /* |
304 | * New USB device strings: Mfr=1, Product=2, SerialNumber=0 | 319 | * New USB device strings: Mfr=1, Product=2, SerialNumber=0 |
305 | * Manufacturer: AMT.CO.KR | 320 | * Manufacturer: AMT.CO.KR |
@@ -328,6 +343,13 @@ static struct tda18212_config anysee_tda18212_config = { | |||
328 | * IOA=4f IOB=ff IOC=00 IOD=26 IOF=01 | 343 | * IOA=4f IOB=ff IOC=00 IOD=26 IOF=01 |
329 | * IOD[0] TDA10023 1=enabled | 344 | * IOD[0] TDA10023 1=enabled |
330 | * | 345 | * |
346 | * E30 S2 Plus VID=04b4 PID=861f HW=11 FW=0.1 "anysee-S2(LP)" | ||
347 | * PCB: 507SI (rev2.1) | ||
348 | * parts: BS2N10WCC01(CX24116, CX24118), ISL6423, TDA8024 | ||
349 | * OEA=80 OEB=00 OEC=ff OED=ff OEF=fe | ||
350 | * IOA=4d IOB=ff IOC=00 IOD=26 IOF=01 | ||
351 | * IOD[0] CX24116 1=enabled | ||
352 | * | ||
331 | * E30 C Plus VID=1c73 PID=861f HW=15 FW=1.2 "anysee-FA(LP)" | 353 | * E30 C Plus VID=1c73 PID=861f HW=15 FW=1.2 "anysee-FA(LP)" |
332 | * PCB: 507FA (rev0.4) | 354 | * PCB: 507FA (rev0.4) |
333 | * parts: TDA10023, DTOS403IH102B TM, TDA8024 | 355 | * parts: TDA10023, DTOS403IH102B TM, TDA8024 |
@@ -449,6 +471,19 @@ static int anysee_frontend_attach(struct dvb_usb_adapter *adap) | |||
449 | &adap->dev->i2c_adap, 0x48); | 471 | &adap->dev->i2c_adap, 0x48); |
450 | 472 | ||
451 | break; | 473 | break; |
474 | case ANYSEE_HW_507SI: /* 11 */ | ||
475 | /* E30 S2 Plus */ | ||
476 | |||
477 | /* enable DVB-S/S2 demod on IOD[0] */ | ||
478 | ret = anysee_wr_reg_mask(adap->dev, REG_IOD, (1 << 0), 0x01); | ||
479 | if (ret) | ||
480 | goto error; | ||
481 | |||
482 | /* attach demod */ | ||
483 | adap->fe = dvb_attach(cx24116_attach, &anysee_cx24116_config, | ||
484 | &adap->dev->i2c_adap); | ||
485 | |||
486 | break; | ||
452 | case ANYSEE_HW_507FA: /* 15 */ | 487 | case ANYSEE_HW_507FA: /* 15 */ |
453 | /* E30 Combo Plus */ | 488 | /* E30 Combo Plus */ |
454 | /* E30 C Plus */ | 489 | /* E30 C Plus */ |
@@ -625,6 +660,14 @@ static int anysee_tuner_attach(struct dvb_usb_adapter *adap) | |||
625 | &adap->dev->i2c_adap, DVB_PLL_SAMSUNG_DTOS403IH102A); | 660 | &adap->dev->i2c_adap, DVB_PLL_SAMSUNG_DTOS403IH102A); |
626 | 661 | ||
627 | break; | 662 | break; |
663 | case ANYSEE_HW_507SI: /* 11 */ | ||
664 | /* E30 S2 Plus */ | ||
665 | |||
666 | /* attach LNB controller */ | ||
667 | fe = dvb_attach(isl6423_attach, adap->fe, &adap->dev->i2c_adap, | ||
668 | &anysee_isl6423_config); | ||
669 | |||
670 | break; | ||
628 | case ANYSEE_HW_507FA: /* 15 */ | 671 | case ANYSEE_HW_507FA: /* 15 */ |
629 | /* E30 Combo Plus */ | 672 | /* E30 Combo Plus */ |
630 | /* E30 C Plus */ | 673 | /* E30 C Plus */ |