Lines Matching +full:adc +full:- +full:sleep +full:- +full:mode

1 // SPDX-License-Identifier: GPL-2.0-or-later
24 u64 post_bit_error_prev; /* for old read_ber we return (curr - prev) */
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()
44 return -EINVAL; in af9033_wr_reg_val_tab()
50 if (i == tab_len - 1 || tab[i].reg != tab[i + 1].reg - 1) { 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()
71 struct i2c_client *client = dev->client; in af9033_init()
72 struct dtv_frontend_properties *c = &fe->dtv_property_cache; 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()
120 /* ADC clk control */ 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()
128 ret = -ENODEV; in af9033_init()
132 utmp = div_u64((u64)clock_adc_lut[i].adc * 0x80000, 1000000); 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()
141 clock_adc_lut[i].adc, utmp); 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()
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()
254 ret = -ENODEV; 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()
285 c->strength.len = 1; in af9033_init()
286 c->strength.stat[0].scale = FE_SCALE_NOT_AVAILABLE; in af9033_init()
287 c->cnr.len = 1; in af9033_init()
288 c->cnr.stat[0].scale = FE_SCALE_NOT_AVAILABLE; in af9033_init()
289 c->block_count.len = 1; in af9033_init()
290 c->block_count.stat[0].scale = FE_SCALE_NOT_AVAILABLE; in af9033_init()
291 c->block_error.len = 1; in af9033_init()
292 c->block_error.stat[0].scale = FE_SCALE_NOT_AVAILABLE; in af9033_init()
293 c->post_bit_count.len = 1; in af9033_init()
294 c->post_bit_count.stat[0].scale = FE_SCALE_NOT_AVAILABLE; in af9033_init()
295 c->post_bit_error.len = 1; in af9033_init()
296 c->post_bit_error.stat[0].scale = FE_SCALE_NOT_AVAILABLE; 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()
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()
327 /* Prevent current leak by setting TS interface to parallel mode */ 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()
348 fesettings->min_delay_ms = 2000; in af9033_get_tune_settings()
349 fesettings->step_size = 0; in af9033_get_tune_settings()
350 fesettings->max_drift = 0; in af9033_get_tune_settings()
357 struct af9033_dev *dev = fe->demodulator_priv; in af9033_set_frontend()
358 struct i2c_client *client = dev->client; in af9033_set_frontend()
359 struct dtv_frontend_properties *c = &fe->dtv_property_cache; in af9033_set_frontend()
365 dev_dbg(&client->dev, "frequency=%u bandwidth_hz=%u\n", in af9033_set_frontend()
366 c->frequency, c->bandwidth_hz); in af9033_set_frontend()
369 switch (c->bandwidth_hz) { in af9033_set_frontend()
380 dev_dbg(&client->dev, "invalid bandwidth_hz\n"); in af9033_set_frontend()
381 ret = -EINVAL; in af9033_set_frontend()
386 if (fe->ops.tuner_ops.set_params) in af9033_set_frontend()
387 fe->ops.tuner_ops.set_params(fe); 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()
393 coeff_lut[i].bandwidth_hz == c->bandwidth_hz) { in af9033_set_frontend()
398 dev_err(&client->dev, in af9033_set_frontend()
400 dev->cfg.clock); in af9033_set_frontend()
401 ret = -EINVAL; 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()
419 "Couldn't find ADC clock for clock %u\n", in af9033_set_frontend()
420 dev->cfg.clock); in af9033_set_frontend()
421 ret = -EINVAL; in af9033_set_frontend()
424 adc_freq = clock_adc_lut[i].adc; in af9033_set_frontend()
426 if (dev->cfg.adc_multiplier == AF9033_ADC_MULTIPLIER_2X) in af9033_set_frontend()
430 if (fe->ops.tuner_ops.get_if_frequency) in af9033_set_frontend()
431 fe->ops.tuner_ops.get_if_frequency(fe, &if_frequency); in af9033_set_frontend()
438 if (!dev->cfg.spec_inv && if_frequency) in af9033_set_frontend()
439 utmp = 0x800000 - utmp; 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()
467 if (c->frequency <= 230000000) 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()
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()
503 c->transmission_mode = TRANSMISSION_MODE_2K; in af9033_get_frontend()
506 c->transmission_mode = TRANSMISSION_MODE_8K; in af9033_get_frontend()
512 c->guard_interval = GUARD_INTERVAL_1_32; in af9033_get_frontend()
515 c->guard_interval = GUARD_INTERVAL_1_16; in af9033_get_frontend()
518 c->guard_interval = GUARD_INTERVAL_1_8; in af9033_get_frontend()
521 c->guard_interval = GUARD_INTERVAL_1_4; in af9033_get_frontend()
527 c->hierarchy = HIERARCHY_NONE; in af9033_get_frontend()
530 c->hierarchy = HIERARCHY_1; in af9033_get_frontend()
533 c->hierarchy = HIERARCHY_2; in af9033_get_frontend()
536 c->hierarchy = HIERARCHY_4; in af9033_get_frontend()
542 c->modulation = QPSK; in af9033_get_frontend()
545 c->modulation = QAM_16; in af9033_get_frontend()
548 c->modulation = QAM_64; in af9033_get_frontend()
554 c->bandwidth_hz = 6000000; in af9033_get_frontend()
557 c->bandwidth_hz = 7000000; in af9033_get_frontend()
560 c->bandwidth_hz = 8000000; in af9033_get_frontend()
566 c->code_rate_HP = FEC_1_2; in af9033_get_frontend()
569 c->code_rate_HP = FEC_2_3; in af9033_get_frontend()
572 c->code_rate_HP = FEC_3_4; in af9033_get_frontend()
575 c->code_rate_HP = FEC_5_6; in af9033_get_frontend()
578 c->code_rate_HP = FEC_7_8; in af9033_get_frontend()
581 c->code_rate_HP = FEC_NONE; in af9033_get_frontend()
587 c->code_rate_LP = FEC_1_2; in af9033_get_frontend()
590 c->code_rate_LP = FEC_2_3; in af9033_get_frontend()
593 c->code_rate_LP = FEC_3_4; in af9033_get_frontend()
596 c->code_rate_LP = FEC_5_6; in af9033_get_frontend()
599 c->code_rate_LP = FEC_7_8; in af9033_get_frontend()
602 c->code_rate_LP = FEC_NONE; 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()
615 struct i2c_client *client = dev->client; in af9033_read_status()
616 struct dtv_frontend_properties *c = &fe->dtv_property_cache; 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()
663 tmp = -utmp * 1000; in af9033_read_status()
665 ret = regmap_read(dev->regmap, 0x8000f7, &utmp); in af9033_read_status()
668 tmp = (utmp - 100) * 1000; in af9033_read_status()
671 c->strength.len = 1; in af9033_read_status()
672 c->strength.stat[0].scale = FE_SCALE_DECIBEL; in af9033_read_status()
673 c->strength.stat[0].svalue = tmp; in af9033_read_status()
675 c->strength.len = 1; in af9033_read_status()
676 c->strength.stat[0].scale = FE_SCALE_NOT_AVAILABLE; 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()
696 /* Read current transmission mode */ 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()
728 * CNR[dB] 13 * -log10((1690000 - value) / value) + 2.6 in af9033_read_status()
733 - intlog10(1690000 - utmp1) in af9033_read_status()
738 * QAM-16 in af9033_read_status()
739 * CNR[dB] 6 * log10((value - 370000) / (828000 - value)) + 15.7 in af9033_read_status()
743 utmp1 = ((u64)(intlog10(utmp1 - 370000) in af9033_read_status()
744 - intlog10(828000 - utmp1) in af9033_read_status()
749 * QAM-64 in af9033_read_status()
750 * CNR[dB] 8 * log10((value - 193000) / (425000 - value)) + 23.8 in af9033_read_status()
754 utmp1 = ((u64)(intlog10(utmp1 - 193000) in af9033_read_status()
755 - intlog10(425000 - utmp1) in af9033_read_status()
763 dev_dbg(&client->dev, "cnr=%u\n", utmp1); in af9033_read_status()
765 c->cnr.stat[0].scale = FE_SCALE_DECIBEL; in af9033_read_status()
766 c->cnr.stat[0].svalue = utmp1; in af9033_read_status()
768 c->cnr.stat[0].scale = FE_SCALE_NOT_AVAILABLE; 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()
796 c->block_count.len = 1; in af9033_read_status()
797 c->block_count.stat[0].scale = FE_SCALE_COUNTER; in af9033_read_status()
798 c->block_count.stat[0].uvalue = dev->total_block_count; in af9033_read_status()
800 c->block_error.len = 1; in af9033_read_status()
801 c->block_error.stat[0].scale = FE_SCALE_COUNTER; in af9033_read_status()
802 c->block_error.stat[0].uvalue = dev->error_block_count; in af9033_read_status()
804 c->post_bit_count.len = 1; in af9033_read_status()
805 c->post_bit_count.stat[0].scale = FE_SCALE_COUNTER; in af9033_read_status()
806 c->post_bit_count.stat[0].uvalue = dev->post_bit_count; in af9033_read_status()
808 c->post_bit_error.len = 1; in af9033_read_status()
809 c->post_bit_error.stat[0].scale = FE_SCALE_COUNTER; 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()
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()
830 if (c->cnr.stat[0].scale == FE_SCALE_DECIBEL) { in af9033_read_snr()
831 /* Return 0.1 dB for AF9030 and 0-0xffff for IT9130. */ in af9033_read_snr()
832 if (dev->is_af9035) { in af9033_read_snr()
834 *snr = div_s64(c->cnr.stat[0].svalue, 100); in af9033_read_snr()
837 *snr = div_s64(c->cnr.stat[0].svalue, 1000); in af9033_read_snr()
840 ret = regmap_read(dev->regmap, 0x80f903, &utmp); in af9033_read_snr()
844 /* scale value to 0x0000-0xffff */ in af9033_read_snr()
856 ret = -EINVAL; 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()
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()
882 /* Read signal strength of 0-100 scale */ in af9033_read_signal_strength()
883 ret = regmap_read(dev->regmap, 0x800048, &utmp); in af9033_read_signal_strength()
887 /* Scale value to 0x0000-0xffff */ 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()
898 if (c->frequency <= 300000000) in af9033_read_signal_strength()
903 power_real = (utmp - 100 - gain_offset) - in af9033_read_signal_strength()
906 if (power_real < -15) in af9033_read_signal_strength()
908 else if ((power_real >= -15) && (power_real < 0)) in af9033_read_signal_strength()
913 tmp = (2 * (power_real - 20)) / 3 + 90; in af9033_read_signal_strength()
917 /* Scale value to 0x0000-0xffff */ 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()
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()
941 *ucblocks = dev->error_block_count; in af9033_read_ucblocks()
948 struct af9033_dev *dev = fe->demodulator_priv; in af9033_i2c_gate_ctrl()
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()
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()
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()
1015 .name = "Afatech AF9033 (DVB-T)",
1037 .sleep = af9033_sleep,
1054 struct af9033_config *cfg = client->dev.platform_data; in af9033_probe()
1067 ret = -ENOMEM; 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()
1082 /* USB mode for AF9035 */ in af9033_probe()
1087 if (dev->cfg.clock != 12000000) { in af9033_probe()
1088 ret = -ENODEV; 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()
1127 "firmware version: LINK %d.%d.%d.%d - OFDM %d.%d.%d.%d\n", in af9033_probe()
1131 /* Sleep as chip seems to be partly active by default */ in af9033_probe()
1132 /* IT9135 did not like to sleep at that early */ 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()
1146 if (cfg->ops) { in af9033_probe()
1147 cfg->ops->pid_filter = af9033_pid_filter; in af9033_probe()
1148 cfg->ops->pid_filter_ctrl = af9033_pid_filter_ctrl; in af9033_probe()
1150 cfg->regmap = dev->regmap; in af9033_probe()
1153 dev_info(&client->dev, "Afatech AF9033 successfully attached\n"); in af9033_probe()
1157 regmap_exit(dev->regmap); in af9033_probe()
1161 dev_dbg(&client->dev, "failed=%d\n", ret); in af9033_probe()
1169 dev_dbg(&client->dev, "\n"); in af9033_remove()
1171 regmap_exit(dev->regmap); in af9033_remove()
1194 MODULE_DESCRIPTION("Afatech AF9033 DVB-T demodulator driver");