2011-07-03 13:42:18 -03:00
# ifndef _DRXK_H_
# define _DRXK_H_
2013-03-21 16:11:54 -03:00
# include <linux/kconfig.h>
2011-07-03 13:42:18 -03:00
# include <linux/types.h>
# include <linux/i2c.h>
2011-07-10 08:24:26 -03:00
/**
* struct drxk_config - Configure the initial parameters for DRX - K
*
2013-04-28 11:47:44 -03:00
* @ adr : I2C address of the DRX - K
2012-01-20 18:30:58 -03:00
* @ parallel_ts : True means that the device uses parallel TS ,
2011-07-24 14:59:20 -03:00
* Serial otherwise .
2012-01-20 18:30:58 -03:00
* @ dynamic_clk : True means that the clock will be dynamically
* adjusted . Static clock otherwise .
2012-01-21 07:57:06 -03:00
* @ enable_merr_cfg : Enable SIO_PDR_PERR_CFG / SIO_PDR_MVAL_CFG .
2012-01-20 18:30:58 -03:00
* @ single_master : Device is on the single master mode
* @ no_i2c_bridge : Don ' t switch the I2C bridge to talk with tuner
* @ antenna_gpio : GPIO bit used to control the antenna
* @ antenna_dvbt : GPIO bit for changing antenna to DVB - C . A value of 1
2011-07-10 09:36:30 -03:00
* means that 1 = DVBC , 0 = DVBT . Zero means the opposite .
2012-01-20 19:13:07 -03:00
* @ mpeg_out_clk_strength : DRXK Mpeg output clock drive strength .
2012-01-20 18:30:58 -03:00
* @ microcode_name : Name of the firmware file with the microcode
2012-07-04 17:36:55 -03:00
* @ qam_demod_parameter_count : The number of parameters used for the command
* to set the demodulator parameters . All
* firmwares are using the 2 - parameter commmand .
* An exception is the " drxk_a3.mc " firmware ,
* which uses the 4 - parameter command .
* A value of 0 ( default ) or lower indicates that
* the correct number of parameters will be
* automatically detected .
2011-07-10 09:36:30 -03:00
*
* On the * _gpio vars , bit 0 is UIO - 1 , bit 1 is UIO - 2 and bit 2 is
* UIO - 3.
2011-07-10 08:24:26 -03:00
*/
2011-07-09 12:36:58 -03:00
struct drxk_config {
2011-07-10 08:24:26 -03:00
u8 adr ;
bool single_master ;
bool no_i2c_bridge ;
2011-07-24 14:59:20 -03:00
bool parallel_ts ;
2012-01-20 18:30:58 -03:00
bool dynamic_clk ;
2012-01-21 07:57:06 -03:00
bool enable_merr_cfg ;
2011-07-10 08:24:26 -03:00
2011-07-10 09:36:30 -03:00
bool antenna_dvbt ;
u16 antenna_gpio ;
2011-07-10 08:24:26 -03:00
2012-01-20 19:13:07 -03:00
u8 mpeg_out_clk_strength ;
int chunk_size ;
2011-11-19 11:37:14 -03:00
2012-07-04 17:36:55 -03:00
const char * microcode_name ;
int qam_demod_parameter_count ;
2011-07-09 12:36:58 -03:00
} ;
2015-02-18 14:12:42 -03:00
# if IS_REACHABLE(CONFIG_DVB_DRXK)
2011-07-09 12:36:58 -03:00
extern struct dvb_frontend * drxk_attach ( const struct drxk_config * config ,
2012-01-05 08:07:32 -02:00
struct i2c_adapter * i2c ) ;
2011-07-11 14:56:30 -03:00
# else
static inline struct dvb_frontend * drxk_attach ( const struct drxk_config * config ,
2012-01-05 08:07:32 -02:00
struct i2c_adapter * i2c )
2011-07-11 14:56:30 -03:00
{
printk ( KERN_WARNING " %s: driver disabled by Kconfig \n " , __func__ ) ;
return NULL ;
}
# endif
2011-07-03 13:42:18 -03:00
# endif