summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb
diff options
context:
space:
mode:
authorTrent Piepho <xyzzy@speakeasy.org>2009-06-11 15:21:34 -0700
committerTrent Piepho <xyzzy@speakeasy.org>2009-06-11 15:21:34 -0700
commit74c4537b6d3fadad69ae9955994e26ce67bdb454 (patch)
treeaa07d290079e7373fd8bfa0afd5a6c5a32fe5dd4 /linux/drivers/media/dvb
parent99af65d5e0e8d81cebde342515a18d7bd641fc05 (diff)
downloadmediapointer-dvb-s2-74c4537b6d3fadad69ae9955994e26ce67bdb454.tar.gz
mediapointer-dvb-s2-74c4537b6d3fadad69ae9955994e26ce67bdb454.tar.bz2
dvb-pll: Add support for Samsung TBDU18132 DVB-S NIM
From: Trent Piepho <xyzzy@speakeasy.org> 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. Priority: normal Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Diffstat (limited to 'linux/drivers/media/dvb')
-rw-r--r--linux/drivers/media/dvb/frontends/dvb-pll.c22
-rw-r--r--linux/drivers/media/dvb/frontends/dvb-pll.h1
2 files changed, 23 insertions, 0 deletions
diff --git a/linux/drivers/media/dvb/frontends/dvb-pll.c b/linux/drivers/media/dvb/frontends/dvb-pll.c
index 6c6506757..7abd33389 100644
--- a/linux/drivers/media/dvb/frontends/dvb-pll.c
+++ b/linux/drivers/media/dvb/frontends/dvb-pll.c
@@ -404,6 +404,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[] = {
@@ -423,6 +444,7 @@ static struct dvb_pll_desc *pll_list[] = {
[DVB_PLL_OPERA1] = &dvb_pll_opera1,
[DVB_PLL_SAMSUNG_DTOS403IH102A] = &dvb_pll_samsung_dtos403ih102a,
[DVB_PLL_SAMSUNG_TDTC9251DH0] = &dvb_pll_samsung_tdtc9251dh0,
+ [DVB_PLL_SAMSUNG_TBDU18132] = &dvb_pll_samsung_tbdu18132,
};
/* ----------------------------------------------------------- */
diff --git a/linux/drivers/media/dvb/frontends/dvb-pll.h b/linux/drivers/media/dvb/frontends/dvb-pll.h
index dcbb28333..7905f3440 100644
--- a/linux/drivers/media/dvb/frontends/dvb-pll.h
+++ b/linux/drivers/media/dvb/frontends/dvb-pll.h
@@ -24,6 +24,7 @@
#define DVB_PLL_OPERA1 13
#define DVB_PLL_SAMSUNG_DTOS403IH102A 14
#define DVB_PLL_SAMSUNG_TDTC9251DH0 15
+#define DVB_PLL_SAMSUNG_TBDU18132 16
/**
* Attach a dvb-pll to the supplied frontend structure.