1*9a0bf528SMauro Carvalho Chehab /* 2*9a0bf528SMauro Carvalho Chehab * Driver for 3*9a0bf528SMauro Carvalho Chehab * Samsung S5H1420 and 4*9a0bf528SMauro Carvalho Chehab * PnpNetwork PN1010 QPSK Demodulator 5*9a0bf528SMauro Carvalho Chehab * 6*9a0bf528SMauro Carvalho Chehab * Copyright (C) 2005 Andrew de Quincey <adq_dvb@lidskialf.net> 7*9a0bf528SMauro Carvalho Chehab * Copyright (C) 2005-8 Patrick Boettcher <pb@linuxtv.org> 8*9a0bf528SMauro Carvalho Chehab * 9*9a0bf528SMauro Carvalho Chehab * This program is free software; you can redistribute it and/or modify 10*9a0bf528SMauro Carvalho Chehab * it under the terms of the GNU General Public License as published by 11*9a0bf528SMauro Carvalho Chehab * the Free Software Foundation; either version 2 of the License, or 12*9a0bf528SMauro Carvalho Chehab * (at your option) any later version. 13*9a0bf528SMauro Carvalho Chehab * 14*9a0bf528SMauro Carvalho Chehab * This program is distributed in the hope that it will be useful, 15*9a0bf528SMauro Carvalho Chehab * but WITHOUT ANY WARRANTY; without even the implied warranty of 16*9a0bf528SMauro Carvalho Chehab * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17*9a0bf528SMauro Carvalho Chehab * 18*9a0bf528SMauro Carvalho Chehab * GNU General Public License for more details. 19*9a0bf528SMauro Carvalho Chehab * 20*9a0bf528SMauro Carvalho Chehab * You should have received a copy of the GNU General Public License 21*9a0bf528SMauro Carvalho Chehab * along with this program; if not, write to the Free Software 22*9a0bf528SMauro Carvalho Chehab * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 23*9a0bf528SMauro Carvalho Chehab */ 24*9a0bf528SMauro Carvalho Chehab #ifndef S5H1420_H 25*9a0bf528SMauro Carvalho Chehab #define S5H1420_H 26*9a0bf528SMauro Carvalho Chehab 27*9a0bf528SMauro Carvalho Chehab #include <linux/dvb/frontend.h> 28*9a0bf528SMauro Carvalho Chehab 29*9a0bf528SMauro Carvalho Chehab struct s5h1420_config 30*9a0bf528SMauro Carvalho Chehab { 31*9a0bf528SMauro Carvalho Chehab /* the demodulator's i2c address */ 32*9a0bf528SMauro Carvalho Chehab u8 demod_address; 33*9a0bf528SMauro Carvalho Chehab 34*9a0bf528SMauro Carvalho Chehab /* does the inversion require inversion? */ 35*9a0bf528SMauro Carvalho Chehab u8 invert:1; 36*9a0bf528SMauro Carvalho Chehab 37*9a0bf528SMauro Carvalho Chehab u8 repeated_start_workaround:1; 38*9a0bf528SMauro Carvalho Chehab u8 cdclk_polarity:1; /* 1 == falling edge, 0 == raising edge */ 39*9a0bf528SMauro Carvalho Chehab 40*9a0bf528SMauro Carvalho Chehab u8 serial_mpeg:1; 41*9a0bf528SMauro Carvalho Chehab }; 42*9a0bf528SMauro Carvalho Chehab 43*9a0bf528SMauro Carvalho Chehab #if defined(CONFIG_DVB_S5H1420) || (defined(CONFIG_DVB_S5H1420_MODULE) && defined(MODULE)) 44*9a0bf528SMauro Carvalho Chehab extern struct dvb_frontend *s5h1420_attach(const struct s5h1420_config *config, 45*9a0bf528SMauro Carvalho Chehab struct i2c_adapter *i2c); 46*9a0bf528SMauro Carvalho Chehab extern struct i2c_adapter *s5h1420_get_tuner_i2c_adapter(struct dvb_frontend *fe); 47*9a0bf528SMauro Carvalho Chehab #else 48*9a0bf528SMauro Carvalho Chehab static inline struct dvb_frontend *s5h1420_attach(const struct s5h1420_config *config, 49*9a0bf528SMauro Carvalho Chehab struct i2c_adapter *i2c) 50*9a0bf528SMauro Carvalho Chehab { 51*9a0bf528SMauro Carvalho Chehab printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 52*9a0bf528SMauro Carvalho Chehab return NULL; 53*9a0bf528SMauro Carvalho Chehab } 54*9a0bf528SMauro Carvalho Chehab 55*9a0bf528SMauro Carvalho Chehab static inline struct i2c_adapter *s5h1420_get_tuner_i2c_adapter(struct dvb_frontend *fe) 56*9a0bf528SMauro Carvalho Chehab { 57*9a0bf528SMauro Carvalho Chehab return NULL; 58*9a0bf528SMauro Carvalho Chehab } 59*9a0bf528SMauro Carvalho Chehab #endif // CONFIG_DVB_S5H1420 60*9a0bf528SMauro Carvalho Chehab 61*9a0bf528SMauro Carvalho Chehab #endif // S5H1420_H 62