19a0bf528SMauro Carvalho Chehab /* 29a0bf528SMauro Carvalho Chehab * drxd.h: DRXD DVB-T demodulator driver 39a0bf528SMauro Carvalho Chehab * 49a0bf528SMauro Carvalho Chehab * Copyright (C) 2005-2007 Micronas 59a0bf528SMauro Carvalho Chehab * 69a0bf528SMauro Carvalho Chehab * This program is free software; you can redistribute it and/or 79a0bf528SMauro Carvalho Chehab * modify it under the terms of the GNU General Public License 89a0bf528SMauro Carvalho Chehab * version 2 only, as published by the Free Software Foundation. 99a0bf528SMauro Carvalho Chehab * 109a0bf528SMauro Carvalho Chehab * 119a0bf528SMauro Carvalho Chehab * This program is distributed in the hope that it will be useful, 129a0bf528SMauro Carvalho Chehab * but WITHOUT ANY WARRANTY; without even the implied warranty of 139a0bf528SMauro Carvalho Chehab * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 149a0bf528SMauro Carvalho Chehab * GNU General Public License for more details. 159a0bf528SMauro Carvalho Chehab * 169a0bf528SMauro Carvalho Chehab * 179a0bf528SMauro Carvalho Chehab * You should have received a copy of the GNU General Public License 189a0bf528SMauro Carvalho Chehab * along with this program; if not, write to the Free Software 199a0bf528SMauro Carvalho Chehab * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 209a0bf528SMauro Carvalho Chehab * 02110-1301, USA 219a0bf528SMauro Carvalho Chehab * Or, point your browser to http://www.gnu.org/copyleft/gpl.html 229a0bf528SMauro Carvalho Chehab */ 239a0bf528SMauro Carvalho Chehab 249a0bf528SMauro Carvalho Chehab #ifndef _DRXD_H_ 259a0bf528SMauro Carvalho Chehab #define _DRXD_H_ 269a0bf528SMauro Carvalho Chehab 279a0bf528SMauro Carvalho Chehab #include <linux/types.h> 289a0bf528SMauro Carvalho Chehab #include <linux/i2c.h> 299a0bf528SMauro Carvalho Chehab 309a0bf528SMauro Carvalho Chehab struct drxd_config { 319a0bf528SMauro Carvalho Chehab u8 index; 329a0bf528SMauro Carvalho Chehab 339a0bf528SMauro Carvalho Chehab u8 pll_address; 349a0bf528SMauro Carvalho Chehab u8 pll_type; 359a0bf528SMauro Carvalho Chehab #define DRXD_PLL_NONE 0 369a0bf528SMauro Carvalho Chehab #define DRXD_PLL_DTT7520X 1 379a0bf528SMauro Carvalho Chehab #define DRXD_PLL_MT3X0823 2 389a0bf528SMauro Carvalho Chehab 399a0bf528SMauro Carvalho Chehab u32 clock; 409a0bf528SMauro Carvalho Chehab u8 insert_rs_byte; 419a0bf528SMauro Carvalho Chehab 429a0bf528SMauro Carvalho Chehab u8 demod_address; 439a0bf528SMauro Carvalho Chehab u8 demoda_address; 449a0bf528SMauro Carvalho Chehab u8 demod_revision; 459a0bf528SMauro Carvalho Chehab 469a0bf528SMauro Carvalho Chehab /* If the tuner is not behind an i2c gate, be sure to flip this bit 479a0bf528SMauro Carvalho Chehab or else the i2c bus could get wedged */ 489a0bf528SMauro Carvalho Chehab u8 disable_i2c_gate_ctrl; 499a0bf528SMauro Carvalho Chehab 509a0bf528SMauro Carvalho Chehab u32 IF; 519a0bf528SMauro Carvalho Chehab s16(*osc_deviation) (void *priv, s16 dev, int flag); 529a0bf528SMauro Carvalho Chehab }; 539a0bf528SMauro Carvalho Chehab 549a0bf528SMauro Carvalho Chehab #if defined(CONFIG_DVB_DRXD) || \ 559a0bf528SMauro Carvalho Chehab (defined(CONFIG_DVB_DRXD_MODULE) && defined(MODULE)) 569a0bf528SMauro Carvalho Chehab extern 579a0bf528SMauro Carvalho Chehab struct dvb_frontend *drxd_attach(const struct drxd_config *config, 589a0bf528SMauro Carvalho Chehab void *priv, struct i2c_adapter *i2c, 599a0bf528SMauro Carvalho Chehab struct device *dev); 609a0bf528SMauro Carvalho Chehab #else 619a0bf528SMauro Carvalho Chehab static inline 629a0bf528SMauro Carvalho Chehab struct dvb_frontend *drxd_attach(const struct drxd_config *config, 639a0bf528SMauro Carvalho Chehab void *priv, struct i2c_adapter *i2c, 649a0bf528SMauro Carvalho Chehab struct device *dev) 659a0bf528SMauro Carvalho Chehab { 669a0bf528SMauro Carvalho Chehab printk(KERN_INFO "%s: not probed - driver disabled by Kconfig\n", 679a0bf528SMauro Carvalho Chehab __func__); 689a0bf528SMauro Carvalho Chehab return NULL; 699a0bf528SMauro Carvalho Chehab } 709a0bf528SMauro Carvalho Chehab #endif 719a0bf528SMauro Carvalho Chehab 729a0bf528SMauro Carvalho Chehab extern int drxd_config_i2c(struct dvb_frontend *, int); 739a0bf528SMauro Carvalho Chehab #endif 74