xref: /linux/drivers/media/dvb-frontends/mb86a20s.h (revision 26fbb4c8c7c3ee9a4c3b4de555a8587b5a19154e)
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 */
49