]> err.no Git - linux-2.6/blobdiff - drivers/media/video/tuner-xc2028.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
[linux-2.6] / drivers / media / video / tuner-xc2028.h
index d5a18a37d1c50cf470370b8a2614cce84d4a840b..3eb8420379a42e29f108b65630082a7f1546366e 100644 (file)
@@ -9,27 +9,54 @@
 
 #include "dvb_frontend.h"
 
+#define XC2028_DEFAULT_FIRMWARE "xc3028-v27.fw"
+
+/*      Dmoduler               IF (kHz) */
+#define        XC3028_FE_DEFAULT       0
+#define XC3028_FE_LG60         6000
+#define        XC3028_FE_ATI638        6380
+#define        XC3028_FE_OREN538       5380
+#define        XC3028_FE_OREN36        3600
+#define        XC3028_FE_TOYOTA388     3880
+#define        XC3028_FE_TOYOTA794     7940
+#define        XC3028_FE_DIBCOM52      5200
+#define        XC3028_FE_ZARLINK456    4560
+#define        XC3028_FE_CHINA         5200
+
+struct xc2028_ctrl {
+       char                    *fname;
+       int                     max_len;
+       unsigned int            scode_table;
+       unsigned int            mts   :1;
+       unsigned int            d2633 :1;
+       unsigned int            input1:1;
+       unsigned int            vhfbw7:1;
+       unsigned int            uhfbw8:1;
+       unsigned int            demod;
+};
+
+struct xc2028_config {
+       struct i2c_adapter *i2c_adap;
+       u8                 i2c_addr;
+       void               *video_dev;
+       struct xc2028_ctrl *ctrl;
+       int                (*callback) (void *dev, int command, int arg);
+};
+
 /* xc2028 commands for callback */
 #define XC2028_TUNER_RESET     0
 #define XC2028_RESET_CLK       1
 
-struct dvb_frontend;
-struct i2c_client;
-
 #if defined(CONFIG_TUNER_XC2028) || (defined(CONFIG_TUNER_XC2028_MODULE) && defined(MODULE))
-int xc2028_attach(struct dvb_frontend *fe, struct i2c_adapter* i2c_adap,
-                 u8 i2c_addr, struct device *dev, void *video_dev,
-                 int (*tuner_callback) (void *dev, int command,int arg));
-
+extern struct dvb_frontend *xc2028_attach(struct dvb_frontend *fe,
+                                         struct xc2028_config *cfg);
 #else
-static inline int xc2028_attach(struct dvb_frontend *fe,
-                 struct i2c_adapter* i2c_adap,
-                 u8 i2c_addr, struct device *dev, void *video_dev,
-                 int (*tuner_callback) (void *dev, int command,int arg))
+static inline struct dvb_frontend *xc2028_attach(struct dvb_frontend *fe,
+                                                struct xc2028_config *cfg)
 {
        printk(KERN_INFO "%s: not probed - driver disabled by Kconfig\n",
               __FUNCTION__);
-       return -EINVAL;
+       return NULL;
 }
 #endif