Lines Matching refs:dev
23 static int e4000_init(struct e4000_dev *dev) in e4000_init() argument
25 struct i2c_client *client = dev->client; in e4000_init()
28 dev_dbg(&client->dev, "\n"); in e4000_init()
31 ret = regmap_write(dev->regmap, 0x00, 0x01); in e4000_init()
36 ret = regmap_write(dev->regmap, 0x06, 0x00); in e4000_init()
40 ret = regmap_write(dev->regmap, 0x7a, 0x96); in e4000_init()
45 ret = regmap_bulk_write(dev->regmap, 0x7e, "\x01\xfe", 2); in e4000_init()
49 ret = regmap_write(dev->regmap, 0x82, 0x00); in e4000_init()
53 ret = regmap_write(dev->regmap, 0x24, 0x05); in e4000_init()
57 ret = regmap_bulk_write(dev->regmap, 0x87, "\x20\x01", 2); in e4000_init()
61 ret = regmap_bulk_write(dev->regmap, 0x9f, "\x7f\x07", 2); in e4000_init()
66 ret = regmap_write(dev->regmap, 0x2d, 0x1f); in e4000_init()
70 ret = regmap_bulk_write(dev->regmap, 0x70, "\x01\x01", 2); in e4000_init()
75 ret = regmap_write(dev->regmap, 0x1a, 0x17); in e4000_init()
79 ret = regmap_write(dev->regmap, 0x1f, 0x1a); in e4000_init()
83 dev->active = true; in e4000_init()
87 dev_dbg(&client->dev, "failed=%d\n", ret); in e4000_init()
91 static int e4000_sleep(struct e4000_dev *dev) in e4000_sleep() argument
93 struct i2c_client *client = dev->client; in e4000_sleep()
96 dev_dbg(&client->dev, "\n"); in e4000_sleep()
98 dev->active = false; in e4000_sleep()
100 ret = regmap_write(dev->regmap, 0x00, 0x00); in e4000_sleep()
106 dev_dbg(&client->dev, "failed=%d\n", ret); in e4000_sleep()
110 static int e4000_set_params(struct e4000_dev *dev) in e4000_set_params() argument
112 struct i2c_client *client = dev->client; in e4000_set_params()
118 if (!dev->active) { in e4000_set_params()
119 dev_dbg(&client->dev, "tuner is sleeping\n"); in e4000_set_params()
124 ret = regmap_write(dev->regmap, 0x1a, 0x00); in e4000_set_params()
144 if (dev->f_frequency <= e4000_pll_lut[i].freq) in e4000_set_params()
152 #define F_REF dev->clk in e4000_set_params()
154 f_vco = (u64) dev->f_frequency * div_out; in e4000_set_params()
159 dev_dbg(&client->dev, in e4000_set_params()
161 dev->f_frequency, dev->f_bandwidth, f_vco, F_REF, div_n, k, in e4000_set_params()
169 ret = regmap_bulk_write(dev->regmap, 0x09, buf, 5); in e4000_set_params()
175 if (dev->f_frequency <= e400_lna_filter_lut[i].freq) in e4000_set_params()
183 ret = regmap_write(dev->regmap, 0x10, e400_lna_filter_lut[i].val); in e4000_set_params()
189 if (dev->f_bandwidth <= e4000_if_filter_lut[i].freq) in e4000_set_params()
200 ret = regmap_bulk_write(dev->regmap, 0x11, buf, 2); in e4000_set_params()
206 if (dev->f_frequency <= e4000_band_lut[i].freq) in e4000_set_params()
214 ret = regmap_write(dev->regmap, 0x07, e4000_band_lut[i].reg07_val); in e4000_set_params()
218 ret = regmap_write(dev->regmap, 0x78, e4000_band_lut[i].reg78_val); in e4000_set_params()
225 ret = regmap_bulk_write(dev->regmap, 0x15, "\x00\x7e\x24", 3); in e4000_set_params()
227 ret = regmap_bulk_write(dev->regmap, 0x15, "\x00\x7f", 2); in e4000_set_params()
229 ret = regmap_bulk_write(dev->regmap, 0x15, "\x01", 1); in e4000_set_params()
231 ret = regmap_bulk_write(dev->regmap, 0x16, "\x7e", 1); in e4000_set_params()
236 ret = regmap_write(dev->regmap, 0x29, 0x01); in e4000_set_params()
240 ret = regmap_bulk_read(dev->regmap, 0x2a, buf, 3); in e4000_set_params()
251 ret = regmap_bulk_write(dev->regmap, 0x50, q_data, 4); in e4000_set_params()
255 ret = regmap_bulk_write(dev->regmap, 0x60, i_data, 4); in e4000_set_params()
260 ret = regmap_write(dev->regmap, 0x1a, 0x17); in e4000_set_params()
266 dev_dbg(&client->dev, "failed=%d\n", ret); in e4000_set_params()
298 struct e4000_dev *dev = e4000_subdev_to_dev(sd); in e4000_s_power() local
299 struct i2c_client *client = dev->client; in e4000_s_power()
302 dev_dbg(&client->dev, "on=%d\n", on); in e4000_s_power()
305 ret = e4000_init(dev); in e4000_s_power()
307 ret = e4000_sleep(dev); in e4000_s_power()
311 return e4000_set_params(dev); in e4000_s_power()
320 struct e4000_dev *dev = e4000_subdev_to_dev(sd); in e4000_g_tuner() local
321 struct i2c_client *client = dev->client; in e4000_g_tuner()
323 dev_dbg(&client->dev, "index=%d\n", v->index); in e4000_g_tuner()
335 struct e4000_dev *dev = e4000_subdev_to_dev(sd); in e4000_s_tuner() local
336 struct i2c_client *client = dev->client; in e4000_s_tuner()
338 dev_dbg(&client->dev, "index=%d\n", v->index); in e4000_s_tuner()
344 struct e4000_dev *dev = e4000_subdev_to_dev(sd); in e4000_g_frequency() local
345 struct i2c_client *client = dev->client; in e4000_g_frequency()
347 dev_dbg(&client->dev, "tuner=%d\n", f->tuner); in e4000_g_frequency()
348 f->frequency = dev->f_frequency; in e4000_g_frequency()
355 struct e4000_dev *dev = e4000_subdev_to_dev(sd); in e4000_s_frequency() local
356 struct i2c_client *client = dev->client; in e4000_s_frequency()
358 dev_dbg(&client->dev, "tuner=%d type=%d frequency=%u\n", in e4000_s_frequency()
361 dev->f_frequency = clamp_t(unsigned int, f->frequency, in e4000_s_frequency()
363 return e4000_set_params(dev); in e4000_s_frequency()
369 struct e4000_dev *dev = e4000_subdev_to_dev(sd); in e4000_enum_freq_bands() local
370 struct i2c_client *client = dev->client; in e4000_enum_freq_bands()
372 dev_dbg(&client->dev, "tuner=%d type=%d index=%d\n", in e4000_enum_freq_bands()
399 struct e4000_dev *dev = fe->tuner_priv; in e4000_set_lna_gain() local
400 struct i2c_client *client = dev->client; in e4000_set_lna_gain()
404 dev_dbg(&client->dev, "lna auto=%d->%d val=%d->%d\n", in e4000_set_lna_gain()
405 dev->lna_gain_auto->cur.val, dev->lna_gain_auto->val, in e4000_set_lna_gain()
406 dev->lna_gain->cur.val, dev->lna_gain->val); in e4000_set_lna_gain()
408 if (dev->lna_gain_auto->val && dev->if_gain_auto->cur.val) in e4000_set_lna_gain()
410 else if (dev->lna_gain_auto->val) in e4000_set_lna_gain()
412 else if (dev->if_gain_auto->cur.val) in e4000_set_lna_gain()
417 ret = regmap_write(dev->regmap, 0x1a, u8tmp); in e4000_set_lna_gain()
421 if (dev->lna_gain_auto->val == false) { in e4000_set_lna_gain()
422 ret = regmap_write(dev->regmap, 0x14, dev->lna_gain->val); in e4000_set_lna_gain()
429 dev_dbg(&client->dev, "failed=%d\n", ret); in e4000_set_lna_gain()
435 struct e4000_dev *dev = fe->tuner_priv; in e4000_set_mixer_gain() local
436 struct i2c_client *client = dev->client; in e4000_set_mixer_gain()
440 dev_dbg(&client->dev, "mixer auto=%d->%d val=%d->%d\n", in e4000_set_mixer_gain()
441 dev->mixer_gain_auto->cur.val, dev->mixer_gain_auto->val, in e4000_set_mixer_gain()
442 dev->mixer_gain->cur.val, dev->mixer_gain->val); in e4000_set_mixer_gain()
444 if (dev->mixer_gain_auto->val) in e4000_set_mixer_gain()
449 ret = regmap_write(dev->regmap, 0x20, u8tmp); in e4000_set_mixer_gain()
453 if (dev->mixer_gain_auto->val == false) { in e4000_set_mixer_gain()
454 ret = regmap_write(dev->regmap, 0x15, dev->mixer_gain->val); in e4000_set_mixer_gain()
461 dev_dbg(&client->dev, "failed=%d\n", ret); in e4000_set_mixer_gain()
467 struct e4000_dev *dev = fe->tuner_priv; in e4000_set_if_gain() local
468 struct i2c_client *client = dev->client; in e4000_set_if_gain()
473 dev_dbg(&client->dev, "if auto=%d->%d val=%d->%d\n", in e4000_set_if_gain()
474 dev->if_gain_auto->cur.val, dev->if_gain_auto->val, in e4000_set_if_gain()
475 dev->if_gain->cur.val, dev->if_gain->val); in e4000_set_if_gain()
477 if (dev->if_gain_auto->val && dev->lna_gain_auto->cur.val) in e4000_set_if_gain()
479 else if (dev->lna_gain_auto->cur.val) in e4000_set_if_gain()
481 else if (dev->if_gain_auto->val) in e4000_set_if_gain()
486 ret = regmap_write(dev->regmap, 0x1a, u8tmp); in e4000_set_if_gain()
490 if (dev->if_gain_auto->val == false) { in e4000_set_if_gain()
491 buf[0] = e4000_if_gain_lut[dev->if_gain->val].reg16_val; in e4000_set_if_gain()
492 buf[1] = e4000_if_gain_lut[dev->if_gain->val].reg17_val; in e4000_set_if_gain()
493 ret = regmap_bulk_write(dev->regmap, 0x16, buf, 2); in e4000_set_if_gain()
500 dev_dbg(&client->dev, "failed=%d\n", ret); in e4000_set_if_gain()
506 struct e4000_dev *dev = fe->tuner_priv; in e4000_pll_lock() local
507 struct i2c_client *client = dev->client; in e4000_pll_lock()
511 ret = regmap_read(dev->regmap, 0x07, &uitmp); in e4000_pll_lock()
515 dev->pll_lock->val = (uitmp & 0x01); in e4000_pll_lock()
519 dev_dbg(&client->dev, "failed=%d\n", ret); in e4000_pll_lock()
525 struct e4000_dev *dev = container_of(ctrl->handler, struct e4000_dev, hdl); in e4000_g_volatile_ctrl() local
526 struct i2c_client *client = dev->client; in e4000_g_volatile_ctrl()
529 if (!dev->active) in e4000_g_volatile_ctrl()
534 ret = e4000_pll_lock(dev->fe); in e4000_g_volatile_ctrl()
537 dev_dbg(&client->dev, "unknown ctrl: id=%d name=%s\n", in e4000_g_volatile_ctrl()
547 struct e4000_dev *dev = container_of(ctrl->handler, struct e4000_dev, hdl); in e4000_s_ctrl() local
548 struct i2c_client *client = dev->client; in e4000_s_ctrl()
551 if (!dev->active) in e4000_s_ctrl()
562 dev->f_bandwidth = dev->bandwidth->val; in e4000_s_ctrl()
563 ret = e4000_set_params(dev); in e4000_s_ctrl()
567 ret = e4000_set_lna_gain(dev->fe); in e4000_s_ctrl()
571 ret = e4000_set_mixer_gain(dev->fe); in e4000_s_ctrl()
575 ret = e4000_set_if_gain(dev->fe); in e4000_s_ctrl()
578 dev_dbg(&client->dev, "unknown ctrl: id=%d name=%s\n", in e4000_s_ctrl()
597 struct e4000_dev *dev = fe->tuner_priv; in e4000_dvb_set_params() local
600 dev->f_frequency = c->frequency; in e4000_dvb_set_params()
601 dev->f_bandwidth = c->bandwidth_hz; in e4000_dvb_set_params()
602 return e4000_set_params(dev); in e4000_dvb_set_params()
638 struct e4000_dev *dev; in e4000_probe() local
639 struct e4000_config *cfg = client->dev.platform_data; in e4000_probe()
648 dev = kzalloc(sizeof(*dev), GFP_KERNEL); in e4000_probe()
649 if (!dev) { in e4000_probe()
654 dev->clk = cfg->clock; in e4000_probe()
655 dev->client = client; in e4000_probe()
656 dev->fe = cfg->fe; in e4000_probe()
657 dev->regmap = devm_regmap_init_i2c(client, ®map_config); in e4000_probe()
658 if (IS_ERR(dev->regmap)) { in e4000_probe()
659 ret = PTR_ERR(dev->regmap); in e4000_probe()
664 ret = regmap_read(dev->regmap, 0x02, &uitmp); in e4000_probe()
668 dev_dbg(&client->dev, "chip id=%02x\n", uitmp); in e4000_probe()
676 ret = regmap_write(dev->regmap, 0x00, 0x00); in e4000_probe()
682 v4l2_ctrl_handler_init(&dev->hdl, 9); in e4000_probe()
683 dev->bandwidth_auto = v4l2_ctrl_new_std(&dev->hdl, &e4000_ctrl_ops, in e4000_probe()
685 dev->bandwidth = v4l2_ctrl_new_std(&dev->hdl, &e4000_ctrl_ops, in e4000_probe()
687 v4l2_ctrl_auto_cluster(2, &dev->bandwidth_auto, 0, false); in e4000_probe()
688 dev->lna_gain_auto = v4l2_ctrl_new_std(&dev->hdl, &e4000_ctrl_ops, in e4000_probe()
690 dev->lna_gain = v4l2_ctrl_new_std(&dev->hdl, &e4000_ctrl_ops, in e4000_probe()
692 v4l2_ctrl_auto_cluster(2, &dev->lna_gain_auto, 0, false); in e4000_probe()
693 dev->mixer_gain_auto = v4l2_ctrl_new_std(&dev->hdl, &e4000_ctrl_ops, in e4000_probe()
695 dev->mixer_gain = v4l2_ctrl_new_std(&dev->hdl, &e4000_ctrl_ops, in e4000_probe()
697 v4l2_ctrl_auto_cluster(2, &dev->mixer_gain_auto, 0, false); in e4000_probe()
698 dev->if_gain_auto = v4l2_ctrl_new_std(&dev->hdl, &e4000_ctrl_ops, in e4000_probe()
700 dev->if_gain = v4l2_ctrl_new_std(&dev->hdl, &e4000_ctrl_ops, in e4000_probe()
702 v4l2_ctrl_auto_cluster(2, &dev->if_gain_auto, 0, false); in e4000_probe()
703 dev->pll_lock = v4l2_ctrl_new_std(&dev->hdl, &e4000_ctrl_ops, in e4000_probe()
705 if (dev->hdl.error) { in e4000_probe()
706 ret = dev->hdl.error; in e4000_probe()
707 dev_err(&client->dev, "Could not initialize controls\n"); in e4000_probe()
708 v4l2_ctrl_handler_free(&dev->hdl); in e4000_probe()
712 dev->sd.ctrl_handler = &dev->hdl; in e4000_probe()
713 dev->f_frequency = bands[0].rangelow; in e4000_probe()
714 dev->f_bandwidth = dev->bandwidth->val; in e4000_probe()
715 v4l2_i2c_subdev_init(&dev->sd, client, &e4000_subdev_ops); in e4000_probe()
717 fe->tuner_priv = dev; in e4000_probe()
720 v4l2_set_subdevdata(&dev->sd, client); in e4000_probe()
721 i2c_set_clientdata(client, &dev->sd); in e4000_probe()
723 dev_info(&client->dev, "Elonics E4000 successfully identified\n"); in e4000_probe()
726 kfree(dev); in e4000_probe()
728 dev_dbg(&client->dev, "failed=%d\n", ret); in e4000_probe()
735 struct e4000_dev *dev = container_of(sd, struct e4000_dev, sd); in e4000_remove() local
737 dev_dbg(&client->dev, "\n"); in e4000_remove()
740 v4l2_ctrl_handler_free(&dev->hdl); in e4000_remove()
742 kfree(dev); in e4000_remove()