brintos

brintos / linux-shallow public Read only

0
0
Text · 1.5 KiB · 84c2dc8 Raw
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