1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 /* 3 * Driver for 4 * Samsung S5H1420 and 5 * PnpNetwork PN1010 QPSK Demodulator 6 * 7 * Copyright (C) 2005 Andrew de Quincey <adq_dvb@lidskialf.net> 8 * Copyright (C) 2005-8 Patrick Boettcher <pb@linuxtv.org> 9 */ 10 #ifndef S5H1420_H 11 #define S5H1420_H 12 13 #include <linux/dvb/frontend.h> 14 15 struct s5h1420_config 16 { 17 /* the demodulator's i2c address */ 18 u8 demod_address; 19 20 /* does the inversion require inversion? */ 21 u8 invert:1; 22 23 u8 repeated_start_workaround:1; 24 u8 cdclk_polarity:1; /* 1 == falling edge, 0 == raising edge */ 25 26 u8 serial_mpeg:1; 27 }; 28 29 #if IS_REACHABLE(CONFIG_DVB_S5H1420) 30 extern struct dvb_frontend *s5h1420_attach(const struct s5h1420_config *config, 31 struct i2c_adapter *i2c); 32 extern struct i2c_adapter *s5h1420_get_tuner_i2c_adapter(struct dvb_frontend *fe); 33 #else 34 static inline struct dvb_frontend *s5h1420_attach(const struct s5h1420_config *config, 35 struct i2c_adapter *i2c) 36 { 37 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 38 return NULL; 39 } 40 41 static inline struct i2c_adapter *s5h1420_get_tuner_i2c_adapter(struct dvb_frontend *fe) 42 { 43 return NULL; 44 } 45 #endif // CONFIG_DVB_S5H1420 46 47 #endif // S5H1420_H 48