18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci	Fujitsu MB86A16 DVB-S/DSS DC Receiver driver
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci	Copyright (C) Manu Abraham (abraham.manu@gmail.com)
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci*/
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci#ifndef __MB86A16_H
108c2ecf20Sopenharmony_ci#define __MB86A16_H
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci#include <linux/dvb/frontend.h>
138c2ecf20Sopenharmony_ci#include <media/dvb_frontend.h>
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_cistruct mb86a16_config {
178c2ecf20Sopenharmony_ci	u8 demod_address;
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci	int (*set_voltage)(struct dvb_frontend *fe,
208c2ecf20Sopenharmony_ci			   enum fe_sec_voltage voltage);
218c2ecf20Sopenharmony_ci};
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci#if IS_REACHABLE(CONFIG_DVB_MB86A16)
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ciextern struct dvb_frontend *mb86a16_attach(const struct mb86a16_config *config,
288c2ecf20Sopenharmony_ci					   struct i2c_adapter *i2c_adap);
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci#else
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_cistatic inline struct dvb_frontend *mb86a16_attach(const struct mb86a16_config *config,
338c2ecf20Sopenharmony_ci					   struct i2c_adapter *i2c_adap)
348c2ecf20Sopenharmony_ci{
358c2ecf20Sopenharmony_ci	printk(KERN_WARNING "%s: Driver disabled by Kconfig\n", __func__);
368c2ecf20Sopenharmony_ci	return NULL;
378c2ecf20Sopenharmony_ci}
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci#endif /* CONFIG_DVB_MB86A16 */
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci#endif /* __MB86A16_H */
42