1786baecfSMauro Carvalho Chehab /* 2786baecfSMauro Carvalho Chehab * mxl111sf-demod.h - driver for the MaxLinear MXL111SF DVB-T demodulator 3786baecfSMauro Carvalho Chehab * 4*08e10972SMichael Krufky * Copyright (C) 2010-2014 Michael Krufky <mkrufky@linuxtv.org> 5786baecfSMauro Carvalho Chehab * 6786baecfSMauro Carvalho Chehab * This program is free software; you can redistribute it and/or modify 7786baecfSMauro Carvalho Chehab * it under the terms of the GNU General Public License as published by 8786baecfSMauro Carvalho Chehab * the Free Software Foundation; either version 2 of the License, or 9786baecfSMauro Carvalho Chehab * (at your option) any later version. 10786baecfSMauro Carvalho Chehab * 11786baecfSMauro Carvalho Chehab * This program is distributed in the hope that it will be useful, 12786baecfSMauro Carvalho Chehab * but WITHOUT ANY WARRANTY; without even the implied warranty of 13786baecfSMauro Carvalho Chehab * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14786baecfSMauro Carvalho Chehab * GNU General Public License for more details. 15786baecfSMauro Carvalho Chehab * 16786baecfSMauro Carvalho Chehab * You should have received a copy of the GNU General Public License 17786baecfSMauro Carvalho Chehab * along with this program; if not, write to the Free Software 18786baecfSMauro Carvalho Chehab * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19786baecfSMauro Carvalho Chehab */ 20786baecfSMauro Carvalho Chehab 21786baecfSMauro Carvalho Chehab #ifndef __MXL111SF_DEMOD_H__ 22786baecfSMauro Carvalho Chehab #define __MXL111SF_DEMOD_H__ 23786baecfSMauro Carvalho Chehab 24028c70ffSMauro Carvalho Chehab #include <linux/kconfig.h> 25786baecfSMauro Carvalho Chehab #include "dvb_frontend.h" 26786baecfSMauro Carvalho Chehab #include "mxl111sf.h" 27786baecfSMauro Carvalho Chehab 28786baecfSMauro Carvalho Chehab struct mxl111sf_demod_config { 29786baecfSMauro Carvalho Chehab int (*read_reg)(struct mxl111sf_state *state, u8 addr, u8 *data); 30786baecfSMauro Carvalho Chehab int (*write_reg)(struct mxl111sf_state *state, u8 addr, u8 data); 31786baecfSMauro Carvalho Chehab int (*program_regs)(struct mxl111sf_state *state, 32786baecfSMauro Carvalho Chehab struct mxl111sf_reg_ctrl_info *ctrl_reg_info); 33786baecfSMauro Carvalho Chehab }; 34786baecfSMauro Carvalho Chehab 35028c70ffSMauro Carvalho Chehab #if IS_ENABLED(CONFIG_DVB_USB_MXL111SF) 36786baecfSMauro Carvalho Chehab extern 37786baecfSMauro Carvalho Chehab struct dvb_frontend *mxl111sf_demod_attach(struct mxl111sf_state *mxl_state, 38786baecfSMauro Carvalho Chehab struct mxl111sf_demod_config *cfg); 39786baecfSMauro Carvalho Chehab #else 40786baecfSMauro Carvalho Chehab static inline 41786baecfSMauro Carvalho Chehab struct dvb_frontend *mxl111sf_demod_attach(struct mxl111sf_state *mxl_state, 42786baecfSMauro Carvalho Chehab struct mxl111sf_demod_config *cfg) 43786baecfSMauro Carvalho Chehab { 44786baecfSMauro Carvalho Chehab printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 45786baecfSMauro Carvalho Chehab return NULL; 46786baecfSMauro Carvalho Chehab } 47786baecfSMauro Carvalho Chehab #endif /* CONFIG_DVB_USB_MXL111SF */ 48786baecfSMauro Carvalho Chehab 49786baecfSMauro Carvalho Chehab #endif /* __MXL111SF_DEMOD_H__ */ 50786baecfSMauro Carvalho Chehab 51786baecfSMauro Carvalho Chehab /* 52786baecfSMauro Carvalho Chehab * Local variables: 53786baecfSMauro Carvalho Chehab * c-basic-offset: 8 54786baecfSMauro Carvalho Chehab * End: 55786baecfSMauro Carvalho Chehab */ 56