Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v3.1 139 lines 4.1 kB view raw
1/* 2 * Linux-DVB Driver for DiBcom's DiB0090 base-band RF Tuner. 3 * 4 * Copyright (C) 2005-7 DiBcom (http://www.dibcom.fr/) 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public License as 8 * published by the Free Software Foundation, version 2. 9 */ 10#ifndef DIB0090_H 11#define DIB0090_H 12 13struct dvb_frontend; 14struct i2c_adapter; 15 16#define DEFAULT_DIB0090_I2C_ADDRESS 0x60 17 18struct dib0090_io_config { 19 u32 clock_khz; 20 21 u8 pll_bypass:1; 22 u8 pll_range:1; 23 u8 pll_prediv:6; 24 u8 pll_loopdiv:6; 25 26 u8 adc_clock_ratio; /* valid is 8, 7 ,6 */ 27 u16 pll_int_loop_filt; 28}; 29 30struct dib0090_wbd_slope { 31 u16 max_freq; /* for every frequency less than or equal to that field: this information is correct */ 32 u16 slope_cold; 33 u16 offset_cold; 34 u16 slope_hot; 35 u16 offset_hot; 36 u8 wbd_gain; 37}; 38 39struct dib0090_low_if_offset_table { 40 int std; 41 u32 RF_freq; 42 s32 offset_khz; 43}; 44 45struct dib0090_config { 46 struct dib0090_io_config io; 47 int (*reset) (struct dvb_frontend *, int); 48 int (*sleep) (struct dvb_frontend *, int); 49 50 /* offset in kHz */ 51 int freq_offset_khz_uhf; 52 int freq_offset_khz_vhf; 53 54 int (*get_adc_power) (struct dvb_frontend *); 55 56 u8 clkouttobamse:1; /* activate or deactivate clock output */ 57 u8 analog_output; 58 59 u8 i2c_address; 60 /* add drives and other things if necessary */ 61 u16 wbd_vhf_offset; 62 u16 wbd_cband_offset; 63 u8 use_pwm_agc; 64 u8 clkoutdrive; 65 66 u8 ls_cfg_pad_drv; 67 u8 data_tx_drv; 68 69 u8 in_soc; 70 const struct dib0090_low_if_offset_table *low_if; 71 u8 fref_clock_ratio; 72 u16 force_cband_input; 73 struct dib0090_wbd_slope *wbd; 74}; 75 76#if defined(CONFIG_DVB_TUNER_DIB0090) || (defined(CONFIG_DVB_TUNER_DIB0090_MODULE) && defined(MODULE)) 77extern struct dvb_frontend *dib0090_register(struct dvb_frontend *fe, struct i2c_adapter *i2c, const struct dib0090_config *config); 78extern struct dvb_frontend *dib0090_fw_register(struct dvb_frontend *fe, struct i2c_adapter *i2c, const struct dib0090_config *config); 79extern void dib0090_dcc_freq(struct dvb_frontend *fe, u8 fast); 80extern void dib0090_pwm_gain_reset(struct dvb_frontend *fe); 81extern u16 dib0090_get_wbd_offset(struct dvb_frontend *tuner); 82extern int dib0090_gain_control(struct dvb_frontend *fe); 83extern enum frontend_tune_state dib0090_get_tune_state(struct dvb_frontend *fe); 84extern int dib0090_set_tune_state(struct dvb_frontend *fe, enum frontend_tune_state tune_state); 85extern void dib0090_get_current_gain(struct dvb_frontend *fe, u16 * rf, u16 * bb, u16 * rf_gain_limit, u16 * rflt); 86#else 87static inline struct dvb_frontend *dib0090_register(struct dvb_frontend *fe, struct i2c_adapter *i2c, struct dib0090_config *config) 88{ 89 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 90 return NULL; 91} 92 93static inline struct dvb_frontend *dib0090_fw_register(struct dvb_frontend *fe, struct i2c_adapter *i2c, struct dib0090_config *config) 94{ 95 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 96 return NULL; 97} 98 99static inline void dib0090_dcc_freq(struct dvb_frontend *fe, u8 fast) 100{ 101 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 102} 103 104static inline void dib0090_pwm_gain_reset(struct dvb_frontend *fe) 105{ 106 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 107} 108 109static inline u16 dib0090_get_wbd_offset(struct dvb_frontend *tuner) 110{ 111 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 112 return 0; 113} 114 115static inline int dib0090_gain_control(struct dvb_frontend *fe) 116{ 117 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 118 return -ENODEV; 119} 120 121static inline enum frontend_tune_state dib0090_get_tune_state(struct dvb_frontend *fe) 122{ 123 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 124 return CT_DONE; 125} 126 127static inline int dib0090_set_tune_state(struct dvb_frontend *fe, enum frontend_tune_state tune_state) 128{ 129 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 130 return -ENODEV; 131} 132 133static inline void dib0090_get_current_gain(struct dvb_frontend *fe, u16 * rf, u16 * bb, u16 * rf_gain_limit, u16 * rflt) 134{ 135 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 136} 137#endif 138 139#endif