[go: nahoru, domu]

1dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie#ifndef DIB9000_H
2dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie#define DIB9000_H
3dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie
4dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie#include "dibx000_common.h"
5dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie
6dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Greniestruct dib9000_config {
7dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	u8 dvbt_mode;
8dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	u8 output_mpeg2_in_188_bytes;
9dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	u8 hostbus_diversity;
10dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	struct dibx000_bandwidth_config *bw;
11dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie
12dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	u16 if_drives;
13dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie
14dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	u32 timing_frequency;
15dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	u32 xtal_clock_khz;
16dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	u32 vcxo_timer;
17dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	u32 demod_clock_khz;
18dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie
19dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	const u8 *microcode_B_fe_buffer;
20dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	u32 microcode_B_fe_size;
21dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie
22dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	struct dibGPIOFunction gpio_function[2];
23dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	struct dibSubbandSelection subband;
24dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie
25dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	u8 output_mode;
26dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie};
27dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie
28dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie#define DEFAULT_DIB9000_I2C_ADDRESS 18
29dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie
307b34be71db533f3e0cf93d53cf62d036cdb5418aPeter Senna Tschudin#if IS_ENABLED(CONFIG_DVB_DIB9000)
31dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenieextern struct dvb_frontend *dib9000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, const struct dib9000_config *cfg);
32dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenieextern int dib9000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, u8 default_addr, u8 first_addr);
33dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenieextern struct i2c_adapter *dib9000_get_tuner_interface(struct dvb_frontend *fe);
34dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenieextern struct i2c_adapter *dib9000_get_i2c_master(struct dvb_frontend *fe, enum dibx000_i2c_interface intf, int gating);
35dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenieextern int dib9000_set_gpio(struct dvb_frontend *fe, u8 num, u8 dir, u8 val);
36dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenieextern int dib9000_fw_pid_filter_ctrl(struct dvb_frontend *fe, u8 onoff);
37dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenieextern int dib9000_fw_pid_filter(struct dvb_frontend *fe, u8 id, u16 pid, u8 onoff);
38dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenieextern int dib9000_firmware_post_pll_init(struct dvb_frontend *fe);
39dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenieextern int dib9000_set_slave_frontend(struct dvb_frontend *fe, struct dvb_frontend *fe_slave);
40dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenieextern int dib9000_remove_slave_frontend(struct dvb_frontend *fe);
41b4d6046e841955be9cc49164b03b91c9524f9c2eOlivier Grenieextern struct dvb_frontend *dib9000_get_slave_frontend(struct dvb_frontend *fe, int slave_index);
42dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenieextern struct i2c_adapter *dib9000_get_component_bus_interface(struct dvb_frontend *fe);
43dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenieextern int dib9000_set_i2c_adapter(struct dvb_frontend *fe, struct i2c_adapter *i2c);
44dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenieextern int dib9000_fw_set_component_bus_speed(struct dvb_frontend *fe, u16 speed);
45dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie#else
46dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Greniestatic inline struct dvb_frontend *dib9000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, struct dib9000_config *cfg)
47dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie{
48dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
49dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	return NULL;
50dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie}
51dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie
52dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Greniestatic inline struct i2c_adapter *dib9000_get_i2c_master(struct dvb_frontend *fe, enum dibx000_i2c_interface intf, int gating)
53dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie{
54dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
55dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	return NULL;
56dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie}
57dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie
58dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Greniestatic inline int dib9000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, u8 default_addr, u8 first_addr)
59dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie{
60dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
61dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	return -ENODEV;
62dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie}
63dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie
64dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Greniestatic inline struct i2c_adapter *dib9000_get_tuner_interface(struct dvb_frontend *fe)
65dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie{
66dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
67dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	return NULL;
68dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie}
69dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie
70dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Greniestatic inline int dib9000_set_gpio(struct dvb_frontend *fe, u8 num, u8 dir, u8 val)
71dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie{
72dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
73dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	return -ENODEV;
74dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie}
75dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie
76dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Greniestatic inline int dib9000_fw_pid_filter_ctrl(struct dvb_frontend *fe, u8 onoff)
77dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie{
78dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
79dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	return -ENODEV;
80dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie}
81dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie
82dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Greniestatic inline int dib9000_fw_pid_filter(struct dvb_frontend *fe, u8 id, u16 pid, u8 onoff)
83dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie{
84dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
85dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	return -ENODEV;
86dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie}
87dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie
88dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Greniestatic inline int dib9000_firmware_post_pll_init(struct dvb_frontend *fe)
89dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie{
90dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
91dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	return -ENODEV;
92dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie}
93dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie
94dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Greniestatic inline int dib9000_set_slave_frontend(struct dvb_frontend *fe, struct dvb_frontend *fe_slave)
95dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie{
96dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
97dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	return -ENODEV;
98dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie}
99dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie
1002e8c1e569392c84a926b9bf94176c5d7ba5d3e50Mauro Carvalho Chehabstatic inline int dib9000_remove_slave_frontend(struct dvb_frontend *fe)
101dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie{
102dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
103dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	return -ENODEV;
104dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie}
105dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie
106b4d6046e841955be9cc49164b03b91c9524f9c2eOlivier Greniestatic inline struct dvb_frontend *dib9000_get_slave_frontend(struct dvb_frontend *fe, int slave_index)
107b4d6046e841955be9cc49164b03b91c9524f9c2eOlivier Grenie{
108dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
109dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	return NULL;
110dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie}
111dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie
112dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Greniestatic inline struct i2c_adapter *dib9000_get_component_bus_interface(struct dvb_frontend *fe)
113dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie{
114dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
115dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	return NULL;
116dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie}
117dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie
118dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Greniestatic inline int dib9000_set_i2c_adapter(struct dvb_frontend *fe, struct i2c_adapter *i2c)
119dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie{
120dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
121dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	return -ENODEV;
122dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie}
123dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie
124dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Greniestatic inline int dib9000_fw_set_component_bus_speed(struct dvb_frontend *fe, u16 speed)
125dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie{
126dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
127dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie	return -ENODEV;
128dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie}
129dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie#endif
130dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie
131dd316c6bacc2bdb22288507fd479bd2181eb7a7bOlivier Grenie#endif
132