^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0-or-later */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) Driver for Zarlink MT312 QPSK Frontend
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) Copyright (C) 2003 Andreas Oberritter <obi@linuxtv.org>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #ifndef _DVB_FRONTENDS_MT312_PRIV
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #define _DVB_FRONTENDS_MT312_PRIV
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) enum mt312_reg_addr {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) QPSK_INT_H = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) QPSK_INT_M = 1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) QPSK_INT_L = 2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) FEC_INT = 3,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) QPSK_STAT_H = 4,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) QPSK_STAT_L = 5,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) FEC_STATUS = 6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) LNB_FREQ_H = 7,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) LNB_FREQ_L = 8,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) M_SNR_H = 9,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) M_SNR_L = 10,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) VIT_ERRCNT_H = 11,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) VIT_ERRCNT_M = 12,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) VIT_ERRCNT_L = 13,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) RS_BERCNT_H = 14,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) RS_BERCNT_M = 15,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) RS_BERCNT_L = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) RS_UBC_H = 17,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) RS_UBC_L = 18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) SIG_LEVEL = 19,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) GPP_CTRL = 20,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) RESET = 21,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) DISEQC_MODE = 22,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) SYM_RATE_H = 23,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) SYM_RATE_L = 24,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) VIT_MODE = 25,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) QPSK_CTRL = 26,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) GO = 27,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) IE_QPSK_H = 28,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) IE_QPSK_M = 29,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) IE_QPSK_L = 30,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) IE_FEC = 31,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) QPSK_STAT_EN = 32,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) FEC_STAT_EN = 33,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) SYS_CLK = 34,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) DISEQC_RATIO = 35,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) DISEQC_INSTR = 36,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) FR_LIM = 37,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) FR_OFF = 38,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) AGC_CTRL = 39,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) AGC_INIT = 40,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) AGC_REF = 41,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) AGC_MAX = 42,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) AGC_MIN = 43,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) AGC_LK_TH = 44,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) TS_AGC_LK_TH = 45,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) AGC_PWR_SET = 46,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) QPSK_MISC = 47,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) SNR_THS_LOW = 48,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) SNR_THS_HIGH = 49,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) TS_SW_RATE = 50,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) TS_SW_LIM_L = 51,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) TS_SW_LIM_H = 52,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) CS_SW_RATE_1 = 53,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) CS_SW_RATE_2 = 54,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) CS_SW_RATE_3 = 55,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) CS_SW_RATE_4 = 56,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) CS_SW_LIM = 57,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) TS_LPK = 58,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) TS_LPK_M = 59,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) TS_LPK_L = 60,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) CS_KPROP_H = 61,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) CS_KPROP_L = 62,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) CS_KINT_H = 63,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) CS_KINT_L = 64,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) QPSK_SCALE = 65,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) TLD_OUTCLK_TH = 66,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) TLD_INCLK_TH = 67,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) FLD_TH = 68,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) PLD_OUTLK3 = 69,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) PLD_OUTLK2 = 70,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) PLD_OUTLK1 = 71,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) PLD_OUTLK0 = 72,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) PLD_INLK3 = 73,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) PLD_INLK2 = 74,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) PLD_INLK1 = 75,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) PLD_INLK0 = 76,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) PLD_ACC_TIME = 77,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) SWEEP_PAR = 78,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) STARTUP_TIME = 79,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) LOSSLOCK_TH = 80,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) FEC_LOCK_TM = 81,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) LOSSLOCK_TM = 82,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) VIT_ERRPER_H = 83,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) VIT_ERRPER_M = 84,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) VIT_ERRPER_L = 85,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) HW_CTRL = 84, /* ZL10313 only */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) MPEG_CTRL = 85, /* ZL10313 only */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) VIT_SETUP = 86,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) VIT_REF0 = 87,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) VIT_REF1 = 88,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) VIT_REF2 = 89,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) VIT_REF3 = 90,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) VIT_REF4 = 91,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) VIT_REF5 = 92,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) VIT_REF6 = 93,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) VIT_MAXERR = 94,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) BA_SETUPT = 95,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) OP_CTRL = 96,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) FEC_SETUP = 97,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) PROG_SYNC = 98,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) AFC_SEAR_TH = 99,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) CSACC_DIF_TH = 100,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) QPSK_LK_CT = 101,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) QPSK_ST_CT = 102,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) MON_CTRL = 103,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) QPSK_RESET = 104,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) QPSK_TST_CT = 105,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) QPSK_TST_ST = 106,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) TEST_R = 107,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) AGC_H = 108,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) AGC_M = 109,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) AGC_L = 110,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) FREQ_ERR1_H = 111,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) FREQ_ERR1_M = 112,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) FREQ_ERR1_L = 113,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) FREQ_ERR2_H = 114,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) FREQ_ERR2_L = 115,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) SYM_RAT_OP_H = 116,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) SYM_RAT_OP_L = 117,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) DESEQC2_INT = 118,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) DISEQC2_STAT = 119,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) DISEQC2_FIFO = 120,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) DISEQC2_CTRL1 = 121,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) DISEQC2_CTRL2 = 122,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) MONITOR_H = 123,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) MONITOR_L = 124,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) TEST_MODE = 125,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) ID = 126,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) CONFIG = 127
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) enum mt312_model_id {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) ID_VP310 = 1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) ID_MT312 = 3,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) ID_ZL10313 = 5,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) #endif /* DVB_FRONTENDS_MT312_PRIV */