Imported Upstream version 1.15.1
[deb_xorg-server.git] / hw / xfree86 / i2c / fi1236.h
CommitLineData
a09e091a
JB
1#ifndef __FI1236_H__
2#define __FI1236_H__
3
4#include "xf86i2c.h"
5
6/* why someone has defined NUM someplace else is beyoung me.. */
7#undef NUM
8
9typedef struct {
10 CARD32 fcar; /* 16 * fcar_Mhz */
11 CARD32 min_freq; /* 16 * min_freq_Mhz */
12 CARD32 max_freq; /* 16 * max_freq_Mhz */
13
14 CARD32 threshold1; /* 16 * Value_Mhz */
15 CARD32 threshold2; /* 16 * Value_Mhz */
16
17 CARD8 band_low;
18 CARD8 band_mid;
19 CARD8 band_high;
20 CARD8 control;
21} FI1236_parameters;
22
23typedef struct {
24 /* what we want */
25 /* all frequencies are in Mhz */
26 double f_rf; /* frequency to tune to */
27 double f_if1; /* first intermediate frequency */
28 double f_if2; /* second intermediate frequency */
29 double f_ref; /* reference frequency */
30 double f_ifbw; /* bandwidth */
31 double f_step; /* step */
32
33 /* what we compute */
34 double f_lo1;
35 double f_lo2;
36 int LO1I;
37 int LO2I;
38 int SEL;
39 int STEP;
40 int NUM;
41} MT2032_parameters;
42
43typedef struct {
44 I2CDevRec d;
45 int type;
46
47 void *afc_source; /* The AFC source may be another chip like TDA988x */
48
49 int afc_delta;
50 CARD32 original_frequency;
51 Bool afc_timer_installed;
52 int afc_count;
53 int last_afc_hint;
54
55 double video_if;
56 FI1236_parameters parm;
57 int xogc; /* for MT2032 */
58
59 struct {
60 CARD8 div1;
61 CARD8 div2;
62 CARD8 control;
63 CARD8 band;
64 CARD8 aux; /* this is for MK3 tuners */
65 } tuner_data;
66} FI1236Rec, *FI1236Ptr;
67
68#define TUNER_TYPE_FI1236 0
69#define TUNER_TYPE_FI1216 1
70#define TUNER_TYPE_TEMIC_FN5AL 2
71#define TUNER_TYPE_MT2032 3
72#define TUNER_TYPE_FI1246 4
73#define TUNER_TYPE_FI1256 5
74#define TUNER_TYPE_FI1236W 6
75#define TUNER_TYPE_FM1216ME 7
76
77#define FI1236_ADDR(a) ((a)->d.SlaveAddr)
78
79#define FI1236_ADDR_1 0xC6
80#define FI1236_ADDR_2 0xC0
81
82#define TUNER_TUNED 0
83#define TUNER_JUST_BELOW 1
84#define TUNER_JUST_ABOVE -1
85#define TUNER_OFF 4
86#define TUNER_STILL_TUNING 5
87
88void FI1236_tune(FI1236Ptr f, CARD32 frequency);
89
90#define FI1236SymbolsList \
91 "Detect_FI1236", \
92 "FI1236_set_tuner_type", \
93 "TUNER_set_frequency"
94
95#define xf86_Detect_FI1236 Detect_FI1236
96extern _X_EXPORT FI1236Ptr Detect_FI1236(I2CBusPtr b, I2CSlaveAddr addr);
97
98#define xf86_FI1236_set_tuner_type FI1236_set_tuner_type
99extern _X_EXPORT void FI1236_set_tuner_type(FI1236Ptr f, int type);
100
101#define xf86_TUNER_set_frequency TUNER_set_frequency
102extern _X_EXPORT void TUNER_set_frequency(FI1236Ptr f, CARD32 frequency);
103
104#define xf86_FI1236_AFC FI1236_AFC
105extern _X_EXPORT int FI1236_AFC(FI1236Ptr f);
106
107#define xf86_TUNER_get_afc_hint TUNER_get_afc_hint
108extern _X_EXPORT int TUNER_get_afc_hint(FI1236Ptr f);
109
110#define xf86_fi1236_dump_status fi1236_dump_status
111extern _X_EXPORT void fi1236_dump_status(FI1236Ptr f);
112
113#endif