18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Fujitsu mb86a20s driver 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 2010 Mauro Carvalho Chehab 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#ifndef MB86A20S_H 98c2ecf20Sopenharmony_ci#define MB86A20S_H 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci#include <linux/dvb/frontend.h> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ci/** 148c2ecf20Sopenharmony_ci * struct mb86a20s_config - Define the per-device attributes of the frontend 158c2ecf20Sopenharmony_ci * 168c2ecf20Sopenharmony_ci * @fclk: Clock frequency. If zero, assumes the default 178c2ecf20Sopenharmony_ci * (32.57142 Mhz) 188c2ecf20Sopenharmony_ci * @demod_address: the demodulator's i2c address 198c2ecf20Sopenharmony_ci * @is_serial: if true, TS is serial. Otherwise, TS is parallel 208c2ecf20Sopenharmony_ci */ 218c2ecf20Sopenharmony_cistruct mb86a20s_config { 228c2ecf20Sopenharmony_ci u32 fclk; 238c2ecf20Sopenharmony_ci u8 demod_address; 248c2ecf20Sopenharmony_ci bool is_serial; 258c2ecf20Sopenharmony_ci}; 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci#if IS_REACHABLE(CONFIG_DVB_MB86A20S) 288c2ecf20Sopenharmony_ci/** 298c2ecf20Sopenharmony_ci * Attach a mb86a20s demod 308c2ecf20Sopenharmony_ci * 318c2ecf20Sopenharmony_ci * @config: pointer to &struct mb86a20s_config with demod configuration. 328c2ecf20Sopenharmony_ci * @i2c: i2c adapter to use. 338c2ecf20Sopenharmony_ci * 348c2ecf20Sopenharmony_ci * return: FE pointer on success, NULL on failure. 358c2ecf20Sopenharmony_ci */ 368c2ecf20Sopenharmony_ciextern struct dvb_frontend *mb86a20s_attach(const struct mb86a20s_config *config, 378c2ecf20Sopenharmony_ci struct i2c_adapter *i2c); 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci#else 408c2ecf20Sopenharmony_cistatic inline struct dvb_frontend *mb86a20s_attach( 418c2ecf20Sopenharmony_ci const struct mb86a20s_config *config, struct i2c_adapter *i2c) 428c2ecf20Sopenharmony_ci{ 438c2ecf20Sopenharmony_ci printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 448c2ecf20Sopenharmony_ci return NULL; 458c2ecf20Sopenharmony_ci} 468c2ecf20Sopenharmony_ci#endif 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci#endif /* MB86A20S */ 49