aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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
-rw-r--r--drivers/media/dvb/frontends/cx24113.h48
5 files changed, 102 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 {
diff --git a/drivers/media/dvb/frontends/cx24113.h b/drivers/media/dvb/frontends/cx24113.h
new file mode 100644
index 000000000000..5ab3dd11076b
--- /dev/null
+++ b/drivers/media/dvb/frontends/cx24113.h
@@ -0,0 +1,48 @@
1/*
2 * Driver for Conexant CX24113/CX24128 Tuner (Satelite)
3 *
4 * Copyright (C) 2007-8 Patrick Boettcher <pb@linuxtv.org>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 *
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.=
20 */
21
22#ifndef CX24113_H
23#define CX24113_H
24
25struct dvb_frontend;
26
27struct cx24113_config {
28 u8 i2c_addr; /* 0x14 or 0x54 */
29
30 u32 xtal_khz;
31};
32
33/* TODO: #if defined(CONFIG_DVB_TUNER_CX24113) || \
34 * (defined(CONFIG_DVB_TUNER_CX24113_MODULE) && defined(MODULE)) */
35
36static inline struct dvb_frontend *cx24113_attach(struct dvb_frontend *fe,
37 const struct cx24113_config *config, struct i2c_adapter *i2c)
38{
39 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
40 return NULL;
41}
42
43static inline void cx24113_agc_callback(struct dvb_frontend *fe)
44{
45 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
46}
47
48#endif /* CX24113_H */