18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Conexant CX24120/CX24118 - DVB-S/S2 demod/tuner driver 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 2008 Patrick Boettcher <pb@linuxtv.org> 68c2ecf20Sopenharmony_ci * Copyright (C) 2009 Sergey Tyurin <forum.free-x.de> 78c2ecf20Sopenharmony_ci * Updated 2012 by Jannis Achstetter <jannis_achstetter@web.de> 88c2ecf20Sopenharmony_ci * Copyright (C) 2015 Jemma Denson <jdenson@gmail.com> 98c2ecf20Sopenharmony_ci */ 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci#ifndef CX24120_H 128c2ecf20Sopenharmony_ci#define CX24120_H 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci#include <linux/dvb/frontend.h> 158c2ecf20Sopenharmony_ci#include <linux/firmware.h> 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_cistruct cx24120_initial_mpeg_config { 188c2ecf20Sopenharmony_ci u8 x1; 198c2ecf20Sopenharmony_ci u8 x2; 208c2ecf20Sopenharmony_ci u8 x3; 218c2ecf20Sopenharmony_ci}; 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_cistruct cx24120_config { 248c2ecf20Sopenharmony_ci u8 i2c_addr; 258c2ecf20Sopenharmony_ci u32 xtal_khz; 268c2ecf20Sopenharmony_ci struct cx24120_initial_mpeg_config initial_mpeg_config; 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci int (*request_firmware)(struct dvb_frontend *fe, 298c2ecf20Sopenharmony_ci const struct firmware **fw, char *name); 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci /* max bytes I2C provider can write at once */ 328c2ecf20Sopenharmony_ci u16 i2c_wr_max; 338c2ecf20Sopenharmony_ci}; 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci#if IS_REACHABLE(CONFIG_DVB_CX24120) 368c2ecf20Sopenharmony_cistruct dvb_frontend *cx24120_attach(const struct cx24120_config *config, 378c2ecf20Sopenharmony_ci struct i2c_adapter *i2c); 388c2ecf20Sopenharmony_ci#else 398c2ecf20Sopenharmony_cistatic inline 408c2ecf20Sopenharmony_cistruct dvb_frontend *cx24120_attach(const struct cx24120_config *config, 418c2ecf20Sopenharmony_ci struct i2c_adapter *i2c) 428c2ecf20Sopenharmony_ci{ 438c2ecf20Sopenharmony_ci pr_warn("%s: driver disabled by Kconfig\n", __func__); 448c2ecf20Sopenharmony_ci return NULL; 458c2ecf20Sopenharmony_ci} 468c2ecf20Sopenharmony_ci#endif 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci#endif /* CX24120_H */ 49