18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
28c2ecf20Sopenharmony_ci  /*
38c2ecf20Sopenharmony_ci     Driver for Philips tda10086 DVBS Frontend
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci     (c) 2006 Andrew de Quincey
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci   */
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci#ifndef TDA10086_H
118c2ecf20Sopenharmony_ci#define TDA10086_H
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci#include <linux/dvb/frontend.h>
148c2ecf20Sopenharmony_ci#include <linux/firmware.h>
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_cienum tda10086_xtal {
178c2ecf20Sopenharmony_ci	TDA10086_XTAL_16M,
188c2ecf20Sopenharmony_ci	TDA10086_XTAL_4M
198c2ecf20Sopenharmony_ci};
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_cistruct tda10086_config
228c2ecf20Sopenharmony_ci{
238c2ecf20Sopenharmony_ci	/* the demodulator's i2c address */
248c2ecf20Sopenharmony_ci	u8 demod_address;
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci	/* does the "inversion" need inverted? */
278c2ecf20Sopenharmony_ci	u8 invert;
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ci	/* do we need the diseqc signal with carrier? */
308c2ecf20Sopenharmony_ci	u8 diseqc_tone;
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci	/* frequency of the reference xtal */
338c2ecf20Sopenharmony_ci	enum tda10086_xtal xtal_freq;
348c2ecf20Sopenharmony_ci};
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ci#if IS_REACHABLE(CONFIG_DVB_TDA10086)
378c2ecf20Sopenharmony_ciextern struct dvb_frontend* tda10086_attach(const struct tda10086_config* config,
388c2ecf20Sopenharmony_ci					    struct i2c_adapter* i2c);
398c2ecf20Sopenharmony_ci#else
408c2ecf20Sopenharmony_cistatic inline struct dvb_frontend* tda10086_attach(const struct tda10086_config* config,
418c2ecf20Sopenharmony_ci						   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 /* CONFIG_DVB_TDA10086 */
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci#endif /* TDA10086_H */
49