aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/frontends/tda18271-priv.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/dvb/frontends/tda18271-priv.h')
-rw-r--r--drivers/media/dvb/frontends/tda18271-priv.h72
1 files changed, 70 insertions, 2 deletions
diff --git a/drivers/media/dvb/frontends/tda18271-priv.h b/drivers/media/dvb/frontends/tda18271-priv.h
index 912b81e0c765..8552c6ae0d1f 100644
--- a/drivers/media/dvb/frontends/tda18271-priv.h
+++ b/drivers/media/dvb/frontends/tda18271-priv.h
@@ -69,11 +69,54 @@
69 69
70/*---------------------------------------------------------------------*/ 70/*---------------------------------------------------------------------*/
71 71
72struct tda18271_rf_tracking_filter_cal {
73 u32 rfmax;
74 u8 rfband;
75 u32 rf1_def;
76 u32 rf2_def;
77 u32 rf3_def;
78 u32 rf1;
79 u32 rf2;
80 u32 rf3;
81 int rf_a1;
82 int rf_b1;
83 int rf_a2;
84 int rf_b2;
85};
86
87struct tda18271_std_map_item {
88 u32 if_freq;
89 u8 std_bits;
90};
91
92struct tda18271_std_map {
93 struct tda18271_std_map_item atv_b;
94 struct tda18271_std_map_item atv_dk;
95 struct tda18271_std_map_item atv_gh;
96 struct tda18271_std_map_item atv_i;
97 struct tda18271_std_map_item atv_l;
98 struct tda18271_std_map_item atv_lc;
99 struct tda18271_std_map_item atv_mn;
100 struct tda18271_std_map_item atsc_6;
101 struct tda18271_std_map_item dvbt_6;
102 struct tda18271_std_map_item dvbt_7;
103 struct tda18271_std_map_item dvbt_8;
104 struct tda18271_std_map_item qam_6;
105 struct tda18271_std_map_item qam_8;
106};
107
72enum tda18271_mode { 108enum tda18271_mode {
73 TDA18271_ANALOG, 109 TDA18271_ANALOG,
74 TDA18271_DIGITAL, 110 TDA18271_DIGITAL,
75}; 111};
76 112
113struct tda18271_map_layout;
114
115enum tda18271_ver {
116 TDA18271HDC1,
117 TDA18271HDC2,
118};
119
77struct tda18271_priv { 120struct tda18271_priv {
78 u8 i2c_addr; 121 u8 i2c_addr;
79 struct i2c_adapter *i2c_adap; 122 struct i2c_adapter *i2c_adap;
@@ -81,6 +124,16 @@ struct tda18271_priv {
81 124
82 enum tda18271_mode mode; 125 enum tda18271_mode mode;
83 enum tda18271_i2c_gate gate; 126 enum tda18271_i2c_gate gate;
127 enum tda18271_ver id;
128
129 unsigned int cal_initialized:1;
130
131 struct tda18271_std_map *std;
132 struct tda18271_map_layout *maps;
133 struct tda18271_rf_tracking_filter_cal rf_cal_state[8];
134
135 int (*tune) (struct dvb_frontend *fe,
136 u32 ifc, u32 freq, u32 bw, u8 std);
84 137
85 u32 frequency; 138 u32 frequency;
86 u32 bandwidth; 139 u32 bandwidth;
@@ -93,6 +146,7 @@ extern int tda18271_debug;
93#define DBG_INFO 1 146#define DBG_INFO 1
94#define DBG_MAP 2 147#define DBG_MAP 2
95#define DBG_REG 4 148#define DBG_REG 4
149#define DBG_ADV 8
96 150
97#define tda_printk(kern, fmt, arg...) \ 151#define tda_printk(kern, fmt, arg...) \
98 printk(kern "%s: " fmt, __FUNCTION__, ##arg) 152 printk(kern "%s: " fmt, __FUNCTION__, ##arg)
@@ -117,17 +171,31 @@ enum tda18271_map_type {
117 /* tda18271_map */ 171 /* tda18271_map */
118 RF_CAL, 172 RF_CAL,
119 RF_CAL_KMCO, 173 RF_CAL_KMCO,
174 RF_CAL_DC_OVER_DT,
120 BP_FILTER, 175 BP_FILTER,
121 RF_BAND, 176 RF_BAND,
122 GAIN_TAPER, 177 GAIN_TAPER,
123 IR_MEASURE, 178 IR_MEASURE,
124}; 179};
125 180
126extern int tda18271_lookup_pll_map(enum tda18271_map_type map_type, 181extern int tda18271_lookup_pll_map(struct dvb_frontend *fe,
182 enum tda18271_map_type map_type,
127 u32 *freq, u8 *post_div, u8 *div); 183 u32 *freq, u8 *post_div, u8 *div);
128extern int tda18271_lookup_map(enum tda18271_map_type map_type, 184extern int tda18271_lookup_map(struct dvb_frontend *fe,
185 enum tda18271_map_type map_type,
129 u32 *freq, u8 *val); 186 u32 *freq, u8 *val);
130 187
188extern int tda18271_lookup_thermometer(struct dvb_frontend *fe);
189
190extern int tda18271_lookup_rf_band(struct dvb_frontend *fe,
191 u32 *freq, u8 *rf_band);
192
193extern int tda18271_lookup_cid_target(struct dvb_frontend *fe,
194 u32 *freq, u8 *cid_target,
195 u16 *count_limit);
196
197extern int tda18271_assign_map_layout(struct dvb_frontend *fe);
198
131#endif /* __TDA18271_PRIV_H__ */ 199#endif /* __TDA18271_PRIV_H__ */
132 200
133/* 201/*