18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci*/ 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci#ifndef __TDA8290_H__ 68c2ecf20Sopenharmony_ci#define __TDA8290_H__ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#include <linux/i2c.h> 98c2ecf20Sopenharmony_ci#include <media/dvb_frontend.h> 108c2ecf20Sopenharmony_ci#include "tda18271.h" 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_cienum tda8290_lna { 138c2ecf20Sopenharmony_ci TDA8290_LNA_OFF = 0, 148c2ecf20Sopenharmony_ci TDA8290_LNA_GP0_HIGH_ON = 1, 158c2ecf20Sopenharmony_ci TDA8290_LNA_GP0_HIGH_OFF = 2, 168c2ecf20Sopenharmony_ci TDA8290_LNA_ON_BRIDGE = 3, 178c2ecf20Sopenharmony_ci}; 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_cistruct tda829x_config { 208c2ecf20Sopenharmony_ci enum tda8290_lna lna_cfg; 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ci unsigned int probe_tuner:1; 238c2ecf20Sopenharmony_ci#define TDA829X_PROBE_TUNER 0 248c2ecf20Sopenharmony_ci#define TDA829X_DONT_PROBE 1 258c2ecf20Sopenharmony_ci unsigned int no_i2c_gate:1; 268c2ecf20Sopenharmony_ci struct tda18271_std_map *tda18271_std_map; 278c2ecf20Sopenharmony_ci}; 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci#if IS_REACHABLE(CONFIG_MEDIA_TUNER_TDA8290) 308c2ecf20Sopenharmony_ciextern int tda829x_probe(struct i2c_adapter *i2c_adap, u8 i2c_addr); 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ciextern struct dvb_frontend *tda829x_attach(struct dvb_frontend *fe, 338c2ecf20Sopenharmony_ci struct i2c_adapter *i2c_adap, 348c2ecf20Sopenharmony_ci u8 i2c_addr, 358c2ecf20Sopenharmony_ci struct tda829x_config *cfg); 368c2ecf20Sopenharmony_ci#else 378c2ecf20Sopenharmony_cistatic inline int tda829x_probe(struct i2c_adapter *i2c_adap, u8 i2c_addr) 388c2ecf20Sopenharmony_ci{ 398c2ecf20Sopenharmony_ci printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 408c2ecf20Sopenharmony_ci return -EINVAL; 418c2ecf20Sopenharmony_ci} 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_cistatic inline struct dvb_frontend *tda829x_attach(struct dvb_frontend *fe, 448c2ecf20Sopenharmony_ci struct i2c_adapter *i2c_adap, 458c2ecf20Sopenharmony_ci u8 i2c_addr, 468c2ecf20Sopenharmony_ci struct tda829x_config *cfg) 478c2ecf20Sopenharmony_ci{ 488c2ecf20Sopenharmony_ci printk(KERN_INFO "%s: not probed - driver disabled by Kconfig\n", 498c2ecf20Sopenharmony_ci __func__); 508c2ecf20Sopenharmony_ci return NULL; 518c2ecf20Sopenharmony_ci} 528c2ecf20Sopenharmony_ci#endif 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ci#endif /* __TDA8290_H__ */ 55