1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
2 | /* |
3 | DVB Driver for Philips tda827x / tda827xa Silicon tuners |
4 | |
5 | (c) 2005 Hartmut Hackmann |
6 | (c) 2007 Michael Krufky |
7 | |
8 | |
9 | */ |
10 | |
11 | #ifndef __DVB_TDA827X_H__ |
12 | #define __DVB_TDA827X_H__ |
13 | |
14 | #include <linux/i2c.h> |
15 | #include <media/dvb_frontend.h> |
16 | #include "tda8290.h" |
17 | |
18 | struct tda827x_config |
19 | { |
20 | /* saa7134 - provided callbacks */ |
21 | int (*init) (struct dvb_frontend *fe); |
22 | int (*sleep) (struct dvb_frontend *fe); |
23 | |
24 | /* interface to tda829x driver */ |
25 | enum tda8290_lna config; |
26 | int switch_addr; |
27 | |
28 | void (*agcf)(struct dvb_frontend *fe); |
29 | }; |
30 | |
31 | |
32 | /** |
33 | * tda827x_attach() - Attach a tda827x tuner to the supplied frontend structure |
34 | * |
35 | * @fe: Frontend to attach to. |
36 | * @addr: i2c address of the tuner. |
37 | * @i2c: i2c adapter to use. |
38 | * @cfg: optional callback function pointers. |
39 | * @return FE pointer on success, NULL on failure. |
40 | */ |
41 | #if IS_REACHABLE(CONFIG_MEDIA_TUNER_TDA827X) |
42 | extern struct dvb_frontend* tda827x_attach(struct dvb_frontend *fe, int addr, |
43 | struct i2c_adapter *i2c, |
44 | struct tda827x_config *cfg); |
45 | #else |
46 | static inline struct dvb_frontend* tda827x_attach(struct dvb_frontend *fe, |
47 | int addr, |
48 | struct i2c_adapter *i2c, |
49 | struct tda827x_config *cfg) |
50 | { |
51 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n" , __func__); |
52 | return NULL; |
53 | } |
54 | #endif // CONFIG_MEDIA_TUNER_TDA827X |
55 | |
56 | #endif // __DVB_TDA827X_H__ |
57 | |