• Home
  • Raw
  • Download

Lines Matching +full:poll +full:- +full:timeout +full:- +full:ms

1 // SPDX-License-Identifier: GPL-2.0-or-later
28 struct it913x_dev *dev = fe->tuner_priv; in it913x_init()
29 struct platform_device *pdev = dev->pdev; in it913x_init()
34 unsigned long timeout; in it913x_init() local
36 dev_dbg(&pdev->dev, "role %u\n", dev->role); in it913x_init()
38 ret = regmap_write(dev->regmap, 0x80ec4c, 0x68); in it913x_init()
44 ret = regmap_read(dev->regmap, 0x80ec86, &utmp); in it913x_init()
51 dev->clk_mode = utmp; in it913x_init()
52 dev->xtal = 2000; in it913x_init()
53 dev->fdiv = 3; in it913x_init()
58 dev->clk_mode = utmp; in it913x_init()
59 dev->xtal = 640; in it913x_init()
60 dev->fdiv = 1; in it913x_init()
64 dev_err(&pdev->dev, "unknown clock identifier %d\n", utmp); in it913x_init()
68 ret = regmap_read(dev->regmap, 0x80ed03, &utmp); in it913x_init()
77 #define TIMEOUT 50 in it913x_init() macro
78 timeout = jiffies + msecs_to_jiffies(TIMEOUT); in it913x_init()
79 while (!time_after(jiffies, timeout)) { in it913x_init()
80 ret = regmap_bulk_read(dev->regmap, 0x80ed23, buf, 2); in it913x_init()
89 dev_dbg(&pdev->dev, "r_fbc_m_bdry took %u ms, val %u\n", in it913x_init()
90 jiffies_to_msecs(jiffies) - in it913x_init()
91 (jiffies_to_msecs(timeout) - TIMEOUT), utmp); in it913x_init()
93 dev->fn_min = dev->xtal * utmp; in it913x_init()
94 dev->fn_min /= (dev->fdiv * nv_val); in it913x_init()
95 dev->fn_min *= 1000; in it913x_init()
96 dev_dbg(&pdev->dev, "fn_min %u\n", dev->fn_min); in it913x_init()
99 * Chip version BX never sets that flag so we just wait 50ms in that in it913x_init()
100 * case. It is possible poll BX similarly than AX and then timeout in in it913x_init()
101 * order to get 50ms delay, but that causes about 120 extra I2C in it913x_init()
104 if (dev->chip_ver == 1) { in it913x_init()
105 #define TIMEOUT 50 in it913x_init() macro
106 timeout = jiffies + msecs_to_jiffies(TIMEOUT); in it913x_init()
107 while (!time_after(jiffies, timeout)) { in it913x_init()
108 ret = regmap_read(dev->regmap, 0x80ec82, &utmp); in it913x_init()
116 dev_dbg(&pdev->dev, "p_tsm_init_mode took %u ms, val %u\n", in it913x_init()
117 jiffies_to_msecs(jiffies) - in it913x_init()
118 (jiffies_to_msecs(timeout) - TIMEOUT), utmp); in it913x_init()
123 ret = regmap_write(dev->regmap, 0x80ed81, iqik_m_cal); in it913x_init()
127 ret = regmap_write(dev->regmap, 0x80ec57, 0x00); in it913x_init()
131 ret = regmap_write(dev->regmap, 0x80ec58, 0x00); in it913x_init()
135 ret = regmap_write(dev->regmap, 0x80ec40, 0x01); in it913x_init()
139 dev->active = true; in it913x_init()
143 dev_dbg(&pdev->dev, "failed %d\n", ret); in it913x_init()
149 struct it913x_dev *dev = fe->tuner_priv; in it913x_sleep()
150 struct platform_device *pdev = dev->pdev; in it913x_sleep()
153 dev_dbg(&pdev->dev, "role %u\n", dev->role); in it913x_sleep()
155 dev->active = false; in it913x_sleep()
157 ret = regmap_bulk_write(dev->regmap, 0x80ec40, "\x00", 1); in it913x_sleep()
165 if (dev->role == IT913X_ROLE_DUAL_MASTER) in it913x_sleep()
170 dev_dbg(&pdev->dev, "role %u, len %d\n", dev->role, len); in it913x_sleep()
172 ret = regmap_bulk_write(dev->regmap, 0x80ec02, in it913x_sleep()
178 ret = regmap_bulk_write(dev->regmap, 0x80ec12, "\x00\x00\x00\x00", 4); in it913x_sleep()
182 ret = regmap_bulk_write(dev->regmap, 0x80ec17, in it913x_sleep()
187 ret = regmap_bulk_write(dev->regmap, 0x80ec22, in it913x_sleep()
192 ret = regmap_bulk_write(dev->regmap, 0x80ec20, "\x00", 1); in it913x_sleep()
196 ret = regmap_bulk_write(dev->regmap, 0x80ec3f, "\x01", 1); in it913x_sleep()
202 dev_dbg(&pdev->dev, "failed %d\n", ret); in it913x_sleep()
208 struct it913x_dev *dev = fe->tuner_priv; in it913x_set_params()
209 struct platform_device *pdev = dev->pdev; in it913x_set_params()
210 struct dtv_frontend_properties *c = &fe->dtv_property_cache; in it913x_set_params()
217 dev_dbg(&pdev->dev, "role=%u, frequency %u, bandwidth_hz %u\n", in it913x_set_params()
218 dev->role, c->frequency, c->bandwidth_hz); in it913x_set_params()
220 if (!dev->active) { in it913x_set_params()
221 ret = -EINVAL; in it913x_set_params()
225 if (c->frequency <= 74000000) { in it913x_set_params()
228 } else if (c->frequency <= 111000000) { in it913x_set_params()
231 } else if (c->frequency <= 148000000) { in it913x_set_params()
234 } else if (c->frequency <= 222000000) { in it913x_set_params()
237 } else if (c->frequency <= 296000000) { in it913x_set_params()
240 } else if (c->frequency <= 445000000) { in it913x_set_params()
243 } else if (c->frequency <= dev->fn_min) { in it913x_set_params()
246 } else if (c->frequency <= 950000000) { in it913x_set_params()
254 ret = regmap_read(dev->regmap, 0x80ed81, &utmp); in it913x_set_params()
261 if (dev->clk_mode == 0) in it913x_set_params()
266 iqik_m_cal = 0x40 - iqik_m_cal; in it913x_set_params()
267 if (dev->clk_mode == 0) in it913x_set_params()
273 t_cal_freq = (c->frequency / 1000) * n_div * dev->fdiv; in it913x_set_params()
274 pre_lo_freq = t_cal_freq / dev->xtal; in it913x_set_params()
275 utmp = pre_lo_freq * dev->xtal; in it913x_set_params()
277 if ((t_cal_freq - utmp) >= (dev->xtal >> 1)) in it913x_set_params()
283 dev_dbg(&pdev->dev, "t_cal_freq %u, pre_lo_freq %u\n", in it913x_set_params()
286 if (c->frequency <= 440000000) { in it913x_set_params()
289 } else if (c->frequency <= 484000000) { in it913x_set_params()
292 } else if (c->frequency <= 533000000) { in it913x_set_params()
295 } else if (c->frequency <= 587000000) { in it913x_set_params()
298 } else if (c->frequency <= 645000000) { in it913x_set_params()
301 } else if (c->frequency <= 710000000) { in it913x_set_params()
304 } else if (c->frequency <= 782000000) { in it913x_set_params()
307 } else if (c->frequency <= 860000000) { in it913x_set_params()
310 } else if (c->frequency <= 1492000000) { in it913x_set_params()
313 } else if (c->frequency <= 1685000000) { in it913x_set_params()
317 ret = -EINVAL; in it913x_set_params()
322 ret = regmap_write(dev->regmap, 0x80ee06, lna_band); in it913x_set_params()
326 if (c->bandwidth_hz <= 5000000) in it913x_set_params()
328 else if (c->bandwidth_hz <= 6000000) in it913x_set_params()
330 else if (c->bandwidth_hz <= 7000000) in it913x_set_params()
335 ret = regmap_write(dev->regmap, 0x80ec56, u8tmp); in it913x_set_params()
340 ret = regmap_write(dev->regmap, 0x80ec4c, 0xa0 | (l_band << 3)); in it913x_set_params()
344 ret = regmap_write(dev->regmap, 0x80ec4d, (t_cal_freq >> 0) & 0xff); in it913x_set_params()
348 ret = regmap_write(dev->regmap, 0x80ec4e, (t_cal_freq >> 8) & 0xff); in it913x_set_params()
352 ret = regmap_write(dev->regmap, 0x80011e, (pre_lo_freq >> 0) & 0xff); in it913x_set_params()
356 ret = regmap_write(dev->regmap, 0x80011f, (pre_lo_freq >> 8) & 0xff); in it913x_set_params()
362 dev_dbg(&pdev->dev, "failed %d\n", ret); in it913x_set_params()
380 struct it913x_platform_data *pdata = pdev->dev.platform_data; in it913x_probe()
381 struct dvb_frontend *fe = pdata->fe; in it913x_probe()
389 ret = -ENOMEM; in it913x_probe()
390 dev_err(&pdev->dev, "kzalloc() failed\n"); in it913x_probe()
394 dev->pdev = pdev; in it913x_probe()
395 dev->regmap = pdata->regmap; in it913x_probe()
396 dev->fe = pdata->fe; in it913x_probe()
397 dev->chip_ver = id->driver_data; in it913x_probe()
398 dev->role = pdata->role; in it913x_probe()
400 fe->tuner_priv = dev; in it913x_probe()
401 memcpy(&fe->ops.tuner_ops, &it913x_tuner_ops, in it913x_probe()
405 if (dev->chip_ver == 1) in it913x_probe()
407 else if (dev->chip_ver == 2) in it913x_probe()
412 dev_info(&pdev->dev, "ITE IT913X %s successfully attached\n", in it913x_probe()
414 dev_dbg(&pdev->dev, "chip_ver %u, role %u\n", dev->chip_ver, dev->role); in it913x_probe()
417 dev_dbg(&pdev->dev, "failed %d\n", ret); in it913x_probe()
424 struct dvb_frontend *fe = dev->fe; in it913x_remove()
426 dev_dbg(&pdev->dev, "\n"); in it913x_remove()
428 memset(&fe->ops.tuner_ops, 0, sizeof(struct dvb_tuner_ops)); in it913x_remove()
429 fe->tuner_priv = NULL; in it913x_remove()
436 {"it9133ax-tuner", 1},
437 {"it9133bx-tuner", 2},