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

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

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. tda10021_attach
  2. tda10023_attach

   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 /*
   3     TDA10021/TDA10023  - Single Chip Cable Channel Receiver driver module
   4                          used on the the Siemens DVB-C cards
   5 
   6     Copyright (C) 1999 Convergence Integrated Media GmbH <ralph@convergence.de>
   7     Copyright (C) 2004 Markus Schulz <msc@antzsystem.de>
   8                    Support for TDA10021
   9 
  10 */
  11 
  12 #ifndef TDA1002x_H
  13 #define TDA1002x_H
  14 
  15 #include <linux/dvb/frontend.h>
  16 
  17 struct tda1002x_config {
  18         /* the demodulator's i2c address */
  19         u8 demod_address;
  20         u8 invert;
  21 };
  22 
  23 enum tda10023_output_mode {
  24         TDA10023_OUTPUT_MODE_PARALLEL_A = 0xe0,
  25         TDA10023_OUTPUT_MODE_PARALLEL_B = 0xa1,
  26         TDA10023_OUTPUT_MODE_PARALLEL_C = 0xa0,
  27         TDA10023_OUTPUT_MODE_SERIAL, /* TODO: not implemented */
  28 };
  29 
  30 struct tda10023_config {
  31         /* the demodulator's i2c address */
  32         u8 demod_address;
  33         u8 invert;
  34 
  35         /* clock settings */
  36         u32 xtal; /* defaults: 28920000 */
  37         u8 pll_m; /* defaults: 8 */
  38         u8 pll_p; /* defaults: 4 */
  39         u8 pll_n; /* defaults: 1 */
  40 
  41         /* MPEG2 TS output mode */
  42         u8 output_mode;
  43 
  44         /* input freq offset + baseband conversion type */
  45         u16 deltaf;
  46 };
  47 
  48 #if IS_REACHABLE(CONFIG_DVB_TDA10021)
  49 extern struct dvb_frontend* tda10021_attach(const struct tda1002x_config* config,
  50                                             struct i2c_adapter* i2c, u8 pwm);
  51 #else
  52 static inline struct dvb_frontend* tda10021_attach(const struct tda1002x_config* config,
  53                                             struct i2c_adapter* i2c, u8 pwm)
  54 {
  55         printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
  56         return NULL;
  57 }
  58 #endif // CONFIG_DVB_TDA10021
  59 
  60 #if IS_REACHABLE(CONFIG_DVB_TDA10023)
  61 extern struct dvb_frontend *tda10023_attach(
  62         const struct tda10023_config *config,
  63         struct i2c_adapter *i2c, u8 pwm);
  64 #else
  65 static inline struct dvb_frontend *tda10023_attach(
  66         const struct tda10023_config *config,
  67         struct i2c_adapter *i2c, u8 pwm)
  68 {
  69         printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
  70         return NULL;
  71 }
  72 #endif // CONFIG_DVB_TDA10023
  73 
  74 #endif // TDA1002x_H

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