Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Trent Piepho and committed by
Mauro Carvalho Chehab
f52c4853 a104ed07

+23
+22
drivers/media/dvb/frontends/dvb-pll.c
··· 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 429 static struct dvb_pll_desc *pll_list[] = { ··· 443 422 [DVB_PLL_OPERA1] = &dvb_pll_opera1, 444 423 [DVB_PLL_SAMSUNG_DTOS403IH102A] = &dvb_pll_samsung_dtos403ih102a, 445 424 [DVB_PLL_SAMSUNG_TDTC9251DH0] = &dvb_pll_samsung_tdtc9251dh0, 425 + [DVB_PLL_SAMSUNG_TBDU18132] = &dvb_pll_samsung_tbdu18132, 446 426 }; 447 427 448 428 /* ----------------------------------------------------------- */
+1
drivers/media/dvb/frontends/dvb-pll.h
··· 24 24 #define DVB_PLL_OPERA1 13 25 25 #define DVB_PLL_SAMSUNG_DTOS403IH102A 14 26 26 #define DVB_PLL_SAMSUNG_TDTC9251DH0 15 27 + #define DVB_PLL_SAMSUNG_TBDU18132 16 27 28 28 29 /** 29 30 * Attach a dvb-pll to the supplied frontend structure.