18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci    Driver for Zarlink MT312 Satellite Channel Decoder
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci    Copyright (C) 2003 Andreas Oberritter <obi@linuxtv.org>
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci    References:
98c2ecf20Sopenharmony_ci    http://products.zarlink.com/product_profiles/MT312.htm
108c2ecf20Sopenharmony_ci    http://products.zarlink.com/product_profiles/SL1935.htm
118c2ecf20Sopenharmony_ci*/
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci#ifndef MT312_H
148c2ecf20Sopenharmony_ci#define MT312_H
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci#include <linux/dvb/frontend.h>
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_cistruct mt312_config {
198c2ecf20Sopenharmony_ci	/* the demodulator's i2c address */
208c2ecf20Sopenharmony_ci	u8 demod_address;
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci	/* inverted voltage setting */
238c2ecf20Sopenharmony_ci	unsigned int voltage_inverted:1;
248c2ecf20Sopenharmony_ci};
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci#if IS_REACHABLE(CONFIG_DVB_MT312)
278c2ecf20Sopenharmony_cistruct dvb_frontend *mt312_attach(const struct mt312_config *config,
288c2ecf20Sopenharmony_ci					struct i2c_adapter *i2c);
298c2ecf20Sopenharmony_ci#else
308c2ecf20Sopenharmony_cistatic inline struct dvb_frontend *mt312_attach(
318c2ecf20Sopenharmony_ci	const struct mt312_config *config, 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_MT312 */
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci#endif /* MT312_H */
39