2012-03-30 08:21:25 -03:00
/*
* Afatech AF9033 demodulator driver
*
* Copyright ( C ) 2009 Antti Palosaari < crope @ iki . fi >
* Copyright ( C ) 2012 Antti Palosaari < crope @ iki . fi >
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 2 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License along
* with this program ; if not , write to the Free Software Foundation , Inc . ,
* 51 Franklin Street , Fifth Floor , Boston , MA 02110 - 1301 USA .
*/
# ifndef AF9033_H
# define AF9033_H
2013-03-21 16:11:54 -03:00
# include <linux/kconfig.h>
2012-03-30 08:21:25 -03:00
struct af9033_config {
/*
* I2C address
*/
u8 i2c_addr ;
/*
* clock Hz
* 12000000 , 22000000 , 24000000 , 34000000 , 32000000 , 28000000 , 26000000 ,
* 30000000 , 36000000 , 20480000 , 16384000
*/
u32 clock ;
2013-01-07 09:48:03 -03:00
/*
* ADC multiplier
*/
# define AF9033_ADC_MULTIPLIER_1X 0
# define AF9033_ADC_MULTIPLIER_2X 1
u8 adc_multiplier ;
2012-03-30 08:21:25 -03:00
/*
* tuner
*/
# define AF9033_TUNER_TUA9001 0x27 /* Infineon TUA 9001 */
# define AF9033_TUNER_FC0011 0x28 /* Fitipower FC0011 */
2012-12-02 18:47:00 -03:00
# define AF9033_TUNER_FC0012 0x2e /* Fitipower FC0012 */
2012-04-02 14:18:16 -03:00
# define AF9033_TUNER_MXL5007T 0xa0 /* MaxLinear MxL5007T */
2012-04-02 17:25:14 -03:00
# define AF9033_TUNER_TDA18218 0xa1 /* NXP TDA 18218HN */
2012-09-20 14:57:17 -03:00
# define AF9033_TUNER_FC2580 0x32 /* FCI FC2580 */
2013-01-07 09:48:03 -03:00
/* 50-5f Omega */
# define AF9033_TUNER_IT9135_38 0x38 /* Omega */
# define AF9033_TUNER_IT9135_51 0x51 /* Omega LNA config 1 */
# define AF9033_TUNER_IT9135_52 0x52 /* Omega LNA config 2 */
/* 60-6f Omega v2 */
# define AF9033_TUNER_IT9135_60 0x60 /* Omega v2 */
# define AF9033_TUNER_IT9135_61 0x61 /* Omega v2 LNA config 1 */
# define AF9033_TUNER_IT9135_62 0x62 /* Omega v2 LNA config 2 */
2012-03-30 08:21:25 -03:00
u8 tuner ;
/*
* TS settings
*/
# define AF9033_TS_MODE_USB 0
# define AF9033_TS_MODE_PARALLEL 1
# define AF9033_TS_MODE_SERIAL 2
u8 ts_mode : 2 ;
/*
* input spectrum inversion
*/
bool spec_inv ;
} ;
2013-03-21 16:11:54 -03:00
# if IS_ENABLED(CONFIG_DVB_AF9033)
2012-03-30 08:21:25 -03:00
extern struct dvb_frontend * af9033_attach ( const struct af9033_config * config ,
struct i2c_adapter * i2c ) ;
# else
static inline struct dvb_frontend * af9033_attach (
const struct af9033_config * config , struct i2c_adapter * i2c )
{
2012-09-12 20:23:42 -03:00
pr_warn ( " %s: driver disabled by Kconfig \n " , __func__ ) ;
2012-03-30 08:21:25 -03:00
return NULL ;
}
# endif
# endif /* AF9033_H */