Linux Audio
Check our new training course
Embedded Linux Audio
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
/* SPDX-License-Identifier: GPL-2.0-or-later */ /* Frontend-driver for TwinHan DST Frontend Copyright (C) 2003 Jamie Honan Copyright (C) 2004, 2005 Manu Abraham (manu@kromtek.com) */ #ifndef DST_COMMON_H #define DST_COMMON_H #include <linux/dvb/frontend.h> #include <linux/device.h> #include <linux/mutex.h> #include "bt878.h" #include "dst_ca.h" #define NO_DELAY 0 #define LONG_DELAY 1 #define DEVICE_INIT 2 #define DELAY 1 #define DST_TYPE_IS_SAT 0 #define DST_TYPE_IS_TERR 1 #define DST_TYPE_IS_CABLE 2 #define DST_TYPE_IS_ATSC 3 #define DST_TYPE_HAS_TS188 1 #define DST_TYPE_HAS_TS204 2 #define DST_TYPE_HAS_SYMDIV 4 #define DST_TYPE_HAS_FW_1 8 #define DST_TYPE_HAS_FW_2 16 #define DST_TYPE_HAS_FW_3 32 #define DST_TYPE_HAS_FW_BUILD 64 #define DST_TYPE_HAS_OBS_REGS 128 #define DST_TYPE_HAS_INC_COUNT 256 #define DST_TYPE_HAS_MULTI_FE 512 #define DST_TYPE_HAS_NEWTUNE_2 1024 #define DST_TYPE_HAS_DBOARD 2048 #define DST_TYPE_HAS_VLF 4096 /* Card capability list */ #define DST_TYPE_HAS_MAC 1 #define DST_TYPE_HAS_DISEQC3 2 #define DST_TYPE_HAS_DISEQC4 4 #define DST_TYPE_HAS_DISEQC5 8 #define DST_TYPE_HAS_MOTO 16 #define DST_TYPE_HAS_CA 32 #define DST_TYPE_HAS_ANALOG 64 /* Analog inputs */ #define DST_TYPE_HAS_SESSION 128 #define TUNER_TYPE_MULTI 1 #define TUNER_TYPE_UNKNOWN 2 /* DVB-S */ #define TUNER_TYPE_L64724 4 #define TUNER_TYPE_STV0299 8 #define TUNER_TYPE_MB86A15 16 /* DVB-T */ #define TUNER_TYPE_TDA10046 32 /* ATSC */ #define TUNER_TYPE_NXT200x 64 #define RDC_8820_PIO_0_DISABLE 0 #define RDC_8820_PIO_0_ENABLE 1 #define RDC_8820_INT 2 #define RDC_8820_RESET 4 /* DST Communication */ #define GET_REPLY 1 #define NO_REPLY 0 #define GET_ACK 1 #define FIXED_COMM 8 #define ACK 0xff struct dst_state { struct i2c_adapter* i2c; struct bt878* bt; /* configuration settings */ const struct dst_config* config; struct dvb_frontend frontend; /* private ASIC data */ u8 tx_tuna[10]; u8 rx_tuna[10]; u8 rxbuffer[10]; u8 diseq_flags; u8 dst_type; u32 type_flags; u32 frequency; /* intermediate frequency in kHz for QPSK */ enum fe_spectral_inversion inversion; u32 symbol_rate; /* symbol rate in Symbols per second */ enum fe_code_rate fec; enum fe_sec_voltage voltage; enum fe_sec_tone_mode tone; u32 decode_freq; u8 decode_lock; u16 decode_strength; u16 decode_snr; unsigned long cur_jiff; u8 k22; u32 bandwidth; u32 dst_hw_cap; u8 dst_fw_version; enum fe_sec_mini_cmd minicmd; enum fe_modulation modulation; u8 messages[256]; u8 mac_address[8]; u8 fw_version[8]; u8 card_info[8]; u8 vendor[8]; u8 board_info[8]; u32 tuner_type; char *tuner_name; struct mutex dst_mutex; char fw_name[8]; struct dvb_device *dst_ca; }; struct tuner_types { u32 tuner_type; char *tuner_name; char *board_name; char *fw_name; }; struct dst_types { char *device_id; int offset; u8 dst_type; u32 type_flags; u32 dst_feature; u32 tuner_type; }; struct dst_config { /* the ASIC i2c address */ u8 demod_address; }; int rdc_reset_state(struct dst_state *state); int dst_wait_dst_ready(struct dst_state *state, u8 delay_mode); int dst_pio_disable(struct dst_state *state); int dst_error_recovery(struct dst_state* state); int dst_error_bailout(struct dst_state *state); int dst_comm_init(struct dst_state* state); int write_dst(struct dst_state *state, u8 * data, u8 len); int read_dst(struct dst_state *state, u8 * ret, u8 len); u8 dst_check_sum(u8 * buf, u32 len); struct dst_state* dst_attach(struct dst_state* state, struct dvb_adapter *dvb_adapter); struct dvb_device *dst_ca_attach(struct dst_state *state, struct dvb_adapter *dvb_adapter); #endif // DST_COMMON_H