Merge tag 'for-linus-20190524' of git://git.kernel.dk/linux-block
[linux-2.6-microblaze.git] / drivers / media / tuners / r820t.h
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
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