diff options
Diffstat (limited to 'drivers/media/dvb-frontends/drxk.h')
-rw-r--r-- | drivers/media/dvb-frontends/drxk.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/drivers/media/dvb-frontends/drxk.h b/drivers/media/dvb-frontends/drxk.h new file mode 100644 index 000000000000..d615d7d055a2 --- /dev/null +++ b/drivers/media/dvb-frontends/drxk.h | |||
@@ -0,0 +1,66 @@ | |||
1 | #ifndef _DRXK_H_ | ||
2 | #define _DRXK_H_ | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | #include <linux/i2c.h> | ||
6 | |||
7 | /** | ||
8 | * struct drxk_config - Configure the initial parameters for DRX-K | ||
9 | * | ||
10 | * @adr: I2C Address of the DRX-K | ||
11 | * @parallel_ts: True means that the device uses parallel TS, | ||
12 | * Serial otherwise. | ||
13 | * @dynamic_clk: True means that the clock will be dynamically | ||
14 | * adjusted. Static clock otherwise. | ||
15 | * @enable_merr_cfg: Enable SIO_PDR_PERR_CFG/SIO_PDR_MVAL_CFG. | ||
16 | * @single_master: Device is on the single master mode | ||
17 | * @no_i2c_bridge: Don't switch the I2C bridge to talk with tuner | ||
18 | * @antenna_gpio: GPIO bit used to control the antenna | ||
19 | * @antenna_dvbt: GPIO bit for changing antenna to DVB-C. A value of 1 | ||
20 | * means that 1=DVBC, 0 = DVBT. Zero means the opposite. | ||
21 | * @mpeg_out_clk_strength: DRXK Mpeg output clock drive strength. | ||
22 | * @microcode_name: Name of the firmware file with the microcode | ||
23 | * @qam_demod_parameter_count: The number of parameters used for the command | ||
24 | * to set the demodulator parameters. All | ||
25 | * firmwares are using the 2-parameter commmand. | ||
26 | * An exception is the "drxk_a3.mc" firmware, | ||
27 | * which uses the 4-parameter command. | ||
28 | * A value of 0 (default) or lower indicates that | ||
29 | * the correct number of parameters will be | ||
30 | * automatically detected. | ||
31 | * | ||
32 | * On the *_gpio vars, bit 0 is UIO-1, bit 1 is UIO-2 and bit 2 is | ||
33 | * UIO-3. | ||
34 | */ | ||
35 | struct drxk_config { | ||
36 | u8 adr; | ||
37 | bool single_master; | ||
38 | bool no_i2c_bridge; | ||
39 | bool parallel_ts; | ||
40 | bool dynamic_clk; | ||
41 | bool enable_merr_cfg; | ||
42 | |||
43 | bool antenna_dvbt; | ||
44 | u16 antenna_gpio; | ||
45 | |||
46 | u8 mpeg_out_clk_strength; | ||
47 | int chunk_size; | ||
48 | |||
49 | const char *microcode_name; | ||
50 | int qam_demod_parameter_count; | ||
51 | }; | ||
52 | |||
53 | #if defined(CONFIG_DVB_DRXK) || (defined(CONFIG_DVB_DRXK_MODULE) \ | ||
54 | && defined(MODULE)) | ||
55 | extern struct dvb_frontend *drxk_attach(const struct drxk_config *config, | ||
56 | struct i2c_adapter *i2c); | ||
57 | #else | ||
58 | static inline struct dvb_frontend *drxk_attach(const struct drxk_config *config, | ||
59 | struct i2c_adapter *i2c) | ||
60 | { | ||
61 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
62 | return NULL; | ||
63 | } | ||
64 | #endif | ||
65 | |||
66 | #endif | ||