19a0bf528SMauro Carvalho Chehab /* 29a0bf528SMauro Carvalho Chehab * Fujitsu mb86a20s driver 39a0bf528SMauro Carvalho Chehab * 4*37e59f87SMauro Carvalho Chehab * Copyright (C) 2010 Mauro Carvalho Chehab 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 as 89a0bf528SMauro Carvalho Chehab * published by the Free Software Foundation version 2. 99a0bf528SMauro Carvalho Chehab * 109a0bf528SMauro Carvalho Chehab * This program is distributed in the hope that it will be useful, 119a0bf528SMauro Carvalho Chehab * but WITHOUT ANY WARRANTY; without even the implied warranty of 129a0bf528SMauro Carvalho Chehab * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 139a0bf528SMauro Carvalho Chehab * General Public License for more details. 149a0bf528SMauro Carvalho Chehab */ 159a0bf528SMauro Carvalho Chehab 169a0bf528SMauro Carvalho Chehab #ifndef MB86A20S_H 179a0bf528SMauro Carvalho Chehab #define MB86A20S_H 189a0bf528SMauro Carvalho Chehab 19782d8b74SMauro Carvalho Chehab #include <linux/kconfig.h> 209a0bf528SMauro Carvalho Chehab #include <linux/dvb/frontend.h> 219a0bf528SMauro Carvalho Chehab 229a0bf528SMauro Carvalho Chehab /** 239a0bf528SMauro Carvalho Chehab * struct mb86a20s_config - Define the per-device attributes of the frontend 249a0bf528SMauro Carvalho Chehab * 250e4bbeddSMauro Carvalho Chehab * @fclk: Clock frequency. If zero, assumes the default 260e4bbeddSMauro Carvalho Chehab * (32.57142 Mhz) 279a0bf528SMauro Carvalho Chehab * @demod_address: the demodulator's i2c address 280e4bbeddSMauro Carvalho Chehab * @is_serial: if true, TS is serial. Otherwise, TS is parallel 299a0bf528SMauro Carvalho Chehab */ 309a0bf528SMauro Carvalho Chehab 319a0bf528SMauro Carvalho Chehab struct mb86a20s_config { 320e4bbeddSMauro Carvalho Chehab u32 fclk; 339a0bf528SMauro Carvalho Chehab u8 demod_address; 349a0bf528SMauro Carvalho Chehab bool is_serial; 359a0bf528SMauro Carvalho Chehab }; 369a0bf528SMauro Carvalho Chehab 37782d8b74SMauro Carvalho Chehab #if IS_ENABLED(CONFIG_DVB_MB86A20S) 389a0bf528SMauro Carvalho Chehab extern struct dvb_frontend *mb86a20s_attach(const struct mb86a20s_config *config, 399a0bf528SMauro Carvalho Chehab struct i2c_adapter *i2c); 409a0bf528SMauro Carvalho Chehab extern struct i2c_adapter *mb86a20s_get_tuner_i2c_adapter(struct dvb_frontend *); 419a0bf528SMauro Carvalho Chehab #else 429a0bf528SMauro Carvalho Chehab static inline struct dvb_frontend *mb86a20s_attach( 439a0bf528SMauro Carvalho Chehab const struct mb86a20s_config *config, struct i2c_adapter *i2c) 449a0bf528SMauro Carvalho Chehab { 459a0bf528SMauro Carvalho Chehab printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 469a0bf528SMauro Carvalho Chehab return NULL; 479a0bf528SMauro Carvalho Chehab } 489a0bf528SMauro Carvalho Chehab static struct i2c_adapter * 499a0bf528SMauro Carvalho Chehab mb86a20s_get_tuner_i2c_adapter(struct dvb_frontend *fe) 509a0bf528SMauro Carvalho Chehab { 519a0bf528SMauro Carvalho Chehab printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 529a0bf528SMauro Carvalho Chehab return NULL; 539a0bf528SMauro Carvalho Chehab } 549a0bf528SMauro Carvalho Chehab #endif 559a0bf528SMauro Carvalho Chehab 569a0bf528SMauro Carvalho Chehab #endif /* MB86A20S */ 57