1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3 * Elonics R820T silicon tuner driver
4 *
5 * Copyright (C) 2012 Antti Palosaari <crope@iki.fi>
6 */
7
8 #ifndef R820T_H
9 #define R820T_H
10
11 #include <media/dvb_frontend.h>
12
13 enum r820t_chip {
14 CHIP_R820T,
15 CHIP_R620D,
16 CHIP_R828D,
17 CHIP_R828,
18 CHIP_R828S,
19 CHIP_R820C,
20 };
21
22 struct r820t_config {
23 u8 i2c_addr; /* 0x34 */
24 u32 xtal;
25 enum r820t_chip rafael_chip;
26 unsigned max_i2c_msg_len;
27 bool use_diplexer;
28 bool use_predetect;
29 };
30
31 #if IS_REACHABLE(CONFIG_MEDIA_TUNER_R820T)
32 struct dvb_frontend *r820t_attach(struct dvb_frontend *fe,
33 struct i2c_adapter *i2c,
34 const struct r820t_config *cfg);
35 #else
r820t_attach(struct dvb_frontend * fe,struct i2c_adapter * i2c,const struct r820t_config * cfg)36 static inline struct dvb_frontend *r820t_attach(struct dvb_frontend *fe,
37 struct i2c_adapter *i2c,
38 const struct r820t_config *cfg)
39 {
40 pr_warn("%s: driver disabled by Kconfig\n", __func__);
41 return NULL;
42 }
43 #endif
44
45 #endif
46