1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 /* 3 * stv0900.h 4 * 5 * Driver for ST STV0900 satellite demodulator IC. 6 * 7 * Copyright (C) ST Microelectronics. 8 * Copyright (C) 2009 NetUP Inc. 9 * Copyright (C) 2009 Igor M. Liplianin <liplianin@netup.ru> 10 */ 11 12 #ifndef STV0900_H 13 #define STV0900_H 14 15 #include <linux/dvb/frontend.h> 16 #include <media/dvb_frontend.h> 17 18 struct stv0900_reg { 19 u16 addr; 20 u8 val; 21 }; 22 23 struct stv0900_config { 24 u8 demod_address; 25 u8 demod_mode; 26 u32 xtal; 27 u8 clkmode;/* 0 for CLKI, 2 for XTALI */ 28 29 u8 diseqc_mode; 30 31 u8 path1_mode; 32 u8 path2_mode; 33 struct stv0900_reg *ts_config_regs; 34 u8 tun1_maddress;/* 0, 1, 2, 3 for 0xc0, 0xc2, 0xc4, 0xc6 */ 35 u8 tun2_maddress; 36 u8 tun1_adc;/* 1 for stv6110, 2 for stb6100 */ 37 u8 tun2_adc; 38 u8 tun1_type;/* for now 3 for stb6100 auto, else - software */ 39 u8 tun2_type; 40 /* Set device param to start dma */ 41 int (*set_ts_params)(struct dvb_frontend *fe, int is_punctured); 42 /* Hook for Lock LED */ 43 void (*set_lock_led)(struct dvb_frontend *fe, int offon); 44 }; 45 46 #if IS_REACHABLE(CONFIG_DVB_STV0900) 47 extern struct dvb_frontend *stv0900_attach(const struct stv0900_config *config, 48 struct i2c_adapter *i2c, int demod); 49 #else 50 static inline struct dvb_frontend *stv0900_attach(const struct stv0900_config *config, 51 struct i2c_adapter *i2c, int demod) 52 { 53 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 54 return NULL; 55 } 56 #endif 57 58 #endif 59 60