blob: b37d59d5a1030b97a1eda4bd856b61f27652217a [file] [log] [blame]
Michael Krufky7b0ac9c2006-01-13 14:10:25 -02001/*
2 * descriptions for simple tuners.
3 */
4
5#ifndef __TUNER_TYPES_H__
6#define __TUNER_TYPES_H__
7
8enum param_type {
9 TUNER_PARAM_TYPE_RADIO, \
10 TUNER_PARAM_TYPE_PAL, \
11 TUNER_PARAM_TYPE_SECAM, \
Michael Krufkyc943aa82006-01-13 14:10:26 -020012 TUNER_PARAM_TYPE_NTSC
Michael Krufky7b0ac9c2006-01-13 14:10:25 -020013};
14
15struct tuner_range {
16 unsigned short limit;
17 unsigned char cb;
18};
19
20struct tuner_params {
21 enum param_type type;
Michael Krufky8f0bb9c2006-01-15 12:46:18 -020022 unsigned int tda988x;
Hans Verkuil27487d42006-01-15 15:04:52 -020023 /* Many Philips based tuners have a comment like this in their
24 * datasheet:
25 *
26 * For channel selection involving band switching, and to ensure
27 * smooth tuning to the desired channel without causing
28 * unnecessary charge pump action, it is recommended to consider
29 * the difference between wanted channel frequency and the
30 * current channel frequency. Unnecessary charge pump action
31 * will result in very low tuning voltage which may drive the
32 * oscillator to extreme conditions.
33 *
34 * Set this flag to 1 if this tuner needs this check.
35 *
36 * I tested this for PAL by first setting the TV frequency to
37 * 203 MHz and then switching to 96.6 MHz FM radio. The result was
38 * static unless the control byte was sent first.
39 */
40 unsigned int cb_first_if_lower_freq:1;
Michael Krufky7b0ac9c2006-01-13 14:10:25 -020041 unsigned char config; /* to be moved into struct tuner_range for dvb-pll merge */
42
43 unsigned int count;
44 struct tuner_range *ranges;
45};
46
47struct tunertype {
48 char *name;
Michael Krufky7b0ac9c2006-01-13 14:10:25 -020049 struct tuner_params *params;
50};
51
52extern struct tunertype tuners[];
53extern unsigned const int tuner_count;
54
55#endif