1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * stv6110.h
4  *
5  * Driver for ST STV6110 satellite tuner IC.
6  *
7  * Copyright (C) 2009 NetUP Inc.
8  * Copyright (C) 2009 Igor M. Liplianin <liplianin@netup.ru>
9  */
10 
11 #ifndef __DVB_STV6110_H__
12 #define __DVB_STV6110_H__
13 
14 #include <linux/i2c.h>
15 #include <media/dvb_frontend.h>
16 
17 /* registers */
18 #define RSTV6110_CTRL1		0
19 #define RSTV6110_CTRL2		1
20 #define RSTV6110_TUNING1	2
21 #define RSTV6110_TUNING2	3
22 #define RSTV6110_CTRL3		4
23 #define RSTV6110_STAT1		5
24 #define RSTV6110_STAT2		6
25 #define RSTV6110_STAT3		7
26 
27 struct stv6110_config {
28 	u8 i2c_address;
29 	u32 mclk;
30 	u8 gain;
31 	u8 clk_div;	/* divisor value for the output clock */
32 };
33 
34 #if IS_REACHABLE(CONFIG_DVB_STV6110)
35 extern struct dvb_frontend *stv6110_attach(struct dvb_frontend *fe,
36 					const struct stv6110_config *config,
37 					struct i2c_adapter *i2c);
38 #else
39 static inline struct dvb_frontend *stv6110_attach(struct dvb_frontend *fe,
40 					const struct stv6110_config *config,
41 					struct i2c_adapter *i2c)
42 {
43 	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
44 	return NULL;
45 }
46 #endif
47 
48 #endif
49