Commit c9dd82c2 authored by Patrick Boettcher's avatar Patrick Boettcher Committed by Mauro Carvalho Chehab

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: default avatarPatrick Boettcher <pb@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 11d3f323
...@@ -10,6 +10,8 @@ config DVB_B2C2_FLEXCOP ...@@ -10,6 +10,8 @@ config DVB_B2C2_FLEXCOP
select DVB_BCM3510 if !DVB_FE_CUSTOMISE select DVB_BCM3510 if !DVB_FE_CUSTOMISE
select DVB_LGDT330X if !DVB_FE_CUSTOMISE select DVB_LGDT330X if !DVB_FE_CUSTOMISE
select TUNER_SIMPLE if !DVB_FE_CUSTOMISE select TUNER_SIMPLE if !DVB_FE_CUSTOMISE
select DVB_ISL6421 if !DVB_FE_CUSTOMISE
select DVB_CX24123 if !DVB_FE_CUSTOMISE
help help
Support for the digital TV receiver chip made by B2C2 Inc. included in Support for the digital TV receiver chip made by B2C2 Inc. included in
Technisats PCI cards and USB boxes. Technisats PCI cards and USB boxes.
......
...@@ -19,6 +19,11 @@ ...@@ -19,6 +19,11 @@
#include "dvb-pll.h" #include "dvb-pll.h"
#include "tuner-simple.h" #include "tuner-simple.h"
#include "cx24123.h"
#include "cx24113.h"
#include "isl6421.h"
/* lnb control */ /* lnb control */
static int flexcop_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) static 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,11 +481,54 @@ static struct stv0297_config alps_tdee4_stv0297_config = {
// .pll_set = alps_tdee4_stv0297_pll_set, // .pll_set = alps_tdee4_stv0297_pll_set,
}; };
static struct cx24123_config skystar2_rev2_8_cx24123_config = {
.demod_address = 0x55,
.dont_use_pll = 1,
.agc_callback = cx24113_agc_callback,
};
static const struct cx24113_config skystar2_rev2_8_cx24113_config = {
.i2c_addr = 0x54,
.xtal_khz = 10111,
};
/* try to figure out the frontend, each card/box can have on of the following list */ /* try to figure out the frontend, each card/box can have on of the following list */
int flexcop_frontend_init(struct flexcop_device *fc) int flexcop_frontend_init(struct flexcop_device *fc)
{ {
struct dvb_frontend_ops *ops; struct dvb_frontend_ops *ops;
struct i2c_adapter *i2c = &fc->fc_i2c_adap[0].i2c_adap; struct i2c_adapter *i2c = &fc->fc_i2c_adap[0].i2c_adap;
struct i2c_adapter *i2c_tuner;
/* try the sky v2.8 (cx24123, isl6421) */
fc->fe = dvb_attach(cx24123_attach,
&skystar2_rev2_8_cx24123_config, i2c);
if (fc->fe != NULL) {
i2c_tuner = cx24123_get_tuner_i2c_adapter(fc->fe);
if (i2c_tuner != NULL) {
if (dvb_attach(cx24113_attach, fc->fe,
&skystar2_rev2_8_cx24113_config,
i2c_tuner) == NULL)
err("CX24113 could NOT be attached");
else
info("CX24113 successfully attached");
}
fc->dev_type = FC_SKY_REV28;
fc->fc_i2c_adap[2].no_base_addr = 1;
if (dvb_attach(isl6421_attach, fc->fe,
&fc->fc_i2c_adap[2].i2c_adap, 0x08, 0, 0) == NULL)
err("ISL6421 could NOT be attached");
else
info("ISL6421 successfully attached");
/* TODO on i2c_adap[1] addr 0x11 (EEPROM) there seems to be an
* IR-receiver (PIC16F818) - but the card has no input for
* that ??? */
goto fe_found;
}
/* try the sky v2.6 (stv0299/Samsung tbmu24112(sl1935)) */ /* try the sky v2.6 (stv0299/Samsung tbmu24112(sl1935)) */
fc->fe = dvb_attach(stv0299_attach, &samsung_tbmu24112_config, i2c); fc->fe = dvb_attach(stv0299_attach, &samsung_tbmu24112_config, i2c);
......
...@@ -52,6 +52,8 @@ static const char *flexcop_device_names[] = { ...@@ -52,6 +52,8 @@ static const char *flexcop_device_names[] = {
"Sky2PC/SkyStar 2 DVB-S (old version)", "Sky2PC/SkyStar 2 DVB-S (old version)",
"Cable2PC/CableStar 2 DVB-C", "Cable2PC/CableStar 2 DVB-C",
"Air2PC/AirStar 2 ATSC 3rd generation (HD5000)", "Air2PC/AirStar 2 ATSC 3rd generation (HD5000)",
"Sky2PC/SkyStar 2 DVB-S rev 2.7a/u",
"Sky2PC/SkyStar 2 DVB-S rev 2.8",
}; };
static const char *flexcop_bus_names[] = { static const char *flexcop_bus_names[] = {
......
...@@ -25,6 +25,8 @@ typedef enum { ...@@ -25,6 +25,8 @@ typedef enum {
FC_SKY_OLD, FC_SKY_OLD,
FC_CABLE, FC_CABLE,
FC_AIR_ATSC3, FC_AIR_ATSC3,
FC_SKY_REV27,
FC_SKY_REV28,
} flexcop_device_type_t; } flexcop_device_type_t;
typedef enum { typedef enum {
......
/*
* Driver for Conexant CX24113/CX24128 Tuner (Satelite)
*
* Copyright (C) 2007-8 Patrick Boettcher <pb@linuxtv.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
*
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.=
*/
#ifndef CX24113_H
#define CX24113_H
struct dvb_frontend;
struct cx24113_config {
u8 i2c_addr; /* 0x14 or 0x54 */
u32 xtal_khz;
};
/* TODO: #if defined(CONFIG_DVB_TUNER_CX24113) || \
* (defined(CONFIG_DVB_TUNER_CX24113_MODULE) && defined(MODULE)) */
static inline struct dvb_frontend *cx24113_attach(struct dvb_frontend *fe,
const struct cx24113_config *config, struct i2c_adapter *i2c)
{
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
return NULL;
}
static inline void cx24113_agc_callback(struct dvb_frontend *fe)
{
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
}
#endif /* CX24113_H */
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