18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Elonics R820T silicon tuner driver 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 2012 Antti Palosaari <crope@iki.fi> 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#ifndef R820T_H 98c2ecf20Sopenharmony_ci#define R820T_H 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci#include <media/dvb_frontend.h> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_cienum r820t_chip { 148c2ecf20Sopenharmony_ci CHIP_R820T, 158c2ecf20Sopenharmony_ci CHIP_R620D, 168c2ecf20Sopenharmony_ci CHIP_R828D, 178c2ecf20Sopenharmony_ci CHIP_R828, 188c2ecf20Sopenharmony_ci CHIP_R828S, 198c2ecf20Sopenharmony_ci CHIP_R820C, 208c2ecf20Sopenharmony_ci}; 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_cistruct r820t_config { 238c2ecf20Sopenharmony_ci u8 i2c_addr; /* 0x34 */ 248c2ecf20Sopenharmony_ci u32 xtal; 258c2ecf20Sopenharmony_ci enum r820t_chip rafael_chip; 268c2ecf20Sopenharmony_ci unsigned max_i2c_msg_len; 278c2ecf20Sopenharmony_ci bool use_diplexer; 288c2ecf20Sopenharmony_ci bool use_predetect; 298c2ecf20Sopenharmony_ci}; 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci#if IS_REACHABLE(CONFIG_MEDIA_TUNER_R820T) 328c2ecf20Sopenharmony_cistruct dvb_frontend *r820t_attach(struct dvb_frontend *fe, 338c2ecf20Sopenharmony_ci struct i2c_adapter *i2c, 348c2ecf20Sopenharmony_ci const struct r820t_config *cfg); 358c2ecf20Sopenharmony_ci#else 368c2ecf20Sopenharmony_cistatic inline struct dvb_frontend *r820t_attach(struct dvb_frontend *fe, 378c2ecf20Sopenharmony_ci struct i2c_adapter *i2c, 388c2ecf20Sopenharmony_ci const struct r820t_config *cfg) 398c2ecf20Sopenharmony_ci{ 408c2ecf20Sopenharmony_ci pr_warn("%s: driver disabled by Kconfig\n", __func__); 418c2ecf20Sopenharmony_ci return NULL; 428c2ecf20Sopenharmony_ci} 438c2ecf20Sopenharmony_ci#endif 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ci#endif 46