xref: /OK3568_Linux_fs/kernel/drivers/media/tuners/fc0011.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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*4882a593Smuzhiyun struct 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