xref: /openbmc/linux/drivers/media/dvb-frontends/stv0288.h (revision fada1935590f66dc6784981e0d557ca09013c847)
19a0bf528SMauro Carvalho Chehab /*
29a0bf528SMauro Carvalho Chehab 	Driver for ST STV0288 demodulator
39a0bf528SMauro Carvalho Chehab 
49a0bf528SMauro Carvalho Chehab 	Copyright (C) 2006 Georg Acher, BayCom GmbH, acher (at) baycom (dot) de
59a0bf528SMauro Carvalho Chehab 		for Reel Multimedia
69a0bf528SMauro Carvalho Chehab 	Copyright (C) 2008 TurboSight.com, <bob@turbosight.com>
79a0bf528SMauro Carvalho Chehab 	Copyright (C) 2008 Igor M. Liplianin <liplianin@me.by>
89a0bf528SMauro Carvalho Chehab 		Removed stb6000 specific tuner code and revised some
99a0bf528SMauro Carvalho Chehab 		procedures.
109a0bf528SMauro Carvalho Chehab 
119a0bf528SMauro Carvalho Chehab 	This program is free software; you can redistribute it and/or modify
129a0bf528SMauro Carvalho Chehab 	it under the terms of the GNU General Public License as published by
139a0bf528SMauro Carvalho Chehab 	the Free Software Foundation; either version 2 of the License, or
149a0bf528SMauro Carvalho Chehab 	(at your option) any later version.
159a0bf528SMauro Carvalho Chehab 
169a0bf528SMauro Carvalho Chehab 	This program is distributed in the hope that it will be useful,
179a0bf528SMauro Carvalho Chehab 	but WITHOUT ANY WARRANTY; without even the implied warranty of
189a0bf528SMauro Carvalho Chehab 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
199a0bf528SMauro Carvalho Chehab 	GNU General Public License for more details.
209a0bf528SMauro Carvalho Chehab 
219a0bf528SMauro Carvalho Chehab 	You should have received a copy of the GNU General Public License
229a0bf528SMauro Carvalho Chehab 	along with this program; if not, write to the Free Software
239a0bf528SMauro Carvalho Chehab 	Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
249a0bf528SMauro Carvalho Chehab 
259a0bf528SMauro Carvalho Chehab */
269a0bf528SMauro Carvalho Chehab 
279a0bf528SMauro Carvalho Chehab #ifndef STV0288_H
289a0bf528SMauro Carvalho Chehab #define STV0288_H
299a0bf528SMauro Carvalho Chehab 
309a0bf528SMauro Carvalho Chehab #include <linux/dvb/frontend.h>
31*fada1935SMauro Carvalho Chehab #include <media/dvb_frontend.h>
329a0bf528SMauro Carvalho Chehab 
339a0bf528SMauro Carvalho Chehab struct stv0288_config {
349a0bf528SMauro Carvalho Chehab 	/* the demodulator's i2c address */
359a0bf528SMauro Carvalho Chehab 	u8 demod_address;
369a0bf528SMauro Carvalho Chehab 
379a0bf528SMauro Carvalho Chehab 	u8* inittab;
389a0bf528SMauro Carvalho Chehab 
399a0bf528SMauro Carvalho Chehab 	/* minimum delay before retuning */
409a0bf528SMauro Carvalho Chehab 	int min_delay_ms;
419a0bf528SMauro Carvalho Chehab 
429a0bf528SMauro Carvalho Chehab 	int (*set_ts_params)(struct dvb_frontend *fe, int is_punctured);
439a0bf528SMauro Carvalho Chehab };
449a0bf528SMauro Carvalho Chehab 
459b174527SArnd Bergmann #if IS_REACHABLE(CONFIG_DVB_STV0288)
469a0bf528SMauro Carvalho Chehab extern struct dvb_frontend *stv0288_attach(const struct stv0288_config *config,
479a0bf528SMauro Carvalho Chehab 					   struct i2c_adapter *i2c);
489a0bf528SMauro Carvalho Chehab #else
499a0bf528SMauro Carvalho Chehab static inline struct dvb_frontend *stv0288_attach(const struct stv0288_config *config,
509a0bf528SMauro Carvalho Chehab 					   struct i2c_adapter *i2c)
519a0bf528SMauro Carvalho Chehab {
529a0bf528SMauro Carvalho Chehab 	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
539a0bf528SMauro Carvalho Chehab 	return NULL;
549a0bf528SMauro Carvalho Chehab }
559a0bf528SMauro Carvalho Chehab #endif /* CONFIG_DVB_STV0288 */
569a0bf528SMauro Carvalho Chehab 
579a0bf528SMauro Carvalho Chehab static inline int stv0288_writereg(struct dvb_frontend *fe, u8 reg, u8 val)
589a0bf528SMauro Carvalho Chehab {
599a0bf528SMauro Carvalho Chehab 	int r = 0;
609a0bf528SMauro Carvalho Chehab 	u8 buf[] = { reg, val };
619a0bf528SMauro Carvalho Chehab 	if (fe->ops.write)
629a0bf528SMauro Carvalho Chehab 		r = fe->ops.write(fe, buf, 2);
639a0bf528SMauro Carvalho Chehab 	return r;
649a0bf528SMauro Carvalho Chehab }
659a0bf528SMauro Carvalho Chehab 
669a0bf528SMauro Carvalho Chehab #endif /* STV0288_H */
67