summaryrefslogtreecommitdiff
path: root/linux/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'linux/drivers')
-rw-r--r--linux/drivers/media/dvb/ttusb-budget/Kconfig4
-rw-r--r--linux/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c40
2 files changed, 40 insertions, 4 deletions
diff --git a/linux/drivers/media/dvb/ttusb-budget/Kconfig b/linux/drivers/media/dvb/ttusb-budget/Kconfig
index 1ecad0278..4aa714ab4 100644
--- a/linux/drivers/media/dvb/ttusb-budget/Kconfig
+++ b/linux/drivers/media/dvb/ttusb-budget/Kconfig
@@ -3,11 +3,13 @@ config DVB_TTUSB_BUDGET
depends on DVB_CORE && USB
select DVB_CX22700
select DVB_TDA1004X
+ select DVB_TDA8083
+ select DVB_STV0299
help
Support for external USB adapters designed by Technotrend and
produced by Hauppauge, shipped under the brand name 'Nova-USB'.
These devices don't have a MPEG decoder built in, so you need
- an external software decoder to watch TV.
+ an external software decoder to watch TV.
Say Y if you own such a device and want to use it.
diff --git a/linux/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c b/linux/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
index 7dc5da7f5..04ed094f8 100644
--- a/linux/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
+++ b/linux/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
@@ -27,6 +27,7 @@
#include "cx22700.h"
#include "tda1004x.h"
#include "stv0299.h"
+#include "tda8083.h"
#include <linux/dvb/frontend.h>
#include <linux/dvb/dmx.h>
@@ -1320,6 +1321,31 @@ static struct stv0299_config alps_bsru6_config = {
.pll_set = alps_bsru6_pll_set,
};
+static int ttusb_novas_grundig_49501_491_pll_set(struct dvb_frontend *fe, struct dvb_frontend_parameters *params)
+{
+ struct ttusb* ttusb = (struct ttusb*) fe->dvb->priv;
+ u8 buf[4];
+ u32 div;
+ struct i2c_msg msg = {.addr = 0x61,.flags = 0,.buf = buf,.len = sizeof(buf) };
+
+ div = params->frequency / 125;
+
+ buf[0] = (div >> 8) & 0x7f;
+ buf[1] = div & 0xff;
+ buf[2] = 0x8e;
+ buf[3] = 0x00;
+
+ if (i2c_transfer(&ttusb->i2c_adap, &msg, 1) != 1)
+ return -EIO;
+
+ return 0;
+}
+
+static struct tda8083_config ttusb_novas_grundig_49501_491_config = {
+
+ .demod_address = 0x68,
+ .pll_set = ttusb_novas_grundig_49501_491_pll_set,
+};
@@ -1329,18 +1355,26 @@ static void frontend_init(struct ttusb* ttusb)
case 0x1003: // Hauppauge/TT Nova-USB-S budget (stv0299/ALPS BSRU6(tsa5059)
// try the ALPS BSRU6 first
ttusb->fe = stv0299_attach(&alps_bsru6_config, &ttusb->i2c_adap);
- if (ttusb->fe != NULL) break;
+ if (ttusb->fe != NULL)
+ break;
+
+ // Grundig 29504-491
+ ttusb->fe = tda8083_attach(&ttusb_novas_grundig_49501_491_config, &ttusb->i2c_adap);
+ if (ttusb->fe != NULL)
+ break;
break;
case 0x1005: // Hauppauge/TT Nova-USB-t budget (tda10046/Philips td1316(tda6651tt) OR cx22700/ALPS TDMB7(??))
// try the ALPS TDMB7 first
ttusb->fe = cx22700_attach(&alps_tdmb7_config, &ttusb->i2c_adap);
- if (ttusb->fe != NULL) break;
+ if (ttusb->fe != NULL)
+ break;
// Philips td1316
ttusb->fe = tda10046_attach(&philips_tdm1316l_config, &ttusb->i2c_adap);
- if (ttusb->fe != NULL) break;
+ if (ttusb->fe != NULL)
+ break;
break;
}