1c942fddfSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 29a0bf528SMauro Carvalho Chehab /* 39a0bf528SMauro Carvalho Chehab * Driver for 49a0bf528SMauro Carvalho Chehab * Samsung S5H1420 and 59a0bf528SMauro Carvalho Chehab * PnpNetwork PN1010 QPSK Demodulator 69a0bf528SMauro Carvalho Chehab * 79a0bf528SMauro Carvalho Chehab * Copyright (C) 2005 Andrew de Quincey <adq_dvb@lidskialf.net> 89a0bf528SMauro Carvalho Chehab * Copyright (C) 2005-8 Patrick Boettcher <pb@linuxtv.org> 99a0bf528SMauro Carvalho Chehab */ 109a0bf528SMauro Carvalho Chehab #ifndef S5H1420_H 119a0bf528SMauro Carvalho Chehab #define S5H1420_H 129a0bf528SMauro Carvalho Chehab 139a0bf528SMauro Carvalho Chehab #include <linux/dvb/frontend.h> 149a0bf528SMauro Carvalho Chehab 159a0bf528SMauro Carvalho Chehab struct s5h1420_config 169a0bf528SMauro Carvalho Chehab { 179a0bf528SMauro Carvalho Chehab /* the demodulator's i2c address */ 189a0bf528SMauro Carvalho Chehab u8 demod_address; 199a0bf528SMauro Carvalho Chehab 209a0bf528SMauro Carvalho Chehab /* does the inversion require inversion? */ 219a0bf528SMauro Carvalho Chehab u8 invert:1; 229a0bf528SMauro Carvalho Chehab 239a0bf528SMauro Carvalho Chehab u8 repeated_start_workaround:1; 249a0bf528SMauro Carvalho Chehab u8 cdclk_polarity:1; /* 1 == falling edge, 0 == raising edge */ 259a0bf528SMauro Carvalho Chehab 269a0bf528SMauro Carvalho Chehab u8 serial_mpeg:1; 279a0bf528SMauro Carvalho Chehab }; 289a0bf528SMauro Carvalho Chehab 299b174527SArnd Bergmann #if IS_REACHABLE(CONFIG_DVB_S5H1420) 309a0bf528SMauro Carvalho Chehab extern struct dvb_frontend *s5h1420_attach(const struct s5h1420_config *config, 319a0bf528SMauro Carvalho Chehab struct i2c_adapter *i2c); 329a0bf528SMauro Carvalho Chehab extern struct i2c_adapter *s5h1420_get_tuner_i2c_adapter(struct dvb_frontend *fe); 339a0bf528SMauro Carvalho Chehab #else s5h1420_attach(const struct s5h1420_config * config,struct i2c_adapter * i2c)349a0bf528SMauro Carvalho Chehabstatic inline struct dvb_frontend *s5h1420_attach(const struct s5h1420_config *config, 359a0bf528SMauro Carvalho Chehab struct i2c_adapter *i2c) 369a0bf528SMauro Carvalho Chehab { 379a0bf528SMauro Carvalho Chehab printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 389a0bf528SMauro Carvalho Chehab return NULL; 399a0bf528SMauro Carvalho Chehab } 409a0bf528SMauro Carvalho Chehab s5h1420_get_tuner_i2c_adapter(struct dvb_frontend * fe)419a0bf528SMauro Carvalho Chehabstatic inline struct i2c_adapter *s5h1420_get_tuner_i2c_adapter(struct dvb_frontend *fe) 429a0bf528SMauro Carvalho Chehab { 439a0bf528SMauro Carvalho Chehab return NULL; 449a0bf528SMauro Carvalho Chehab } 459a0bf528SMauro Carvalho Chehab #endif // CONFIG_DVB_S5H1420 469a0bf528SMauro Carvalho Chehab 479a0bf528SMauro Carvalho Chehab #endif // S5H1420_H 48