2014-04-15 04:55:12 +04:00
/*
* Silicon Labs Si2168 DVB - T / T2 / C demodulator driver
*
* Copyright ( C ) 2014 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 .
*/
2014-04-11 05:00:50 +04:00
# ifndef SI2168_PRIV_H
# define SI2168_PRIV_H
# include "si2168.h"
# include "dvb_frontend.h"
# include <linux/firmware.h>
# include <linux/i2c-mux.h>
2014-07-18 02:43:37 +04:00
# define SI2168_A20_FIRMWARE "dvb-demod-si2168-a20-01.fw"
2014-07-13 17:52:18 +04:00
# define SI2168_A30_FIRMWARE "dvb-demod-si2168-a30-01.fw"
# define SI2168_B40_FIRMWARE "dvb-demod-si2168-b40-01.fw"
2014-07-22 09:03:59 +04:00
# define SI2168_B40_FIRMWARE_FALLBACK "dvb-demod-si2168-02.fw"
2014-04-11 05:00:50 +04:00
/* state struct */
struct si2168 {
struct i2c_client * client ;
struct i2c_adapter * adapter ;
struct mutex i2c_mutex ;
struct dvb_frontend fe ;
fe_delivery_system_t delivery_system ;
fe_status_t fe_status ;
bool active ;
2014-08-25 22:07:04 +04:00
bool fw_loaded ;
2014-08-11 23:58:10 +04:00
u8 ts_mode ;
2014-04-11 05:00:50 +04:00
} ;
/* firmare command struct */
2014-07-13 17:52:17 +04:00
# define SI2168_ARGLEN 30
2014-04-11 05:00:50 +04:00
struct si2168_cmd {
2014-07-13 17:52:17 +04:00
u8 args [ SI2168_ARGLEN ] ;
2014-04-11 05:00:50 +04:00
unsigned wlen ;
unsigned rlen ;
} ;
# endif