xref: /linux/drivers/media/dvb-frontends/s5h1420.h (revision 9a0bf528b4d66b605f02634236da085595c22101)
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