linux/drivers/media/dvb-frontends/ts2020.h
<<
>>
Prefs
   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 */
  75