xref: /openbmc/linux/drivers/media/tuners/r820t.h (revision a80abc58feda48f868d748bde8c88592c2892b1d)
1*a80abc58SMauro Carvalho Chehab /*
2*a80abc58SMauro Carvalho Chehab  * Elonics R820T silicon tuner driver
3*a80abc58SMauro Carvalho Chehab  *
4*a80abc58SMauro Carvalho Chehab  * Copyright (C) 2012 Antti Palosaari <crope@iki.fi>
5*a80abc58SMauro Carvalho Chehab  *
6*a80abc58SMauro Carvalho Chehab  *    This program is free software; you can redistribute it and/or modify
7*a80abc58SMauro Carvalho Chehab  *    it under the terms of the GNU General Public License as published by
8*a80abc58SMauro Carvalho Chehab  *    the Free Software Foundation; either version 2 of the License, or
9*a80abc58SMauro Carvalho Chehab  *    (at your option) any later version.
10*a80abc58SMauro Carvalho Chehab  *
11*a80abc58SMauro Carvalho Chehab  *    This program is distributed in the hope that it will be useful,
12*a80abc58SMauro Carvalho Chehab  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
13*a80abc58SMauro Carvalho Chehab  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14*a80abc58SMauro Carvalho Chehab  *    GNU General Public License for more details.
15*a80abc58SMauro Carvalho Chehab  *
16*a80abc58SMauro Carvalho Chehab  *    You should have received a copy of the GNU General Public License along
17*a80abc58SMauro Carvalho Chehab  *    with this program; if not, write to the Free Software Foundation, Inc.,
18*a80abc58SMauro Carvalho Chehab  *    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19*a80abc58SMauro Carvalho Chehab  */
20*a80abc58SMauro Carvalho Chehab 
21*a80abc58SMauro Carvalho Chehab #ifndef R820T_H
22*a80abc58SMauro Carvalho Chehab #define R820T_H
23*a80abc58SMauro Carvalho Chehab 
24*a80abc58SMauro Carvalho Chehab #include <linux/kconfig.h>
25*a80abc58SMauro Carvalho Chehab #include "dvb_frontend.h"
26*a80abc58SMauro Carvalho Chehab 
27*a80abc58SMauro Carvalho Chehab enum r820t_chip {
28*a80abc58SMauro Carvalho Chehab 	CHIP_R820T,
29*a80abc58SMauro Carvalho Chehab 	CHIP_R828S,
30*a80abc58SMauro Carvalho Chehab 	CHIP_R820C,
31*a80abc58SMauro Carvalho Chehab };
32*a80abc58SMauro Carvalho Chehab 
33*a80abc58SMauro Carvalho Chehab struct r820t_config {
34*a80abc58SMauro Carvalho Chehab 	u8 i2c_addr;		/* 0x34 */
35*a80abc58SMauro Carvalho Chehab 
36*a80abc58SMauro Carvalho Chehab 	u32 xtal;
37*a80abc58SMauro Carvalho Chehab 	enum r820t_chip rafael_chip;
38*a80abc58SMauro Carvalho Chehab 	unsigned max_i2c_msg_len;
39*a80abc58SMauro Carvalho Chehab };
40*a80abc58SMauro Carvalho Chehab 
41*a80abc58SMauro Carvalho Chehab #if IS_ENABLED(CONFIG_MEDIA_TUNER_R820T)
42*a80abc58SMauro Carvalho Chehab struct dvb_frontend *r820t_attach(struct dvb_frontend *fe,
43*a80abc58SMauro Carvalho Chehab 				  struct i2c_adapter *i2c,
44*a80abc58SMauro Carvalho Chehab 				  const struct r820t_config *cfg);
45*a80abc58SMauro Carvalho Chehab #else
46*a80abc58SMauro Carvalho Chehab static inline struct dvb_frontend *r820t_attach(struct dvb_frontend *fe,
47*a80abc58SMauro Carvalho Chehab 						struct i2c_adapter *i2c,
48*a80abc58SMauro Carvalho Chehab 						const struct r820t_config *cfg)
49*a80abc58SMauro Carvalho Chehab {
50*a80abc58SMauro Carvalho Chehab 	pr_warn("%s: driver disabled by Kconfig\n", __func__);
51*a80abc58SMauro Carvalho Chehab 	return NULL;
52*a80abc58SMauro Carvalho Chehab }
53*a80abc58SMauro Carvalho Chehab #endif
54*a80abc58SMauro Carvalho Chehab 
55*a80abc58SMauro Carvalho Chehab #endif
56