Imported Upstream version 1.15.1
[deb_xorg-server.git] / hw / xfree86 / i2c / fi1236.h
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
9 typedef 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
23 typedef 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
43 typedef 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
88 void 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
96 extern _X_EXPORT FI1236Ptr Detect_FI1236(I2CBusPtr b, I2CSlaveAddr addr);
97
98 #define xf86_FI1236_set_tuner_type FI1236_set_tuner_type
99 extern _X_EXPORT void FI1236_set_tuner_type(FI1236Ptr f, int type);
100
101 #define xf86_TUNER_set_frequency TUNER_set_frequency
102 extern _X_EXPORT void TUNER_set_frequency(FI1236Ptr f, CARD32 frequency);
103
104 #define xf86_FI1236_AFC FI1236_AFC
105 extern _X_EXPORT int FI1236_AFC(FI1236Ptr f);
106
107 #define xf86_TUNER_get_afc_hint TUNER_get_afc_hint
108 extern _X_EXPORT int TUNER_get_afc_hint(FI1236Ptr f);
109
110 #define xf86_fi1236_dump_status fi1236_dump_status
111 extern _X_EXPORT void fi1236_dump_status(FI1236Ptr f);
112
113 #endif