cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

ts2020.h (1547B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2/*
      3    Montage Technology TS2020 - Silicon Tuner driver
      4    Copyright (C) 2009-2012 Konstantin Dimitrov <kosio.dimitrov@gmail.com>
      5
      6    Copyright (C) 2009-2012 TurboSight.com
      7
      8 */
      9
     10#ifndef TS2020_H
     11#define TS2020_H
     12
     13#include <linux/dvb/frontend.h>
     14
     15struct ts2020_config {
     16	u8 tuner_address;
     17	u32 frequency_div;
     18
     19	/*
     20	 * RF loop-through
     21	 */
     22	bool loop_through:1;
     23
     24	/*
     25	 * clock output
     26	 */
     27#define TS2020_CLK_OUT_DISABLED        0
     28#define TS2020_CLK_OUT_ENABLED         1
     29#define TS2020_CLK_OUT_ENABLED_XTALOUT 2
     30	u8 clk_out:2;
     31
     32	/*
     33	 * clock output divider
     34	 * 1 - 31
     35	 */
     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 frontend
     43	 */
     44	struct dvb_frontend *fe;
     45
     46	/*
     47	 * driver private, do not set value
     48	 */
     49	u8 attach_in_use:1;
     50
     51	/* Operation to be called by the ts2020 driver to get the value of the
     52	 * 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#else
     64static 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#endif
     73
     74#endif /* TS2020_H */