xref: /linux/drivers/media/dvb-frontends/mb86a20s.h (revision 37e59f876bc710d67a30b660826a5e83e07101ce)
19a0bf528SMauro Carvalho Chehab /*
29a0bf528SMauro Carvalho Chehab  *   Fujitsu mb86a20s driver
39a0bf528SMauro Carvalho Chehab  *
4*37e59f87SMauro Carvalho Chehab  *   Copyright (C) 2010 Mauro Carvalho Chehab
59a0bf528SMauro Carvalho Chehab  *
69a0bf528SMauro Carvalho Chehab  *   This program is free software; you can redistribute it and/or
79a0bf528SMauro Carvalho Chehab  *   modify it under the terms of the GNU General Public License as
89a0bf528SMauro Carvalho Chehab  *   published by the Free Software Foundation version 2.
99a0bf528SMauro Carvalho Chehab  *
109a0bf528SMauro Carvalho Chehab  *   This program is distributed in the hope that it will be useful,
119a0bf528SMauro Carvalho Chehab  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
129a0bf528SMauro Carvalho Chehab  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
139a0bf528SMauro Carvalho Chehab  *   General Public License for more details.
149a0bf528SMauro Carvalho Chehab  */
159a0bf528SMauro Carvalho Chehab 
169a0bf528SMauro Carvalho Chehab #ifndef MB86A20S_H
179a0bf528SMauro Carvalho Chehab #define MB86A20S_H
189a0bf528SMauro Carvalho Chehab 
19782d8b74SMauro Carvalho Chehab #include <linux/kconfig.h>
209a0bf528SMauro Carvalho Chehab #include <linux/dvb/frontend.h>
219a0bf528SMauro Carvalho Chehab 
229a0bf528SMauro Carvalho Chehab /**
239a0bf528SMauro Carvalho Chehab  * struct mb86a20s_config - Define the per-device attributes of the frontend
249a0bf528SMauro Carvalho Chehab  *
250e4bbeddSMauro Carvalho Chehab  * @fclk:		Clock frequency. If zero, assumes the default
260e4bbeddSMauro Carvalho Chehab  *			(32.57142 Mhz)
279a0bf528SMauro Carvalho Chehab  * @demod_address:	the demodulator's i2c address
280e4bbeddSMauro Carvalho Chehab  * @is_serial:		if true, TS is serial. Otherwise, TS is parallel
299a0bf528SMauro Carvalho Chehab  */
309a0bf528SMauro Carvalho Chehab 
319a0bf528SMauro Carvalho Chehab struct mb86a20s_config {
320e4bbeddSMauro Carvalho Chehab 	u32	fclk;
339a0bf528SMauro Carvalho Chehab 	u8	demod_address;
349a0bf528SMauro Carvalho Chehab 	bool	is_serial;
359a0bf528SMauro Carvalho Chehab };
369a0bf528SMauro Carvalho Chehab 
37782d8b74SMauro Carvalho Chehab #if IS_ENABLED(CONFIG_DVB_MB86A20S)
389a0bf528SMauro Carvalho Chehab extern struct dvb_frontend *mb86a20s_attach(const struct mb86a20s_config *config,
399a0bf528SMauro Carvalho Chehab 					   struct i2c_adapter *i2c);
409a0bf528SMauro Carvalho Chehab extern struct i2c_adapter *mb86a20s_get_tuner_i2c_adapter(struct dvb_frontend *);
419a0bf528SMauro Carvalho Chehab #else
429a0bf528SMauro Carvalho Chehab static inline struct dvb_frontend *mb86a20s_attach(
439a0bf528SMauro Carvalho Chehab 	const struct mb86a20s_config *config, struct i2c_adapter *i2c)
449a0bf528SMauro Carvalho Chehab {
459a0bf528SMauro Carvalho Chehab 	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
469a0bf528SMauro Carvalho Chehab 	return NULL;
479a0bf528SMauro Carvalho Chehab }
489a0bf528SMauro Carvalho Chehab static struct i2c_adapter *
499a0bf528SMauro Carvalho Chehab 	mb86a20s_get_tuner_i2c_adapter(struct dvb_frontend *fe)
509a0bf528SMauro Carvalho Chehab {
519a0bf528SMauro Carvalho Chehab 	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
529a0bf528SMauro Carvalho Chehab 	return NULL;
539a0bf528SMauro Carvalho Chehab }
549a0bf528SMauro Carvalho Chehab #endif
559a0bf528SMauro Carvalho Chehab 
569a0bf528SMauro Carvalho Chehab #endif /* MB86A20S */
57