1/* 2 * descriptions + helper functions for simple dvb plls. 3 */ 4 5#ifndef __DVB_PLL_H__ 6#define __DVB_PLL_H__ 7 8#include <linux/i2c.h> 9#include "dvb_frontend.h" 10 11struct dvb_pll_desc { 12 char *name; 13 u32 min; 14 u32 max; 15 u32 iffreq; 16 void (*setbw)(u8 *buf, u32 freq, int bandwidth); 17 u8 *initdata; 18 u8 *sleepdata; 19 int count; 20 struct { 21 u32 limit; 22 u32 stepsize; 23 u8 config; 24 u8 cb; 25 } entries[12]; 26}; 27 28extern struct dvb_pll_desc dvb_pll_thomson_dtt7579; 29extern struct dvb_pll_desc dvb_pll_thomson_dtt759x; 30extern struct dvb_pll_desc dvb_pll_thomson_dtt7610; 31extern struct dvb_pll_desc dvb_pll_lg_z201; 32extern struct dvb_pll_desc dvb_pll_microtune_4042; 33extern struct dvb_pll_desc dvb_pll_thomson_dtt761x; 34extern struct dvb_pll_desc dvb_pll_unknown_1; 35 36extern struct dvb_pll_desc dvb_pll_tua6010xs; 37extern struct dvb_pll_desc dvb_pll_env57h1xd5; 38extern struct dvb_pll_desc dvb_pll_tua6034; 39extern struct dvb_pll_desc dvb_pll_lg_tdvs_h06xf; 40extern struct dvb_pll_desc dvb_pll_tda665x; 41extern struct dvb_pll_desc dvb_pll_fmd1216me; 42extern struct dvb_pll_desc dvb_pll_tded4; 43 44extern struct dvb_pll_desc dvb_pll_tuv1236d; 45extern struct dvb_pll_desc dvb_pll_tdhu2; 46extern struct dvb_pll_desc dvb_pll_samsung_tbmv; 47extern struct dvb_pll_desc dvb_pll_philips_sd1878_tda8261; 48extern struct dvb_pll_desc dvb_pll_philips_td1316; 49 50extern struct dvb_pll_desc dvb_pll_thomson_fe6600; 51extern struct dvb_pll_desc dvb_pll_opera1; 52 53extern int dvb_pll_configure(struct dvb_pll_desc *desc, u8 *buf, 54 u32 freq, int bandwidth); 55 56/** 57 * Attach a dvb-pll to the supplied frontend structure. 58 * 59 * @param fe Frontend to attach to. 60 * @param pll_addr i2c address of the PLL (if used). 61 * @param i2c i2c adapter to use (set to NULL if not used). 62 * @param desc dvb_pll_desc to use. 63 * @return Frontend pointer on success, NULL on failure 64 */ 65#if defined(CONFIG_DVB_PLL) || (defined(CONFIG_DVB_PLL_MODULE) && defined(MODULE)) 66extern struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe, 67 int pll_addr, 68 struct i2c_adapter *i2c, 69 struct dvb_pll_desc *desc); 70#else 71static inline struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe, 72 int pll_addr, 73 struct i2c_adapter *i2c, 74 struct dvb_pll_desc *desc) 75{ 76 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); 77 return NULL; 78} 79#endif 80 81#endif 82