aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/b2c2
diff options
context:
space:
mode:
authorPatrick Boettcher <pb@linuxtv.org>2008-03-29 20:28:07 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-04-24 13:09:40 -0400
commitc9dd82c2f978e4ebac1cbb7cee8d379d1090154b (patch)
tree2f55edb1a1b7fc4611455fd56c2f8b8bfc5c33ed /drivers/media/dvb/b2c2
parent11d3f323930ef625c1018ed13adeb04127c356e0 (diff)
V4L/DVB (7471): SkyStar2: preparing support for the rev2.8
Support is prepared, but the CX24113-driver .c-file is missing. After sorting out the NDA problems, the file will be there immediatly. Signed-off-by: Patrick Boettcher <pb@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/dvb/b2c2')
-rw-r--r--drivers/media/dvb/b2c2/Kconfig2
-rw-r--r--drivers/media/dvb/b2c2/flexcop-fe-tuner.c48
-rw-r--r--drivers/media/dvb/b2c2/flexcop-misc.c2
-rw-r--r--drivers/media/dvb/b2c2/flexcop-reg.h2
4 files changed, 54 insertions, 0 deletions
diff --git a/drivers/media/dvb/b2c2/Kconfig b/drivers/media/dvb/b2c2/Kconfig
index ffcbc7610856..8193d88d171c 100644
--- a/drivers/media/dvb/b2c2/Kconfig
+++ b/drivers/media/dvb/b2c2/Kconfig
@@ -10,6 +10,8 @@ config DVB_B2C2_FLEXCOP
10 select DVB_BCM3510 if !DVB_FE_CUSTOMISE 10 select DVB_BCM3510 if !DVB_FE_CUSTOMISE
11 select DVB_LGDT330X if !DVB_FE_CUSTOMISE 11 select DVB_LGDT330X if !DVB_FE_CUSTOMISE
12 select TUNER_SIMPLE if !DVB_FE_CUSTOMISE 12 select TUNER_SIMPLE if !DVB_FE_CUSTOMISE
13 select DVB_ISL6421 if !DVB_FE_CUSTOMISE
14 select DVB_CX24123 if !DVB_FE_CUSTOMISE
13 help 15 help
14 Support for the digital TV receiver chip made by B2C2 Inc. included in 16 Support for the digital TV receiver chip made by B2C2 Inc. included in
15 Technisats PCI cards and USB boxes. 17 Technisats PCI cards and USB boxes.
diff --git a/drivers/media/dvb/b2c2/flexcop-fe-tuner.c b/drivers/media/dvb/b2c2/flexcop-fe-tuner.c
index 46d6f5d8cd1c..6759c3ad234a 100644
--- a/drivers/media/dvb/b2c2/flexcop-fe-tuner.c
+++ b/drivers/media/dvb/b2c2/flexcop-fe-tuner.c
@@ -19,6 +19,11 @@
19#include "dvb-pll.h" 19#include "dvb-pll.h"
20#include "tuner-simple.h" 20#include "tuner-simple.h"
21 21
22#include "cx24123.h"
23#include "cx24113.h"
24
25#include "isl6421.h"
26
22/* lnb control */ 27/* lnb control */
23 28
24static int flexcop_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) 29static int flexcop_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage)
@@ -476,11 +481,54 @@ static struct stv0297_config alps_tdee4_stv0297_config = {
476// .pll_set = alps_tdee4_stv0297_pll_set, 481// .pll_set = alps_tdee4_stv0297_pll_set,
477}; 482};
478 483
484
485static struct cx24123_config skystar2_rev2_8_cx24123_config = {
486 .demod_address = 0x55,
487 .dont_use_pll = 1,
488 .agc_callback = cx24113_agc_callback,
489};
490
491static const struct cx24113_config skystar2_rev2_8_cx24113_config = {
492 .i2c_addr = 0x54,
493 .xtal_khz = 10111,
494};
495
479/* try to figure out the frontend, each card/box can have on of the following list */ 496/* try to figure out the frontend, each card/box can have on of the following list */
480int flexcop_frontend_init(struct flexcop_device *fc) 497int flexcop_frontend_init(struct flexcop_device *fc)
481{ 498{
482 struct dvb_frontend_ops *ops; 499 struct dvb_frontend_ops *ops;
483 struct i2c_adapter *i2c = &fc->fc_i2c_adap[0].i2c_adap; 500 struct i2c_adapter *i2c = &fc->fc_i2c_adap[0].i2c_adap;
501 struct i2c_adapter *i2c_tuner;
502
503 /* try the sky v2.8 (cx24123, isl6421) */
504 fc->fe = dvb_attach(cx24123_attach,
505 &skystar2_rev2_8_cx24123_config, i2c);
506 if (fc->fe != NULL) {
507 i2c_tuner = cx24123_get_tuner_i2c_adapter(fc->fe);
508 if (i2c_tuner != NULL) {
509 if (dvb_attach(cx24113_attach, fc->fe,
510 &skystar2_rev2_8_cx24113_config,
511 i2c_tuner) == NULL)
512 err("CX24113 could NOT be attached");
513 else
514 info("CX24113 successfully attached");
515 }
516
517 fc->dev_type = FC_SKY_REV28;
518
519 fc->fc_i2c_adap[2].no_base_addr = 1;
520 if (dvb_attach(isl6421_attach, fc->fe,
521 &fc->fc_i2c_adap[2].i2c_adap, 0x08, 0, 0) == NULL)
522 err("ISL6421 could NOT be attached");
523 else
524 info("ISL6421 successfully attached");
525
526 /* TODO on i2c_adap[1] addr 0x11 (EEPROM) there seems to be an
527 * IR-receiver (PIC16F818) - but the card has no input for
528 * that ??? */
529
530 goto fe_found;
531 }
484 532
485 /* try the sky v2.6 (stv0299/Samsung tbmu24112(sl1935)) */ 533 /* try the sky v2.6 (stv0299/Samsung tbmu24112(sl1935)) */
486 fc->fe = dvb_attach(stv0299_attach, &samsung_tbmu24112_config, i2c); 534 fc->fe = dvb_attach(stv0299_attach, &samsung_tbmu24112_config, i2c);
diff --git a/drivers/media/dvb/b2c2/flexcop-misc.c b/drivers/media/dvb/b2c2/flexcop-misc.c
index 167583bf0621..93d20e56f909 100644
--- a/drivers/media/dvb/b2c2/flexcop-misc.c
+++ b/drivers/media/dvb/b2c2/flexcop-misc.c
@@ -52,6 +52,8 @@ static const char *flexcop_device_names[] = {
52 "Sky2PC/SkyStar 2 DVB-S (old version)", 52 "Sky2PC/SkyStar 2 DVB-S (old version)",
53 "Cable2PC/CableStar 2 DVB-C", 53 "Cable2PC/CableStar 2 DVB-C",
54 "Air2PC/AirStar 2 ATSC 3rd generation (HD5000)", 54 "Air2PC/AirStar 2 ATSC 3rd generation (HD5000)",
55 "Sky2PC/SkyStar 2 DVB-S rev 2.7a/u",
56 "Sky2PC/SkyStar 2 DVB-S rev 2.8",
55}; 57};
56 58
57static const char *flexcop_bus_names[] = { 59static const char *flexcop_bus_names[] = {
diff --git a/drivers/media/dvb/b2c2/flexcop-reg.h b/drivers/media/dvb/b2c2/flexcop-reg.h
index 491f9bd6e195..7599fccc1a5b 100644
--- a/drivers/media/dvb/b2c2/flexcop-reg.h
+++ b/drivers/media/dvb/b2c2/flexcop-reg.h
@@ -25,6 +25,8 @@ typedef enum {
25 FC_SKY_OLD, 25 FC_SKY_OLD,
26 FC_CABLE, 26 FC_CABLE,
27 FC_AIR_ATSC3, 27 FC_AIR_ATSC3,
28 FC_SKY_REV27,
29 FC_SKY_REV28,
28} flexcop_device_type_t; 30} flexcop_device_type_t;
29 31
30typedef enum { 32typedef enum {