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
17struct 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)
33extern struct dvb_frontend* ves1820_attach(const struct ves1820_config* config,
34					   struct i2c_adapter* i2c, u8 pwm);
35#else
36static 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