diff options
Diffstat (limited to 'drivers/media/dvb-frontends/dib8000.h')
-rw-r--r-- | drivers/media/dvb-frontends/dib8000.h | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/drivers/media/dvb-frontends/dib8000.h b/drivers/media/dvb-frontends/dib8000.h new file mode 100644 index 000000000000..39591bb172c1 --- /dev/null +++ b/drivers/media/dvb-frontends/dib8000.h | |||
@@ -0,0 +1,174 @@ | |||
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 | u8 enMpegOutput:1; | ||
36 | }; | ||
37 | |||
38 | #define DEFAULT_DIB8000_I2C_ADDRESS 18 | ||
39 | |||
40 | #if defined(CONFIG_DVB_DIB8000) || (defined(CONFIG_DVB_DIB8000_MODULE) && defined(MODULE)) | ||
41 | extern struct dvb_frontend *dib8000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, struct dib8000_config *cfg); | ||
42 | extern struct i2c_adapter *dib8000_get_i2c_master(struct dvb_frontend *, enum dibx000_i2c_interface, int); | ||
43 | |||
44 | extern int dib8000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, | ||
45 | u8 default_addr, u8 first_addr, u8 is_dib8096p); | ||
46 | |||
47 | extern int dib8000_set_gpio(struct dvb_frontend *, u8 num, u8 dir, u8 val); | ||
48 | extern int dib8000_set_wbd_ref(struct dvb_frontend *, u16 value); | ||
49 | extern int dib8000_pid_filter_ctrl(struct dvb_frontend *, u8 onoff); | ||
50 | extern int dib8000_pid_filter(struct dvb_frontend *, u8 id, u16 pid, u8 onoff); | ||
51 | extern int dib8000_set_tune_state(struct dvb_frontend *fe, enum frontend_tune_state tune_state); | ||
52 | extern enum frontend_tune_state dib8000_get_tune_state(struct dvb_frontend *fe); | ||
53 | extern void dib8000_pwm_agc_reset(struct dvb_frontend *fe); | ||
54 | extern s32 dib8000_get_adc_power(struct dvb_frontend *fe, u8 mode); | ||
55 | extern struct i2c_adapter *dib8096p_get_i2c_tuner(struct dvb_frontend *fe); | ||
56 | extern int dib8096p_tuner_sleep(struct dvb_frontend *fe, int onoff); | ||
57 | extern int dib8090p_get_dc_power(struct dvb_frontend *fe, u8 IQ); | ||
58 | extern u32 dib8000_ctrl_timf(struct dvb_frontend *fe, | ||
59 | uint8_t op, uint32_t timf); | ||
60 | extern int dib8000_update_pll(struct dvb_frontend *fe, | ||
61 | struct dibx000_bandwidth_config *pll); | ||
62 | extern int dib8000_set_slave_frontend(struct dvb_frontend *fe, struct dvb_frontend *fe_slave); | ||
63 | extern int dib8000_remove_slave_frontend(struct dvb_frontend *fe); | ||
64 | extern struct dvb_frontend *dib8000_get_slave_frontend(struct dvb_frontend *fe, int slave_index); | ||
65 | #else | ||
66 | static inline struct dvb_frontend *dib8000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, struct dib8000_config *cfg) | ||
67 | { | ||
68 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
69 | return NULL; | ||
70 | } | ||
71 | |||
72 | static inline struct i2c_adapter *dib8000_get_i2c_master(struct dvb_frontend *fe, enum dibx000_i2c_interface i, int x) | ||
73 | { | ||
74 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
75 | return NULL; | ||
76 | } | ||
77 | |||
78 | static inline int dib8000_i2c_enumeration(struct i2c_adapter *host, | ||
79 | int no_of_demods, u8 default_addr, u8 first_addr, | ||
80 | u8 is_dib8096p) | ||
81 | { | ||
82 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
83 | return -ENODEV; | ||
84 | } | ||
85 | |||
86 | static inline int dib8000_set_gpio(struct dvb_frontend *fe, u8 num, u8 dir, u8 val) | ||
87 | { | ||
88 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
89 | return -ENODEV; | ||
90 | } | ||
91 | |||
92 | static inline int dib8000_set_wbd_ref(struct dvb_frontend *fe, u16 value) | ||
93 | { | ||
94 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
95 | return -ENODEV; | ||
96 | } | ||
97 | |||
98 | static inline int dib8000_pid_filter_ctrl(struct dvb_frontend *fe, u8 onoff) | ||
99 | { | ||
100 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
101 | return -ENODEV; | ||
102 | } | ||
103 | |||
104 | static inline int dib8000_pid_filter(struct dvb_frontend *fe, u8 id, u16 pid, u8 onoff) | ||
105 | { | ||
106 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
107 | return -ENODEV; | ||
108 | } | ||
109 | static inline int dib8000_set_tune_state(struct dvb_frontend *fe, enum frontend_tune_state tune_state) | ||
110 | { | ||
111 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
112 | return -ENODEV; | ||
113 | } | ||
114 | static inline enum frontend_tune_state dib8000_get_tune_state(struct dvb_frontend *fe) | ||
115 | { | ||
116 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
117 | return CT_SHUTDOWN; | ||
118 | } | ||
119 | static inline void dib8000_pwm_agc_reset(struct dvb_frontend *fe) | ||
120 | { | ||
121 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
122 | } | ||
123 | static inline struct i2c_adapter *dib8096p_get_i2c_tuner(struct dvb_frontend *fe) | ||
124 | { | ||
125 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
126 | return NULL; | ||
127 | } | ||
128 | static inline int dib8096p_tuner_sleep(struct dvb_frontend *fe, int onoff) | ||
129 | { | ||
130 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
131 | return 0; | ||
132 | } | ||
133 | static inline s32 dib8000_get_adc_power(struct dvb_frontend *fe, u8 mode) | ||
134 | { | ||
135 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
136 | return 0; | ||
137 | } | ||
138 | static inline int dib8090p_get_dc_power(struct dvb_frontend *fe, u8 IQ) | ||
139 | { | ||
140 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
141 | return 0; | ||
142 | } | ||
143 | static inline u32 dib8000_ctrl_timf(struct dvb_frontend *fe, | ||
144 | uint8_t op, uint32_t timf) | ||
145 | { | ||
146 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
147 | return 0; | ||
148 | } | ||
149 | static inline int dib8000_update_pll(struct dvb_frontend *fe, | ||
150 | struct dibx000_bandwidth_config *pll) | ||
151 | { | ||
152 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
153 | return -ENODEV; | ||
154 | } | ||
155 | static inline int dib8000_set_slave_frontend(struct dvb_frontend *fe, struct dvb_frontend *fe_slave) | ||
156 | { | ||
157 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
158 | return -ENODEV; | ||
159 | } | ||
160 | |||
161 | int dib8000_remove_slave_frontend(struct dvb_frontend *fe) | ||
162 | { | ||
163 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
164 | return -ENODEV; | ||
165 | } | ||
166 | |||
167 | static inline struct dvb_frontend *dib8000_get_slave_frontend(struct dvb_frontend *fe, int slave_index) | ||
168 | { | ||
169 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
170 | return NULL; | ||
171 | } | ||
172 | #endif | ||
173 | |||
174 | #endif | ||