75 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2/*3 Montage Technology TS2020 - Silicon Tuner driver4 Copyright (C) 2009-2012 Konstantin Dimitrov <kosio.dimitrov@gmail.com>5 6 Copyright (C) 2009-2012 TurboSight.com7 8 */9 10#ifndef TS2020_H11#define TS2020_H12 13#include <linux/dvb/frontend.h>14 15struct ts2020_config {16 u8 tuner_address;17 u32 frequency_div;18 19 /*20 * RF loop-through21 */22 bool loop_through:1;23 24 /*25 * clock output26 */27#define TS2020_CLK_OUT_DISABLED 028#define TS2020_CLK_OUT_ENABLED 129#define TS2020_CLK_OUT_ENABLED_XTALOUT 230 u8 clk_out:2;31 32 /*33 * clock output divider34 * 1 - 3135 */36 u8 clk_out_div:5;37 38 /* Set to true to suppress stat polling */39 bool dont_poll:1;40 41 /*42 * pointer to DVB frontend43 */44 struct dvb_frontend *fe;45 46 /*47 * driver private, do not set value48 */49 u8 attach_in_use:1;50 51 /* Operation to be called by the ts2020 driver to get the value of the52 * AGC PWM tuner input as theoretically output by the demodulator.53 */54 int (*get_agc_pwm)(struct dvb_frontend *fe, u8 *_agc_pwm);55};56 57/* Do not add new ts2020_attach() users! Use I2C bindings instead. */58#if IS_REACHABLE(CONFIG_DVB_TS2020)59extern struct dvb_frontend *ts2020_attach(60 struct dvb_frontend *fe,61 const struct ts2020_config *config,62 struct i2c_adapter *i2c);63#else64static inline struct dvb_frontend *ts2020_attach(65 struct dvb_frontend *fe,66 const struct ts2020_config *config,67 struct i2c_adapter *i2c)68{69 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);70 return NULL;71}72#endif73 74#endif /* TS2020_H */75