1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef LINUX_FC0011_H_ 3*4882a593Smuzhiyun #define LINUX_FC0011_H_ 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <media/dvb_frontend.h> 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun /** struct fc0011_config - fc0011 hardware config 9*4882a593Smuzhiyun * 10*4882a593Smuzhiyun * @i2c_address: I2C bus address. 11*4882a593Smuzhiyun */ 12*4882a593Smuzhiyun struct fc0011_config { 13*4882a593Smuzhiyun u8 i2c_address; 14*4882a593Smuzhiyun }; 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun /** enum fc0011_fe_callback_commands - Frontend callbacks 17*4882a593Smuzhiyun * 18*4882a593Smuzhiyun * @FC0011_FE_CALLBACK_POWER: Power on tuner hardware. 19*4882a593Smuzhiyun * @FC0011_FE_CALLBACK_RESET: Request a tuner reset. 20*4882a593Smuzhiyun */ 21*4882a593Smuzhiyun enum fc0011_fe_callback_commands { 22*4882a593Smuzhiyun FC0011_FE_CALLBACK_POWER, 23*4882a593Smuzhiyun FC0011_FE_CALLBACK_RESET, 24*4882a593Smuzhiyun }; 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun #if IS_REACHABLE(CONFIG_MEDIA_TUNER_FC0011) 27*4882a593Smuzhiyun struct dvb_frontend *fc0011_attach(struct dvb_frontend *fe, 28*4882a593Smuzhiyun struct i2c_adapter *i2c, 29*4882a593Smuzhiyun const struct fc0011_config *config); 30*4882a593Smuzhiyun #else 31*4882a593Smuzhiyun static inline fc0011_attach(struct dvb_frontend * fe,struct i2c_adapter * i2c,const struct fc0011_config * config)32*4882a593Smuzhiyunstruct dvb_frontend *fc0011_attach(struct dvb_frontend *fe, 33*4882a593Smuzhiyun struct i2c_adapter *i2c, 34*4882a593Smuzhiyun const struct fc0011_config *config) 35*4882a593Smuzhiyun { 36*4882a593Smuzhiyun dev_err(&i2c->dev, "fc0011 driver disabled in Kconfig\n"); 37*4882a593Smuzhiyun return NULL; 38*4882a593Smuzhiyun } 39*4882a593Smuzhiyun #endif 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun #endif /* LINUX_FC0011_H_ */ 42