1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-or-later */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Conexant CX24120/CX24118 - DVB-S/S2 demod/tuner driver 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (C) 2008 Patrick Boettcher <pb@linuxtv.org> 6*4882a593Smuzhiyun * Copyright (C) 2009 Sergey Tyurin <forum.free-x.de> 7*4882a593Smuzhiyun * Updated 2012 by Jannis Achstetter <jannis_achstetter@web.de> 8*4882a593Smuzhiyun * Copyright (C) 2015 Jemma Denson <jdenson@gmail.com> 9*4882a593Smuzhiyun */ 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #ifndef CX24120_H 12*4882a593Smuzhiyun #define CX24120_H 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun #include <linux/dvb/frontend.h> 15*4882a593Smuzhiyun #include <linux/firmware.h> 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun struct cx24120_initial_mpeg_config { 18*4882a593Smuzhiyun u8 x1; 19*4882a593Smuzhiyun u8 x2; 20*4882a593Smuzhiyun u8 x3; 21*4882a593Smuzhiyun }; 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun struct cx24120_config { 24*4882a593Smuzhiyun u8 i2c_addr; 25*4882a593Smuzhiyun u32 xtal_khz; 26*4882a593Smuzhiyun struct cx24120_initial_mpeg_config initial_mpeg_config; 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun int (*request_firmware)(struct dvb_frontend *fe, 29*4882a593Smuzhiyun const struct firmware **fw, char *name); 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun /* max bytes I2C provider can write at once */ 32*4882a593Smuzhiyun u16 i2c_wr_max; 33*4882a593Smuzhiyun }; 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun #if IS_REACHABLE(CONFIG_DVB_CX24120) 36*4882a593Smuzhiyun struct dvb_frontend *cx24120_attach(const struct cx24120_config *config, 37*4882a593Smuzhiyun struct i2c_adapter *i2c); 38*4882a593Smuzhiyun #else 39*4882a593Smuzhiyun static inline cx24120_attach(const struct cx24120_config * config,struct i2c_adapter * i2c)40*4882a593Smuzhiyunstruct dvb_frontend *cx24120_attach(const struct cx24120_config *config, 41*4882a593Smuzhiyun struct i2c_adapter *i2c) 42*4882a593Smuzhiyun { 43*4882a593Smuzhiyun pr_warn("%s: driver disabled by Kconfig\n", __func__); 44*4882a593Smuzhiyun return NULL; 45*4882a593Smuzhiyun } 46*4882a593Smuzhiyun #endif 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun #endif /* CX24120_H */ 49