Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/drivers/media/dvb/frontends/dib7000m.h
15112 views
1
#ifndef DIB7000M_H
2
#define DIB7000M_H
3
4
#include "dibx000_common.h"
5
6
struct dib7000m_config {
7
u8 dvbt_mode;
8
u8 output_mpeg2_in_188_bytes;
9
u8 hostbus_diversity;
10
u8 tuner_is_baseband;
11
u8 mobile_mode;
12
int (*update_lna) (struct dvb_frontend *, u16 agc_global);
13
14
u8 agc_config_count;
15
struct dibx000_agc_config *agc;
16
17
struct dibx000_bandwidth_config *bw;
18
19
#define DIB7000M_GPIO_DEFAULT_DIRECTIONS 0xffff
20
u16 gpio_dir;
21
#define DIB7000M_GPIO_DEFAULT_VALUES 0x0000
22
u16 gpio_val;
23
#define DIB7000M_GPIO_PWM_POS0(v) ((v & 0xf) << 12)
24
#define DIB7000M_GPIO_PWM_POS1(v) ((v & 0xf) << 8 )
25
#define DIB7000M_GPIO_PWM_POS2(v) ((v & 0xf) << 4 )
26
#define DIB7000M_GPIO_PWM_POS3(v) (v & 0xf)
27
#define DIB7000M_GPIO_DEFAULT_PWM_POS 0xffff
28
u16 gpio_pwm_pos;
29
30
u16 pwm_freq_div;
31
32
u8 quartz_direct;
33
34
u8 input_clk_is_div_2;
35
36
int (*agc_control) (struct dvb_frontend *, u8 before);
37
};
38
39
#define DEFAULT_DIB7000M_I2C_ADDRESS 18
40
41
#if defined(CONFIG_DVB_DIB7000M) || (defined(CONFIG_DVB_DIB7000M_MODULE) && \
42
defined(MODULE))
43
extern struct dvb_frontend *dib7000m_attach(struct i2c_adapter *i2c_adap,
44
u8 i2c_addr,
45
struct dib7000m_config *cfg);
46
extern struct i2c_adapter *dib7000m_get_i2c_master(struct dvb_frontend *,
47
enum dibx000_i2c_interface,
48
int);
49
extern int dib7000m_pid_filter(struct dvb_frontend *, u8 id, u16 pid, u8 onoff);
50
extern int dib7000m_pid_filter_ctrl(struct dvb_frontend *fe, u8 onoff);
51
#else
52
static inline
53
struct dvb_frontend *dib7000m_attach(struct i2c_adapter *i2c_adap,
54
u8 i2c_addr, struct dib7000m_config *cfg)
55
{
56
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
57
return NULL;
58
}
59
60
static inline
61
struct i2c_adapter *dib7000m_get_i2c_master(struct dvb_frontend *demod,
62
enum dibx000_i2c_interface intf,
63
int gating)
64
{
65
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
66
return NULL;
67
}
68
static inline int dib7000m_pid_filter(struct dvb_frontend *fe, u8 id,
69
u16 pid, u8 onoff)
70
{
71
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
72
return -ENODEV;
73
}
74
75
static inline int dib7000m_pid_filter_ctrl(struct dvb_frontend *fe,
76
uint8_t onoff)
77
{
78
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
79
return -ENODEV;
80
}
81
#endif
82
83
/* TODO
84
extern INT dib7000m_set_gpio(struct dibDemod *demod, UCHAR num, UCHAR dir, UCHAR val);
85
extern INT dib7000m_enable_vbg_voltage(struct dibDemod *demod);
86
extern void dib7000m_set_hostbus_diversity(struct dibDemod *demod, UCHAR onoff);
87
extern USHORT dib7000m_get_current_agc_global(struct dibDemod *demod);
88
*/
89
90
#endif
91
92