blob: ad9c171bfa07177e0716e34a6d0c8be4e84b547d [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;
Michael Krufky3fc46d32006-01-23 17:11:11 -020017 unsigned char config;
Michael Krufky7b0ac9c2006-01-13 14:10:25 -020018 unsigned char cb;
19};
20
21struct tuner_params {
22 enum param_type type;
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 *
Michael Krufkyde03d212006-01-15 16:04:04 -020034 * Set cb_first_if_lower_freq to 1, if this check is
Michael Krufky01872c52006-01-15 15:47:02 -020035 * required for this tuner.
Hans Verkuil27487d42006-01-15 15:04:52 -020036 *
37 * I tested this for PAL by first setting the TV frequency to
38 * 203 MHz and then switching to 96.6 MHz FM radio. The result was
39 * static unless the control byte was sent first.
40 */
41 unsigned int cb_first_if_lower_freq:1;
Michael Krufky7b0ac9c2006-01-13 14:10:25 -020042
43 unsigned int count;
44 struct tuner_range *ranges;
45};
46
47struct tunertype {
48 char *name;
Michael Krufkybbab6fd2006-02-06 09:15:11 -020049 unsigned int count;
Michael Krufky7b0ac9c2006-01-13 14:10:25 -020050 struct tuner_params *params;
51};
52
53extern struct tunertype tuners[];
54extern unsigned const int tuner_count;
55
56#endif