Lines Matching refs:dev

32 static int af9033_wr_reg_val_tab(struct af9033_dev *dev,  in af9033_wr_reg_val_tab()  argument
35 struct i2c_client *client = dev->client; in af9033_wr_reg_val_tab()
40 dev_dbg(&client->dev, "tab_len=%d\n", tab_len); in af9033_wr_reg_val_tab()
43 dev_warn(&client->dev, "tab len %d is too big\n", tab_len); in af9033_wr_reg_val_tab()
51 ret = regmap_bulk_write(dev->regmap, tab[i].reg - j, in af9033_wr_reg_val_tab()
64 dev_dbg(&client->dev, "failed=%d\n", ret); in af9033_wr_reg_val_tab()
70 struct af9033_dev *dev = fe->demodulator_priv; in af9033_init() local
71 struct i2c_client *client = dev->client; in af9033_init()
80 { 0x00f641, dev->cfg.tuner, 0xff }, in af9033_init()
99 { 0x80f985, dev->ts_mode_serial, 0x01 }, in af9033_init()
100 { 0x80f986, dev->ts_mode_parallel, 0x01 }, in af9033_init()
103 { 0x800045, dev->cfg.adc_multiplier, 0xff }, in af9033_init()
106 dev_dbg(&client->dev, "\n"); in af9033_init()
109 utmp = div_u64((u64)dev->cfg.clock * 0x80000, 1000000); in af9033_init()
114 ret = regmap_bulk_write(dev->regmap, 0x800025, buf, 4); in af9033_init()
118 dev_dbg(&client->dev, "clk=%u clk_cw=%08x\n", dev->cfg.clock, utmp); in af9033_init()
122 if (clock_adc_lut[i].clock == dev->cfg.clock) in af9033_init()
126 dev_err(&client->dev, "Couldn't find ADC config for clock %d\n", in af9033_init()
127 dev->cfg.clock); in af9033_init()
136 ret = regmap_bulk_write(dev->regmap, 0x80f1cd, buf, 3); in af9033_init()
140 dev_dbg(&client->dev, "adc=%u adc_cw=%06x\n", in af9033_init()
145 ret = regmap_update_bits(dev->regmap, tab[i].reg, tab[i].mask, in af9033_init()
152 if (dev->cfg.dyn0_clk) { in af9033_init()
153 ret = regmap_write(dev->regmap, 0x80fba8, 0x00); in af9033_init()
159 if (dev->cfg.ts_mode == AF9033_TS_MODE_USB) { in af9033_init()
160 ret = regmap_update_bits(dev->regmap, 0x80f9a5, 0x01, 0x00); in af9033_init()
163 ret = regmap_update_bits(dev->regmap, 0x80f9b5, 0x01, 0x01); in af9033_init()
167 ret = regmap_update_bits(dev->regmap, 0x80f990, 0x01, 0x00); in af9033_init()
170 ret = regmap_update_bits(dev->regmap, 0x80f9b5, 0x01, 0x00); in af9033_init()
176 dev_dbg(&client->dev, "load ofsm settings\n"); in af9033_init()
177 switch (dev->cfg.tuner) { in af9033_init()
196 ret = af9033_wr_reg_val_tab(dev, init, len); in af9033_init()
201 dev_dbg(&client->dev, "load tuner specific settings\n"); in af9033_init()
202 switch (dev->cfg.tuner) { in af9033_init()
252 dev_dbg(&client->dev, "unsupported tuner ID=%d\n", in af9033_init()
253 dev->cfg.tuner); in af9033_init()
258 ret = af9033_wr_reg_val_tab(dev, init, len); in af9033_init()
262 if (dev->cfg.ts_mode == AF9033_TS_MODE_SERIAL) { in af9033_init()
263 ret = regmap_update_bits(dev->regmap, 0x00d91c, 0x01, 0x01); in af9033_init()
266 ret = regmap_update_bits(dev->regmap, 0x00d917, 0x01, 0x00); in af9033_init()
269 ret = regmap_update_bits(dev->regmap, 0x00d916, 0x01, 0x00); in af9033_init()
274 switch (dev->cfg.tuner) { in af9033_init()
278 ret = regmap_write(dev->regmap, 0x800000, 0x01); in af9033_init()
283 dev->bandwidth_hz = 0; /* Force to program all parameters */ in af9033_init()
300 dev_dbg(&client->dev, "failed=%d\n", ret); in af9033_init()
306 struct af9033_dev *dev = fe->demodulator_priv; in af9033_sleep() local
307 struct i2c_client *client = dev->client; in af9033_sleep()
311 dev_dbg(&client->dev, "\n"); in af9033_sleep()
313 ret = regmap_write(dev->regmap, 0x80004c, 0x01); in af9033_sleep()
316 ret = regmap_write(dev->regmap, 0x800000, 0x00); in af9033_sleep()
319 ret = regmap_read_poll_timeout(dev->regmap, 0x80004c, utmp, utmp == 0, in af9033_sleep()
323 ret = regmap_update_bits(dev->regmap, 0x80fb24, 0x08, 0x08); in af9033_sleep()
328 if (dev->cfg.ts_mode == AF9033_TS_MODE_SERIAL) { in af9033_sleep()
330 ret = regmap_update_bits(dev->regmap, 0x00d917, 0x01, 0x00); in af9033_sleep()
333 ret = regmap_update_bits(dev->regmap, 0x00d916, 0x01, 0x01); in af9033_sleep()
340 dev_dbg(&client->dev, "failed=%d\n", ret); in af9033_sleep()
357 struct af9033_dev *dev = fe->demodulator_priv; in af9033_set_frontend() local
358 struct i2c_client *client = dev->client; in af9033_set_frontend()
365 dev_dbg(&client->dev, "frequency=%u bandwidth_hz=%u\n", in af9033_set_frontend()
380 dev_dbg(&client->dev, "invalid bandwidth_hz\n"); in af9033_set_frontend()
390 if (c->bandwidth_hz != dev->bandwidth_hz) { in af9033_set_frontend()
392 if (coeff_lut[i].clock == dev->cfg.clock && in af9033_set_frontend()
398 dev_err(&client->dev, in af9033_set_frontend()
400 dev->cfg.clock); in af9033_set_frontend()
405 ret = regmap_bulk_write(dev->regmap, 0x800001, coeff_lut[i].val, in af9033_set_frontend()
412 if (c->bandwidth_hz != dev->bandwidth_hz) { in af9033_set_frontend()
414 if (clock_adc_lut[i].clock == dev->cfg.clock) in af9033_set_frontend()
418 dev_err(&client->dev, in af9033_set_frontend()
420 dev->cfg.clock); in af9033_set_frontend()
426 if (dev->cfg.adc_multiplier == AF9033_ADC_MULTIPLIER_2X) in af9033_set_frontend()
438 if (!dev->cfg.spec_inv && if_frequency) in af9033_set_frontend()
444 ret = regmap_bulk_write(dev->regmap, 0x800029, buf, 3); in af9033_set_frontend()
448 dev_dbg(&client->dev, "if_frequency_cw=%06x\n", utmp); in af9033_set_frontend()
450 dev->bandwidth_hz = c->bandwidth_hz; in af9033_set_frontend()
453 ret = regmap_update_bits(dev->regmap, 0x80f904, 0x03, in af9033_set_frontend()
457 ret = regmap_write(dev->regmap, 0x800040, 0x00); in af9033_set_frontend()
460 ret = regmap_write(dev->regmap, 0x800047, 0x00); in af9033_set_frontend()
463 ret = regmap_update_bits(dev->regmap, 0x80f999, 0x01, 0x00); in af9033_set_frontend()
472 ret = regmap_write(dev->regmap, 0x80004b, tmp); in af9033_set_frontend()
476 ret = regmap_write(dev->regmap, 0x800000, 0x00); in af9033_set_frontend()
482 dev_dbg(&client->dev, "failed=%d\n", ret); in af9033_set_frontend()
489 struct af9033_dev *dev = fe->demodulator_priv; in af9033_get_frontend() local
490 struct i2c_client *client = dev->client; in af9033_get_frontend()
494 dev_dbg(&client->dev, "\n"); in af9033_get_frontend()
497 ret = regmap_bulk_read(dev->regmap, 0x80f900, buf, 8); in af9033_get_frontend()
608 dev_dbg(&client->dev, "failed=%d\n", ret); in af9033_get_frontend()
614 struct af9033_dev *dev = fe->demodulator_priv; in af9033_read_status() local
615 struct i2c_client *client = dev->client; in af9033_read_status()
621 dev_dbg(&client->dev, "\n"); in af9033_read_status()
626 ret = regmap_read(dev->regmap, 0x800047, &utmp); in af9033_read_status()
636 ret = regmap_read(dev->regmap, 0x80f5a9, &utmp); in af9033_read_status()
645 ret = regmap_read(dev->regmap, 0x80f999, &utmp); in af9033_read_status()
655 dev->fe_status = *status; in af9033_read_status()
658 if (dev->fe_status & FE_HAS_SIGNAL) { in af9033_read_status()
659 if (dev->is_af9035) { in af9033_read_status()
660 ret = regmap_read(dev->regmap, 0x80004a, &utmp); in af9033_read_status()
665 ret = regmap_read(dev->regmap, 0x8000f7, &utmp); in af9033_read_status()
680 if (dev->fe_status & FE_HAS_VITERBI) { in af9033_read_status()
682 ret = regmap_bulk_read(dev->regmap, 0x80002c, buf, 3); in af9033_read_status()
689 ret = regmap_read(dev->regmap, 0x80f78b, &utmp); in af9033_read_status()
697 ret = regmap_read(dev->regmap, 0x80f900, &utmp); in af9033_read_status()
720 ret = regmap_read(dev->regmap, 0x80f903, &utmp); in af9033_read_status()
763 dev_dbg(&client->dev, "cnr=%u\n", utmp1); in af9033_read_status()
772 if (dev->fe_status & FE_HAS_LOCK) { in af9033_read_status()
783 ret = regmap_bulk_read(dev->regmap, 0x800032, buf, 7); in af9033_read_status()
791 dev->error_block_count += abort_packet_count; in af9033_read_status()
792 dev->total_block_count += rsd_packet_count; in af9033_read_status()
793 dev->post_bit_error += rsd_bit_err_count; in af9033_read_status()
794 dev->post_bit_count += rsd_packet_count * 204 * 8; in af9033_read_status()
798 c->block_count.stat[0].uvalue = dev->total_block_count; in af9033_read_status()
802 c->block_error.stat[0].uvalue = dev->error_block_count; in af9033_read_status()
806 c->post_bit_count.stat[0].uvalue = dev->post_bit_count; in af9033_read_status()
810 c->post_bit_error.stat[0].uvalue = dev->post_bit_error; in af9033_read_status()
815 dev_dbg(&client->dev, "failed=%d\n", ret); in af9033_read_status()
821 struct af9033_dev *dev = fe->demodulator_priv; in af9033_read_snr() local
822 struct i2c_client *client = dev->client; in af9033_read_snr()
823 struct dtv_frontend_properties *c = &dev->fe.dtv_property_cache; in af9033_read_snr()
827 dev_dbg(&client->dev, "\n"); in af9033_read_snr()
832 if (dev->is_af9035) { in af9033_read_snr()
840 ret = regmap_read(dev->regmap, 0x80f903, &utmp); in af9033_read_snr()
866 dev_dbg(&client->dev, "failed=%d\n", ret); in af9033_read_snr()
872 struct af9033_dev *dev = fe->demodulator_priv; in af9033_read_signal_strength() local
873 struct i2c_client *client = dev->client; in af9033_read_signal_strength()
874 struct dtv_frontend_properties *c = &dev->fe.dtv_property_cache; in af9033_read_signal_strength()
879 dev_dbg(&client->dev, "\n"); in af9033_read_signal_strength()
881 if (dev->is_af9035) { in af9033_read_signal_strength()
883 ret = regmap_read(dev->regmap, 0x800048, &utmp); in af9033_read_signal_strength()
890 ret = regmap_read(dev->regmap, 0x8000f7, &utmp); in af9033_read_signal_strength()
894 ret = regmap_bulk_read(dev->regmap, 0x80f900, buf, 7); in af9033_read_signal_strength()
923 dev_dbg(&client->dev, "failed=%d\n", ret); in af9033_read_signal_strength()
929 struct af9033_dev *dev = fe->demodulator_priv; in af9033_read_ber() local
931 *ber = (dev->post_bit_error - dev->post_bit_error_prev); in af9033_read_ber()
932 dev->post_bit_error_prev = dev->post_bit_error; in af9033_read_ber()
939 struct af9033_dev *dev = fe->demodulator_priv; in af9033_read_ucblocks() local
941 *ucblocks = dev->error_block_count; in af9033_read_ucblocks()
948 struct af9033_dev *dev = fe->demodulator_priv; in af9033_i2c_gate_ctrl() local
949 struct i2c_client *client = dev->client; in af9033_i2c_gate_ctrl()
952 dev_dbg(&client->dev, "enable=%d\n", enable); in af9033_i2c_gate_ctrl()
954 ret = regmap_update_bits(dev->regmap, 0x00fa04, 0x01, enable); in af9033_i2c_gate_ctrl()
960 dev_dbg(&client->dev, "failed=%d\n", ret); in af9033_i2c_gate_ctrl()
966 struct af9033_dev *dev = fe->demodulator_priv; in af9033_pid_filter_ctrl() local
967 struct i2c_client *client = dev->client; in af9033_pid_filter_ctrl()
970 dev_dbg(&client->dev, "onoff=%d\n", onoff); in af9033_pid_filter_ctrl()
972 ret = regmap_update_bits(dev->regmap, 0x80f993, 0x01, onoff); in af9033_pid_filter_ctrl()
978 dev_dbg(&client->dev, "failed=%d\n", ret); in af9033_pid_filter_ctrl()
985 struct af9033_dev *dev = fe->demodulator_priv; in af9033_pid_filter() local
986 struct i2c_client *client = dev->client; in af9033_pid_filter()
990 dev_dbg(&client->dev, "index=%d pid=%04x onoff=%d\n", in af9033_pid_filter()
996 ret = regmap_bulk_write(dev->regmap, 0x80f996, wbuf, 2); in af9033_pid_filter()
999 ret = regmap_write(dev->regmap, 0x80f994, onoff); in af9033_pid_filter()
1002 ret = regmap_write(dev->regmap, 0x80f995, index); in af9033_pid_filter()
1008 dev_dbg(&client->dev, "failed=%d\n", ret); in af9033_pid_filter()
1054 struct af9033_config *cfg = client->dev.platform_data; in af9033_probe()
1055 struct af9033_dev *dev; in af9033_probe() local
1065 dev = kzalloc(sizeof(*dev), GFP_KERNEL); in af9033_probe()
1066 if (!dev) { in af9033_probe()
1072 dev->client = client; in af9033_probe()
1073 memcpy(&dev->cfg, cfg, sizeof(dev->cfg)); in af9033_probe()
1074 switch (dev->cfg.ts_mode) { in af9033_probe()
1076 dev->ts_mode_parallel = true; in af9033_probe()
1079 dev->ts_mode_serial = true; in af9033_probe()
1087 if (dev->cfg.clock != 12000000) { in af9033_probe()
1089 dev_err(&client->dev, in af9033_probe()
1091 dev->cfg.clock); in af9033_probe()
1096 dev->regmap = regmap_init_i2c(client, &regmap_config); in af9033_probe()
1097 if (IS_ERR(dev->regmap)) { in af9033_probe()
1098 ret = PTR_ERR(dev->regmap); in af9033_probe()
1103 switch (dev->cfg.tuner) { in af9033_probe()
1110 dev->is_it9135 = true; in af9033_probe()
1114 dev->is_af9035 = true; in af9033_probe()
1119 ret = regmap_bulk_read(dev->regmap, reg, &buf[0], 4); in af9033_probe()
1122 ret = regmap_bulk_read(dev->regmap, 0x804191, &buf[4], 4); in af9033_probe()
1126 dev_info(&client->dev, in af9033_probe()
1133 if (dev->is_af9035) { in af9033_probe()
1134 ret = regmap_write(dev->regmap, 0x80004c, 0x01); in af9033_probe()
1137 ret = regmap_write(dev->regmap, 0x800000, 0x00); in af9033_probe()
1143 memcpy(&dev->fe.ops, &af9033_ops, sizeof(dev->fe.ops)); in af9033_probe()
1144 dev->fe.demodulator_priv = dev; in af9033_probe()
1145 *cfg->fe = &dev->fe; in af9033_probe()
1150 cfg->regmap = dev->regmap; in af9033_probe()
1151 i2c_set_clientdata(client, dev); in af9033_probe()
1153 dev_info(&client->dev, "Afatech AF9033 successfully attached\n"); in af9033_probe()
1157 regmap_exit(dev->regmap); in af9033_probe()
1159 kfree(dev); in af9033_probe()
1161 dev_dbg(&client->dev, "failed=%d\n", ret); in af9033_probe()
1167 struct af9033_dev *dev = i2c_get_clientdata(client); in af9033_remove() local
1169 dev_dbg(&client->dev, "\n"); in af9033_remove()
1171 regmap_exit(dev->regmap); in af9033_remove()
1172 kfree(dev); in af9033_remove()