1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3     VES1820  - Single Chip Cable Channel Receiver driver module
4 
5     Copyright (C) 1999 Convergence Integrated Media GmbH <ralph@convergence.de>
6 
7 */
8 
9 #ifndef VES1820_H
10 #define VES1820_H
11 
12 #include <linux/dvb/frontend.h>
13 
14 #define VES1820_SELAGC_PWM 0
15 #define VES1820_SELAGC_SIGNAMPERR 1
16 
17 struct ves1820_config
18 {
19 	/* the demodulator's i2c address */
20 	u8 demod_address;
21 
22 	/* value of XIN to use */
23 	u32 xin;
24 
25 	/* does inversion need inverted? */
26 	u8 invert:1;
27 
28 	/* SELAGC control */
29 	u8 selagc:1;
30 };
31 
32 #if IS_REACHABLE(CONFIG_DVB_VES1820)
33 extern struct dvb_frontend* ves1820_attach(const struct ves1820_config* config,
34 					   struct i2c_adapter* i2c, u8 pwm);
35 #else
36 static inline struct dvb_frontend* ves1820_attach(const struct ves1820_config* config,
37 					   struct i2c_adapter* i2c, u8 pwm)
38 {
39 	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
40 	return NULL;
41 }
42 #endif // CONFIG_DVB_VES1820
43 
44 #endif // VES1820_H
45