diff options
author | Trent Piepho <xyzzy@speakeasy.org> | 2009-06-11 18:21:34 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-09-12 11:17:48 -0400 |
commit | f52c48535ffc5c470b07d774d9dc8414c98deb2b (patch) | |
tree | 408c6cfb5199088b972f293e606a211ad7f62e06 /drivers/media/dvb | |
parent | a104ed073bc33b262fa9250c1f262c27da56067d (diff) |
V4L/DVB (12288): dvb-pll: Add support for Samsung TBDU18132 DVB-S NIM
Tuner parameters taken from flexcop driver. This PLL has a 17 bit divisor
while the dvb-pll driver is designed for 15 bit divisors. It's not a
problem as 15 bits is enough for the tuner's entire range. But if a larger
range was wanted, it could be done by adding additional bands with the
extra divisor bits appearing as band switch bits.
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb')
-rw-r--r-- | drivers/media/dvb/frontends/dvb-pll.c | 22 | ||||
-rw-r--r-- | drivers/media/dvb/frontends/dvb-pll.h | 1 |
2 files changed, 23 insertions, 0 deletions
diff --git a/drivers/media/dvb/frontends/dvb-pll.c b/drivers/media/dvb/frontends/dvb-pll.c index 7bafe4b962e0..7d2d487c9ad4 100644 --- a/drivers/media/dvb/frontends/dvb-pll.c +++ b/drivers/media/dvb/frontends/dvb-pll.c | |||
@@ -403,6 +403,27 @@ static struct dvb_pll_desc dvb_pll_samsung_tdtc9251dh0 = { | |||
403 | } | 403 | } |
404 | }; | 404 | }; |
405 | 405 | ||
406 | /* Samsung TBDU18132 DVB-S NIM with TSA5059 PLL, used in SkyStar2 DVB-S 2.3 */ | ||
407 | static struct dvb_pll_desc dvb_pll_samsung_tbdu18132 = { | ||
408 | .name = "Samsung TBDU18132", | ||
409 | .min = 950000, | ||
410 | .max = 2150000, /* guesses */ | ||
411 | .iffreq = 0, | ||
412 | .count = 2, | ||
413 | .entries = { | ||
414 | { 1550000, 125, 0x84, 0x82 }, | ||
415 | { 4095937, 125, 0x84, 0x80 }, | ||
416 | } | ||
417 | /* TSA5059 PLL has a 17 bit divisor rather than the 15 bits supported | ||
418 | * by this driver. The two extra bits are 0x60 in the third byte. 15 | ||
419 | * bits is enough for over 4 GHz, which is enough to cover the range | ||
420 | * of this tuner. We could use the additional divisor bits by adding | ||
421 | * more entries, e.g. | ||
422 | { 0x0ffff * 125 + 125/2, 125, 0x84 | 0x20, }, | ||
423 | { 0x17fff * 125 + 125/2, 125, 0x84 | 0x40, }, | ||
424 | { 0x1ffff * 125 + 125/2, 125, 0x84 | 0x60, }, */ | ||
425 | }; | ||
426 | |||
406 | /* ----------------------------------------------------------- */ | 427 | /* ----------------------------------------------------------- */ |
407 | 428 | ||
408 | static struct dvb_pll_desc *pll_list[] = { | 429 | static struct dvb_pll_desc *pll_list[] = { |
@@ -422,6 +443,7 @@ static struct dvb_pll_desc *pll_list[] = { | |||
422 | [DVB_PLL_OPERA1] = &dvb_pll_opera1, | 443 | [DVB_PLL_OPERA1] = &dvb_pll_opera1, |
423 | [DVB_PLL_SAMSUNG_DTOS403IH102A] = &dvb_pll_samsung_dtos403ih102a, | 444 | [DVB_PLL_SAMSUNG_DTOS403IH102A] = &dvb_pll_samsung_dtos403ih102a, |
424 | [DVB_PLL_SAMSUNG_TDTC9251DH0] = &dvb_pll_samsung_tdtc9251dh0, | 445 | [DVB_PLL_SAMSUNG_TDTC9251DH0] = &dvb_pll_samsung_tdtc9251dh0, |
446 | [DVB_PLL_SAMSUNG_TBDU18132] = &dvb_pll_samsung_tbdu18132, | ||
425 | }; | 447 | }; |
426 | 448 | ||
427 | /* ----------------------------------------------------------- */ | 449 | /* ----------------------------------------------------------- */ |
diff --git a/drivers/media/dvb/frontends/dvb-pll.h b/drivers/media/dvb/frontends/dvb-pll.h index dcbb28333046..7905f3440998 100644 --- a/drivers/media/dvb/frontends/dvb-pll.h +++ b/drivers/media/dvb/frontends/dvb-pll.h | |||
@@ -24,6 +24,7 @@ | |||
24 | #define DVB_PLL_OPERA1 13 | 24 | #define DVB_PLL_OPERA1 13 |
25 | #define DVB_PLL_SAMSUNG_DTOS403IH102A 14 | 25 | #define DVB_PLL_SAMSUNG_DTOS403IH102A 14 |
26 | #define DVB_PLL_SAMSUNG_TDTC9251DH0 15 | 26 | #define DVB_PLL_SAMSUNG_TDTC9251DH0 15 |
27 | #define DVB_PLL_SAMSUNG_TBDU18132 16 | ||
27 | 28 | ||
28 | /** | 29 | /** |
29 | * Attach a dvb-pll to the supplied frontend structure. | 30 | * Attach a dvb-pll to the supplied frontend structure. |