blob: 532e081115370368dd84c93386e8bf1a90387b8a [file] [log] [blame]
rjw1f884582022-01-06 17:20:42 +08001#ifndef _MXL5XX_H_
2#define _MXL5XX_H_
3
4#include <linux/types.h>
5#include <linux/i2c.h>
6
7#include "dvb_frontend.h"
8
9struct mxl5xx_cfg {
10 u8 adr;
11 u8 type;
12 u32 cap;
13 u32 clk;
14 u32 ts_clk;
15
16 u8 *fw;
17 u32 fw_len;
18
19 int (*fw_read)(void *priv, u8 *buf, u32 len);
20 void *fw_priv;
21};
22
23#if IS_REACHABLE(CONFIG_DVB_MXL5XX)
24
25extern struct dvb_frontend *mxl5xx_attach(struct i2c_adapter *i2c,
26 struct mxl5xx_cfg *cfg, u32 demod, u32 tuner,
27 int (**fn_set_input)(struct dvb_frontend *, int));
28
29#else
30
31static inline struct dvb_frontend *mxl5xx_attach(struct i2c_adapter *i2c,
32 struct mxl5xx_cfg *cfg, u32 demod, u32 tuner,
33 int (**fn_set_input)(struct dvb_frontend *, int))
34{
35 pr_warn("%s: driver disabled by Kconfig\n", __func__);
36 return NULL;
37}
38
39#endif /* CONFIG_DVB_MXL5XX */
40
41#endif /* _MXL5XX_H_ */