1 #ifndef SI21XX_H 2 #define SI21XX_H 3 4 #include <linux/dvb/frontend.h> 5 #include "dvb_frontend.h" 6 7 struct si21xx_config { 8 /* the demodulator's i2c address */ 9 u8 demod_address; 10 11 /* minimum delay before retuning */ 12 int min_delay_ms; 13 }; 14 15 #if IS_REACHABLE(CONFIG_DVB_SI21XX) 16 extern struct dvb_frontend *si21xx_attach(const struct si21xx_config *config, 17 struct i2c_adapter *i2c); 18 #else 19 static inline struct dvb_frontend *si21xx_attach( 20 const struct si21xx_config *config, struct i2c_adapter *i2c) 21 { 22 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 23 return NULL; 24 } 25 #endif 26 27 static inline int si21xx_writeregister(struct dvb_frontend *fe, u8 reg, u8 val) 28 { 29 int r = 0; 30 u8 buf[] = {reg, val}; 31 if (fe->ops.write) 32 r = fe->ops.write(fe, buf, 2); 33 return r; 34 } 35 36 #endif 37