static void tda8295_init_if(struct dvb_frontend *fe) { struct tda8290_priv *priv = fe->analog_demod_priv; static unsigned char set_adc_ctl[] = { 0x33, 0x14 }; static unsigned char set_adc_ctl2[] = { 0x34, 0x00 }; static unsigned char set_pll_reg6[] = { 0x3e, 0x63 }; static unsigned char set_pll_reg0[] = { 0x38, 0x23 }; static unsigned char set_pll_reg7[] = { 0x3f, 0x01 }; static unsigned char set_pll_reg10[] = { 0x42, 0x61 }; static unsigned char set_gpio_reg0[] = { 0x44, 0x0b }; tda8295_power(fe, 1); tda8295_set_easy_mode(fe, 0); tda8295_set_video_std(fe); tuner_i2c_xfer_send(&priv->i2c_props, set_adc_ctl, 2); tuner_i2c_xfer_send(&priv->i2c_props, set_adc_ctl2, 2); tuner_i2c_xfer_send(&priv->i2c_props, set_pll_reg6, 2); tuner_i2c_xfer_send(&priv->i2c_props, set_pll_reg0, 2); tuner_i2c_xfer_send(&priv->i2c_props, set_pll_reg7, 2); tuner_i2c_xfer_send(&priv->i2c_props, set_pll_reg10, 2); tuner_i2c_xfer_send(&priv->i2c_props, set_gpio_reg0, 2); tda8295_agc1_out(fe, 0); tda8295_agc2_out(fe, 0); }
static void tda8295_set_params(struct dvb_frontend *fe, struct analog_parameters *params) { struct tda8290_priv *priv = fe->analog_demod_priv; u16 signal = 0; unsigned char blanking_mode[] = { 0x1d, 0x00 }; set_audio(fe, params); tuner_dbg("%s: freq = %d\n", __func__, params->frequency); tda8295_power(fe, 1); tda8295_agc1_out(fe, 1); tuner_i2c_xfer_send_recv(&priv->i2c_props, &blanking_mode[0], 1, &blanking_mode[1], 1); tda8295_set_video_std(fe); blanking_mode[1] = 0x03; tuner_i2c_xfer_send(&priv->i2c_props, blanking_mode, 2); msleep(20); if (fe->ops.analog_ops.i2c_gate_ctrl) fe->ops.analog_ops.i2c_gate_ctrl(fe, 1); if (fe->ops.tuner_ops.set_analog_params) fe->ops.tuner_ops.set_analog_params(fe, params); if (priv->cfg.agcf) priv->cfg.agcf(fe); tda8295_has_signal(fe, &signal); if (signal) tuner_dbg("tda8295 is locked\n"); else tuner_dbg("tda8295 not locked, no signal?\n"); if (fe->ops.analog_ops.i2c_gate_ctrl) fe->ops.analog_ops.i2c_gate_ctrl(fe, 0); }