diff options
Diffstat (limited to 'linux/drivers')
-rw-r--r-- | linux/drivers/media/dvb/ttusb-budget/Kconfig | 4 | ||||
-rw-r--r-- | linux/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c | 40 |
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; } |