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 * 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