linux/drivers/media/dvb-frontends/dib0070.h
<<
>>
Prefs
   1/*
   2 * Linux-DVB Driver for DiBcom's DiB0070 base-band RF Tuner.
   3 *
   4 * Copyright (C) 2005-7 DiBcom (http://www.dibcom.fr/)
   5 *
   6 * This program is free software; you can redistribute it and/or
   7 *      modify it under the terms of the GNU General Public License as
   8 *      published by the Free Software Foundation, version 2.
   9 */
  10#ifndef DIB0070_H
  11#define DIB0070_H
  12
  13struct dvb_frontend;
  14struct i2c_adapter;
  15
  16#define DEFAULT_DIB0070_I2C_ADDRESS 0x60
  17
  18struct dib0070_wbd_gain_cfg {
  19        u16 freq;
  20        u16 wbd_gain_val;
  21};
  22
  23struct dib0070_config {
  24        u8 i2c_address;
  25
  26        /* tuner pins controlled externally */
  27        int (*reset) (struct dvb_frontend *, int);
  28        int (*sleep) (struct dvb_frontend *, int);
  29
  30        /*  offset in kHz */
  31        int freq_offset_khz_uhf;
  32        int freq_offset_khz_vhf;
  33
  34        u8 osc_buffer_state;    /* 0= normal, 1= tri-state */
  35        u32 clock_khz;
  36        u8 clock_pad_drive;     /* (Drive + 1) * 2mA */
  37
  38        u8 invert_iq;           /* invert Q - in case I or Q is inverted on the board */
  39
  40        u8 force_crystal_mode;  /* if == 0 -> decision is made in the driver default: <24 -> 2, >=24 -> 1 */
  41
  42        u8 flip_chip;
  43        u8 enable_third_order_filter;
  44        u8 charge_pump;
  45
  46        const struct dib0070_wbd_gain_cfg *wbd_gain;
  47
  48        u8 vga_filter;
  49};
  50
  51#if IS_REACHABLE(CONFIG_DVB_TUNER_DIB0070)
  52extern struct dvb_frontend *dib0070_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, struct dib0070_config *cfg);
  53extern u16 dib0070_wbd_offset(struct dvb_frontend *);
  54extern void dib0070_ctrl_agc_filter(struct dvb_frontend *, u8 open);
  55extern u8 dib0070_get_rf_output(struct dvb_frontend *fe);
  56extern int dib0070_set_rf_output(struct dvb_frontend *fe, u8 no);
  57#else
  58static inline struct dvb_frontend *dib0070_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, struct dib0070_config *cfg)
  59{
  60        printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
  61        return NULL;
  62}
  63
  64static inline u16 dib0070_wbd_offset(struct dvb_frontend *fe)
  65{
  66        printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
  67        return 0;
  68}
  69
  70static inline void dib0070_ctrl_agc_filter(struct dvb_frontend *fe, u8 open)
  71{
  72        printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
  73}
  74#endif
  75
  76#endif
  77