diff options
Diffstat (limited to 'drivers/media/dvb/frontends/dib8000.h')
-rw-r--r-- | drivers/media/dvb/frontends/dib8000.h | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/drivers/media/dvb/frontends/dib8000.h b/drivers/media/dvb/frontends/dib8000.h new file mode 100644 index 00000000000..617f9eba3a0 --- /dev/null +++ b/drivers/media/dvb/frontends/dib8000.h | |||
@@ -0,0 +1,136 @@ | |||
1 | #ifndef DIB8000_H | ||
2 | #define DIB8000_H | ||
3 | |||
4 | #include "dibx000_common.h" | ||
5 | |||
6 | struct dib8000_config { | ||
7 | u8 output_mpeg2_in_188_bytes; | ||
8 | u8 hostbus_diversity; | ||
9 | u8 tuner_is_baseband; | ||
10 | int (*update_lna) (struct dvb_frontend *, u16 agc_global); | ||
11 | |||
12 | u8 agc_config_count; | ||
13 | struct dibx000_agc_config *agc; | ||
14 | struct dibx000_bandwidth_config *pll; | ||
15 | |||
16 | #define DIB8000_GPIO_DEFAULT_DIRECTIONS 0xffff | ||
17 | u16 gpio_dir; | ||
18 | #define DIB8000_GPIO_DEFAULT_VALUES 0x0000 | ||
19 | u16 gpio_val; | ||
20 | #define DIB8000_GPIO_PWM_POS0(v) ((v & 0xf) << 12) | ||
21 | #define DIB8000_GPIO_PWM_POS1(v) ((v & 0xf) << 8 ) | ||
22 | #define DIB8000_GPIO_PWM_POS2(v) ((v & 0xf) << 4 ) | ||
23 | #define DIB8000_GPIO_PWM_POS3(v) (v & 0xf) | ||
24 | #define DIB8000_GPIO_DEFAULT_PWM_POS 0xffff | ||
25 | u16 gpio_pwm_pos; | ||
26 | u16 pwm_freq_div; | ||
27 | |||
28 | void (*agc_control) (struct dvb_frontend *, u8 before); | ||
29 | |||
30 | u16 drives; | ||
31 | u16 diversity_delay; | ||
32 | u8 div_cfg; | ||
33 | u8 output_mode; | ||
34 | u8 refclksel; | ||
35 | }; | ||
36 | |||
37 | #define DEFAULT_DIB8000_I2C_ADDRESS 18 | ||
38 | |||
39 | #if defined(CONFIG_DVB_DIB8000) || (defined(CONFIG_DVB_DIB8000_MODULE) && defined(MODULE)) | ||
40 | extern struct dvb_frontend *dib8000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, struct dib8000_config *cfg); | ||
41 | extern struct i2c_adapter *dib8000_get_i2c_master(struct dvb_frontend *, enum dibx000_i2c_interface, int); | ||
42 | |||
43 | extern int dib8000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, u8 default_addr, u8 first_addr); | ||
44 | |||
45 | extern int dib8000_set_gpio(struct dvb_frontend *, u8 num, u8 dir, u8 val); | ||
46 | extern int dib8000_set_wbd_ref(struct dvb_frontend *, u16 value); | ||
47 | extern int dib8000_pid_filter_ctrl(struct dvb_frontend *, u8 onoff); | ||
48 | extern int dib8000_pid_filter(struct dvb_frontend *, u8 id, u16 pid, u8 onoff); | ||
49 | extern int dib8000_set_tune_state(struct dvb_frontend *fe, enum frontend_tune_state tune_state); | ||
50 | extern enum frontend_tune_state dib8000_get_tune_state(struct dvb_frontend *fe); | ||
51 | extern void dib8000_pwm_agc_reset(struct dvb_frontend *fe); | ||
52 | extern s32 dib8000_get_adc_power(struct dvb_frontend *fe, u8 mode); | ||
53 | extern int dib8000_set_slave_frontend(struct dvb_frontend *fe, struct dvb_frontend *fe_slave); | ||
54 | extern int dib8000_remove_slave_frontend(struct dvb_frontend *fe); | ||
55 | extern struct dvb_frontend *dib8000_get_slave_frontend(struct dvb_frontend *fe, int slave_index); | ||
56 | #else | ||
57 | static inline struct dvb_frontend *dib8000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, struct dib8000_config *cfg) | ||
58 | { | ||
59 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
60 | return NULL; | ||
61 | } | ||
62 | |||
63 | static inline struct i2c_adapter *dib8000_get_i2c_master(struct dvb_frontend *fe, enum dibx000_i2c_interface i, int x) | ||
64 | { | ||
65 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
66 | return NULL; | ||
67 | } | ||
68 | |||
69 | static inline int dib8000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, u8 default_addr, u8 first_addr) | ||
70 | { | ||
71 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
72 | return -ENODEV; | ||
73 | } | ||
74 | |||
75 | static inline int dib8000_set_gpio(struct dvb_frontend *fe, u8 num, u8 dir, u8 val) | ||
76 | { | ||
77 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
78 | return -ENODEV; | ||
79 | } | ||
80 | |||
81 | static inline int dib8000_set_wbd_ref(struct dvb_frontend *fe, u16 value) | ||
82 | { | ||
83 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
84 | return -ENODEV; | ||
85 | } | ||
86 | |||
87 | static inline int dib8000_pid_filter_ctrl(struct dvb_frontend *fe, u8 onoff) | ||
88 | { | ||
89 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
90 | return -ENODEV; | ||
91 | } | ||
92 | |||
93 | static inline int dib8000_pid_filter(struct dvb_frontend *fe, u8 id, u16 pid, u8 onoff) | ||
94 | { | ||
95 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
96 | return -ENODEV; | ||
97 | } | ||
98 | static inline int dib8000_set_tune_state(struct dvb_frontend *fe, enum frontend_tune_state tune_state) | ||
99 | { | ||
100 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
101 | return -ENODEV; | ||
102 | } | ||
103 | static inline enum frontend_tune_state dib8000_get_tune_state(struct dvb_frontend *fe) | ||
104 | { | ||
105 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
106 | return CT_SHUTDOWN; | ||
107 | } | ||
108 | static inline void dib8000_pwm_agc_reset(struct dvb_frontend *fe) | ||
109 | { | ||
110 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
111 | } | ||
112 | static inline s32 dib8000_get_adc_power(struct dvb_frontend *fe, u8 mode) | ||
113 | { | ||
114 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
115 | return 0; | ||
116 | } | ||
117 | static inline int dib8000_set_slave_frontend(struct dvb_frontend *fe, struct dvb_frontend *fe_slave) | ||
118 | { | ||
119 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
120 | return -ENODEV; | ||
121 | } | ||
122 | |||
123 | int dib8000_remove_slave_frontend(struct dvb_frontend *fe) | ||
124 | { | ||
125 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
126 | return -ENODEV; | ||
127 | } | ||
128 | |||
129 | static inline struct dvb_frontend *dib8000_get_slave_frontend(struct dvb_frontend *fe, int slave_index) | ||
130 | { | ||
131 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
132 | return NULL; | ||
133 | } | ||
134 | #endif | ||
135 | |||
136 | #endif | ||