2012-03-30 15:21:25 +04: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 .
*/
# ifndef AF9033_H
# define AF9033_H
2014-09-01 05:57:26 +04:00
/*
2016-11-06 23:55:36 +03:00
* I2C address : 0x1c , 0x1d , 0x1e , 0x1f
2014-09-01 05:57:26 +04:00
*/
2012-03-30 15:21:25 +04:00
struct af9033_config {
/*
* clock Hz
* 12000000 , 22000000 , 24000000 , 34000000 , 32000000 , 28000000 , 26000000 ,
* 30000000 , 36000000 , 20480000 , 16384000
*/
u32 clock ;
2013-01-07 16:48:03 +04:00
/*
* ADC multiplier
*/
# define AF9033_ADC_MULTIPLIER_1X 0
# define AF9033_ADC_MULTIPLIER_2X 1
u8 adc_multiplier ;
2012-03-30 15:21:25 +04:00
/*
* tuner
*/
# define AF9033_TUNER_TUA9001 0x27 /* Infineon TUA 9001 */
# define AF9033_TUNER_FC0011 0x28 /* Fitipower FC0011 */
2012-12-03 01:47:00 +04:00
# define AF9033_TUNER_FC0012 0x2e /* Fitipower FC0012 */
2012-04-02 21:18:16 +04:00
# define AF9033_TUNER_MXL5007T 0xa0 /* MaxLinear MxL5007T */
2012-04-03 00:25:14 +04:00
# define AF9033_TUNER_TDA18218 0xa1 /* NXP TDA 18218HN */
2012-09-20 21:57:17 +04:00
# define AF9033_TUNER_FC2580 0x32 /* FCI FC2580 */
2013-01-07 16:48:03 +04: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 15:21:25 +04: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 ;
2014-08-09 06:56:49 +04:00
/*
*
*/
bool dyn0_clk ;
2012-03-30 15:21:25 +04:00
2014-09-01 03:57:05 +04:00
/*
* PID filter ops
*/
struct af9033_ops * ops ;
/*
* frontend
* returned by that driver
*/
struct dvb_frontend * * fe ;
2016-11-07 03:14:18 +03:00
/*
* regmap for IT913x integrated tuner driver
* returned by that driver
*/
struct regmap * regmap ;
2014-09-01 03:57:05 +04:00
} ;
2012-03-30 15:21:25 +04:00
2014-03-14 21:29:06 +04:00
struct af9033_ops {
int ( * pid_filter_ctrl ) ( struct dvb_frontend * fe , int onoff ) ;
int ( * pid_filter ) ( struct dvb_frontend * fe , int index , u16 pid ,
int onoff ) ;
} ;
2014-02-13 22:40:59 +04:00
2012-03-30 15:21:25 +04:00
# endif /* AF9033_H */