Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/drivers/media/dvb/frontends/dib7000p.h
15112 views
1
#ifndef DIB7000P_H
2
#define DIB7000P_H
3
4
#include "dibx000_common.h"
5
6
struct dib7000p_config {
7
u8 output_mpeg2_in_188_bytes;
8
u8 hostbus_diversity;
9
u8 tuner_is_baseband;
10
int (*update_lna) (struct dvb_frontend *, u16 agc_global);
11
12
u8 agc_config_count;
13
struct dibx000_agc_config *agc;
14
struct dibx000_bandwidth_config *bw;
15
16
#define DIB7000P_GPIO_DEFAULT_DIRECTIONS 0xffff
17
u16 gpio_dir;
18
#define DIB7000P_GPIO_DEFAULT_VALUES 0x0000
19
u16 gpio_val;
20
#define DIB7000P_GPIO_PWM_POS0(v) ((v & 0xf) << 12)
21
#define DIB7000P_GPIO_PWM_POS1(v) ((v & 0xf) << 8 )
22
#define DIB7000P_GPIO_PWM_POS2(v) ((v & 0xf) << 4 )
23
#define DIB7000P_GPIO_PWM_POS3(v) (v & 0xf)
24
#define DIB7000P_GPIO_DEFAULT_PWM_POS 0xffff
25
u16 gpio_pwm_pos;
26
27
u16 pwm_freq_div;
28
29
u8 quartz_direct;
30
31
u8 spur_protect;
32
33
int (*agc_control) (struct dvb_frontend *, u8 before);
34
35
u8 output_mode;
36
u8 disable_sample_and_hold:1;
37
38
u8 enable_current_mirror:1;
39
u16 diversity_delay;
40
41
u8 default_i2c_addr;
42
u8 enMpegOutput:1;
43
};
44
45
#define DEFAULT_DIB7000P_I2C_ADDRESS 18
46
47
#if defined(CONFIG_DVB_DIB7000P) || (defined(CONFIG_DVB_DIB7000P_MODULE) && \
48
defined(MODULE))
49
extern struct dvb_frontend *dib7000p_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, struct dib7000p_config *cfg);
50
extern struct i2c_adapter *dib7000p_get_i2c_master(struct dvb_frontend *, enum dibx000_i2c_interface, int);
51
extern int dib7000p_i2c_enumeration(struct i2c_adapter *i2c, int no_of_demods, u8 default_addr, struct dib7000p_config cfg[]);
52
extern int dib7000p_set_gpio(struct dvb_frontend *, u8 num, u8 dir, u8 val);
53
extern int dib7000p_set_wbd_ref(struct dvb_frontend *, u16 value);
54
extern int dib7000pc_detection(struct i2c_adapter *i2c_adap);
55
extern int dib7000p_pid_filter(struct dvb_frontend *, u8 id, u16 pid, u8 onoff);
56
extern int dib7000p_pid_filter_ctrl(struct dvb_frontend *fe, u8 onoff);
57
extern int dib7000p_update_pll(struct dvb_frontend *fe, struct dibx000_bandwidth_config *bw);
58
extern u32 dib7000p_ctrl_timf(struct dvb_frontend *fe, u8 op, u32 timf);
59
extern int dib7090_agc_restart(struct dvb_frontend *fe, u8 restart);
60
extern int dib7090_tuner_sleep(struct dvb_frontend *fe, int onoff);
61
extern int dib7090_get_adc_power(struct dvb_frontend *fe);
62
extern struct i2c_adapter *dib7090_get_i2c_tuner(struct dvb_frontend *fe);
63
extern int dib7090_slave_reset(struct dvb_frontend *fe);
64
#else
65
static inline struct dvb_frontend *dib7000p_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, struct dib7000p_config *cfg)
66
{
67
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
68
return NULL;
69
}
70
71
static inline struct i2c_adapter *dib7000p_get_i2c_master(struct dvb_frontend *fe, enum dibx000_i2c_interface i, int x)
72
{
73
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
74
return NULL;
75
}
76
77
static inline int dib7000p_i2c_enumeration(struct i2c_adapter *i2c, int no_of_demods, u8 default_addr, struct dib7000p_config cfg[])
78
{
79
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
80
return -ENODEV;
81
}
82
83
static inline int dib7000p_set_gpio(struct dvb_frontend *fe, u8 num, u8 dir, u8 val)
84
{
85
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
86
return -ENODEV;
87
}
88
89
static inline int dib7000p_set_wbd_ref(struct dvb_frontend *fe, u16 value)
90
{
91
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
92
return -ENODEV;
93
}
94
95
static inline int dib7000pc_detection(struct i2c_adapter *i2c_adap)
96
{
97
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
98
return -ENODEV;
99
}
100
101
static inline int dib7000p_pid_filter(struct dvb_frontend *fe, u8 id, u16 pid, u8 onoff)
102
{
103
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
104
return -ENODEV;
105
}
106
107
static inline int dib7000p_pid_filter_ctrl(struct dvb_frontend *fe, uint8_t onoff)
108
{
109
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
110
return -ENODEV;
111
}
112
113
static inline int dib7000p_update_pll(struct dvb_frontend *fe, struct dibx000_bandwidth_config *bw)
114
{
115
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
116
return -ENODEV;
117
}
118
119
static inline u32 dib7000p_ctrl_timf(struct dvb_frontend *fe, u8 op, u32 timf)
120
{
121
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
122
return 0;
123
}
124
125
static inline int dib7090_agc_restart(struct dvb_frontend *fe, u8 restart)
126
{
127
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
128
return -ENODEV;
129
}
130
131
static inline int dib7090_tuner_sleep(struct dvb_frontend *fe, int onoff)
132
{
133
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
134
return -ENODEV;
135
}
136
137
static inline int dib7090_get_adc_power(struct dvb_frontend *fe)
138
{
139
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
140
return -ENODEV;
141
}
142
143
static inline struct i2c_adapter *dib7090_get_i2c_tuner(struct dvb_frontend *fe)
144
{
145
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
146
return NULL;
147
}
148
149
static inline int dib7090_slave_reset(struct dvb_frontend *fe)
150
{
151
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
152
return -ENODEV;
153
}
154
#endif
155
156
#endif
157
158