2011-07-03 20:42:18 +04:00
# ifndef _DRXK_H_
# define _DRXK_H_
2013-03-21 23:11:54 +04:00
# include <linux/kconfig.h>
2011-07-03 20:42:18 +04:00
# include <linux/types.h>
# include <linux/i2c.h>
2011-07-10 15:24:26 +04:00
/**
* struct drxk_config - Configure the initial parameters for DRX - K
*
2012-01-21 01:30:58 +04:00
* @ adr : I2C Address of the DRX - K
* @ parallel_ts : True means that the device uses parallel TS ,
2011-07-24 21:59:20 +04:00
* Serial otherwise .
2012-01-21 01:30:58 +04:00
* @ dynamic_clk : True means that the clock will be dynamically
* adjusted . Static clock otherwise .
2012-01-21 14:57:06 +04:00
* @ enable_merr_cfg : Enable SIO_PDR_PERR_CFG / SIO_PDR_MVAL_CFG .
2012-01-21 01:30:58 +04: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 16:36:30 +04:00
* means that 1 = DVBC , 0 = DVBT . Zero means the opposite .
2012-01-21 02:13:07 +04:00
* @ mpeg_out_clk_strength : DRXK Mpeg output clock drive strength .
2012-01-21 01:30:58 +04:00
* @ microcode_name : Name of the firmware file with the microcode
2012-07-05 00:36:55 +04: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 .
2012-10-02 23:01:15 +04:00
* @ load_firmware_sync : Force the firmware load to be synchronous .
2011-07-10 16:36:30 +04:00
*
* On the * _gpio vars , bit 0 is UIO - 1 , bit 1 is UIO - 2 and bit 2 is
* UIO - 3.
2011-07-10 15:24:26 +04:00
*/
2011-07-09 19:36:58 +04:00
struct drxk_config {
2011-07-10 15:24:26 +04:00
u8 adr ;
bool single_master ;
bool no_i2c_bridge ;
2011-07-24 21:59:20 +04:00
bool parallel_ts ;
2012-01-21 01:30:58 +04:00
bool dynamic_clk ;
2012-01-21 14:57:06 +04:00
bool enable_merr_cfg ;
2012-10-02 23:01:15 +04:00
bool load_firmware_sync ;
2011-07-10 15:24:26 +04:00
2011-07-10 16:36:30 +04:00
bool antenna_dvbt ;
u16 antenna_gpio ;
2011-07-10 15:24:26 +04:00
2012-01-21 02:13:07 +04:00
u8 mpeg_out_clk_strength ;
int chunk_size ;
2011-11-19 18:37:14 +04:00
2012-07-05 00:36:55 +04:00
const char * microcode_name ;
int qam_demod_parameter_count ;
2011-07-09 19:36:58 +04:00
} ;
2013-03-21 23:11:54 +04:00
# if IS_ENABLED(CONFIG_DVB_DRXK)
2011-07-09 19:36:58 +04:00
extern struct dvb_frontend * drxk_attach ( const struct drxk_config * config ,
2012-01-05 14:07:32 +04:00
struct i2c_adapter * i2c ) ;
2011-07-11 21:56:30 +04:00
# else
static inline struct dvb_frontend * drxk_attach ( const struct drxk_config * config ,
2012-01-05 14:07:32 +04:00
struct i2c_adapter * i2c )
2011-07-11 21:56:30 +04:00
{
printk ( KERN_WARNING " %s: driver disabled by Kconfig \n " , __func__ ) ;
return NULL ;
}
# endif
2011-07-03 20:42:18 +04:00
# endif