2007-10-22 16:56:38 +04:00
/*
tda18271 . h - header for the Philips / NXP TDA18271 silicon tuner
2008-01-02 07:58:26 +03:00
Copyright ( C ) 2007 , 2008 Michael Krufky < mkrufky @ linuxtv . org >
2007-10-22 16:56:38 +04:00
This program is free software ; you can redistribute it and / or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation ; either version 2 of the License , or
( at your option ) any later version .
This program is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU General Public License for more details .
You should have received a copy of the GNU General Public License
along with this program ; if not , write to the Free Software
Foundation , Inc . , 675 Mass Ave , Cambridge , MA 0213 9 , USA .
*/
# ifndef __TDA18271_H__
# define __TDA18271_H__
# include <linux/i2c.h>
# include "dvb_frontend.h"
2008-01-02 09:01:54 +03:00
struct tda18271_std_map_item {
2008-01-03 07:17:45 +03:00
u16 if_freq ;
2008-01-02 09:01:54 +03:00
u8 std_bits ;
} ;
struct tda18271_std_map {
2008-01-08 16:38:10 +03:00
struct tda18271_std_map_item fm_radio ;
2008-01-02 09:01:54 +03:00
struct tda18271_std_map_item atv_b ;
struct tda18271_std_map_item atv_dk ;
struct tda18271_std_map_item atv_gh ;
struct tda18271_std_map_item atv_i ;
struct tda18271_std_map_item atv_l ;
struct tda18271_std_map_item atv_lc ;
struct tda18271_std_map_item atv_mn ;
struct tda18271_std_map_item atsc_6 ;
struct tda18271_std_map_item dvbt_6 ;
struct tda18271_std_map_item dvbt_7 ;
struct tda18271_std_map_item dvbt_8 ;
struct tda18271_std_map_item qam_6 ;
struct tda18271_std_map_item qam_8 ;
} ;
2007-12-10 04:23:30 +03:00
enum tda18271_i2c_gate {
TDA18271_GATE_AUTO = 0 ,
TDA18271_GATE_ANALOG ,
TDA18271_GATE_DIGITAL ,
} ;
2008-01-02 09:01:54 +03:00
struct tda18271_config {
2008-01-03 07:40:47 +03:00
/* override default if freq / std settings (optional) */
2008-01-02 09:01:54 +03:00
struct tda18271_std_map * std_map ;
2008-01-03 07:40:47 +03:00
/* use i2c gate provided by analog or digital demod */
2008-01-02 09:01:54 +03:00
enum tda18271_i2c_gate gate ;
} ;
2007-10-22 16:56:38 +04:00
# if defined(CONFIG_DVB_TDA18271) || (defined(CONFIG_DVB_TDA18271_MODULE) && defined(MODULE))
extern struct dvb_frontend * tda18271_attach ( struct dvb_frontend * fe , u8 addr ,
2007-12-10 04:23:30 +03:00
struct i2c_adapter * i2c ,
2008-01-02 09:01:54 +03:00
struct tda18271_config * cfg ) ;
2007-10-22 16:56:38 +04:00
# else
static inline struct dvb_frontend * tda18271_attach ( struct dvb_frontend * fe ,
u8 addr ,
2007-12-10 04:23:30 +03:00
struct i2c_adapter * i2c ,
2008-01-02 09:01:54 +03:00
struct tda18271_config * cfg )
2007-10-22 16:56:38 +04:00
{
printk ( KERN_WARNING " %s: driver disabled by Kconfig \n " , __FUNCTION__ ) ;
return NULL ;
}
# endif
# endif /* __TDA18271_H__ */