1*c942fddfSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 25afc9a25SJemma Denson /* 35afc9a25SJemma Denson * Conexant CX24120/CX24118 - DVB-S/S2 demod/tuner driver 45afc9a25SJemma Denson * 55afc9a25SJemma Denson * Copyright (C) 2008 Patrick Boettcher <pb@linuxtv.org> 65afc9a25SJemma Denson * Copyright (C) 2009 Sergey Tyurin <forum.free-x.de> 75afc9a25SJemma Denson * Updated 2012 by Jannis Achstetter <jannis_achstetter@web.de> 85afc9a25SJemma Denson * Copyright (C) 2015 Jemma Denson <jdenson@gmail.com> 95afc9a25SJemma Denson */ 105afc9a25SJemma Denson 115afc9a25SJemma Denson #ifndef CX24120_H 125afc9a25SJemma Denson #define CX24120_H 135afc9a25SJemma Denson 145afc9a25SJemma Denson #include <linux/dvb/frontend.h> 155afc9a25SJemma Denson #include <linux/firmware.h> 165afc9a25SJemma Denson 175afc9a25SJemma Denson struct cx24120_initial_mpeg_config { 185afc9a25SJemma Denson u8 x1; 195afc9a25SJemma Denson u8 x2; 205afc9a25SJemma Denson u8 x3; 215afc9a25SJemma Denson }; 225afc9a25SJemma Denson 235afc9a25SJemma Denson struct cx24120_config { 245afc9a25SJemma Denson u8 i2c_addr; 255afc9a25SJemma Denson u32 xtal_khz; 265afc9a25SJemma Denson struct cx24120_initial_mpeg_config initial_mpeg_config; 275afc9a25SJemma Denson 285afc9a25SJemma Denson int (*request_firmware)(struct dvb_frontend *fe, 295afc9a25SJemma Denson const struct firmware **fw, char *name); 30f7a77ebfSPatrick Boettcher 31f7a77ebfSPatrick Boettcher /* max bytes I2C provider can write at once */ 32f7a77ebfSPatrick Boettcher u16 i2c_wr_max; 335afc9a25SJemma Denson }; 345afc9a25SJemma Denson 355afc9a25SJemma Denson #if IS_REACHABLE(CONFIG_DVB_CX24120) 361ff2e8edSPatrick Boettcher struct dvb_frontend *cx24120_attach(const struct cx24120_config *config, 375afc9a25SJemma Denson struct i2c_adapter *i2c); 385afc9a25SJemma Denson #else 391ff2e8edSPatrick Boettcher static inline 401ff2e8edSPatrick Boettcher struct dvb_frontend *cx24120_attach(const struct cx24120_config *config, 415afc9a25SJemma Denson struct i2c_adapter *i2c) 425afc9a25SJemma Denson { 43c5fb0f5fSPatrick Boettcher pr_warn("%s: driver disabled by Kconfig\n", __func__); 445afc9a25SJemma Denson return NULL; 455afc9a25SJemma Denson } 465afc9a25SJemma Denson #endif 475afc9a25SJemma Denson 485afc9a25SJemma Denson #endif /* CX24120_H */ 49