Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f52c4853 authored by Trent Piepho's avatar Trent Piepho Committed by Mauro Carvalho Chehab
Browse files

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: default avatarTrent Piepho <xyzzy@speakeasy.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent a104ed07
Loading
Loading
Loading
Loading
+22 −0
Original line number Original line Diff line number Diff line
@@ -403,6 +403,27 @@ static struct dvb_pll_desc dvb_pll_samsung_tdtc9251dh0 = {
	}
	}
};
};


/* Samsung TBDU18132 DVB-S NIM with TSA5059 PLL, used in SkyStar2 DVB-S 2.3 */
static struct dvb_pll_desc dvb_pll_samsung_tbdu18132 = {
	.name = "Samsung TBDU18132",
	.min	=  950000,
	.max	= 2150000, /* guesses */
	.iffreq = 0,
	.count = 2,
	.entries = {
		{ 1550000, 125, 0x84, 0x82 },
		{ 4095937, 125, 0x84, 0x80 },
	}
	/* TSA5059 PLL has a 17 bit divisor rather than the 15 bits supported
	 * by this driver.  The two extra bits are 0x60 in the third byte.  15
	 * bits is enough for over 4 GHz, which is enough to cover the range
	 * of this tuner.  We could use the additional divisor bits by adding
	 * more entries, e.g.
	 { 0x0ffff * 125 + 125/2, 125, 0x84 | 0x20, },
	 { 0x17fff * 125 + 125/2, 125, 0x84 | 0x40, },
	 { 0x1ffff * 125 + 125/2, 125, 0x84 | 0x60, }, */
};

/* ----------------------------------------------------------- */
/* ----------------------------------------------------------- */


static struct dvb_pll_desc *pll_list[] = {
static struct dvb_pll_desc *pll_list[] = {
@@ -422,6 +443,7 @@ static struct dvb_pll_desc *pll_list[] = {
	[DVB_PLL_OPERA1]                 = &dvb_pll_opera1,
	[DVB_PLL_OPERA1]                 = &dvb_pll_opera1,
	[DVB_PLL_SAMSUNG_DTOS403IH102A]  = &dvb_pll_samsung_dtos403ih102a,
	[DVB_PLL_SAMSUNG_DTOS403IH102A]  = &dvb_pll_samsung_dtos403ih102a,
	[DVB_PLL_SAMSUNG_TDTC9251DH0]    = &dvb_pll_samsung_tdtc9251dh0,
	[DVB_PLL_SAMSUNG_TDTC9251DH0]    = &dvb_pll_samsung_tdtc9251dh0,
	[DVB_PLL_SAMSUNG_TBDU18132]	 = &dvb_pll_samsung_tbdu18132,
};
};


/* ----------------------------------------------------------- */
/* ----------------------------------------------------------- */
+1 −0
Original line number Original line Diff line number Diff line
@@ -24,6 +24,7 @@
#define DVB_PLL_OPERA1                 13
#define DVB_PLL_OPERA1                 13
#define DVB_PLL_SAMSUNG_DTOS403IH102A  14
#define DVB_PLL_SAMSUNG_DTOS403IH102A  14
#define DVB_PLL_SAMSUNG_TDTC9251DH0    15
#define DVB_PLL_SAMSUNG_TDTC9251DH0    15
#define DVB_PLL_SAMSUNG_TBDU18132      16


/**
/**
 * Attach a dvb-pll to the supplied frontend structure.
 * Attach a dvb-pll to the supplied frontend structure.