Path: blob/master/drivers/media/dvb/bt8xx/dst_common.h
15111 views
/*1Frontend-driver for TwinHan DST Frontend23Copyright (C) 2003 Jamie Honan4Copyright (C) 2004, 2005 Manu Abraham ([email protected])56This program is free software; you can redistribute it and/or modify7it under the terms of the GNU General Public License as published by8the Free Software Foundation; either version 2 of the License, or9(at your option) any later version.1011This program is distributed in the hope that it will be useful,12but WITHOUT ANY WARRANTY; without even the implied warranty of13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the14GNU General Public License for more details.1516You should have received a copy of the GNU General Public License17along with this program; if not, write to the Free Software18Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.19*/2021#ifndef DST_COMMON_H22#define DST_COMMON_H2324#include <linux/dvb/frontend.h>25#include <linux/device.h>26#include <linux/mutex.h>27#include "bt878.h"2829#include "dst_ca.h"303132#define NO_DELAY 033#define LONG_DELAY 134#define DEVICE_INIT 23536#define DELAY 13738#define DST_TYPE_IS_SAT 039#define DST_TYPE_IS_TERR 140#define DST_TYPE_IS_CABLE 241#define DST_TYPE_IS_ATSC 34243#define DST_TYPE_HAS_TS188 144#define DST_TYPE_HAS_TS204 245#define DST_TYPE_HAS_SYMDIV 446#define DST_TYPE_HAS_FW_1 847#define DST_TYPE_HAS_FW_2 1648#define DST_TYPE_HAS_FW_3 3249#define DST_TYPE_HAS_FW_BUILD 6450#define DST_TYPE_HAS_OBS_REGS 12851#define DST_TYPE_HAS_INC_COUNT 25652#define DST_TYPE_HAS_MULTI_FE 51253#define DST_TYPE_HAS_NEWTUNE_2 102454#define DST_TYPE_HAS_DBOARD 204855#define DST_TYPE_HAS_VLF 40965657/* Card capability list */5859#define DST_TYPE_HAS_MAC 160#define DST_TYPE_HAS_DISEQC3 261#define DST_TYPE_HAS_DISEQC4 462#define DST_TYPE_HAS_DISEQC5 863#define DST_TYPE_HAS_MOTO 1664#define DST_TYPE_HAS_CA 3265#define DST_TYPE_HAS_ANALOG 64 /* Analog inputs */66#define DST_TYPE_HAS_SESSION 1286768#define TUNER_TYPE_MULTI 169#define TUNER_TYPE_UNKNOWN 270/* DVB-S */71#define TUNER_TYPE_L64724 472#define TUNER_TYPE_STV0299 873#define TUNER_TYPE_MB86A15 167475/* DVB-T */76#define TUNER_TYPE_TDA10046 327778/* ATSC */79#define TUNER_TYPE_NXT200x 64808182#define RDC_8820_PIO_0_DISABLE 083#define RDC_8820_PIO_0_ENABLE 184#define RDC_8820_INT 285#define RDC_8820_RESET 48687/* DST Communication */88#define GET_REPLY 189#define NO_REPLY 09091#define GET_ACK 192#define FIXED_COMM 89394#define ACK 0xff9596struct dst_state {9798struct i2c_adapter* i2c;99100struct bt878* bt;101102/* configuration settings */103const struct dst_config* config;104105struct dvb_frontend frontend;106107/* private ASIC data */108u8 tx_tuna[10];109u8 rx_tuna[10];110u8 rxbuffer[10];111u8 diseq_flags;112u8 dst_type;113u32 type_flags;114u32 frequency; /* intermediate frequency in kHz for QPSK */115fe_spectral_inversion_t inversion;116u32 symbol_rate; /* symbol rate in Symbols per second */117fe_code_rate_t fec;118fe_sec_voltage_t voltage;119fe_sec_tone_mode_t tone;120u32 decode_freq;121u8 decode_lock;122u16 decode_strength;123u16 decode_snr;124unsigned long cur_jiff;125u8 k22;126fe_bandwidth_t bandwidth;127u32 dst_hw_cap;128u8 dst_fw_version;129fe_sec_mini_cmd_t minicmd;130fe_modulation_t modulation;131u8 messages[256];132u8 mac_address[8];133u8 fw_version[8];134u8 card_info[8];135u8 vendor[8];136u8 board_info[8];137u32 tuner_type;138char *tuner_name;139struct mutex dst_mutex;140u8 fw_name[8];141struct dvb_device *dst_ca;142};143144struct tuner_types {145u32 tuner_type;146char *tuner_name;147char *board_name;148char *fw_name;149};150151struct dst_types {152char *device_id;153int offset;154u8 dst_type;155u32 type_flags;156u32 dst_feature;157u32 tuner_type;158};159160struct dst_config161{162/* the ASIC i2c address */163u8 demod_address;164};165166int rdc_reset_state(struct dst_state *state);167168int dst_wait_dst_ready(struct dst_state *state, u8 delay_mode);169int dst_pio_disable(struct dst_state *state);170int dst_error_recovery(struct dst_state* state);171int dst_error_bailout(struct dst_state *state);172int dst_comm_init(struct dst_state* state);173174int write_dst(struct dst_state *state, u8 * data, u8 len);175int read_dst(struct dst_state *state, u8 * ret, u8 len);176u8 dst_check_sum(u8 * buf, u32 len);177struct dst_state* dst_attach(struct dst_state* state, struct dvb_adapter *dvb_adapter);178struct dvb_device *dst_ca_attach(struct dst_state *state, struct dvb_adapter *dvb_adapter);179180181#endif // DST_COMMON_H182183184