linux/drivers/media/dvb-frontends/hd29l2.h
<<
>>
Prefs
   1/*
   2 * HDIC HD29L2 DMB-TH demodulator driver
   3 *
   4 * Copyright (C) 2011 Metropolia University of Applied Sciences, Electria R&D
   5 *
   6 * Author: Antti Palosaari <crope@iki.fi>
   7 *
   8 *    This program is free software; you can redistribute it and/or modify
   9 *    it under the terms of the GNU General Public License as published by
  10 *    the Free Software Foundation; either version 2 of the License, or
  11 *    (at your option) any later version.
  12 *
  13 *    This program is distributed in the hope that it will be useful,
  14 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  15 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16 *    GNU General Public License for more details.
  17 *
  18 *    You should have received a copy of the GNU General Public License
  19 *    along with this program; if not, write to the Free Software
  20 *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  21 */
  22
  23#ifndef HD29L2_H
  24#define HD29L2_H
  25
  26#include <linux/kconfig.h>
  27#include <linux/dvb/frontend.h>
  28
  29struct hd29l2_config {
  30        /*
  31         * demodulator I2C address
  32         */
  33        u8 i2c_addr;
  34
  35        /*
  36         * tuner I2C address
  37         * only needed when tuner is behind demod I2C-gate
  38         */
  39        u8 tuner_i2c_addr;
  40
  41        /*
  42         * TS settings
  43         */
  44#define HD29L2_TS_SERIAL            0x00
  45#define HD29L2_TS_PARALLEL          0x80
  46#define HD29L2_TS_CLK_NORMAL        0x40
  47#define HD29L2_TS_CLK_INVERTED      0x00
  48#define HD29L2_TS_CLK_GATED         0x20
  49#define HD29L2_TS_CLK_FREE          0x00
  50        u8 ts_mode;
  51};
  52
  53
  54#if IS_ENABLED(CONFIG_DVB_HD29L2)
  55extern struct dvb_frontend *hd29l2_attach(const struct hd29l2_config *config,
  56        struct i2c_adapter *i2c);
  57#else
  58static inline struct dvb_frontend *hd29l2_attach(
  59const struct hd29l2_config *config, struct i2c_adapter *i2c)
  60{
  61        pr_warn("%s: driver disabled by Kconfig\n", __func__);
  62        return NULL;
  63}
  64#endif
  65
  66#endif /* HD29L2_H */
  67