diff options
Diffstat (limited to 'drivers/media/dvb/frontends/dvb-pll.c')
-rw-r--r-- | drivers/media/dvb/frontends/dvb-pll.c | 61 |
1 files changed, 59 insertions, 2 deletions
diff --git a/drivers/media/dvb/frontends/dvb-pll.c b/drivers/media/dvb/frontends/dvb-pll.c index 4dcb6050d4fa..b6e2c387a04c 100644 --- a/drivers/media/dvb/frontends/dvb-pll.c +++ b/drivers/media/dvb/frontends/dvb-pll.c | |||
@@ -362,6 +362,63 @@ struct dvb_pll_desc dvb_pll_philips_sd1878_tda8261 = { | |||
362 | }; | 362 | }; |
363 | EXPORT_SYMBOL(dvb_pll_philips_sd1878_tda8261); | 363 | EXPORT_SYMBOL(dvb_pll_philips_sd1878_tda8261); |
364 | 364 | ||
365 | /* | ||
366 | * Philips TD1316 Tuner. | ||
367 | */ | ||
368 | static void td1316_bw(u8 *buf, u32 freq, int bandwidth) | ||
369 | { | ||
370 | u8 band; | ||
371 | |||
372 | /* determine band */ | ||
373 | if (freq < 161000000) | ||
374 | band = 1; | ||
375 | else if (freq < 444000000) | ||
376 | band = 2; | ||
377 | else | ||
378 | band = 4; | ||
379 | |||
380 | buf[3] |= band; | ||
381 | |||
382 | /* setup PLL filter */ | ||
383 | if (bandwidth == BANDWIDTH_8_MHZ) | ||
384 | buf[3] |= 1 << 3; | ||
385 | } | ||
386 | |||
387 | struct dvb_pll_desc dvb_pll_philips_td1316 = { | ||
388 | .name = "Philips TD1316", | ||
389 | .min = 87000000, | ||
390 | .max = 895000000, | ||
391 | .setbw = td1316_bw, | ||
392 | .count = 9, | ||
393 | .entries = { | ||
394 | { 93834000, 36166000, 166666, 0xca, 0x60}, | ||
395 | { 123834000, 36166000, 166666, 0xca, 0xa0}, | ||
396 | { 163834000, 36166000, 166666, 0xca, 0xc0}, | ||
397 | { 253834000, 36166000, 166666, 0xca, 0x60}, | ||
398 | { 383834000, 36166000, 166666, 0xca, 0xa0}, | ||
399 | { 443834000, 36166000, 166666, 0xca, 0xc0}, | ||
400 | { 583834000, 36166000, 166666, 0xca, 0x60}, | ||
401 | { 793834000, 36166000, 166666, 0xca, 0xa0}, | ||
402 | { 858834000, 36166000, 166666, 0xca, 0xe0}, | ||
403 | }, | ||
404 | }; | ||
405 | EXPORT_SYMBOL(dvb_pll_philips_td1316); | ||
406 | |||
407 | /* FE6600 used on DViCO Hybrid */ | ||
408 | struct dvb_pll_desc dvb_pll_thomson_fe6600 = { | ||
409 | .name = "Thomson FE6600", | ||
410 | .min = 44250000, | ||
411 | .max = 858000000, | ||
412 | .count = 4, | ||
413 | .entries = { | ||
414 | { 250000000, 36213333, 166667, 0xb4, 0x12 }, | ||
415 | { 455000000, 36213333, 166667, 0xfe, 0x11 }, | ||
416 | { 775500000, 36213333, 166667, 0xbc, 0x18 }, | ||
417 | { 999999999, 36213333, 166667, 0xf4, 0x18 }, | ||
418 | } | ||
419 | }; | ||
420 | EXPORT_SYMBOL(dvb_pll_thomson_fe6600); | ||
421 | |||
365 | /* ----------------------------------------------------------- */ | 422 | /* ----------------------------------------------------------- */ |
366 | /* code */ | 423 | /* code */ |
367 | 424 | ||
@@ -391,8 +448,8 @@ int dvb_pll_configure(struct dvb_pll_desc *desc, u8 *buf, | |||
391 | div = (freq + desc->entries[i].offset) / desc->entries[i].stepsize; | 448 | div = (freq + desc->entries[i].offset) / desc->entries[i].stepsize; |
392 | buf[0] = div >> 8; | 449 | buf[0] = div >> 8; |
393 | buf[1] = div & 0xff; | 450 | buf[1] = div & 0xff; |
394 | buf[2] = desc->entries[i].cb1; | 451 | buf[2] = desc->entries[i].config; |
395 | buf[3] = desc->entries[i].cb2; | 452 | buf[3] = desc->entries[i].cb; |
396 | 453 | ||
397 | if (desc->setbw) | 454 | if (desc->setbw) |
398 | desc->setbw(buf, freq, bandwidth); | 455 | desc->setbw(buf, freq, bandwidth); |