diff options
author | Michael Krufky <mkrufky@linuxtv.org> | 2008-01-02 01:01:54 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-01-25 16:04:36 -0500 |
commit | f21e0d7f0513e743b14df3197fdeeb9a9b7edbb2 (patch) | |
tree | fed91b8a1b032f3ebf827378b0517ceca9d7793a /drivers/media/dvb/frontends/tda18271.h | |
parent | 59067f7ed491ec95e6e9033e35e1ae726cff3cee (diff) |
V4L/DVB (6962): tda18271: allow device-specific configuration of IF frequency and std bits
Allow drivers to pass device-specific configuration parameters during attach.
If these parameters are omitted, default values will be used.
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/dvb/frontends/tda18271.h')
-rw-r--r-- | drivers/media/dvb/frontends/tda18271.h | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/drivers/media/dvb/frontends/tda18271.h b/drivers/media/dvb/frontends/tda18271.h index f53568103311..36a3a548a6f5 100644 --- a/drivers/media/dvb/frontends/tda18271.h +++ b/drivers/media/dvb/frontends/tda18271.h | |||
@@ -24,21 +24,47 @@ | |||
24 | #include <linux/i2c.h> | 24 | #include <linux/i2c.h> |
25 | #include "dvb_frontend.h" | 25 | #include "dvb_frontend.h" |
26 | 26 | ||
27 | struct tda18271_std_map_item { | ||
28 | u32 if_freq; | ||
29 | u8 std_bits; | ||
30 | }; | ||
31 | |||
32 | struct tda18271_std_map { | ||
33 | struct tda18271_std_map_item atv_b; | ||
34 | struct tda18271_std_map_item atv_dk; | ||
35 | struct tda18271_std_map_item atv_gh; | ||
36 | struct tda18271_std_map_item atv_i; | ||
37 | struct tda18271_std_map_item atv_l; | ||
38 | struct tda18271_std_map_item atv_lc; | ||
39 | struct tda18271_std_map_item atv_mn; | ||
40 | struct tda18271_std_map_item atsc_6; | ||
41 | struct tda18271_std_map_item dvbt_6; | ||
42 | struct tda18271_std_map_item dvbt_7; | ||
43 | struct tda18271_std_map_item dvbt_8; | ||
44 | struct tda18271_std_map_item qam_6; | ||
45 | struct tda18271_std_map_item qam_8; | ||
46 | }; | ||
47 | |||
27 | enum tda18271_i2c_gate { | 48 | enum tda18271_i2c_gate { |
28 | TDA18271_GATE_AUTO = 0, | 49 | TDA18271_GATE_AUTO = 0, |
29 | TDA18271_GATE_ANALOG, | 50 | TDA18271_GATE_ANALOG, |
30 | TDA18271_GATE_DIGITAL, | 51 | TDA18271_GATE_DIGITAL, |
31 | }; | 52 | }; |
32 | 53 | ||
54 | struct tda18271_config { | ||
55 | struct tda18271_std_map *std_map; | ||
56 | enum tda18271_i2c_gate gate; | ||
57 | }; | ||
58 | |||
33 | #if defined(CONFIG_DVB_TDA18271) || (defined(CONFIG_DVB_TDA18271_MODULE) && defined(MODULE)) | 59 | #if defined(CONFIG_DVB_TDA18271) || (defined(CONFIG_DVB_TDA18271_MODULE) && defined(MODULE)) |
34 | extern struct dvb_frontend *tda18271_attach(struct dvb_frontend *fe, u8 addr, | 60 | extern struct dvb_frontend *tda18271_attach(struct dvb_frontend *fe, u8 addr, |
35 | struct i2c_adapter *i2c, | 61 | struct i2c_adapter *i2c, |
36 | enum tda18271_i2c_gate gate); | 62 | struct tda18271_config *cfg); |
37 | #else | 63 | #else |
38 | static inline struct dvb_frontend *tda18271_attach(struct dvb_frontend *fe, | 64 | static inline struct dvb_frontend *tda18271_attach(struct dvb_frontend *fe, |
39 | u8 addr, | 65 | u8 addr, |
40 | struct i2c_adapter *i2c, | 66 | struct i2c_adapter *i2c, |
41 | enum tda18271_i2c_gate gate) | 67 | struct tda18271_config *cfg) |
42 | { | 68 | { |
43 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | 69 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); |
44 | return NULL; | 70 | return NULL; |