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 v2.6.36 108 lines 3.3 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_config { 31 struct dib0090_io_config io; 32 int (*reset) (struct dvb_frontend *, int); 33 int (*sleep) (struct dvb_frontend *, int); 34 35 /* offset in kHz */ 36 int freq_offset_khz_uhf; 37 int freq_offset_khz_vhf; 38 39 int (*get_adc_power) (struct dvb_frontend *); 40 41 u8 clkouttobamse:1; /* activate or deactivate clock output */ 42 u8 analog_output; 43 44 u8 i2c_address; 45 /* add drives and other things if necessary */ 46 u16 wbd_vhf_offset; 47 u16 wbd_cband_offset; 48 u8 use_pwm_agc; 49 u8 clkoutdrive; 50}; 51 52#if defined(CONFIG_DVB_TUNER_DIB0090) || (defined(CONFIG_DVB_TUNER_DIB0090_MODULE) && defined(MODULE)) 53extern struct dvb_frontend *dib0090_register(struct dvb_frontend *fe, struct i2c_adapter *i2c, const struct dib0090_config *config); 54extern void dib0090_dcc_freq(struct dvb_frontend *fe, u8 fast); 55extern void dib0090_pwm_gain_reset(struct dvb_frontend *fe); 56extern u16 dib0090_get_wbd_offset(struct dvb_frontend *tuner); 57extern int dib0090_gain_control(struct dvb_frontend *fe); 58extern enum frontend_tune_state dib0090_get_tune_state(struct dvb_frontend *fe); 59extern int dib0090_set_tune_state(struct dvb_frontend *fe, enum frontend_tune_state tune_state); 60extern void dib0090_get_current_gain(struct dvb_frontend *fe, u16 * rf, u16 * bb, u16 * rf_gain_limit, u16 * rflt); 61#else 62static inline struct dvb_frontend *dib0090_register(struct dvb_frontend *fe, struct i2c_adapter *i2c, struct dib0090_config *config) 63{ 64 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 65 return NULL; 66} 67 68static inline void dib0090_dcc_freq(struct dvb_frontend *fe, u8 fast) 69{ 70 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 71} 72 73static inline void dib0090_pwm_gain_reset(struct dvb_frontend *fe) 74{ 75 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 76} 77 78static inline u16 dib0090_get_wbd_offset(struct dvb_frontend *tuner) 79{ 80 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 81 return 0; 82} 83 84static inline int dib0090_gain_control(struct dvb_frontend *fe) 85{ 86 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 87 return -ENODEV; 88} 89 90static inline enum frontend_tune_state dib0090_get_tune_state(struct dvb_frontend *fe) 91{ 92 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 93 return CT_DONE; 94} 95 96static inline int dib0090_set_tune_state(struct dvb_frontend *fe, enum frontend_tune_state tune_state) 97{ 98 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 99 return -ENODEV; 100} 101 102static inline void dib0090_get_current_gain(struct dvb_frontend *fe, u16 * rf, u16 * bb, u16 * rf_gain_limit, u16 * rflt) 103{ 104 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 105} 106#endif 107 108#endif