linux/drivers/media/dvb-frontends/si2168_priv.h
<<
>>
Prefs
   1/*
   2 * Silicon Labs Si2168 DVB-T/T2/C demodulator driver
   3 *
   4 * Copyright (C) 2014 Antti Palosaari <crope@iki.fi>
   5 *
   6 *    This program is free software; you can redistribute it and/or modify
   7 *    it under the terms of the GNU General Public License as published by
   8 *    the Free Software Foundation; either version 2 of the License, or
   9 *    (at your option) any later version.
  10 *
  11 *    This program is distributed in the hope that it will be useful,
  12 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14 *    GNU General Public License for more details.
  15 */
  16
  17#ifndef SI2168_PRIV_H
  18#define SI2168_PRIV_H
  19
  20#include "si2168.h"
  21#include "dvb_frontend.h"
  22#include <linux/firmware.h>
  23#include <linux/i2c-mux.h>
  24
  25#define SI2168_A20_FIRMWARE "dvb-demod-si2168-a20-01.fw"
  26#define SI2168_A30_FIRMWARE "dvb-demod-si2168-a30-01.fw"
  27#define SI2168_B40_FIRMWARE "dvb-demod-si2168-b40-01.fw"
  28#define SI2168_B40_FIRMWARE_FALLBACK "dvb-demod-si2168-02.fw"
  29
  30/* state struct */
  31struct si2168_dev {
  32        struct mutex i2c_mutex;
  33        struct i2c_mux_core *muxc;
  34        struct dvb_frontend fe;
  35        enum fe_delivery_system delivery_system;
  36        enum fe_status fe_status;
  37        #define SI2168_CHIP_ID_A20 ('A' << 24 | 68 << 16 | '2' << 8 | '0' << 0)
  38        #define SI2168_CHIP_ID_A30 ('A' << 24 | 68 << 16 | '3' << 8 | '0' << 0)
  39        #define SI2168_CHIP_ID_B40 ('B' << 24 | 68 << 16 | '4' << 8 | '0' << 0)
  40        unsigned int chip_id;
  41        unsigned int version;
  42        const char *firmware_name;
  43        bool active;
  44        bool warm;
  45        u8 ts_mode;
  46        bool ts_clock_inv;
  47        bool ts_clock_gapped;
  48};
  49
  50/* firmware command struct */
  51#define SI2168_ARGLEN      30
  52struct si2168_cmd {
  53        u8 args[SI2168_ARGLEN];
  54        unsigned wlen;
  55        unsigned rlen;
  56};
  57
  58#endif
  59