Lines Matching refs:fe

37 static int ts2020_release(struct dvb_frontend *fe)
39 kfree(fe->tuner_priv);
40 fe->tuner_priv = NULL;
44 static int ts2020_writereg(struct dvb_frontend *fe, int reg, int data)
46 struct ts2020_priv *priv = fe->tuner_priv;
58 if (fe->ops.i2c_gate_ctrl)
59 fe->ops.i2c_gate_ctrl(fe, 1);
69 if (fe->ops.i2c_gate_ctrl)
70 fe->ops.i2c_gate_ctrl(fe, 0);
75 static int ts2020_readreg(struct dvb_frontend *fe, u8 reg)
77 struct ts2020_priv *priv = fe->tuner_priv;
95 if (fe->ops.i2c_gate_ctrl)
96 fe->ops.i2c_gate_ctrl(fe, 1);
106 if (fe->ops.i2c_gate_ctrl)
107 fe->ops.i2c_gate_ctrl(fe, 0);
112 static int ts2020_sleep(struct dvb_frontend *fe)
114 struct ts2020_priv *priv = fe->tuner_priv;
124 if (fe->ops.i2c_gate_ctrl)
125 fe->ops.i2c_gate_ctrl(fe, 1);
131 if (fe->ops.i2c_gate_ctrl)
132 fe->ops.i2c_gate_ctrl(fe, 0);
137 static int ts2020_init(struct dvb_frontend *fe)
139 struct ts2020_priv *priv = fe->tuner_priv;
141 ts2020_writereg(fe, 0x42, 0x73);
142 ts2020_writereg(fe, 0x05, priv->clk_out_div);
143 ts2020_writereg(fe, 0x20, 0x27);
144 ts2020_writereg(fe, 0x07, 0x02);
145 ts2020_writereg(fe, 0x11, 0xff);
146 ts2020_writereg(fe, 0x60, 0xf9);
147 ts2020_writereg(fe, 0x08, 0x01);
148 ts2020_writereg(fe, 0x00, 0x41);
153 static int ts2020_tuner_gate_ctrl(struct dvb_frontend *fe, u8 offset)
156 ret = ts2020_writereg(fe, 0x51, 0x1f - offset);
157 ret |= ts2020_writereg(fe, 0x51, 0x1f);
158 ret |= ts2020_writereg(fe, 0x50, offset);
159 ret |= ts2020_writereg(fe, 0x50, 0x00);
164 static int ts2020_set_tuner_rf(struct dvb_frontend *fe)
168 reg = ts2020_readreg(fe, 0x3d);
177 ts2020_writereg(fe, 0x60, reg);
178 reg = ts2020_tuner_gate_ctrl(fe, 0x08);
183 static int ts2020_set_params(struct dvb_frontend *fe)
185 struct dtv_frontend_properties *c = &fe->dtv_property_cache;
186 struct ts2020_priv *priv = fe->tuner_priv;
206 ret = ts2020_writereg(fe, 0x10, 0x80 | lo);
209 ret |= ts2020_writereg(fe, 0x01, (ndiv >> 8) & 0xf);
210 ret |= ts2020_writereg(fe, 0x02, ndiv & 0xff);
212 ret |= ts2020_writereg(fe, 0x03, 0x06);
213 ret |= ts2020_tuner_gate_ctrl(fe, 0x10);
218 ret = ts2020_writereg(fe, 0x10, lo);
220 ret |= ts2020_tuner_gate_ctrl(fe, 0x08);
223 ret |= ts2020_set_tuner_rf(fe);
226 ret |= ts2020_writereg(fe, 0x04, gdiv28 & 0xff);
227 ret |= ts2020_tuner_gate_ctrl(fe, 0x04);
231 value = ts2020_readreg(fe, 0x26);
267 ret = ts2020_writereg(fe, 0x04, lpf_mxdiv);
268 ret |= ts2020_writereg(fe, 0x06, nlpf);
270 ret |= ts2020_tuner_gate_ctrl(fe, 0x04);
272 ret |= ts2020_tuner_gate_ctrl(fe, 0x01);
284 static int ts2020_get_frequency(struct dvb_frontend *fe, u32 *frequency)
286 struct ts2020_priv *priv = fe->tuner_priv;
292 static int ts2020_read_signal_strength(struct dvb_frontend *fe,
298 rfgain = ts2020_readreg(fe, 0x3d) & 0x1f;
299 bbgain = ts2020_readreg(fe, 0x21) & 0x1f;
330 struct dvb_frontend *ts2020_attach(struct dvb_frontend *fe,
345 fe->tuner_priv = priv;
351 if ((0x03 & ts2020_readreg(fe, 0x00)) == 0x00) {
352 ts2020_writereg(fe, 0x00, 0x01);
356 ts2020_writereg(fe, 0x00, 0x03);
360 buf = ts2020_readreg(fe, 0x00);
369 memcpy(&fe->ops.tuner_ops, &ts2020_tuner_ops,
372 return fe;