2007-07-30 19:49:04 +04:00
/*
* Linux - DVB Driver for DiBcom ' s DiB0070 base - band RF Tuner .
*
* Copyright ( C ) 2005 - 7 DiBcom ( http : //www.dibcom.fr/)
*
* 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 , version 2.
*/
# ifndef DIB0070_H
# define DIB0070_H
struct dvb_frontend ;
struct i2c_adapter ;
# define DEFAULT_DIB0070_I2C_ADDRESS 0x60
2009-08-03 20:43:40 +04:00
struct dib0070_wbd_gain_cfg {
2009-08-17 12:13:28 +04:00
u16 freq ;
u16 wbd_gain_val ;
2009-08-03 20:43:40 +04:00
} ;
2007-07-30 19:49:04 +04:00
struct dib0070_config {
u8 i2c_address ;
/* tuner pins controlled externally */
int ( * reset ) ( struct dvb_frontend * , int ) ;
int ( * sleep ) ( struct dvb_frontend * , int ) ;
/* offset in kHz */
int freq_offset_khz_uhf ;
int freq_offset_khz_vhf ;
2009-08-17 12:13:28 +04:00
u8 osc_buffer_state ; /* 0= normal, 1= tri-state */
u32 clock_khz ;
u8 clock_pad_drive ; /* (Drive + 1) * 2mA */
2007-07-30 19:49:04 +04:00
2009-08-17 12:13:28 +04:00
u8 invert_iq ; /* invert Q - in case I or Q is inverted on the board */
2007-07-30 19:49:04 +04:00
2009-08-17 12:13:28 +04:00
u8 force_crystal_mode ; /* if == 0 -> decision is made in the driver default: <24 -> 2, >=24 -> 1 */
2007-07-30 19:49:04 +04:00
u8 flip_chip ;
2009-08-17 12:13:28 +04:00
u8 enable_third_order_filter ;
u8 charge_pump ;
2009-08-03 20:43:40 +04:00
2009-08-17 12:13:28 +04:00
const struct dib0070_wbd_gain_cfg * wbd_gain ;
2009-08-03 20:43:40 +04:00
2009-08-17 12:13:28 +04:00
u8 vga_filter ;
2007-07-30 19:49:04 +04:00
} ;
2008-06-05 20:08:29 +04:00
# if defined(CONFIG_DVB_TUNER_DIB0070) || (defined(CONFIG_DVB_TUNER_DIB0070_MODULE) && defined(MODULE))
2009-08-17 12:13:28 +04:00
extern struct dvb_frontend * dib0070_attach ( struct dvb_frontend * fe , struct i2c_adapter * i2c , struct dib0070_config * cfg ) ;
2008-08-09 21:21:58 +04:00
extern u16 dib0070_wbd_offset ( struct dvb_frontend * ) ;
2009-09-28 02:11:34 +04:00
extern void dib0070_ctrl_agc_filter ( struct dvb_frontend * , u8 open ) ;
2008-06-05 20:08:29 +04:00
# else
2009-08-17 12:13:28 +04:00
static inline struct dvb_frontend * dib0070_attach ( struct dvb_frontend * fe , struct i2c_adapter * i2c , struct dib0070_config * cfg )
2008-06-05 20:08:29 +04:00
{
printk ( KERN_WARNING " %s: driver disabled by Kconfig \n " , __func__ ) ;
return NULL ;
}
2008-08-09 21:21:58 +04:00
static inline u16 dib0070_wbd_offset ( struct dvb_frontend * fe )
{
printk ( KERN_WARNING " %s: driver disabled by Kconfig \n " , __func__ ) ;
return - ENODEV ;
}
2009-09-28 02:11:34 +04:00
static inline void dib0070_ctrl_agc_filter ( struct dvb_frontend * fe , u8 open )
{
printk ( KERN_WARNING " %s: driver disabled by Kconfig \n " , __func__ ) ;
}
2008-06-05 20:08:29 +04:00
# endif
2007-07-30 19:49:04 +04:00
# endif