1/* 2 * Conexant CX24120/CX24118 - DVB-S/S2 demod/tuner driver 3 * 4 * Copyright (C) 2008 Patrick Boettcher <pb@linuxtv.org> 5 * Copyright (C) 2009 Sergey Tyurin <forum.free-x.de> 6 * Updated 2012 by Jannis Achstetter <jannis_achstetter@web.de> 7 * Copyright (C) 2015 Jemma Denson <jdenson@gmail.com> 8 * 9 * This program is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License as published by 11 * the Free Software Foundation; either version 2 of the License, or 12 * (at your option) any later version. 13 * 14 * This program is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more details. 18 */ 19 20#ifndef CX24120_H 21#define CX24120_H 22 23#include <linux/kconfig.h> 24#include <linux/dvb/frontend.h> 25#include <linux/firmware.h> 26 27struct cx24120_initial_mpeg_config { 28 u8 x1; 29 u8 x2; 30 u8 x3; 31}; 32 33struct cx24120_config { 34 u8 i2c_addr; 35 u32 xtal_khz; 36 struct cx24120_initial_mpeg_config initial_mpeg_config; 37 38 int (*request_firmware)(struct dvb_frontend *fe, 39 const struct firmware **fw, char *name); 40 41 /* max bytes I2C provider can write at once */ 42 u16 i2c_wr_max; 43}; 44 45#if IS_REACHABLE(CONFIG_DVB_CX24120) 46struct dvb_frontend *cx24120_attach(const struct cx24120_config *config, 47 struct i2c_adapter *i2c); 48#else 49static inline 50struct dvb_frontend *cx24120_attach(const struct cx24120_config *config, 51 struct i2c_adapter *i2c) 52{ 53 pr_warn("%s: driver disabled by Kconfig\n", __func__); 54 return NULL; 55} 56#endif 57 58#endif /* CX24120_H */ 59