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>
2014-08-31 22:57:26 -03:00
/*
* I2C address ( TODO : are these in 8 - bit format ? )
* 0x38 , 0x3a , 0x3c , 0x3e
*/
2012-03-30 08:21:25 -03:00
struct af9033_config {
/*
* 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 ;
2014-08-08 23:56:49 -03:00
/*
*
*/
bool dyn0_clk ;
2012-03-30 08:21:25 -03:00
2014-08-31 20:57:05 -03:00
/*
* PID filter ops
*/
struct af9033_ops * ops ;
/*
* frontend
* returned by that driver
*/
struct dvb_frontend * * fe ;
} ;
2012-03-30 08:21:25 -03:00
2014-03-14 14:29:06 -03: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 15:40:59 -03:00
2012-03-30 08:21:25 -03:00
# endif /* AF9033_H */