123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- /* SPDX-License-Identifier: GPL-2.0-or-later */
- /*
- * Abilis Systems Single DVB-T Receiver
- * Copyright (C) 2008 Pierrick Hascoet <pierrick.hascoet@abilis.com>
- */
- #ifndef _AS10X_TYPES_H_
- #define _AS10X_TYPES_H_
- /*********************************/
- /* MACRO DEFINITIONS */
- /*********************************/
- /* bandwidth constant values */
- #define BW_5_MHZ 0x00
- #define BW_6_MHZ 0x01
- #define BW_7_MHZ 0x02
- #define BW_8_MHZ 0x03
- /* hierarchy priority selection values */
- #define HIER_NO_PRIORITY 0x00
- #define HIER_LOW_PRIORITY 0x01
- #define HIER_HIGH_PRIORITY 0x02
- /* constellation available values */
- #define CONST_QPSK 0x00
- #define CONST_QAM16 0x01
- #define CONST_QAM64 0x02
- #define CONST_UNKNOWN 0xFF
- /* hierarchy available values */
- #define HIER_NONE 0x00
- #define HIER_ALPHA_1 0x01
- #define HIER_ALPHA_2 0x02
- #define HIER_ALPHA_4 0x03
- #define HIER_UNKNOWN 0xFF
- /* interleaving available values */
- #define INTLV_NATIVE 0x00
- #define INTLV_IN_DEPTH 0x01
- #define INTLV_UNKNOWN 0xFF
- /* code rate available values */
- #define CODE_RATE_1_2 0x00
- #define CODE_RATE_2_3 0x01
- #define CODE_RATE_3_4 0x02
- #define CODE_RATE_5_6 0x03
- #define CODE_RATE_7_8 0x04
- #define CODE_RATE_UNKNOWN 0xFF
- /* guard interval available values */
- #define GUARD_INT_1_32 0x00
- #define GUARD_INT_1_16 0x01
- #define GUARD_INT_1_8 0x02
- #define GUARD_INT_1_4 0x03
- #define GUARD_UNKNOWN 0xFF
- /* transmission mode available values */
- #define TRANS_MODE_2K 0x00
- #define TRANS_MODE_8K 0x01
- #define TRANS_MODE_4K 0x02
- #define TRANS_MODE_UNKNOWN 0xFF
- /* DVBH signalling available values */
- #define TIMESLICING_PRESENT 0x01
- #define MPE_FEC_PRESENT 0x02
- /* tune state available */
- #define TUNE_STATUS_NOT_TUNED 0x00
- #define TUNE_STATUS_IDLE 0x01
- #define TUNE_STATUS_LOCKING 0x02
- #define TUNE_STATUS_SIGNAL_DVB_OK 0x03
- #define TUNE_STATUS_STREAM_DETECTED 0x04
- #define TUNE_STATUS_STREAM_TUNED 0x05
- #define TUNE_STATUS_ERROR 0xFF
- /* available TS FID filter types */
- #define TS_PID_TYPE_TS 0
- #define TS_PID_TYPE_PSI_SI 1
- #define TS_PID_TYPE_MPE 2
- /* number of echos available */
- #define MAX_ECHOS 15
- /* Context types */
- #define CONTEXT_LNA 1010
- #define CONTEXT_ELNA_HYSTERESIS 4003
- #define CONTEXT_ELNA_GAIN 4004
- #define CONTEXT_MER_THRESHOLD 5005
- #define CONTEXT_MER_OFFSET 5006
- #define CONTEXT_IR_STATE 7000
- #define CONTEXT_TSOUT_MSB_FIRST 7004
- #define CONTEXT_TSOUT_FALLING_EDGE 7005
- /* Configuration modes */
- #define CFG_MODE_ON 0
- #define CFG_MODE_OFF 1
- #define CFG_MODE_AUTO 2
- struct as10x_tps {
- uint8_t modulation;
- uint8_t hierarchy;
- uint8_t interleaving_mode;
- uint8_t code_rate_HP;
- uint8_t code_rate_LP;
- uint8_t guard_interval;
- uint8_t transmission_mode;
- uint8_t DVBH_mask_HP;
- uint8_t DVBH_mask_LP;
- uint16_t cell_ID;
- } __packed;
- struct as10x_tune_args {
- /* frequency */
- uint32_t freq;
- /* bandwidth */
- uint8_t bandwidth;
- /* hierarchy selection */
- uint8_t hier_select;
- /* constellation */
- uint8_t modulation;
- /* hierarchy */
- uint8_t hierarchy;
- /* interleaving mode */
- uint8_t interleaving_mode;
- /* code rate */
- uint8_t code_rate;
- /* guard interval */
- uint8_t guard_interval;
- /* transmission mode */
- uint8_t transmission_mode;
- } __packed;
- struct as10x_tune_status {
- /* tune status */
- uint8_t tune_state;
- /* signal strength */
- int16_t signal_strength;
- /* packet error rate 10^-4 */
- uint16_t PER;
- /* bit error rate 10^-4 */
- uint16_t BER;
- } __packed;
- struct as10x_demod_stats {
- /* frame counter */
- uint32_t frame_count;
- /* Bad frame counter */
- uint32_t bad_frame_count;
- /* Number of wrong bytes fixed by Reed-Solomon */
- uint32_t bytes_fixed_by_rs;
- /* Averaged MER */
- uint16_t mer;
- /* statistics calculation state indicator (started or not) */
- uint8_t has_started;
- } __packed;
- struct as10x_ts_filter {
- uint16_t pid; /* valid PID value 0x00 : 0x2000 */
- uint8_t type; /* Red TS_PID_TYPE_<N> values */
- uint8_t idx; /* index in filtering table */
- } __packed;
- struct as10x_register_value {
- uint8_t mode;
- union {
- uint8_t value8; /* 8 bit value */
- uint16_t value16; /* 16 bit value */
- uint32_t value32; /* 32 bit value */
- } __packed u;
- } __packed;
- struct as10x_register_addr {
- /* register addr */
- uint32_t addr;
- /* register mode access */
- uint8_t mode;
- };
- #endif
|