/drivers/media/dvb/frontends/dib7000p.h
C++ Header | 156 lines | 128 code | 28 blank | 0 comment | 2 complexity | 0a5f5bdbbefc263f703168eb132ffd83 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.0, AGPL-1.0
1#ifndef DIB7000P_H 2#define DIB7000P_H 3 4#include "dibx000_common.h" 5 6struct dib7000p_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 *bw; 15 16#define DIB7000P_GPIO_DEFAULT_DIRECTIONS 0xffff 17 u16 gpio_dir; 18#define DIB7000P_GPIO_DEFAULT_VALUES 0x0000 19 u16 gpio_val; 20#define DIB7000P_GPIO_PWM_POS0(v) ((v & 0xf) << 12) 21#define DIB7000P_GPIO_PWM_POS1(v) ((v & 0xf) << 8 ) 22#define DIB7000P_GPIO_PWM_POS2(v) ((v & 0xf) << 4 ) 23#define DIB7000P_GPIO_PWM_POS3(v) (v & 0xf) 24#define DIB7000P_GPIO_DEFAULT_PWM_POS 0xffff 25 u16 gpio_pwm_pos; 26 27 u16 pwm_freq_div; 28 29 u8 quartz_direct; 30 31 u8 spur_protect; 32 33 int (*agc_control) (struct dvb_frontend *, u8 before); 34 35 u8 output_mode; 36 u8 disable_sample_and_hold:1; 37 38 u8 enable_current_mirror:1; 39 u16 diversity_delay; 40 41 u8 default_i2c_addr; 42 u8 enMpegOutput:1; 43}; 44 45#define DEFAULT_DIB7000P_I2C_ADDRESS 18 46 47#if defined(CONFIG_DVB_DIB7000P) || (defined(CONFIG_DVB_DIB7000P_MODULE) && \ 48 defined(MODULE)) 49extern struct dvb_frontend *dib7000p_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, struct dib7000p_config *cfg); 50extern struct i2c_adapter *dib7000p_get_i2c_master(struct dvb_frontend *, enum dibx000_i2c_interface, int); 51extern int dib7000p_i2c_enumeration(struct i2c_adapter *i2c, int no_of_demods, u8 default_addr, struct dib7000p_config cfg[]); 52extern int dib7000p_set_gpio(struct dvb_frontend *, u8 num, u8 dir, u8 val); 53extern int dib7000p_set_wbd_ref(struct dvb_frontend *, u16 value); 54extern int dib7000pc_detection(struct i2c_adapter *i2c_adap); 55extern int dib7000p_pid_filter(struct dvb_frontend *, u8 id, u16 pid, u8 onoff); 56extern int dib7000p_pid_filter_ctrl(struct dvb_frontend *fe, u8 onoff); 57extern int dib7000p_update_pll(struct dvb_frontend *fe, struct dibx000_bandwidth_config *bw); 58extern u32 dib7000p_ctrl_timf(struct dvb_frontend *fe, u8 op, u32 timf); 59extern int dib7090_agc_restart(struct dvb_frontend *fe, u8 restart); 60extern int dib7090_tuner_sleep(struct dvb_frontend *fe, int onoff); 61extern int dib7090_get_adc_power(struct dvb_frontend *fe); 62extern struct i2c_adapter *dib7090_get_i2c_tuner(struct dvb_frontend *fe); 63extern int dib7090_slave_reset(struct dvb_frontend *fe); 64#else 65static inline struct dvb_frontend *dib7000p_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, struct dib7000p_config *cfg) 66{ 67 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 68 return NULL; 69} 70 71static inline struct i2c_adapter *dib7000p_get_i2c_master(struct dvb_frontend *fe, enum dibx000_i2c_interface i, int x) 72{ 73 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 74 return NULL; 75} 76 77static inline int dib7000p_i2c_enumeration(struct i2c_adapter *i2c, int no_of_demods, u8 default_addr, struct dib7000p_config cfg[]) 78{ 79 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 80 return -ENODEV; 81} 82 83static inline int dib7000p_set_gpio(struct dvb_frontend *fe, u8 num, u8 dir, u8 val) 84{ 85 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 86 return -ENODEV; 87} 88 89static inline int dib7000p_set_wbd_ref(struct dvb_frontend *fe, u16 value) 90{ 91 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 92 return -ENODEV; 93} 94 95static inline int dib7000pc_detection(struct i2c_adapter *i2c_adap) 96{ 97 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 98 return -ENODEV; 99} 100 101static inline int dib7000p_pid_filter(struct dvb_frontend *fe, u8 id, u16 pid, u8 onoff) 102{ 103 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 104 return -ENODEV; 105} 106 107static inline int dib7000p_pid_filter_ctrl(struct dvb_frontend *fe, uint8_t onoff) 108{ 109 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 110 return -ENODEV; 111} 112 113static inline int dib7000p_update_pll(struct dvb_frontend *fe, struct dibx000_bandwidth_config *bw) 114{ 115 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 116 return -ENODEV; 117} 118 119static inline u32 dib7000p_ctrl_timf(struct dvb_frontend *fe, u8 op, u32 timf) 120{ 121 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 122 return 0; 123} 124 125static inline int dib7090_agc_restart(struct dvb_frontend *fe, u8 restart) 126{ 127 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 128 return -ENODEV; 129} 130 131static inline int dib7090_tuner_sleep(struct dvb_frontend *fe, int onoff) 132{ 133 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 134 return -ENODEV; 135} 136 137static inline int dib7090_get_adc_power(struct dvb_frontend *fe) 138{ 139 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 140 return -ENODEV; 141} 142 143static inline struct i2c_adapter *dib7090_get_i2c_tuner(struct dvb_frontend *fe) 144{ 145 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 146 return NULL; 147} 148 149static inline int dib7090_slave_reset(struct dvb_frontend *fe) 150{ 151 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 152 return -ENODEV; 153} 154#endif 155 156#endif