Merge branch 'perf/urgent' into perf/core, to pick up fixes
[linux-2.6-microblaze.git] / drivers / media / dvb-frontends / mb86a20s.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  *   Fujitsu mb86a20s driver
4  *
5  *   Copyright (C) 2010 Mauro Carvalho Chehab
6  */
7
8 #ifndef MB86A20S_H
9 #define MB86A20S_H
10
11 #include <linux/dvb/frontend.h>
12
13 /**
14  * struct mb86a20s_config - Define the per-device attributes of the frontend
15  *
16  * @fclk:               Clock frequency. If zero, assumes the default
17  *                      (32.57142 Mhz)
18  * @demod_address:      the demodulator's i2c address
19  * @is_serial:          if true, TS is serial. Otherwise, TS is parallel
20  */
21 struct mb86a20s_config {
22         u32     fclk;
23         u8      demod_address;
24         bool    is_serial;
25 };
26
27 #if IS_REACHABLE(CONFIG_DVB_MB86A20S)
28 /**
29  * mb86a20s_attach - Attach a mb86a20s demod
30  *
31  * @config: pointer to &struct mb86a20s_config with demod configuration.
32  * @i2c: i2c adapter to use.
33  *
34  * return: FE pointer on success, NULL on failure.
35  */
36 extern struct dvb_frontend *mb86a20s_attach(const struct mb86a20s_config *config,
37                                            struct i2c_adapter *i2c);
38
39 #else
40 static inline struct dvb_frontend *mb86a20s_attach(
41         const struct mb86a20s_config *config, struct i2c_adapter *i2c)
42 {
43         printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
44         return NULL;
45 }
46 #endif
47
48 #endif /* MB86A20S */