18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci*/ 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci#ifndef __TEA5767_H__ 68c2ecf20Sopenharmony_ci#define __TEA5767_H__ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#include <linux/i2c.h> 98c2ecf20Sopenharmony_ci#include <media/dvb_frontend.h> 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_cienum tea5767_xtal { 128c2ecf20Sopenharmony_ci TEA5767_LOW_LO_32768 = 0, 138c2ecf20Sopenharmony_ci TEA5767_HIGH_LO_32768 = 1, 148c2ecf20Sopenharmony_ci TEA5767_LOW_LO_13MHz = 2, 158c2ecf20Sopenharmony_ci TEA5767_HIGH_LO_13MHz = 3, 168c2ecf20Sopenharmony_ci}; 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_cistruct tea5767_ctrl { 198c2ecf20Sopenharmony_ci unsigned int port1:1; 208c2ecf20Sopenharmony_ci unsigned int port2:1; 218c2ecf20Sopenharmony_ci unsigned int high_cut:1; 228c2ecf20Sopenharmony_ci unsigned int st_noise:1; 238c2ecf20Sopenharmony_ci unsigned int soft_mute:1; 248c2ecf20Sopenharmony_ci unsigned int japan_band:1; 258c2ecf20Sopenharmony_ci unsigned int deemph_75:1; 268c2ecf20Sopenharmony_ci unsigned int pllref:1; 278c2ecf20Sopenharmony_ci enum tea5767_xtal xtal_freq; 288c2ecf20Sopenharmony_ci}; 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci#if IS_REACHABLE(CONFIG_MEDIA_TUNER_TEA5767) 318c2ecf20Sopenharmony_ciextern int tea5767_autodetection(struct i2c_adapter* i2c_adap, u8 i2c_addr); 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ciextern struct dvb_frontend *tea5767_attach(struct dvb_frontend *fe, 348c2ecf20Sopenharmony_ci struct i2c_adapter* i2c_adap, 358c2ecf20Sopenharmony_ci u8 i2c_addr); 368c2ecf20Sopenharmony_ci#else 378c2ecf20Sopenharmony_cistatic inline int tea5767_autodetection(struct i2c_adapter* i2c_adap, 388c2ecf20Sopenharmony_ci u8 i2c_addr) 398c2ecf20Sopenharmony_ci{ 408c2ecf20Sopenharmony_ci printk(KERN_INFO "%s: not probed - driver disabled by Kconfig\n", 418c2ecf20Sopenharmony_ci __func__); 428c2ecf20Sopenharmony_ci return -EINVAL; 438c2ecf20Sopenharmony_ci} 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_cistatic inline struct dvb_frontend *tea5767_attach(struct dvb_frontend *fe, 468c2ecf20Sopenharmony_ci struct i2c_adapter* i2c_adap, 478c2ecf20Sopenharmony_ci u8 i2c_addr) 488c2ecf20Sopenharmony_ci{ 498c2ecf20Sopenharmony_ci printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 508c2ecf20Sopenharmony_ci return NULL; 518c2ecf20Sopenharmony_ci} 528c2ecf20Sopenharmony_ci#endif 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ci#endif /* __TEA5767_H__ */ 55