blob: 3334eb771052f94eb10ace7a2ff7c4f8014a1765 [file] [log] [blame]
/*
* drivers/amlogic/media/dtv_demod/include/addr_dtmb_che_bit.h
*
* Copyright (C) 2017 Amlogic, Inc. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
*/
#ifndef __ADDR_DTMB_CHE_BIT_H__
#define __ADDR_DTMB_CHE_BIT_H__
struct DTMB_CHE_TE_HREB_SNR_BITS {
unsigned int te_hreb_snr:21, reserved0:11;
};
struct DTMB_CHE_MC_SC_TIMING_POWTHR_BITS {
unsigned int mc_timing_powthr1:5,
reserved1:3,
mc_timing_powthr0:5,
reserved2:2,
sc_timing_powthr1:5, reserved3:4, sc_timing_powthr0:5, reserved4:3;
};
struct DTMB_CHE_MC_SC_PROTECT_GD_BITS {
unsigned int h_valid:2,
reserved5:2,
dist:3,
reserved6:1,
ma_size:3,
reserved7:1,
mc_protect_gd:5, reserved8:3, sc_protect_gd:5, reserved9:7;
};
struct DTMB_CHE_TIMING_LIMIT_BITS {
unsigned int ncoh_thd:3,
reserved10:1,
coh_thd:3,
reserved11:1,
strong_loc_thd:8, reserved12:4, timing_limit:5, reserved13:7;
};
struct DTMB_CHE_TPS_CONFIG_BITS {
unsigned int tps_pst_num:5,
reserved14:3,
tps_pre_num:5, reserved15:3, chi_power_thr:8, reserved16:8;
};
struct DTMB_CHE_FD_TD_STEPSIZE_BITS {
unsigned int fd_stepsize_thr03:5,
fd_stepsize_thr02:5,
fd_stepsize_thr01:5,
td_stepsize_thr03:5,
td_stepsize_thr02:5, td_stepsize_thr01:5, reserved17:2;
};
struct DTMB_CHE_QSTEP_SET_BITS {
unsigned int factor_stable_thres:10,
reserved18:2, qstep_set:13, qstep_set_val:1, reserved19:6;
};
struct DTMB_CHE_SEG_CONFIG_BITS {
unsigned int seg_bypass:1,
seg_num_1seg_log2:3,
seg_alpha:3,
seg_read_val:1, seg_read_addr:12, noise_input_shift:4, reserved20:8;
};
struct DTMB_CHE_FD_TD_LEAKSIZE_CONFIG1_BITS {
unsigned int fd_leaksize_thr03:5,
fd_leaksize_thr02:5,
fd_leaksize_thr01:5,
td_leaksize_thr03:5,
td_leaksize_thr02:5, td_leaksize_thr01:5, reserved21:2;
};
struct DTMB_CHE_FD_TD_LEAKSIZE_CONFIG2_BITS {
unsigned int fd_leaksize_thr13:5,
fd_leaksize_thr12:5,
fd_leaksize_thr11:5,
td_leaksize_thr13:5,
td_leaksize_thr12:5, td_leaksize_thr11:5, reserved22:2;
};
struct DTMB_CHE_FD_TD_COEFF_BITS {
unsigned int td_coeff_frz:14,
reserved23:2,
td_coeff_addr:4,
td_coeff_init:1,
td_coeff_rst:1,
fd_coeff_init:1,
fd_coeff_done:1,
fd_coeff_rst:1, td_coeff_done:1, fd_coeff_addr:5, reserved24:1;
};
struct DTMB_CHE_M_CCI_THR_CONFIG1_BITS {
unsigned int m_cci_thr_mc1:10,
m_cci_thr_mc2:10, m_cci_thr_mc3:10, reserved25:2;
};
struct DTMB_CHE_M_CCI_THR_CONFIG2_BITS {
unsigned int m_cci_thr_sc2:10,
m_cci_thr_sc3:10, m_cci_thr_mc0:10, reserved26:2;
};
struct DTMB_CHE_M_CCI_THR_CONFIG3_BITS {
unsigned int m_cci_thr_ma:10,
m_cci_thr_sc0:10, m_cci_thr_sc1:10, reserved27:2;
};
struct DTMB_CHE_CCIDET_CONFIG_BITS {
unsigned int ccidet_dly:7,
ccidet_malpha:3,
ccidet_sc_mask_rng:5,
ccidet_mc_mask_rng:5,
ccidet_masize:4,
ccidect_sat_sft:3,
ccicnt_out_sel:2, tune_mask:1, m_cci_bypass:1, reserved28:1;
};
struct DTMB_CHE_IBDFE_CONFIG1_BITS {
unsigned int ibdfe_cci_just_thr:13,
reserved29:3,
ibdfe_dmsg_point:5, reserved30:3, ibdfe_dmsg_alp:3, reserved31:5;
};
struct DTMB_CHE_IBDFE_CONFIG2_BITS {
unsigned int ibdfe_rou_rat_1:10,
reserved32:6, ibdfe_rou_rat_0:10, reserved33:6;
};
struct DTMB_CHE_IBDFE_CONFIG3_BITS {
unsigned int ibdfe_rou_rat_3:10,
reserved34:6, ibdfe_rou_rat_2:10, reserved35:6;
};
struct DTMB_CHE_TD_COEFF_BITS {
unsigned int td_coeff:24, reserved36:8;
};
struct DTMB_CHE_FD_TD_STEPSIZE_ADJ_BITS {
unsigned int fd_stepsize_adj:3, td_stepsize_adj:3, reserved37:26;
};
struct DTMB_CHE_FD_COEFF_BITS {
unsigned int fd_coeff:24, reserved38:8;
};
struct DTMB_CHE_FD_LEAKSIZE_BITS {
unsigned int fd_leaksize:18, reserved39:14;
};
struct DTMB_CHE_IBDFE_CONFIG4_BITS {
unsigned int ibdfe_fdbk_iter:4,
ibdfe_eqout_iter:4,
eq_dist_thr_tps:4,
eq_soft_slicer_en:1,
reserved40:3,
gd_len:5, ibdfe_blank_y:1, reserved41:1, ibdfe_dmsg_start_cnt:9;
};
struct DTMB_CHE_IBDFE_CONFIG5_BITS {
unsigned int ibdfe_init_snr:12,
reserved42:4, eq_init_snr:12, reserved43:4;
};
struct DTMB_CHE_IBDFE_CONFIG6_BITS {
unsigned int ibdfe_const_thr3:4,
ibdfe_const_thr2:4,
ibdfe_const_thr1:4,
ibdfe_const_thr0:4,
ibdfe_threshold3:4,
ibdfe_threshold2:4, ibdfe_threshold1:4, ibdfe_threshold0:4;
};
struct DTMB_CHE_IBDFE_CONFIG7_BITS {
unsigned int ibdfe_pick_thr3:8,
ibdfe_pick_thr2:8, ibdfe_pick_thr1:8, ibdfe_pick_thr0:8;
};
struct DTMB_CHE_DCM_SC_MC_GD_LEN_BITS {
unsigned int dcm_mc_gd_len:6,
reserved44:2, dcm_sc_gd_len:6, reserved45:2, eq_dsnr_slc2drm:16;
};
struct DTMB_CHE_EQMC_PICK_THR_BITS {
unsigned int eqmc_pick_thr3:8,
eqmc_pick_thr2:8, eqmc_pick_thr1:8, eqmc_pick_thr0:8;
};
struct DTMB_CHE_EQMC_THRESHOLD_BITS {
unsigned int eqmc_const_thr3:4,
eqmc_const_thr2:4,
eqmc_const_thr1:4,
eqmc_const_thr0:4,
eqmc_threshold3:4,
eqmc_threshold2:4, eqmc_threshold1:4, eqmc_threshold0:4;
};
struct DTMB_CHE_EQSC_PICK_THR_BITS {
unsigned int eqsc_pick_thr3:8,
eqsc_pick_thr2:8, eqsc_pick_thr1:8, eqsc_pick_thr0:8;
};
struct DTMB_CHE_EQSC_THRESHOLD_BITS {
unsigned int eqsc_const_thr3:4,
eqsc_const_thr2:4,
eqsc_const_thr1:4,
eqsc_const_thr0:4,
eqsc_threshold3:4,
eqsc_threshold2:4, eqsc_threshold1:4, eqsc_threshold0:4;
};
struct DTMB_CHE_PROTECT_GD_TPS_BITS {
unsigned int pow_norm:10,
ncoh_thd_tps:3,
coh_thd_tps:3, thr_max:10, protect_gd_tps:5, reserved46:1;
};
struct DTMB_CHE_FD_TD_STEPSIZE_THR1_BITS {
unsigned int fd_stepsize_thr13:5,
fd_stepsize_thr12:5,
fd_stepsize_thr11:5,
td_stepsize_thr13:5,
td_stepsize_thr12:5, td_stepsize_thr11:5, reserved47:2;
};
struct DTMB_CHE_TDFD_SWITCH_SYM1_BITS {
unsigned int tdfd_switch_sym00:16, tdfd_switch_sym01:16;
};
struct DTMB_CHE_TDFD_SWITCH_SYM2_BITS {
unsigned int tdfd_switch_sym10:16, tdfd_switch_sym11:16;
};
struct DTMB_CHE_EQ_CONFIG_BITS {
unsigned int eq_dsnr_h2drm:6,
eq_cmp_en:1,
eq_imp_setzero_en:1,
dcm_sc_bypass:1,
dcm_mc_bypass:1,
dcm_sc_h_limit:4,
dcm_mc_h_limit:4,
eqsnr_imp_alp:3, eqsnr_avg_alp:3, dcm_alpha:2, reserved48:6;
};
struct DTMB_CHE_EQSC_SNR_IMP_THR1_BITS {
unsigned int eqsc_snr_imp_thr1:12, eqsc_snr_imp_thr0:12, reserved49:8;
};
struct DTMB_CHE_EQSC_SNR_IMP_THR2_BITS {
unsigned int eqsc_snr_imp_thr3:12, eqsc_snr_imp_thr2:12, reserved50:8;
};
struct DTMB_CHE_EQMC_SNR_IMP_THR1_BITS {
unsigned int eqmc_snr_imp_thr1:12, eqmc_snr_imp_thr0:12, reserved51:8;
};
struct DTMB_CHE_EQMC_SNR_IMP_THR2_BITS {
unsigned int eqmc_snr_imp_thr3:12, eqmc_snr_imp_thr2:12, reserved52:8;
};
struct DTMB_CHE_EQSC_SNR_DROP_THR_BITS {
unsigned int eqsc_snr_drop_thr3:8,
eqsc_snr_drop_thr2:8, eqsc_snr_drop_thr1:8, eqsc_snr_drop_thr0:8;
};
struct DTMB_CHE_EQMC_SNR_DROP_THR_BITS {
unsigned int eqmc_snr_drop_thr3:8,
eqmc_snr_drop_thr2:8, eqmc_snr_drop_thr1:8, eqmc_snr_drop_thr0:8;
};
struct DTMB_CHE_M_CCI_THR_BITS {
unsigned int ccidet_mask_rng_tps:5,
m_cci_thr_tps:10, m_cci_thr_ma_tps:10, reserved53:7;
};
struct DTMB_CHE_TPS_MC_BITS {
unsigned int tps_mc_run_tim_limit:10,
tps_mc_suc_limit:7, tps_mc_q_thr:7, tps_mc_alpha:3, reserved54:5;
};
struct DTMB_CHE_TPS_SC_BITS {
unsigned int tps_sc_run_tim_limit:10,
tps_sc_suc_limit:7, tps_sc_q_thr:7, tps_sc_alpha:3, reserved55:5;
};
struct DTMB_CHE_CHE_SET_FSM_BITS {
unsigned int che_open_loop_len:12,
reserved56:4,
che_set_fsm_st:3, reserved57:1, che_set_fsm_en:1, reserved58:11;
};
struct DTMB_CHE_ZERO_NUM_THR_BITS {
unsigned int null_frame_thr:16, zero_num_thr:12, reserved59:4;
};
struct DTMB_CHE_TIMING_READY_BITS {
unsigned int timing_offset:11,
reserved60:5, timing_ready:1, reserved61:15;
};
#endif