2019-05-20 10:19:02 +03:00
/* SPDX-License-Identifier: GPL-2.0-or-later */
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
*/
# 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 */
2019-05-29 19:56:33 +03:00
struct dvb_frontend * frontend ;
struct stv6110x_devctl * ( * get_devctl ) ( struct i2c_client * i2c ) ;
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 ) ;
} ;
2015-02-18 20:12:42 +03:00
# if IS_REACHABLE(CONFIG_DVB_STV6110x)
2009-04-06 22:45:20 +04:00
2015-12-06 18:34:26 +03:00
extern const struct stv6110x_devctl * stv6110x_attach ( struct dvb_frontend * fe ,
2009-04-06 22:45:20 +04:00
const struct stv6110x_config * config ,
struct i2c_adapter * i2c ) ;
# else
2015-12-06 18:34:26 +03:00
static inline const struct stv6110x_devctl * stv6110x_attach ( struct dvb_frontend * fe ,
2009-04-06 22:45:20 +04:00
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 */