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
11enum 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
18struct 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)
31extern int tea5767_autodetection(struct i2c_adapter* i2c_adap, u8 i2c_addr);
32
33extern struct dvb_frontend *tea5767_attach(struct dvb_frontend *fe,
34 struct i2c_adapter* i2c_adap,
35 u8 i2c_addr);
36#else
37static 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
45static 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__ */
55

source code of linux/drivers/media/tuners/tea5767.h