2009-04-06 22:45:20 +04:00
/*
STV6110 ( A ) Silicon tuner driver
Copyright ( C ) Manu Abraham < abraham . manu @ gmail . com >
Copyright ( C ) ST Microelectronics
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 __STV6110x_H
# define __STV6110x_H
struct stv6110x_config {
u8 addr ;
u32 refclk ;
2010-01-06 01:24:10 +03:00
u8 clk_div ; /* divisor value for the output clock */
2009-04-06 22:45:20 +04:00
} ;
enum tuner_mode {
TUNER_SLEEP = 1 ,
TUNER_WAKE ,
} ;
enum tuner_status {
TUNER_PHASELOCKED = 1 ,
} ;
struct stv6110x_devctl {
int ( * tuner_init ) ( struct dvb_frontend * fe ) ;
2010-01-23 11:49:08 +03:00
int ( * tuner_sleep ) ( struct dvb_frontend * fe ) ;
2009-04-06 22:45:20 +04:00
int ( * tuner_set_mode ) ( struct dvb_frontend * fe , enum tuner_mode mode ) ;
int ( * tuner_set_frequency ) ( struct dvb_frontend * fe , u32 frequency ) ;
int ( * tuner_get_frequency ) ( struct dvb_frontend * fe , u32 * frequency ) ;
int ( * tuner_set_bandwidth ) ( struct dvb_frontend * fe , u32 bandwidth ) ;
int ( * tuner_get_bandwidth ) ( struct dvb_frontend * fe , u32 * bandwidth ) ;
int ( * tuner_set_bbgain ) ( struct dvb_frontend * fe , u32 gain ) ;
int ( * tuner_get_bbgain ) ( struct dvb_frontend * fe , u32 * gain ) ;
int ( * tuner_set_refclk ) ( struct dvb_frontend * fe , u32 refclk ) ;
int ( * tuner_get_status ) ( struct dvb_frontend * fe , u32 * status ) ;
} ;
2013-01-20 08:32:56 +04:00
# if IS_ENABLED(CONFIG_DVB_STV6110x)
2009-04-06 22:45:20 +04:00
extern struct stv6110x_devctl * stv6110x_attach ( struct dvb_frontend * fe ,
const struct stv6110x_config * config ,
struct i2c_adapter * i2c ) ;
# else
static inline struct stv6110x_devctl * stv6110x_attach ( struct dvb_frontend * fe ,
const struct stv6110x_config * config ,
struct i2c_adapter * i2c )
{
printk ( KERN_WARNING " %s: driver disabled by Kconfig \n " , __func__ ) ;
return NULL ;
}
# endif /* CONFIG_DVB_STV6110x */
# endif /* __STV6110x_H */