blob: 66361cd188078c6361d84d255febce35d0685aa2 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
Johannes Stezenbach776338e2005-06-23 22:02:35 -07002 * descriptions + helper functions for simple dvb plls.
Linus Torvalds1da177e2005-04-16 15:20:36 -07003 */
4
Johannes Stezenbach5e9e7222005-05-16 21:54:37 -07005#ifndef __DVB_PLL_H__
6#define __DVB_PLL_H__
7
Andrew de Quincey272bc4d2006-04-18 17:47:12 -03008#include <linux/i2c.h>
9#include "dvb_frontend.h"
10
Linus Torvalds1da177e2005-04-16 15:20:36 -070011struct dvb_pll_desc {
12 char *name;
13 u32 min;
14 u32 max;
Patrick Boettcher49dc82f2005-07-07 17:58:09 -070015 void (*setbw)(u8 *buf, u32 freq, int bandwidth);
Linus Torvalds1da177e2005-04-16 15:20:36 -070016 int count;
17 struct {
18 u32 limit;
19 u32 offset;
20 u32 stepsize;
Michael Krufkyab66b222006-01-23 17:11:11 -020021 u8 config;
22 u8 cb;
Johannes Stezenbach776338e2005-06-23 22:02:35 -070023 } entries[12];
Linus Torvalds1da177e2005-04-16 15:20:36 -070024};
25
26extern struct dvb_pll_desc dvb_pll_thomson_dtt7579;
27extern struct dvb_pll_desc dvb_pll_thomson_dtt759x;
28extern struct dvb_pll_desc dvb_pll_thomson_dtt7610;
29extern struct dvb_pll_desc dvb_pll_lg_z201;
Mac Michaelsd8667cb2005-07-07 17:58:29 -070030extern struct dvb_pll_desc dvb_pll_microtune_4042;
Michael Krufky83ac87222006-01-09 15:25:29 -020031extern struct dvb_pll_desc dvb_pll_thomson_dtt761x;
Linus Torvalds1da177e2005-04-16 15:20:36 -070032extern struct dvb_pll_desc dvb_pll_unknown_1;
33
Johannes Stezenbach776338e2005-06-23 22:02:35 -070034extern struct dvb_pll_desc dvb_pll_tua6010xs;
35extern struct dvb_pll_desc dvb_pll_env57h1xd5;
36extern struct dvb_pll_desc dvb_pll_tua6034;
Michael Krufky30fa61a2006-04-27 01:31:26 -030037extern struct dvb_pll_desc dvb_pll_lg_tdvs_h06xf;
Johannes Stezenbach776338e2005-06-23 22:02:35 -070038extern struct dvb_pll_desc dvb_pll_tda665x;
Patrick Boettcher49dc82f2005-07-07 17:58:09 -070039extern struct dvb_pll_desc dvb_pll_fmd1216me;
Patrick Boettcher0589b8e2005-07-07 17:58:12 -070040extern struct dvb_pll_desc dvb_pll_tded4;
Johannes Stezenbach776338e2005-06-23 22:02:35 -070041
Kirk Lapray147418c2005-11-08 21:35:39 -080042extern struct dvb_pll_desc dvb_pll_tuv1236d;
43extern struct dvb_pll_desc dvb_pll_tdhu2;
Michael Krufky28f3d4b2006-01-23 17:11:07 -020044extern struct dvb_pll_desc dvb_pll_samsung_tbmv;
Regis Prevotf8bf1342006-01-11 23:31:53 -020045extern struct dvb_pll_desc dvb_pll_philips_sd1878_tda8261;
Jose Alberto Regueroa78d0bf2006-02-07 06:25:14 -020046extern struct dvb_pll_desc dvb_pll_philips_td1316;
Kirk Lapray147418c2005-11-08 21:35:39 -080047
Michael Krufky91ae3292006-03-01 00:04:42 -030048extern struct dvb_pll_desc dvb_pll_thomson_fe6600;
Chris Pascoe780dfef2006-02-28 08:34:59 -030049
Andrew de Quincey272bc4d2006-04-18 17:47:12 -030050extern int dvb_pll_configure(struct dvb_pll_desc *desc, u8 *buf,
Linus Torvalds1da177e2005-04-16 15:20:36 -070051 u32 freq, int bandwidth);
52
Andrew de Quincey272bc4d2006-04-18 17:47:12 -030053/**
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 0 on success, nonzero on failure.
61 */
62extern int dvb_pll_attach(struct dvb_frontend *fe, int pll_addr, struct i2c_adapter *i2c, struct dvb_pll_desc *desc);
63
Johannes Stezenbach5e9e7222005-05-16 21:54:37 -070064#endif