2019-05-27 08:55:06 +02:00
/* SPDX-License-Identifier: GPL-2.0-or-later */
2005-07-07 17:58:29 -07:00
/*
2005-08-08 09:22:43 -07:00
* Support for LGDT3302 and LGDT3303 - VSB / QAM
2005-07-07 17:58:29 -07:00
*
* Copyright ( C ) 2005 Wilson Michaels < wilsonmichaels @ earthlink . net >
*/
2005-07-27 11:46:00 -07:00
# ifndef LGDT330X_H
# define LGDT330X_H
2005-07-07 17:58:29 -07:00
# include <linux/dvb/frontend.h>
2005-08-08 09:22:43 -07:00
typedef enum lg_chip_t {
UNDEFINED ,
LGDT3302 ,
LGDT3303
} lg_chip_type ;
2018-03-09 10:53:26 -05: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 10:53:30 -05:00
* @ get_dvb_frontend :
* returns the frontend associated with this I2C client .
* Filled by the driver .
2018-03-09 10:53:26 -05:00
*/
2005-07-27 11:46:00 -07:00
struct lgdt330x_config
2005-07-07 17:58:29 -07:00
{
2005-08-08 09:22:43 -07:00
lg_chip_type demod_chip ;
int serial_mpeg ;
2005-07-27 11:45:55 -07:00
int ( * pll_rf_set ) ( struct dvb_frontend * fe , int index ) ;
2005-07-07 17:58:29 -07:00
int ( * set_ts_params ) ( struct dvb_frontend * fe , int is_punctured ) ;
2005-11-08 21:35:32 -08:00
int clock_polarity_flip ;
2018-03-09 10:53:30 -05:00
struct dvb_frontend * ( * get_dvb_frontend ) ( struct i2c_client * ) ;
2005-07-07 17:58:29 -07:00
} ;
2015-02-18 14:12:42 -03:00
# if IS_REACHABLE(CONFIG_DVB_LGDT330X)
2018-03-09 10:53:30 -05:00
struct dvb_frontend * lgdt330x_attach ( const struct lgdt330x_config * config ,
u8 demod_address ,
struct i2c_adapter * i2c ) ;
2006-08-08 09:10:08 -03:00
# else
2018-05-11 10:57:07 -04:00
static inline
2018-03-09 10:53:30 -05:00
struct dvb_frontend * lgdt330x_attach ( const struct lgdt330x_config * config ,
u8 demod_address ,
struct i2c_adapter * i2c )
2006-08-08 09:10:08 -03:00
{
2008-04-08 23:20:00 -03:00
printk ( KERN_WARNING " %s: driver disabled by Kconfig \n " , __func__ ) ;
2006-08-08 09:10:08 -03:00
return NULL ;
}
# endif // CONFIG_DVB_LGDT330X
2005-07-07 17:58:29 -07:00
2005-07-27 11:46:00 -07:00
# endif /* LGDT330X_H */