aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/frontends/tda18271.h
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@linuxtv.org>2008-01-02 01:01:54 -0500
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-01-25 16:04:36 -0500
commitf21e0d7f0513e743b14df3197fdeeb9a9b7edbb2 (patch)
treefed91b8a1b032f3ebf827378b0517ceca9d7793a /drivers/media/dvb/frontends/tda18271.h
parent59067f7ed491ec95e6e9033e35e1ae726cff3cee (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.h30
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
27struct tda18271_std_map_item {
28 u32 if_freq;
29 u8 std_bits;
30};
31
32struct 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
27enum tda18271_i2c_gate { 48enum 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
54struct 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))
34extern struct dvb_frontend *tda18271_attach(struct dvb_frontend *fe, u8 addr, 60extern 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
38static inline struct dvb_frontend *tda18271_attach(struct dvb_frontend *fe, 64static 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;