diff options
Diffstat (limited to 'drivers/media/tuners/tuner-xc2028.h')
-rw-r--r-- | drivers/media/tuners/tuner-xc2028.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/drivers/media/tuners/tuner-xc2028.h b/drivers/media/tuners/tuner-xc2028.h new file mode 100644 index 00000000000..9ebfb2d0ff1 --- /dev/null +++ b/drivers/media/tuners/tuner-xc2028.h | |||
@@ -0,0 +1,72 @@ | |||
1 | /* tuner-xc2028 | ||
2 | * | ||
3 | * Copyright (c) 2007-2008 Mauro Carvalho Chehab (mchehab@infradead.org) | ||
4 | * This code is placed under the terms of the GNU General Public License v2 | ||
5 | */ | ||
6 | |||
7 | #ifndef __TUNER_XC2028_H__ | ||
8 | #define __TUNER_XC2028_H__ | ||
9 | |||
10 | #include "dvb_frontend.h" | ||
11 | |||
12 | #define XC2028_DEFAULT_FIRMWARE "xc3028-v27.fw" | ||
13 | #define XC3028L_DEFAULT_FIRMWARE "xc3028L-v36.fw" | ||
14 | |||
15 | /* Dmoduler IF (kHz) */ | ||
16 | #define XC3028_FE_DEFAULT 0 /* Don't load SCODE */ | ||
17 | #define XC3028_FE_LG60 6000 | ||
18 | #define XC3028_FE_ATI638 6380 | ||
19 | #define XC3028_FE_OREN538 5380 | ||
20 | #define XC3028_FE_OREN36 3600 | ||
21 | #define XC3028_FE_TOYOTA388 3880 | ||
22 | #define XC3028_FE_TOYOTA794 7940 | ||
23 | #define XC3028_FE_DIBCOM52 5200 | ||
24 | #define XC3028_FE_ZARLINK456 4560 | ||
25 | #define XC3028_FE_CHINA 5200 | ||
26 | |||
27 | enum firmware_type { | ||
28 | XC2028_AUTO = 0, /* By default, auto-detects */ | ||
29 | XC2028_D2633, | ||
30 | XC2028_D2620, | ||
31 | }; | ||
32 | |||
33 | struct xc2028_ctrl { | ||
34 | char *fname; | ||
35 | int max_len; | ||
36 | int msleep; | ||
37 | unsigned int scode_table; | ||
38 | unsigned int mts :1; | ||
39 | unsigned int input1:1; | ||
40 | unsigned int vhfbw7:1; | ||
41 | unsigned int uhfbw8:1; | ||
42 | unsigned int disable_power_mgmt:1; | ||
43 | unsigned int read_not_reliable:1; | ||
44 | unsigned int demod; | ||
45 | enum firmware_type type:2; | ||
46 | }; | ||
47 | |||
48 | struct xc2028_config { | ||
49 | struct i2c_adapter *i2c_adap; | ||
50 | u8 i2c_addr; | ||
51 | struct xc2028_ctrl *ctrl; | ||
52 | }; | ||
53 | |||
54 | /* xc2028 commands for callback */ | ||
55 | #define XC2028_TUNER_RESET 0 | ||
56 | #define XC2028_RESET_CLK 1 | ||
57 | #define XC2028_I2C_FLUSH 2 | ||
58 | |||
59 | #if defined(CONFIG_MEDIA_TUNER_XC2028) || (defined(CONFIG_MEDIA_TUNER_XC2028_MODULE) && defined(MODULE)) | ||
60 | extern struct dvb_frontend *xc2028_attach(struct dvb_frontend *fe, | ||
61 | struct xc2028_config *cfg); | ||
62 | #else | ||
63 | static inline struct dvb_frontend *xc2028_attach(struct dvb_frontend *fe, | ||
64 | struct xc2028_config *cfg) | ||
65 | { | ||
66 | printk(KERN_INFO "%s: not probed - driver disabled by Kconfig\n", | ||
67 | __func__); | ||
68 | return NULL; | ||
69 | } | ||
70 | #endif | ||
71 | |||
72 | #endif /* __TUNER_XC2028_H__ */ | ||