root/drivers/media/dvb-frontends/stv0299.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. stv0299_attach
  2. stv0299_writereg

   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 /*
   3     Driver for ST STV0299 demodulator
   4 
   5     Copyright (C) 2001-2002 Convergence Integrated Media GmbH
   6         <ralph@convergence.de>,
   7         <holger@convergence.de>,
   8         <js@convergence.de>
   9 
  10 
  11     Philips SU1278/SH
  12 
  13     Copyright (C) 2002 by Peter Schildmann <peter.schildmann@web.de>
  14 
  15 
  16     LG TDQF-S001F
  17 
  18     Copyright (C) 2002 Felix Domke <tmbinc@elitedvb.net>
  19                      & Andreas Oberritter <obi@linuxtv.org>
  20 
  21 
  22     Support for Samsung TBMU24112IMB used on Technisat SkyStar2 rev. 2.6B
  23 
  24     Copyright (C) 2003 Vadim Catana <skystar@moldova.cc>:
  25 
  26     Support for Philips SU1278 on Technotrend hardware
  27 
  28     Copyright (C) 2004 Andrew de Quincey <adq_dvb@lidskialf.net>
  29 
  30 
  31 */
  32 
  33 #ifndef STV0299_H
  34 #define STV0299_H
  35 
  36 #include <linux/dvb/frontend.h>
  37 #include <media/dvb_frontend.h>
  38 
  39 #define STV0299_LOCKOUTPUT_0  0
  40 #define STV0299_LOCKOUTPUT_1  1
  41 #define STV0299_LOCKOUTPUT_CF 2
  42 #define STV0299_LOCKOUTPUT_LK 3
  43 
  44 #define STV0299_VOLT13_OP0 0
  45 #define STV0299_VOLT13_OP1 1
  46 
  47 struct stv0299_config
  48 {
  49         /* the demodulator's i2c address */
  50         u8 demod_address;
  51 
  52         /* inittab - array of pairs of values.
  53          * First of each pair is the register, second is the value.
  54          * List should be terminated with an 0xff, 0xff pair.
  55          */
  56         const u8* inittab;
  57 
  58         /* master clock to use */
  59         u32 mclk;
  60 
  61         /* does the inversion require inversion? */
  62         u8 invert:1;
  63 
  64         /* Skip reinitialisation? */
  65         u8 skip_reinit:1;
  66 
  67         /* LOCK OUTPUT setting */
  68         u8 lock_output:2;
  69 
  70         /* Is 13v controlled by OP0 or OP1? */
  71         u8 volt13_op0_op1:1;
  72 
  73         /* Turn-off OP0? */
  74         u8 op0_off:1;
  75 
  76         /* minimum delay before retuning */
  77         int min_delay_ms;
  78 
  79         /* Set the symbol rate */
  80         int (*set_symbol_rate)(struct dvb_frontend *fe, u32 srate, u32 ratio);
  81 
  82         /* Set device param to start dma */
  83         int (*set_ts_params)(struct dvb_frontend *fe, int is_punctured);
  84 };
  85 
  86 #if IS_REACHABLE(CONFIG_DVB_STV0299)
  87 extern struct dvb_frontend *stv0299_attach(const struct stv0299_config *config,
  88                                            struct i2c_adapter *i2c);
  89 #else
  90 static inline struct dvb_frontend *stv0299_attach(const struct stv0299_config *config,
  91                                            struct i2c_adapter *i2c)
  92 {
  93         printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
  94         return NULL;
  95 }
  96 #endif // CONFIG_DVB_STV0299
  97 
  98 static inline int stv0299_writereg(struct dvb_frontend *fe, u8 reg, u8 val) {
  99         int r = 0;
 100         u8 buf[] = {reg, val};
 101         if (fe->ops.write)
 102                 r = fe->ops.write(fe, buf, 2);
 103         return r;
 104 }
 105 
 106 #endif // STV0299_H

/* [<][>][^][v][top][bottom][index][help] */