2009-03-03 17:35:25 +03:00
/*
* stv0900 . h
*
* Driver for ST STV0900 satellite demodulator IC .
*
* Copyright ( C ) ST Microelectronics .
* Copyright ( C ) 2009 NetUP Inc .
* Copyright ( C ) 2009 Igor M . Liplianin < liplianin @ netup . ru >
*
* 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 .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 675 Mass Ave , Cambridge , MA 0213 9 , USA .
*/
# ifndef STV0900_H
# define STV0900_H
2013-03-21 23:11:54 +04:00
# include <linux/kconfig.h>
2009-03-03 17:35:25 +03:00
# include <linux/dvb/frontend.h>
# include "dvb_frontend.h"
2009-06-19 12:45:23 +04:00
struct stv0900_reg {
u16 addr ;
u8 val ;
} ;
2009-03-03 17:35:25 +03:00
struct stv0900_config {
u8 demod_address ;
2009-10-17 15:58:26 +04:00
u8 demod_mode ;
2009-03-03 17:35:25 +03:00
u32 xtal ;
u8 clkmode ; /* 0 for CLKI, 2 for XTALI */
u8 diseqc_mode ;
u8 path1_mode ;
u8 path2_mode ;
2009-06-19 12:45:23 +04:00
struct stv0900_reg * ts_config_regs ;
2009-03-03 17:35:25 +03:00
u8 tun1_maddress ; /* 0, 1, 2, 3 for 0xc0, 0xc2, 0xc4, 0xc6 */
u8 tun2_maddress ;
u8 tun1_adc ; /* 1 for stv6110, 2 for stb6100 */
u8 tun2_adc ;
2009-12-15 02:24:56 +03:00
u8 tun1_type ; /* for now 3 for stb6100 auto, else - software */
u8 tun2_type ;
2009-11-17 04:22:32 +03:00
/* Set device param to start dma */
int ( * set_ts_params ) ( struct dvb_frontend * fe , int is_punctured ) ;
2011-02-26 00:41:22 +03:00
/* Hook for Lock LED */
void ( * set_lock_led ) ( struct dvb_frontend * fe , int offon ) ;
2009-03-03 17:35:25 +03:00
} ;
2015-02-18 20:12:42 +03:00
# if IS_REACHABLE(CONFIG_DVB_STV0900)
2009-03-03 17:35:25 +03:00
extern struct dvb_frontend * stv0900_attach ( const struct stv0900_config * config ,
struct i2c_adapter * i2c , int demod ) ;
# else
static inline struct dvb_frontend * stv0900_attach ( const struct stv0900_config * config ,
struct i2c_adapter * i2c , int demod )
{
printk ( KERN_WARNING " %s: driver disabled by Kconfig \n " , __func__ ) ;
return NULL ;
}
# endif
# endif