2005-04-16 15:20:36 -07:00
/*
2005-06-23 22:02:35 -07:00
* descriptions + helper functions for simple dvb plls .
2005-04-16 15:20:36 -07:00
*/
2005-05-16 21:54:37 -07:00
# ifndef __DVB_PLL_H__
# define __DVB_PLL_H__
2006-04-18 17:47:12 -03:00
# include <linux/i2c.h>
# include "dvb_frontend.h"
2005-04-16 15:20:36 -07:00
struct dvb_pll_desc {
char * name ;
u32 min ;
u32 max ;
2007-03-19 02:24:04 -03:00
u32 iffreq ;
2007-05-05 12:05:39 -03:00
void ( * set ) ( u8 * buf , const struct dvb_frontend_parameters * params ) ;
2007-04-27 12:31:29 -03:00
u8 * initdata ;
2007-03-19 02:24:09 -03:00
u8 * sleepdata ;
2005-04-16 15:20:36 -07:00
int count ;
struct {
u32 limit ;
u32 stepsize ;
2006-01-23 17:11:11 -02:00
u8 config ;
u8 cb ;
2005-06-23 22:02:35 -07:00
} entries [ 12 ] ;
2005-04-16 15:20:36 -07:00
} ;
extern struct dvb_pll_desc dvb_pll_thomson_dtt7579 ;
extern struct dvb_pll_desc dvb_pll_thomson_dtt759x ;
extern struct dvb_pll_desc dvb_pll_thomson_dtt7610 ;
extern struct dvb_pll_desc dvb_pll_lg_z201 ;
2005-07-07 17:58:29 -07:00
extern struct dvb_pll_desc dvb_pll_microtune_4042 ;
2006-01-09 15:25:29 -02:00
extern struct dvb_pll_desc dvb_pll_thomson_dtt761x ;
2005-04-16 15:20:36 -07:00
extern struct dvb_pll_desc dvb_pll_unknown_1 ;
2005-06-23 22:02:35 -07:00
extern struct dvb_pll_desc dvb_pll_tua6010xs ;
extern struct dvb_pll_desc dvb_pll_env57h1xd5 ;
extern struct dvb_pll_desc dvb_pll_tua6034 ;
2006-04-27 01:31:26 -03:00
extern struct dvb_pll_desc dvb_pll_lg_tdvs_h06xf ;
2005-06-23 22:02:35 -07:00
extern struct dvb_pll_desc dvb_pll_tda665x ;
2005-07-07 17:58:09 -07:00
extern struct dvb_pll_desc dvb_pll_fmd1216me ;
2005-07-07 17:58:12 -07:00
extern struct dvb_pll_desc dvb_pll_tded4 ;
2005-06-23 22:02:35 -07:00
2005-11-08 21:35:39 -08:00
extern struct dvb_pll_desc dvb_pll_tuv1236d ;
extern struct dvb_pll_desc dvb_pll_tdhu2 ;
2006-01-23 17:11:07 -02:00
extern struct dvb_pll_desc dvb_pll_samsung_tbmv ;
2006-01-11 23:31:53 -02:00
extern struct dvb_pll_desc dvb_pll_philips_sd1878_tda8261 ;
2006-02-07 06:25:14 -02:00
extern struct dvb_pll_desc dvb_pll_philips_td1316 ;
2005-11-08 21:35:39 -08:00
2006-03-01 00:04:42 -03:00
extern struct dvb_pll_desc dvb_pll_thomson_fe6600 ;
2007-04-19 11:26:47 -03:00
extern struct dvb_pll_desc dvb_pll_opera1 ;
2006-02-28 08:34:59 -03:00
2006-04-18 17:47:12 -03:00
/**
* Attach a dvb - pll to the supplied frontend structure .
*
* @ param fe Frontend to attach to .
* @ param pll_addr i2c address of the PLL ( if used ) .
* @ param i2c i2c adapter to use ( set to NULL if not used ) .
* @ param desc dvb_pll_desc to use .
2006-08-08 09:10:08 -03:00
* @ return Frontend pointer on success , NULL on failure
2006-04-18 17:47:12 -03:00
*/
2007-04-27 12:31:28 -03:00
# if defined(CONFIG_DVB_PLL) || (defined(CONFIG_DVB_PLL_MODULE) && defined(MODULE))
2006-11-20 16:38:42 -03:00
extern struct dvb_frontend * dvb_pll_attach ( struct dvb_frontend * fe ,
int pll_addr ,
struct i2c_adapter * i2c ,
struct dvb_pll_desc * desc ) ;
2007-04-27 12:31:28 -03:00
# else
static inline struct dvb_frontend * dvb_pll_attach ( struct dvb_frontend * fe ,
int pll_addr ,
struct i2c_adapter * i2c ,
struct dvb_pll_desc * desc )
{
printk ( KERN_WARNING " %s: driver disabled by Kconfig \n " , __FUNCTION__ ) ;
return NULL ;
}
# endif
2006-04-18 17:47:12 -03:00
2005-05-16 21:54:37 -07:00
# endif