1*9a0bf528SMauro Carvalho Chehab /* 2*9a0bf528SMauro Carvalho Chehab Driver for ST STV0288 demodulator 3*9a0bf528SMauro Carvalho Chehab 4*9a0bf528SMauro Carvalho Chehab Copyright (C) 2006 Georg Acher, BayCom GmbH, acher (at) baycom (dot) de 5*9a0bf528SMauro Carvalho Chehab for Reel Multimedia 6*9a0bf528SMauro Carvalho Chehab Copyright (C) 2008 TurboSight.com, <bob@turbosight.com> 7*9a0bf528SMauro Carvalho Chehab Copyright (C) 2008 Igor M. Liplianin <liplianin@me.by> 8*9a0bf528SMauro Carvalho Chehab Removed stb6000 specific tuner code and revised some 9*9a0bf528SMauro Carvalho Chehab procedures. 10*9a0bf528SMauro Carvalho Chehab 11*9a0bf528SMauro Carvalho Chehab This program is free software; you can redistribute it and/or modify 12*9a0bf528SMauro Carvalho Chehab it under the terms of the GNU General Public License as published by 13*9a0bf528SMauro Carvalho Chehab the Free Software Foundation; either version 2 of the License, or 14*9a0bf528SMauro Carvalho Chehab (at your option) any later version. 15*9a0bf528SMauro Carvalho Chehab 16*9a0bf528SMauro Carvalho Chehab This program is distributed in the hope that it will be useful, 17*9a0bf528SMauro Carvalho Chehab but WITHOUT ANY WARRANTY; without even the implied warranty of 18*9a0bf528SMauro Carvalho Chehab MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19*9a0bf528SMauro Carvalho Chehab GNU General Public License for more details. 20*9a0bf528SMauro Carvalho Chehab 21*9a0bf528SMauro Carvalho Chehab You should have received a copy of the GNU General Public License 22*9a0bf528SMauro Carvalho Chehab along with this program; if not, write to the Free Software 23*9a0bf528SMauro Carvalho Chehab Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 24*9a0bf528SMauro Carvalho Chehab 25*9a0bf528SMauro Carvalho Chehab */ 26*9a0bf528SMauro Carvalho Chehab 27*9a0bf528SMauro Carvalho Chehab #ifndef STV0288_H 28*9a0bf528SMauro Carvalho Chehab #define STV0288_H 29*9a0bf528SMauro Carvalho Chehab 30*9a0bf528SMauro Carvalho Chehab #include <linux/dvb/frontend.h> 31*9a0bf528SMauro Carvalho Chehab #include "dvb_frontend.h" 32*9a0bf528SMauro Carvalho Chehab 33*9a0bf528SMauro Carvalho Chehab struct stv0288_config { 34*9a0bf528SMauro Carvalho Chehab /* the demodulator's i2c address */ 35*9a0bf528SMauro Carvalho Chehab u8 demod_address; 36*9a0bf528SMauro Carvalho Chehab 37*9a0bf528SMauro Carvalho Chehab u8* inittab; 38*9a0bf528SMauro Carvalho Chehab 39*9a0bf528SMauro Carvalho Chehab /* minimum delay before retuning */ 40*9a0bf528SMauro Carvalho Chehab int min_delay_ms; 41*9a0bf528SMauro Carvalho Chehab 42*9a0bf528SMauro Carvalho Chehab int (*set_ts_params)(struct dvb_frontend *fe, int is_punctured); 43*9a0bf528SMauro Carvalho Chehab }; 44*9a0bf528SMauro Carvalho Chehab 45*9a0bf528SMauro Carvalho Chehab #if defined(CONFIG_DVB_STV0288) || (defined(CONFIG_DVB_STV0288_MODULE) && \ 46*9a0bf528SMauro Carvalho Chehab defined(MODULE)) 47*9a0bf528SMauro Carvalho Chehab extern struct dvb_frontend *stv0288_attach(const struct stv0288_config *config, 48*9a0bf528SMauro Carvalho Chehab struct i2c_adapter *i2c); 49*9a0bf528SMauro Carvalho Chehab #else 50*9a0bf528SMauro Carvalho Chehab static inline struct dvb_frontend *stv0288_attach(const struct stv0288_config *config, 51*9a0bf528SMauro Carvalho Chehab struct i2c_adapter *i2c) 52*9a0bf528SMauro Carvalho Chehab { 53*9a0bf528SMauro Carvalho Chehab printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 54*9a0bf528SMauro Carvalho Chehab return NULL; 55*9a0bf528SMauro Carvalho Chehab } 56*9a0bf528SMauro Carvalho Chehab #endif /* CONFIG_DVB_STV0288 */ 57*9a0bf528SMauro Carvalho Chehab 58*9a0bf528SMauro Carvalho Chehab static inline int stv0288_writereg(struct dvb_frontend *fe, u8 reg, u8 val) 59*9a0bf528SMauro Carvalho Chehab { 60*9a0bf528SMauro Carvalho Chehab int r = 0; 61*9a0bf528SMauro Carvalho Chehab u8 buf[] = { reg, val }; 62*9a0bf528SMauro Carvalho Chehab if (fe->ops.write) 63*9a0bf528SMauro Carvalho Chehab r = fe->ops.write(fe, buf, 2); 64*9a0bf528SMauro Carvalho Chehab return r; 65*9a0bf528SMauro Carvalho Chehab } 66*9a0bf528SMauro Carvalho Chehab 67*9a0bf528SMauro Carvalho Chehab #endif /* STV0288_H */ 68