174ba9207SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 29a0bf528SMauro Carvalho Chehab /* 39a0bf528SMauro Carvalho Chehab Driver for M88RS2000 demodulator 49a0bf528SMauro Carvalho Chehab 59a0bf528SMauro Carvalho Chehab 69a0bf528SMauro Carvalho Chehab */ 79a0bf528SMauro Carvalho Chehab 89a0bf528SMauro Carvalho Chehab #ifndef M88RS2000_H 99a0bf528SMauro Carvalho Chehab #define M88RS2000_H 109a0bf528SMauro Carvalho Chehab 119a0bf528SMauro Carvalho Chehab #include <linux/dvb/frontend.h> 12fada1935SMauro Carvalho Chehab #include <media/dvb_frontend.h> 139a0bf528SMauro Carvalho Chehab 149a0bf528SMauro Carvalho Chehab struct m88rs2000_config { 159a0bf528SMauro Carvalho Chehab /* Demodulator i2c address */ 169a0bf528SMauro Carvalho Chehab u8 demod_addr; 179a0bf528SMauro Carvalho Chehab 189a0bf528SMauro Carvalho Chehab u8 *inittab; 199a0bf528SMauro Carvalho Chehab 209a0bf528SMauro Carvalho Chehab /* minimum delay before retuning */ 219a0bf528SMauro Carvalho Chehab int min_delay_ms; 229a0bf528SMauro Carvalho Chehab 239a0bf528SMauro Carvalho Chehab int (*set_ts_params)(struct dvb_frontend *, int); 249a0bf528SMauro Carvalho Chehab }; 259a0bf528SMauro Carvalho Chehab 269a0bf528SMauro Carvalho Chehab enum { 279a0bf528SMauro Carvalho Chehab CALL_IS_SET_FRONTEND = 0x0, 289a0bf528SMauro Carvalho Chehab CALL_IS_READ, 299a0bf528SMauro Carvalho Chehab }; 309a0bf528SMauro Carvalho Chehab 319b174527SArnd Bergmann #if IS_REACHABLE(CONFIG_DVB_M88RS2000) 329a0bf528SMauro Carvalho Chehab extern struct dvb_frontend *m88rs2000_attach( 339a0bf528SMauro Carvalho Chehab const struct m88rs2000_config *config, struct i2c_adapter *i2c); 349a0bf528SMauro Carvalho Chehab #else m88rs2000_attach(const struct m88rs2000_config * config,struct i2c_adapter * i2c)359a0bf528SMauro Carvalho Chehabstatic inline struct dvb_frontend *m88rs2000_attach( 369a0bf528SMauro Carvalho Chehab const struct m88rs2000_config *config, struct i2c_adapter *i2c) 379a0bf528SMauro Carvalho Chehab { 389a0bf528SMauro Carvalho Chehab printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 399a0bf528SMauro Carvalho Chehab return NULL; 409a0bf528SMauro Carvalho Chehab } 419a0bf528SMauro Carvalho Chehab #endif /* CONFIG_DVB_M88RS2000 */ 429a0bf528SMauro Carvalho Chehab 4306af15d1SMalcolm Priestley #define RS2000_FE_CRYSTAL_KHZ 27000 4406af15d1SMalcolm Priestley 459a0bf528SMauro Carvalho Chehab enum { 469a0bf528SMauro Carvalho Chehab DEMOD_WRITE = 0x1, 479a0bf528SMauro Carvalho Chehab WRITE_DELAY = 0x10, 489a0bf528SMauro Carvalho Chehab }; 499a0bf528SMauro Carvalho Chehab #endif /* M88RS2000_H */ 50