| Patrick Boettcher | 77e2c0f | 2009-08-17 07:01:10 -0300 | [diff] [blame] | 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); | 
| Olivier Grenie | f8731f4 | 2009-09-18 04:08:43 -0300 | [diff] [blame] | 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); | 
| Olivier Grenie | 9c78303 | 2009-12-07 07:49:40 -0300 | [diff] [blame] | 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); | 
| Olivier Grenie | 03245a5 | 2009-12-04 13:27:57 -0300 | [diff] [blame] | 51 | extern void dib8000_pwm_agc_reset(struct dvb_frontend *fe); | 
 | 52 | extern s32 dib8000_get_adc_power(struct dvb_frontend *fe, u8 mode); | 
| Olivier Grenie | 4c70e07 | 2011-01-03 15:33:37 -0300 | [diff] [blame] | 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); | 
| Olivier Grenie | b4d6046e | 2011-01-04 13:08:14 -0300 | [diff] [blame] | 55 | extern struct dvb_frontend *dib8000_get_slave_frontend(struct dvb_frontend *fe, int slave_index); | 
| Patrick Boettcher | 77e2c0f | 2009-08-17 07:01:10 -0300 | [diff] [blame] | 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 |  | 
| Olivier Grenie | 03245a5 | 2009-12-04 13:27:57 -0300 | [diff] [blame] | 69 | static inline int dib8000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, u8 default_addr, u8 first_addr) | 
| Patrick Boettcher | 77e2c0f | 2009-08-17 07:01:10 -0300 | [diff] [blame] | 70 | { | 
 | 71 | 	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | 
 | 72 | 	return -ENODEV; | 
 | 73 | } | 
 | 74 |  | 
| Olivier Grenie | 03245a5 | 2009-12-04 13:27:57 -0300 | [diff] [blame] | 75 | static inline int dib8000_set_gpio(struct dvb_frontend *fe, u8 num, u8 dir, u8 val) | 
| Patrick Boettcher | 77e2c0f | 2009-08-17 07:01:10 -0300 | [diff] [blame] | 76 | { | 
 | 77 | 	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | 
 | 78 | 	return -ENODEV; | 
 | 79 | } | 
 | 80 |  | 
| Olivier Grenie | 03245a5 | 2009-12-04 13:27:57 -0300 | [diff] [blame] | 81 | static inline int dib8000_set_wbd_ref(struct dvb_frontend *fe, u16 value) | 
| Patrick Boettcher | 77e2c0f | 2009-08-17 07:01:10 -0300 | [diff] [blame] | 82 | { | 
 | 83 | 	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | 
 | 84 | 	return -ENODEV; | 
 | 85 | } | 
| Olivier Grenie | f8731f4 | 2009-09-18 04:08:43 -0300 | [diff] [blame] | 86 |  | 
| Olivier Grenie | 03245a5 | 2009-12-04 13:27:57 -0300 | [diff] [blame] | 87 | static inline int dib8000_pid_filter_ctrl(struct dvb_frontend *fe, u8 onoff) | 
| Olivier Grenie | f8731f4 | 2009-09-18 04:08:43 -0300 | [diff] [blame] | 88 | { | 
 | 89 | 	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | 
 | 90 | 	return -ENODEV; | 
 | 91 | } | 
 | 92 |  | 
| Olivier Grenie | 03245a5 | 2009-12-04 13:27:57 -0300 | [diff] [blame] | 93 | static inline int dib8000_pid_filter(struct dvb_frontend *fe, u8 id, u16 pid, u8 onoff) | 
| Olivier Grenie | f8731f4 | 2009-09-18 04:08:43 -0300 | [diff] [blame] | 94 | { | 
 | 95 | 	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | 
 | 96 | 	return -ENODEV; | 
 | 97 | } | 
| Olivier Grenie | 9c78303 | 2009-12-07 07:49:40 -0300 | [diff] [blame] | 98 | static inline int dib8000_set_tune_state(struct dvb_frontend *fe, enum frontend_tune_state tune_state) | 
| Olivier Grenie | 03245a5 | 2009-12-04 13:27:57 -0300 | [diff] [blame] | 99 | { | 
 | 100 | 	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | 
 | 101 | 	return -ENODEV; | 
 | 102 | } | 
| Olivier Grenie | 9c78303 | 2009-12-07 07:49:40 -0300 | [diff] [blame] | 103 | static inline enum frontend_tune_state dib8000_get_tune_state(struct dvb_frontend *fe) | 
| Olivier Grenie | 03245a5 | 2009-12-04 13:27:57 -0300 | [diff] [blame] | 104 | { | 
 | 105 | 	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | 
| Mauro Carvalho Chehab | 9afc802 | 2009-12-18 07:47:44 -0300 | [diff] [blame] | 106 | 	return CT_SHUTDOWN; | 
| Olivier Grenie | 03245a5 | 2009-12-04 13:27:57 -0300 | [diff] [blame] | 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__); | 
| Wolfram Sang | 2b0691c | 2010-04-05 01:14:26 -0300 | [diff] [blame] | 115 | 	return 0; | 
| Olivier Grenie | 03245a5 | 2009-12-04 13:27:57 -0300 | [diff] [blame] | 116 | } | 
| Olivier Grenie | 4c70e07 | 2011-01-03 15:33:37 -0300 | [diff] [blame] | 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 |  | 
| Olivier Grenie | b4d6046e | 2011-01-04 13:08:14 -0300 | [diff] [blame] | 129 | static inline struct dvb_frontend *dib8000_get_slave_frontend(struct dvb_frontend *fe, int slave_index) | 
 | 130 | { | 
| Olivier Grenie | 4c70e07 | 2011-01-03 15:33:37 -0300 | [diff] [blame] | 131 | 	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | 
| Olivier Grenie | b4d6046e | 2011-01-04 13:08:14 -0300 | [diff] [blame] | 132 | 	return NULL; | 
| Olivier Grenie | 4c70e07 | 2011-01-03 15:33:37 -0300 | [diff] [blame] | 133 | } | 
| Patrick Boettcher | 77e2c0f | 2009-08-17 07:01:10 -0300 | [diff] [blame] | 134 | #endif | 
 | 135 |  | 
 | 136 | #endif |