linux/drivers/media/dvb-frontends/dib7000m.h
<<
>>
Prefs
   1#ifndef DIB7000M_H
   2#define DIB7000M_H
   3
   4#include <linux/kconfig.h>
   5
   6#include "dibx000_common.h"
   7
   8struct dib7000m_config {
   9        u8 dvbt_mode;
  10        u8 output_mpeg2_in_188_bytes;
  11        u8 hostbus_diversity;
  12        u8 tuner_is_baseband;
  13        u8 mobile_mode;
  14        int (*update_lna) (struct dvb_frontend *, u16 agc_global);
  15
  16        u8 agc_config_count;
  17        struct dibx000_agc_config *agc;
  18
  19        struct dibx000_bandwidth_config *bw;
  20
  21#define DIB7000M_GPIO_DEFAULT_DIRECTIONS 0xffff
  22        u16 gpio_dir;
  23#define DIB7000M_GPIO_DEFAULT_VALUES     0x0000
  24        u16 gpio_val;
  25#define DIB7000M_GPIO_PWM_POS0(v)        ((v & 0xf) << 12)
  26#define DIB7000M_GPIO_PWM_POS1(v)        ((v & 0xf) << 8 )
  27#define DIB7000M_GPIO_PWM_POS2(v)        ((v & 0xf) << 4 )
  28#define DIB7000M_GPIO_PWM_POS3(v)         (v & 0xf)
  29#define DIB7000M_GPIO_DEFAULT_PWM_POS    0xffff
  30        u16 gpio_pwm_pos;
  31
  32        u16 pwm_freq_div;
  33
  34        u8 quartz_direct;
  35
  36        u8 input_clk_is_div_2;
  37
  38        int (*agc_control) (struct dvb_frontend *, u8 before);
  39};
  40
  41#define DEFAULT_DIB7000M_I2C_ADDRESS 18
  42
  43#if IS_ENABLED(CONFIG_DVB_DIB7000M)
  44extern struct dvb_frontend *dib7000m_attach(struct i2c_adapter *i2c_adap,
  45                                            u8 i2c_addr,
  46                                            struct dib7000m_config *cfg);
  47extern struct i2c_adapter *dib7000m_get_i2c_master(struct dvb_frontend *,
  48                                                   enum dibx000_i2c_interface,
  49                                                   int);
  50extern int dib7000m_pid_filter(struct dvb_frontend *, u8 id, u16 pid, u8 onoff);
  51extern int dib7000m_pid_filter_ctrl(struct dvb_frontend *fe, u8 onoff);
  52#else
  53static inline
  54struct dvb_frontend *dib7000m_attach(struct i2c_adapter *i2c_adap,
  55                                     u8 i2c_addr, struct dib7000m_config *cfg)
  56{
  57        printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
  58        return NULL;
  59}
  60
  61static inline
  62struct i2c_adapter *dib7000m_get_i2c_master(struct dvb_frontend *demod,
  63                                            enum dibx000_i2c_interface intf,
  64                                            int gating)
  65{
  66        printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
  67        return NULL;
  68}
  69static inline int dib7000m_pid_filter(struct dvb_frontend *fe, u8 id,
  70                                                u16 pid, u8 onoff)
  71{
  72        printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
  73        return -ENODEV;
  74}
  75
  76static inline int dib7000m_pid_filter_ctrl(struct dvb_frontend *fe,
  77                                                uint8_t onoff)
  78{
  79        printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
  80        return -ENODEV;
  81}
  82#endif
  83
  84/* TODO
  85extern INT dib7000m_set_gpio(struct dibDemod *demod, UCHAR num, UCHAR dir, UCHAR val);
  86extern INT dib7000m_enable_vbg_voltage(struct dibDemod *demod);
  87extern void dib7000m_set_hostbus_diversity(struct dibDemod *demod, UCHAR onoff);
  88extern USHORT dib7000m_get_current_agc_global(struct dibDemod *demod);
  89*/
  90
  91#endif
  92