2019-05-20 10:19:02 +03:00
/* SPDX-License-Identifier: GPL-2.0-or-later */
2007-04-27 19:31:14 +04:00
/*
DVB Driver for Philips tda827x / tda827xa Silicon tuners
( c ) 2005 Hartmut Hackmann
( c ) 2007 Michael Krufky
*/
# ifndef __DVB_TDA827X_H__
# define __DVB_TDA827X_H__
# include <linux/i2c.h>
2017-12-28 21:03:51 +03:00
# include <media/dvb_frontend.h>
2013-04-06 21:29:29 +04:00
# include "tda8290.h"
2007-04-27 19:31:14 +04:00
struct tda827x_config
{
2007-08-26 02:08:45 +04:00
/* saa7134 - provided callbacks */
2007-04-27 19:31:14 +04:00
int ( * init ) ( struct dvb_frontend * fe ) ;
int ( * sleep ) ( struct dvb_frontend * fe ) ;
2007-08-26 02:08:45 +04:00
/* interface to tda829x driver */
2013-04-06 21:29:29 +04:00
enum tda8290_lna config ;
2018-01-04 21:08:56 +03:00
int switch_addr ;
2007-08-26 02:08:45 +04:00
void ( * agcf ) ( struct dvb_frontend * fe ) ;
2007-04-27 19:31:14 +04:00
} ;
/**
* Attach a tda827x tuner to the supplied frontend structure .
*
* @ param fe Frontend to attach to .
* @ param addr i2c address of the tuner .
* @ param i2c i2c adapter to use .
* @ param cfg optional callback function pointers .
* @ return FE pointer on success , NULL on failure .
*/
2015-02-18 20:12:42 +03:00
# if IS_REACHABLE(CONFIG_MEDIA_TUNER_TDA827X)
2007-04-27 19:31:14 +04:00
extern struct dvb_frontend * tda827x_attach ( struct dvb_frontend * fe , int addr ,
struct i2c_adapter * i2c ,
struct tda827x_config * cfg ) ;
# else
static inline struct dvb_frontend * tda827x_attach ( struct dvb_frontend * fe ,
int addr ,
struct i2c_adapter * i2c ,
struct tda827x_config * cfg )
{
2008-04-09 06:20:00 +04:00
printk ( KERN_WARNING " %s: driver disabled by Kconfig \n " , __func__ ) ;
2007-04-27 19:31:14 +04:00
return NULL ;
}
2008-04-30 04:38:46 +04:00
# endif // CONFIG_MEDIA_TUNER_TDA827X
2007-04-27 19:31:14 +04:00
# endif // __DVB_TDA827X_H__