18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * mxl111sf-demod.h - driver for the MaxLinear MXL111SF DVB-T demodulator 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 2010-2014 Michael Krufky <mkrufky@linuxtv.org> 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#ifndef __MXL111SF_DEMOD_H__ 98c2ecf20Sopenharmony_ci#define __MXL111SF_DEMOD_H__ 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci#include <media/dvb_frontend.h> 128c2ecf20Sopenharmony_ci#include "mxl111sf.h" 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_cistruct mxl111sf_demod_config { 158c2ecf20Sopenharmony_ci int (*read_reg)(struct mxl111sf_state *state, u8 addr, u8 *data); 168c2ecf20Sopenharmony_ci int (*write_reg)(struct mxl111sf_state *state, u8 addr, u8 data); 178c2ecf20Sopenharmony_ci int (*program_regs)(struct mxl111sf_state *state, 188c2ecf20Sopenharmony_ci struct mxl111sf_reg_ctrl_info *ctrl_reg_info); 198c2ecf20Sopenharmony_ci}; 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci#if IS_ENABLED(CONFIG_DVB_USB_MXL111SF) 228c2ecf20Sopenharmony_ciextern 238c2ecf20Sopenharmony_cistruct dvb_frontend *mxl111sf_demod_attach(struct mxl111sf_state *mxl_state, 248c2ecf20Sopenharmony_ci const struct mxl111sf_demod_config *cfg); 258c2ecf20Sopenharmony_ci#else 268c2ecf20Sopenharmony_cistatic inline 278c2ecf20Sopenharmony_cistruct dvb_frontend *mxl111sf_demod_attach(struct mxl111sf_state *mxl_state, 288c2ecf20Sopenharmony_ci const struct mxl111sf_demod_config *cfg) 298c2ecf20Sopenharmony_ci{ 308c2ecf20Sopenharmony_ci printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 318c2ecf20Sopenharmony_ci return NULL; 328c2ecf20Sopenharmony_ci} 338c2ecf20Sopenharmony_ci#endif /* CONFIG_DVB_USB_MXL111SF */ 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci#endif /* __MXL111SF_DEMOD_H__ */ 36