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.34-rc4 117 lines 3.3 kB view raw
1/* 2 STV0900/0903 Multistandard Broadcast Frontend driver 3 Copyright (C) Manu Abraham <abraham.manu@gmail.com> 4 5 Copyright (C) ST Microelectronics 6 7 This program is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation; either version 2 of the License, or 10 (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program; if not, write to the Free Software 19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 20*/ 21 22#ifndef __STV090x_H 23#define __STV090x_H 24 25enum stv090x_demodulator { 26 STV090x_DEMODULATOR_0 = 1, 27 STV090x_DEMODULATOR_1 28}; 29 30enum stv090x_device { 31 STV0903 = 0, 32 STV0900, 33}; 34 35enum stv090x_mode { 36 STV090x_DUAL = 0, 37 STV090x_SINGLE 38}; 39 40enum stv090x_tsmode { 41 STV090x_TSMODE_SERIAL_PUNCTURED = 1, 42 STV090x_TSMODE_SERIAL_CONTINUOUS, 43 STV090x_TSMODE_PARALLEL_PUNCTURED, 44 STV090x_TSMODE_DVBCI 45}; 46 47enum stv090x_clkmode { 48 STV090x_CLK_INT = 0, /* Clk i/p = CLKI */ 49 STV090x_CLK_EXT = 2 /* Clk i/p = XTALI */ 50}; 51 52enum stv090x_i2crpt { 53 STV090x_RPTLEVEL_256 = 0, 54 STV090x_RPTLEVEL_128 = 1, 55 STV090x_RPTLEVEL_64 = 2, 56 STV090x_RPTLEVEL_32 = 3, 57 STV090x_RPTLEVEL_16 = 4, 58 STV090x_RPTLEVEL_8 = 5, 59 STV090x_RPTLEVEL_4 = 6, 60 STV090x_RPTLEVEL_2 = 7, 61}; 62 63enum stv090x_adc_range { 64 STV090x_ADC_2Vpp = 0, 65 STV090x_ADC_1Vpp = 1 66}; 67 68struct stv090x_config { 69 enum stv090x_device device; 70 enum stv090x_mode demod_mode; 71 enum stv090x_clkmode clk_mode; 72 73 u32 xtal; /* default: 8000000 */ 74 u8 address; /* default: 0x68 */ 75 76 u8 ts1_mode; 77 u8 ts2_mode; 78 u32 ts1_clk; 79 u32 ts2_clk; 80 81 enum stv090x_i2crpt repeater_level; 82 83 u8 tuner_bbgain; /* default: 10db */ 84 enum stv090x_adc_range adc1_range; /* default: 2Vpp */ 85 enum stv090x_adc_range adc2_range; /* default: 2Vpp */ 86 87 bool diseqc_envelope_mode; 88 89 int (*tuner_init) (struct dvb_frontend *fe); 90 int (*tuner_set_mode) (struct dvb_frontend *fe, enum tuner_mode mode); 91 int (*tuner_set_frequency) (struct dvb_frontend *fe, u32 frequency); 92 int (*tuner_get_frequency) (struct dvb_frontend *fe, u32 *frequency); 93 int (*tuner_set_bandwidth) (struct dvb_frontend *fe, u32 bandwidth); 94 int (*tuner_get_bandwidth) (struct dvb_frontend *fe, u32 *bandwidth); 95 int (*tuner_set_bbgain) (struct dvb_frontend *fe, u32 gain); 96 int (*tuner_get_bbgain) (struct dvb_frontend *fe, u32 *gain); 97 int (*tuner_set_refclk) (struct dvb_frontend *fe, u32 refclk); 98 int (*tuner_get_status) (struct dvb_frontend *fe, u32 *status); 99}; 100 101#if defined(CONFIG_DVB_STV090x) || (defined(CONFIG_DVB_STV090x_MODULE) && defined(MODULE)) 102 103extern struct dvb_frontend *stv090x_attach(const struct stv090x_config *config, 104 struct i2c_adapter *i2c, 105 enum stv090x_demodulator demod); 106#else 107 108static inline struct dvb_frontend *stv090x_attach(const struct stv090x_config *config, 109 struct i2c_adapter *i2c, 110 enum stv090x_demodulator demod) 111{ 112 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 113 return NULL; 114} 115#endif /* CONFIG_DVB_STV090x */ 116 117#endif /* __STV090x_H */