1*89ee7f4fSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */ 2126f1e61SRalph Metzler /* 3126f1e61SRalph Metzler * drxd.h: DRXD DVB-T demodulator driver 4126f1e61SRalph Metzler * 5126f1e61SRalph Metzler * Copyright (C) 2005-2007 Micronas 6126f1e61SRalph Metzler */ 7126f1e61SRalph Metzler 8126f1e61SRalph Metzler #ifndef _DRXD_H_ 9126f1e61SRalph Metzler #define _DRXD_H_ 10126f1e61SRalph Metzler 11126f1e61SRalph Metzler #include <linux/types.h> 12126f1e61SRalph Metzler #include <linux/i2c.h> 13126f1e61SRalph Metzler 146cacdd46SDevin Heitmueller struct drxd_config { 15126f1e61SRalph Metzler u8 index; 16126f1e61SRalph Metzler 17126f1e61SRalph Metzler u8 pll_address; 18126f1e61SRalph Metzler u8 pll_type; 19126f1e61SRalph Metzler #define DRXD_PLL_NONE 0 20126f1e61SRalph Metzler #define DRXD_PLL_DTT7520X 1 21126f1e61SRalph Metzler #define DRXD_PLL_MT3X0823 2 22126f1e61SRalph Metzler 23126f1e61SRalph Metzler u32 clock; 24ba967965SDevin Heitmueller u8 insert_rs_byte; 25126f1e61SRalph Metzler 26126f1e61SRalph Metzler u8 demod_address; 27126f1e61SRalph Metzler u8 demoda_address; 28126f1e61SRalph Metzler u8 demod_revision; 29126f1e61SRalph Metzler 306b142b3cSDevin Heitmueller /* If the tuner is not behind an i2c gate, be sure to flip this bit 316b142b3cSDevin Heitmueller or else the i2c bus could get wedged */ 326b142b3cSDevin Heitmueller u8 disable_i2c_gate_ctrl; 336b142b3cSDevin Heitmueller 34126f1e61SRalph Metzler u32 IF; 35126f1e61SRalph Metzler s16(*osc_deviation) (void *priv, s16 dev, int flag); 36126f1e61SRalph Metzler }; 37126f1e61SRalph Metzler 389b174527SArnd Bergmann #if IS_REACHABLE(CONFIG_DVB_DRXD) 39126f1e61SRalph Metzler extern 40126f1e61SRalph Metzler struct dvb_frontend *drxd_attach(const struct drxd_config *config, 41126f1e61SRalph Metzler void *priv, struct i2c_adapter *i2c, 42126f1e61SRalph Metzler struct device *dev); 4360ab5e12SArnd Bergmann #else 4460ab5e12SArnd Bergmann static inline 4560ab5e12SArnd Bergmann struct dvb_frontend *drxd_attach(const struct drxd_config *config, 4660ab5e12SArnd Bergmann void *priv, struct i2c_adapter *i2c, 4760ab5e12SArnd Bergmann struct device *dev) 4860ab5e12SArnd Bergmann { 4960ab5e12SArnd Bergmann printk(KERN_INFO "%s: not probed - driver disabled by Kconfig\n", 5060ab5e12SArnd Bergmann __func__); 5160ab5e12SArnd Bergmann return NULL; 5260ab5e12SArnd Bergmann } 5360ab5e12SArnd Bergmann #endif 5460ab5e12SArnd Bergmann 55126f1e61SRalph Metzler #endif 56