blob: 99005a19a67362f0314ae4dcec071be63c2e0d05 [file] [log] [blame]
/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef _DRAMC_REGISTER_H_
#define _DRAMC_REGISTER_H_
#include <device/mmio.h>
#include <types.h>
#include <soc/addressmap.h>
struct dramc_no_regs_rk_counter {
uint32_t pre_standby_counter;
uint32_t pre_powerdown_counter;
uint32_t act_standby_counter;
uint32_t act_powerdown_counter;
};
struct dramc_nao_regs_rk {
uint32_t dqsosc_status;
uint32_t dqsosc_delta;
uint32_t dqsosc_delta2;
uint32_t rsvd_1[1];
uint32_t current_tx_setting1;
uint32_t current_tx_setting2;
uint32_t current_tx_setting3;
uint32_t current_tx_setting4;
uint32_t dummy_rd_data[4];
uint32_t b0_stb_max_min_dly;
uint32_t b1_stb_max_min_dly;
uint32_t b2_stb_max_min_dly;
uint32_t b3_stb_max_min_dly;
uint32_t dqsiendly;
uint32_t dqsienuidly;
uint32_t dqsienuidly_p1;
uint32_t rsvd_2[1];
uint32_t dqs_stbcaldec_cnt1;
uint32_t dqs_stbcaldec_cnt2;
uint32_t dqs_stbcalinc_cnt1;
uint32_t dqs_stbcalinc_cnt2;
uint32_t fine_tune_dq_cal;
uint32_t dqsg_retry_flag;
uint32_t fine_tune_dqm_cal;
uint32_t rsvd_3[1];
uint32_t dqs0_stbcal_cnt;
uint32_t dqs1_stbcal_cnt;
uint32_t dqs2_stbcal_cnt;
uint32_t dqs3_stbcal_cnt;
uint32_t b01_stb_dbg_info[16];
uint32_t b23_stb_dbg_info[16];
};
struct dramc_nao_regs {
uint32_t testmode;
uint32_t lbwdat0;
uint32_t lbwdat1;
uint32_t lbwdat2;
uint32_t lbwdat3;
uint32_t reserved0[3];
uint32_t ckphchk;
uint32_t dmmonitor;
uint32_t reserved1[2];
uint32_t testchip_dma1;
uint32_t reserved2[19];
uint32_t misc_statusa;
uint32_t special_status;
uint32_t spcmdresp;
uint32_t mrr_status;
uint32_t mrr_status2;
uint32_t mrrdata0;
uint32_t mrrdata1;
uint32_t mrrdata2;
uint32_t mrrdata3;
uint32_t reserved3[1];
uint32_t drs_status;
uint32_t reserved4[4];
uint32_t jmeter_st;
uint32_t tcmdo1lat;
uint32_t rdqc_cmp;
uint32_t ckphchk_status;
uint32_t reserved5[16];
uint32_t hwmrr_push2pop_cnt;
uint32_t hwmrr_status;
uint32_t hw_refrate_mon;
uint32_t reserved6[2];
uint32_t testrpt;
uint32_t cmp_err;
uint32_t test_abit_status1;
uint32_t test_abit_status2;
uint32_t test_abit_status3;
uint32_t test_abit_status4;
uint32_t reserved7[6];
uint32_t dqsdly0;
uint32_t dq_cal_max[8];
uint32_t dqs_cal_min[8];
uint32_t dqs_cal_max[8];
uint32_t dqical0;
uint32_t dqical1;
uint32_t dqical2;
uint32_t dqical3;
uint32_t reserved8[15];
uint32_t testchip_dma_status[34];
uint32_t reserved9[30];
uint32_t refresh_pop_counter;
uint32_t freerun_26m_counter;
uint32_t dramc_idle_counter;
uint32_t r2r_page_hit_counter;
uint32_t r2r_page_miss_counter;
uint32_t r2r_interbank_counter;
uint32_t r2w_page_hit_counter;
uint32_t r2w_page_miss_counter;
uint32_t r2w_interbank_counter;
uint32_t w2r_page_hit_counter;
uint32_t w2r_page_miss_counter;
uint32_t w2r_interbank_counter;
uint32_t w2w_page_hit_counter;
uint32_t w2w_page_miss_counter;
uint32_t w2w_interbank_counter;
struct dramc_no_regs_rk_counter rk_counter[3];
uint32_t dq0_toggle_counter;
uint32_t dq1_toggle_counter;
uint32_t dq2_toggle_counter;
uint32_t dq3_toggle_counter;
uint32_t dq0_toggle_counter_r;
uint32_t dq1_toggle_counter_r;
uint32_t dq2_toggle_counter_r;
uint32_t dq3_toggle_counter_r;
uint32_t read_bytes_counter;
uint32_t write_bytes_counter;
uint32_t max_sref_req_to_ack_latency_counter;
uint32_t max_rk1_drs_long_req_to_ack_latency_counter;
uint32_t max_rk1_drs_req_to_ack_latency_counter;
uint32_t reserved10[8];
uint32_t lat_counter_cmd[8];
uint32_t lat_counter_aver;
uint32_t lat_counter_num;
uint32_t lat_counter_block_ale;
uint32_t reserved11[5];
uint32_t dqssamplev;
uint32_t reserved12[1];
uint32_t dqsgnwcnt[6];
uint32_t toggle_cnt;
uint32_t dqs0_err_cnt;
uint32_t dq_err_cnt0;
uint32_t dqs1_err_cnt;
uint32_t dq_err_cnt1;
uint32_t dqs2_err_cnt;
uint32_t dq_err_cnt2;
uint32_t dqs3_err_cnt;
uint32_t dq_err_cnt3;
uint32_t reserved13[3];
uint32_t iorgcnt;
uint32_t dqsg_retry_state;
uint32_t dqsg_retry_state1;
uint32_t reserved14[1];
uint32_t impcal_status1;
uint32_t impcal_status2;
uint32_t dqdrv_status;
uint32_t cmddrv_status;
uint32_t cmddrv1;
uint32_t cmddrv2;
uint32_t reserved15[98];
struct dramc_nao_regs_rk rk[3];
uint32_t reserved25[192];
uint32_t dvfs_dbg0;
uint32_t dvfs_dbg1;
uint32_t dramc_nao_regs_end;
};
check_member(dramc_nao_regs, testmode, 0x0000);
check_member(dramc_nao_regs, cmddrv2, 0x0474);
struct dramc_ao_regs_rk {
uint32_t dqsosc;
uint32_t rsvd_1[5];
uint32_t dummy_rd_wdata[4];
uint32_t dummy_rd_adr;
uint32_t dummy_rd_bk;
uint32_t pre_tdqsck[12];
uint32_t rsvd_2[40];
};
struct dramc_ao_regs_shu_rk {
uint32_t dqsctl;
uint32_t dqsien;
uint32_t dqscal;
uint32_t fine_tune;
uint32_t dqsosc;
uint32_t rsvd_1[2];
uint32_t selph_odten0;
uint32_t selph_odten1;
uint32_t selph_dqsg0;
uint32_t selph_dqsg1;
uint32_t selph_dq[4];
uint32_t rsvd_2[1];
uint32_t dqs2dq_cal1;
uint32_t dqs2dq_cal2;
uint32_t dqs2dq_cal3;
uint32_t dqs2dq_cal4;
uint32_t dqs2dq_cal5;
uint32_t rsvd_3[43];
};
struct dramc_ao_regs {
uint32_t ddrconf0;
uint32_t dramctrl;
uint32_t misctl0;
uint32_t perfctl0;
uint32_t arbctl;
uint32_t reserved0[2];
uint32_t rstmask;
uint32_t padctrl;
uint32_t ckectrl;
uint32_t drsctrl;
uint32_t reserved1[2];
uint32_t rkcfg;
uint32_t dramc_pd_ctrl;
uint32_t clkar;
uint32_t clkctrl;
uint32_t selfref_hwsave_flag;
uint32_t srefctrl;
uint32_t refctrl0;
uint32_t refctrl1;
uint32_t refratre_filter;
uint32_t zqcs;
uint32_t mrs;
uint32_t spcmd;
uint32_t spcmdctrl;
uint32_t ppr_ctrl;
uint32_t mpc_option;
uint32_t refque_cnt;
uint32_t hw_mrr_fun;
uint32_t mrr_bit_mux1;
uint32_t mrr_bit_mux2;
uint32_t mrr_bit_mux3;
uint32_t mrr_bit_mux4;
uint32_t reserved2[1];
uint32_t test2_5;
uint32_t test2_0;
uint32_t test2_1;
uint32_t test2_2;
uint32_t test2_3;
uint32_t test2_4;
uint32_t wdt_dbg_signal;
uint32_t reserved3[1];
uint32_t lbtest;
uint32_t catraining1;
uint32_t catraining2;
uint32_t reserved4[1];
uint32_t write_lev;
uint32_t mr_golden;
uint32_t slp4_testmode;
uint32_t dqsoscr;
uint32_t reserved5[1];
uint32_t dummy_rd;
uint32_t shuctrl;
uint32_t shuctrl1;
uint32_t shuctrl2;
uint32_t shuctrl3;
uint32_t shustatus;
uint32_t reserved6[70];
uint32_t stbcal;
uint32_t stbcal1;
uint32_t stbcal2;
uint32_t eyescan;
uint32_t dvfsdll;
uint32_t reserved7[1];
uint32_t pre_tdqsck[4];
uint32_t reserved8[1];
uint32_t impcal;
uint32_t impedamce_ctrl1;
uint32_t impedamce_ctrl2;
uint32_t impedamce_ctrl3;
uint32_t impedamce_ctrl4;
uint32_t dramc_dbg_sel1;
uint32_t dramc_dbg_sel2;
uint32_t rsvd_10[46];
struct dramc_ao_regs_rk rk[3];
uint32_t rsvd_16[64];
struct dramc_ao_regs_shu {
uint32_t rsvd0[64];
uint32_t actim[7];
uint32_t actim_xrt;
uint32_t ac_time_05t;
uint32_t ac_derating0;
uint32_t ac_derating1;
uint32_t rsvd1[1];
uint32_t ac_derating_05t;
uint32_t rsvd2[3];
uint32_t conf[4];
uint32_t stbcal;
uint32_t dqsoscthrd;
uint32_t rankctl;
uint32_t ckectrl;
uint32_t odtctrl;
uint32_t impcal1;
uint32_t dqsosc_prd;
uint32_t dqsoscr;
uint32_t dqsoscr2;
uint32_t rodtenstb;
uint32_t pipe;
uint32_t test1;
uint32_t selph_ca1;
uint32_t selph_ca2;
uint32_t selph_ca3;
uint32_t selph_ca4;
uint32_t selph_ca5;
uint32_t selph_ca6;
uint32_t selph_ca7;
uint32_t selph_ca8;
uint32_t selph_dqs0;
uint32_t selph_dqs1;
uint32_t drving[6];
uint32_t wodt;
uint32_t dqsg;
uint32_t scintv;
uint32_t misc;
uint32_t dqs2dq_tx;
uint32_t hwset_mr2;
uint32_t hwset_mr13;
uint32_t hwset_vrcg;
uint32_t rsvd3[72];
union {
struct dramc_ao_regs_shu_rk rk[3];
struct {
uint32_t rsvd_63[149];
uint32_t dqsg_retry;
};
};
} shu[4];
uint32_t dramc_ao_regs_end;
};
check_member(dramc_ao_regs, ddrconf0, 0x0000);
check_member(dramc_ao_regs, shu[3].dqsg_retry, 0x1e54);
struct dramc_ddrphy_regs_misc_stberr_rk {
uint32_t r;
uint32_t f;
};
struct dramc_ddrphy_regs_shu_rk {
struct {
uint32_t dq[8];
uint32_t rsvd_20[12];
} b[2];
uint32_t ca_cmd[10];
uint32_t rsvd_22[14];
};
struct dramc_ddrphy_ao_regs {
uint32_t pll1;
uint32_t pll2;
uint32_t pll3;
uint32_t pll4;
uint32_t pll5;
uint32_t pll6;
uint32_t pll7;
uint32_t pll8;
uint32_t pll9;
uint32_t pll10;
uint32_t pll11;
uint32_t pll12;
uint32_t pll13;
uint32_t pll14;
uint32_t pll15;
uint32_t pll16;
uint32_t reserved0[16];
struct {
uint32_t dll_fine_tune[6];
uint32_t dq[10];
uint32_t _rsvd_0[4];
uint32_t tx_mck;
uint32_t _rsvd_1[11];
} b[2];
uint32_t ca_dll_fine_tune[6];
uint32_t ca_cmd[11];
uint32_t rfu_0x1c4;
uint32_t rfu_0x1c8;
uint32_t rfu_0x1cc;
uint32_t ca_tx_mck;
uint32_t reserved3[11];
uint32_t misc_extlb[24];
uint32_t dvfs_emi_clk;
uint32_t misc_vref_ctrl;
uint32_t misc_imp_ctrl0;
uint32_t misc_imp_ctrl1;
uint32_t misc_shu_opt;
uint32_t misc_spm_ctrl0;
uint32_t misc_spm_ctrl1;
uint32_t misc_spm_ctrl2;
uint32_t misc_spm_ctrl3;
uint32_t misc_cg_ctrl0;
uint32_t misc_cg_ctrl1;
uint32_t misc_cg_ctrl2;
uint32_t misc_cg_ctrl3;
uint32_t misc_cg_ctrl4;
uint32_t misc_cg_ctrl5;
uint32_t misc_ctrl0;
uint32_t misc_ctrl1;
uint32_t misc_ctrl2;
uint32_t misc_ctrl3;
uint32_t misc_ctrl4;
uint32_t misc_ctrl5;
uint32_t misc_extlb_rx[21];
uint32_t ckmux_sel;
uint32_t reserved4[129];
uint32_t misc_stberr_rk0_r;
uint32_t misc_stberr_rk0_f;
uint32_t misc_stberr_rk1_r;
uint32_t misc_stberr_rk1_f;
uint32_t misc_stberr_rk2_r;
uint32_t misc_stberr_rk2_f;
uint32_t reserved5[46];
uint32_t misc_rxdvs[3];
uint32_t rfu_0x5ec;
uint32_t b0_rxdvs[2];
uint32_t rfu_0x5f8;
uint32_t rfu_0x5fc;
union {
struct {
struct {
uint32_t rxdvs[8];
uint32_t _rsvd[24];
} b[2];
uint32_t rxdvs[10];
uint32_t _rsvd_b[54];
} r[3];
struct {
uint32_t rsvd_2[28];
uint32_t b1_rxdvs[2];
uint32_t rsvd_3[30];
uint32_t ca_rxdvs0;
uint32_t ca_rxdvs1;
uint32_t rsvd_4[2];
uint32_t r0_ca_rxdvs[10];
};
};
struct ddrphy_ao_shu {
struct {
uint32_t dq[13];
uint32_t dll[2];
uint32_t rsvd_16[17];
} b[2];
uint32_t ca_cmd[13];
uint32_t ca_dll[2];
uint32_t rsvd_18[17];
uint32_t pll[16];
uint32_t rsvd_19[4];
uint32_t pll20;
uint32_t pll21;
uint32_t rsvd_20[6];
uint32_t misc0;
uint32_t rsvd_21[3];
struct dramc_ddrphy_regs_shu_rk rk[3];
} shu[4];
};
check_member(dramc_ddrphy_ao_regs, pll1, 0x0000);
check_member(dramc_ddrphy_ao_regs, shu[3].rk[2].ca_cmd[9], 0x1FC4);
struct dramc_ddrphy_nao_regs {
uint32_t misc_sta_extlb[3];
uint32_t reserved0[29];
uint32_t misc_dq_rxdly_trro[32];
uint32_t misc_ca_rxdly_trro[32];
uint32_t misc_dqo1;
uint32_t misc_cao1;
uint32_t misc_ad_rx_dq_o1;
uint32_t misc_ad_rx_cmd_o1;
uint32_t misc_phy_rgs_dq;
uint32_t misc_phy_rgs_cmd;
uint32_t misc_phy_stben_b[2];
uint32_t misc_phy_rgs_stben_cmd;
uint32_t dramc_ddrphy_nao_regs_end;
};
check_member(dramc_ddrphy_nao_regs, misc_sta_extlb[0], 0x0);
check_member(dramc_ddrphy_nao_regs, misc_phy_rgs_stben_cmd, 0x01A0);
struct emi_regs {
uint32_t cona;
uint32_t reserved0[1];
uint32_t conb;
uint32_t reserved1[1];
uint32_t conc;
uint32_t reserved2[1];
uint32_t cond;
uint32_t reserved3[1];
uint32_t cone;
uint32_t reserved4[1];
uint32_t conf;
uint32_t reserved5[1];
uint32_t cong;
uint32_t reserved6[1];
uint32_t conh;
uint32_t conh_2nd;
uint32_t coni;
uint32_t reserved7[1];
uint32_t conj;
uint32_t reserved8[5];
uint32_t conm;
uint32_t reserved9[1];
uint32_t conn;
uint32_t reserved10[1];
uint32_t cono;
uint32_t reserved11[1];
uint32_t mdct;
uint32_t mdct_2nd;
uint32_t reserved12[20];
uint32_t iocl;
uint32_t iocl_2nd;
uint32_t iocm;
uint32_t iocm_2nd;
uint32_t reserved13[2];
uint32_t testb;
uint32_t reserved14[1];
uint32_t testc;
uint32_t reserved15[1];
uint32_t testd;
uint32_t reserved16[1];
uint32_t arba;
uint32_t reserved17[1];
uint32_t arbb;
uint32_t reserved18[1];
uint32_t arbc;
uint32_t reserved19[1];
uint32_t arbd;
uint32_t reserved20[1];
uint32_t arbe;
uint32_t reserved21[1];
uint32_t arbf;
uint32_t reserved22[1];
uint32_t arbg;
uint32_t reserved23[1];
uint32_t arbh;
uint32_t reserved24[1];
uint32_t arbi;
uint32_t arbi_2nd;
uint32_t reserved25[2];
uint32_t arbk;
uint32_t arbk_2nd;
uint32_t slct;
uint32_t reserved26[277];
uint32_t bwct0;
uint32_t reserved27[59];
uint32_t bwct0_2nd;
uint32_t reserved28[43];
uint32_t ltct0_2nd;
uint32_t ltct1_2nd;
uint32_t ltct2_2nd;
uint32_t ltct3_2nd;
uint32_t reserved29[4];
uint32_t bwct0_3rd;
uint32_t reserved30[3];
uint32_t bwct0_4th;
uint32_t reserved31[11];
uint32_t bwct0_5th;
uint32_t reserved32[19];
uint32_t slva;
};
check_member(emi_regs, cona, 0x0000);
check_member(emi_regs, bwct0_5th, 0x07B0);
struct chn_emi_regs {
uint32_t chn_cona;
uint32_t rsvd_1[1];
uint32_t chn_conb;
uint32_t rsvd_2[1];
uint32_t chn_conc;
uint32_t rsvd_3[1];
uint32_t chn_mdct;
uint32_t rsvd_4[11];
uint32_t chn_testb;
uint32_t rsvd_5[1];
uint32_t chn_testc;
uint32_t rsvd_6[1];
uint32_t chn_testd;
uint32_t rsvd_7[9];
uint32_t chn_md_pre_mask;
uint32_t rsvd_8[1];
uint32_t chn_md_pre_mask_shf;
uint32_t rsvd_9[45];
uint32_t chn_arbi;
uint32_t chn_arbi_2nd;
uint32_t chn_arbj;
uint32_t chn_arbj_2nd;
uint32_t chn_arbk;
uint32_t chn_arbk_2nd;
uint32_t chn_slct;
uint32_t chn_arb_ref;
uint32_t rsvd_10[20];
uint32_t chn_rkarb0;
uint32_t chn_rkarb1;
uint32_t chn_rkarb2;
uint32_t rsvd_11[144];
uint32_t chn_eco3;
uint32_t rsvd_12[196];
uint32_t chn_emi_shf0;
uint32_t chn_emi_regs_end;
};
check_member(chn_emi_regs, chn_cona, 0x0000);
check_member(chn_emi_regs, chn_emi_shf0, 0x0710);
struct emi_mpu_regs {
uint32_t mpu_ctrl;
uint32_t rsvd[511];
uint32_t mpu_ctrl_d[16];
};
check_member(emi_mpu_regs, mpu_ctrl, 0x0000);
check_member(emi_mpu_regs, mpu_ctrl_d[0], 0x0800);
DEFINE_BITFIELD(MISC_STATUSA_REFRESH_QUEUE_CNT, 27, 24)
DEFINE_BIT(SPCMDRESP_DQSOSCEN_RESPONSE, 10)
DEFINE_BIT(SPCMDRESP_MRR_RESPONSE, 1)
DEFINE_BIT(SPCMDRESP_MRW_RESPONSE, 0)
DEFINE_BITFIELD(MRR_STATUS_MRR_REG, 15, 0)
DEFINE_BIT(DDRCONF0_DM4TO1MODE, 22)
DEFINE_BIT(DDRCONF0_RDATRST, 0)
DEFINE_BIT(PERFCTL0_RWOFOEN, 4)
DEFINE_BITFIELD(RKCFG_TXRANK, 1, 0)
DEFINE_BIT(RKCFG_TXRANKFIX, 3)
DEFINE_BIT(RKCFG_DQSOSC2RK, 11)
DEFINE_BIT(PADCTRL_DQIENLATEBEGIN, 3)
DEFINE_BITFIELD(PADCTRL_DQIENQKEND, 1, 0)
DEFINE_BITFIELD(SHURK_DQSIEN_DQS0IEN, 6, 0)
DEFINE_BITFIELD(SHURK_DQSIEN_DQS1IEN, 14, 8)
DEFINE_BITFIELD(SHURK_DQSIEN_DQS2IEN, 22, 16)
DEFINE_BITFIELD(SHURK_DQSIEN_DQS3IEN, 30, 24)
DEFINE_BIT(REFCTRL0_REFDIS, 29)
DEFINE_BIT(REFCTRL0_PBREFEN, 18)
DEFINE_BIT(CKECTRL_CKEFIXON, 6)
DEFINE_BIT(CKECTRL_CKEFIXOFF, 7)
DEFINE_BITFIELD(MRS_MRSBG, 31, 30)
DEFINE_BITFIELD(MRS_MPCRK, 29, 28)
DEFINE_BITFIELD(MRS_MRRRK, 27, 26)
DEFINE_BITFIELD(MRS_MRSRK, 25, 24)
DEFINE_BITFIELD(MRS_MRSBA, 23, 21)
DEFINE_BITFIELD(MRS_MRSMA, 20, 8)
DEFINE_BITFIELD(MRS_MRSOP, 7, 0)
DEFINE_BIT(SPCMD_DQSOSCENEN, 10)
DEFINE_BIT(SPCMD_DQSGCNTRST, 9)
DEFINE_BIT(SPCMD_DQSGCNTEN, 8)
DEFINE_BIT(SPCMD_ZQLATEN, 6)
DEFINE_BIT(SPCMD_RDDQCEN, 7)
DEFINE_BIT(SPCMD_ZQCEN, 4)
DEFINE_BIT(SPCMD_MRREN, 1)
DEFINE_BIT(SPCMD_MRWEN, 0)
DEFINE_BIT(SPCMDCTRL_RDDQCDIS, 11)
DEFINE_BIT(MPC_OPTION_MPCRKEN, 17)
DEFINE_BIT(MPC_OPTION_MPC_BLOCKALE_OPT, 0)
DEFINE_BIT(DVFSDLL_R_BYPASS_1ST_DLL_SHU1, 1)
DEFINE_BITFIELD(MISC_CG_CTRL0_CLK_MEM_SEL, 5, 4)
DEFINE_BIT(DRAMCTRL_ADRDECEN_TARKMODE, 1)
DEFINE_BIT(TESTCHIP_DMA1_DMA_LP4MATAB_OPT, 12)
DEFINE_BITFIELD(TEST2_0_PAT0, 15, 8)
DEFINE_BITFIELD(TEST2_0_PAT1, 7, 0)
DEFINE_BITFIELD(TEST2_1_TEST2_BASE, 31, 4)
DEFINE_BITFIELD(TEST2_2_TEST2_OFF, 31, 4)
DEFINE_BIT(TEST2_3_TEST2W, 31)
DEFINE_BIT(TEST2_3_TEST2R, 30)
DEFINE_BIT(TEST2_3_TEST1, 29)
DEFINE_BIT(TEST2_3_TESTAUDPAT, 7)
DEFINE_BITFIELD(TEST2_3_TESTCNT, 3, 0)
DEFINE_BITFIELD(TEST2_4_TESTAGENTRKSEL, 30, 28)
DEFINE_BITFIELD(TEST2_4_TESTAGENTRK, 25, 24)
DEFINE_BIT(TEST2_4_TEST_REQ_LEN1, 17)
DEFINE_BIT(TEST2_4_TESTXTALKPAT, 16)
DEFINE_BIT(TEST2_4_TESTAUDMODE, 15)
DEFINE_BIT(TEST2_4_TESTAUDBITINV, 14)
DEFINE_BITFIELD(TEST2_4_TESTAUDINIT, 12, 8)
DEFINE_BIT(TEST2_4_TESTSSOXTALKPAT, 7)
DEFINE_BIT(TEST2_4_TESTSSOPAT, 6)
DEFINE_BITFIELD(TEST2_4_TESTAUDINC, 4, 0)
DEFINE_BITFIELD(MR_GOLDEN_MR15_GOLDEN, 15, 8)
DEFINE_BITFIELD(MR_GOLDEN_MR20_GOLDEN, 7, 0)
DEFINE_BIT(DUMMY_RD_DQSG_DMYWR_EN, 23)
DEFINE_BIT(DUMMY_RD_DQSG_DMYRD_EN, 22)
DEFINE_BIT(DUMMY_RD_SREF_DMYRD_EN, 21)
DEFINE_BIT(DUMMY_RD_DUMMY_RD_EN, 20)
DEFINE_BIT(DUMMY_RD_DMY_RD_DBG, 7)
DEFINE_BIT(DUMMY_RD_DMY_WR_DBG, 6)
DEFINE_BIT(STBCAL1_STBCNT_LATCH_EN, 11)
DEFINE_BIT(STBCAL1_STBENCMPEN, 10)
DEFINE_BITFIELD(SHU_ACTIM_XRT_XRTR2R, 3, 0)
DEFINE_BITFIELD(SHU_CONF1_DATLAT_DSEL_PHY, 30, 26)
DEFINE_BITFIELD(SHU_CONF1_DATLAT_DSEL, 12, 8)
DEFINE_BITFIELD(SHU_CONF1_DATLAT, 4, 0)
DEFINE_BIT(SHU_PIPE_READ_START_EXTEND1, 31)
DEFINE_BIT(SHU_PIPE_DLE_LAST_EXTEND1, 30)
DEFINE_BIT(SHU_PIPE_READ_START_EXTEND2, 29)
DEFINE_BIT(SHU_PIPE_DLE_LAST_EXTEND2, 28)
DEFINE_BIT(SHU_PIPE_READ_START_EXTEND3, 27)
DEFINE_BIT(SHU_PIPE_DLE_LAST_EXTEND3, 26)
DEFINE_BITFIELD(SHU_RANKCTL_RANKINCTL_PHY, 31, 28)
DEFINE_BITFIELD(SHU_RANKCTL_RANKINCTL_ROOT1, 27, 24)
DEFINE_BITFIELD(SHU_RANKCTL_RANKINCTL, 23, 20)
DEFINE_BIT(SHU1_WODT_DBIWR, 29)
DEFINE_BIT(SHU_SCINTV_DQSOSCENDIS, 30)
DEFINE_BITFIELD(SHU_SCINTV_DQS2DQ_SHU_PITHRD, 23, 18)
DEFINE_BITFIELD(SHURK_DQSCTL_DQSINCTL, 3, 0)
DEFINE_BIT(RK0_DQSOSC_R_DMDQS2DQ_FILT_OPT, 29)
DEFINE_BIT(RK0_DQSOSC_DQSOSCR_RK0EN, 30)
DEFINE_BIT(RK1_DQSOSC_DQSOSCR_RK1EN, 30)
DEFINE_BITFIELD(RK2_DQSOSC_FREQ_RATIO_TX_0, 4, 0)
DEFINE_BITFIELD(RK2_DQSOSC_FREQ_RATIO_TX_1, 9, 5)
DEFINE_BITFIELD(RK2_DQSOSC_FREQ_RATIO_TX_3, 19, 15)
DEFINE_BITFIELD(RK2_DQSOSC_FREQ_RATIO_TX_4, 24, 20)
DEFINE_BITFIELD(RK2_DUMMY_RD_BK_FREQ_RATIO_TX_6, 7, 3)
DEFINE_BITFIELD(RK2_DUMMY_RD_BK_FREQ_RATIO_TX_7, 12, 8)
DEFINE_BIT(PRE_TDQSCK1_SW_UP_TX_NOW_CASE, 16)
DEFINE_BIT(PRE_TDQSCK1_SHU_PRELOAD_TX_START, 18)
DEFINE_BIT(PRE_TDQSCK1_SHU_PRELOAD_TX_HW, 19)
DEFINE_BITFIELD(SHU_SCINTV_DQS2DQ_FILT_PITHRD, 29, 24)
DEFINE_BITFIELD(SHU1_WODT_TXUPD_W2R_SEL, 16, 14)
DEFINE_BITFIELD(SHU1_WODT_TXUPD_SEL, 13, 12)
DEFINE_BITFIELD(SHU1_DQSOSC_PRD_DQSOSC_PRDCNT, 9, 0)
DEFINE_BITFIELD(SHU_DQSOSCR_DQSOSCRCNT, 7, 0)
DEFINE_BIT(DQSOSCR_ARUIDQ_SW, 7)
DEFINE_BIT(DQSOSCR_DQSOSCRDIS, 24)
DEFINE_BIT(DQSOSCR_DQSOSC_CALEN, 31)
DEFINE_BITFIELD(SHU_DQSOSCTHRD_DQSOSCTHRD_INC_RK0, 11, 0)
DEFINE_BITFIELD(SHU_DQSOSCTHRD_DQSOSCTHRD_DEC_RK0, 23, 12)
DEFINE_BITFIELD(SHU_DQSOSCTHRD_DQSOSCTHRD_INC_RK1_7TO0, 31, 24)
DEFINE_BITFIELD(SHU1_DQSOSC_PRD_DQSOSCTHRD_INC_RK1_11TO8, 19, 16)
DEFINE_BITFIELD(SHU1_DQSOSC_PRD_DQSOSCTHRD_DEC_RK1, 31, 20)
DEFINE_BITFIELD(SHU_DQSOSCR2_DQSOSCENCNT, 8, 0)
DEFINE_BITFIELD(SHURK_SELPH_DQSG0_TX_DLY_DQS1_GATED_P1, 14, 12)
DEFINE_BITFIELD(SHURK_SELPH_DQSG0_TX_DLY_DQS0_GATED_P1, 6, 4)
DEFINE_BITFIELD(SHURK_SELPH_DQSG0_TX_DLY_DQS0_GATED, 2, 0)
DEFINE_BITFIELD(SHURK_SELPH_DQSG1_TX_DLY_DQS1_GATED_P1, 14, 12)
DEFINE_BITFIELD(SHURK_SELPH_DQSG1_TX_DLY_DQS0_GATED_P1, 6, 4)
DEFINE_BITFIELD(SHURK_SELPH_DQSG1_TX_DLY_DQS0_GATED, 2, 0)
DEFINE_BITFIELD(SHU1RK0_DQSOSC_DQSOSC_BASE_RK0, 15, 0)
DEFINE_BITFIELD(SHU1RK0_DQSOSC_DQSOSC_BASE_RK0_B1, 31, 16)
DEFINE_BIT(B0_DQ5_RG_RX_ARDQ_VREF_EN_B0, 16)
DEFINE_BIT(B1_DQ5_RG_RX_ARDQ_VREF_EN_B1, 16)
DEFINE_BIT(MISC_CTRL1_R_DMSTBENCMP_RK, 25)
DEFINE_BIT(MISC_CTRL1_R_DMARPIDQ_SW, 7)
DEFINE_BIT(MISC_CTRL1_R_DMPHYRST, 1)
DEFINE_BITFIELD(MISC_STBERR_RK_R_STBERR_RK_R, 15, 0)
DEFINE_BITFIELD(MISC_STBERR_RK_F_STBERR_RK_F, 15, 0)
DEFINE_BITFIELD(SHU1_BX_DQ5_RG_RX_ARDQ_VREF_SEL_B0, 5, 0)
DEFINE_BIT(SHU1_B0_DQ7_R_DMDQMDBI_SHU_B0, 7)
DEFINE_BITFIELD(SHU1_B0_DQ7_R_DMRANKRXDVS, 3, 0)
DEFINE_BITFIELD(SHU1_CA_CMD0_RG_TX_ARCLK_DRVN_PRE, 14, 12)
DEFINE_BITFIELD(SHU1_CA_CMD3_RG_TX_ARCMD_PU_PRE, 11, 10)
DEFINE_BITFIELD(SHU1_R0_B0_DQ6_RK0_RX_ARDQS0_F_DLY_B0, 30, 24)
DEFINE_BITFIELD(SHU1_R0_B0_DQ6_RK0_RX_ARDQS0_R_DLY_B0, 22, 16)
DEFINE_BITFIELD(SHU1_R0_B0_DQ6_RK0_RX_ARDQM0_F_DLY_B0, 13, 8)
DEFINE_BITFIELD(SHU1_R0_B0_DQ6_RK0_RX_ARDQM0_R_DLY_B0, 5, 0)
DEFINE_BITFIELD(FINE_TUNE_PBYTE, 29, 24)
DEFINE_BITFIELD(FINE_TUNE_DQM, 21, 16)
DEFINE_BITFIELD(FINE_TUNE_DQ, 13, 8)
DEFINE_BITFIELD(SHU1_R0_CA_CMD9_RG_RK0_ARPI_CLK, 29, 24)
DEFINE_BITFIELD(SHU1_R0_CA_CMD9_RG_RK0_ARPI_CMD, 13, 8)
DEFINE_BITFIELD(SHU1_R1_CA_CMD9_RG_RK1_ARPI_CMD, 13, 8)
DEFINE_BITFIELD(SHU1_R0_CA_CMD9_RG_RK0_ARPI_CS, 5, 0)
/* DRAMC_REG_ADDR(DRAMC_REG_PRE_TDQSCK1) */
DEFINE_BIT(PRE_TDQSCK1_TDQSCK_HW_SW_UP_SEL, 22)
DEFINE_BIT(PRE_TDQSCK1_TDQSCK_REG_DVFS, 25)
DEFINE_BIT(PRE_TDQSCK1_TDQSCK_PRECAL_HW, 26)
/* DRAMC_REG_ADDR(DRAMC_REG_PRE_TDQSCK2) */
DEFINE_BITFIELD(PRE_TDQSCK2_TDDQSCK_JUMP_RATIO3, 7, 0)
DEFINE_BITFIELD(PRE_TDQSCK2_TDDQSCK_JUMP_RATIO2, 15, 8)
DEFINE_BITFIELD(PRE_TDQSCK2_TDDQSCK_JUMP_RATIO1, 23, 16)
DEFINE_BITFIELD(PRE_TDQSCK2_TDDQSCK_JUMP_RATIO0, 31, 24)
/* DRAMC_REG_ADDR(DRAMC_REG_PRE_TDQSCK3) */
DEFINE_BITFIELD(PRE_TDQSCK3_TDDQSCK_JUMP_RATIO7, 7, 0)
DEFINE_BITFIELD(PRE_TDQSCK3_TDDQSCK_JUMP_RATIO6, 15, 8)
DEFINE_BITFIELD(PRE_TDQSCK3_TDDQSCK_JUMP_RATIO5, 23, 16)
DEFINE_BITFIELD(PRE_TDQSCK3_TDDQSCK_JUMP_RATIO4, 31, 24)
/* DRAMC_REG_ADDR(DRAMC_REG_PRE_TDQSCK4) */
DEFINE_BITFIELD(PRE_TDQSCK4_TDDQSCK_JUMP_RATIO11, 7, 0)
DEFINE_BITFIELD(PRE_TDQSCK4_TDDQSCK_JUMP_RATIO10, 15, 8)
DEFINE_BITFIELD(PRE_TDQSCK4_TDDQSCK_JUMP_RATIO9, 23, 16)
DEFINE_BITFIELD(PRE_TDQSCK4_TDDQSCK_JUMP_RATIO8, 31, 24)
/* DRAMC_REG_ADDR(DRAMC_REG_SHURK0_SELPH_DQSG0) */
DEFINE_BITFIELD(SHURK0_SELPH_DQSG0_TX_DLY_DQS3_GATED_P1, 30, 28)
DEFINE_BITFIELD(SHURK0_SELPH_DQSG0_TX_DLY_DQS3_GATED, 26, 24)
DEFINE_BITFIELD(SHURK0_SELPH_DQSG0_TX_DLY_DQS2_GATED_P1, 22, 20)
DEFINE_BITFIELD(SHURK0_SELPH_DQSG0_TX_DLY_DQS2_GATED, 18, 16)
DEFINE_BITFIELD(SHURK0_SELPH_DQSG0_TX_DLY_DQS1_GATED_P1, 14, 12)
DEFINE_BITFIELD(SHURK0_SELPH_DQSG0_TX_DLY_DQS1_GATED, 10, 8)
DEFINE_BITFIELD(SHURK0_SELPH_DQSG0_TX_DLY_DQS0_GATED_P1, 6, 4)
DEFINE_BITFIELD(SHURK0_SELPH_DQSG0_TX_DLY_DQS0_GATED, 2, 0)
/* DRAMC_REG_ADDR(DRAMC_REG_SHURK0_SELPH_DQSG1) */
DEFINE_BITFIELD(SHURK0_SELPH_DQSG1_REG_DLY_DQS3_GATED_P1, 30, 28)
DEFINE_BITFIELD(SHURK0_SELPH_DQSG1_REG_DLY_DQS3_GATED, 26, 24)
DEFINE_BITFIELD(SHURK0_SELPH_DQSG1_REG_DLY_DQS2_GATED_P1, 22, 20)
DEFINE_BITFIELD(SHURK0_SELPH_DQSG1_REG_DLY_DQS2_GATED, 18, 16)
DEFINE_BITFIELD(SHURK0_SELPH_DQSG1_REG_DLY_DQS1_GATED_P1, 14, 12)
DEFINE_BITFIELD(SHURK0_SELPH_DQSG1_REG_DLY_DQS1_GATED, 10, 8)
DEFINE_BITFIELD(SHURK0_SELPH_DQSG1_REG_DLY_DQS0_GATED_P1, 6, 4)
DEFINE_BITFIELD(SHURK0_SELPH_DQSG1_REG_DLY_DQS0_GATED, 2, 0)
/* DRAMC_REG_ADDR(DRAMC_REG_RK0_PRE_TDQSCK1) */
DEFINE_BITFIELD(RK0_PRE_TDQSCK1_TDQSCK_PIFREQ2_B0R0, 25, 19)
DEFINE_BITFIELD(RK0_PRE_TDQSCK1_TDQSCK_UIFREQ2_B0R0, 18, 13)
DEFINE_BITFIELD(RK0_PRE_TDQSCK1_TDQSCK_PIFREQ1_B0R0, 12, 6)
DEFINE_BITFIELD(RK0_PRE_TDQSCK1_TDQSCK_UIFREQ1_B0R0, 5, 0)
/* DRAMC_REG_ADDR(DRAMC_REG_SHURK0_DQSIEN) */
DEFINE_BITFIELD(SHURK0_DQSIEN_R0DQS3IEN, 30, 24)
DEFINE_BITFIELD(SHURK0_DQSIEN_R0DQS2IEN, 22, 16)
DEFINE_BITFIELD(SHURK0_DQSIEN_R0DQS1IEN, 14, 8)
DEFINE_BITFIELD(SHURK0_DQSIEN_R0DQS0IEN, 6, 0)
/* DRAMC_REG_ADDR(DRAMC_REG_RK0_PRE_TDQSCK3) */
DEFINE_BITFIELD(RK0_PRE_TDQSCK3_TDQSCK_UIFREQ3_P1_B0R0, 17, 12)
DEFINE_BITFIELD(RK0_PRE_TDQSCK3_TDQSCK_UIFREQ2_P1_B0R0, 11, 6)
DEFINE_BITFIELD(RK0_PRE_TDQSCK3_TDQSCK_UIFREQ1_P1_B0R0, 5, 0)
/* DRAMC_REG_ADDR(DRAMC_REG_RK0_PRE_TDQSCK2) */
DEFINE_BITFIELD(RK0_PRE_TDQSCK2_TDQSCK_PIFREQ3_B0R0, 12, 6)
DEFINE_BITFIELD(RK0_PRE_TDQSCK2_TDQSCK_UIFREQ3_B0R0, 5, 0)
/* DRAMC_REG_ADDR(DRAMC_REG_RK0_PRE_TDQSCK4) */
DEFINE_BITFIELD(RK0_PRE_TDQSCK4_TDQSCK_PIFREQ2_B1R0, 25, 19)
DEFINE_BITFIELD(RK0_PRE_TDQSCK4_TDQSCK_UIFREQ2_B1R0, 18, 13)
DEFINE_BITFIELD(RK0_PRE_TDQSCK4_TDQSCK_PIFREQ1_B1R0, 12, 6)
DEFINE_BITFIELD(RK0_PRE_TDQSCK4_TDQSCK_UIFREQ1_B1R0, 5, 0)
/* DRAMC_REG_ADDR(DRAMC_REG_RK0_PRE_TDQSCK6) */
DEFINE_BITFIELD(RK0_PRE_TDQSCK6_TDQSCK_UIFREQ3_P1_B1R0, 17, 12)
DEFINE_BITFIELD(RK0_PRE_TDQSCK6_TDQSCK_UIFREQ2_P1_B1R0, 11, 6)
DEFINE_BITFIELD(RK0_PRE_TDQSCK6_TDQSCK_UIFREQ1_P1_B1R0, 5, 0)
/* DRAMC_REG_ADDR(DRAMC_REG_RK0_PRE_TDQSCK5) */
DEFINE_BITFIELD(RK0_PRE_TDQSCK5_TDQSCK_PIFREQ3_B1R0, 12, 6)
DEFINE_BITFIELD(RK0_PRE_TDQSCK5_TDQSCK_UIFREQ3_B1R0, 5, 0)
/* DRAMC_REG_ADDR(DRAMC_REG_RK0_PRE_TDQSCK7) */
DEFINE_BITFIELD(RK0_PRE_TDQSCK7_TDQSCK_PIFREQ2_B2R0, 25, 19)
DEFINE_BITFIELD(RK0_PRE_TDQSCK7_TDQSCK_UIFREQ2_B2R0, 18, 13)
DEFINE_BITFIELD(RK0_PRE_TDQSCK7_TDQSCK_PIFREQ1_B2R0, 12, 6)
DEFINE_BITFIELD(RK0_PRE_TDQSCK7_TDQSCK_UIFREQ1_B2R0, 5, 0)
/* DRAMC_REG_ADDR(DRAMC_REG_RK0_PRE_TDQSCK9) */
DEFINE_BITFIELD(RK0_PRE_TDQSCK9_TDQSCK_UIFREQ3_P1_B2R0, 17, 12)
DEFINE_BITFIELD(RK0_PRE_TDQSCK9_TDQSCK_UIFREQ2_P1_B2R0, 11, 6)
DEFINE_BITFIELD(RK0_PRE_TDQSCK9_TDQSCK_UIFREQ1_P1_B2R0, 5, 0)
/* DRAMC_REG_ADDR(DRAMC_REG_RK0_PRE_TDQSCK8) */
DEFINE_BITFIELD(RK0_PRE_TDQSCK8_TDQSCK_PIFREQ3_B2R0, 12, 6)
DEFINE_BITFIELD(RK0_PRE_TDQSCK8_TDQSCK_UIFREQ3_B2R0, 5, 0)
/* DRAMC_REG_ADDR(DRAMC_REG_RK0_PRE_TDQSCK10) */
DEFINE_BITFIELD(RK0_PRE_TDQSCK10_TDQSCK_PIFREQ2_B3R0, 25, 19)
DEFINE_BITFIELD(RK0_PRE_TDQSCK10_TDQSCK_UIFREQ2_B3R0, 18, 13)
DEFINE_BITFIELD(RK0_PRE_TDQSCK10_TDQSCK_PIFREQ1_B3R0, 12, 6)
DEFINE_BITFIELD(RK0_PRE_TDQSCK10_TDQSCK_UIFREQ1_B3R0, 5, 0)
/* DRAMC_REG_ADDR(DRAMC_REG_RK0_PRE_TDQSCK12) */
DEFINE_BITFIELD(RK0_PRE_TDQSCK12_TDQSCK_UIFREQ3_P1_B3R0, 17, 12)
DEFINE_BITFIELD(RK0_PRE_TDQSCK12_TDQSCK_UIFREQ2_P1_B3R0, 11, 6)
DEFINE_BITFIELD(RK0_PRE_TDQSCK12_TDQSCK_UIFREQ1_P1_B3R0, 5, 0)
/* DRAMC_REG_ADDR(DRAMC_REG_RK0_PRE_TDQSCK11) */
DEFINE_BITFIELD(RK0_PRE_TDQSCK11_TDQSCK_PIFREQ3_B3R0, 12, 6)
DEFINE_BITFIELD(RK0_PRE_TDQSCK11_TDQSCK_UIFREQ3_B3R0, 5, 0)
/* DRAMC_REG_MRR_BIT_MUX1 */
DEFINE_BITFIELD(MRR_BIT_MUX1_MRR_BIT3_SEL, 28, 24)
DEFINE_BITFIELD(MRR_BIT_MUX1_MRR_BIT2_SEL, 20, 16)
DEFINE_BITFIELD(MRR_BIT_MUX1_MRR_BIT1_SEL, 12, 8)
DEFINE_BITFIELD(MRR_BIT_MUX1_MRR_BIT0_SEL, 4, 0)
/* DRAMC_REG_SHU_SELPH_CA7 */
DEFINE_BITFIELD(SHU_SELPH_CA7_DLY_RA5, 22, 20)
DEFINE_BITFIELD(SHU_SELPH_CA7_DLY_RA4, 18, 16)
DEFINE_BITFIELD(SHU_SELPH_CA7_DLY_RA3, 14, 12)
DEFINE_BITFIELD(SHU_SELPH_CA7_DLY_RA2, 10, 8)
DEFINE_BITFIELD(SHU_SELPH_CA7_DLY_RA1, 6, 4)
DEFINE_BITFIELD(SHU_SELPH_CA7_DLY_RA0, 2, 0)
/* DRAMC_REG_MRR_BIT_MUX2 */
DEFINE_BITFIELD(MRR_BIT_MUX2_MRR_BIT5_SEL, 12, 8)
DEFINE_BITFIELD(MRR_BIT_MUX2_MRR_BIT4_SEL, 4, 0)
/* DDRPHY_SHU1_R0_CA_CMD0 */
DEFINE_BITFIELD(SHU1_R0_CA_CMD0_RK0_TX_ARCA5_DLY, 23, 20)
DEFINE_BITFIELD(SHU1_R0_CA_CMD0_RK0_TX_ARCA4_DLY, 19, 16)
DEFINE_BITFIELD(SHU1_R0_CA_CMD0_RK0_TX_ARCA3_DLY, 15, 12)
DEFINE_BITFIELD(SHU1_R0_CA_CMD0_RK0_TX_ARCA2_DLY, 11, 8)
DEFINE_BITFIELD(SHU1_R0_CA_CMD0_RK0_TX_ARCA1_DLY, 7, 4)
DEFINE_BITFIELD(SHU1_R0_CA_CMD0_RK0_TX_ARCA0_DLY, 3, 0)
/* DDRPHY_PLL2 */
DEFINE_BIT(PLL2_RG_RCLRPLL_EN, 31)
/* DDRPHY_PLL1 */
DEFINE_BIT(PLL1_RG_RPHYPLL_EN, 31)
/* DRAMC_REG_PADCTRL */
DEFINE_BITFIELD(PADCTRL_FIXDQIEN, 19, 16)
/* SPM_POWER_ON_VAL0 */
DEFINE_BIT(SPM_POWER_ON_VAL0_SC_DR_SHU_EN_PCM, 22)
DEFINE_BIT(SPM_POWER_ON_VAL0_SC_DPHY_RXDLY_TRACK_EN, 25)
DEFINE_BIT(SPM_POWER_ON_VAL0_SC_DDRPHY_FB_CK_EN_PCM, 16)
DEFINE_BIT(SPM_POWER_ON_VAL0_SC_TX_TRACKING_DIS, 11)
DEFINE_BITFIELD(SPM_POWER_ON_VAL0_SC_DR_SHU_LEVEL_PCM, 31, 30)
DEFINE_BIT(SPM_POWER_ON_VAL0_SC_PHYPLL2_SHU_EN_PCM, 27)
DEFINE_BIT(SPM_POWER_ON_VAL0_SC_PHYPLL1_SHU_EN_PCM, 26)
/* SPM_POWER_ON_VAL1 */
DEFINE_BIT(SPM_POWER_ON_VAL1_SC_DR_SHORT_QUEUE_PCM, 31)
/* SPM_DRAMC_DPY_CLK_SW_CON */
DEFINE_BITFIELD(DRAMC_DPY_CLK_SW_CON_SC_DMDRAMCSHU_ACK, 25, 24)
/* DRAMC_REG_DRAMC_PD_CTRL */
DEFINE_BIT(DRAMC_PD_CTRL_DCMEN, 0)
DEFINE_BIT(DRAMC_PD_CTRL_PHYCLKDYNGEN, 30)
DEFINE_BIT(DRAMC_PD_CTRL_MIOCKCTRLOFF, 26)
/* DRAMC_REG_WRITE_LEV */
DEFINE_BIT(WRITE_LEV_DQS_WLEV, 7)
DEFINE_BITFIELD(WRITE_LEV_DQSBX_G, 11, 8)
DEFINE_BITFIELD(WRITE_LEV_DQS_SEL, 19, 16)
DEFINE_BITFIELD(WRITE_LEV_DMVREFCA, 27, 20)
DEFINE_BIT(WRITE_LEV_WRITE_LEVEL_EN, 0)
DEFINE_BIT(WRITE_LEV_BYTEMODECBTEN, 3)
/* DRAMC_REG_STBCAL */
DEFINE_BIT(STBCAL_DQSIENCG_NORMAL_EN, 29)
/* DDRPHY_B0_DQ5 */
DEFINE_BIT(B0_DQ5_RG_RX_ARDQ_EYE_VREF_EN_B0, 17)
/* DDRPHY_B1_DQ5 */
DEFINE_BIT(B1_DQ5_RG_RX_ARDQ_EYE_VREF_EN_B1, 17)
/* DDRPHY_B0_DQ3 */
DEFINE_BIT(B0_DQ3_RG_RX_ARDQ_SMT_EN_B0, 1)
/* DDRPHY_B1_DQ3 */
DEFINE_BIT(B1_DQ3_RG_RX_ARDQ_SMT_EN_B1, 1)
/* DDRPHY_CA_CMD5 */
DEFINE_BIT(CA_CMD5_RG_RX_ARCMD_EYE_VREF_EN, 17)
/* DDRPHY_CA_CMD3 */
DEFINE_BIT(CA_CMD3_RG_RX_ARCMD_SMT_EN, 1)
struct dramc_channel_regs {
union {
struct dramc_ddrphy_ao_regs phy;
uint8_t raw_ddrphy_ao_regs[0x2000];
};
union {
struct dramc_ao_regs ao;
uint8_t raw_ao_regs[0x2000];
};
union {
struct dramc_nao_regs nao;
uint8_t raw_nao_regs[0x1000];
};
union {
struct chn_emi_regs emi;
uint8_t raw_emi_regs[0x1000];
};
union {
struct dramc_ddrphy_nao_regs phy_nao;
uint8_t raw_ddrphy_nao_regs[0x2000];
};
};
static struct dramc_channel_regs *const ch = (void *)DRAMC_CH_BASE;
static struct emi_mpu_regs *const emi_mpu = (void *)EMI_MPU_BASE;
#endif /* _DRAMC_REGISTER_H_ */