aboutsummaryrefslogtreecommitdiff
path: root/src/soc/mediatek
diff options
context:
space:
mode:
authorHuayang Duan <huayang.duan@mediatek.com>2020-06-23 13:59:59 +0800
committerHung-Te Lin <hungte@chromium.org>2020-12-29 14:35:45 +0000
commit8a02d98c5af8e4a1545ceb72593e3e7561107b79 (patch)
tree72759f0e2a357263735d04a6dcba4157a40a05e7 /src/soc/mediatek
parent91f74ae16b70872fb63806f7e98122dbf6b3f021 (diff)
soc/mediatek/mt8192: Implement dramc base settings for each frequency
Signed-off-by: Huayang Duan <huayang.duan@mediatek.com> Change-Id: I50d5aebaf249ab7292fad7a0046099239c8b403c Reviewed-on: https://review.coreboot.org/c/coreboot/+/44707 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Yu-Ping Wu <yupingso@google.com> Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Diffstat (limited to 'src/soc/mediatek')
-rw-r--r--src/soc/mediatek/mt8192/dramc_pi_basic_api.c2926
1 files changed, 2926 insertions, 0 deletions
diff --git a/src/soc/mediatek/mt8192/dramc_pi_basic_api.c b/src/soc/mediatek/mt8192/dramc_pi_basic_api.c
index 719c64b24a..58762764f2 100644
--- a/src/soc/mediatek/mt8192/dramc_pi_basic_api.c
+++ b/src/soc/mediatek/mt8192/dramc_pi_basic_api.c
@@ -108,6 +108,2902 @@ void global_option_init(struct ddr_cali *cali)
set_dqo1_pinmux_mapping(cali);
}
+static void sv_algorithm_assistance_lp4_800(void)
+{
+ SET32_BITFIELDS(&ch[0].phy_ao.shu_misc_rdsel_track,
+ SHU_MISC_RDSEL_TRACK_DMDATLAT_I, 0x0e,
+ SHU_MISC_RDSEL_TRACK_RDSEL_HWSAVE_MSK, 0x1,
+ SHU_MISC_RDSEL_TRACK_RDSEL_TRACK_EN, 0x0,
+ SHU_MISC_RDSEL_TRACK_SHU_GW_THRD_NEG, 0xff5,
+ SHU_MISC_RDSEL_TRACK_SHU_GW_THRD_POS, 0x00b);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_rdat,
+ MISC_SHU_RDAT_DATLAT, 0x0e,
+ MISC_SHU_RDAT_DATLAT_DSEL, 0x0e,
+ MISC_SHU_RDAT_DATLAT_DSEL_PHY, 0x0e);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_phy_rx_ctrl,
+ MISC_SHU_PHY_RX_CTRL_RANK_RXDLY_UPDLAT_EN, 0x1,
+ MISC_SHU_PHY_RX_CTRL_RANK_RXDLY_UPD_OFFSET, 0x2,
+ MISC_SHU_PHY_RX_CTRL_RX_IN_GATE_EN_PRE_OFFSET, 0x1,
+ MISC_SHU_PHY_RX_CTRL_RX_IN_GATE_EN_HEAD, 0x0,
+ MISC_SHU_PHY_RX_CTRL_RX_IN_GATE_EN_TAIL, 0x1,
+ MISC_SHU_PHY_RX_CTRL_RX_IN_BUFF_EN_HEAD, 0x0,
+ MISC_SHU_PHY_RX_CTRL_RX_IN_BUFF_EN_TAIL, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_rankctl,
+ MISC_SHU_RANKCTL_RANKINCTL_RXDLY, 0x3,
+ MISC_SHU_RANKCTL_RANK_RXDLY_OPT, 0x1,
+ MISC_SHU_RANKCTL_RANKSEL_SELPH_FRUN, 0x1,
+ MISC_SHU_RANKCTL_RANKINCTL_STB, 0x4,
+ MISC_SHU_RANKCTL_RANKINCTL, 0x4,
+ MISC_SHU_RANKCTL_RANKINCTL_ROOT1, 0x4,
+ MISC_SHU_RANKCTL_RANKINCTL_PHY, 0x6);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_rank_sel_lat,
+ MISC_SHU_RANK_SEL_LAT_RANK_SEL_LAT_B0, 0x4,
+ MISC_SHU_RANK_SEL_LAT_RANK_SEL_LAT_B1, 0x4,
+ MISC_SHU_RANK_SEL_LAT_RANK_SEL_LAT_CA, 0x4);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_rk[0].misc_shu_rk_dqsctl,
+ MISC_SHU_RK_DQSCTL_DQSINCTL, 0x6);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_rk[1].misc_shu_rk_dqsctl,
+ MISC_SHU_RK_DQSCTL_DQSINCTL, 0x6);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_dqsien_mck_ui_dly,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P0_B0, 0x6,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P1_B0, 0x8,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P0_B0, 0x0,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P1_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_rk_b0_dqsien_pi_dly,
+ SHU_RK_B0_DQSIEN_PI_DLY_DQSIEN_PI_B0, 0x0b);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_dqsien_mck_ui_dly,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P0_B0, 0x7,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P1_B0, 0x9,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P0_B0, 0x0,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P1_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_rk_b0_dqsien_pi_dly,
+ SHU_RK_B0_DQSIEN_PI_DLY_DQSIEN_PI_B0, 0x1f);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_dqsien_mck_ui_dly,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P0_B1, 0x6,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P1_B1, 0x8,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P0_B1, 0x0,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P1_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_rk_b0_dqsien_pi_dly,
+ SHU_RK_B1_DQSIEN_PI_DLY_DQSIEN_PI_B1, 0x0b);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_dqsien_mck_ui_dly,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P0_B1, 0x7,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P1_B1, 0x9,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P0_B1, 0x0,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P1_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_rk_b0_dqsien_pi_dly,
+ SHU_RK_B1_DQSIEN_PI_DLY_DQSIEN_PI_B1, 0x1f);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_odtctrl,
+ MISC_SHU_ODTCTRL_RODTEN, 0x1,
+ MISC_SHU_ODTCTRL_RODTENSTB_SELPH_CG_IG, 0x0,
+ MISC_SHU_ODTCTRL_RODT_LAT, 0x4,
+ MISC_SHU_ODTCTRL_RODTEN_SELPH_FRUN, 0x0,
+ MISC_SHU_ODTCTRL_RODTDLY_LAT_OPT, 0x0,
+ MISC_SHU_ODTCTRL_FIXRODT, 0x0,
+ MISC_SHU_ODTCTRL_RODTEN_OPT, 0x1,
+ MISC_SHU_ODTCTRL_RODTE2, 0x1,
+ MISC_SHU_ODTCTRL_RODTE, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_dq7,
+ SHU_B0_DQ7_R_DMRANKRXDVS_B0, 0x0,
+ SHU_B0_DQ7_R_DMDQMDBI_EYE_SHU_B0, 0x0,
+ SHU_B0_DQ7_R_DMDQMDBI_SHU_B0, 0x0,
+ SHU_B0_DQ7_R_DMRXDVS_DQM_FLAGSEL_B0, 0x0,
+ SHU_B0_DQ7_R_DMRXDVS_PBYTE_FLAG_OPT_B0, 0x0,
+ SHU_B0_DQ7_R_DMRXDVS_PBYTE_DQM_EN_B0, 0x0,
+ SHU_B0_DQ7_R_DMRXTRACK_DQM_EN_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_dq7,
+ SHU_B0_DQ7_R_DMRODTEN_B0, 0x1,
+ SHU_B0_DQ7_R_DMARPI_CG_FB2DLL_DCM_EN_B0, 0x0,
+ SHU_B0_DQ7_R_DMTX_ARPI_CG_DQ_NEW_B0, 0x0,
+ SHU_B0_DQ7_R_DMTX_ARPI_CG_DQS_NEW_B0, 0x0,
+ SHU_B0_DQ7_R_DMTX_ARPI_CG_DQM_NEW_B0, 0x0,
+ SHU_B0_DQ7_R_LP4Y_SDN_MODE_DQS0, 0x0,
+ SHU_B0_DQ7_R_DMRXRANK_DQ_EN_B0, 0x1,
+ SHU_B0_DQ7_R_DMRXRANK_DQ_LAT_B0, 0x1,
+ SHU_B0_DQ7_R_DMRXRANK_DQS_EN_B0, 0x1,
+ SHU_B0_DQ7_R_DMRXRANK_DQS_LAT_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_dq7,
+ SHU_B1_DQ7_R_DMRANKRXDVS_B1, 0x0,
+ SHU_B1_DQ7_R_DMDQMDBI_EYE_SHU_B1, 0x0,
+ SHU_B1_DQ7_R_DMDQMDBI_SHU_B1, 0x0,
+ SHU_B1_DQ7_R_DMRXDVS_DQM_FLAGSEL_B1, 0x0,
+ SHU_B1_DQ7_R_DMRXDVS_PBYTE_FLAG_OPT_B1, 0x0,
+ SHU_B1_DQ7_R_DMRXDVS_PBYTE_DQM_EN_B1, 0x0,
+ SHU_B1_DQ7_R_DMRXTRACK_DQM_EN_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_dq7,
+ SHU_B1_DQ7_R_DMRODTEN_B1, 0x1,
+ SHU_B1_DQ7_R_DMARPI_CG_FB2DLL_DCM_EN_B1, 0x0,
+ SHU_B1_DQ7_R_DMTX_ARPI_CG_DQ_NEW_B1, 0x0,
+ SHU_B1_DQ7_R_DMTX_ARPI_CG_DQS_NEW_B1, 0x0,
+ SHU_B1_DQ7_R_DMTX_ARPI_CG_DQM_NEW_B1, 0x0,
+ SHU_B1_DQ7_R_LP4Y_SDN_MODE_DQS1, 0x0,
+ SHU_B1_DQ7_R_DMRXRANK_DQ_EN_B1, 0x1,
+ SHU_B1_DQ7_R_DMRXRANK_DQ_LAT_B1, 0x1,
+ SHU_B1_DQ7_R_DMRXRANK_DQS_EN_B1, 0x1,
+ SHU_B1_DQ7_R_DMRXRANK_DQS_LAT_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.shu_misc_rx_pipe_ctrl,
+ SHU_MISC_RX_PIPE_CTRL_RX_PIPE_BYPASS_EN, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_rk_b0_rodten_mck_ui_dly,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_UI_P0_B0, 0x1,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_UI_P1_B0, 0x1,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_MCK_P0_B0, 0x0,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_MCK_P1_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_rk_b0_rodten_mck_ui_dly,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_UI_P0_B0, 0x2,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_UI_P1_B0, 0x2,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_MCK_P0_B0, 0x0,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_MCK_P1_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_rk_b0_rodten_mck_ui_dly,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_UI_P0_B1, 0x1,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_UI_P1_B1, 0x1,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_MCK_P0_B1, 0x0,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_MCK_P1_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_rk_b0_rodten_mck_ui_dly,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_UI_P0_B1, 0x2,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_UI_P1_B1, 0x2,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_MCK_P0_B1, 0x0,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_MCK_P1_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_rx_cg_set0,
+ SHU_RX_CG_SET0_DLE_LAST_EXTEND3, 0x0,
+ SHU_RX_CG_SET0_READ_START_EXTEND3, 0x0,
+ SHU_RX_CG_SET0_DLE_LAST_EXTEND2, 0x1,
+ SHU_RX_CG_SET0_READ_START_EXTEND2, 0x1,
+ SHU_RX_CG_SET0_DLE_LAST_EXTEND1, 0x1,
+ SHU_RX_CG_SET0_READ_START_EXTEND1, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.shu_misc_rank_sel_stb,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_EN, 0x1,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_EN_B23, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_SERMODE, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_TRACK, 0x1,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_RXDLY_TRACK, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_PHASE_EN, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_PHSINCTL, 0x5,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_UI_PLUS, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_MCK_PLUS, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_UI_MINUS, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_MCK_MINUS, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_rk[0].misc_shu_rk_dqscal,
+ MISC_SHU_RK_DQSCAL_DQSIENLLMT, 0x60,
+ MISC_SHU_RK_DQSCAL_DQSIENLLMTEN, 0x1,
+ MISC_SHU_RK_DQSCAL_DQSIENHLMT, 0x3f,
+ MISC_SHU_RK_DQSCAL_DQSIENHLMTEN, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_rk[1].misc_shu_rk_dqscal,
+ MISC_SHU_RK_DQSCAL_DQSIENLLMT, 0x60,
+ MISC_SHU_RK_DQSCAL_DQSIENLLMTEN, 0x1,
+ MISC_SHU_RK_DQSCAL_DQSIENHLMT, 0x3f,
+ MISC_SHU_RK_DQSCAL_DQSIENHLMTEN, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_ini_uipi,
+ SHU_R0_B0_INI_UIPI_CURR_INI_PI_B0, 0x0b,
+ SHU_R0_B0_INI_UIPI_CURR_INI_UI_B0, 0x06);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_ini_uipi,
+ SHU_R0_B1_INI_UIPI_CURR_INI_PI_B1, 0x0b,
+ SHU_R0_B1_INI_UIPI_CURR_INI_UI_B1, 0x06);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_ini_uipi,
+ SHU_R0_B0_INI_UIPI_CURR_INI_PI_B0, 0x1f,
+ SHU_R0_B0_INI_UIPI_CURR_INI_UI_B0, 0x07);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_ini_uipi,
+ SHU_R0_B1_INI_UIPI_CURR_INI_PI_B1, 0x1f,
+ SHU_R0_B1_INI_UIPI_CURR_INI_UI_B1, 0x07);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_next_ini_uipi,
+ SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_PI_B0, 0x0b,
+ SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_UI_B0, 0x06,
+ SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_UI_P1_B0, 0x08);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_next_ini_uipi,
+ SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_PI_B1, 0x0b,
+ SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_UI_B1, 0x06,
+ SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_UI_P1_B1, 0x08);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_next_ini_uipi,
+ SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_PI_B0, 0x1f,
+ SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_UI_B0, 0x07,
+ SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_UI_P1_B0, 0x09);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_next_ini_uipi,
+ SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_PI_B1, 0x1f,
+ SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_UI_B1, 0x07,
+ SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_UI_P1_B1, 0x09);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_dq0,
+ SHU_R0_B0_DQ0_RG_RX_ARDQS0_R_DLY_DUTY, 0x0,
+ SHU_R0_B0_DQ0_RG_RX_ARDQS0_F_DLY_DUTY, 0x0,
+ SHU_R0_B0_DQ0_SW_ARPI_DQ_B0, 0x18,
+ SHU_R0_B0_DQ0_SW_ARPI_DQM_B0, 0x18,
+ SHU_R0_B0_DQ0_ARPI_PBYTE_B0, 0x00,
+ SHU_R0_B0_DQ0_DA_ARPI_DDR400_0D5UI_RK0_B0, 0x0,
+ SHU_R0_B0_DQ0_DA_RX_ARDQSIEN_0D5UI_RK0_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_dq0,
+ SHU_R0_B1_DQ0_RG_RX_ARDQS1_R_DLY_DUTY, 0x0,
+ SHU_R0_B1_DQ0_RG_RX_ARDQS1_F_DLY_DUTY, 0x0,
+ SHU_R0_B1_DQ0_SW_ARPI_DQ_B1, 0x18,
+ SHU_R0_B1_DQ0_SW_ARPI_DQM_B1, 0x18,
+ SHU_R0_B1_DQ0_ARPI_PBYTE_B1, 0x00,
+ SHU_R0_B1_DQ0_DA_ARPI_DDR400_0D5UI_RK0_B1, 0x0,
+ SHU_R0_B1_DQ0_DA_RX_ARDQSIEN_0D5UI_RK0_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_dq0,
+ SHU_R0_B0_DQ0_RG_RX_ARDQS0_R_DLY_DUTY, 0x0,
+ SHU_R0_B0_DQ0_RG_RX_ARDQS0_F_DLY_DUTY, 0x0,
+ SHU_R0_B0_DQ0_SW_ARPI_DQ_B0, 0x18,
+ SHU_R0_B0_DQ0_SW_ARPI_DQM_B0, 0x18,
+ SHU_R0_B0_DQ0_ARPI_PBYTE_B0, 0x00,
+ SHU_R0_B0_DQ0_DA_ARPI_DDR400_0D5UI_RK0_B0, 0x0,
+ SHU_R0_B0_DQ0_DA_RX_ARDQSIEN_0D5UI_RK0_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_dq0,
+ SHU_R0_B1_DQ0_RG_RX_ARDQS1_R_DLY_DUTY, 0x0,
+ SHU_R0_B1_DQ0_RG_RX_ARDQS1_F_DLY_DUTY, 0x0,
+ SHU_R0_B1_DQ0_SW_ARPI_DQ_B1, 0x18,
+ SHU_R0_B1_DQ0_SW_ARPI_DQM_B1, 0x18,
+ SHU_R0_B1_DQ0_ARPI_PBYTE_B1, 0x00,
+ SHU_R0_B1_DQ0_DA_ARPI_DDR400_0D5UI_RK0_B1, 0x0,
+ SHU_R0_B1_DQ0_DA_RX_ARDQSIEN_0D5UI_RK0_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_dcm_ctrl0,
+ SHU_DCM_CTRL0_DDRPHY_CLK_EN_OPT, 0x1,
+ SHU_DCM_CTRL0_DPHY_CMD_CLKEN_EXTCNT, 0x3,
+ SHU_DCM_CTRL0_DDRPHY_CLK_DYN_GATING_SEL, 0x6,
+ SHU_DCM_CTRL0_APHYPI_CKCGL_CNT, 0x2,
+ SHU_DCM_CTRL0_APHYPI_CKCGH_CNT, 0x5,
+ SHU_DCM_CTRL0_FASTWAKE2, 0x0,
+ SHU_DCM_CTRL0_FASTWAKE, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_aphy_tx_picg_ctrl,
+ SHU_APHY_TX_PICG_CTRL_TX_PICG_CNT, 0x3,
+ SHU_APHY_TX_PICG_CTRL_TX_DQS_SEL_P1, 0x0,
+ SHU_APHY_TX_PICG_CTRL_TX_DQS_SEL_P0, 0x3,
+ SHU_APHY_TX_PICG_CTRL_DPHY_TX_DCM_EXTCNT, 0x2,
+ SHU_APHY_TX_PICG_CTRL_DDRPHY_CLK_EN_COMB_TX_OPT, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_aphy_tx_picg_ctrl,
+ SHURK_APHY_TX_PICG_CTRL_TX_DQ_RK_SEL_P1, 0x0,
+ SHURK_APHY_TX_PICG_CTRL_TX_DQ_RK_SEL_P0, 0x3);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_aphy_tx_picg_ctrl,
+ SHURK_APHY_TX_PICG_CTRL_TX_DQ_RK_SEL_P1, 0x0,
+ SHURK_APHY_TX_PICG_CTRL_TX_DQ_RK_SEL_P0, 0x3);
+ SET32_BITFIELDS(&ch[0].ao.shu_new_xrw2w_ctrl,
+ SHU_NEW_XRW2W_CTRL_TX_PI_UPDCTL_B0, 0x2,
+ SHU_NEW_XRW2W_CTRL_TX_PI_UPDCTL_B1, 0x2,
+ SHU_NEW_XRW2W_CTRL_TXPI_UPD_MODE, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_selph_dqs0,
+ SHU_SELPH_DQS0_TXDLY_DQS0, 0x4,
+ SHU_SELPH_DQS0_TXDLY_DQS1, 0x4,
+ SHU_SELPH_DQS0_TXDLY_DQS2, 0x1,
+ SHU_SELPH_DQS0_TXDLY_DQS3, 0x1,
+ SHU_SELPH_DQS0_TXDLY_OEN_DQS0, 0x3,
+ SHU_SELPH_DQS0_TXDLY_OEN_DQS1, 0x3,
+ SHU_SELPH_DQS0_TXDLY_OEN_DQS2, 0x1,
+ SHU_SELPH_DQS0_TXDLY_OEN_DQS3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_selph_dq0,
+ SHURK_SELPH_DQ0_TXDLY_DQ0, 0x4,
+ SHURK_SELPH_DQ0_TXDLY_DQ1, 0x4,
+ SHURK_SELPH_DQ0_TXDLY_DQ2, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_DQ3, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ0, 0x3,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ1, 0x3,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ2, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_selph_dq1,
+ SHURK_SELPH_DQ1_TXDLY_DQM0, 0x4,
+ SHURK_SELPH_DQ1_TXDLY_DQM1, 0x4,
+ SHURK_SELPH_DQ1_TXDLY_DQM2, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_DQM3, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM0, 0x3,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM1, 0x3,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM2, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_selph_dq2,
+ SHURK_SELPH_DQ2_DLY_DQ0, 0x1,
+ SHURK_SELPH_DQ2_DLY_DQ1, 0x1,
+ SHURK_SELPH_DQ2_DLY_DQ2, 0x1,
+ SHURK_SELPH_DQ2_DLY_DQ3, 0x1,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ0, 0x2,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ1, 0x2,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ2, 0x1,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_selph_dq3,
+ SHURK_SELPH_DQ3_DLY_DQM0, 0x1,
+ SHURK_SELPH_DQ3_DLY_DQM1, 0x1,
+ SHURK_SELPH_DQ3_DLY_DQM2, 0x1,
+ SHURK_SELPH_DQ3_DLY_DQM3, 0x1,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM0, 0x2,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM1, 0x2,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM2, 0x1,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_selph_dq0,
+ SHURK_SELPH_DQ0_TXDLY_DQ0, 0x4,
+ SHURK_SELPH_DQ0_TXDLY_DQ1, 0x4,
+ SHURK_SELPH_DQ0_TXDLY_DQ2, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_DQ3, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ0, 0x3,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ1, 0x3,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ2, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_selph_dq1,
+ SHURK_SELPH_DQ1_TXDLY_DQM0, 0x4,
+ SHURK_SELPH_DQ1_TXDLY_DQM1, 0x4,
+ SHURK_SELPH_DQ1_TXDLY_DQM2, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_DQM3, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM0, 0x3,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM1, 0x3,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM2, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_selph_dq2,
+ SHURK_SELPH_DQ2_DLY_DQ0, 0x1,
+ SHURK_SELPH_DQ2_DLY_DQ1, 0x1,
+ SHURK_SELPH_DQ2_DLY_DQ2, 0x1,
+ SHURK_SELPH_DQ2_DLY_DQ3, 0x1,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ0, 0x2,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ1, 0x2,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ2, 0x1,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_selph_dq3,
+ SHURK_SELPH_DQ3_DLY_DQM0, 0x1,
+ SHURK_SELPH_DQ3_DLY_DQM1, 0x1,
+ SHURK_SELPH_DQ3_DLY_DQM2, 0x1,
+ SHURK_SELPH_DQ3_DLY_DQM3, 0x1,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM0, 0x2,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM1, 0x2,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM2, 0x1,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_dqs2dq_cal1,
+ SHURK_DQS2DQ_CAL1_BOOT_ORIG_UI_RK0_DQ0, 0x018,
+ SHURK_DQS2DQ_CAL1_BOOT_ORIG_UI_RK0_DQ1, 0x018);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_dqs2dq_cal2,
+ SHURK_DQS2DQ_CAL2_BOOT_TARG_UI_RK0_DQ0, 0x018,
+ SHURK_DQS2DQ_CAL2_BOOT_TARG_UI_RK0_DQ1, 0x018);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_dqs2dq_cal5,
+ SHURK_DQS2DQ_CAL5_BOOT_TARG_UI_RK0_DQM0, 0x018,
+ SHURK_DQS2DQ_CAL5_BOOT_TARG_UI_RK0_DQM1, 0x018);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_dqs2dq_cal1,
+ SHURK_DQS2DQ_CAL1_BOOT_ORIG_UI_RK0_DQ0, 0x018,
+ SHURK_DQS2DQ_CAL1_BOOT_ORIG_UI_RK0_DQ1, 0x018);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_dqs2dq_cal2,
+ SHURK_DQS2DQ_CAL2_BOOT_TARG_UI_RK0_DQ0, 0x018,
+ SHURK_DQS2DQ_CAL2_BOOT_TARG_UI_RK0_DQ1, 0x018);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_dqs2dq_cal5,
+ SHURK_DQS2DQ_CAL5_BOOT_TARG_UI_RK0_DQM0, 0x018,
+ SHURK_DQS2DQ_CAL5_BOOT_TARG_UI_RK0_DQM1, 0x018);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_pi,
+ SHURK_PI_RK0_ARPI_DQ_B1, 0x18,
+ SHURK_PI_RK0_ARPI_DQ_B0, 0x18,
+ SHURK_PI_RK0_ARPI_DQM_B1, 0x18,
+ SHURK_PI_RK0_ARPI_DQM_B0, 0x18);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_pi,
+ SHURK_PI_RK0_ARPI_DQ_B1, 0x18,
+ SHURK_PI_RK0_ARPI_DQ_B0, 0x18,
+ SHURK_PI_RK0_ARPI_DQM_B1, 0x18,
+ SHURK_PI_RK0_ARPI_DQM_B0, 0x18);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_txdly0,
+ SHU_R0_B0_TXDLY0_TX_ARDQ0_DLY_B0, 0x30,
+ SHU_R0_B0_TXDLY0_TX_ARDQ1_DLY_B0, 0x30,
+ SHU_R0_B0_TXDLY0_TX_ARDQ2_DLY_B0, 0x30,
+ SHU_R0_B0_TXDLY0_TX_ARDQ3_DLY_B0, 0x30);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_txdly1,
+ SHU_R0_B0_TXDLY1_TX_ARDQ4_DLY_B0, 0x30,
+ SHU_R0_B0_TXDLY1_TX_ARDQ5_DLY_B0, 0x30,
+ SHU_R0_B0_TXDLY1_TX_ARDQ6_DLY_B0, 0x30,
+ SHU_R0_B0_TXDLY1_TX_ARDQ7_DLY_B0, 0x30);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_txdly3,
+ SHU_R0_B0_TXDLY3_TX_ARDQM0_DLY_B0, 0x30,
+ SHU_R0_B0_TXDLY3_TX_ARWCK_DLY_B0, 0x00,
+ SHU_R0_B0_TXDLY3_TX_ARWCKB_DLY_B0, 0x00);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_txdly0,
+ SHU_R0_B1_TXDLY0_TX_ARDQ0_DLY_B1, 0x0c,
+ SHU_R0_B1_TXDLY0_TX_ARDQ1_DLY_B1, 0x0c,
+ SHU_R0_B1_TXDLY0_TX_ARDQ2_DLY_B1, 0x0c,
+ SHU_R0_B1_TXDLY0_TX_ARDQ3_DLY_B1, 0x0c);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_txdly1,
+ SHU_R0_B1_TXDLY1_TX_ARDQ4_DLY_B1, 0x0c,
+ SHU_R0_B1_TXDLY1_TX_ARDQ5_DLY_B1, 0x0c,
+ SHU_R0_B1_TXDLY1_TX_ARDQ6_DLY_B1, 0x0c,
+ SHU_R0_B1_TXDLY1_TX_ARDQ7_DLY_B1, 0x0c);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_txdly3,
+ SHU_R0_B1_TXDLY3_TX_ARDQM0_DLY_B1, 0x0c,
+ SHU_R0_B1_TXDLY3_TX_ARWCK_DLY_B1, 0x00,
+ SHU_R0_B1_TXDLY3_TX_ARWCKB_DLY_B1, 0x00);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_txdly0,
+ SHU_R0_B0_TXDLY0_TX_ARDQ0_DLY_B0, 0x10,
+ SHU_R0_B0_TXDLY0_TX_ARDQ1_DLY_B0, 0x10,
+ SHU_R0_B0_TXDLY0_TX_ARDQ2_DLY_B0, 0x10,
+ SHU_R0_B0_TXDLY0_TX_ARDQ3_DLY_B0, 0x10);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_txdly1,
+ SHU_R0_B0_TXDLY1_TX_ARDQ4_DLY_B0, 0x10,
+ SHU_R0_B0_TXDLY1_TX_ARDQ5_DLY_B0, 0x10,
+ SHU_R0_B0_TXDLY1_TX_ARDQ6_DLY_B0, 0x10,
+ SHU_R0_B0_TXDLY1_TX_ARDQ7_DLY_B0, 0x10);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_txdly3,
+ SHU_R0_B0_TXDLY3_TX_ARDQM0_DLY_B0, 0x10,
+ SHU_R0_B0_TXDLY3_TX_ARWCK_DLY_B0, 0x00,
+ SHU_R0_B0_TXDLY3_TX_ARWCKB_DLY_B0, 0x00);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_txdly0,
+ SHU_R0_B1_TXDLY0_TX_ARDQ0_DLY_B1, 0x20,
+ SHU_R0_B1_TXDLY0_TX_ARDQ1_DLY_B1, 0x20,
+ SHU_R0_B1_TXDLY0_TX_ARDQ2_DLY_B1, 0x20,
+ SHU_R0_B1_TXDLY0_TX_ARDQ3_DLY_B1, 0x20);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_txdly1,
+ SHU_R0_B1_TXDLY1_TX_ARDQ4_DLY_B1, 0x20,
+ SHU_R0_B1_TXDLY1_TX_ARDQ5_DLY_B1, 0x20,
+ SHU_R0_B1_TXDLY1_TX_ARDQ6_DLY_B1, 0x20,
+ SHU_R0_B1_TXDLY1_TX_ARDQ7_DLY_B1, 0x20);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_txdly3,
+ SHU_R0_B1_TXDLY3_TX_ARDQM0_DLY_B1, 0x20,
+ SHU_R0_B1_TXDLY3_TX_ARWCK_DLY_B1, 0x00,
+ SHU_R0_B1_TXDLY3_TX_ARWCKB_DLY_B1, 0x00);
+ SET32_BITFIELDS(&ch[0].ao.shu_tx_rankctl,
+ SHU_TX_RANKCTL_TXRANKINCTL_TXDLY, 0x1,
+ SHU_TX_RANKCTL_TXRANKINCTL, 0x1,
+ SHU_TX_RANKCTL_TXRANKINCTL_ROOT, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_ac_derating0,
+ SHU_AC_DERATING0_ACDERATEEN, 0x1,
+ SHU_AC_DERATING0_TRRD_DERATE, 0x2,
+ SHU_AC_DERATING0_TRCD_DERATE, 0x4);
+ SET32_BITFIELDS(&ch[0].ao.shu_ac_derating1,
+ SHU_AC_DERATING1_TRPAB_DERATE, 0x3,
+ SHU_AC_DERATING1_TRP_DERATE, 0x2,
+ SHU_AC_DERATING1_TRAS_DERATE, 0x01,
+ SHU_AC_DERATING1_TRC_DERATE, 0x00);
+ SET32_BITFIELDS(&ch[0].ao.shu_sref_ctrl,
+ SHU_SREF_CTRL_CKEHCMD, 0x3,
+ SHU_SREF_CTRL_SREF_CK_DLY, 0x3);
+ SET32_BITFIELDS(&ch[0].ao.shu_hmr4_dvfs_ctrl0,
+ SHU_HMR4_DVFS_CTRL0_FSPCHG_PRDCNT, 0x32,
+ SHU_HMR4_DVFS_CTRL0_REFRCNT, 0x000);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim_xrt,
+ SHU_ACTIM_XRT_XRTR2R, 0x05,
+ SHU_ACTIM_XRT_XRTR2W, 0x0a,
+ SHU_ACTIM_XRT_XRTW2R, 0x6,
+ SHU_ACTIM_XRT_XRTW2W, 0x09);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim0,
+ SHU_ACTIM0_TWTR, 0x0a,
+ SHU_ACTIM0_TWR, 0x0c,
+ SHU_ACTIM0_TRRD, 0x1,
+ SHU_ACTIM0_TRCD, 0x4,
+ SHU_ACTIM0_CKELCKCNT, 0x3);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim1,
+ SHU_ACTIM1_TRPAB, 0x3,
+ SHU_ACTIM1_TMRWCKEL, 0x7,
+ SHU_ACTIM1_TRP, 0x2,
+ SHU_ACTIM1_TRAS, 0x01,
+ SHU_ACTIM1_TRC, 0x00);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim2,
+ SHU_ACTIM2_TXP, 0x0,
+ SHU_ACTIM2_TMRRI, 0x07,
+ SHU_ACTIM2_TRTP, 0x3,
+ SHU_ACTIM2_TR2W, 0x0a,
+ SHU_ACTIM2_TFAW, 0x00);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim3,
+ SHU_ACTIM3_TRFCPB, 0x1a,
+ SHU_ACTIM3_MANTMRR, 0x8,
+ SHU_ACTIM3_TR2MRR, 0x8,
+ SHU_ACTIM3_TRFC, 0x40,
+ SHU_ACTIM3_TWTR_L, 0x25);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim4,
+ SHU_ACTIM4_TXREFCNT, 0x04e,
+ SHU_ACTIM4_TMRR2MRW, 0x0f,
+ SHU_ACTIM4_TMRR2W, 0x0c,
+ SHU_ACTIM4_TZQCS, 0x10);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim5,
+ SHU_ACTIM5_TR2PD, 0x10,
+ SHU_ACTIM5_TWTPD, 0x0f,
+ SHU_ACTIM5_TPBR2PBR, 0x15,
+ SHU_ACTIM5_TPBR2ACT, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim6,
+ SHU_ACTIM6_TZQLAT2, 0x06,
+ SHU_ACTIM6_TMRD, 0x6,
+ SHU_ACTIM6_TMRW, 0x5,
+ SHU_ACTIM6_TW2MRW, 0x0d,
+ SHU_ACTIM6_TR2MRW, 0x11);
+ SET32_BITFIELDS(&ch[0].ao.shu_ckectrl,
+ SHU_CKECTRL_TPDE_05T, 0x0,
+ SHU_CKECTRL_TPDX_05T, 0x0,
+ SHU_CKECTRL_TPDE, 0x3,
+ SHU_CKECTRL_TPDX, 0x3,
+ SHU_CKECTRL_TCKEPRD, 0x2,
+ SHU_CKECTRL_TCKESRX, 0x3);
+ SET32_BITFIELDS(&ch[0].ao.shu_misc,
+ SHU_MISC_REQQUE_MAXCNT, 0x2,
+ SHU_MISC_DCMDLYREF, 0x7,
+ SHU_MISC_DAREFEN, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_dq8,
+ SHU_B0_DQ8_R_DMRXDVS_UPD_FORCE_CYC_B0, 0x0031,
+ SHU_B0_DQ8_R_DMRXDVS_UPD_FORCE_EN_B0, 0x0,
+ SHU_B0_DQ8_R_DMRANK_RXDLY_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_RMRODTEN_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_RMRX_TOPHY_CG_IG_B0, 0x1,
+ SHU_B0_DQ8_R_DMRXDVS_RDSEL_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMRXDVS_RDSEL_TOG_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMRXDLY_CG_IG_B0, 0x1,
+ SHU_B0_DQ8_R_DMDQSIEN_FLAG_SYNC_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMDQSIEN_FLAG_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMDQSIEN_RDSEL_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMDQSIEN_RDSEL_TOG_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMRANK_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMRANK_CHG_PIPE_CG_IG_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_dq8,
+ SHU_B1_DQ8_R_DMRXDVS_UPD_FORCE_CYC_B1, 0x0031,
+ SHU_B1_DQ8_R_DMRXDVS_UPD_FORCE_EN_B1, 0x0,
+ SHU_B1_DQ8_R_DMRANK_RXDLY_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_RMRODTEN_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_RMRX_TOPHY_CG_IG_B1, 0x1,
+ SHU_B1_DQ8_R_DMRXDVS_RDSEL_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMRXDVS_RDSEL_TOG_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMRXDLY_CG_IG_B1, 0x1,
+ SHU_B1_DQ8_R_DMDQSIEN_FLAG_SYNC_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMDQSIEN_FLAG_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMDQSIEN_RDSEL_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMDQSIEN_RDSEL_TOG_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMRANK_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMRANK_CHG_PIPE_CG_IG_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_dq5,
+ SHU_B0_DQ5_RG_RX_ARDQ_VREF_SEL_B0, 0x0e,
+ SHU_B0_DQ5_RG_RX_ARDQ_VREF_BYPASS_B0, 0x0,
+ SHU_B0_DQ5_RG_ARPI_FB_B0, 0x00,
+ SHU_B0_DQ5_RG_RX_ARDQS0_DQSIEN_DLY_B0, 0x0,
+ SHU_B0_DQ5_RG_RX_ARDQS_DQSIEN_RB_DLY_B0, 0x0,
+ SHU_B0_DQ5_RG_RX_ARDQS0_DVS_DLY_B0, 0x7,
+ SHU_B0_DQ5_RG_RX_ARDQ_FIFO_DQSI_DLY_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_dq5,
+ SHU_B1_DQ5_RG_RX_ARDQ_VREF_SEL_B1, 0x0e,
+ SHU_B1_DQ5_RG_RX_ARDQ_VREF_BYPASS_B1, 0x0,
+ SHU_B1_DQ5_RG_ARPI_FB_B1, 0x00,
+ SHU_B1_DQ5_RG_RX_ARDQS0_DQSIEN_DLY_B1, 0x0,
+ SHU_B1_DQ5_RG_RX_ARDQS_DQSIEN_RB_DLY_B1, 0x0,
+ SHU_B1_DQ5_RG_RX_ARDQS0_DVS_DLY_B1, 0x7,
+ SHU_B1_DQ5_RG_RX_ARDQ_FIFO_DQSI_DLY_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_rxdly0,
+ SHU_R0_B0_RXDLY0_RX_ARDQ0_R_DLY_B0, 0x75,
+ SHU_R0_B0_RXDLY0_RX_ARDQ0_F_DLY_B0, 0x75,
+ SHU_R0_B0_RXDLY0_RX_ARDQ1_R_DLY_B0, 0x75,
+ SHU_R0_B0_RXDLY0_RX_ARDQ1_F_DLY_B0, 0x75);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_rxdly1,
+ SHU_R0_B0_RXDLY1_RX_ARDQ2_R_DLY_B0, 0x75,
+ SHU_R0_B0_RXDLY1_RX_ARDQ2_F_DLY_B0, 0x75,
+ SHU_R0_B0_RXDLY1_RX_ARDQ3_R_DLY_B0, 0x75,
+ SHU_R0_B0_RXDLY1_RX_ARDQ3_F_DLY_B0, 0x75);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_rxdly2,
+ SHU_R0_B0_RXDLY2_RX_ARDQ4_R_DLY_B0, 0x75,
+ SHU_R0_B0_RXDLY2_RX_ARDQ4_F_DLY_B0, 0x75,
+ SHU_R0_B0_RXDLY2_RX_ARDQ5_R_DLY_B0, 0x75,
+ SHU_R0_B0_RXDLY2_RX_ARDQ5_F_DLY_B0, 0x75);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_rxdly3,
+ SHU_R0_B0_RXDLY3_RX_ARDQ6_R_DLY_B0, 0x75,
+ SHU_R0_B0_RXDLY3_RX_ARDQ6_F_DLY_B0, 0x75,
+ SHU_R0_B0_RXDLY3_RX_ARDQ7_R_DLY_B0, 0x75,
+ SHU_R0_B0_RXDLY3_RX_ARDQ7_F_DLY_B0, 0x75);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_rxdly4,
+ SHU_R0_B0_RXDLY4_RX_ARDQM0_R_DLY_B0, 0x75,
+ SHU_R0_B0_RXDLY4_RX_ARDQM0_F_DLY_B0, 0x75);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_rxdly5,
+ SHU_R0_B0_RXDLY5_RX_ARDQS0_R_DLY_B0, 0x17e,
+ SHU_R0_B0_RXDLY5_RX_ARDQS0_F_DLY_B0, 0x17e);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_rxdly0,
+ SHU_R0_B0_RXDLY0_RX_ARDQ0_R_DLY_B0, 0x74,
+ SHU_R0_B0_RXDLY0_RX_ARDQ0_F_DLY_B0, 0x74,
+ SHU_R0_B0_RXDLY0_RX_ARDQ1_R_DLY_B0, 0x74,
+ SHU_R0_B0_RXDLY0_RX_ARDQ1_F_DLY_B0, 0x74);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_rxdly1,
+ SHU_R0_B0_RXDLY1_RX_ARDQ2_R_DLY_B0, 0x74,
+ SHU_R0_B0_RXDLY1_RX_ARDQ2_F_DLY_B0, 0x74,
+ SHU_R0_B0_RXDLY1_RX_ARDQ3_R_DLY_B0, 0x74,
+ SHU_R0_B0_RXDLY1_RX_ARDQ3_F_DLY_B0, 0x74);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_rxdly2,
+ SHU_R0_B0_RXDLY2_RX_ARDQ4_R_DLY_B0, 0x74,
+ SHU_R0_B0_RXDLY2_RX_ARDQ4_F_DLY_B0, 0x74,
+ SHU_R0_B0_RXDLY2_RX_ARDQ5_R_DLY_B0, 0x74,
+ SHU_R0_B0_RXDLY2_RX_ARDQ5_F_DLY_B0, 0x74);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_rxdly3,
+ SHU_R0_B0_RXDLY3_RX_ARDQ6_R_DLY_B0, 0x74,
+ SHU_R0_B0_RXDLY3_RX_ARDQ6_F_DLY_B0, 0x74,
+ SHU_R0_B0_RXDLY3_RX_ARDQ7_R_DLY_B0, 0x74,
+ SHU_R0_B0_RXDLY3_RX_ARDQ7_F_DLY_B0, 0x74);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_rxdly4,
+ SHU_R0_B0_RXDLY4_RX_ARDQM0_R_DLY_B0, 0x74,
+ SHU_R0_B0_RXDLY4_RX_ARDQM0_F_DLY_B0, 0x74);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_rxdly5,
+ SHU_R0_B0_RXDLY5_RX_ARDQS0_R_DLY_B0, 0x17d,
+ SHU_R0_B0_RXDLY5_RX_ARDQS0_F_DLY_B0, 0x17d);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_rxdly0,
+ SHU_R0_B1_RXDLY0_RX_ARDQ0_R_DLY_B1, 0x75,
+ SHU_R0_B1_RXDLY0_RX_ARDQ0_F_DLY_B1, 0x75,
+ SHU_R0_B1_RXDLY0_RX_ARDQ1_R_DLY_B1, 0x75,
+ SHU_R0_B1_RXDLY0_RX_ARDQ1_F_DLY_B1, 0x75);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_rxdly1,
+ SHU_R0_B1_RXDLY1_RX_ARDQ2_R_DLY_B1, 0x75,
+ SHU_R0_B1_RXDLY1_RX_ARDQ2_F_DLY_B1, 0x75,
+ SHU_R0_B1_RXDLY1_RX_ARDQ3_R_DLY_B1, 0x75,
+ SHU_R0_B1_RXDLY1_RX_ARDQ3_F_DLY_B1, 0x75);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_rxdly2,
+ SHU_R0_B1_RXDLY2_RX_ARDQ4_R_DLY_B1, 0x75,
+ SHU_R0_B1_RXDLY2_RX_ARDQ4_F_DLY_B1, 0x75,
+ SHU_R0_B1_RXDLY2_RX_ARDQ5_R_DLY_B1, 0x75,
+ SHU_R0_B1_RXDLY2_RX_ARDQ5_F_DLY_B1, 0x75);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_rxdly3,
+ SHU_R0_B1_RXDLY3_RX_ARDQ6_R_DLY_B1, 0x75,
+ SHU_R0_B1_RXDLY3_RX_ARDQ6_F_DLY_B1, 0x75,
+ SHU_R0_B1_RXDLY3_RX_ARDQ7_R_DLY_B1, 0x75,
+ SHU_R0_B1_RXDLY3_RX_ARDQ7_F_DLY_B1, 0x75);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_rxdly4,
+ SHU_R0_B1_RXDLY4_RX_ARDQM0_R_DLY_B1, 0x75,
+ SHU_R0_B1_RXDLY4_RX_ARDQM0_F_DLY_B1, 0x75);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_rxdly5,
+ SHU_R0_B1_RXDLY5_RX_ARDQS0_R_DLY_B1, 0x17e,
+ SHU_R0_B1_RXDLY5_RX_ARDQS0_F_DLY_B1, 0x17e);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_rxdly0,
+ SHU_R0_B1_RXDLY0_RX_ARDQ0_R_DLY_B1, 0x74,
+ SHU_R0_B1_RXDLY0_RX_ARDQ0_F_DLY_B1, 0x74,
+ SHU_R0_B1_RXDLY0_RX_ARDQ1_R_DLY_B1, 0x74,
+ SHU_R0_B1_RXDLY0_RX_ARDQ1_F_DLY_B1, 0x74);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_rxdly1,
+ SHU_R0_B1_RXDLY1_RX_ARDQ2_R_DLY_B1, 0x74,
+ SHU_R0_B1_RXDLY1_RX_ARDQ2_F_DLY_B1, 0x74,
+ SHU_R0_B1_RXDLY1_RX_ARDQ3_R_DLY_B1, 0x74,
+ SHU_R0_B1_RXDLY1_RX_ARDQ3_F_DLY_B1, 0x74);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_rxdly2,
+ SHU_R0_B1_RXDLY2_RX_ARDQ4_R_DLY_B1, 0x74,
+ SHU_R0_B1_RXDLY2_RX_ARDQ4_F_DLY_B1, 0x74,
+ SHU_R0_B1_RXDLY2_RX_ARDQ5_R_DLY_B1, 0x74,
+ SHU_R0_B1_RXDLY2_RX_ARDQ5_F_DLY_B1, 0x74);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_rxdly3,
+ SHU_R0_B1_RXDLY3_RX_ARDQ6_R_DLY_B1, 0x74,
+ SHU_R0_B1_RXDLY3_RX_ARDQ6_F_DLY_B1, 0x74,
+ SHU_R0_B1_RXDLY3_RX_ARDQ7_R_DLY_B1, 0x74,
+ SHU_R0_B1_RXDLY3_RX_ARDQ7_F_DLY_B1, 0x74);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_rxdly4,
+ SHU_R0_B1_RXDLY4_RX_ARDQM0_R_DLY_B1, 0x74,
+ SHU_R0_B1_RXDLY4_RX_ARDQM0_F_DLY_B1, 0x74);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_rxdly5,
+ SHU_R0_B1_RXDLY5_RX_ARDQS0_R_DLY_B1, 0x17d,
+ SHU_R0_B1_RXDLY5_RX_ARDQS0_F_DLY_B1, 0x17d);
+ SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[0].b0_dq9,
+ B0_DQ9_RG_RX_ARDQ_STBEN_RESETB_B0, 0x1,
+ B0_DQ9_RG_RX_ARDQS0_STBEN_RESETB_B0, 0x0,
+ B0_DQ9_RG_RX_ARDQS0_DQSIENMODE_B0, 0x0,
+ B0_DQ9_R_DMRXDVS_R_F_DLY_RK_OPT_B0, 0x1,
+ B0_DQ9_R_DMRXFIFO_STBENCMP_EN_B0, 0x0,
+ B0_DQ9_R_IN_GATE_EN_LOW_OPT_B0, 0x00,
+ B0_DQ9_R_DMDQSIEN_VALID_LAT_B0, 0x0,
+ B0_DQ9_R_DMDQSIEN_RDSEL_LAT_B0, 0x0,
+ B0_DQ9_R_DMRXDVS_VALID_LAT_B0, 0x0,
+ B0_DQ9_R_DMRXDVS_RDSEL_LAT_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[1].b0_dq9,
+ B1_DQ9_RG_RX_ARDQ_STBEN_RESETB_B1, 0x1,
+ B1_DQ9_RG_RX_ARDQS0_STBEN_RESETB_B1, 0x0,
+ B1_DQ9_RG_RX_ARDQS0_DQSIENMODE_B1, 0x0,
+ B1_DQ9_R_DMRXDVS_R_F_DLY_RK_OPT_B1, 0x1,
+ B1_DQ9_R_DMRXFIFO_STBENCMP_EN_B1, 0x0,
+ B1_DQ9_R_IN_GATE_EN_LOW_OPT_B1, 0x00,
+ B1_DQ9_R_DMDQSIEN_VALID_LAT_B1, 0x0,
+ B1_DQ9_R_DMDQSIEN_RDSEL_LAT_B1, 0x0,
+ B1_DQ9_R_DMRXDVS_VALID_LAT_B1, 0x0,
+ B1_DQ9_R_DMRXDVS_RDSEL_LAT_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[0].b0_dq4,
+ B0_DQ4_RG_RX_ARDQS_EYE_R_DLY_B0, 0x03,
+ B0_DQ4_RG_RX_ARDQS_EYE_F_DLY_B0, 0x03,
+ B0_DQ4_RG_RX_ARDQ_EYE_R_DLY_B0, 0x35,
+ B0_DQ4_RG_RX_ARDQ_EYE_F_DLY_B0, 0x35);
+ SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[1].b0_dq4,
+ B1_DQ4_RG_RX_ARDQS_EYE_R_DLY_B1, 0x03,
+ B1_DQ4_RG_RX_ARDQS_EYE_F_DLY_B1, 0x03,
+ B1_DQ4_RG_RX_ARDQ_EYE_R_DLY_B1, 0x35,
+ B1_DQ4_RG_RX_ARDQ_EYE_F_DLY_B1, 0x35);
+ SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[0].b0_dq5,
+ B0_DQ5_RG_RX_ARDQ_EYE_VREF_SEL_B0, 0x0e,
+ B0_DQ5_RG_RX_ARDQ_VREF_EN_B0, 0x0,
+ B0_DQ5_RG_RX_ARDQ_EYE_VREF_EN_B0, 0x0,
+ B0_DQ5_RG_RX_ARDQ_EYE_SEL_B0, 0x0,
+ B0_DQ5_RG_RX_ARDQ_EYE_EN_B0, 0x0,
+ B0_DQ5_RG_RX_ARDQ_EYE_STBEN_RESETB_B0, 0x1,
+ B0_DQ5_RG_RX_ARDQS0_DVS_EN_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[1].b0_dq5,
+ B1_DQ5_RG_RX_ARDQ_EYE_VREF_SEL_B1, 0x0e,
+ B1_DQ5_RG_RX_ARDQ_VREF_EN_B1, 0x0,
+ B1_DQ5_RG_RX_ARDQ_EYE_VREF_EN_B1, 0x0,
+ B1_DQ5_RG_RX_ARDQ_EYE_SEL_B1, 0x0,
+ B1_DQ5_RG_RX_ARDQ_EYE_EN_B1, 0x0,
+ B1_DQ5_RG_RX_ARDQ_EYE_STBEN_RESETB_B1, 0x1,
+ B1_DQ5_RG_RX_ARDQS0_DVS_EN_B1, 0x0);
+}
+
+static void sv_algorithm_assistance_lp4_1600(void)
+{
+ SET32_BITFIELDS(&ch[0].phy_ao.shu_misc_rdsel_track,
+ SHU_MISC_RDSEL_TRACK_DMDATLAT_I, 0x09,
+ SHU_MISC_RDSEL_TRACK_RDSEL_HWSAVE_MSK, 0x1,
+ SHU_MISC_RDSEL_TRACK_RDSEL_TRACK_EN, 0x0,
+ SHU_MISC_RDSEL_TRACK_SHU_GW_THRD_NEG, 0xfeb,
+ SHU_MISC_RDSEL_TRACK_SHU_GW_THRD_POS, 0x015);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_rdat,
+ MISC_SHU_RDAT_DATLAT, 0x09,
+ MISC_SHU_RDAT_DATLAT_DSEL, 0x09,
+ MISC_SHU_RDAT_DATLAT_DSEL_PHY, 0x09);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_phy_rx_ctrl,
+ MISC_SHU_PHY_RX_CTRL_RANK_RXDLY_UPDLAT_EN, 0x1,
+ MISC_SHU_PHY_RX_CTRL_RANK_RXDLY_UPD_OFFSET, 0x2,
+ MISC_SHU_PHY_RX_CTRL_RX_IN_GATE_EN_PRE_OFFSET, 0x2,
+ MISC_SHU_PHY_RX_CTRL_RX_IN_GATE_EN_HEAD, 0x0,
+ MISC_SHU_PHY_RX_CTRL_RX_IN_GATE_EN_TAIL, 0x1,
+ MISC_SHU_PHY_RX_CTRL_RX_IN_BUFF_EN_HEAD, 0x0,
+ MISC_SHU_PHY_RX_CTRL_RX_IN_BUFF_EN_TAIL, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_rankctl,
+ MISC_SHU_RANKCTL_RANKINCTL_RXDLY, 0x0,
+ MISC_SHU_RANKCTL_RANK_RXDLY_OPT, 0x1,
+ MISC_SHU_RANKCTL_RANKSEL_SELPH_FRUN, 0x1,
+ MISC_SHU_RANKCTL_RANKINCTL_STB, 0x1,
+ MISC_SHU_RANKCTL_RANKINCTL, 0x0,
+ MISC_SHU_RANKCTL_RANKINCTL_ROOT1, 0x0,
+ MISC_SHU_RANKCTL_RANKINCTL_PHY, 0x3);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_rank_sel_lat,
+ MISC_SHU_RANK_SEL_LAT_RANK_SEL_LAT_B0, 0x2,
+ MISC_SHU_RANK_SEL_LAT_RANK_SEL_LAT_B1, 0x2,
+ MISC_SHU_RANK_SEL_LAT_RANK_SEL_LAT_CA, 0x2);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_rk[0].misc_shu_rk_dqsctl,
+ MISC_SHU_RK_DQSCTL_DQSINCTL, 0x2);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_rk[1].misc_shu_rk_dqsctl,
+ MISC_SHU_RK_DQSCTL_DQSINCTL, 0x2);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_dqsien_mck_ui_dly,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P0_B0, 0x9,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P1_B0, 0xd,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P0_B0, 0x0,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P1_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_rk_b0_dqsien_pi_dly,
+ SHU_RK_B0_DQSIEN_PI_DLY_DQSIEN_PI_B0, 0x0b);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_dqsien_mck_ui_dly,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P0_B0, 0xc,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P1_B0, 0x0,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P0_B0, 0x0,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P1_B0, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_rk_b0_dqsien_pi_dly,
+ SHU_RK_B0_DQSIEN_PI_DLY_DQSIEN_PI_B0, 0x11);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_dqsien_mck_ui_dly,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P0_B1, 0x9,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P1_B1, 0xd,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P0_B1, 0x0,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P1_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_rk_b0_dqsien_pi_dly,
+ SHU_RK_B1_DQSIEN_PI_DLY_DQSIEN_PI_B1, 0x0b);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_dqsien_mck_ui_dly,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P0_B1, 0xc,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P1_B1, 0x0,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P0_B1, 0x0,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P1_B1, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_rk_b0_dqsien_pi_dly,
+ SHU_RK_B1_DQSIEN_PI_DLY_DQSIEN_PI_B1, 0x11);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_odtctrl,
+ MISC_SHU_ODTCTRL_RODTEN, 0x1,
+ MISC_SHU_ODTCTRL_RODTENSTB_SELPH_CG_IG, 0x0,
+ MISC_SHU_ODTCTRL_RODT_LAT, 0x1,
+ MISC_SHU_ODTCTRL_RODTEN_SELPH_FRUN, 0x0,
+ MISC_SHU_ODTCTRL_RODTDLY_LAT_OPT, 0x0,
+ MISC_SHU_ODTCTRL_FIXRODT, 0x0,
+ MISC_SHU_ODTCTRL_RODTEN_OPT, 0x1,
+ MISC_SHU_ODTCTRL_RODTE2, 0x1,
+ MISC_SHU_ODTCTRL_RODTE, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_dq7,
+ SHU_B0_DQ7_R_DMRANKRXDVS_B0, 0x0,
+ SHU_B0_DQ7_R_DMDQMDBI_EYE_SHU_B0, 0x0,
+ SHU_B0_DQ7_R_DMDQMDBI_SHU_B0, 0x0,
+ SHU_B0_DQ7_R_DMRXDVS_DQM_FLAGSEL_B0, 0x0,
+ SHU_B0_DQ7_R_DMRXDVS_PBYTE_FLAG_OPT_B0, 0x0,
+ SHU_B0_DQ7_R_DMRXDVS_PBYTE_DQM_EN_B0, 0x0,
+ SHU_B0_DQ7_R_DMRXTRACK_DQM_EN_B0, 0x0,
+ SHU_B0_DQ7_R_DMRODTEN_B0, 0x1,
+ SHU_B0_DQ7_R_DMARPI_CG_FB2DLL_DCM_EN_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_dq7,
+ SHU_B0_DQ7_R_DMTX_ARPI_CG_DQ_NEW_B0, 0x0,
+ SHU_B0_DQ7_R_DMTX_ARPI_CG_DQS_NEW_B0, 0x0,
+ SHU_B0_DQ7_R_DMTX_ARPI_CG_DQM_NEW_B0, 0x0,
+ SHU_B0_DQ7_R_LP4Y_SDN_MODE_DQS0, 0x0,
+ SHU_B0_DQ7_R_DMRXRANK_DQ_EN_B0, 0x1,
+ SHU_B0_DQ7_R_DMRXRANK_DQ_LAT_B0, 0x1,
+ SHU_B0_DQ7_R_DMRXRANK_DQS_EN_B0, 0x1,
+ SHU_B0_DQ7_R_DMRXRANK_DQS_LAT_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_dq7,
+ SHU_B1_DQ7_R_DMRANKRXDVS_B1, 0x0,
+ SHU_B1_DQ7_R_DMDQMDBI_EYE_SHU_B1, 0x0,
+ SHU_B1_DQ7_R_DMDQMDBI_SHU_B1, 0x0,
+ SHU_B1_DQ7_R_DMRXDVS_DQM_FLAGSEL_B1, 0x0,
+ SHU_B1_DQ7_R_DMRXDVS_PBYTE_FLAG_OPT_B1, 0x0,
+ SHU_B1_DQ7_R_DMRXDVS_PBYTE_DQM_EN_B1, 0x0,
+ SHU_B1_DQ7_R_DMRXTRACK_DQM_EN_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_dq7,
+ SHU_B1_DQ7_R_DMRODTEN_B1, 0x1,
+ SHU_B1_DQ7_R_DMARPI_CG_FB2DLL_DCM_EN_B1, 0x0,
+ SHU_B1_DQ7_R_DMTX_ARPI_CG_DQ_NEW_B1, 0x0,
+ SHU_B1_DQ7_R_DMTX_ARPI_CG_DQS_NEW_B1, 0x0,
+ SHU_B1_DQ7_R_DMTX_ARPI_CG_DQM_NEW_B1, 0x0,
+ SHU_B1_DQ7_R_LP4Y_SDN_MODE_DQS1, 0x0,
+ SHU_B1_DQ7_R_DMRXRANK_DQ_EN_B1, 0x1,
+ SHU_B1_DQ7_R_DMRXRANK_DQ_LAT_B1, 0x1,
+ SHU_B1_DQ7_R_DMRXRANK_DQS_EN_B1, 0x1,
+ SHU_B1_DQ7_R_DMRXRANK_DQS_LAT_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.shu_misc_rx_pipe_ctrl,
+ SHU_MISC_RX_PIPE_CTRL_RX_PIPE_BYPASS_EN, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_rk_b0_rodten_mck_ui_dly,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_UI_P0_B0, 0x4,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_UI_P1_B0, 0x4,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_MCK_P0_B0, 0x0,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_MCK_P1_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_rk_b0_rodten_mck_ui_dly,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_UI_P0_B0, 0x7,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_UI_P1_B0, 0x7,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_MCK_P0_B0, 0x0,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_MCK_P1_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_rk_b0_rodten_mck_ui_dly,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_UI_P0_B1, 0x4,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_UI_P1_B1, 0x4,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_MCK_P0_B1, 0x0,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_MCK_P1_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_rk_b0_rodten_mck_ui_dly,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_UI_P0_B1, 0x7,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_UI_P1_B1, 0x7,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_MCK_P0_B1, 0x0,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_MCK_P1_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_rx_cg_set0,
+ SHU_RX_CG_SET0_DLE_LAST_EXTEND3, 0x0,
+ SHU_RX_CG_SET0_READ_START_EXTEND3, 0x0,
+ SHU_RX_CG_SET0_DLE_LAST_EXTEND2, 0x0,
+ SHU_RX_CG_SET0_READ_START_EXTEND2, 0x0,
+ SHU_RX_CG_SET0_DLE_LAST_EXTEND1, 0x1,
+ SHU_RX_CG_SET0_READ_START_EXTEND1, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.shu_misc_rank_sel_stb,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_EN, 0x1,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_EN_B23, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_SERMODE, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_TRACK, 0x1,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_RXDLY_TRACK, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_PHASE_EN, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_PHSINCTL, 0x1,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_UI_PLUS, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_MCK_PLUS, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_UI_MINUS, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_MCK_MINUS, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_rk[0].misc_shu_rk_dqscal,
+ MISC_SHU_RK_DQSCAL_DQSIENLLMT, 0x60,
+ MISC_SHU_RK_DQSCAL_DQSIENLLMTEN, 0x1,
+ MISC_SHU_RK_DQSCAL_DQSIENHLMT, 0x3f,
+ MISC_SHU_RK_DQSCAL_DQSIENHLMTEN, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_rk[1].misc_shu_rk_dqscal,
+ MISC_SHU_RK_DQSCAL_DQSIENLLMT, 0x60,
+ MISC_SHU_RK_DQSCAL_DQSIENLLMTEN, 0x1,
+ MISC_SHU_RK_DQSCAL_DQSIENHLMT, 0x3f,
+ MISC_SHU_RK_DQSCAL_DQSIENHLMTEN, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_ini_uipi,
+ SHU_R0_B0_INI_UIPI_CURR_INI_PI_B0, 0x0b,
+ SHU_R0_B0_INI_UIPI_CURR_INI_UI_B0, 0x09);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_ini_uipi,
+ SHU_R0_B1_INI_UIPI_CURR_INI_PI_B1, 0x0b,
+ SHU_R0_B1_INI_UIPI_CURR_INI_UI_B1, 0x09);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_ini_uipi,
+ SHU_R0_B0_INI_UIPI_CURR_INI_PI_B0, 0x11,
+ SHU_R0_B0_INI_UIPI_CURR_INI_UI_B0, 0x0c);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_ini_uipi,
+ SHU_R0_B1_INI_UIPI_CURR_INI_PI_B1, 0x11,
+ SHU_R0_B1_INI_UIPI_CURR_INI_UI_B1, 0x0c);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_next_ini_uipi,
+ SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_PI_B0, 0x0b,
+ SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_UI_B0, 0x09,
+ SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_UI_P1_B0, 0x0d);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_next_ini_uipi,
+ SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_PI_B1, 0x0b,
+ SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_UI_B1, 0x09,
+ SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_UI_P1_B1, 0x0d);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_next_ini_uipi,
+ SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_PI_B0, 0x11,
+ SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_UI_B0, 0x0c,
+ SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_UI_P1_B0, 0x10);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_next_ini_uipi,
+ SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_PI_B1, 0x11,
+ SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_UI_B1, 0x0c,
+ SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_UI_P1_B1, 0x10);
+ SET32_BITFIELDS(&ch[0].phy_ao.ca_rk[0].shu_r0_ca_cmd0,
+ SHU_R0_CA_CMD0_RG_RX_ARCLK_R_DLY_DUTY, 0x0,
+ SHU_R0_CA_CMD0_RG_RX_ARCLK_F_DLY_DUTY, 0x0,
+ SHU_R0_CA_CMD0_RG_ARPI_CS, 0x00,
+ SHU_R0_CA_CMD0_RG_ARPI_CMD, 0x20,
+ SHU_R0_CA_CMD0_RG_ARPI_CLK, 0x00,
+ SHU_R0_CA_CMD0_DA_ARPI_DDR400_0D5UI_RK0_CA, 0x0,
+ SHU_R0_CA_CMD0_DA_RX_ARDQSIEN_0D5UI_RK0_CA, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_dq0,
+ SHU_R0_B0_DQ0_RG_RX_ARDQS0_R_DLY_DUTY, 0x0,
+ SHU_R0_B0_DQ0_RG_RX_ARDQS0_F_DLY_DUTY, 0x0,
+ SHU_R0_B0_DQ0_SW_ARPI_DQ_B0, 0x19,
+ SHU_R0_B0_DQ0_SW_ARPI_DQM_B0, 0x19,
+ SHU_R0_B0_DQ0_ARPI_PBYTE_B0, 0x00,
+ SHU_R0_B0_DQ0_DA_ARPI_DDR400_0D5UI_RK0_B0, 0x0,
+ SHU_R0_B0_DQ0_DA_RX_ARDQSIEN_0D5UI_RK0_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_dq0,
+ SHU_R0_B1_DQ0_RG_RX_ARDQS1_R_DLY_DUTY, 0x0,
+ SHU_R0_B1_DQ0_RG_RX_ARDQS1_F_DLY_DUTY, 0x0,
+ SHU_R0_B1_DQ0_SW_ARPI_DQ_B1, 0x1f,
+ SHU_R0_B1_DQ0_SW_ARPI_DQM_B1, 0x1f,
+ SHU_R0_B1_DQ0_ARPI_PBYTE_B1, 0x00,
+ SHU_R0_B1_DQ0_DA_ARPI_DDR400_0D5UI_RK0_B1, 0x0,
+ SHU_R0_B1_DQ0_DA_RX_ARDQSIEN_0D5UI_RK0_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.ca_rk[1].shu_r0_ca_cmd0,
+ SHU_R0_CA_CMD0_RG_RX_ARCLK_R_DLY_DUTY, 0x0,
+ SHU_R0_CA_CMD0_RG_RX_ARCLK_F_DLY_DUTY, 0x0,
+ SHU_R0_CA_CMD0_RG_ARPI_CS, 0x00,
+ SHU_R0_CA_CMD0_RG_ARPI_CMD, 0x20,
+ SHU_R0_CA_CMD0_RG_ARPI_CLK, 0x00,
+ SHU_R0_CA_CMD0_DA_ARPI_DDR400_0D5UI_RK0_CA, 0x0,
+ SHU_R0_CA_CMD0_DA_RX_ARDQSIEN_0D5UI_RK0_CA, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_dq0,
+ SHU_R0_B0_DQ0_RG_RX_ARDQS0_R_DLY_DUTY, 0x0,
+ SHU_R0_B0_DQ0_RG_RX_ARDQS0_F_DLY_DUTY, 0x0,
+ SHU_R0_B0_DQ0_SW_ARPI_DQ_B0, 0x13,
+ SHU_R0_B0_DQ0_SW_ARPI_DQM_B0, 0x13,
+ SHU_R0_B0_DQ0_ARPI_PBYTE_B0, 0x00,
+ SHU_R0_B0_DQ0_DA_ARPI_DDR400_0D5UI_RK0_B0, 0x0,
+ SHU_R0_B0_DQ0_DA_RX_ARDQSIEN_0D5UI_RK0_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_dq0,
+ SHU_R0_B1_DQ0_RG_RX_ARDQS1_R_DLY_DUTY, 0x0,
+ SHU_R0_B1_DQ0_RG_RX_ARDQS1_F_DLY_DUTY, 0x0,
+ SHU_R0_B1_DQ0_SW_ARPI_DQ_B1, 0x12,
+ SHU_R0_B1_DQ0_SW_ARPI_DQM_B1, 0x12,
+ SHU_R0_B1_DQ0_ARPI_PBYTE_B1, 0x00,
+ SHU_R0_B1_DQ0_DA_ARPI_DDR400_0D5UI_RK0_B1, 0x0,
+ SHU_R0_B1_DQ0_DA_RX_ARDQSIEN_0D5UI_RK0_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_dcm_ctrl0,
+ SHU_DCM_CTRL0_DDRPHY_CLK_EN_OPT, 0x1,
+ SHU_DCM_CTRL0_DPHY_CMD_CLKEN_EXTCNT, 0x3,
+ SHU_DCM_CTRL0_DDRPHY_CLK_DYN_GATING_SEL, 0x5,
+ SHU_DCM_CTRL0_APHYPI_CKCGL_CNT, 0x2,
+ SHU_DCM_CTRL0_APHYPI_CKCGH_CNT, 0x4,
+ SHU_DCM_CTRL0_FASTWAKE2, 0x0,
+ SHU_DCM_CTRL0_FASTWAKE, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_aphy_tx_picg_ctrl,
+ SHU_APHY_TX_PICG_CTRL_TX_PICG_CNT, 0x3,
+ SHU_APHY_TX_PICG_CTRL_TX_DQS_SEL_P1, 0x1,
+ SHU_APHY_TX_PICG_CTRL_TX_DQS_SEL_P0, 0x0,
+ SHU_APHY_TX_PICG_CTRL_DPHY_TX_DCM_EXTCNT, 0x2,
+ SHU_APHY_TX_PICG_CTRL_DDRPHY_CLK_EN_COMB_TX_OPT, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_aphy_tx_picg_ctrl,
+ SHURK_APHY_TX_PICG_CTRL_TX_DQ_RK_SEL_P1, 0x1,
+ SHURK_APHY_TX_PICG_CTRL_TX_DQ_RK_SEL_P0, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_aphy_tx_picg_ctrl,
+ SHURK_APHY_TX_PICG_CTRL_TX_DQ_RK_SEL_P1, 0x1,
+ SHURK_APHY_TX_PICG_CTRL_TX_DQ_RK_SEL_P0, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_new_xrw2w_ctrl,
+ SHU_NEW_XRW2W_CTRL_TX_PI_UPDCTL_B0, 0x0,
+ SHU_NEW_XRW2W_CTRL_TX_PI_UPDCTL_B1, 0x0,
+ SHU_NEW_XRW2W_CTRL_TXPI_UPD_MODE, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_selph_dqs0,
+ SHU_SELPH_DQS0_TXDLY_DQS0, 0x2,
+ SHU_SELPH_DQS0_TXDLY_DQS1, 0x2,
+ SHU_SELPH_DQS0_TXDLY_DQS2, 0x1,
+ SHU_SELPH_DQS0_TXDLY_DQS3, 0x1,
+ SHU_SELPH_DQS0_TXDLY_OEN_DQS0, 0x1,
+ SHU_SELPH_DQS0_TXDLY_OEN_DQS1, 0x1,
+ SHU_SELPH_DQS0_TXDLY_OEN_DQS2, 0x1,
+ SHU_SELPH_DQS0_TXDLY_OEN_DQS3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_selph_dqs1,
+ SHU_SELPH_DQS1_DLY_DQS0, 0x1,
+ SHU_SELPH_DQS1_DLY_DQS1, 0x1,
+ SHU_SELPH_DQS1_DLY_DQS2, 0x1,
+ SHU_SELPH_DQS1_DLY_DQS3, 0x1,
+ SHU_SELPH_DQS1_DLY_OEN_DQS0, 0x6,
+ SHU_SELPH_DQS1_DLY_OEN_DQS1, 0x6,
+ SHU_SELPH_DQS1_DLY_OEN_DQS2, 0x1,
+ SHU_SELPH_DQS1_DLY_OEN_DQS3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_selph_dq0,
+ SHURK_SELPH_DQ0_TXDLY_DQ0, 0x2,
+ SHURK_SELPH_DQ0_TXDLY_DQ1, 0x2,
+ SHURK_SELPH_DQ0_TXDLY_DQ2, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_DQ3, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ0, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ1, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ2, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_selph_dq1,
+ SHURK_SELPH_DQ1_TXDLY_DQM0, 0x2,
+ SHURK_SELPH_DQ1_TXDLY_DQM1, 0x2,
+ SHURK_SELPH_DQ1_TXDLY_DQM2, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_DQM3, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM0, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM1, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM2, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_selph_dq2,
+ SHURK_SELPH_DQ2_DLY_DQ0, 0x1,
+ SHURK_SELPH_DQ2_DLY_DQ1, 0x1,
+ SHURK_SELPH_DQ2_DLY_DQ2, 0x1,
+ SHURK_SELPH_DQ2_DLY_DQ3, 0x1,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ0, 0x6,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ1, 0x6,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ2, 0x1,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_selph_dq3,
+ SHURK_SELPH_DQ3_DLY_DQM0, 0x1,
+ SHURK_SELPH_DQ3_DLY_DQM1, 0x1,
+ SHURK_SELPH_DQ3_DLY_DQM2, 0x1,
+ SHURK_SELPH_DQ3_DLY_DQM3, 0x1,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM0, 0x6,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM1, 0x6,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM2, 0x1,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_selph_dq0,
+ SHURK_SELPH_DQ0_TXDLY_DQ0, 0x2,
+ SHURK_SELPH_DQ0_TXDLY_DQ1, 0x2,
+ SHURK_SELPH_DQ0_TXDLY_DQ2, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_DQ3, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ0, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ1, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ2, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_selph_dq1,
+ SHURK_SELPH_DQ1_TXDLY_DQM0, 0x2,
+ SHURK_SELPH_DQ1_TXDLY_DQM1, 0x2,
+ SHURK_SELPH_DQ1_TXDLY_DQM2, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_DQM3, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM0, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM1, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM2, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_selph_dq2,
+ SHURK_SELPH_DQ2_DLY_DQ0, 0x2,
+ SHURK_SELPH_DQ2_DLY_DQ1, 0x2,
+ SHURK_SELPH_DQ2_DLY_DQ2, 0x1,
+ SHURK_SELPH_DQ2_DLY_DQ3, 0x1,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ0, 0x7,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ1, 0x7,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ2, 0x1,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_selph_dq3,
+ SHURK_SELPH_DQ3_DLY_DQM0, 0x2,
+ SHURK_SELPH_DQ3_DLY_DQM1, 0x2,
+ SHURK_SELPH_DQ3_DLY_DQM2, 0x1,
+ SHURK_SELPH_DQ3_DLY_DQM3, 0x1,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM0, 0x7,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM1, 0x7,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM2, 0x1,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_dqs2dq_cal1,
+ SHURK_DQS2DQ_CAL1_BOOT_ORIG_UI_RK0_DQ0, 0x019,
+ SHURK_DQS2DQ_CAL1_BOOT_ORIG_UI_RK0_DQ1, 0x01f);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_dqs2dq_cal2,
+ SHURK_DQS2DQ_CAL2_BOOT_TARG_UI_RK0_DQ0, 0x019,
+ SHURK_DQS2DQ_CAL2_BOOT_TARG_UI_RK0_DQ1, 0x01f);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_dqs2dq_cal5,
+ SHURK_DQS2DQ_CAL5_BOOT_TARG_UI_RK0_DQM0, 0x019,
+ SHURK_DQS2DQ_CAL5_BOOT_TARG_UI_RK0_DQM1, 0x01f);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_dqs2dq_cal1,
+ SHURK_DQS2DQ_CAL1_BOOT_ORIG_UI_RK0_DQ0, 0x013,
+ SHURK_DQS2DQ_CAL1_BOOT_ORIG_UI_RK0_DQ1, 0x012);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_dqs2dq_cal2,
+ SHURK_DQS2DQ_CAL2_BOOT_TARG_UI_RK0_DQ0, 0x013,
+ SHURK_DQS2DQ_CAL2_BOOT_TARG_UI_RK0_DQ1, 0x012);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_dqs2dq_cal5,
+ SHURK_DQS2DQ_CAL5_BOOT_TARG_UI_RK0_DQM0, 0x013,
+ SHURK_DQS2DQ_CAL5_BOOT_TARG_UI_RK0_DQM1, 0x012);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_pi,
+ SHURK_PI_RK0_ARPI_DQ_B1, 0x1f,
+ SHURK_PI_RK0_ARPI_DQ_B0, 0x19,
+ SHURK_PI_RK0_ARPI_DQM_B1, 0x1f,
+ SHURK_PI_RK0_ARPI_DQM_B0, 0x19);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_pi,
+ SHURK_PI_RK0_ARPI_DQ_B1, 0x12,
+ SHURK_PI_RK0_ARPI_DQ_B0, 0x13,
+ SHURK_PI_RK0_ARPI_DQM_B1, 0x12,
+ SHURK_PI_RK0_ARPI_DQM_B0, 0x13);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_txdly0,
+ SHU_R0_B0_TXDLY0_TX_ARDQ0_DLY_B0, 0x3c,
+ SHU_R0_B0_TXDLY0_TX_ARDQ1_DLY_B0, 0x3c,
+ SHU_R0_B0_TXDLY0_TX_ARDQ2_DLY_B0, 0x3c,
+ SHU_R0_B0_TXDLY0_TX_ARDQ3_DLY_B0, 0x3c);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_txdly1,
+ SHU_R0_B0_TXDLY1_TX_ARDQ4_DLY_B0, 0x3c,
+ SHU_R0_B0_TXDLY1_TX_ARDQ5_DLY_B0, 0x3c,
+ SHU_R0_B0_TXDLY1_TX_ARDQ6_DLY_B0, 0x3c,
+ SHU_R0_B0_TXDLY1_TX_ARDQ7_DLY_B0, 0x3c);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_txdly3,
+ SHU_R0_B0_TXDLY3_TX_ARDQM0_DLY_B0, 0x3c,
+ SHU_R0_B0_TXDLY3_TX_ARWCK_DLY_B0, 0x00,
+ SHU_R0_B0_TXDLY3_TX_ARWCKB_DLY_B0, 0x00);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_txdly0,
+ SHU_R0_B1_TXDLY0_TX_ARDQ0_DLY_B1, 0x08,
+ SHU_R0_B1_TXDLY0_TX_ARDQ1_DLY_B1, 0x08,
+ SHU_R0_B1_TXDLY0_TX_ARDQ2_DLY_B1, 0x08,
+ SHU_R0_B1_TXDLY0_TX_ARDQ3_DLY_B1, 0x08);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_txdly1,
+ SHU_R0_B1_TXDLY1_TX_ARDQ4_DLY_B1, 0x08,
+ SHU_R0_B1_TXDLY1_TX_ARDQ5_DLY_B1, 0x08,
+ SHU_R0_B1_TXDLY1_TX_ARDQ6_DLY_B1, 0x08,
+ SHU_R0_B1_TXDLY1_TX_ARDQ7_DLY_B1, 0x08);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_txdly3,
+ SHU_R0_B1_TXDLY3_TX_ARDQM0_DLY_B1, 0x08,
+ SHU_R0_B1_TXDLY3_TX_ARWCK_DLY_B1, 0x00,
+ SHU_R0_B1_TXDLY3_TX_ARWCKB_DLY_B1, 0x00);
+ SET32_BITFIELDS(&ch[0].ao.shu_ac_derating0,
+ SHU_AC_DERATING0_ACDERATEEN, 0x0,
+ SHU_AC_DERATING0_TRRD_DERATE, 0x1,
+ SHU_AC_DERATING0_TRCD_DERATE, 0x4);
+ SET32_BITFIELDS(&ch[0].ao.shu_ac_derating1,
+ SHU_AC_DERATING1_TRPAB_DERATE, 0x3,
+ SHU_AC_DERATING1_TRP_DERATE, 0x2,
+ SHU_AC_DERATING1_TRAS_DERATE, 0x00,
+ SHU_AC_DERATING1_TRC_DERATE, 0x00);
+ SET32_BITFIELDS(&ch[0].ao.shu_ac_derating_05t,
+ SHU_AC_DERATING_05T_TRC_05T_DERATE, 0x0,
+ SHU_AC_DERATING_05T_TRCD_05T_DERATE, 0x0,
+ SHU_AC_DERATING_05T_TRP_05T_DERATE, 0x1,
+ SHU_AC_DERATING_05T_TRPAB_05T_DERATE, 0x1,
+ SHU_AC_DERATING_05T_TRAS_05T_DERATE, 0x1,
+ SHU_AC_DERATING_05T_TRRD_05T_DERATE, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_sref_ctrl,
+ SHU_SREF_CTRL_CKEHCMD, 0x3,
+ SHU_SREF_CTRL_SREF_CK_DLY, 0x3);
+ SET32_BITFIELDS(&ch[0].ao.shu_hmr4_dvfs_ctrl0,
+ SHU_HMR4_DVFS_CTRL0_FSPCHG_PRDCNT, 0x32,
+ SHU_HMR4_DVFS_CTRL0_REFRCNT, 0x000);
+ SET32_BITFIELDS(&ch[0].ao.shu_ac_time_05t,
+ SHU_AC_TIME_05T_TRC_05T, 0x0,
+ SHU_AC_TIME_05T_TRFCPB_05T, 0x0,
+ SHU_AC_TIME_05T_TRFC_05T, 0x0,
+ SHU_AC_TIME_05T_TPBR2PBR_05T, 0x0,
+ SHU_AC_TIME_05T_TXP_05T, 0x0,
+ SHU_AC_TIME_05T_TRTP_05T, 0x1,
+ SHU_AC_TIME_05T_TRCD_05T, 0x0,
+ SHU_AC_TIME_05T_TRP_05T, 0x1,
+ SHU_AC_TIME_05T_TRPAB_05T, 0x0,
+ SHU_AC_TIME_05T_TRAS_05T, 0x0,
+ SHU_AC_TIME_05T_TWR_M05T, 0x1,
+ SHU_AC_TIME_05T_TRRD_05T, 0x0,
+ SHU_AC_TIME_05T_TFAW_05T, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_ac_time_05t,
+ SHU_AC_TIME_05T_TCKEPRD_05T, 0x0,
+ SHU_AC_TIME_05T_TR2PD_05T, 0x0,
+ SHU_AC_TIME_05T_TWTPD_M05T, 0x1,
+ SHU_AC_TIME_05T_TMRRI_05T, 0x1,
+ SHU_AC_TIME_05T_TMRWCKEL_05T, 0x0,
+ SHU_AC_TIME_05T_BGTRRD_05T, 0x0,
+ SHU_AC_TIME_05T_BGTCCD_05T, 0x0,
+ SHU_AC_TIME_05T_BGTWTR_M05T, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_ac_time_05t,
+ SHU_AC_TIME_05T_TR2W_05T, 0x0,
+ SHU_AC_TIME_05T_TWTR_M05T, 0x1,
+ SHU_AC_TIME_05T_XRTR2W_05T, 0x0,
+ SHU_AC_TIME_05T_TMRD_05T, 0x1,
+ SHU_AC_TIME_05T_TMRW_05T, 0x1,
+ SHU_AC_TIME_05T_TMRR2MRW_05T, 0x1,
+ SHU_AC_TIME_05T_TW2MRW_05T, 0x1,
+ SHU_AC_TIME_05T_TR2MRW_05T, 0x0,
+ SHU_AC_TIME_05T_TPBR2ACT_05T, 0x1,
+ SHU_AC_TIME_05T_XRTW2R_M05T, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim_xrt,
+ SHU_ACTIM_XRT_XRTR2R, 0x03,
+ SHU_ACTIM_XRT_XRTR2W, 0x03,
+ SHU_ACTIM_XRT_XRTW2R, 0x3,
+ SHU_ACTIM_XRT_XRTW2W, 0x04);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim0,
+ SHU_ACTIM0_TWTR, 0x04,
+ SHU_ACTIM0_TWR, 0x07,
+ SHU_ACTIM0_TRRD, 0x1,
+ SHU_ACTIM0_TRCD, 0x4,
+ SHU_ACTIM0_CKELCKCNT, 0x2);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim1,
+ SHU_ACTIM1_TRPAB, 0x3,
+ SHU_ACTIM1_TMRWCKEL, 0x4,
+ SHU_ACTIM1_TRP, 0x2,
+ SHU_ACTIM1_TRAS, 0x00,
+ SHU_ACTIM1_TRC, 0x00);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim2,
+ SHU_ACTIM2_TXP, 0x0,
+ SHU_ACTIM2_TMRRI, 0x05,
+ SHU_ACTIM2_TRTP, 0x0,
+ SHU_ACTIM2_TR2W, 0x03,
+ SHU_ACTIM2_TFAW, 0x00);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim3,
+ SHU_ACTIM3_TRFCPB, 0x1a,
+ SHU_ACTIM3_MANTMRR, 0x4,
+ SHU_ACTIM3_TR2MRR, 0x4,
+ SHU_ACTIM3_TRFC, 0x40,
+ SHU_ACTIM3_TWTR_L, 0x00);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim4,
+ SHU_ACTIM4_TXREFCNT, 0x04e,
+ SHU_ACTIM4_TMRR2MRW, 0x07,
+ SHU_ACTIM4_TMRR2W, 0x05,
+ SHU_ACTIM4_TZQCS, 0x10);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim5,
+ SHU_ACTIM5_TR2PD, 0x08,
+ SHU_ACTIM5_TWTPD, 0x09,
+ SHU_ACTIM5_TPBR2PBR, 0x0b,
+ SHU_ACTIM5_TPBR2ACT, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim6,
+ SHU_ACTIM6_TZQLAT2, 0x06,
+ SHU_ACTIM6_TMRD, 0x3,
+ SHU_ACTIM6_TMRW, 0x2,
+ SHU_ACTIM6_TW2MRW, 0x06,
+ SHU_ACTIM6_TR2MRW, 0x09);
+ SET32_BITFIELDS(&ch[0].ao.shu_ckectrl,
+ SHU_CKECTRL_TPDE_05T, 0x1,
+ SHU_CKECTRL_TPDX_05T, 0x0,
+ SHU_CKECTRL_TPDE, 0x1,
+ SHU_CKECTRL_TPDX, 0x1,
+ SHU_CKECTRL_TCKEPRD, 0x1,
+ SHU_CKECTRL_TCKESRX, 0x3);
+ SET32_BITFIELDS(&ch[0].ao.shu_misc,
+ SHU_MISC_REQQUE_MAXCNT, 0x2,
+ SHU_MISC_DCMDLYREF, 0x7,
+ SHU_MISC_DAREFEN, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_dq8,
+ SHU_B0_DQ8_R_DMRXDVS_UPD_FORCE_CYC_B0, 0x0063,
+ SHU_B0_DQ8_R_DMRXDVS_UPD_FORCE_EN_B0, 0x0,
+ SHU_B0_DQ8_R_DMRANK_RXDLY_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_RMRODTEN_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_RMRX_TOPHY_CG_IG_B0, 0x1,
+ SHU_B0_DQ8_R_DMRXDVS_RDSEL_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMRXDVS_RDSEL_TOG_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMRXDLY_CG_IG_B0, 0x1,
+ SHU_B0_DQ8_R_DMDQSIEN_FLAG_SYNC_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMDQSIEN_FLAG_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMDQSIEN_RDSEL_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMDQSIEN_RDSEL_TOG_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMRANK_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMRANK_CHG_PIPE_CG_IG_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_dq8,
+ SHU_B1_DQ8_R_DMRXDVS_UPD_FORCE_CYC_B1, 0x0063,
+ SHU_B1_DQ8_R_DMRXDVS_UPD_FORCE_EN_B1, 0x0,
+ SHU_B1_DQ8_R_DMRANK_RXDLY_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_RMRODTEN_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_RMRX_TOPHY_CG_IG_B1, 0x1,
+ SHU_B1_DQ8_R_DMRXDVS_RDSEL_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMRXDVS_RDSEL_TOG_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMRXDLY_CG_IG_B1, 0x1,
+ SHU_B1_DQ8_R_DMDQSIEN_FLAG_SYNC_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMDQSIEN_FLAG_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMDQSIEN_RDSEL_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMDQSIEN_RDSEL_TOG_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMRANK_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMRANK_CHG_PIPE_CG_IG_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_dq5,
+ SHU_B0_DQ5_RG_RX_ARDQ_VREF_SEL_B0, 0x0e,
+ SHU_B0_DQ5_RG_RX_ARDQ_VREF_BYPASS_B0, 0x0,
+ SHU_B0_DQ5_RG_ARPI_FB_B0, 0x00,
+ SHU_B0_DQ5_RG_RX_ARDQS0_DQSIEN_DLY_B0, 0x0,
+ SHU_B0_DQ5_RG_RX_ARDQS_DQSIEN_RB_DLY_B0, 0x0,
+ SHU_B0_DQ5_RG_RX_ARDQS0_DVS_DLY_B0, 0x5,
+ SHU_B0_DQ5_RG_RX_ARDQ_FIFO_DQSI_DLY_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_dq5,
+ SHU_B1_DQ5_RG_RX_ARDQ_VREF_SEL_B1, 0x0e,
+ SHU_B1_DQ5_RG_RX_ARDQ_VREF_BYPASS_B1, 0x0,
+ SHU_B1_DQ5_RG_ARPI_FB_B1, 0x00,
+ SHU_B1_DQ5_RG_RX_ARDQS0_DQSIEN_DLY_B1, 0x0,
+ SHU_B1_DQ5_RG_RX_ARDQS_DQSIEN_RB_DLY_B1, 0x0,
+ SHU_B1_DQ5_RG_RX_ARDQS0_DVS_DLY_B1, 0x5,
+ SHU_B1_DQ5_RG_RX_ARDQ_FIFO_DQSI_DLY_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_rxdly0,
+ SHU_R0_B0_RXDLY0_RX_ARDQ0_R_DLY_B0, 0x64,
+ SHU_R0_B0_RXDLY0_RX_ARDQ0_F_DLY_B0, 0x64,
+ SHU_R0_B0_RXDLY0_RX_ARDQ1_R_DLY_B0, 0x64,
+ SHU_R0_B0_RXDLY0_RX_ARDQ1_F_DLY_B0, 0x64);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_rxdly1,
+ SHU_R0_B0_RXDLY1_RX_ARDQ2_R_DLY_B0, 0x64,
+ SHU_R0_B0_RXDLY1_RX_ARDQ2_F_DLY_B0, 0x64,
+ SHU_R0_B0_RXDLY1_RX_ARDQ3_R_DLY_B0, 0x64,
+ SHU_R0_B0_RXDLY1_RX_ARDQ3_F_DLY_B0, 0x64);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_rxdly2,
+ SHU_R0_B0_RXDLY2_RX_ARDQ4_R_DLY_B0, 0x64,
+ SHU_R0_B0_RXDLY2_RX_ARDQ4_F_DLY_B0, 0x64,
+ SHU_R0_B0_RXDLY2_RX_ARDQ5_R_DLY_B0, 0x64,
+ SHU_R0_B0_RXDLY2_RX_ARDQ5_F_DLY_B0, 0x64);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_rxdly3,
+ SHU_R0_B0_RXDLY3_RX_ARDQ6_R_DLY_B0, 0x64,
+ SHU_R0_B0_RXDLY3_RX_ARDQ6_F_DLY_B0, 0x64,
+ SHU_R0_B0_RXDLY3_RX_ARDQ7_R_DLY_B0, 0x64,
+ SHU_R0_B0_RXDLY3_RX_ARDQ7_F_DLY_B0, 0x64);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_rxdly4,
+ SHU_R0_B0_RXDLY4_RX_ARDQM0_R_DLY_B0, 0x64,
+ SHU_R0_B0_RXDLY4_RX_ARDQM0_F_DLY_B0, 0x64);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_rxdly5,
+ SHU_R0_B0_RXDLY5_RX_ARDQS0_R_DLY_B0, 0x0da,
+ SHU_R0_B0_RXDLY5_RX_ARDQS0_F_DLY_B0, 0x0da);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_rxdly0,
+ SHU_R0_B0_RXDLY0_RX_ARDQ0_R_DLY_B0, 0x63,
+ SHU_R0_B0_RXDLY0_RX_ARDQ0_F_DLY_B0, 0x63,
+ SHU_R0_B0_RXDLY0_RX_ARDQ1_R_DLY_B0, 0x63,
+ SHU_R0_B0_RXDLY0_RX_ARDQ1_F_DLY_B0, 0x63);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_rxdly1,
+ SHU_R0_B0_RXDLY1_RX_ARDQ2_R_DLY_B0, 0x63,
+ SHU_R0_B0_RXDLY1_RX_ARDQ2_F_DLY_B0, 0x63,
+ SHU_R0_B0_RXDLY1_RX_ARDQ3_R_DLY_B0, 0x63,
+ SHU_R0_B0_RXDLY1_RX_ARDQ3_F_DLY_B0, 0x63);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_rxdly2,
+ SHU_R0_B0_RXDLY2_RX_ARDQ4_R_DLY_B0, 0x63,
+ SHU_R0_B0_RXDLY2_RX_ARDQ4_F_DLY_B0, 0x63,
+ SHU_R0_B0_RXDLY2_RX_ARDQ5_R_DLY_B0, 0x63,
+ SHU_R0_B0_RXDLY2_RX_ARDQ5_F_DLY_B0, 0x63);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_rxdly3,
+ SHU_R0_B0_RXDLY3_RX_ARDQ6_R_DLY_B0, 0x63,
+ SHU_R0_B0_RXDLY3_RX_ARDQ6_F_DLY_B0, 0x63,
+ SHU_R0_B0_RXDLY3_RX_ARDQ7_R_DLY_B0, 0x63,
+ SHU_R0_B0_RXDLY3_RX_ARDQ7_F_DLY_B0, 0x63);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_rxdly4,
+ SHU_R0_B0_RXDLY4_RX_ARDQM0_R_DLY_B0, 0x63,
+ SHU_R0_B0_RXDLY4_RX_ARDQM0_F_DLY_B0, 0x63);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_rxdly5,
+ SHU_R0_B0_RXDLY5_RX_ARDQS0_R_DLY_B0, 0x0d9,
+ SHU_R0_B0_RXDLY5_RX_ARDQS0_F_DLY_B0, 0x0d9);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_rxdly0,
+ SHU_R0_B1_RXDLY0_RX_ARDQ0_R_DLY_B1, 0x64,
+ SHU_R0_B1_RXDLY0_RX_ARDQ0_F_DLY_B1, 0x64,
+ SHU_R0_B1_RXDLY0_RX_ARDQ1_R_DLY_B1, 0x64,
+ SHU_R0_B1_RXDLY0_RX_ARDQ1_F_DLY_B1, 0x64);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_rxdly1,
+ SHU_R0_B1_RXDLY1_RX_ARDQ2_R_DLY_B1, 0x64,
+ SHU_R0_B1_RXDLY1_RX_ARDQ2_F_DLY_B1, 0x64,
+ SHU_R0_B1_RXDLY1_RX_ARDQ3_R_DLY_B1, 0x64,
+ SHU_R0_B1_RXDLY1_RX_ARDQ3_F_DLY_B1, 0x64);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_rxdly2,
+ SHU_R0_B1_RXDLY2_RX_ARDQ4_R_DLY_B1, 0x64,
+ SHU_R0_B1_RXDLY2_RX_ARDQ4_F_DLY_B1, 0x64,
+ SHU_R0_B1_RXDLY2_RX_ARDQ5_R_DLY_B1, 0x64,
+ SHU_R0_B1_RXDLY2_RX_ARDQ5_F_DLY_B1, 0x64);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_rxdly3,
+ SHU_R0_B1_RXDLY3_RX_ARDQ6_R_DLY_B1, 0x64,
+ SHU_R0_B1_RXDLY3_RX_ARDQ6_F_DLY_B1, 0x64,
+ SHU_R0_B1_RXDLY3_RX_ARDQ7_R_DLY_B1, 0x64,
+ SHU_R0_B1_RXDLY3_RX_ARDQ7_F_DLY_B1, 0x64);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_rxdly4,
+ SHU_R0_B1_RXDLY4_RX_ARDQM0_R_DLY_B1, 0x64,
+ SHU_R0_B1_RXDLY4_RX_ARDQM0_F_DLY_B1, 0x64);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_rxdly5,
+ SHU_R0_B1_RXDLY5_RX_ARDQS0_R_DLY_B1, 0x0da,
+ SHU_R0_B1_RXDLY5_RX_ARDQS0_F_DLY_B1, 0x0da);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_rxdly0,
+ SHU_R0_B1_RXDLY0_RX_ARDQ0_R_DLY_B1, 0x63,
+ SHU_R0_B1_RXDLY0_RX_ARDQ0_F_DLY_B1, 0x63,
+ SHU_R0_B1_RXDLY0_RX_ARDQ1_R_DLY_B1, 0x63,
+ SHU_R0_B1_RXDLY0_RX_ARDQ1_F_DLY_B1, 0x63);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_rxdly1,
+ SHU_R0_B1_RXDLY1_RX_ARDQ2_R_DLY_B1, 0x63,
+ SHU_R0_B1_RXDLY1_RX_ARDQ2_F_DLY_B1, 0x63,
+ SHU_R0_B1_RXDLY1_RX_ARDQ3_R_DLY_B1, 0x63,
+ SHU_R0_B1_RXDLY1_RX_ARDQ3_F_DLY_B1, 0x63);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_rxdly2,
+ SHU_R0_B1_RXDLY2_RX_ARDQ4_R_DLY_B1, 0x63,
+ SHU_R0_B1_RXDLY2_RX_ARDQ4_F_DLY_B1, 0x63,
+ SHU_R0_B1_RXDLY2_RX_ARDQ5_R_DLY_B1, 0x63,
+ SHU_R0_B1_RXDLY2_RX_ARDQ5_F_DLY_B1, 0x63);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_rxdly3,
+ SHU_R0_B1_RXDLY3_RX_ARDQ6_R_DLY_B1, 0x63,
+ SHU_R0_B1_RXDLY3_RX_ARDQ6_F_DLY_B1, 0x63,
+ SHU_R0_B1_RXDLY3_RX_ARDQ7_R_DLY_B1, 0x63,
+ SHU_R0_B1_RXDLY3_RX_ARDQ7_F_DLY_B1, 0x63);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_rxdly4,
+ SHU_R0_B1_RXDLY4_RX_ARDQM0_R_DLY_B1, 0x63,
+ SHU_R0_B1_RXDLY4_RX_ARDQM0_F_DLY_B1, 0x63);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_rxdly5,
+ SHU_R0_B1_RXDLY5_RX_ARDQS0_R_DLY_B1, 0x0d9,
+ SHU_R0_B1_RXDLY5_RX_ARDQS0_F_DLY_B1, 0x0d9);
+ SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[0].b0_dq9,
+ B0_DQ9_RG_RX_ARDQ_STBEN_RESETB_B0, 0x1,
+ B0_DQ9_RG_RX_ARDQS0_STBEN_RESETB_B0, 0x0,
+ B0_DQ9_RG_RX_ARDQS0_DQSIENMODE_B0, 0x0,
+ B0_DQ9_R_DMRXDVS_R_F_DLY_RK_OPT_B0, 0x1,
+ B0_DQ9_R_DMRXFIFO_STBENCMP_EN_B0, 0x0,
+ B0_DQ9_R_IN_GATE_EN_LOW_OPT_B0, 0x00,
+ B0_DQ9_R_DMDQSIEN_VALID_LAT_B0, 0x0,
+ B0_DQ9_R_DMDQSIEN_RDSEL_LAT_B0, 0x0,
+ B0_DQ9_R_DMRXDVS_VALID_LAT_B0, 0x0,
+ B0_DQ9_R_DMRXDVS_RDSEL_LAT_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[1].b0_dq9,
+ B1_DQ9_RG_RX_ARDQ_STBEN_RESETB_B1, 0x1,
+ B1_DQ9_RG_RX_ARDQS0_STBEN_RESETB_B1, 0x0,
+ B1_DQ9_RG_RX_ARDQS0_DQSIENMODE_B1, 0x0,
+ B1_DQ9_R_DMRXDVS_R_F_DLY_RK_OPT_B1, 0x1,
+ B1_DQ9_R_DMRXFIFO_STBENCMP_EN_B1, 0x0,
+ B1_DQ9_R_IN_GATE_EN_LOW_OPT_B1, 0x00,
+ B1_DQ9_R_DMDQSIEN_VALID_LAT_B1, 0x0,
+ B1_DQ9_R_DMDQSIEN_RDSEL_LAT_B1, 0x0,
+ B1_DQ9_R_DMRXDVS_VALID_LAT_B1, 0x0,
+ B1_DQ9_R_DMRXDVS_RDSEL_LAT_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[0].b0_dq4,
+ B0_DQ4_RG_RX_ARDQS_EYE_R_DLY_B0, 0x6e,
+ B0_DQ4_RG_RX_ARDQS_EYE_F_DLY_B0, 0x6e,
+ B0_DQ4_RG_RX_ARDQ_EYE_R_DLY_B0, 0x24,
+ B0_DQ4_RG_RX_ARDQ_EYE_F_DLY_B0, 0x24);
+ SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[1].b0_dq4,
+ B1_DQ4_RG_RX_ARDQS_EYE_R_DLY_B1, 0x6e,
+ B1_DQ4_RG_RX_ARDQS_EYE_F_DLY_B1, 0x6e,
+ B1_DQ4_RG_RX_ARDQ_EYE_R_DLY_B1, 0x24,
+ B1_DQ4_RG_RX_ARDQ_EYE_F_DLY_B1, 0x24);
+ SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[0].b0_dq5,
+ B0_DQ5_RG_RX_ARDQ_EYE_VREF_SEL_B0, 0x0e,
+ B0_DQ5_RG_RX_ARDQ_VREF_EN_B0, 0x0,
+ B0_DQ5_RG_RX_ARDQ_EYE_VREF_EN_B0, 0x0,
+ B0_DQ5_RG_RX_ARDQ_EYE_SEL_B0, 0x0,
+ B0_DQ5_RG_RX_ARDQ_EYE_EN_B0, 0x0,
+ B0_DQ5_RG_RX_ARDQ_EYE_STBEN_RESETB_B0, 0x1,
+ B0_DQ5_RG_RX_ARDQS0_DVS_EN_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[1].b0_dq5,
+ B1_DQ5_RG_RX_ARDQ_EYE_VREF_SEL_B1, 0x0e,
+ B1_DQ5_RG_RX_ARDQ_VREF_EN_B1, 0x0,
+ B1_DQ5_RG_RX_ARDQ_EYE_VREF_EN_B1, 0x0,
+ B1_DQ5_RG_RX_ARDQ_EYE_SEL_B1, 0x0,
+ B1_DQ5_RG_RX_ARDQ_EYE_EN_B1, 0x0,
+ B1_DQ5_RG_RX_ARDQ_EYE_STBEN_RESETB_B1, 0x1,
+ B1_DQ5_RG_RX_ARDQS0_DVS_EN_B1, 0x0);
+}
+
+static void sv_algorithm_assistance_lp4_3733(void)
+{
+ SET32_BITFIELDS(&ch[0].phy_ao.shu_misc_rdsel_track,
+ SHU_MISC_RDSEL_TRACK_DMDATLAT_I, 0x0f,
+ SHU_MISC_RDSEL_TRACK_RDSEL_HWSAVE_MSK, 0x1,
+ SHU_MISC_RDSEL_TRACK_RDSEL_TRACK_EN, 0x0,
+ SHU_MISC_RDSEL_TRACK_SHU_GW_THRD_NEG, 0xfd0,
+ SHU_MISC_RDSEL_TRACK_SHU_GW_THRD_POS, 0x030);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_rdat,
+ MISC_SHU_RDAT_DATLAT, 0x0f,
+ MISC_SHU_RDAT_DATLAT_DSEL, 0x0f,
+ MISC_SHU_RDAT_DATLAT_DSEL_PHY, 0x0f);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_phy_rx_ctrl,
+ MISC_SHU_PHY_RX_CTRL_RANK_RXDLY_UPDLAT_EN, 0x1,
+ MISC_SHU_PHY_RX_CTRL_RANK_RXDLY_UPD_OFFSET, 0x2,
+ MISC_SHU_PHY_RX_CTRL_RX_IN_GATE_EN_PRE_OFFSET, 0x2,
+ MISC_SHU_PHY_RX_CTRL_RX_IN_GATE_EN_HEAD, 0x1,
+ MISC_SHU_PHY_RX_CTRL_RX_IN_GATE_EN_TAIL, 0x1,
+ MISC_SHU_PHY_RX_CTRL_RX_IN_BUFF_EN_HEAD, 0x2,
+ MISC_SHU_PHY_RX_CTRL_RX_IN_BUFF_EN_TAIL, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_rankctl,
+ MISC_SHU_RANKCTL_RANKINCTL_RXDLY, 0x4,
+ MISC_SHU_RANKCTL_RANK_RXDLY_OPT, 0x1,
+ MISC_SHU_RANKCTL_RANKSEL_SELPH_FRUN, 0x1,
+ MISC_SHU_RANKCTL_RANKINCTL_STB, 0x6,
+ MISC_SHU_RANKCTL_RANKINCTL, 0x5,
+ MISC_SHU_RANKCTL_RANKINCTL_ROOT1, 0x5,
+ MISC_SHU_RANKCTL_RANKINCTL_PHY, 0x8);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_rank_sel_lat,
+ MISC_SHU_RANK_SEL_LAT_RANK_SEL_LAT_B0, 0x2,
+ MISC_SHU_RANK_SEL_LAT_RANK_SEL_LAT_B1, 0x2,
+ MISC_SHU_RANK_SEL_LAT_RANK_SEL_LAT_CA, 0x2);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_rk[0].misc_shu_rk_dqsctl,
+ MISC_SHU_RK_DQSCTL_DQSINCTL, 0x7);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_rk[1].misc_shu_rk_dqsctl,
+ MISC_SHU_RK_DQSCTL_DQSINCTL, 0x7);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_dqsien_mck_ui_dly,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P0_B0, 0x0,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P1_B0, 0x4,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P0_B0, 0x1,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P1_B0, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_rk_b0_dqsien_pi_dly,
+ SHU_RK_B0_DQSIEN_PI_DLY_DQSIEN_PI_B0, 0x0f);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_dqsien_mck_ui_dly,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P0_B0, 0x7,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P1_B0, 0xb,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P0_B0, 0x1,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P1_B0, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_rk_b0_dqsien_pi_dly,
+ SHU_RK_B0_DQSIEN_PI_DLY_DQSIEN_PI_B0, 0x1c);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_dqsien_mck_ui_dly,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P0_B1, 0x0,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P1_B1, 0x4,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P0_B1, 0x1,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P1_B1, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_rk_b0_dqsien_pi_dly,
+ SHU_RK_B1_DQSIEN_PI_DLY_DQSIEN_PI_B1, 0x0f);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_dqsien_mck_ui_dly,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P0_B1, 0x7,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P1_B1, 0xb,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P0_B1, 0x1,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P1_B1, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_rk_b0_dqsien_pi_dly,
+ SHU_RK_B1_DQSIEN_PI_DLY_DQSIEN_PI_B1, 0x1c);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_odtctrl,
+ MISC_SHU_ODTCTRL_RODTEN, 0x1,
+ MISC_SHU_ODTCTRL_RODTENSTB_SELPH_CG_IG, 0x0,
+ MISC_SHU_ODTCTRL_RODT_LAT, 0x7,
+ MISC_SHU_ODTCTRL_RODTEN_SELPH_FRUN, 0x0,
+ MISC_SHU_ODTCTRL_RODTDLY_LAT_OPT, 0x0,
+ MISC_SHU_ODTCTRL_FIXRODT, 0x0,
+ MISC_SHU_ODTCTRL_RODTEN_OPT, 0x1,
+ MISC_SHU_ODTCTRL_RODTE2, 0x1,
+ MISC_SHU_ODTCTRL_RODTE, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_dq7,
+ SHU_B0_DQ7_R_DMRANKRXDVS_B0, 0x0,
+ SHU_B0_DQ7_R_DMDQMDBI_EYE_SHU_B0, 0x0,
+ SHU_B0_DQ7_R_DMDQMDBI_SHU_B0, 0x0,
+ SHU_B0_DQ7_R_DMRXDVS_DQM_FLAGSEL_B0, 0x0,
+ SHU_B0_DQ7_R_DMRXDVS_PBYTE_FLAG_OPT_B0, 0x0,
+ SHU_B0_DQ7_R_DMRXDVS_PBYTE_DQM_EN_B0, 0x0,
+ SHU_B0_DQ7_R_DMRXTRACK_DQM_EN_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_dq7,
+ SHU_B0_DQ7_R_DMRODTEN_B0, 0x1,
+ SHU_B0_DQ7_R_DMARPI_CG_FB2DLL_DCM_EN_B0, 0x0,
+ SHU_B0_DQ7_R_DMTX_ARPI_CG_DQ_NEW_B0, 0x0,
+ SHU_B0_DQ7_R_DMTX_ARPI_CG_DQS_NEW_B0, 0x0,
+ SHU_B0_DQ7_R_DMTX_ARPI_CG_DQM_NEW_B0, 0x0,
+ SHU_B0_DQ7_R_LP4Y_SDN_MODE_DQS0, 0x0,
+ SHU_B0_DQ7_R_DMRXRANK_DQ_EN_B0, 0x1,
+ SHU_B0_DQ7_R_DMRXRANK_DQ_LAT_B0, 0x1,
+ SHU_B0_DQ7_R_DMRXRANK_DQS_EN_B0, 0x1,
+ SHU_B0_DQ7_R_DMRXRANK_DQS_LAT_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_dq7,
+ SHU_B1_DQ7_R_DMRANKRXDVS_B1, 0x0,
+ SHU_B1_DQ7_R_DMDQMDBI_EYE_SHU_B1, 0x0,
+ SHU_B1_DQ7_R_DMDQMDBI_SHU_B1, 0x0,
+ SHU_B1_DQ7_R_DMRXDVS_DQM_FLAGSEL_B1, 0x0,
+ SHU_B1_DQ7_R_DMRXDVS_PBYTE_FLAG_OPT_B1, 0x0,
+ SHU_B1_DQ7_R_DMRXDVS_PBYTE_DQM_EN_B1, 0x0,
+ SHU_B1_DQ7_R_DMRXTRACK_DQM_EN_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_dq7,
+ SHU_B1_DQ7_R_DMRODTEN_B1, 0x1,
+ SHU_B1_DQ7_R_DMARPI_CG_FB2DLL_DCM_EN_B1, 0x0,
+ SHU_B1_DQ7_R_DMTX_ARPI_CG_DQ_NEW_B1, 0x0,
+ SHU_B1_DQ7_R_DMTX_ARPI_CG_DQS_NEW_B1, 0x0,
+ SHU_B1_DQ7_R_DMTX_ARPI_CG_DQM_NEW_B1, 0x0,
+ SHU_B1_DQ7_R_LP4Y_SDN_MODE_DQS1, 0x0,
+ SHU_B1_DQ7_R_DMRXRANK_DQ_EN_B1, 0x1,
+ SHU_B1_DQ7_R_DMRXRANK_DQ_LAT_B1, 0x1,
+ SHU_B1_DQ7_R_DMRXRANK_DQS_EN_B1, 0x1,
+ SHU_B1_DQ7_R_DMRXRANK_DQS_LAT_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.shu_misc_rx_pipe_ctrl,
+ SHU_MISC_RX_PIPE_CTRL_RX_PIPE_BYPASS_EN, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_rk_b0_rodten_mck_ui_dly,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_UI_P0_B0, 0x3,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_UI_P1_B0, 0x3,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_MCK_P0_B0, 0x0,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_MCK_P1_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_rk_b0_rodten_mck_ui_dly,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_UI_P0_B0, 0x2,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_UI_P1_B0, 0x2,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_MCK_P0_B0, 0x1,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_MCK_P1_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_rk_b0_rodten_mck_ui_dly,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_UI_P0_B1, 0x3,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_UI_P1_B1, 0x3,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_MCK_P0_B1, 0x0,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_MCK_P1_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_rk_b0_rodten_mck_ui_dly,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_UI_P0_B1, 0x2,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_UI_P1_B1, 0x2,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_MCK_P0_B1, 0x1,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_MCK_P1_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_rx_cg_set0,
+ SHU_RX_CG_SET0_DLE_LAST_EXTEND3, 0x0,
+ SHU_RX_CG_SET0_READ_START_EXTEND3, 0x0,
+ SHU_RX_CG_SET0_DLE_LAST_EXTEND2, 0x1,
+ SHU_RX_CG_SET0_READ_START_EXTEND2, 0x1,
+ SHU_RX_CG_SET0_DLE_LAST_EXTEND1, 0x1,
+ SHU_RX_CG_SET0_READ_START_EXTEND1, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.shu_misc_rank_sel_stb,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_EN, 0x1,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_EN_B23, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_SERMODE, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_TRACK, 0x1,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_RXDLY_TRACK, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_PHASE_EN, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_PHSINCTL, 0x6,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_UI_PLUS, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_MCK_PLUS, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_UI_MINUS, 0x2,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_MCK_MINUS, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_rk[0].misc_shu_rk_dqscal,
+ MISC_SHU_RK_DQSCAL_DQSIENLLMT, 0x60,
+ MISC_SHU_RK_DQSCAL_DQSIENLLMTEN, 0x1,
+ MISC_SHU_RK_DQSCAL_DQSIENHLMT, 0x3f,
+ MISC_SHU_RK_DQSCAL_DQSIENHLMTEN, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_rk[1].misc_shu_rk_dqscal,
+ MISC_SHU_RK_DQSCAL_DQSIENLLMT, 0x60,
+ MISC_SHU_RK_DQSCAL_DQSIENLLMTEN, 0x1,
+ MISC_SHU_RK_DQSCAL_DQSIENHLMT, 0x3f,
+ MISC_SHU_RK_DQSCAL_DQSIENHLMTEN, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_ini_uipi,
+ SHU_R0_B0_INI_UIPI_CURR_INI_PI_B0, 0x0f,
+ SHU_R0_B0_INI_UIPI_CURR_INI_UI_B0, 0x10);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_ini_uipi,
+ SHU_R0_B1_INI_UIPI_CURR_INI_PI_B1, 0x0f,
+ SHU_R0_B1_INI_UIPI_CURR_INI_UI_B1, 0x10);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_ini_uipi,
+ SHU_R0_B0_INI_UIPI_CURR_INI_PI_B0, 0x1c,
+ SHU_R0_B0_INI_UIPI_CURR_INI_UI_B0, 0x17);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_ini_uipi,
+ SHU_R0_B1_INI_UIPI_CURR_INI_PI_B1, 0x1c,
+ SHU_R0_B1_INI_UIPI_CURR_INI_UI_B1, 0x17);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_next_ini_uipi,
+ SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_PI_B0, 0x0f,
+ SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_UI_B0, 0x10,
+ SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_UI_P1_B0, 0x14);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_next_ini_uipi,
+ SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_PI_B1, 0x0f,
+ SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_UI_B1, 0x10,
+ SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_UI_P1_B1, 0x14);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_next_ini_uipi,
+ SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_PI_B0, 0x1c,
+ SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_UI_B0, 0x17,
+ SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_UI_P1_B0, 0x1b);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_next_ini_uipi,
+ SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_PI_B1, 0x1c,
+ SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_UI_B1, 0x17,
+ SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_UI_P1_B1, 0x1b);
+ SET32_BITFIELDS(&ch[0].phy_ao.ca_rk[0].shu_r0_ca_cmd0,
+ SHU_R0_CA_CMD0_RG_RX_ARCLK_R_DLY_DUTY, 0x0,
+ SHU_R0_CA_CMD0_RG_RX_ARCLK_F_DLY_DUTY, 0x0,
+ SHU_R0_CA_CMD0_RG_ARPI_CS, 0x00,
+ SHU_R0_CA_CMD0_RG_ARPI_CMD, 0x20,
+ SHU_R0_CA_CMD0_RG_ARPI_CLK, 0x00,
+ SHU_R0_CA_CMD0_DA_ARPI_DDR400_0D5UI_RK0_CA, 0x0,
+ SHU_R0_CA_CMD0_DA_RX_ARDQSIEN_0D5UI_RK0_CA, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_dq0,
+ SHU_R0_B0_DQ0_RG_RX_ARDQS0_R_DLY_DUTY, 0x0,
+ SHU_R0_B0_DQ0_RG_RX_ARDQS0_F_DLY_DUTY, 0x0,
+ SHU_R0_B0_DQ0_SW_ARPI_DQ_B0, 0x11,
+ SHU_R0_B0_DQ0_SW_ARPI_DQM_B0, 0x11,
+ SHU_R0_B0_DQ0_ARPI_PBYTE_B0, 0x00,
+ SHU_R0_B0_DQ0_DA_ARPI_DDR400_0D5UI_RK0_B0, 0x0,
+ SHU_R0_B0_DQ0_DA_RX_ARDQSIEN_0D5UI_RK0_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_dq0,
+ SHU_R0_B1_DQ0_RG_RX_ARDQS1_R_DLY_DUTY, 0x0,
+ SHU_R0_B1_DQ0_RG_RX_ARDQS1_F_DLY_DUTY, 0x0,
+ SHU_R0_B1_DQ0_SW_ARPI_DQ_B1, 0x12,
+ SHU_R0_B1_DQ0_SW_ARPI_DQM_B1, 0x12,
+ SHU_R0_B1_DQ0_ARPI_PBYTE_B1, 0x00,
+ SHU_R0_B1_DQ0_DA_ARPI_DDR400_0D5UI_RK0_B1, 0x0,
+ SHU_R0_B1_DQ0_DA_RX_ARDQSIEN_0D5UI_RK0_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.ca_rk[1].shu_r0_ca_cmd0,
+ SHU_R0_CA_CMD0_RG_RX_ARCLK_R_DLY_DUTY, 0x0,
+ SHU_R0_CA_CMD0_RG_RX_ARCLK_F_DLY_DUTY, 0x0,
+ SHU_R0_CA_CMD0_RG_ARPI_CS, 0x00,
+ SHU_R0_CA_CMD0_RG_ARPI_CMD, 0x20,
+ SHU_R0_CA_CMD0_RG_ARPI_CLK, 0x00,
+ SHU_R0_CA_CMD0_DA_ARPI_DDR400_0D5UI_RK0_CA, 0x0,
+ SHU_R0_CA_CMD0_DA_RX_ARDQSIEN_0D5UI_RK0_CA, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_dq0,
+ SHU_R0_B0_DQ0_RG_RX_ARDQS0_R_DLY_DUTY, 0x0,
+ SHU_R0_B0_DQ0_RG_RX_ARDQS0_F_DLY_DUTY, 0x0,
+ SHU_R0_B0_DQ0_SW_ARPI_DQ_B0, 0x16,
+ SHU_R0_B0_DQ0_SW_ARPI_DQM_B0, 0x16,
+ SHU_R0_B0_DQ0_ARPI_PBYTE_B0, 0x00,
+ SHU_R0_B0_DQ0_DA_ARPI_DDR400_0D5UI_RK0_B0, 0x0,
+ SHU_R0_B0_DQ0_DA_RX_ARDQSIEN_0D5UI_RK0_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_dq0,
+ SHU_R0_B1_DQ0_RG_RX_ARDQS1_R_DLY_DUTY, 0x0,
+ SHU_R0_B1_DQ0_RG_RX_ARDQS1_F_DLY_DUTY, 0x0,
+ SHU_R0_B1_DQ0_SW_ARPI_DQ_B1, 0x21,
+ SHU_R0_B1_DQ0_SW_ARPI_DQM_B1, 0x21,
+ SHU_R0_B1_DQ0_ARPI_PBYTE_B1, 0x00,
+ SHU_R0_B1_DQ0_DA_ARPI_DDR400_0D5UI_RK0_B1, 0x0,
+ SHU_R0_B1_DQ0_DA_RX_ARDQSIEN_0D5UI_RK0_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_dcm_ctrl0,
+ SHU_DCM_CTRL0_DDRPHY_CLK_EN_OPT, 0x1,
+ SHU_DCM_CTRL0_DPHY_CMD_CLKEN_EXTCNT, 0x3,
+ SHU_DCM_CTRL0_DDRPHY_CLK_DYN_GATING_SEL, 0x5,
+ SHU_DCM_CTRL0_APHYPI_CKCGL_CNT, 0x2,
+ SHU_DCM_CTRL0_APHYPI_CKCGH_CNT, 0x4,
+ SHU_DCM_CTRL0_FASTWAKE2, 0x0,
+ SHU_DCM_CTRL0_FASTWAKE, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_aphy_tx_picg_ctrl,
+ SHU_APHY_TX_PICG_CTRL_TX_PICG_CNT, 0x3,
+ SHU_APHY_TX_PICG_CTRL_TX_DQS_SEL_P1, 0x3,
+ SHU_APHY_TX_PICG_CTRL_TX_DQS_SEL_P0, 0x2,
+ SHU_APHY_TX_PICG_CTRL_DPHY_TX_DCM_EXTCNT, 0x2,
+ SHU_APHY_TX_PICG_CTRL_DDRPHY_CLK_EN_COMB_TX_OPT, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_aphy_tx_picg_ctrl,
+ SHURK_APHY_TX_PICG_CTRL_TX_DQ_RK_SEL_P1, 0x3,
+ SHURK_APHY_TX_PICG_CTRL_TX_DQ_RK_SEL_P0, 0x3);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_aphy_tx_picg_ctrl,
+ SHURK_APHY_TX_PICG_CTRL_TX_DQ_RK_SEL_P1, 0x3,
+ SHURK_APHY_TX_PICG_CTRL_TX_DQ_RK_SEL_P0, 0x3);
+ SET32_BITFIELDS(&ch[0].ao.shu_new_xrw2w_ctrl,
+ SHU_NEW_XRW2W_CTRL_TX_PI_UPDCTL_B0, 0x3,
+ SHU_NEW_XRW2W_CTRL_TX_PI_UPDCTL_B1, 0x3,
+ SHU_NEW_XRW2W_CTRL_TXPI_UPD_MODE, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_selph_dqs0,
+ SHU_SELPH_DQS0_TXDLY_DQS0, 0x4,
+ SHU_SELPH_DQS0_TXDLY_DQS1, 0x4,
+ SHU_SELPH_DQS0_TXDLY_DQS2, 0x1,
+ SHU_SELPH_DQS0_TXDLY_DQS3, 0x1,
+ SHU_SELPH_DQS0_TXDLY_OEN_DQS0, 0x3,
+ SHU_SELPH_DQS0_TXDLY_OEN_DQS1, 0x3,
+ SHU_SELPH_DQS0_TXDLY_OEN_DQS2, 0x1,
+ SHU_SELPH_DQS0_TXDLY_OEN_DQS3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_selph_dqs1,
+ SHU_SELPH_DQS1_DLY_DQS0, 0x1,
+ SHU_SELPH_DQS1_DLY_DQS1, 0x1,
+ SHU_SELPH_DQS1_DLY_DQS2, 0x1,
+ SHU_SELPH_DQS1_DLY_DQS3, 0x1,
+ SHU_SELPH_DQS1_DLY_OEN_DQS0, 0x6,
+ SHU_SELPH_DQS1_DLY_OEN_DQS1, 0x6,
+ SHU_SELPH_DQS1_DLY_OEN_DQS2, 0x1,
+ SHU_SELPH_DQS1_DLY_OEN_DQS3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_selph_dq0,
+ SHURK_SELPH_DQ0_TXDLY_DQ0, 0x4,
+ SHURK_SELPH_DQ0_TXDLY_DQ1, 0x4,
+ SHURK_SELPH_DQ0_TXDLY_DQ2, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_DQ3, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ0, 0x3,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ1, 0x3,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ2, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_selph_dq1,
+ SHURK_SELPH_DQ1_TXDLY_DQM0, 0x4,
+ SHURK_SELPH_DQ1_TXDLY_DQM1, 0x4,
+ SHURK_SELPH_DQ1_TXDLY_DQM2, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_DQM3, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM0, 0x3,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM1, 0x3,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM2, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_selph_dq2,
+ SHURK_SELPH_DQ2_DLY_DQ0, 0x2,
+ SHURK_SELPH_DQ2_DLY_DQ1, 0x2,
+ SHURK_SELPH_DQ2_DLY_DQ2, 0x1,
+ SHURK_SELPH_DQ2_DLY_DQ3, 0x1,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ0, 0x7,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ1, 0x7,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ2, 0x1,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_selph_dq3,
+ SHURK_SELPH_DQ3_DLY_DQM0, 0x2,
+ SHURK_SELPH_DQ3_DLY_DQM1, 0x2,
+ SHURK_SELPH_DQ3_DLY_DQM2, 0x1,
+ SHURK_SELPH_DQ3_DLY_DQM3, 0x1,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM0, 0x7,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM1, 0x7,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM2, 0x1,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_selph_dq0,
+ SHURK_SELPH_DQ0_TXDLY_DQ0, 0x4,
+ SHURK_SELPH_DQ0_TXDLY_DQ1, 0x4,
+ SHURK_SELPH_DQ0_TXDLY_DQ2, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_DQ3, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ0, 0x4,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ1, 0x4,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ2, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_selph_dq1,
+ SHURK_SELPH_DQ1_TXDLY_DQM0, 0x4,
+ SHURK_SELPH_DQ1_TXDLY_DQM1, 0x4,
+ SHURK_SELPH_DQ1_TXDLY_DQM2, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_DQM3, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM0, 0x4,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM1, 0x4,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM2, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_selph_dq2,
+ SHURK_SELPH_DQ2_DLY_DQ0, 0x3,
+ SHURK_SELPH_DQ2_DLY_DQ1, 0x3,
+ SHURK_SELPH_DQ2_DLY_DQ2, 0x1,
+ SHURK_SELPH_DQ2_DLY_DQ3, 0x1,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ0, 0x0,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ1, 0x0,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ2, 0x1,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_selph_dq3,
+ SHURK_SELPH_DQ3_DLY_DQM0, 0x3,
+ SHURK_SELPH_DQ3_DLY_DQM1, 0x3,
+ SHURK_SELPH_DQ3_DLY_DQM2, 0x1,
+ SHURK_SELPH_DQ3_DLY_DQM3, 0x1,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM0, 0x0,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM1, 0x0,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM2, 0x1,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_dqs2dq_cal1,
+ SHURK_DQS2DQ_CAL1_BOOT_ORIG_UI_RK0_DQ0, 0x011,
+ SHURK_DQS2DQ_CAL1_BOOT_ORIG_UI_RK0_DQ1, 0x012);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_dqs2dq_cal2,
+ SHURK_DQS2DQ_CAL2_BOOT_TARG_UI_RK0_DQ0, 0x011,
+ SHURK_DQS2DQ_CAL2_BOOT_TARG_UI_RK0_DQ1, 0x012);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_dqs2dq_cal5,
+ SHURK_DQS2DQ_CAL5_BOOT_TARG_UI_RK0_DQM0, 0x011,
+ SHURK_DQS2DQ_CAL5_BOOT_TARG_UI_RK0_DQM1, 0x012);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_dqs2dq_cal1,
+ SHURK_DQS2DQ_CAL1_BOOT_ORIG_UI_RK0_DQ0, 0x016,
+ SHURK_DQS2DQ_CAL1_BOOT_ORIG_UI_RK0_DQ1, 0x021);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_dqs2dq_cal2,
+ SHURK_DQS2DQ_CAL2_BOOT_TARG_UI_RK0_DQ0, 0x016,
+ SHURK_DQS2DQ_CAL2_BOOT_TARG_UI_RK0_DQ1, 0x021);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_dqs2dq_cal5,
+ SHURK_DQS2DQ_CAL5_BOOT_TARG_UI_RK0_DQM0, 0x016,
+ SHURK_DQS2DQ_CAL5_BOOT_TARG_UI_RK0_DQM1, 0x021);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_pi,
+ SHURK_PI_RK0_ARPI_DQ_B1, 0x12,
+ SHURK_PI_RK0_ARPI_DQ_B0, 0x11,
+ SHURK_PI_RK0_ARPI_DQM_B1, 0x12,
+ SHURK_PI_RK0_ARPI_DQM_B0, 0x11);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_pi,
+ SHURK_PI_RK0_ARPI_DQ_B1, 0x21,
+ SHURK_PI_RK0_ARPI_DQ_B0, 0x16,
+ SHURK_PI_RK0_ARPI_DQM_B1, 0x21,
+ SHURK_PI_RK0_ARPI_DQM_B0, 0x16);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_txdly0,
+ SHU_R0_B0_TXDLY0_TX_ARDQ0_DLY_B0, 0x08,
+ SHU_R0_B0_TXDLY0_TX_ARDQ1_DLY_B0, 0x08,
+ SHU_R0_B0_TXDLY0_TX_ARDQ2_DLY_B0, 0x08,
+ SHU_R0_B0_TXDLY0_TX_ARDQ3_DLY_B0, 0x08);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_txdly1,
+ SHU_R0_B0_TXDLY1_TX_ARDQ4_DLY_B0, 0x08,
+ SHU_R0_B0_TXDLY1_TX_ARDQ5_DLY_B0, 0x08,
+ SHU_R0_B0_TXDLY1_TX_ARDQ6_DLY_B0, 0x08,
+ SHU_R0_B0_TXDLY1_TX_ARDQ7_DLY_B0, 0x08);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_txdly3,
+ SHU_R0_B0_TXDLY3_TX_ARDQM0_DLY_B0, 0x08,
+ SHU_R0_B0_TXDLY3_TX_ARWCK_DLY_B0, 0x00,
+ SHU_R0_B0_TXDLY3_TX_ARWCKB_DLY_B0, 0x00);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_txdly0,
+ SHU_R0_B1_TXDLY0_TX_ARDQ0_DLY_B1, 0x04,
+ SHU_R0_B1_TXDLY0_TX_ARDQ1_DLY_B1, 0x04,
+ SHU_R0_B1_TXDLY0_TX_ARDQ2_DLY_B1, 0x04,
+ SHU_R0_B1_TXDLY0_TX_ARDQ3_DLY_B1, 0x04);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_txdly1,
+ SHU_R0_B1_TXDLY1_TX_ARDQ4_DLY_B1, 0x04,
+ SHU_R0_B1_TXDLY1_TX_ARDQ5_DLY_B1, 0x04,
+ SHU_R0_B1_TXDLY1_TX_ARDQ6_DLY_B1, 0x04,
+ SHU_R0_B1_TXDLY1_TX_ARDQ7_DLY_B1, 0x04);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_txdly3,
+ SHU_R0_B1_TXDLY3_TX_ARDQM0_DLY_B1, 0x04,
+ SHU_R0_B1_TXDLY3_TX_ARWCK_DLY_B1, 0x00,
+ SHU_R0_B1_TXDLY3_TX_ARWCKB_DLY_B1, 0x00);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_txdly0,
+ SHU_R0_B0_TXDLY0_TX_ARDQ0_DLY_B0, 0x34,
+ SHU_R0_B0_TXDLY0_TX_ARDQ1_DLY_B0, 0x34,
+ SHU_R0_B0_TXDLY0_TX_ARDQ2_DLY_B0, 0x34,
+ SHU_R0_B0_TXDLY0_TX_ARDQ3_DLY_B0, 0x34);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_txdly1,
+ SHU_R0_B0_TXDLY1_TX_ARDQ4_DLY_B0, 0x34,
+ SHU_R0_B0_TXDLY1_TX_ARDQ5_DLY_B0, 0x34,
+ SHU_R0_B0_TXDLY1_TX_ARDQ6_DLY_B0, 0x34,
+ SHU_R0_B0_TXDLY1_TX_ARDQ7_DLY_B0, 0x34);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_txdly3,
+ SHU_R0_B0_TXDLY3_TX_ARDQM0_DLY_B0, 0x34,
+ SHU_R0_B0_TXDLY3_TX_ARWCK_DLY_B0, 0x00,
+ SHU_R0_B0_TXDLY3_TX_ARWCKB_DLY_B0, 0x00);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_txdly0,
+ SHU_R0_B1_TXDLY0_TX_ARDQ0_DLY_B1, 0x08,
+ SHU_R0_B1_TXDLY0_TX_ARDQ1_DLY_B1, 0x08,
+ SHU_R0_B1_TXDLY0_TX_ARDQ2_DLY_B1, 0x08,
+ SHU_R0_B1_TXDLY0_TX_ARDQ3_DLY_B1, 0x08);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_txdly1,
+ SHU_R0_B1_TXDLY1_TX_ARDQ4_DLY_B1, 0x08,
+ SHU_R0_B1_TXDLY1_TX_ARDQ5_DLY_B1, 0x08,
+ SHU_R0_B1_TXDLY1_TX_ARDQ6_DLY_B1, 0x08,
+ SHU_R0_B1_TXDLY1_TX_ARDQ7_DLY_B1, 0x08);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_txdly3,
+ SHU_R0_B1_TXDLY3_TX_ARDQM0_DLY_B1, 0x08,
+ SHU_R0_B1_TXDLY3_TX_ARWCK_DLY_B1, 0x00,
+ SHU_R0_B1_TXDLY3_TX_ARWCKB_DLY_B1, 0x00);
+ SET32_BITFIELDS(&ch[0].ao.shu_tx_rankctl,
+ SHU_TX_RANKCTL_TXRANKINCTL_TXDLY, 0x2,
+ SHU_TX_RANKCTL_TXRANKINCTL, 0x2,
+ SHU_TX_RANKCTL_TXRANKINCTL_ROOT, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_ac_derating0,
+ SHU_AC_DERATING0_ACDERATEEN, 0x0,
+ SHU_AC_DERATING0_TRRD_DERATE, 0x5,
+ SHU_AC_DERATING0_TRCD_DERATE, 0x9);
+ SET32_BITFIELDS(&ch[0].ao.shu_ac_derating1,
+ SHU_AC_DERATING1_TRPAB_DERATE, 0x9,
+ SHU_AC_DERATING1_TRP_DERATE, 0x8,
+ SHU_AC_DERATING1_TRAS_DERATE, 0x0c,
+ SHU_AC_DERATING1_TRC_DERATE, 0x00);
+ SET32_BITFIELDS(&ch[0].ao.shu_ac_derating_05t,
+ SHU_AC_DERATING_05T_TRC_05T_DERATE, 0x0,
+ SHU_AC_DERATING_05T_TRCD_05T_DERATE, 0x1,
+ SHU_AC_DERATING_05T_TRP_05T_DERATE, 0x0,
+ SHU_AC_DERATING_05T_TRPAB_05T_DERATE, 0x1,
+ SHU_AC_DERATING_05T_TRAS_05T_DERATE, 0x0,
+ SHU_AC_DERATING_05T_TRRD_05T_DERATE, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_sref_ctrl,
+ SHU_SREF_CTRL_CKEHCMD, 0x3,
+ SHU_SREF_CTRL_SREF_CK_DLY, 0x3);
+ SET32_BITFIELDS(&ch[0].ao.shu_hmr4_dvfs_ctrl0,
+ SHU_HMR4_DVFS_CTRL0_FSPCHG_PRDCNT, 0x75,
+ SHU_HMR4_DVFS_CTRL0_REFRCNT, 0x000);
+ SET32_BITFIELDS(&ch[0].ao.shu_ac_time_05t,
+ SHU_AC_TIME_05T_TRC_05T, 0x0,
+ SHU_AC_TIME_05T_TRFCPB_05T, 0x0,
+ SHU_AC_TIME_05T_TRFC_05T, 0x1,
+ SHU_AC_TIME_05T_TPBR2PBR_05T, 0x0,
+ SHU_AC_TIME_05T_TXP_05T, 0x1,
+ SHU_AC_TIME_05T_TRTP_05T, 0x0,
+ SHU_AC_TIME_05T_TRCD_05T, 0x1,
+ SHU_AC_TIME_05T_TRP_05T, 0x0,
+ SHU_AC_TIME_05T_TRPAB_05T, 0x1,
+ SHU_AC_TIME_05T_TRAS_05T, 0x1,
+ SHU_AC_TIME_05T_TWR_M05T, 0x1,
+ SHU_AC_TIME_05T_TRRD_05T, 0x0,
+ SHU_AC_TIME_05T_TFAW_05T, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_ac_time_05t,
+ SHU_AC_TIME_05T_TCKEPRD_05T, 0x0,
+ SHU_AC_TIME_05T_TR2PD_05T, 0x0,
+ SHU_AC_TIME_05T_TWTPD_M05T, 0x1,
+ SHU_AC_TIME_05T_TMRRI_05T, 0x0,
+ SHU_AC_TIME_05T_TMRWCKEL_05T, 0x0,
+ SHU_AC_TIME_05T_BGTRRD_05T, 0x0,
+ SHU_AC_TIME_05T_BGTCCD_05T, 0x0,
+ SHU_AC_TIME_05T_BGTWTR_M05T, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_ac_time_05t,
+ SHU_AC_TIME_05T_TR2W_05T, 0x0,
+ SHU_AC_TIME_05T_TWTR_M05T, 0x0,
+ SHU_AC_TIME_05T_XRTR2W_05T, 0x0,
+ SHU_AC_TIME_05T_TMRD_05T, 0x1,
+ SHU_AC_TIME_05T_TMRW_05T, 0x0,
+ SHU_AC_TIME_05T_TMRR2MRW_05T, 0x1,
+ SHU_AC_TIME_05T_TW2MRW_05T, 0x0,
+ SHU_AC_TIME_05T_TR2MRW_05T, 0x1,
+ SHU_AC_TIME_05T_TPBR2ACT_05T, 0x1,
+ SHU_AC_TIME_05T_XRTW2R_M05T, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim_xrt,
+ SHU_ACTIM_XRT_XRTR2R, 0x03,
+ SHU_ACTIM_XRT_XRTR2W, 0x08,
+ SHU_ACTIM_XRT_XRTW2R, 0x1,
+ SHU_ACTIM_XRT_XRTW2W, 0x05);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim0,
+ SHU_ACTIM0_TWTR, 0x08,
+ SHU_ACTIM0_TWR, 0x0d,
+ SHU_ACTIM0_TRRD, 0x4,
+ SHU_ACTIM0_TRCD, 0x8,
+ SHU_ACTIM0_CKELCKCNT, 0x3);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim1,
+ SHU_ACTIM1_TRPAB, 0x8,
+ SHU_ACTIM1_TMRWCKEL, 0x8,
+ SHU_ACTIM1_TRP, 0x7,
+ SHU_ACTIM1_TRAS, 0x0b,
+ SHU_ACTIM1_TRC, 0x00);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim2,
+ SHU_ACTIM2_TXP, 0x0,
+ SHU_ACTIM2_TMRRI, 0x0c,
+ SHU_ACTIM2_TRTP, 0x2,
+ SHU_ACTIM2_TR2W, 0x09,
+ SHU_ACTIM2_TFAW, 0x0b);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim3,
+ SHU_ACTIM3_TRFCPB, 0x4d,
+ SHU_ACTIM3_MANTMRR, 0x4,
+ SHU_ACTIM3_TR2MRR, 0x4,
+ SHU_ACTIM3_TRFC, 0xa5,
+ SHU_ACTIM3_TWTR_L, 0x00);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim4,
+ SHU_ACTIM4_TXREFCNT, 0x0b5,
+ SHU_ACTIM4_TMRR2MRW, 0x0d,
+ SHU_ACTIM4_TMRR2W, 0x0c,
+ SHU_ACTIM4_TZQCS, 0x28);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim5,
+ SHU_ACTIM5_TR2PD, 0x0e,
+ SHU_ACTIM5_TWTPD, 0x10,
+ SHU_ACTIM5_TPBR2PBR, 0x23,
+ SHU_ACTIM5_TPBR2ACT, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim6,
+ SHU_ACTIM6_TZQLAT2, 0x0e,
+ SHU_ACTIM6_TMRD, 0x7,
+ SHU_ACTIM6_TMRW, 0x5,
+ SHU_ACTIM6_TW2MRW, 0x0a,
+ SHU_ACTIM6_TR2MRW, 0x10);
+ SET32_BITFIELDS(&ch[0].ao.shu_ckectrl,
+ SHU_CKECTRL_TPDE_05T, 0x1,
+ SHU_CKECTRL_TPDX_05T, 0x0,
+ SHU_CKECTRL_TPDE, 0x1,
+ SHU_CKECTRL_TPDX, 0x1,
+ SHU_CKECTRL_TCKEPRD, 0x3,
+ SHU_CKECTRL_TCKESRX, 0x3);
+ SET32_BITFIELDS(&ch[0].ao.shu_misc,
+ SHU_MISC_REQQUE_MAXCNT, 0x2,
+ SHU_MISC_DCMDLYREF, 0x7,
+ SHU_MISC_DAREFEN, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_dq8,
+ SHU_B0_DQ8_R_DMRXDVS_UPD_FORCE_CYC_B0, 0x00e7,
+ SHU_B0_DQ8_R_DMRXDVS_UPD_FORCE_EN_B0, 0x0,
+ SHU_B0_DQ8_R_DMRANK_RXDLY_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_RMRODTEN_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_RMRX_TOPHY_CG_IG_B0, 0x1,
+ SHU_B0_DQ8_R_DMRXDVS_RDSEL_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMRXDVS_RDSEL_TOG_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMRXDLY_CG_IG_B0, 0x1,
+ SHU_B0_DQ8_R_DMDQSIEN_FLAG_SYNC_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMDQSIEN_FLAG_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMDQSIEN_RDSEL_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMDQSIEN_RDSEL_TOG_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMRANK_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMRANK_CHG_PIPE_CG_IG_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_dq8,
+ SHU_B1_DQ8_R_DMRXDVS_UPD_FORCE_CYC_B1, 0x00e7,
+ SHU_B1_DQ8_R_DMRXDVS_UPD_FORCE_EN_B1, 0x0,
+ SHU_B1_DQ8_R_DMRANK_RXDLY_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_RMRODTEN_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_RMRX_TOPHY_CG_IG_B1, 0x1,
+ SHU_B1_DQ8_R_DMRXDVS_RDSEL_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMRXDVS_RDSEL_TOG_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMRXDLY_CG_IG_B1, 0x1,
+ SHU_B1_DQ8_R_DMDQSIEN_FLAG_SYNC_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMDQSIEN_FLAG_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMDQSIEN_RDSEL_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMDQSIEN_RDSEL_TOG_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMRANK_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMRANK_CHG_PIPE_CG_IG_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_dq5,
+ SHU_B0_DQ5_RG_RX_ARDQ_VREF_SEL_B0, 0x0e,
+ SHU_B0_DQ5_RG_RX_ARDQ_VREF_BYPASS_B0, 0x0,
+ SHU_B0_DQ5_RG_ARPI_FB_B0, 0x00,
+ SHU_B0_DQ5_RG_RX_ARDQS0_DQSIEN_DLY_B0, 0x0,
+ SHU_B0_DQ5_RG_RX_ARDQS_DQSIEN_RB_DLY_B0, 0x0,
+ SHU_B0_DQ5_RG_RX_ARDQS0_DVS_DLY_B0, 0x4,
+ SHU_B0_DQ5_RG_RX_ARDQ_FIFO_DQSI_DLY_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_dq5,
+ SHU_B1_DQ5_RG_RX_ARDQ_VREF_SEL_B1, 0x0e,
+ SHU_B1_DQ5_RG_RX_ARDQ_VREF_BYPASS_B1, 0x0,
+ SHU_B1_DQ5_RG_ARPI_FB_B1, 0x00,
+ SHU_B1_DQ5_RG_RX_ARDQS0_DQSIEN_DLY_B1, 0x0,
+ SHU_B1_DQ5_RG_RX_ARDQS_DQSIEN_RB_DLY_B1, 0x0,
+ SHU_B1_DQ5_RG_RX_ARDQS0_DVS_DLY_B1, 0x4,
+ SHU_B1_DQ5_RG_RX_ARDQ_FIFO_DQSI_DLY_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_rxdly0,
+ SHU_R0_B0_RXDLY0_RX_ARDQ0_R_DLY_B0, 0x6d,
+ SHU_R0_B0_RXDLY0_RX_ARDQ0_F_DLY_B0, 0x6d,
+ SHU_R0_B0_RXDLY0_RX_ARDQ1_R_DLY_B0, 0x6d,
+ SHU_R0_B0_RXDLY0_RX_ARDQ1_F_DLY_B0, 0x6d);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_rxdly1,
+ SHU_R0_B0_RXDLY1_RX_ARDQ2_R_DLY_B0, 0x6d,
+ SHU_R0_B0_RXDLY1_RX_ARDQ2_F_DLY_B0, 0x6d,
+ SHU_R0_B0_RXDLY1_RX_ARDQ3_R_DLY_B0, 0x6d,
+ SHU_R0_B0_RXDLY1_RX_ARDQ3_F_DLY_B0, 0x6d);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_rxdly2,
+ SHU_R0_B0_RXDLY2_RX_ARDQ4_R_DLY_B0, 0x6d,
+ SHU_R0_B0_RXDLY2_RX_ARDQ4_F_DLY_B0, 0x6d,
+ SHU_R0_B0_RXDLY2_RX_ARDQ5_R_DLY_B0, 0x6d,
+ SHU_R0_B0_RXDLY2_RX_ARDQ5_F_DLY_B0, 0x6d);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_rxdly3,
+ SHU_R0_B0_RXDLY3_RX_ARDQ6_R_DLY_B0, 0x6d,
+ SHU_R0_B0_RXDLY3_RX_ARDQ6_F_DLY_B0, 0x6d,
+ SHU_R0_B0_RXDLY3_RX_ARDQ7_R_DLY_B0, 0x6d,
+ SHU_R0_B0_RXDLY3_RX_ARDQ7_F_DLY_B0, 0x6d);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_rxdly4,
+ SHU_R0_B0_RXDLY4_RX_ARDQM0_R_DLY_B0, 0x6d,
+ SHU_R0_B0_RXDLY4_RX_ARDQM0_F_DLY_B0, 0x6d);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_rxdly5,
+ SHU_R0_B0_RXDLY5_RX_ARDQS0_R_DLY_B0, 0x061,
+ SHU_R0_B0_RXDLY5_RX_ARDQS0_F_DLY_B0, 0x061);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_rxdly0,
+ SHU_R0_B0_RXDLY0_RX_ARDQ0_R_DLY_B0, 0x6c,
+ SHU_R0_B0_RXDLY0_RX_ARDQ0_F_DLY_B0, 0x6c,
+ SHU_R0_B0_RXDLY0_RX_ARDQ1_R_DLY_B0, 0x6c,
+ SHU_R0_B0_RXDLY0_RX_ARDQ1_F_DLY_B0, 0x6c);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_rxdly1,
+ SHU_R0_B0_RXDLY1_RX_ARDQ2_R_DLY_B0, 0x6c,
+ SHU_R0_B0_RXDLY1_RX_ARDQ2_F_DLY_B0, 0x6c,
+ SHU_R0_B0_RXDLY1_RX_ARDQ3_R_DLY_B0, 0x6c,
+ SHU_R0_B0_RXDLY1_RX_ARDQ3_F_DLY_B0, 0x6c);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_rxdly2,
+ SHU_R0_B0_RXDLY2_RX_ARDQ4_R_DLY_B0, 0x6c,
+ SHU_R0_B0_RXDLY2_RX_ARDQ4_F_DLY_B0, 0x6c,
+ SHU_R0_B0_RXDLY2_RX_ARDQ5_R_DLY_B0, 0x6c,
+ SHU_R0_B0_RXDLY2_RX_ARDQ5_F_DLY_B0, 0x6c);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_rxdly3,
+ SHU_R0_B0_RXDLY3_RX_ARDQ6_R_DLY_B0, 0x6c,
+ SHU_R0_B0_RXDLY3_RX_ARDQ6_F_DLY_B0, 0x6c,
+ SHU_R0_B0_RXDLY3_RX_ARDQ7_R_DLY_B0, 0x6c,
+ SHU_R0_B0_RXDLY3_RX_ARDQ7_F_DLY_B0, 0x6c);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_rxdly4,
+ SHU_R0_B0_RXDLY4_RX_ARDQM0_R_DLY_B0, 0x6c,
+ SHU_R0_B0_RXDLY4_RX_ARDQM0_F_DLY_B0, 0x6c);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_rxdly5,
+ SHU_R0_B0_RXDLY5_RX_ARDQS0_R_DLY_B0, 0x060,
+ SHU_R0_B0_RXDLY5_RX_ARDQS0_F_DLY_B0, 0x060);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_rxdly0,
+ SHU_R0_B1_RXDLY0_RX_ARDQ0_R_DLY_B1, 0x6d,
+ SHU_R0_B1_RXDLY0_RX_ARDQ0_F_DLY_B1, 0x6d,
+ SHU_R0_B1_RXDLY0_RX_ARDQ1_R_DLY_B1, 0x6d,
+ SHU_R0_B1_RXDLY0_RX_ARDQ1_F_DLY_B1, 0x6d);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_rxdly1,
+ SHU_R0_B1_RXDLY1_RX_ARDQ2_R_DLY_B1, 0x6d,
+ SHU_R0_B1_RXDLY1_RX_ARDQ2_F_DLY_B1, 0x6d,
+ SHU_R0_B1_RXDLY1_RX_ARDQ3_R_DLY_B1, 0x6d,
+ SHU_R0_B1_RXDLY1_RX_ARDQ3_F_DLY_B1, 0x6d);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_rxdly2,
+ SHU_R0_B1_RXDLY2_RX_ARDQ4_R_DLY_B1, 0x6d,
+ SHU_R0_B1_RXDLY2_RX_ARDQ4_F_DLY_B1, 0x6d,
+ SHU_R0_B1_RXDLY2_RX_ARDQ5_R_DLY_B1, 0x6d,
+ SHU_R0_B1_RXDLY2_RX_ARDQ5_F_DLY_B1, 0x6d);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_rxdly3,
+ SHU_R0_B1_RXDLY3_RX_ARDQ6_R_DLY_B1, 0x6d,
+ SHU_R0_B1_RXDLY3_RX_ARDQ6_F_DLY_B1, 0x6d,
+ SHU_R0_B1_RXDLY3_RX_ARDQ7_R_DLY_B1, 0x6d,
+ SHU_R0_B1_RXDLY3_RX_ARDQ7_F_DLY_B1, 0x6d);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_rxdly4,
+ SHU_R0_B1_RXDLY4_RX_ARDQM0_R_DLY_B1, 0x6d,
+ SHU_R0_B1_RXDLY4_RX_ARDQM0_F_DLY_B1, 0x6d);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_rxdly5,
+ SHU_R0_B1_RXDLY5_RX_ARDQS0_R_DLY_B1, 0x061,
+ SHU_R0_B1_RXDLY5_RX_ARDQS0_F_DLY_B1, 0x061);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_rxdly0,
+ SHU_R0_B1_RXDLY0_RX_ARDQ0_R_DLY_B1, 0x6c,
+ SHU_R0_B1_RXDLY0_RX_ARDQ0_F_DLY_B1, 0x6c,
+ SHU_R0_B1_RXDLY0_RX_ARDQ1_R_DLY_B1, 0x6c,
+ SHU_R0_B1_RXDLY0_RX_ARDQ1_F_DLY_B1, 0x6c);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_rxdly1,
+ SHU_R0_B1_RXDLY1_RX_ARDQ2_R_DLY_B1, 0x6c,
+ SHU_R0_B1_RXDLY1_RX_ARDQ2_F_DLY_B1, 0x6c,
+ SHU_R0_B1_RXDLY1_RX_ARDQ3_R_DLY_B1, 0x6c,
+ SHU_R0_B1_RXDLY1_RX_ARDQ3_F_DLY_B1, 0x6c);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_rxdly2,
+ SHU_R0_B1_RXDLY2_RX_ARDQ4_R_DLY_B1, 0x6c,
+ SHU_R0_B1_RXDLY2_RX_ARDQ4_F_DLY_B1, 0x6c,
+ SHU_R0_B1_RXDLY2_RX_ARDQ5_R_DLY_B1, 0x6c,
+ SHU_R0_B1_RXDLY2_RX_ARDQ5_F_DLY_B1, 0x6c);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_rxdly3,
+ SHU_R0_B1_RXDLY3_RX_ARDQ6_R_DLY_B1, 0x6c,
+ SHU_R0_B1_RXDLY3_RX_ARDQ6_F_DLY_B1, 0x6c,
+ SHU_R0_B1_RXDLY3_RX_ARDQ7_R_DLY_B1, 0x6c,
+ SHU_R0_B1_RXDLY3_RX_ARDQ7_F_DLY_B1, 0x6c);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_rxdly4,
+ SHU_R0_B1_RXDLY4_RX_ARDQM0_R_DLY_B1, 0x6c,
+ SHU_R0_B1_RXDLY4_RX_ARDQM0_F_DLY_B1, 0x6c);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_rxdly5,
+ SHU_R0_B1_RXDLY5_RX_ARDQS0_R_DLY_B1, 0x060,
+ SHU_R0_B1_RXDLY5_RX_ARDQS0_F_DLY_B1, 0x060);
+ SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[0].b0_dq9,
+ B0_DQ9_RG_RX_ARDQ_STBEN_RESETB_B0, 0x1,
+ B0_DQ9_RG_RX_ARDQS0_STBEN_RESETB_B0, 0x0,
+ B0_DQ9_RG_RX_ARDQS0_DQSIENMODE_B0, 0x0,
+ B0_DQ9_R_DMRXDVS_R_F_DLY_RK_OPT_B0, 0x1,
+ B0_DQ9_R_DMRXFIFO_STBENCMP_EN_B0, 0x0,
+ B0_DQ9_R_IN_GATE_EN_LOW_OPT_B0, 0x00,
+ B0_DQ9_R_DMDQSIEN_VALID_LAT_B0, 0x0,
+ B0_DQ9_R_DMDQSIEN_RDSEL_LAT_B0, 0x0,
+ B0_DQ9_R_DMRXDVS_VALID_LAT_B0, 0x0,
+ B0_DQ9_R_DMRXDVS_RDSEL_LAT_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[1].b0_dq9,
+ B1_DQ9_RG_RX_ARDQ_STBEN_RESETB_B1, 0x1,
+ B1_DQ9_RG_RX_ARDQS0_STBEN_RESETB_B1, 0x0,
+ B1_DQ9_RG_RX_ARDQS0_DQSIENMODE_B1, 0x0,
+ B1_DQ9_R_DMRXDVS_R_F_DLY_RK_OPT_B1, 0x1,
+ B1_DQ9_R_DMRXFIFO_STBENCMP_EN_B1, 0x0,
+ B1_DQ9_R_IN_GATE_EN_LOW_OPT_B1, 0x00,
+ B1_DQ9_R_DMDQSIEN_VALID_LAT_B1, 0x0,
+ B1_DQ9_R_DMDQSIEN_RDSEL_LAT_B1, 0x0,
+ B1_DQ9_R_DMRXDVS_VALID_LAT_B1, 0x0,
+ B1_DQ9_R_DMRXDVS_RDSEL_LAT_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[0].b0_dq4,
+ B0_DQ4_RG_RX_ARDQS_EYE_R_DLY_B0, 0x75,
+ B0_DQ4_RG_RX_ARDQS_EYE_F_DLY_B0, 0x75,
+ B0_DQ4_RG_RX_ARDQ_EYE_R_DLY_B0, 0x2d,
+ B0_DQ4_RG_RX_ARDQ_EYE_F_DLY_B0, 0x2d);
+ SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[1].b0_dq4,
+ B1_DQ4_RG_RX_ARDQS_EYE_R_DLY_B1, 0x75,
+ B1_DQ4_RG_RX_ARDQS_EYE_F_DLY_B1, 0x75,
+ B1_DQ4_RG_RX_ARDQ_EYE_R_DLY_B1, 0x2d,
+ B1_DQ4_RG_RX_ARDQ_EYE_F_DLY_B1, 0x2d);
+ SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[0].b0_dq5,
+ B0_DQ5_RG_RX_ARDQ_EYE_VREF_SEL_B0, 0x0e,
+ B0_DQ5_RG_RX_ARDQ_VREF_EN_B0, 0x0,
+ B0_DQ5_RG_RX_ARDQ_EYE_VREF_EN_B0, 0x0,
+ B0_DQ5_RG_RX_ARDQ_EYE_SEL_B0, 0x0,
+ B0_DQ5_RG_RX_ARDQ_EYE_EN_B0, 0x0,
+ B0_DQ5_RG_RX_ARDQ_EYE_STBEN_RESETB_B0, 0x1,
+ B0_DQ5_RG_RX_ARDQS0_DVS_EN_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[1].b0_dq5,
+ B1_DQ5_RG_RX_ARDQ_EYE_VREF_SEL_B1, 0x0e,
+ B1_DQ5_RG_RX_ARDQ_VREF_EN_B1, 0x0,
+ B1_DQ5_RG_RX_ARDQ_EYE_VREF_EN_B1, 0x0,
+ B1_DQ5_RG_RX_ARDQ_EYE_SEL_B1, 0x0,
+ B1_DQ5_RG_RX_ARDQ_EYE_EN_B1, 0x0,
+ B1_DQ5_RG_RX_ARDQ_EYE_STBEN_RESETB_B1, 0x1,
+ B1_DQ5_RG_RX_ARDQS0_DVS_EN_B1, 0x0);
+}
+
+static void sv_algorithm_assistance_lp4_4266(void)
+{
+ SET32_BITFIELDS(&ch[0].phy_ao.shu_misc_rdsel_track,
+ SHU_MISC_RDSEL_TRACK_DMDATLAT_I, 0x10,
+ SHU_MISC_RDSEL_TRACK_RDSEL_HWSAVE_MSK, 0x1,
+ SHU_MISC_RDSEL_TRACK_RDSEL_TRACK_EN, 0x0,
+ SHU_MISC_RDSEL_TRACK_SHU_GW_THRD_NEG, 0xfcb,
+ SHU_MISC_RDSEL_TRACK_SHU_GW_THRD_POS, 0x035);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_rdat,
+ MISC_SHU_RDAT_DATLAT, 0x10,
+ MISC_SHU_RDAT_DATLAT_DSEL, 0x0f,
+ MISC_SHU_RDAT_DATLAT_DSEL_PHY, 0x0f);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_phy_rx_ctrl,
+ MISC_SHU_PHY_RX_CTRL_RANK_RXDLY_UPDLAT_EN, 0x1,
+ MISC_SHU_PHY_RX_CTRL_RANK_RXDLY_UPD_OFFSET, 0x2,
+ MISC_SHU_PHY_RX_CTRL_RX_IN_GATE_EN_PRE_OFFSET, 0x2,
+ MISC_SHU_PHY_RX_CTRL_RX_IN_GATE_EN_HEAD, 0x1,
+ MISC_SHU_PHY_RX_CTRL_RX_IN_GATE_EN_TAIL, 0x1,
+ MISC_SHU_PHY_RX_CTRL_RX_IN_BUFF_EN_HEAD, 0x2,
+ MISC_SHU_PHY_RX_CTRL_RX_IN_BUFF_EN_TAIL, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_rankctl,
+ MISC_SHU_RANKCTL_RANKINCTL_RXDLY, 0x4,
+ MISC_SHU_RANKCTL_RANK_RXDLY_OPT, 0x1,
+ MISC_SHU_RANKCTL_RANKSEL_SELPH_FRUN, 0x1,
+ MISC_SHU_RANKCTL_RANKINCTL_STB, 0x6,
+ MISC_SHU_RANKCTL_RANKINCTL, 0x5,
+ MISC_SHU_RANKCTL_RANKINCTL_ROOT1, 0x5,
+ MISC_SHU_RANKCTL_RANKINCTL_PHY, 0x8);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_rank_sel_lat,
+ MISC_SHU_RANK_SEL_LAT_RANK_SEL_LAT_B0, 0x2,
+ MISC_SHU_RANK_SEL_LAT_RANK_SEL_LAT_B1, 0x2,
+ MISC_SHU_RANK_SEL_LAT_RANK_SEL_LAT_CA, 0x2);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_rk[0].misc_shu_rk_dqsctl,
+ MISC_SHU_RK_DQSCTL_DQSINCTL, 0x7);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_rk[1].misc_shu_rk_dqsctl,
+ MISC_SHU_RK_DQSCTL_DQSINCTL, 0x7);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_dqsien_mck_ui_dly,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P0_B0, 0x1,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P1_B0, 0x5,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P0_B0, 0x1,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P1_B0, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_rk_b0_dqsien_pi_dly,
+ SHU_RK_B0_DQSIEN_PI_DLY_DQSIEN_PI_B0, 0x01);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_dqsien_mck_ui_dly,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P0_B0, 0x9,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P1_B0, 0xd,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P0_B0, 0x1,
+ SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P1_B0, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_rk_b0_dqsien_pi_dly,
+ SHU_RK_B0_DQSIEN_PI_DLY_DQSIEN_PI_B0, 0x08);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_dqsien_mck_ui_dly,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P0_B1, 0x1,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P1_B1, 0x5,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P0_B1, 0x1,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P1_B1, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_rk_b0_dqsien_pi_dly,
+ SHU_RK_B1_DQSIEN_PI_DLY_DQSIEN_PI_B1, 0x01);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_dqsien_mck_ui_dly,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P0_B1, 0x9,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P1_B1, 0xd,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P0_B1, 0x1,
+ SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P1_B1, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_rk_b0_dqsien_pi_dly,
+ SHU_RK_B1_DQSIEN_PI_DLY_DQSIEN_PI_B1, 0x08);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_odtctrl,
+ MISC_SHU_ODTCTRL_RODTEN, 0x1,
+ MISC_SHU_ODTCTRL_RODTENSTB_SELPH_CG_IG, 0x0,
+ MISC_SHU_ODTCTRL_RODT_LAT, 0x7,
+ MISC_SHU_ODTCTRL_RODTEN_SELPH_FRUN, 0x0,
+ MISC_SHU_ODTCTRL_RODTDLY_LAT_OPT, 0x0,
+ MISC_SHU_ODTCTRL_FIXRODT, 0x0,
+ MISC_SHU_ODTCTRL_RODTEN_OPT, 0x1,
+ MISC_SHU_ODTCTRL_RODTE2, 0x1,
+ MISC_SHU_ODTCTRL_RODTE, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_dq7,
+ SHU_B0_DQ7_R_DMRANKRXDVS_B0, 0x0,
+ SHU_B0_DQ7_R_DMDQMDBI_EYE_SHU_B0, 0x0,
+ SHU_B0_DQ7_R_DMDQMDBI_SHU_B0, 0x0,
+ SHU_B0_DQ7_R_DMRXDVS_DQM_FLAGSEL_B0, 0x0,
+ SHU_B0_DQ7_R_DMRXDVS_PBYTE_FLAG_OPT_B0, 0x0,
+ SHU_B0_DQ7_R_DMRXDVS_PBYTE_DQM_EN_B0, 0x0,
+ SHU_B0_DQ7_R_DMRXTRACK_DQM_EN_B0, 0x0,
+ SHU_B0_DQ7_R_DMRODTEN_B0, 0x1,
+ SHU_B0_DQ7_R_DMARPI_CG_FB2DLL_DCM_EN_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_dq7,
+ SHU_B0_DQ7_R_DMTX_ARPI_CG_DQ_NEW_B0, 0x0,
+ SHU_B0_DQ7_R_DMTX_ARPI_CG_DQS_NEW_B0, 0x0,
+ SHU_B0_DQ7_R_DMTX_ARPI_CG_DQM_NEW_B0, 0x0,
+ SHU_B0_DQ7_R_LP4Y_SDN_MODE_DQS0, 0x0,
+ SHU_B0_DQ7_R_DMRXRANK_DQ_EN_B0, 0x1,
+ SHU_B0_DQ7_R_DMRXRANK_DQ_LAT_B0, 0x2,
+ SHU_B0_DQ7_R_DMRXRANK_DQS_EN_B0, 0x1,
+ SHU_B0_DQ7_R_DMRXRANK_DQS_LAT_B0, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_dq7,
+ SHU_B1_DQ7_R_DMRANKRXDVS_B1, 0x0,
+ SHU_B1_DQ7_R_DMDQMDBI_EYE_SHU_B1, 0x0,
+ SHU_B1_DQ7_R_DMDQMDBI_SHU_B1, 0x0,
+ SHU_B1_DQ7_R_DMRXDVS_DQM_FLAGSEL_B1, 0x0,
+ SHU_B1_DQ7_R_DMRXDVS_PBYTE_FLAG_OPT_B1, 0x0,
+ SHU_B1_DQ7_R_DMRXDVS_PBYTE_DQM_EN_B1, 0x0,
+ SHU_B1_DQ7_R_DMRXTRACK_DQM_EN_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_dq7,
+ SHU_B1_DQ7_R_DMRODTEN_B1, 0x1,
+ SHU_B1_DQ7_R_DMARPI_CG_FB2DLL_DCM_EN_B1, 0x0,
+ SHU_B1_DQ7_R_DMTX_ARPI_CG_DQ_NEW_B1, 0x0,
+ SHU_B1_DQ7_R_DMTX_ARPI_CG_DQS_NEW_B1, 0x0,
+ SHU_B1_DQ7_R_DMTX_ARPI_CG_DQM_NEW_B1, 0x0,
+ SHU_B1_DQ7_R_LP4Y_SDN_MODE_DQS1, 0x0,
+ SHU_B1_DQ7_R_DMRXRANK_DQ_EN_B1, 0x1,
+ SHU_B1_DQ7_R_DMRXRANK_DQ_LAT_B1, 0x2,
+ SHU_B1_DQ7_R_DMRXRANK_DQS_EN_B1, 0x1,
+ SHU_B1_DQ7_R_DMRXRANK_DQS_LAT_B1, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_rk_b0_rodten_mck_ui_dly,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_UI_P0_B0, 0x4,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_UI_P1_B0, 0x4,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_MCK_P0_B0, 0x0,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_MCK_P1_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_rk_b0_rodten_mck_ui_dly,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_UI_P0_B0, 0x4,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_UI_P1_B0, 0x4,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_MCK_P0_B0, 0x1,
+ SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_MCK_P1_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_rk_b0_rodten_mck_ui_dly,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_UI_P0_B1, 0x4,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_UI_P1_B1, 0x4,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_MCK_P0_B1, 0x0,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_MCK_P1_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_rk_b0_rodten_mck_ui_dly,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_UI_P0_B1, 0x4,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_UI_P1_B1, 0x4,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_MCK_P0_B1, 0x1,
+ SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_MCK_P1_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_rx_cg_set0,
+ SHU_RX_CG_SET0_DLE_LAST_EXTEND3, 0x0,
+ SHU_RX_CG_SET0_READ_START_EXTEND3, 0x0,
+ SHU_RX_CG_SET0_DLE_LAST_EXTEND2, 0x1,
+ SHU_RX_CG_SET0_READ_START_EXTEND2, 0x1,
+ SHU_RX_CG_SET0_DLE_LAST_EXTEND1, 0x1,
+ SHU_RX_CG_SET0_READ_START_EXTEND1, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.shu_misc_rank_sel_stb,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_EN, 0x1,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_EN_B23, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_SERMODE, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_TRACK, 0x1,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_RXDLY_TRACK, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_PHASE_EN, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_PHSINCTL, 0x6,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_UI_PLUS, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_MCK_PLUS, 0x0,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_UI_MINUS, 0x2,
+ SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_MCK_MINUS, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_rk[0].misc_shu_rk_dqscal,
+ MISC_SHU_RK_DQSCAL_DQSIENLLMT, 0x60,
+ MISC_SHU_RK_DQSCAL_DQSIENLLMTEN, 0x1,
+ MISC_SHU_RK_DQSCAL_DQSIENHLMT, 0x3f,
+ MISC_SHU_RK_DQSCAL_DQSIENHLMTEN, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.misc_rk[1].misc_shu_rk_dqscal,
+ MISC_SHU_RK_DQSCAL_DQSIENLLMT, 0x60,
+ MISC_SHU_RK_DQSCAL_DQSIENLLMTEN, 0x1,
+ MISC_SHU_RK_DQSCAL_DQSIENHLMT, 0x3f,
+ MISC_SHU_RK_DQSCAL_DQSIENHLMTEN, 0x1);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_ini_uipi,
+ SHU_R0_B0_INI_UIPI_CURR_INI_PI_B0, 0x01,
+ SHU_R0_B0_INI_UIPI_CURR_INI_UI_B0, 0x11);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_ini_uipi,
+ SHU_R0_B1_INI_UIPI_CURR_INI_PI_B1, 0x01,
+ SHU_R0_B1_INI_UIPI_CURR_INI_UI_B1, 0x11);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_ini_uipi,
+ SHU_R0_B0_INI_UIPI_CURR_INI_PI_B0, 0x08,
+ SHU_R0_B0_INI_UIPI_CURR_INI_UI_B0, 0x19);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_ini_uipi,
+ SHU_R0_B1_INI_UIPI_CURR_INI_PI_B1, 0x08,
+ SHU_R0_B1_INI_UIPI_CURR_INI_UI_B1, 0x19);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_next_ini_uipi,
+ SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_PI_B0, 0x01,
+ SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_UI_B0, 0x11,
+ SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_UI_P1_B0, 0x15);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_next_ini_uipi,
+ SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_PI_B1, 0x01,
+ SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_UI_B1, 0x11,
+ SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_UI_P1_B1, 0x15);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_next_ini_uipi,
+ SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_PI_B0, 0x08,
+ SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_UI_B0, 0x19,
+ SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_UI_P1_B0, 0x1d);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_next_ini_uipi,
+ SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_PI_B1, 0x08,
+ SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_UI_B1, 0x19,
+ SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_UI_P1_B1, 0x1d);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_dq0,
+ SHU_R0_B0_DQ0_RG_RX_ARDQS0_R_DLY_DUTY, 0x0,
+ SHU_R0_B0_DQ0_RG_RX_ARDQS0_F_DLY_DUTY, 0x0,
+ SHU_R0_B0_DQ0_SW_ARPI_DQ_B0, 0x13,
+ SHU_R0_B0_DQ0_SW_ARPI_DQM_B0, 0x13,
+ SHU_R0_B0_DQ0_ARPI_PBYTE_B0, 0x00,
+ SHU_R0_B0_DQ0_DA_ARPI_DDR400_0D5UI_RK0_B0, 0x0,
+ SHU_R0_B0_DQ0_DA_RX_ARDQSIEN_0D5UI_RK0_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_dq0,
+ SHU_R0_B1_DQ0_RG_RX_ARDQS1_R_DLY_DUTY, 0x0,
+ SHU_R0_B1_DQ0_RG_RX_ARDQS1_F_DLY_DUTY, 0x0,
+ SHU_R0_B1_DQ0_SW_ARPI_DQ_B1, 0x16,
+ SHU_R0_B1_DQ0_SW_ARPI_DQM_B1, 0x16,
+ SHU_R0_B1_DQ0_ARPI_PBYTE_B1, 0x00,
+ SHU_R0_B1_DQ0_DA_ARPI_DDR400_0D5UI_RK0_B1, 0x0,
+ SHU_R0_B1_DQ0_DA_RX_ARDQSIEN_0D5UI_RK0_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_dq0,
+ SHU_R0_B0_DQ0_RG_RX_ARDQS0_R_DLY_DUTY, 0x0,
+ SHU_R0_B0_DQ0_RG_RX_ARDQS0_F_DLY_DUTY, 0x0,
+ SHU_R0_B0_DQ0_SW_ARPI_DQ_B0, 0x2b,
+ SHU_R0_B0_DQ0_SW_ARPI_DQM_B0, 0x2b,
+ SHU_R0_B0_DQ0_ARPI_PBYTE_B0, 0x01,
+ SHU_R0_B0_DQ0_DA_ARPI_DDR400_0D5UI_RK0_B0, 0x0,
+ SHU_R0_B0_DQ0_DA_RX_ARDQSIEN_0D5UI_RK0_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_dq0,
+ SHU_R0_B1_DQ0_RG_RX_ARDQS1_R_DLY_DUTY, 0x0,
+ SHU_R0_B1_DQ0_RG_RX_ARDQS1_F_DLY_DUTY, 0x0,
+ SHU_R0_B1_DQ0_SW_ARPI_DQ_B1, 0x2b,
+ SHU_R0_B1_DQ0_SW_ARPI_DQM_B1, 0x2b,
+ SHU_R0_B1_DQ0_ARPI_PBYTE_B1, 0x01,
+ SHU_R0_B1_DQ0_DA_ARPI_DDR400_0D5UI_RK0_B1, 0x0,
+ SHU_R0_B1_DQ0_DA_RX_ARDQSIEN_0D5UI_RK0_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_dcm_ctrl0,
+ SHU_DCM_CTRL0_DDRPHY_CLK_EN_OPT, 0x1,
+ SHU_DCM_CTRL0_DPHY_CMD_CLKEN_EXTCNT, 0x3,
+ SHU_DCM_CTRL0_DDRPHY_CLK_DYN_GATING_SEL, 0x5,
+ SHU_DCM_CTRL0_APHYPI_CKCGL_CNT, 0x2,
+ SHU_DCM_CTRL0_APHYPI_CKCGH_CNT, 0x4,
+ SHU_DCM_CTRL0_FASTWAKE2, 0x0,
+ SHU_DCM_CTRL0_FASTWAKE, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_aphy_tx_picg_ctrl,
+ SHU_APHY_TX_PICG_CTRL_TX_PICG_CNT, 0x3,
+ SHU_APHY_TX_PICG_CTRL_TX_DQS_SEL_P1, 0x3,
+ SHU_APHY_TX_PICG_CTRL_TX_DQS_SEL_P0, 0x3,
+ SHU_APHY_TX_PICG_CTRL_DPHY_TX_DCM_EXTCNT, 0x2,
+ SHU_APHY_TX_PICG_CTRL_DDRPHY_CLK_EN_COMB_TX_OPT, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_aphy_tx_picg_ctrl,
+ SHURK_APHY_TX_PICG_CTRL_TX_DQ_RK_SEL_P1, 0x4,
+ SHURK_APHY_TX_PICG_CTRL_TX_DQ_RK_SEL_P0, 0x3);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_aphy_tx_picg_ctrl,
+ SHURK_APHY_TX_PICG_CTRL_TX_DQ_RK_SEL_P1, 0x4,
+ SHURK_APHY_TX_PICG_CTRL_TX_DQ_RK_SEL_P0, 0x3);
+ SET32_BITFIELDS(&ch[0].ao.shu_new_xrw2w_ctrl,
+ SHU_NEW_XRW2W_CTRL_TX_PI_UPDCTL_B0, 0x2,
+ SHU_NEW_XRW2W_CTRL_TX_PI_UPDCTL_B1, 0x2,
+ SHU_NEW_XRW2W_CTRL_TXPI_UPD_MODE, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_selph_dqs0,
+ SHU_SELPH_DQS0_TXDLY_DQS0, 0x4,
+ SHU_SELPH_DQS0_TXDLY_DQS1, 0x4,
+ SHU_SELPH_DQS0_TXDLY_DQS2, 0x1,
+ SHU_SELPH_DQS0_TXDLY_DQS3, 0x1,
+ SHU_SELPH_DQS0_TXDLY_OEN_DQS0, 0x4,
+ SHU_SELPH_DQS0_TXDLY_OEN_DQS1, 0x4,
+ SHU_SELPH_DQS0_TXDLY_OEN_DQS2, 0x1,
+ SHU_SELPH_DQS0_TXDLY_OEN_DQS3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_selph_dqs1,
+ SHU_SELPH_DQS1_DLY_DQS0, 0x5,
+ SHU_SELPH_DQS1_DLY_DQS1, 0x5,
+ SHU_SELPH_DQS1_DLY_DQS2, 0x1,
+ SHU_SELPH_DQS1_DLY_DQS3, 0x1,
+ SHU_SELPH_DQS1_DLY_OEN_DQS0, 0x2,
+ SHU_SELPH_DQS1_DLY_OEN_DQS1, 0x2,
+ SHU_SELPH_DQS1_DLY_OEN_DQS2, 0x1,
+ SHU_SELPH_DQS1_DLY_OEN_DQS3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_selph_dq0,
+ SHURK_SELPH_DQ0_TXDLY_DQ0, 0x4,
+ SHURK_SELPH_DQ0_TXDLY_DQ1, 0x4,
+ SHURK_SELPH_DQ0_TXDLY_DQ2, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_DQ3, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ0, 0x4,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ1, 0x4,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ2, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_selph_dq1,
+ SHURK_SELPH_DQ1_TXDLY_DQM0, 0x4,
+ SHURK_SELPH_DQ1_TXDLY_DQM1, 0x4,
+ SHURK_SELPH_DQ1_TXDLY_DQM2, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_DQM3, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM0, 0x4,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM1, 0x4,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM2, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_selph_dq2,
+ SHURK_SELPH_DQ2_DLY_DQ0, 0x6,
+ SHURK_SELPH_DQ2_DLY_DQ1, 0x6,
+ SHURK_SELPH_DQ2_DLY_DQ2, 0x1,
+ SHURK_SELPH_DQ2_DLY_DQ3, 0x1,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ0, 0x3,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ1, 0x3,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ2, 0x1,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_selph_dq3,
+ SHURK_SELPH_DQ3_DLY_DQM0, 0x6,
+ SHURK_SELPH_DQ3_DLY_DQM1, 0x6,
+ SHURK_SELPH_DQ3_DLY_DQM2, 0x1,
+ SHURK_SELPH_DQ3_DLY_DQM3, 0x1,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM0, 0x3,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM1, 0x3,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM2, 0x1,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_selph_dq0,
+ SHURK_SELPH_DQ0_TXDLY_DQ0, 0x4,
+ SHURK_SELPH_DQ0_TXDLY_DQ1, 0x4,
+ SHURK_SELPH_DQ0_TXDLY_DQ2, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_DQ3, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ0, 0x4,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ1, 0x4,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ2, 0x1,
+ SHURK_SELPH_DQ0_TXDLY_OEN_DQ3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_selph_dq1,
+ SHURK_SELPH_DQ1_TXDLY_DQM0, 0x4,
+ SHURK_SELPH_DQ1_TXDLY_DQM1, 0x4,
+ SHURK_SELPH_DQ1_TXDLY_DQM2, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_DQM3, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM0, 0x4,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM1, 0x4,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM2, 0x1,
+ SHURK_SELPH_DQ1_TXDLY_OEN_DQM3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_selph_dq2,
+ SHURK_SELPH_DQ2_DLY_DQ0, 0x7,
+ SHURK_SELPH_DQ2_DLY_DQ1, 0x7,
+ SHURK_SELPH_DQ2_DLY_DQ2, 0x1,
+ SHURK_SELPH_DQ2_DLY_DQ3, 0x1,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ0, 0x4,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ1, 0x4,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ2, 0x1,
+ SHURK_SELPH_DQ2_DLY_OEN_DQ3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_selph_dq3,
+ SHURK_SELPH_DQ3_DLY_DQM0, 0x7,
+ SHURK_SELPH_DQ3_DLY_DQM1, 0x7,
+ SHURK_SELPH_DQ3_DLY_DQM2, 0x1,
+ SHURK_SELPH_DQ3_DLY_DQM3, 0x1,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM0, 0x4,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM1, 0x4,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM2, 0x1,
+ SHURK_SELPH_DQ3_DLY_OEN_DQM3, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_dqs2dq_cal1,
+ SHURK_DQS2DQ_CAL1_BOOT_ORIG_UI_RK0_DQ0, 0x013,
+ SHURK_DQS2DQ_CAL1_BOOT_ORIG_UI_RK0_DQ1, 0x016);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_dqs2dq_cal2,
+ SHURK_DQS2DQ_CAL2_BOOT_TARG_UI_RK0_DQ0, 0x013,
+ SHURK_DQS2DQ_CAL2_BOOT_TARG_UI_RK0_DQ1, 0x016);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_dqs2dq_cal5,
+ SHURK_DQS2DQ_CAL5_BOOT_TARG_UI_RK0_DQM0, 0x013,
+ SHURK_DQS2DQ_CAL5_BOOT_TARG_UI_RK0_DQM1, 0x016);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_dqs2dq_cal1,
+ SHURK_DQS2DQ_CAL1_BOOT_ORIG_UI_RK0_DQ0, 0x02b,
+ SHURK_DQS2DQ_CAL1_BOOT_ORIG_UI_RK0_DQ1, 0x02b);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_dqs2dq_cal2,
+ SHURK_DQS2DQ_CAL2_BOOT_TARG_UI_RK0_DQ0, 0x02b,
+ SHURK_DQS2DQ_CAL2_BOOT_TARG_UI_RK0_DQ1, 0x02b);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_dqs2dq_cal5,
+ SHURK_DQS2DQ_CAL5_BOOT_TARG_UI_RK0_DQM0, 0x02b,
+ SHURK_DQS2DQ_CAL5_BOOT_TARG_UI_RK0_DQM1, 0x02b);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[0].shurk_pi,
+ SHURK_PI_RK0_ARPI_DQ_B1, 0x16,
+ SHURK_PI_RK0_ARPI_DQ_B0, 0x13,
+ SHURK_PI_RK0_ARPI_DQM_B1, 0x16,
+ SHURK_PI_RK0_ARPI_DQM_B0, 0x13);
+ SET32_BITFIELDS(&ch[0].ao.shu_rk[1].shurk_pi,
+ SHURK_PI_RK0_ARPI_DQ_B1, 0x2b,
+ SHURK_PI_RK0_ARPI_DQ_B0, 0x2b,
+ SHURK_PI_RK0_ARPI_DQM_B1, 0x2b,
+ SHURK_PI_RK0_ARPI_DQM_B0, 0x2b);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_txdly0,
+ SHU_R0_B0_TXDLY0_TX_ARDQ0_DLY_B0, 0x10,
+ SHU_R0_B0_TXDLY0_TX_ARDQ1_DLY_B0, 0x10,
+ SHU_R0_B0_TXDLY0_TX_ARDQ2_DLY_B0, 0x10,
+ SHU_R0_B0_TXDLY0_TX_ARDQ3_DLY_B0, 0x10);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_txdly1,
+ SHU_R0_B0_TXDLY1_TX_ARDQ4_DLY_B0, 0x10,
+ SHU_R0_B0_TXDLY1_TX_ARDQ5_DLY_B0, 0x10,
+ SHU_R0_B0_TXDLY1_TX_ARDQ6_DLY_B0, 0x10,
+ SHU_R0_B0_TXDLY1_TX_ARDQ7_DLY_B0, 0x10);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_txdly3,
+ SHU_R0_B0_TXDLY3_TX_ARDQM0_DLY_B0, 0x10,
+ SHU_R0_B0_TXDLY3_TX_ARWCK_DLY_B0, 0x00,
+ SHU_R0_B0_TXDLY3_TX_ARWCKB_DLY_B0, 0x00);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_txdly0,
+ SHU_R0_B1_TXDLY0_TX_ARDQ0_DLY_B1, 0x04,
+ SHU_R0_B1_TXDLY0_TX_ARDQ1_DLY_B1, 0x04,
+ SHU_R0_B1_TXDLY0_TX_ARDQ2_DLY_B1, 0x04,
+ SHU_R0_B1_TXDLY0_TX_ARDQ3_DLY_B1, 0x04);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_txdly1,
+ SHU_R0_B1_TXDLY1_TX_ARDQ4_DLY_B1, 0x04,
+ SHU_R0_B1_TXDLY1_TX_ARDQ5_DLY_B1, 0x04,
+ SHU_R0_B1_TXDLY1_TX_ARDQ6_DLY_B1, 0x04,
+ SHU_R0_B1_TXDLY1_TX_ARDQ7_DLY_B1, 0x04);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_txdly3,
+ SHU_R0_B1_TXDLY3_TX_ARDQM0_DLY_B1, 0x04,
+ SHU_R0_B1_TXDLY3_TX_ARWCK_DLY_B1, 0x00,
+ SHU_R0_B1_TXDLY3_TX_ARWCKB_DLY_B1, 0x00);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_txdly0,
+ SHU_R0_B0_TXDLY0_TX_ARDQ0_DLY_B0, 0x08,
+ SHU_R0_B0_TXDLY0_TX_ARDQ1_DLY_B0, 0x08,
+ SHU_R0_B0_TXDLY0_TX_ARDQ2_DLY_B0, 0x08,
+ SHU_R0_B0_TXDLY0_TX_ARDQ3_DLY_B0, 0x08);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_txdly1,
+ SHU_R0_B0_TXDLY1_TX_ARDQ4_DLY_B0, 0x08,
+ SHU_R0_B0_TXDLY1_TX_ARDQ5_DLY_B0, 0x08,
+ SHU_R0_B0_TXDLY1_TX_ARDQ6_DLY_B0, 0x08,
+ SHU_R0_B0_TXDLY1_TX_ARDQ7_DLY_B0, 0x08);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_txdly3,
+ SHU_R0_B0_TXDLY3_TX_ARDQM0_DLY_B0, 0x08,
+ SHU_R0_B0_TXDLY3_TX_ARWCK_DLY_B0, 0x00,
+ SHU_R0_B0_TXDLY3_TX_ARWCKB_DLY_B0, 0x00);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_txdly0,
+ SHU_R0_B1_TXDLY0_TX_ARDQ0_DLY_B1, 0x08,
+ SHU_R0_B1_TXDLY0_TX_ARDQ1_DLY_B1, 0x08,
+ SHU_R0_B1_TXDLY0_TX_ARDQ2_DLY_B1, 0x08,
+ SHU_R0_B1_TXDLY0_TX_ARDQ3_DLY_B1, 0x08);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_txdly1,
+ SHU_R0_B1_TXDLY1_TX_ARDQ4_DLY_B1, 0x08,
+ SHU_R0_B1_TXDLY1_TX_ARDQ5_DLY_B1, 0x08,
+ SHU_R0_B1_TXDLY1_TX_ARDQ6_DLY_B1, 0x08,
+ SHU_R0_B1_TXDLY1_TX_ARDQ7_DLY_B1, 0x08);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_txdly3,
+ SHU_R0_B1_TXDLY3_TX_ARDQM0_DLY_B1, 0x08,
+ SHU_R0_B1_TXDLY3_TX_ARWCK_DLY_B1, 0x00,
+ SHU_R0_B1_TXDLY3_TX_ARWCKB_DLY_B1, 0x00);
+ SET32_BITFIELDS(&ch[0].ao.shu_tx_rankctl,
+ SHU_TX_RANKCTL_TXRANKINCTL_TXDLY, 0x1,
+ SHU_TX_RANKCTL_TXRANKINCTL, 0x1,
+ SHU_TX_RANKCTL_TXRANKINCTL_ROOT, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_ac_derating0,
+ SHU_AC_DERATING0_ACDERATEEN, 0x0,
+ SHU_AC_DERATING0_TRRD_DERATE, 0x5,
+ SHU_AC_DERATING0_TRCD_DERATE, 0xb);
+ SET32_BITFIELDS(&ch[0].ao.shu_ac_derating1,
+ SHU_AC_DERATING1_TRPAB_DERATE, 0xb,
+ SHU_AC_DERATING1_TRP_DERATE, 0x9,
+ SHU_AC_DERATING1_TRAS_DERATE, 0x0f,
+ SHU_AC_DERATING1_TRC_DERATE, 0x00);
+ SET32_BITFIELDS(&ch[0].ao.shu_ac_derating_05t,
+ SHU_AC_DERATING_05T_TRC_05T_DERATE, 0x0,
+ SHU_AC_DERATING_05T_TRCD_05T_DERATE, 0x0,
+ SHU_AC_DERATING_05T_TRP_05T_DERATE, 0x1,
+ SHU_AC_DERATING_05T_TRPAB_05T_DERATE, 0x0,
+ SHU_AC_DERATING_05T_TRAS_05T_DERATE, 0x0,
+ SHU_AC_DERATING_05T_TRRD_05T_DERATE, 0x1);
+ SET32_BITFIELDS(&ch[0].ao.shu_sref_ctrl,
+ SHU_SREF_CTRL_CKEHCMD, 0x3,
+ SHU_SREF_CTRL_SREF_CK_DLY, 0x3);
+ SET32_BITFIELDS(&ch[0].ao.shu_hmr4_dvfs_ctrl0,
+ SHU_HMR4_DVFS_CTRL0_FSPCHG_PRDCNT, 0x86,
+ SHU_HMR4_DVFS_CTRL0_REFRCNT, 0x000);
+ SET32_BITFIELDS(&ch[0].ao.shu_ac_time_05t,
+ SHU_AC_TIME_05T_TRC_05T, 0x0,
+ SHU_AC_TIME_05T_TRFCPB_05T, 0x1,
+ SHU_AC_TIME_05T_TRFC_05T, 0x0,
+ SHU_AC_TIME_05T_TPBR2PBR_05T, 0x0,
+ SHU_AC_TIME_05T_TXP_05T, 0x0,
+ SHU_AC_TIME_05T_TRTP_05T, 0x1,
+ SHU_AC_TIME_05T_TRCD_05T, 0x0,
+ SHU_AC_TIME_05T_TRP_05T, 0x1,
+ SHU_AC_TIME_05T_TRPAB_05T, 0x0,
+ SHU_AC_TIME_05T_TRAS_05T, 0x0,
+ SHU_AC_TIME_05T_TWR_M05T, 0x0,
+ SHU_AC_TIME_05T_TRRD_05T, 0x0,
+ SHU_AC_TIME_05T_TFAW_05T, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_ac_time_05t,
+ SHU_AC_TIME_05T_TCKEPRD_05T, 0x0,
+ SHU_AC_TIME_05T_TR2PD_05T, 0x1,
+ SHU_AC_TIME_05T_TWTPD_M05T, 0x0,
+ SHU_AC_TIME_05T_TMRRI_05T, 0x0,
+ SHU_AC_TIME_05T_TMRWCKEL_05T, 0x1,
+ SHU_AC_TIME_05T_BGTRRD_05T, 0x0,
+ SHU_AC_TIME_05T_BGTCCD_05T, 0x0,
+ SHU_AC_TIME_05T_BGTWTR_M05T, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_ac_time_05t,
+ SHU_AC_TIME_05T_TR2W_05T, 0x0,
+ SHU_AC_TIME_05T_TWTR_M05T, 0x1,
+ SHU_AC_TIME_05T_XRTR2W_05T, 0x0,
+ SHU_AC_TIME_05T_TMRD_05T, 0x0,
+ SHU_AC_TIME_05T_TMRW_05T, 0x1,
+ SHU_AC_TIME_05T_TMRR2MRW_05T, 0x0,
+ SHU_AC_TIME_05T_TW2MRW_05T, 0x0,
+ SHU_AC_TIME_05T_TR2MRW_05T, 0x0,
+ SHU_AC_TIME_05T_TPBR2ACT_05T, 0x0,
+ SHU_AC_TIME_05T_XRTW2R_M05T, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim_xrt,
+ SHU_ACTIM_XRT_XRTR2R, 0x03,
+ SHU_ACTIM_XRT_XRTR2W, 0x08,
+ SHU_ACTIM_XRT_XRTW2R, 0x1,
+ SHU_ACTIM_XRT_XRTW2W, 0x05);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim0,
+ SHU_ACTIM0_TWTR, 0x0a,
+ SHU_ACTIM0_TWR, 0x0f,
+ SHU_ACTIM0_TRRD, 0x3,
+ SHU_ACTIM0_TRCD, 0xa,
+ SHU_ACTIM0_CKELCKCNT, 0x3);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim1,
+ SHU_ACTIM1_TRPAB, 0xa,
+ SHU_ACTIM1_TMRWCKEL, 0x8,
+ SHU_ACTIM1_TRP, 0x8,
+ SHU_ACTIM1_TRAS, 0x0e,
+ SHU_ACTIM1_TRC, 0x00);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim2,
+ SHU_ACTIM2_TXP, 0x1,
+ SHU_ACTIM2_TMRRI, 0x0e,
+ SHU_ACTIM2_TRTP, 0x2,
+ SHU_ACTIM2_TR2W, 0x09,
+ SHU_ACTIM2_TFAW, 0x08);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim3,
+ SHU_ACTIM3_TRFCPB, 0x59,
+ SHU_ACTIM3_MANTMRR, 0x4,
+ SHU_ACTIM3_TR2MRR, 0x4,
+ SHU_ACTIM3_TRFC, 0xbf,
+ SHU_ACTIM3_TWTR_L, 0x00);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim4,
+ SHU_ACTIM4_TXREFCNT, 0x0cf,
+ SHU_ACTIM4_TMRR2MRW, 0x0f,
+ SHU_ACTIM4_TMRR2W, 0x0b,
+ SHU_ACTIM4_TZQCS, 0x2e);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim5,
+ SHU_ACTIM5_TR2PD, 0x0f,
+ SHU_ACTIM5_TWTPD, 0x12,
+ SHU_ACTIM5_TPBR2PBR, 0x29,
+ SHU_ACTIM5_TPBR2ACT, 0x0);
+ SET32_BITFIELDS(&ch[0].ao.shu_actim6,
+ SHU_ACTIM6_TZQLAT2, 0x10,
+ SHU_ACTIM6_TMRD, 0x8,
+ SHU_ACTIM6_TMRW, 0x5,
+ SHU_ACTIM6_TW2MRW, 0x0b,
+ SHU_ACTIM6_TR2MRW, 0x12);
+ SET32_BITFIELDS(&ch[0].ao.shu_ckectrl,
+ SHU_CKECTRL_TPDE_05T, 0x1,
+ SHU_CKECTRL_TPDX_05T, 0x0,
+ SHU_CKECTRL_TPDE, 0x1,
+ SHU_CKECTRL_TPDX, 0x1,
+ SHU_CKECTRL_TCKEPRD, 0x3,
+ SHU_CKECTRL_TCKESRX, 0x3);
+ SET32_BITFIELDS(&ch[0].ao.shu_misc,
+ SHU_MISC_REQQUE_MAXCNT, 0x2,
+ SHU_MISC_DCMDLYREF, 0x7,
+ SHU_MISC_DAREFEN, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_dq8,
+ SHU_B0_DQ8_R_DMRXDVS_UPD_FORCE_CYC_B0, 0x0100,
+ SHU_B0_DQ8_R_DMRXDVS_UPD_FORCE_EN_B0, 0x0,
+ SHU_B0_DQ8_R_DMRANK_RXDLY_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_RMRODTEN_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_RMRX_TOPHY_CG_IG_B0, 0x1,
+ SHU_B0_DQ8_R_DMRXDVS_RDSEL_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMRXDVS_RDSEL_TOG_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMRXDLY_CG_IG_B0, 0x1,
+ SHU_B0_DQ8_R_DMDQSIEN_FLAG_SYNC_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMDQSIEN_FLAG_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMDQSIEN_RDSEL_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMDQSIEN_RDSEL_TOG_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMRANK_PIPE_CG_IG_B0, 0x0,
+ SHU_B0_DQ8_R_DMRANK_CHG_PIPE_CG_IG_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_dq8,
+ SHU_B1_DQ8_R_DMRXDVS_UPD_FORCE_CYC_B1, 0x0100,
+ SHU_B1_DQ8_R_DMRXDVS_UPD_FORCE_EN_B1, 0x0,
+ SHU_B1_DQ8_R_DMRANK_RXDLY_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_RMRODTEN_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_RMRX_TOPHY_CG_IG_B1, 0x1,
+ SHU_B1_DQ8_R_DMRXDVS_RDSEL_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMRXDVS_RDSEL_TOG_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMRXDLY_CG_IG_B1, 0x1,
+ SHU_B1_DQ8_R_DMDQSIEN_FLAG_SYNC_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMDQSIEN_FLAG_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMDQSIEN_RDSEL_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMDQSIEN_RDSEL_TOG_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMRANK_PIPE_CG_IG_B1, 0x0,
+ SHU_B1_DQ8_R_DMRANK_CHG_PIPE_CG_IG_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_dq5,
+ SHU_B0_DQ5_RG_RX_ARDQ_VREF_SEL_B0, 0x0e,
+ SHU_B0_DQ5_RG_RX_ARDQ_VREF_BYPASS_B0, 0x0,
+ SHU_B0_DQ5_RG_ARPI_FB_B0, 0x00,
+ SHU_B0_DQ5_RG_RX_ARDQS0_DQSIEN_DLY_B0, 0x0,
+ SHU_B0_DQ5_RG_RX_ARDQS_DQSIEN_RB_DLY_B0, 0x0,
+ SHU_B0_DQ5_RG_RX_ARDQS0_DVS_DLY_B0, 0x3,
+ SHU_B0_DQ5_RG_RX_ARDQ_FIFO_DQSI_DLY_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_dq5,
+ SHU_B1_DQ5_RG_RX_ARDQ_VREF_SEL_B1, 0x0e,
+ SHU_B1_DQ5_RG_RX_ARDQ_VREF_BYPASS_B1, 0x0,
+ SHU_B1_DQ5_RG_ARPI_FB_B1, 0x00,
+ SHU_B1_DQ5_RG_RX_ARDQS0_DQSIEN_DLY_B1, 0x0,
+ SHU_B1_DQ5_RG_RX_ARDQS_DQSIEN_RB_DLY_B1, 0x0,
+ SHU_B1_DQ5_RG_RX_ARDQS0_DVS_DLY_B1, 0x3,
+ SHU_B1_DQ5_RG_RX_ARDQ_FIFO_DQSI_DLY_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_rxdly0,
+ SHU_R0_B0_RXDLY0_RX_ARDQ0_R_DLY_B0, 0x54,
+ SHU_R0_B0_RXDLY0_RX_ARDQ0_F_DLY_B0, 0x54,
+ SHU_R0_B0_RXDLY0_RX_ARDQ1_R_DLY_B0, 0x54,
+ SHU_R0_B0_RXDLY0_RX_ARDQ1_F_DLY_B0, 0x54);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_rxdly1,
+ SHU_R0_B0_RXDLY1_RX_ARDQ2_R_DLY_B0, 0x54,
+ SHU_R0_B0_RXDLY1_RX_ARDQ2_F_DLY_B0, 0x54,
+ SHU_R0_B0_RXDLY1_RX_ARDQ3_R_DLY_B0, 0x54,
+ SHU_R0_B0_RXDLY1_RX_ARDQ3_F_DLY_B0, 0x54);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_rxdly2,
+ SHU_R0_B0_RXDLY2_RX_ARDQ4_R_DLY_B0, 0x54,
+ SHU_R0_B0_RXDLY2_RX_ARDQ4_F_DLY_B0, 0x54,
+ SHU_R0_B0_RXDLY2_RX_ARDQ5_R_DLY_B0, 0x54,
+ SHU_R0_B0_RXDLY2_RX_ARDQ5_F_DLY_B0, 0x54);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_rxdly3,
+ SHU_R0_B0_RXDLY3_RX_ARDQ6_R_DLY_B0, 0x54,
+ SHU_R0_B0_RXDLY3_RX_ARDQ6_F_DLY_B0, 0x54,
+ SHU_R0_B0_RXDLY3_RX_ARDQ7_R_DLY_B0, 0x54,
+ SHU_R0_B0_RXDLY3_RX_ARDQ7_F_DLY_B0, 0x54);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_rxdly4,
+ SHU_R0_B0_RXDLY4_RX_ARDQM0_R_DLY_B0, 0x54,
+ SHU_R0_B0_RXDLY4_RX_ARDQM0_F_DLY_B0, 0x54);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[0].shu_r0_b0_rxdly5,
+ SHU_R0_B0_RXDLY5_RX_ARDQS0_R_DLY_B0, 0x04a,
+ SHU_R0_B0_RXDLY5_RX_ARDQS0_F_DLY_B0, 0x04a);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_rxdly0,
+ SHU_R0_B0_RXDLY0_RX_ARDQ0_R_DLY_B0, 0x46,
+ SHU_R0_B0_RXDLY0_RX_ARDQ0_F_DLY_B0, 0x46,
+ SHU_R0_B0_RXDLY0_RX_ARDQ1_R_DLY_B0, 0x46,
+ SHU_R0_B0_RXDLY0_RX_ARDQ1_F_DLY_B0, 0x46);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_rxdly1,
+ SHU_R0_B0_RXDLY1_RX_ARDQ2_R_DLY_B0, 0x46,
+ SHU_R0_B0_RXDLY1_RX_ARDQ2_F_DLY_B0, 0x46,
+ SHU_R0_B0_RXDLY1_RX_ARDQ3_R_DLY_B0, 0x46,
+ SHU_R0_B0_RXDLY1_RX_ARDQ3_F_DLY_B0, 0x46);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_rxdly2,
+ SHU_R0_B0_RXDLY2_RX_ARDQ4_R_DLY_B0, 0x46,
+ SHU_R0_B0_RXDLY2_RX_ARDQ4_F_DLY_B0, 0x46,
+ SHU_R0_B0_RXDLY2_RX_ARDQ5_R_DLY_B0, 0x46,
+ SHU_R0_B0_RXDLY2_RX_ARDQ5_F_DLY_B0, 0x46);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_rxdly3,
+ SHU_R0_B0_RXDLY3_RX_ARDQ6_R_DLY_B0, 0x46,
+ SHU_R0_B0_RXDLY3_RX_ARDQ6_F_DLY_B0, 0x46,
+ SHU_R0_B0_RXDLY3_RX_ARDQ7_R_DLY_B0, 0x46,
+ SHU_R0_B0_RXDLY3_RX_ARDQ7_F_DLY_B0, 0x46);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_rxdly4,
+ SHU_R0_B0_RXDLY4_RX_ARDQM0_R_DLY_B0, 0x46,
+ SHU_R0_B0_RXDLY4_RX_ARDQM0_F_DLY_B0, 0x46);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[1].shu_r0_b0_rxdly5,
+ SHU_R0_B0_RXDLY5_RX_ARDQS0_R_DLY_B0, 0x038,
+ SHU_R0_B0_RXDLY5_RX_ARDQS0_F_DLY_B0, 0x038);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_rxdly0,
+ SHU_R0_B1_RXDLY0_RX_ARDQ0_R_DLY_B1, 0xcd,
+ SHU_R0_B1_RXDLY0_RX_ARDQ0_F_DLY_B1, 0xcd,
+ SHU_R0_B1_RXDLY0_RX_ARDQ1_R_DLY_B1, 0xcd,
+ SHU_R0_B1_RXDLY0_RX_ARDQ1_F_DLY_B1, 0xcd);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_rxdly1,
+ SHU_R0_B1_RXDLY1_RX_ARDQ2_R_DLY_B1, 0xcd,
+ SHU_R0_B1_RXDLY1_RX_ARDQ2_F_DLY_B1, 0xcd,
+ SHU_R0_B1_RXDLY1_RX_ARDQ3_R_DLY_B1, 0xcd,
+ SHU_R0_B1_RXDLY1_RX_ARDQ3_F_DLY_B1, 0xcd);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_rxdly2,
+ SHU_R0_B1_RXDLY2_RX_ARDQ4_R_DLY_B1, 0xcd,
+ SHU_R0_B1_RXDLY2_RX_ARDQ4_F_DLY_B1, 0xcd,
+ SHU_R0_B1_RXDLY2_RX_ARDQ5_R_DLY_B1, 0xcd,
+ SHU_R0_B1_RXDLY2_RX_ARDQ5_F_DLY_B1, 0xcd);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_rxdly3,
+ SHU_R0_B1_RXDLY3_RX_ARDQ6_R_DLY_B1, 0xcd,
+ SHU_R0_B1_RXDLY3_RX_ARDQ6_F_DLY_B1, 0xcd,
+ SHU_R0_B1_RXDLY3_RX_ARDQ7_R_DLY_B1, 0xcd,
+ SHU_R0_B1_RXDLY3_RX_ARDQ7_F_DLY_B1, 0xcd);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_rxdly4,
+ SHU_R0_B1_RXDLY4_RX_ARDQM0_R_DLY_B1, 0xcd,
+ SHU_R0_B1_RXDLY4_RX_ARDQM0_F_DLY_B1, 0xcd);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[0].shu_r0_b0_rxdly5,
+ SHU_R0_B1_RXDLY5_RX_ARDQS0_R_DLY_B1, 0x0bd,
+ SHU_R0_B1_RXDLY5_RX_ARDQS0_F_DLY_B1, 0x0bd);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_rxdly0,
+ SHU_R0_B1_RXDLY0_RX_ARDQ0_R_DLY_B1, 0xfe,
+ SHU_R0_B1_RXDLY0_RX_ARDQ0_F_DLY_B1, 0xfe,
+ SHU_R0_B1_RXDLY0_RX_ARDQ1_R_DLY_B1, 0xfe,
+ SHU_R0_B1_RXDLY0_RX_ARDQ1_F_DLY_B1, 0xfe);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_rxdly1,
+ SHU_R0_B1_RXDLY1_RX_ARDQ2_R_DLY_B1, 0xfe,
+ SHU_R0_B1_RXDLY1_RX_ARDQ2_F_DLY_B1, 0xfe,
+ SHU_R0_B1_RXDLY1_RX_ARDQ3_R_DLY_B1, 0xfe,
+ SHU_R0_B1_RXDLY1_RX_ARDQ3_F_DLY_B1, 0xfe);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_rxdly2,
+ SHU_R0_B1_RXDLY2_RX_ARDQ4_R_DLY_B1, 0xfe,
+ SHU_R0_B1_RXDLY2_RX_ARDQ4_F_DLY_B1, 0xfe,
+ SHU_R0_B1_RXDLY2_RX_ARDQ5_R_DLY_B1, 0xfe,
+ SHU_R0_B1_RXDLY2_RX_ARDQ5_F_DLY_B1, 0xfe);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_rxdly3,
+ SHU_R0_B1_RXDLY3_RX_ARDQ6_R_DLY_B1, 0xfe,
+ SHU_R0_B1_RXDLY3_RX_ARDQ6_F_DLY_B1, 0xfe,
+ SHU_R0_B1_RXDLY3_RX_ARDQ7_R_DLY_B1, 0xfe,
+ SHU_R0_B1_RXDLY3_RX_ARDQ7_F_DLY_B1, 0xfe);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_rxdly4,
+ SHU_R0_B1_RXDLY4_RX_ARDQM0_R_DLY_B1, 0xfe,
+ SHU_R0_B1_RXDLY4_RX_ARDQM0_F_DLY_B1, 0xfe);
+ SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[1].shu_r0_b0_rxdly5,
+ SHU_R0_B1_RXDLY5_RX_ARDQS0_R_DLY_B1, 0x0f4,
+ SHU_R0_B1_RXDLY5_RX_ARDQS0_F_DLY_B1, 0x0f4);
+ SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[0].b0_dq9,
+ B0_DQ9_RG_RX_ARDQ_STBEN_RESETB_B0, 0x1,
+ B0_DQ9_RG_RX_ARDQS0_STBEN_RESETB_B0, 0x0,
+ B0_DQ9_RG_RX_ARDQS0_DQSIENMODE_B0, 0x0,
+ B0_DQ9_R_DMRXDVS_R_F_DLY_RK_OPT_B0, 0x1,
+ B0_DQ9_R_DMRXFIFO_STBENCMP_EN_B0, 0x0,
+ B0_DQ9_R_IN_GATE_EN_LOW_OPT_B0, 0x00,
+ B0_DQ9_R_DMDQSIEN_VALID_LAT_B0, 0x0,
+ B0_DQ9_R_DMDQSIEN_RDSEL_LAT_B0, 0x0,
+ B0_DQ9_R_DMRXDVS_VALID_LAT_B0, 0x0,
+ B0_DQ9_R_DMRXDVS_RDSEL_LAT_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[1].b0_dq9,
+ B1_DQ9_RG_RX_ARDQ_STBEN_RESETB_B1, 0x1,
+ B1_DQ9_RG_RX_ARDQS0_STBEN_RESETB_B1, 0x0,
+ B1_DQ9_RG_RX_ARDQS0_DQSIENMODE_B1, 0x0,
+ B1_DQ9_R_DMRXDVS_R_F_DLY_RK_OPT_B1, 0x1,
+ B1_DQ9_R_DMRXFIFO_STBENCMP_EN_B1, 0x0,
+ B1_DQ9_R_IN_GATE_EN_LOW_OPT_B1, 0x00,
+ B1_DQ9_R_DMDQSIEN_VALID_LAT_B1, 0x0,
+ B1_DQ9_R_DMDQSIEN_RDSEL_LAT_B1, 0x0,
+ B1_DQ9_R_DMRXDVS_VALID_LAT_B1, 0x0,
+ B1_DQ9_R_DMRXDVS_RDSEL_LAT_B1, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[0].b0_dq4,
+ B0_DQ4_RG_RX_ARDQS_EYE_R_DLY_B0, 0x5a,
+ B0_DQ4_RG_RX_ARDQS_EYE_F_DLY_B0, 0x5a,
+ B0_DQ4_RG_RX_ARDQ_EYE_R_DLY_B0, 0x14,
+ B0_DQ4_RG_RX_ARDQ_EYE_F_DLY_B0, 0x14);
+ SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[1].b0_dq4,
+ B1_DQ4_RG_RX_ARDQS_EYE_R_DLY_B1, 0x53,
+ B1_DQ4_RG_RX_ARDQS_EYE_F_DLY_B1, 0x53,
+ B1_DQ4_RG_RX_ARDQ_EYE_R_DLY_B1, 0x0d,
+ B1_DQ4_RG_RX_ARDQ_EYE_F_DLY_B1, 0x0d);
+ SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[0].b0_dq5,
+ B0_DQ5_RG_RX_ARDQ_EYE_VREF_SEL_B0, 0x0e,
+ B0_DQ5_RG_RX_ARDQ_VREF_EN_B0, 0x0,
+ B0_DQ5_RG_RX_ARDQ_EYE_VREF_EN_B0, 0x0,
+ B0_DQ5_RG_RX_ARDQ_EYE_SEL_B0, 0x0,
+ B0_DQ5_RG_RX_ARDQ_EYE_EN_B0, 0x0,
+ B0_DQ5_RG_RX_ARDQ_EYE_STBEN_RESETB_B0, 0x1,
+ B0_DQ5_RG_RX_ARDQS0_DVS_EN_B0, 0x0);
+ SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[1].b0_dq5,
+ B1_DQ5_RG_RX_ARDQ_EYE_VREF_SEL_B1, 0x0e,
+ B1_DQ5_RG_RX_ARDQ_VREF_EN_B1, 0x0,
+ B1_DQ5_RG_RX_ARDQ_EYE_VREF_EN_B1, 0x0,
+ B1_DQ5_RG_RX_ARDQ_EYE_SEL_B1, 0x0,
+ B1_DQ5_RG_RX_ARDQ_EYE_EN_B1, 0x0,
+ B1_DQ5_RG_RX_ARDQ_EYE_STBEN_RESETB_B1, 0x1,
+ B1_DQ5_RG_RX_ARDQS0_DVS_EN_B1, 0x0);
+}
+
static u32 get_write_latency_by_mr(u8 mr_wl)
{
u32 write_latency;
@@ -186,6 +3082,35 @@ static void tx_path_algorithm(const struct ddr_cali *cali)
}
}
+static void dramc_setting(const struct ddr_cali *cali)
+{
+ dram_freq_grp freq_group = cali->freq_group;
+
+ dramc_set_broadcast(DRAMC_BROADCAST_ON);
+ switch (freq_group) {
+ case DDRFREQ_400:
+ sv_algorithm_assistance_lp4_800();
+ break;
+ case DDRFREQ_600:
+ case DDRFREQ_800:
+ case DDRFREQ_933:
+ case DDRFREQ_1200:
+ sv_algorithm_assistance_lp4_1600();
+ break;
+ case DDRFREQ_1600:
+ sv_algorithm_assistance_lp4_3733();
+ break;
+ case DDRFREQ_2133:
+ sv_algorithm_assistance_lp4_4266();
+ break;
+ default:
+ die("Invalid DDR frequency group %u\n", freq_group);
+ return;
+ }
+
+ dramc_set_broadcast(DRAMC_BROADCAST_OFF);
+}
+
void cke_fix_onoff(const struct ddr_cali *cali, u8 chn, u8 rank, int option)
{
u8 cke_on = 0, cke_off = 0;
@@ -296,6 +3221,7 @@ static void dramc_reset_delay_chain_before_calibration(void)
static void dramc_init(const struct ddr_cali *cali)
{
+ dramc_setting(cali);
dramc_reset_delay_chain_before_calibration();
}