19a0bf528SMauro Carvalho Chehab /*
29a0bf528SMauro Carvalho Chehab  * stv0367.h
39a0bf528SMauro Carvalho Chehab  *
49a0bf528SMauro Carvalho Chehab  * Driver for ST STV0367 DVB-T & DVB-C demodulator IC.
59a0bf528SMauro Carvalho Chehab  *
69a0bf528SMauro Carvalho Chehab  * Copyright (C) ST Microelectronics.
79a0bf528SMauro Carvalho Chehab  * Copyright (C) 2010,2011 NetUP Inc.
89a0bf528SMauro Carvalho Chehab  * Copyright (C) 2010,2011 Igor M. Liplianin <liplianin@netup.ru>
99a0bf528SMauro Carvalho Chehab  *
109a0bf528SMauro Carvalho Chehab  * This program is free software; you can redistribute it and/or modify
119a0bf528SMauro Carvalho Chehab  * it under the terms of the GNU General Public License as published by
129a0bf528SMauro Carvalho Chehab  * the Free Software Foundation; either version 2 of the License, or
139a0bf528SMauro Carvalho Chehab  * (at your option) any later version.
149a0bf528SMauro Carvalho Chehab  *
159a0bf528SMauro Carvalho Chehab  * This program is distributed in the hope that it will be useful,
169a0bf528SMauro Carvalho Chehab  * but WITHOUT ANY WARRANTY; without even the implied warranty of
179a0bf528SMauro Carvalho Chehab  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
189a0bf528SMauro Carvalho Chehab  *
199a0bf528SMauro Carvalho Chehab  * GNU General Public License for more details.
209a0bf528SMauro Carvalho Chehab  */
219a0bf528SMauro Carvalho Chehab 
229a0bf528SMauro Carvalho Chehab #ifndef STV0367_H
239a0bf528SMauro Carvalho Chehab #define STV0367_H
249a0bf528SMauro Carvalho Chehab 
259a0bf528SMauro Carvalho Chehab #include <linux/dvb/frontend.h>
26fada1935SMauro Carvalho Chehab #include <media/dvb_frontend.h>
279a0bf528SMauro Carvalho Chehab 
288a9c0735SDaniel Scheller #define STV0367_ICSPEED_53125	53125000
298a9c0735SDaniel Scheller #define STV0367_ICSPEED_58000	58000000
308a9c0735SDaniel Scheller 
319a0bf528SMauro Carvalho Chehab struct stv0367_config {
329a0bf528SMauro Carvalho Chehab 	u8 demod_address;
339a0bf528SMauro Carvalho Chehab 	u32 xtal;
349a0bf528SMauro Carvalho Chehab 	u32 if_khz;/*4500*/
359a0bf528SMauro Carvalho Chehab 	int if_iq_mode;
369a0bf528SMauro Carvalho Chehab 	int ts_mode;
379a0bf528SMauro Carvalho Chehab 	int clk_pol;
389a0bf528SMauro Carvalho Chehab };
399a0bf528SMauro Carvalho Chehab 
409b174527SArnd Bergmann #if IS_REACHABLE(CONFIG_DVB_STV0367)
419a0bf528SMauro Carvalho Chehab extern struct
429a0bf528SMauro Carvalho Chehab dvb_frontend *stv0367ter_attach(const struct stv0367_config *config,
439a0bf528SMauro Carvalho Chehab 					struct i2c_adapter *i2c);
449a0bf528SMauro Carvalho Chehab extern struct
459a0bf528SMauro Carvalho Chehab dvb_frontend *stv0367cab_attach(const struct stv0367_config *config,
469a0bf528SMauro Carvalho Chehab 					struct i2c_adapter *i2c);
47dbbac11eSDaniel Scheller extern struct
48dbbac11eSDaniel Scheller dvb_frontend *stv0367ddb_attach(const struct stv0367_config *config,
49dbbac11eSDaniel Scheller 					struct i2c_adapter *i2c);
509a0bf528SMauro Carvalho Chehab #else
519a0bf528SMauro Carvalho Chehab static inline struct
529a0bf528SMauro Carvalho Chehab dvb_frontend *stv0367ter_attach(const struct stv0367_config *config,
539a0bf528SMauro Carvalho Chehab 					struct i2c_adapter *i2c)
549a0bf528SMauro Carvalho Chehab {
559a0bf528SMauro Carvalho Chehab 	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
569a0bf528SMauro Carvalho Chehab 	return NULL;
579a0bf528SMauro Carvalho Chehab }
589a0bf528SMauro Carvalho Chehab static inline struct
599a0bf528SMauro Carvalho Chehab dvb_frontend *stv0367cab_attach(const struct stv0367_config *config,
609a0bf528SMauro Carvalho Chehab 					struct i2c_adapter *i2c)
619a0bf528SMauro Carvalho Chehab {
629a0bf528SMauro Carvalho Chehab 	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
639a0bf528SMauro Carvalho Chehab 	return NULL;
649a0bf528SMauro Carvalho Chehab }
65dbbac11eSDaniel Scheller static inline struct
66dbbac11eSDaniel Scheller dvb_frontend *stv0367ddb_attach(const struct stv0367_config *config,
67dbbac11eSDaniel Scheller 					struct i2c_adapter *i2c)
68dbbac11eSDaniel Scheller {
69dbbac11eSDaniel Scheller 	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
70dbbac11eSDaniel Scheller 	return NULL;
71dbbac11eSDaniel Scheller }
729a0bf528SMauro Carvalho Chehab #endif
739a0bf528SMauro Carvalho Chehab 
749a0bf528SMauro Carvalho Chehab #endif
75