Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / drivers / media / tuners / tea5767.h
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3 */
4
5 #ifndef __TEA5767_H__
6 #define __TEA5767_H__
7
8 #include <linux/i2c.h>
9 #include <media/dvb_frontend.h>
10
11 enum tea5767_xtal {
12         TEA5767_LOW_LO_32768    = 0,
13         TEA5767_HIGH_LO_32768   = 1,
14         TEA5767_LOW_LO_13MHz    = 2,
15         TEA5767_HIGH_LO_13MHz   = 3,
16 };
17
18 struct tea5767_ctrl {
19         unsigned int            port1:1;
20         unsigned int            port2:1;
21         unsigned int            high_cut:1;
22         unsigned int            st_noise:1;
23         unsigned int            soft_mute:1;
24         unsigned int            japan_band:1;
25         unsigned int            deemph_75:1;
26         unsigned int            pllref:1;
27         enum tea5767_xtal       xtal_freq;
28 };
29
30 #if IS_REACHABLE(CONFIG_MEDIA_TUNER_TEA5767)
31 extern int tea5767_autodetection(struct i2c_adapter* i2c_adap, u8 i2c_addr);
32
33 extern struct dvb_frontend *tea5767_attach(struct dvb_frontend *fe,
34                                            struct i2c_adapter* i2c_adap,
35                                            u8 i2c_addr);
36 #else
37 static inline int tea5767_autodetection(struct i2c_adapter* i2c_adap,
38                                         u8 i2c_addr)
39 {
40         printk(KERN_INFO "%s: not probed - driver disabled by Kconfig\n",
41                __func__);
42         return -EINVAL;
43 }
44
45 static inline struct dvb_frontend *tea5767_attach(struct dvb_frontend *fe,
46                                                    struct i2c_adapter* i2c_adap,
47                                                    u8 i2c_addr)
48 {
49         printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
50         return NULL;
51 }
52 #endif
53
54 #endif /* __TEA5767_H__ */