Commit ecb60deb authored by Hartmut Hackmann's avatar Hartmut Hackmann Committed by Linus Torvalds

[PATCH] dvb: frontend: tda1004x update

o added config options for IF frequency and AGC
o support DSP boot from on board eeprom
o added pll sleep call
Signed-off-by: default avatarHartmut Hackmann <hartmut.hackmann@t-online.de>
Signed-off-by: default avatarJohannes Stezenbach <js@linuxtv.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent bbf24cec
This diff is collapsed.
...@@ -26,6 +26,21 @@ ...@@ -26,6 +26,21 @@
#include <linux/dvb/frontend.h> #include <linux/dvb/frontend.h>
#include <linux/firmware.h> #include <linux/firmware.h>
enum tda10046_xtal {
TDA10046_XTAL_4M,
TDA10046_XTAL_16M,
};
enum tda10046_agc {
TDA10046_AGC_DEFAULT, /* original configuration */
TDA10046_AGC_IFO_AUTO_NEG, /* IF AGC only, automatic, negtive */
};
enum tda10046_if {
TDA10046_FREQ_3617, /* original config, 36,166 MHZ */
TDA10046_FREQ_3613, /* 36,13 MHZ */
};
struct tda1004x_config struct tda1004x_config
{ {
/* the demodulator's i2c address */ /* the demodulator's i2c address */
...@@ -37,14 +52,22 @@ struct tda1004x_config ...@@ -37,14 +52,22 @@ struct tda1004x_config
/* Does the OCLK signal need inverted? */ /* Does the OCLK signal need inverted? */
u8 invert_oclk; u8 invert_oclk;
/* value of N_I2C of the CONF_PLL3 register */ /* Xtal frequency, 4 or 16MHz*/
u8 n_i2c; enum tda10046_xtal xtal_freq;
/* IF frequency */
enum tda10046_if if_freq;
/* AGC configuration */
enum tda10046_agc agc_config;
/* PLL maintenance */ /* PLL maintenance */
int (*pll_init)(struct dvb_frontend* fe); int (*pll_init)(struct dvb_frontend* fe);
void (*pll_sleep)(struct dvb_frontend* fe);
int (*pll_set)(struct dvb_frontend* fe, struct dvb_frontend_parameters* params); int (*pll_set)(struct dvb_frontend* fe, struct dvb_frontend_parameters* params);
/* request firmware for device */ /* request firmware for device */
/* set this to NULL if the card has a firmware EEPROM */
int (*request_firmware)(struct dvb_frontend* fe, const struct firmware **fw, char* name); int (*request_firmware)(struct dvb_frontend* fe, const struct firmware **fw, char* name);
}; };
......
...@@ -695,8 +695,12 @@ static struct tda1004x_config philips_tu1216_config = { ...@@ -695,8 +695,12 @@ static struct tda1004x_config philips_tu1216_config = {
.demod_address = 0x8, .demod_address = 0x8,
.invert = 1, .invert = 1,
.invert_oclk = 1, .invert_oclk = 1,
.xtal_freq = TDA10046_XTAL_4M,
.agc_config = TDA10046_AGC_DEFAULT,
.if_freq = TDA10046_FREQ_3617,
.pll_init = philips_tu1216_pll_init, .pll_init = philips_tu1216_pll_init,
.pll_set = philips_tu1216_pll_set, .pll_set = philips_tu1216_pll_set,
.pll_sleep = NULL,
.request_firmware = philips_tu1216_request_firmware, .request_firmware = philips_tu1216_request_firmware,
}; };
......
...@@ -838,8 +838,12 @@ static struct tda1004x_config philips_tdm1316l_config = { ...@@ -838,8 +838,12 @@ static struct tda1004x_config philips_tdm1316l_config = {
.demod_address = 0x8, .demod_address = 0x8,
.invert = 0, .invert = 0,
.invert_oclk = 0, .invert_oclk = 0,
.xtal_freq = TDA10046_XTAL_4M,
.agc_config = TDA10046_AGC_DEFAULT,
.if_freq = TDA10046_FREQ_3617,
.pll_init = philips_tdm1316l_pll_init, .pll_init = philips_tdm1316l_pll_init,
.pll_set = philips_tdm1316l_pll_set, .pll_set = philips_tdm1316l_pll_set,
.pll_sleep = NULL,
.request_firmware = philips_tdm1316l_request_firmware, .request_firmware = philips_tdm1316l_request_firmware,
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment