Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-serial
[pandora-kernel.git] / drivers / media / dvb / frontends / dvb-pll.h
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
11 struct dvb_pll_desc {
12         char *name;
13         u32  min;
14         u32  max;
15         void (*setbw)(u8 *buf, u32 freq, int bandwidth);
16         int  count;
17         struct {
18                 u32 limit;
19                 u32 offset;
20                 u32 stepsize;
21                 u8  config;
22                 u8  cb;
23         } entries[12];
24 };
25
26 extern struct dvb_pll_desc dvb_pll_thomson_dtt7579;
27 extern struct dvb_pll_desc dvb_pll_thomson_dtt759x;
28 extern struct dvb_pll_desc dvb_pll_thomson_dtt7610;
29 extern struct dvb_pll_desc dvb_pll_lg_z201;
30 extern struct dvb_pll_desc dvb_pll_microtune_4042;
31 extern struct dvb_pll_desc dvb_pll_thomson_dtt761x;
32 extern struct dvb_pll_desc dvb_pll_unknown_1;
33
34 extern struct dvb_pll_desc dvb_pll_tua6010xs;
35 extern struct dvb_pll_desc dvb_pll_env57h1xd5;
36 extern struct dvb_pll_desc dvb_pll_tua6034;
37 extern struct dvb_pll_desc dvb_pll_lg_tdvs_h06xf;
38 extern struct dvb_pll_desc dvb_pll_tda665x;
39 extern struct dvb_pll_desc dvb_pll_fmd1216me;
40 extern struct dvb_pll_desc dvb_pll_tded4;
41
42 extern struct dvb_pll_desc dvb_pll_tuv1236d;
43 extern struct dvb_pll_desc dvb_pll_tdhu2;
44 extern struct dvb_pll_desc dvb_pll_samsung_tbmv;
45 extern struct dvb_pll_desc dvb_pll_philips_sd1878_tda8261;
46 extern struct dvb_pll_desc dvb_pll_philips_td1316;
47
48 extern struct dvb_pll_desc dvb_pll_thomson_fe6600;
49
50 extern int dvb_pll_configure(struct dvb_pll_desc *desc, u8 *buf,
51                       u32 freq, int bandwidth);
52
53 /**
54  * Attach a dvb-pll to the supplied frontend structure.
55  *
56  * @param fe Frontend to attach to.
57  * @param pll_addr i2c address of the PLL (if used).
58  * @param i2c i2c adapter to use (set to NULL if not used).
59  * @param desc dvb_pll_desc to use.
60  * @return Frontend pointer on success, NULL on failure
61  */
62 extern struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe, int pll_addr, struct i2c_adapter *i2c, struct dvb_pll_desc *desc);
63
64 #endif