18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci Montage Technology DS3000 - DVBS/S2 Demodulator driver 48c2ecf20Sopenharmony_ci Copyright (C) 2009-2012 Konstantin Dimitrov <kosio.dimitrov@gmail.com> 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci Copyright (C) 2009-2012 TurboSight.com 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci */ 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci#ifndef DS3000_H 118c2ecf20Sopenharmony_ci#define DS3000_H 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ci#include <linux/dvb/frontend.h> 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_cistruct ds3000_config { 168c2ecf20Sopenharmony_ci /* the demodulator's i2c address */ 178c2ecf20Sopenharmony_ci u8 demod_address; 188c2ecf20Sopenharmony_ci u8 ci_mode; 198c2ecf20Sopenharmony_ci /* Set device param to start dma */ 208c2ecf20Sopenharmony_ci int (*set_ts_params)(struct dvb_frontend *fe, int is_punctured); 218c2ecf20Sopenharmony_ci /* Hook for Lock LED */ 228c2ecf20Sopenharmony_ci void (*set_lock_led)(struct dvb_frontend *fe, int offon); 238c2ecf20Sopenharmony_ci}; 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci#if IS_REACHABLE(CONFIG_DVB_DS3000) 268c2ecf20Sopenharmony_ciextern struct dvb_frontend *ds3000_attach(const struct ds3000_config *config, 278c2ecf20Sopenharmony_ci struct i2c_adapter *i2c); 288c2ecf20Sopenharmony_ci#else 298c2ecf20Sopenharmony_cistatic inline 308c2ecf20Sopenharmony_cistruct dvb_frontend *ds3000_attach(const struct ds3000_config *config, 318c2ecf20Sopenharmony_ci struct i2c_adapter *i2c) 328c2ecf20Sopenharmony_ci{ 338c2ecf20Sopenharmony_ci printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 348c2ecf20Sopenharmony_ci return NULL; 358c2ecf20Sopenharmony_ci} 368c2ecf20Sopenharmony_ci#endif /* CONFIG_DVB_DS3000 */ 378c2ecf20Sopenharmony_ci#endif /* DS3000_H */ 38