18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * drxd.h: DRXD DVB-T demodulator driver 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 2005-2007 Micronas 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#ifndef _DRXD_H_ 98c2ecf20Sopenharmony_ci#define _DRXD_H_ 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci#include <linux/types.h> 128c2ecf20Sopenharmony_ci#include <linux/i2c.h> 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_cistruct drxd_config { 158c2ecf20Sopenharmony_ci u8 index; 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci u8 pll_address; 188c2ecf20Sopenharmony_ci u8 pll_type; 198c2ecf20Sopenharmony_ci#define DRXD_PLL_NONE 0 208c2ecf20Sopenharmony_ci#define DRXD_PLL_DTT7520X 1 218c2ecf20Sopenharmony_ci#define DRXD_PLL_MT3X0823 2 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ci u32 clock; 248c2ecf20Sopenharmony_ci u8 insert_rs_byte; 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci u8 demod_address; 278c2ecf20Sopenharmony_ci u8 demoda_address; 288c2ecf20Sopenharmony_ci u8 demod_revision; 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci /* If the tuner is not behind an i2c gate, be sure to flip this bit 318c2ecf20Sopenharmony_ci or else the i2c bus could get wedged */ 328c2ecf20Sopenharmony_ci u8 disable_i2c_gate_ctrl; 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci u32 IF; 358c2ecf20Sopenharmony_ci s16(*osc_deviation) (void *priv, s16 dev, int flag); 368c2ecf20Sopenharmony_ci}; 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ci#if IS_REACHABLE(CONFIG_DVB_DRXD) 398c2ecf20Sopenharmony_ciextern 408c2ecf20Sopenharmony_cistruct dvb_frontend *drxd_attach(const struct drxd_config *config, 418c2ecf20Sopenharmony_ci void *priv, struct i2c_adapter *i2c, 428c2ecf20Sopenharmony_ci struct device *dev); 438c2ecf20Sopenharmony_ci#else 448c2ecf20Sopenharmony_cistatic inline 458c2ecf20Sopenharmony_cistruct dvb_frontend *drxd_attach(const struct drxd_config *config, 468c2ecf20Sopenharmony_ci void *priv, struct i2c_adapter *i2c, 478c2ecf20Sopenharmony_ci struct device *dev) 488c2ecf20Sopenharmony_ci{ 498c2ecf20Sopenharmony_ci printk(KERN_INFO "%s: not probed - driver disabled by Kconfig\n", 508c2ecf20Sopenharmony_ci __func__); 518c2ecf20Sopenharmony_ci return NULL; 528c2ecf20Sopenharmony_ci} 538c2ecf20Sopenharmony_ci#endif 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ci#endif 56