2005-07-08 04:58:29 +04:00
/*
2005-08-08 20:22:43 +04:00
* Support for LGDT3302 and LGDT3303 - VSB / QAM
2005-07-08 04:58:29 +04:00
*
* Copyright ( C ) 2005 Wilson Michaels < wilsonmichaels @ earthlink . net >
*
* 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 .
*
*/
2005-07-27 22:46:00 +04:00
# ifndef LGDT330X_H
# define LGDT330X_H
2005-07-08 04:58:29 +04:00
# include <linux/dvb/frontend.h>
2005-08-08 20:22:43 +04:00
typedef enum lg_chip_t {
UNDEFINED ,
LGDT3302 ,
LGDT3303
} lg_chip_type ;
2018-03-09 18:53:26 +03:00
/**
* struct lgdt330x_config - contains lgdt330x configuration
*
* @ demod_chip : LG demodulator chip LGDT3302 or LGDT3303
* @ serial_mpeg : MPEG hardware interface - 0 : parallel 1 : serial
* @ pll_rf_set : Callback function to set PLL interface
* @ set_ts_params : Callback function to set device param for start_dma
* @ clock_polarity_flip :
* Flip the polarity of the mpeg data transfer clock using alternate
* init data .
* This option applies ONLY to LGDT3303 - 0 : disabled ( default ) 1 : enabled
2018-03-09 18:53:30 +03:00
* @ get_dvb_frontend :
* returns the frontend associated with this I2C client .
* Filled by the driver .
2018-03-09 18:53:26 +03:00
*/
2005-07-27 22:46:00 +04:00
struct lgdt330x_config
2005-07-08 04:58:29 +04:00
{
2005-08-08 20:22:43 +04:00
lg_chip_type demod_chip ;
int serial_mpeg ;
2005-07-27 22:45:55 +04:00
int ( * pll_rf_set ) ( struct dvb_frontend * fe , int index ) ;
2005-07-08 04:58:29 +04:00
int ( * set_ts_params ) ( struct dvb_frontend * fe , int is_punctured ) ;
2005-11-09 08:35:32 +03:00
int clock_polarity_flip ;
2018-03-09 18:53:30 +03:00
struct dvb_frontend * ( * get_dvb_frontend ) ( struct i2c_client * ) ;
2005-07-08 04:58:29 +04:00
} ;
2015-02-18 20:12:42 +03:00
# if IS_REACHABLE(CONFIG_DVB_LGDT330X)
2018-03-09 18:53:30 +03:00
struct dvb_frontend * lgdt330x_attach ( const struct lgdt330x_config * config ,
u8 demod_address ,
struct i2c_adapter * i2c ) ;
2006-08-08 16:10:08 +04:00
# else
2018-05-11 17:57:07 +03:00
static inline
2018-03-09 18:53:30 +03:00
struct dvb_frontend * lgdt330x_attach ( const struct lgdt330x_config * config ,
u8 demod_address ,
struct i2c_adapter * i2c )
2006-08-08 16:10:08 +04:00
{
2008-04-09 06:20:00 +04:00
printk ( KERN_WARNING " %s: driver disabled by Kconfig \n " , __func__ ) ;
2006-08-08 16:10:08 +04:00
return NULL ;
}
# endif // CONFIG_DVB_LGDT330X
2005-07-08 04:58:29 +04:00
2005-07-27 22:46:00 +04:00
# endif /* LGDT330X_H */