2014-04-14 21:51:32 -03:00
/*
2014-11-14 18:19:37 -03:00
* Silicon Labs Si2146 / 2147 / 2148 / 2157 / 2158 silicon tuner driver
2014-04-14 21:51:32 -03:00
*
* 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-10 21:58:10 -03:00
# ifndef SI2157_PRIV_H
# define SI2157_PRIV_H
2014-07-13 10:52:20 -03:00
# include <linux/firmware.h>
2016-02-11 18:06:36 -02:00
# include <media/v4l2-mc.h>
2014-04-10 21:58:10 -03:00
# include "si2157.h"
/* state struct */
2014-12-05 17:46:30 -03:00
struct si2157_dev {
2014-04-10 21:58:10 -03:00
struct mutex i2c_mutex ;
struct dvb_frontend * fe ;
bool active ;
2014-07-15 16:34:36 -03:00
bool inversion ;
2014-11-24 03:57:33 -03:00
u8 chiptype ;
2015-05-05 13:54:17 -03:00
u8 if_port ;
2015-02-28 12:25:23 -03:00
u32 if_frequency ;
2014-09-07 11:20:34 -03:00
struct delayed_work stat_work ;
2016-02-11 18:06:36 -02:00
# if defined(CONFIG_MEDIA_CONTROLLER)
struct media_device * mdev ;
struct media_entity ent ;
struct media_pad pad [ TUNER_NUM_PADS ] ;
# endif
2014-04-10 21:58:10 -03:00
} ;
2014-11-24 03:57:33 -03:00
# define SI2157_CHIPTYPE_SI2157 0
# define SI2157_CHIPTYPE_SI2146 1
/* firmware command struct */
2014-04-10 21:58:10 -03:00
# define SI2157_ARGLEN 30
struct si2157_cmd {
u8 args [ SI2157_ARGLEN ] ;
2014-07-10 06:02:53 -03:00
unsigned wlen ;
unsigned rlen ;
2014-04-10 21:58:10 -03:00
} ;
2014-07-13 10:52:20 -03:00
# define SI2158_A20_FIRMWARE "dvb-tuner-si2158-a20-01.fw"
2014-04-10 21:58:10 -03:00
# endif