linux/drivers/media/dvb-frontends/dib9000.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef DIB9000_H
   3#define DIB9000_H
   4
   5#include "dibx000_common.h"
   6
   7struct dib9000_config {
   8        u8 dvbt_mode;
   9        u8 output_mpeg2_in_188_bytes;
  10        u8 hostbus_diversity;
  11        struct dibx000_bandwidth_config *bw;
  12
  13        u16 if_drives;
  14
  15        u32 timing_frequency;
  16        u32 xtal_clock_khz;
  17        u32 vcxo_timer;
  18        u32 demod_clock_khz;
  19
  20        const u8 *microcode_B_fe_buffer;
  21        u32 microcode_B_fe_size;
  22
  23        struct dibGPIOFunction gpio_function[2];
  24        struct dibSubbandSelection subband;
  25
  26        u8 output_mode;
  27};
  28
  29#define DEFAULT_DIB9000_I2C_ADDRESS 18
  30
  31#if IS_REACHABLE(CONFIG_DVB_DIB9000)
  32extern struct dvb_frontend *dib9000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, const struct dib9000_config *cfg);
  33extern int dib9000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, u8 default_addr, u8 first_addr);
  34extern struct i2c_adapter *dib9000_get_tuner_interface(struct dvb_frontend *fe);
  35extern struct i2c_adapter *dib9000_get_i2c_master(struct dvb_frontend *fe, enum dibx000_i2c_interface intf, int gating);
  36extern int dib9000_set_gpio(struct dvb_frontend *fe, u8 num, u8 dir, u8 val);
  37extern int dib9000_fw_pid_filter_ctrl(struct dvb_frontend *fe, u8 onoff);
  38extern int dib9000_fw_pid_filter(struct dvb_frontend *fe, u8 id, u16 pid, u8 onoff);
  39extern int dib9000_firmware_post_pll_init(struct dvb_frontend *fe);
  40extern int dib9000_set_slave_frontend(struct dvb_frontend *fe, struct dvb_frontend *fe_slave);
  41extern struct dvb_frontend *dib9000_get_slave_frontend(struct dvb_frontend *fe, int slave_index);
  42extern struct i2c_adapter *dib9000_get_component_bus_interface(struct dvb_frontend *fe);
  43extern int dib9000_set_i2c_adapter(struct dvb_frontend *fe, struct i2c_adapter *i2c);
  44extern int dib9000_fw_set_component_bus_speed(struct dvb_frontend *fe, u16 speed);
  45#else
  46static inline struct dvb_frontend *dib9000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, struct dib9000_config *cfg)
  47{
  48        printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
  49        return NULL;
  50}
  51
  52static inline struct i2c_adapter *dib9000_get_i2c_master(struct dvb_frontend *fe, enum dibx000_i2c_interface intf, int gating)
  53{
  54        printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
  55        return NULL;
  56}
  57
  58static inline int dib9000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, u8 default_addr, u8 first_addr)
  59{
  60        printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
  61        return -ENODEV;
  62}
  63
  64static inline struct i2c_adapter *dib9000_get_tuner_interface(struct dvb_frontend *fe)
  65{
  66        printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
  67        return NULL;
  68}
  69
  70static inline int dib9000_set_gpio(struct dvb_frontend *fe, u8 num, u8 dir, u8 val)
  71{
  72        printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
  73        return -ENODEV;
  74}
  75
  76static inline int dib9000_fw_pid_filter_ctrl(struct dvb_frontend *fe, u8 onoff)
  77{
  78        printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
  79        return -ENODEV;
  80}
  81
  82static inline int dib9000_fw_pid_filter(struct dvb_frontend *fe, u8 id, u16 pid, u8 onoff)
  83{
  84        printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
  85        return -ENODEV;
  86}
  87
  88static inline int dib9000_firmware_post_pll_init(struct dvb_frontend *fe)
  89{
  90        printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
  91        return -ENODEV;
  92}
  93
  94static inline int dib9000_set_slave_frontend(struct dvb_frontend *fe, struct dvb_frontend *fe_slave)
  95{
  96        printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
  97        return -ENODEV;
  98}
  99
 100static inline struct dvb_frontend *dib9000_get_slave_frontend(struct dvb_frontend *fe, int slave_index)
 101{
 102        printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
 103        return NULL;
 104}
 105
 106static inline struct i2c_adapter *dib9000_get_component_bus_interface(struct dvb_frontend *fe)
 107{
 108        printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
 109        return NULL;
 110}
 111
 112static inline int dib9000_set_i2c_adapter(struct dvb_frontend *fe, struct i2c_adapter *i2c)
 113{
 114        printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
 115        return -ENODEV;
 116}
 117
 118static inline int dib9000_fw_set_component_bus_speed(struct dvb_frontend *fe, u16 speed)
 119{
 120        printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
 121        return -ENODEV;
 122}
 123#endif
 124
 125#endif
 126