18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci Driver for M88RS2000 demodulator 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci*/ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#ifndef M88RS2000_H 98c2ecf20Sopenharmony_ci#define M88RS2000_H 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci#include <linux/dvb/frontend.h> 128c2ecf20Sopenharmony_ci#include <media/dvb_frontend.h> 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_cistruct m88rs2000_config { 158c2ecf20Sopenharmony_ci /* Demodulator i2c address */ 168c2ecf20Sopenharmony_ci u8 demod_addr; 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ci u8 *inittab; 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ci /* minimum delay before retuning */ 218c2ecf20Sopenharmony_ci int min_delay_ms; 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ci int (*set_ts_params)(struct dvb_frontend *, int); 248c2ecf20Sopenharmony_ci}; 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_cienum { 278c2ecf20Sopenharmony_ci CALL_IS_SET_FRONTEND = 0x0, 288c2ecf20Sopenharmony_ci CALL_IS_READ, 298c2ecf20Sopenharmony_ci}; 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci#if IS_REACHABLE(CONFIG_DVB_M88RS2000) 328c2ecf20Sopenharmony_ciextern struct dvb_frontend *m88rs2000_attach( 338c2ecf20Sopenharmony_ci const struct m88rs2000_config *config, struct i2c_adapter *i2c); 348c2ecf20Sopenharmony_ci#else 358c2ecf20Sopenharmony_cistatic inline struct dvb_frontend *m88rs2000_attach( 368c2ecf20Sopenharmony_ci const struct m88rs2000_config *config, struct i2c_adapter *i2c) 378c2ecf20Sopenharmony_ci{ 388c2ecf20Sopenharmony_ci printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 398c2ecf20Sopenharmony_ci return NULL; 408c2ecf20Sopenharmony_ci} 418c2ecf20Sopenharmony_ci#endif /* CONFIG_DVB_M88RS2000 */ 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ci#define RS2000_FE_CRYSTAL_KHZ 27000 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_cienum { 468c2ecf20Sopenharmony_ci DEMOD_WRITE = 0x1, 478c2ecf20Sopenharmony_ci WRITE_DELAY = 0x10, 488c2ecf20Sopenharmony_ci}; 498c2ecf20Sopenharmony_ci#endif /* M88RS2000_H */ 50