Commit | Line | Data |
---|---|---|
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 | ||
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 |