Lines Matching refs:dev
22 static int m88ds3103_update_bits(struct m88ds3103_dev *dev, in m88ds3103_update_bits() argument
30 ret = regmap_bulk_read(dev->regmap, reg, &tmp, 1); in m88ds3103_update_bits()
39 return regmap_bulk_write(dev->regmap, reg, &val, 1); in m88ds3103_update_bits()
43 static int m88ds3103_wr_reg_val_tab(struct m88ds3103_dev *dev, in m88ds3103_wr_reg_val_tab() argument
46 struct i2c_client *client = dev->client; in m88ds3103_wr_reg_val_tab()
50 dev_dbg(&client->dev, "tab_len=%d\n", tab_len); in m88ds3103_wr_reg_val_tab()
61 !((j + 1) % (dev->cfg->i2c_wr_max - 1))) { in m88ds3103_wr_reg_val_tab()
62 ret = regmap_bulk_write(dev->regmap, tab[i].reg - j, buf, j + 1); in m88ds3103_wr_reg_val_tab()
72 dev_dbg(&client->dev, "failed=%d\n", ret); in m88ds3103_wr_reg_val_tab()
81 struct m88ds3103_dev *dev = fe->demodulator_priv; in m88ds3103_get_agc_pwm() local
85 ret = regmap_read(dev->regmap, 0x3f, &tmp); in m88ds3103_get_agc_pwm()
95 struct m88ds3103_dev *dev = fe->demodulator_priv; in m88ds3103_read_status() local
96 struct i2c_client *client = dev->client; in m88ds3103_read_status()
104 if (!dev->warm) { in m88ds3103_read_status()
111 ret = regmap_read(dev->regmap, 0xd1, &utmp); in m88ds3103_read_status()
121 ret = regmap_read(dev->regmap, 0x0d, &utmp); in m88ds3103_read_status()
131 dev_dbg(&client->dev, "invalid delivery_system\n"); in m88ds3103_read_status()
136 dev->fe_status = *status; in m88ds3103_read_status()
137 dev_dbg(&client->dev, "lock=%02x status=%02x\n", utmp, *status); in m88ds3103_read_status()
140 if (dev->fe_status & FE_HAS_VITERBI) { in m88ds3103_read_status()
152 ret = regmap_read(dev->regmap, 0xff, &utmp); in m88ds3103_read_status()
170 ret = regmap_bulk_read(dev->regmap, 0x8c, buf, 3); in m88ds3103_read_status()
194 dev_dbg(&client->dev, "invalid delivery_system\n"); in m88ds3103_read_status()
210 if (dev->fe_status & FE_HAS_LOCK) { in m88ds3103_read_status()
215 ret = regmap_write(dev->regmap, 0xf9, 0x04); in m88ds3103_read_status()
219 ret = regmap_read(dev->regmap, 0xf8, &utmp); in m88ds3103_read_status()
225 ret = regmap_bulk_read(dev->regmap, 0xf6, buf, 2); in m88ds3103_read_status()
231 dev->post_bit_error += post_bit_error; in m88ds3103_read_status()
232 dev->post_bit_count += post_bit_count; in m88ds3103_read_status()
233 dev->dvbv3_ber = post_bit_error; in m88ds3103_read_status()
237 ret = regmap_write(dev->regmap, 0xf8, utmp); in m88ds3103_read_status()
243 ret = regmap_bulk_read(dev->regmap, 0xd5, buf, 3); in m88ds3103_read_status()
251 ret = regmap_bulk_read(dev->regmap, 0xf7, buf, 2); in m88ds3103_read_status()
257 dev->post_bit_error += post_bit_error; in m88ds3103_read_status()
258 dev->post_bit_count += post_bit_count; in m88ds3103_read_status()
259 dev->dvbv3_ber = post_bit_error; in m88ds3103_read_status()
262 ret = regmap_write(dev->regmap, 0xd1, 0x01); in m88ds3103_read_status()
266 ret = regmap_write(dev->regmap, 0xf9, 0x01); in m88ds3103_read_status()
270 ret = regmap_write(dev->regmap, 0xf9, 0x00); in m88ds3103_read_status()
274 ret = regmap_write(dev->regmap, 0xd1, 0x00); in m88ds3103_read_status()
280 dev_dbg(&client->dev, "invalid delivery_system\n"); in m88ds3103_read_status()
286 c->post_bit_error.stat[0].uvalue = dev->post_bit_error; in m88ds3103_read_status()
288 c->post_bit_count.stat[0].uvalue = dev->post_bit_count; in m88ds3103_read_status()
296 dev_dbg(&client->dev, "failed=%d\n", ret); in m88ds3103_read_status()
302 struct m88ds3103_dev *dev = fe->demodulator_priv; in m88ds3103_set_frontend() local
303 struct i2c_client *client = dev->client; in m88ds3103_set_frontend()
313 dev_dbg(&client->dev, in m88ds3103_set_frontend()
318 if (!dev->warm) { in m88ds3103_set_frontend()
324 ret = regmap_write(dev->regmap, 0x07, 0x80); in m88ds3103_set_frontend()
328 ret = regmap_write(dev->regmap, 0x07, 0x00); in m88ds3103_set_frontend()
333 if (dev->chip_id == M88RS6000_CHIP_ID) { in m88ds3103_set_frontend()
334 ret = regmap_write(dev->regmap, 0x06, 0xe0); in m88ds3103_set_frontend()
360 if (dev->chip_id == M88RS6000_CHIP_ID) { in m88ds3103_set_frontend()
362 dev->mclk_khz = 110250; in m88ds3103_set_frontend()
364 dev->mclk_khz = 96000; in m88ds3103_set_frontend()
372 ret = regmap_write(dev->regmap, 0x06, 0x00); in m88ds3103_set_frontend()
378 dev->mclk_khz = 96000; in m88ds3103_set_frontend()
380 switch (dev->cfg->ts_mode) { in m88ds3103_set_frontend()
383 target_mclk = dev->cfg->ts_clk; in m88ds3103_set_frontend()
399 dev_dbg(&client->dev, "invalid ts_mode\n"); in m88ds3103_set_frontend()
418 ret = m88ds3103_update_bits(dev, 0x22, 0xc0, u8tmp1 << 6); in m88ds3103_set_frontend()
421 ret = m88ds3103_update_bits(dev, 0x24, 0xc0, u8tmp2 << 6); in m88ds3103_set_frontend()
426 ret = regmap_write(dev->regmap, 0xb2, 0x01); in m88ds3103_set_frontend()
430 ret = regmap_write(dev->regmap, 0x00, 0x01); in m88ds3103_set_frontend()
436 if (dev->chip_id == M88RS6000_CHIP_ID) { in m88ds3103_set_frontend()
445 if (dev->chip_id == M88RS6000_CHIP_ID) { in m88ds3103_set_frontend()
454 dev_dbg(&client->dev, "invalid delivery_system\n"); in m88ds3103_set_frontend()
460 if (c->delivery_system != dev->delivery_system) { in m88ds3103_set_frontend()
461 ret = m88ds3103_wr_reg_val_tab(dev, init, len); in m88ds3103_set_frontend()
466 if (dev->chip_id == M88RS6000_CHIP_ID) { in m88ds3103_set_frontend()
469 ret = regmap_write(dev->regmap, 0xc0, 0x04); in m88ds3103_set_frontend()
475 ret = regmap_bulk_write(dev->regmap, 0x8a, buf, 3); in m88ds3103_set_frontend()
479 ret = m88ds3103_update_bits(dev, 0x9d, 0x08, 0x08); in m88ds3103_set_frontend()
482 ret = regmap_write(dev->regmap, 0xf1, 0x01); in m88ds3103_set_frontend()
485 ret = m88ds3103_update_bits(dev, 0x30, 0x80, 0x80); in m88ds3103_set_frontend()
490 switch (dev->cfg->ts_mode) { in m88ds3103_set_frontend()
506 dev_dbg(&client->dev, "invalid ts_mode\n"); in m88ds3103_set_frontend()
511 if (dev->cfg->ts_clk_pol) in m88ds3103_set_frontend()
515 ret = regmap_write(dev->regmap, 0xfd, u8tmp); in m88ds3103_set_frontend()
519 switch (dev->cfg->ts_mode) { in m88ds3103_set_frontend()
522 ret = m88ds3103_update_bits(dev, 0x29, 0x20, u8tmp1); in m88ds3103_set_frontend()
529 if (dev->cfg->ts_clk) { in m88ds3103_set_frontend()
530 divide_ratio = DIV_ROUND_UP(target_mclk, dev->cfg->ts_clk); in m88ds3103_set_frontend()
536 dev_dbg(&client->dev, in m88ds3103_set_frontend()
538 target_mclk, dev->cfg->ts_clk, divide_ratio); in m88ds3103_set_frontend()
547 ret = regmap_bulk_read(dev->regmap, 0xfe, &u8tmp, 1); in m88ds3103_set_frontend()
552 ret = regmap_write(dev->regmap, 0xfe, u8tmp); in m88ds3103_set_frontend()
557 ret = regmap_write(dev->regmap, 0xea, u8tmp); in m88ds3103_set_frontend()
568 ret = regmap_write(dev->regmap, 0xc3, 0x08); in m88ds3103_set_frontend()
572 ret = regmap_write(dev->regmap, 0xc8, u8tmp); in m88ds3103_set_frontend()
576 ret = regmap_write(dev->regmap, 0xc4, 0x08); in m88ds3103_set_frontend()
580 ret = regmap_write(dev->regmap, 0xc7, 0x00); in m88ds3103_set_frontend()
584 u16tmp = DIV_ROUND_CLOSEST((c->symbol_rate / 1000) << 15, dev->mclk_khz / 2); in m88ds3103_set_frontend()
587 ret = regmap_bulk_write(dev->regmap, 0x61, buf, 2); in m88ds3103_set_frontend()
591 ret = m88ds3103_update_bits(dev, 0x4d, 0x02, dev->cfg->spec_inv << 1); in m88ds3103_set_frontend()
595 ret = m88ds3103_update_bits(dev, 0x30, 0x10, dev->cfg->agc_inv << 4); in m88ds3103_set_frontend()
599 ret = regmap_write(dev->regmap, 0x33, dev->cfg->agc); in m88ds3103_set_frontend()
603 dev_dbg(&client->dev, "carrier offset=%d\n", in m88ds3103_set_frontend()
607 s32tmp = DIV_ROUND_CLOSEST(s32tmp, dev->mclk_khz); in m88ds3103_set_frontend()
613 ret = regmap_bulk_write(dev->regmap, 0x5e, buf, 2); in m88ds3103_set_frontend()
617 ret = regmap_write(dev->regmap, 0x00, 0x00); in m88ds3103_set_frontend()
621 ret = regmap_write(dev->regmap, 0xb2, 0x00); in m88ds3103_set_frontend()
625 dev->delivery_system = c->delivery_system; in m88ds3103_set_frontend()
629 dev_dbg(&client->dev, "failed=%d\n", ret); in m88ds3103_set_frontend()
635 struct m88ds3103_dev *dev = fe->demodulator_priv; in m88ds3103_init() local
636 struct i2c_client *client = dev->client; in m88ds3103_init()
643 dev_dbg(&client->dev, "\n"); in m88ds3103_init()
646 dev->warm = false; in m88ds3103_init()
649 ret = m88ds3103_update_bits(dev, 0x08, 0x01, 0x01); in m88ds3103_init()
652 ret = m88ds3103_update_bits(dev, 0x04, 0x01, 0x00); in m88ds3103_init()
655 ret = m88ds3103_update_bits(dev, 0x23, 0x10, 0x00); in m88ds3103_init()
660 ret = regmap_read(dev->regmap, 0xb9, &utmp); in m88ds3103_init()
664 dev_dbg(&client->dev, "firmware=%02x\n", utmp); in m88ds3103_init()
670 ret = regmap_write(dev->regmap, 0x07, 0xe0); in m88ds3103_init()
673 ret = regmap_write(dev->regmap, 0x07, 0x00); in m88ds3103_init()
678 dev_info(&client->dev, "found a '%s' in cold state\n", in m88ds3103_init()
681 if (dev->chip_id == M88RS6000_CHIP_ID) in m88ds3103_init()
686 ret = request_firmware(&fw, fw_file, &client->dev); in m88ds3103_init()
688 dev_err(&client->dev, "firmare file '%s' not found\n", fw_file); in m88ds3103_init()
692 dev_info(&client->dev, "downloading firmware from file '%s'\n", in m88ds3103_init()
695 ret = regmap_write(dev->regmap, 0xb2, 0x01); in m88ds3103_init()
700 remaining -= (dev->cfg->i2c_wr_max - 1)) { in m88ds3103_init()
702 if (len > (dev->cfg->i2c_wr_max - 1)) in m88ds3103_init()
703 len = (dev->cfg->i2c_wr_max - 1); in m88ds3103_init()
705 ret = regmap_bulk_write(dev->regmap, 0xb0, in m88ds3103_init()
708 dev_err(&client->dev, "firmware download failed=%d\n", in m88ds3103_init()
714 ret = regmap_write(dev->regmap, 0xb2, 0x00); in m88ds3103_init()
721 ret = regmap_read(dev->regmap, 0xb9, &utmp); in m88ds3103_init()
726 dev_info(&client->dev, "firmware did not run\n"); in m88ds3103_init()
731 dev_info(&client->dev, "found a '%s' in warm state\n", in m88ds3103_init()
733 dev_info(&client->dev, "firmware version: %X.%X\n", in m88ds3103_init()
738 dev->warm = true; in m88ds3103_init()
752 dev_dbg(&client->dev, "failed=%d\n", ret); in m88ds3103_init()
758 struct m88ds3103_dev *dev = fe->demodulator_priv; in m88ds3103_sleep() local
759 struct i2c_client *client = dev->client; in m88ds3103_sleep()
763 dev_dbg(&client->dev, "\n"); in m88ds3103_sleep()
765 dev->fe_status = 0; in m88ds3103_sleep()
766 dev->delivery_system = SYS_UNDEFINED; in m88ds3103_sleep()
769 if (dev->chip_id == M88RS6000_CHIP_ID) in m88ds3103_sleep()
773 ret = m88ds3103_update_bits(dev, utmp, 0x01, 0x00); in m88ds3103_sleep()
778 ret = m88ds3103_update_bits(dev, 0x08, 0x01, 0x00); in m88ds3103_sleep()
781 ret = m88ds3103_update_bits(dev, 0x04, 0x01, 0x01); in m88ds3103_sleep()
784 ret = m88ds3103_update_bits(dev, 0x23, 0x10, 0x10); in m88ds3103_sleep()
790 dev_dbg(&client->dev, "failed=%d\n", ret); in m88ds3103_sleep()
796 struct m88ds3103_dev *dev = fe->demodulator_priv; in m88ds3103_get_frontend() local
797 struct i2c_client *client = dev->client; in m88ds3103_get_frontend()
802 dev_dbg(&client->dev, "\n"); in m88ds3103_get_frontend()
804 if (!dev->warm || !(dev->fe_status & FE_HAS_LOCK)) { in m88ds3103_get_frontend()
811 ret = regmap_bulk_read(dev->regmap, 0xe0, &buf[0], 1); in m88ds3103_get_frontend()
815 ret = regmap_bulk_read(dev->regmap, 0xe6, &buf[1], 1); in m88ds3103_get_frontend()
845 dev_dbg(&client->dev, "invalid fec_inner\n"); in m88ds3103_get_frontend()
852 ret = regmap_bulk_read(dev->regmap, 0x7e, &buf[0], 1); in m88ds3103_get_frontend()
856 ret = regmap_bulk_read(dev->regmap, 0x89, &buf[1], 1); in m88ds3103_get_frontend()
860 ret = regmap_bulk_read(dev->regmap, 0xf2, &buf[2], 1); in m88ds3103_get_frontend()
893 dev_dbg(&client->dev, "invalid fec_inner\n"); in m88ds3103_get_frontend()
919 dev_dbg(&client->dev, "invalid modulation\n"); in m88ds3103_get_frontend()
942 dev_dbg(&client->dev, "invalid rolloff\n"); in m88ds3103_get_frontend()
946 dev_dbg(&client->dev, "invalid delivery_system\n"); in m88ds3103_get_frontend()
951 ret = regmap_bulk_read(dev->regmap, 0x6d, buf, 2); in m88ds3103_get_frontend()
956 dev->mclk_khz * 1000 / 0x10000; in m88ds3103_get_frontend()
960 dev_dbg(&client->dev, "failed=%d\n", ret); in m88ds3103_get_frontend()
978 struct m88ds3103_dev *dev = fe->demodulator_priv; in m88ds3103_read_ber() local
980 *ber = dev->dvbv3_ber; in m88ds3103_read_ber()
988 struct m88ds3103_dev *dev = fe->demodulator_priv; in m88ds3103_set_tone() local
989 struct i2c_client *client = dev->client; in m88ds3103_set_tone()
993 dev_dbg(&client->dev, "fe_sec_tone_mode=%d\n", fe_sec_tone_mode); in m88ds3103_set_tone()
995 if (!dev->warm) { in m88ds3103_set_tone()
1010 dev_dbg(&client->dev, "invalid fe_sec_tone_mode\n"); in m88ds3103_set_tone()
1015 utmp = tone << 7 | dev->cfg->envelope_mode << 5; in m88ds3103_set_tone()
1016 ret = m88ds3103_update_bits(dev, 0xa2, 0xe0, utmp); in m88ds3103_set_tone()
1021 ret = m88ds3103_update_bits(dev, 0xa1, reg_a1_mask, utmp); in m88ds3103_set_tone()
1027 dev_dbg(&client->dev, "failed=%d\n", ret); in m88ds3103_set_tone()
1034 struct m88ds3103_dev *dev = fe->demodulator_priv; in m88ds3103_set_voltage() local
1035 struct i2c_client *client = dev->client; in m88ds3103_set_voltage()
1040 dev_dbg(&client->dev, "fe_sec_voltage=%d\n", fe_sec_voltage); in m88ds3103_set_voltage()
1042 if (!dev->warm) { in m88ds3103_set_voltage()
1061 dev_dbg(&client->dev, "invalid fe_sec_voltage\n"); in m88ds3103_set_voltage()
1067 voltage_sel ^= dev->cfg->lnb_hv_pol; in m88ds3103_set_voltage()
1068 voltage_dis ^= dev->cfg->lnb_en_pol; in m88ds3103_set_voltage()
1071 ret = m88ds3103_update_bits(dev, 0xa2, 0x03, utmp); in m88ds3103_set_voltage()
1077 dev_dbg(&client->dev, "failed=%d\n", ret); in m88ds3103_set_voltage()
1084 struct m88ds3103_dev *dev = fe->demodulator_priv; in m88ds3103_diseqc_send_master_cmd() local
1085 struct i2c_client *client = dev->client; in m88ds3103_diseqc_send_master_cmd()
1090 dev_dbg(&client->dev, "msg=%*ph\n", in m88ds3103_diseqc_send_master_cmd()
1093 if (!dev->warm) { in m88ds3103_diseqc_send_master_cmd()
1103 utmp = dev->cfg->envelope_mode << 5; in m88ds3103_diseqc_send_master_cmd()
1104 ret = m88ds3103_update_bits(dev, 0xa2, 0xe0, utmp); in m88ds3103_diseqc_send_master_cmd()
1108 ret = regmap_bulk_write(dev->regmap, 0xa3, diseqc_cmd->msg, in m88ds3103_diseqc_send_master_cmd()
1113 ret = regmap_write(dev->regmap, 0xa1, in m88ds3103_diseqc_send_master_cmd()
1126 ret = regmap_read(dev->regmap, 0xa1, &utmp); in m88ds3103_diseqc_send_master_cmd()
1133 dev_dbg(&client->dev, "diseqc tx took %u ms\n", in m88ds3103_diseqc_send_master_cmd()
1137 dev_dbg(&client->dev, "diseqc tx timeout\n"); in m88ds3103_diseqc_send_master_cmd()
1139 ret = m88ds3103_update_bits(dev, 0xa1, 0xc0, 0x40); in m88ds3103_diseqc_send_master_cmd()
1144 ret = m88ds3103_update_bits(dev, 0xa2, 0xc0, 0x80); in m88ds3103_diseqc_send_master_cmd()
1155 dev_dbg(&client->dev, "failed=%d\n", ret); in m88ds3103_diseqc_send_master_cmd()
1162 struct m88ds3103_dev *dev = fe->demodulator_priv; in m88ds3103_diseqc_send_burst() local
1163 struct i2c_client *client = dev->client; in m88ds3103_diseqc_send_burst()
1168 dev_dbg(&client->dev, "fe_sec_mini_cmd=%d\n", fe_sec_mini_cmd); in m88ds3103_diseqc_send_burst()
1170 if (!dev->warm) { in m88ds3103_diseqc_send_burst()
1175 utmp = dev->cfg->envelope_mode << 5; in m88ds3103_diseqc_send_burst()
1176 ret = m88ds3103_update_bits(dev, 0xa2, 0xe0, utmp); in m88ds3103_diseqc_send_burst()
1188 dev_dbg(&client->dev, "invalid fe_sec_mini_cmd\n"); in m88ds3103_diseqc_send_burst()
1193 ret = regmap_write(dev->regmap, 0xa1, burst); in m88ds3103_diseqc_send_burst()
1205 ret = regmap_read(dev->regmap, 0xa1, &utmp); in m88ds3103_diseqc_send_burst()
1212 dev_dbg(&client->dev, "diseqc tx took %u ms\n", in m88ds3103_diseqc_send_burst()
1216 dev_dbg(&client->dev, "diseqc tx timeout\n"); in m88ds3103_diseqc_send_burst()
1218 ret = m88ds3103_update_bits(dev, 0xa1, 0xc0, 0x40); in m88ds3103_diseqc_send_burst()
1223 ret = m88ds3103_update_bits(dev, 0xa2, 0xc0, 0x80); in m88ds3103_diseqc_send_burst()
1234 dev_dbg(&client->dev, "failed=%d\n", ret); in m88ds3103_diseqc_send_burst()
1248 struct m88ds3103_dev *dev = fe->demodulator_priv; in m88ds3103_release() local
1249 struct i2c_client *client = dev->client; in m88ds3103_release()
1256 struct m88ds3103_dev *dev = mux_priv; in m88ds3103_select() local
1257 struct i2c_client *client = dev->client; in m88ds3103_select()
1269 dev_warn(&client->dev, "i2c wr failed=%d\n", ret); in m88ds3103_select()
1309 if (!client || !client->dev.driver) in m88ds3103_attach()
1364 struct m88ds3103_dev *dev = i2c_get_clientdata(client); in m88ds3103_get_dvb_frontend() local
1366 dev_dbg(&client->dev, "\n"); in m88ds3103_get_dvb_frontend()
1368 return &dev->fe; in m88ds3103_get_dvb_frontend()
1373 struct m88ds3103_dev *dev = i2c_get_clientdata(client); in m88ds3103_get_i2c_adapter() local
1375 dev_dbg(&client->dev, "\n"); in m88ds3103_get_i2c_adapter()
1377 return dev->i2c_adapter; in m88ds3103_get_i2c_adapter()
1383 struct m88ds3103_dev *dev; in m88ds3103_probe() local
1384 struct m88ds3103_platform_data *pdata = client->dev.platform_data; in m88ds3103_probe()
1388 dev = kzalloc(sizeof(*dev), GFP_KERNEL); in m88ds3103_probe()
1389 if (!dev) { in m88ds3103_probe()
1394 dev->client = client; in m88ds3103_probe()
1395 dev->config.clock = pdata->clk; in m88ds3103_probe()
1396 dev->config.i2c_wr_max = pdata->i2c_wr_max; in m88ds3103_probe()
1397 dev->config.ts_mode = pdata->ts_mode; in m88ds3103_probe()
1398 dev->config.ts_clk = pdata->ts_clk; in m88ds3103_probe()
1399 dev->config.ts_clk_pol = pdata->ts_clk_pol; in m88ds3103_probe()
1400 dev->config.spec_inv = pdata->spec_inv; in m88ds3103_probe()
1401 dev->config.agc_inv = pdata->agc_inv; in m88ds3103_probe()
1402 dev->config.clock_out = pdata->clk_out; in m88ds3103_probe()
1403 dev->config.envelope_mode = pdata->envelope_mode; in m88ds3103_probe()
1404 dev->config.agc = pdata->agc; in m88ds3103_probe()
1405 dev->config.lnb_hv_pol = pdata->lnb_hv_pol; in m88ds3103_probe()
1406 dev->config.lnb_en_pol = pdata->lnb_en_pol; in m88ds3103_probe()
1407 dev->cfg = &dev->config; in m88ds3103_probe()
1409 dev->regmap_config.reg_bits = 8, in m88ds3103_probe()
1410 dev->regmap_config.val_bits = 8, in m88ds3103_probe()
1411 dev->regmap_config.lock_arg = dev, in m88ds3103_probe()
1412 dev->regmap = devm_regmap_init_i2c(client, &dev->regmap_config); in m88ds3103_probe()
1413 if (IS_ERR(dev->regmap)) { in m88ds3103_probe()
1414 ret = PTR_ERR(dev->regmap); in m88ds3103_probe()
1419 ret = regmap_read(dev->regmap, 0x00, &utmp); in m88ds3103_probe()
1423 dev->chip_id = utmp >> 1; in m88ds3103_probe()
1424 dev_dbg(&client->dev, "chip_id=%02x\n", dev->chip_id); in m88ds3103_probe()
1426 switch (dev->chip_id) { in m88ds3103_probe()
1434 switch (dev->cfg->clock_out) { in m88ds3103_probe()
1451 if (dev->chip_id == M88RS6000_CHIP_ID) in m88ds3103_probe()
1454 ret = regmap_write(dev->regmap, 0x29, utmp); in m88ds3103_probe()
1459 ret = m88ds3103_update_bits(dev, 0x08, 0x01, 0x00); in m88ds3103_probe()
1462 ret = m88ds3103_update_bits(dev, 0x04, 0x01, 0x01); in m88ds3103_probe()
1465 ret = m88ds3103_update_bits(dev, 0x23, 0x10, 0x10); in m88ds3103_probe()
1470 dev->i2c_adapter = i2c_add_mux_adapter(client->adapter, &client->dev, in m88ds3103_probe()
1471 dev, 0, 0, 0, m88ds3103_select, in m88ds3103_probe()
1473 if (dev->i2c_adapter == NULL) { in m88ds3103_probe()
1479 memcpy(&dev->fe.ops, &m88ds3103_ops, sizeof(struct dvb_frontend_ops)); in m88ds3103_probe()
1480 if (dev->chip_id == M88RS6000_CHIP_ID) in m88ds3103_probe()
1481 strncpy(dev->fe.ops.info.name, "Montage Technology M88RS6000", in m88ds3103_probe()
1482 sizeof(dev->fe.ops.info.name)); in m88ds3103_probe()
1484 dev->fe.ops.release = NULL; in m88ds3103_probe()
1485 dev->fe.demodulator_priv = dev; in m88ds3103_probe()
1486 i2c_set_clientdata(client, dev); in m88ds3103_probe()
1493 kfree(dev); in m88ds3103_probe()
1495 dev_dbg(&client->dev, "failed=%d\n", ret); in m88ds3103_probe()
1501 struct m88ds3103_dev *dev = i2c_get_clientdata(client); in m88ds3103_remove() local
1503 dev_dbg(&client->dev, "\n"); in m88ds3103_remove()
1505 i2c_del_mux_adapter(dev->i2c_adapter); in m88ds3103_remove()
1507 kfree(dev); in m88ds3103_remove()