summaryrefslogtreecommitdiff
path: root/src/soc/mediatek
diff options
context:
space:
mode:
authorHuayang Duan <huayang.duan@mediatek.com>2020-06-24 10:14:32 +0800
committerHung-Te Lin <hungte@chromium.org>2021-03-08 03:15:43 +0000
commit4c7bf7eaaf5c185272b947fd6a1c8da7dbe01edf (patch)
tree1821ec454307eebc1d37dfe4c07bb0baecb8b91a /src/soc/mediatek
parente8c681cc6249cc7717885a12373e4fcf34034b1c (diff)
downloadcoreboot-4c7bf7eaaf5c185272b947fd6a1c8da7dbe01edf.tar.xz
soc/mediatek/mt8192: initialize DRAM using vendor reference code
Mediatek has released the reference implementation for DRAM initialization in vendorcode/mediatek/mt8192/dramc (CB:50294) so we want to use it to replace the derived calibration code in soc folder. Signed-off-by: Xi Chen <xixi.chen@mediatek.com> Change-Id: I2b2f41d774c6b85f106867144fb0b29a4a1bdfcf Reviewed-on: https://review.coreboot.org/c/coreboot/+/51125 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Diffstat (limited to 'src/soc/mediatek')
-rw-r--r--src/soc/mediatek/mt8192/Kconfig30
-rw-r--r--src/soc/mediatek/mt8192/Makefile.inc8
-rw-r--r--src/soc/mediatek/mt8192/dramc_dvfs.c190
-rw-r--r--src/soc/mediatek/mt8192/dramc_pi_basic_api.c4710
-rw-r--r--src/soc/mediatek/mt8192/dramc_pi_calibration_api.c656
-rw-r--r--src/soc/mediatek/mt8192/dramc_pi_main.c392
-rw-r--r--src/soc/mediatek/mt8192/dramc_utility.c167
-rw-r--r--src/soc/mediatek/mt8192/emi.c440
-rw-r--r--src/soc/mediatek/mt8192/include/soc/dramc_ac_timing.h972
-rw-r--r--src/soc/mediatek/mt8192/include/soc/dramc_common_mt8192.h63
-rw-r--r--src/soc/mediatek/mt8192/include/soc/dramc_pi_api.h352
-rw-r--r--src/soc/mediatek/mt8192/include/soc/dramc_register.h1818
-rw-r--r--src/soc/mediatek/mt8192/include/soc/dramc_register_bits_def.h2837
13 files changed, 4 insertions, 12631 deletions
diff --git a/src/soc/mediatek/mt8192/Kconfig b/src/soc/mediatek/mt8192/Kconfig
index 9c7a9af9ab..aa4fb01e9e 100644
--- a/src/soc/mediatek/mt8192/Kconfig
+++ b/src/soc/mediatek/mt8192/Kconfig
@@ -6,6 +6,7 @@ config SOC_MEDIATEK_MT8192
select ARCH_ROMSTAGE_ARMV8_64
select ARCH_RAMSTAGE_ARMV8_64
select ARM64_USE_ARM_TRUSTED_FIRMWARE
+ select HAVE_DEBUG_RAM_SETUP
select HAVE_UART_SPECIAL
select SOC_MEDIATEK_COMMON
@@ -17,35 +18,6 @@ config VBOOT
select VBOOT_SEPARATE_VERSTAGE
select VBOOT_RETURN_FROM_VERSTAGE
-config DEBUG_DRAM
- bool "Output verbose DRAM related debug messages"
- default y
- help
- This option enables additional DRAM related debug messages.
-
-config MT8192_DRAM_EMCP
- bool
- default y
- help
- The eMCP platform should select this option to run at different DRAM
- frequencies.
-
-config MT8192_DRAM_DVFS
- bool
- default n
- help
- This option enables DRAM calibration with multiple frequencies (low,
- medium and high frequency groups, with total 7 frequencies) for DVFS
- feature. All supported data rates are: 800, 1200, 1600, 1866, 2400,
- 3200, 4266.
-
-config MEMORY_TEST
- bool
- default y
- help
- This option enables memory basic compare test to verify the DRAM read
- or write is as expected.
-
config DPM_DM_FIRMWARE
string
default "dpm.dm"
diff --git a/src/soc/mediatek/mt8192/Makefile.inc b/src/soc/mediatek/mt8192/Makefile.inc
index a872916763..2370c654c5 100644
--- a/src/soc/mediatek/mt8192/Makefile.inc
+++ b/src/soc/mediatek/mt8192/Makefile.inc
@@ -29,14 +29,12 @@ verstage-y += ../common/uart.c
romstage-y += ../common/auxadc.c
romstage-y += ../common/cbmem.c
romstage-y += ../common/dram_init.c
-romstage-y += dramc_pi_main.c dramc_pi_basic_api.c dramc_pi_calibration_api.c
-romstage-y += dramc_utility.c dramc_dvfs.c
-romstage-y += emi.c
+romstage-y += ../common/dramc_param.c
romstage-y += ../common/flash_controller.c
romstage-y += ../common/gpio.c gpio.c
romstage-y += ../common/i2c.c i2c.c
+romstage-y += ../common/memory.c ../common/memory_test.c
romstage-y += ../common/mmu_operations.c mmu_operations.c
-romstage-y += ../common/memory.c ../common/dramc_param.c ../common/memory_test.c
romstage-y += ../common/pll.c pll.c
romstage-$(CONFIG_SPI_FLASH) += ../common/spi.c spi.c
romstage-y += ../common/timer.c
@@ -53,7 +51,6 @@ ramstage-y += ../common/dsi.c ../common/mtk_mipi_dphy.c
ramstage-y += ../common/flash_controller.c
ramstage-y += ../common/gpio.c gpio.c
ramstage-y += ../common/i2c.c i2c.c
-ramstage-y += emi.c
ramstage-$(CONFIG_SPI_FLASH) += ../common/spi.c spi.c
ramstage-y += ../common/mcu.c
ramstage-y += mcupm.c
@@ -97,6 +94,7 @@ BL31_MAKEARGS += PLAT=mt8192
CPPFLAGS_common += -Isrc/soc/mediatek/mt8192/include
CPPFLAGS_common += -Isrc/soc/mediatek/common/include
+CPPFLAGS_common += -Isrc/vendorcode/mediatek/mt8192/include
$(objcbfs)/bootblock.bin: $(objcbfs)/bootblock.raw.bin
./util/mtkheader/gen-bl-img.py mt8183 sf $< $@
diff --git a/src/soc/mediatek/mt8192/dramc_dvfs.c b/src/soc/mediatek/mt8192/dramc_dvfs.c
deleted file mode 100644
index 7fc8d28fd9..0000000000
--- a/src/soc/mediatek/mt8192/dramc_dvfs.c
+++ /dev/null
@@ -1,190 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#include <soc/dramc_pi_api.h>
-#include <soc/dramc_register.h>
-
-void enable_dfs_hw_mode_clk(void)
-{
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_dvfsctl3,
- MISC_DVFSCTL3_RG_DVFS_MEM_CK_SEL_DESTI, 0x3,
- MISC_DVFSCTL3_RG_DVFS_MEM_CK_SEL_SOURCE, 0x1);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_clk_ctrl,
- MISC_CLK_CTRL_DVFS_MEM_CK_MUX_UPDATE_EN, 0x1,
- MISC_CLK_CTRL_DVFS_CLK_MEM_SEL, 0x1,
- MISC_CLK_CTRL_DVFS_MEM_CK_MUX_SEL_MODE, 0x0,
- MISC_CLK_CTRL_DVFS_MEM_CK_MUX_SEL, 0x1);
- }
-}
-
-void dramc_dfs_direct_jump_rg_mode(const struct ddr_cali *cali, u8 shu_level)
-{
- u8 shu_ack = 0;
- u8 tmp_level;
- u8 pll_mode = *(cali->pll_mode);
- u32 *shu_ack_reg = &mtk_dpm->status_4;
-
- if (pll_mode == PHYPLL_MODE) {
- dramc_dbg("Disable CLRPLL\n");
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++)
- SET32_BITFIELDS(&ch[chn].phy_ao.clrpll0, CLRPLL0_RG_RCLRPLL_EN, 0);
- } else {
- dramc_dbg("Disable PHYPLL\n");
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++)
- SET32_BITFIELDS(&ch[chn].phy_ao.phypll0, PHYPLL0_RG_RPHYPLL_EN, 0);
- }
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++)
- shu_ack |= (0x1 << chn);
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++)
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_rg_dfs_ctrl,
- MISC_RG_DFS_CTRL_RG_DDRPHY_FB_CK_EN, 1);
-
- if (shu_level == DRAM_DFS_SHU0)
- tmp_level = shu_level;
- else
- tmp_level = 1;
-
- if (pll_mode == PHYPLL_MODE) {
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_rg_dfs_ctrl,
- MISC_RG_DFS_CTRL_RG_PHYPLL_SHU_EN, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_rg_dfs_ctrl,
- MISC_RG_DFS_CTRL_RG_DR_SHU_LEVEL, tmp_level);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_rg_dfs_ctrl,
- MISC_RG_DFS_CTRL_RG_PHYPLL2_SHU_EN, 1);
- }
- dramc_dbg("Enable CLRPLL\n");
- } else {
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_rg_dfs_ctrl,
- MISC_RG_DFS_CTRL_RG_PHYPLL2_SHU_EN, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_rg_dfs_ctrl,
- MISC_RG_DFS_CTRL_RG_DR_SHU_LEVEL, tmp_level);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_rg_dfs_ctrl,
- MISC_RG_DFS_CTRL_RG_PHYPLL_SHU_EN, 1);
- }
- dramc_dbg("Enable PHYPLL\n");
- }
- udelay(1);
-
- if (pll_mode == PHYPLL_MODE)
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++)
- SET32_BITFIELDS(&ch[chn].phy_ao.clrpll0, CLRPLL0_RG_RCLRPLL_EN, 1);
- else
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++)
- SET32_BITFIELDS(&ch[chn].phy_ao.phypll0, PHYPLL0_RG_RPHYPLL_EN, 1);
-
- udelay(20);
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++)
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_rg_dfs_ctrl,
- MISC_RG_DFS_CTRL_RG_DR_SHU_EN, 1);
- while ((READ32_BITFIELD(shu_ack_reg, LPIF_STATUS_4_SHU_EN_ACK) & shu_ack) != shu_ack)
- dramc_dbg("Waiting shu_en ack\n");
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++)
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_rg_dfs_ctrl,
- MISC_RG_DFS_CTRL_RG_DR_SHU_EN, 0);
-
- if (pll_mode == PHYPLL_MODE)
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++)
- SET32_BITFIELDS(&ch[chn].phy_ao.phypll0, PHYPLL0_RG_RPHYPLL_EN, 0);
- else
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++)
- SET32_BITFIELDS(&ch[chn].phy_ao.clrpll0, CLRPLL0_RG_RCLRPLL_EN, 0);
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++)
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_rg_dfs_ctrl,
- MISC_RG_DFS_CTRL_RG_DDRPHY_FB_CK_EN, 0);
-
- dramc_dbg("Shuffle flow completed\n");
-
- pll_mode = !pll_mode;
- *(cali->pll_mode) = pll_mode;
-}
-
-void dramc_save_result_to_shuffle(dram_dfs_shu src, dram_dfs_shu dst)
-{
- u8 tmp;
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_SW_DMA_FIRE, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_APB_SLV_SEL, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_SW_MODE, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_SW_STEP_EN_MODE, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_SRAM_WR_MODE, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_APB_WR_MODE, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_SW_SHU_LEVEL_APB, src);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_SW_SHU_LEVEL_SRAM, dst);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_SW_DMA_FIRE, 1);
- do {
- tmp = READ32_BITFIELD(&ch[chn].phy_nao.misc_dma_debug0,
- MISC_DMA_DEBUG0_SRAM_DONE);
- tmp |= (READ32_BITFIELD(&ch[chn].phy_nao.misc_dma_debug0,
- MISC_DMA_DEBUG0_APB_DONE) << 1);
- dramc_dbg("Waiting dramc to shuffle sram, tmp: %u\n", tmp);
- } while (tmp != 0x3);
-
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_SW_DMA_FIRE, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_SW_STEP_EN_MODE, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_SW_MODE, 0);
- }
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++)
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_SRAM_WR_MODE, 0);
-}
-
-void dramc_load_shuffle_to_dramc(dram_dfs_shu src, dram_dfs_shu dst)
-{
- u8 tmp;
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_SW_DMA_FIRE, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_APB_SLV_SEL, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_SW_MODE, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_SW_STEP_EN_MODE, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_SRAM_WR_MODE, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_APB_WR_MODE, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_SW_SHU_LEVEL_APB, dst);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_SW_SHU_LEVEL_SRAM, src);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_SW_DMA_FIRE, 1);
- do {
- tmp = READ32_BITFIELD(&ch[chn].phy_nao.misc_dma_debug0,
- MISC_DMA_DEBUG0_SRAM_DONE);
- tmp |= (READ32_BITFIELD(&ch[chn].phy_nao.misc_dma_debug0,
- MISC_DMA_DEBUG0_APB_DONE) << 1);
- dramc_dbg("Waiting shuffle sram to dramc, tmp: %u\n", tmp);
- } while (tmp != 0x3);
-
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_SW_DMA_FIRE, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_SW_STEP_EN_MODE, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_sram_dma0,
- MISC_SRAM_DMA0_SW_MODE, 0);
- }
-}
diff --git a/src/soc/mediatek/mt8192/dramc_pi_basic_api.c b/src/soc/mediatek/mt8192/dramc_pi_basic_api.c
deleted file mode 100644
index 996dff88ed..0000000000
--- a/src/soc/mediatek/mt8192/dramc_pi_basic_api.c
+++ /dev/null
@@ -1,4710 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#include <soc/dramc_ac_timing.h>
-#include <soc/dramc_pi_api.h>
-#include <soc/dramc_register.h>
-#include <soc/gpio.h>
-#include <timer.h>
-
-static const u8 mrr_o1_pinmux_mapping[PINMUX_MAX][CHANNEL_MAX][DQ_DATA_WIDTH] = {
- [PINMUX_DSC] = {
- [CHANNEL_A] = {0, 1, 7, 6, 4, 5, 2, 3, 9, 8, 11, 10, 14, 15, 13, 12},
- [CHANNEL_B] = {1, 0, 5, 6, 3, 2, 7, 4, 8, 9, 11, 10, 12, 14, 13, 15},
- },
- [PINMUX_LPBK] = {
- },
- [PINMUX_EMCP] = {
- [CHANNEL_A] = {1, 0, 3, 2, 4, 7, 6, 5, 8, 9, 10, 14, 11, 15, 13, 12},
- [CHANNEL_B] = {0, 1, 4, 7, 3, 5, 6, 2, 9, 8, 10, 12, 11, 14, 13, 15}
- },
-};
-
-static void set_rank_info_to_conf(const struct ddr_cali *cali)
-{
- u8 value = ((cali->emi_config->cona_val >> 17) & 0x1) ? 0 : 1;
-
- SET32_BITFIELDS(&ch[0].ao.sa_reserve,
- SA_RESERVE_MODE_RK0, cali->cbt_mode[RANK_0],
- SA_RESERVE_MODE_RK1, cali->cbt_mode[RANK_1],
- SA_RESERVE_SINGLE_RANK, value);
-}
-
-static void get_dram_pinmux_sel(struct ddr_cali *cali)
-{
- u32 value = (read32(&mtk_gpio->dram_pinmux_trapping) >> 19) & 0x1;
-
- if (value)
- cali->pinmux_type = PINMUX_DSC;
- else
- cali->pinmux_type = PINMUX_EMCP;
-}
-
-static void set_mrr_pinmux_mapping(const struct ddr_cali *cali)
-{
- const u8 *map;
- u32 bc_bak = dramc_get_broadcast();
-
- dramc_set_broadcast(DRAMC_BROADCAST_OFF);
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- map = mrr_o1_pinmux_mapping[get_pinmux_type(cali)][chn];
- SET32_BITFIELDS(&ch[chn].ao.mrr_bit_mux1,
- MRR_BIT_MUX1_MRR_BIT0_SEL, map[0],
- MRR_BIT_MUX1_MRR_BIT1_SEL, map[1],
- MRR_BIT_MUX1_MRR_BIT2_SEL, map[2],
- MRR_BIT_MUX1_MRR_BIT3_SEL, map[3]);
- SET32_BITFIELDS(&ch[chn].ao.mrr_bit_mux2,
- MRR_BIT_MUX2_MRR_BIT4_SEL, map[4],
- MRR_BIT_MUX2_MRR_BIT5_SEL, map[5],
- MRR_BIT_MUX2_MRR_BIT6_SEL, map[6],
- MRR_BIT_MUX2_MRR_BIT7_SEL, map[7]);
- SET32_BITFIELDS(&ch[chn].ao.mrr_bit_mux3,
- MRR_BIT_MUX3_MRR_BIT8_SEL, map[8],
- MRR_BIT_MUX3_MRR_BIT9_SEL, map[9],
- MRR_BIT_MUX3_MRR_BIT10_SEL, map[10],
- MRR_BIT_MUX3_MRR_BIT11_SEL, map[11]);
- SET32_BITFIELDS(&ch[chn].ao.mrr_bit_mux4,
- MRR_BIT_MUX4_MRR_BIT12_SEL, map[12],
- MRR_BIT_MUX4_MRR_BIT13_SEL, map[13],
- MRR_BIT_MUX4_MRR_BIT14_SEL, map[14],
- MRR_BIT_MUX4_MRR_BIT15_SEL, map[15]);
- }
- dramc_set_broadcast(bc_bak);
-}
-
-static void set_dqo1_pinmux_mapping(const struct ddr_cali *cali)
-{
- const u8 *map;
- u32 bc_bak = dramc_get_broadcast();
-
- dramc_set_broadcast(DRAMC_BROADCAST_OFF);
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- map = mrr_o1_pinmux_mapping[get_pinmux_type(cali)][chn];
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_dq_se_pinmux_ctrl0,
- MISC_DQ_SE_PINMUX_CTRL0_DQ_PINMUX_SEL_DQ0, map[0],
- MISC_DQ_SE_PINMUX_CTRL0_DQ_PINMUX_SEL_DQ1, map[1],
- MISC_DQ_SE_PINMUX_CTRL0_DQ_PINMUX_SEL_DQ2, map[2],
- MISC_DQ_SE_PINMUX_CTRL0_DQ_PINMUX_SEL_DQ3, map[3],
- MISC_DQ_SE_PINMUX_CTRL0_DQ_PINMUX_SEL_DQ4, map[4],
- MISC_DQ_SE_PINMUX_CTRL0_DQ_PINMUX_SEL_DQ5, map[5],
- MISC_DQ_SE_PINMUX_CTRL0_DQ_PINMUX_SEL_DQ6, map[6],
- MISC_DQ_SE_PINMUX_CTRL0_DQ_PINMUX_SEL_DQ7, map[7]);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_dq_se_pinmux_ctrl1,
- MISC_DQ_SE_PINMUX_CTRL1_DQ_PINMUX_SEL_DQ8, map[8],
- MISC_DQ_SE_PINMUX_CTRL1_DQ_PINMUX_SEL_DQ9, map[9],
- MISC_DQ_SE_PINMUX_CTRL1_DQ_PINMUX_SEL_DQ10, map[10],
- MISC_DQ_SE_PINMUX_CTRL1_DQ_PINMUX_SEL_DQ11, map[11],
- MISC_DQ_SE_PINMUX_CTRL1_DQ_PINMUX_SEL_DQ12, map[12],
- MISC_DQ_SE_PINMUX_CTRL1_DQ_PINMUX_SEL_DQ13, map[13],
- MISC_DQ_SE_PINMUX_CTRL1_DQ_PINMUX_SEL_DQ14, map[14],
- MISC_DQ_SE_PINMUX_CTRL1_DQ_PINMUX_SEL_DQ15, map[15]);
- }
-
- dramc_set_broadcast(bc_bak);
-}
-
-void global_option_init(struct ddr_cali *cali)
-{
- set_rank_info_to_conf(cali);
- get_dram_pinmux_sel(cali);
- set_mrr_pinmux_mapping(cali);
- set_dqo1_pinmux_mapping(cali);
-}
-
-static void dramc_init_default_mr_value(const struct ddr_cali *cali)
-{
- struct mr_values *mr_value = cali->mr_value;
- dram_freq_grp freq_group = cali->freq_group;
- u8 highest_freq = get_highest_freq_group();
-
- mr_value->mr01[FSP_0] = 0x26;
- mr_value->mr01[FSP_1] = 0x56;
- mr_value->mr02[FSP_0] = 0x1a;
- mr_value->mr02[FSP_1] = 0x1a;
-
- mr_value->mr03[FSP_0] = 0x30 | 0x4;
- mr_value->mr03[FSP_1] = 0x30 | 0x4 | 0x2;
-
- mr_value->mr04[RANK_0] = 0x3;
- mr_value->mr04[RANK_1] = 0x3;
-
- mr_value->mr21[FSP_0] = 0x0;
- mr_value->mr21[FSP_1] = 0x0;
- mr_value->mr51[FSP_0] = 0x0;
- mr_value->mr51[FSP_1] = 0x0;
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++)
- for (u8 rk = 0; rk < RANK_MAX; rk++) {
- mr_value->mr23[chn][rk] = 0x3f;
- for (u8 fsp = 0; fsp < FSP_MAX; fsp++) {
- mr_value->mr14[chn][rk][fsp] = (fsp == FSP_0) ? 0x5d : 0x18;
- mr_value->mr12[chn][rk][fsp] = (fsp == FSP_0) ? 0x5d : 0x1b;
- }
- }
-
- mr_value->mr01[FSP_0] &= 0x8F;
- mr_value->mr01[FSP_1] &= 0x8F;
-
- if (highest_freq == DDRFREQ_2133) {
- mr_value->mr01[FSP_0] |= (0x7 << 4);
- mr_value->mr01[FSP_1] |= (0x7 << 4);
- } else {
- mr_value->mr01[FSP_0] |= (0x5 << 4);
- mr_value->mr01[FSP_1] |= (0x5 << 4);
- }
-
- switch (freq_group) {
- case DDRFREQ_400:
- mr_value->mr02[FSP_0] = 0x12;
- break;
- case DDRFREQ_600:
- case DDRFREQ_800:
- mr_value->mr02[FSP_0] = 0x12;
- break;
- case DDRFREQ_933:
- mr_value->mr02[FSP_0] = 0x1b;
- break;
- case DDRFREQ_1200:
- mr_value->mr02[FSP_0] = 0x24;
- break;
- case DDRFREQ_1600:
- mr_value->mr02[FSP_1] = 0x2d;
- break;
- case DDRFREQ_2133:
- mr_value->mr02[FSP_1] = 0x3f;
- break;
- default:
- die("Invalid DDR frequency group %u\n", freq_group);
- return;
- }
-}
-
-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;
-
- switch (mr_wl) {
- case 0:
- write_latency = 4;
- break;
- case 1:
- write_latency = 6;
- break;
- case 2:
- write_latency = 8;
- break;
- case 3:
- write_latency = 10;
- break;
- case 4:
- write_latency = 12;
- break;
- case 5:
- write_latency = 14;
- break;
- case 6:
- write_latency = 16;
- break;
- case 7:
- write_latency = 18;
- break;
- default:
- dramc_err("error: unexpected mr_wl: %x\n", mr_wl);
- return 0;
- }
-
- dramc_info("mr_wl: %x map to WriteLatency: %d\n", mr_wl, write_latency);
- return write_latency;
-}
-
-static void tx_path_algorithm(const struct ddr_cali *cali)
-{
- u8 write_latency, wl_mr;
- const u8 ckr = 1;
- u8 dqs_total_ui;
- u8 dqs_oe_total_ui;
- u8 dqs_mck, dqs_ui;
- u8 dqs_oe_mck, dqs_oe_ui;
- u8 shift;
- const u8 tx_dq_oe_shift = 3;
-
- wl_mr = (cali->mr_value->mr02[get_fsp(cali)] & 0x3f) >> 3;
- shift = get_mck2ui_div_shift(cali);
- write_latency = get_write_latency_by_mr(wl_mr);
- dqs_total_ui = write_latency * ckr * 2 + 1;
-
- dqs_oe_total_ui = dqs_total_ui - tx_dq_oe_shift;
- dqs_ui = dqs_total_ui - ((dqs_total_ui >> shift) << shift);
- dqs_mck = dqs_total_ui >> shift;
- dqs_oe_ui = dqs_oe_total_ui - ((dqs_oe_total_ui >> shift) << shift);
- dqs_oe_mck = dqs_oe_total_ui >> shift;
- dramc_dbg("[TX_path_calculate] write_latency=%u, DQS_TotalUI=%u\n",
- write_latency, dqs_total_ui);
- dramc_dbg("[TX_path_calculate] DQS = (%u,%u) DQS_OE = (%u,%u)\n",
- dqs_mck, dqs_ui, dqs_oe_mck, dqs_oe_ui);
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- SET32_BITFIELDS(&ch[chn].ao.shu_selph_dqs0,
- SHU_SELPH_DQS0_TXDLY_DQS0, dqs_mck,
- SHU_SELPH_DQS0_TXDLY_DQS1, dqs_mck,
- SHU_SELPH_DQS0_TXDLY_OEN_DQS0, dqs_oe_mck,
- SHU_SELPH_DQS0_TXDLY_OEN_DQS1, dqs_oe_mck);
- SET32_BITFIELDS(&ch[chn].ao.shu_selph_dqs1,
- SHU_SELPH_DQS1_DLY_DQS0, dqs_ui,
- SHU_SELPH_DQS1_DLY_DQS1, dqs_ui,
- SHU_SELPH_DQS1_DLY_OEN_DQS0, dqs_oe_ui,
- SHU_SELPH_DQS1_DLY_OEN_DQS1, dqs_oe_ui);
- }
-}
-
-static void replace_dv_init(const struct ddr_cali *cali)
-{
- bool is_4266;
- u8 dq_hyst_sel, ca_hyst_sel;
- u8 dq_cap_sel, ca_cap_sel;
- u8 dq_bw_sel_b0 = 0, dq_bw_sel_b1 = 0, ca_bw_sel_ca = 0, clk_bw_sel_ca = 0;
-
- dram_freq_grp freq_group = cali->freq_group;
-
- SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[1].b0_dq5,
- B1_DQ5_RG_RX_ARDQS0_DVS_EN_B1, 0);
- SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[0].b0_dq5,
- B0_DQ5_RG_RX_ARDQS0_DVS_EN_B0, 0);
- SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[0].b0_rxdvs0,
- B0_RXDVS0_R_RX_DLY_TRACK_ENA_B0, 0,
- B0_RXDVS0_R_RX_DLY_TRACK_CG_EN_B0, 0);
- SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[1].b0_rxdvs0,
- B1_RXDVS0_R_RX_DLY_TRACK_ENA_B1, 0,
- B1_RXDVS0_R_RX_DLY_TRACK_CG_EN_B1, 0);
-
- for (u8 rk = RANK_0; rk < cali->support_ranks; rk++) {
- SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[0].rk[rk].rk_b0_rxdvs2,
- RK_B0_RXDVS2_R_RK0_RX_DLY_FAL_TRACK_GATE_ENA_B0, 0,
- RK_B0_RXDVS2_R_RK0_RX_DLY_RIS_TRACK_GATE_ENA_B0, 0,
- RK_B0_RXDVS2_R_RK0_DVS_MODE_B0, 0);
- SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[1].rk[rk].rk_b0_rxdvs2,
- RK_B1_RXDVS2_R_RK0_RX_DLY_FAL_TRACK_GATE_ENA_B1, 0,
- RK_B1_RXDVS2_R_RK0_RX_DLY_RIS_TRACK_GATE_ENA_B1, 0,
- RK_B1_RXDVS2_R_RK0_DVS_MODE_B1, 0);
- }
-
- SET32_BITFIELDS(&ch[0].ao.cbt_wlev_ctrl1, CBT_WLEV_CTRL1_CATRAINLAT, 0);
- SET32_BITFIELDS(&ch[0].ao.swcmd_ctrl1, SWCMD_CTRL1_WRFIFO_MODE2, 0);
-
- u32 bc_bak = dramc_get_broadcast();
- dramc_set_broadcast(DRAMC_BROADCAST_OFF);
-
- switch (freq_group) {
- case DDRFREQ_400:
- case DDRFREQ_600:
- case DDRFREQ_800:
- case DDRFREQ_933:
- dq_cap_sel = 0x18;
- ca_cap_sel = 0x18;
- break;
- case DDRFREQ_1200:
- dq_cap_sel = 0x14;
- ca_cap_sel = 0x14;
- break;
- case DDRFREQ_1600:
- dq_cap_sel = 0x4;
- ca_cap_sel = 0x4;
- break;
- case DDRFREQ_2133:
- dq_cap_sel = 0x2;
- ca_cap_sel = 0x2;
- break;
- default:
- die("Invalid DDR frequency group %u\n", freq_group);
- return;
- }
-
- if (freq_group <= DDRFREQ_933) {
- dq_hyst_sel = 0x1;
- ca_hyst_sel = 0x1;
- } else {
- dq_hyst_sel = 0x0;
- ca_hyst_sel = 0x0;
- }
-
- if (freq_group <= DDRFREQ_1200)
- clk_bw_sel_ca = 1;
-
- is_4266 = freq_group >= DDRFREQ_2133;
- if (is_4266) {
- dq_bw_sel_b0 = 1;
- dq_bw_sel_b1 = 1;
- ca_bw_sel_ca = 1;
- }
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- SET32_BITFIELDS(&ch[chn].phy_ao.byte[0].shu_b0_dq6,
- SHU_B0_DQ6_RG_ARPI_HYST_SEL_B0, dq_hyst_sel,
- SHU_B0_DQ6_RG_ARPI_CAP_SEL_B0, dq_cap_sel);
- SET32_BITFIELDS(&ch[chn].phy_ao.byte[1].shu_b0_dq6,
- SHU_B1_DQ6_RG_ARPI_HYST_SEL_B1, dq_hyst_sel,
- SHU_B1_DQ6_RG_ARPI_CAP_SEL_B1, dq_cap_sel);
- SET32_BITFIELDS(&ch[chn].phy_ao.shu_ca_cmd6,
- SHU_CA_CMD6_RG_ARPI_HYST_SEL_CA, ca_hyst_sel,
- SHU_CA_CMD6_RG_ARPI_CAP_SEL_CA, ca_cap_sel);
- SET32_BITFIELDS(&ch[chn].phy_ao.byte[0].shu_b0_dq2,
- SHU_B0_DQ2_RG_ARPI_PSMUX_XLATCH_FORCE_DQS_B0, is_4266,
- SHU_B0_DQ2_RG_ARPI_PSMUX_XLATCH_FORCE_DQ_B0, is_4266,
- SHU_B0_DQ2_RG_ARPI_SMT_XLATCH_FORCE_DQS_B0, 0,
- SHU_B0_DQ2_RG_ARPI_SMT_XLATCH_DQ_FORCE_B0, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.byte[1].shu_b0_dq2,
- SHU_B1_DQ2_RG_ARPI_PSMUX_XLATCH_FORCE_DQS_B1, is_4266,
- SHU_B1_DQ2_RG_ARPI_PSMUX_XLATCH_FORCE_DQ_B1, is_4266,
- SHU_B1_DQ2_RG_ARPI_SMT_XLATCH_FORCE_DQS_B1, 0,
- SHU_B1_DQ2_RG_ARPI_SMT_XLATCH_DQ_FORCE_B1, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.shu_ca_cmd2,
- SHU_CA_CMD2_RG_ARPI_PSMUX_XLATCH_FORCE_CLK_CA, is_4266,
- SHU_CA_CMD2_RG_ARPI_PSMUX_XLATCH_FORCE_CA_CA, is_4266,
- SHU_CA_CMD2_RG_ARPI_SMT_XLATCH_FORCE_CLK_CA, 0,
- SHU_CA_CMD2_RG_ARPI_SMT_XLATCH_CA_FORCE_CA, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.shu_misc_rx_pipe_ctrl,
- SHU_MISC_RX_PIPE_CTRL_RX_PIPE_BYPASS_EN, 0x0);
- write32(&ch[chn].phy_ao.misc_dbg_irq_ctrl1, 0x0);
- write32(&ch[chn].phy_ao.misc_dbg_irq_ctrl4, 0x0);
- write32(&ch[chn].phy_ao.misc_dbg_irq_ctrl7, 0x0);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_shu_rx_cg_ctrl,
- MISC_SHU_RX_CG_CTRL_RX_DCM_WAIT_DLE_EXT_DLY, 0,
- MISC_SHU_RX_CG_CTRL_RX_DCM_EXT_DLY, 2,
- MISC_SHU_RX_CG_CTRL_RX_APHY_CTRL_DCM_OPT, 0,
- MISC_SHU_RX_CG_CTRL_RX_DCM_OPT, 0);
- SET32_BITFIELDS(&ch[chn].ao.hmr4, HMR4_MR4INT_LIMITEN, 0);
- SET32_BITFIELDS(&ch[chn].ao.refctrl1, REFCTRL1_REFPEND_OPT1, 0);
- SET32_BITFIELDS(&ch[chn].ao.refctrl3, REFCTRL3_REF_DERATING_EN, 0);
- SET32_BITFIELDS(&ch[chn].ao.dramc_irq_en,
- DRAMC_IRQ_EN_DRAMC_IRQ_EN_RSV, 0x3fff,
- DRAMC_IRQ_EN_MR4INT_EN, 0x0);
- SET32_BITFIELDS(&ch[chn].ao.shu_conf0, SHU_CONF0_PBREFEN, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.ca_tx_mck,
- CA_TX_MCK_R_DMRESET_FRPHY_OPT, 0x1);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_dvfsctl2,
- MISC_DVFSCTL2_RG_ADA_MCK8X_EN_SHUFFLE, 0x1);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_impcal, MISC_IMPCAL_IMPBINARY, 0x1);
- SET32_BITFIELDS(&ch[chn].phy_ao.byte[0].shu_b0_dq10,
- SHU_B0_DQ10_RG_RX_ARDQS_DQSSTB_RPST_HS_EN_B0, 0x1,
- SHU_B0_DQ10_RG_RX_ARDQS_DQSSTB_CG_EN_B0, 0x1);
- SET32_BITFIELDS(&ch[chn].phy_ao.byte[1].shu_b0_dq10,
- SHU_B1_DQ10_RG_RX_ARDQS_DQSSTB_RPST_HS_EN_B1, 0x1,
- SHU_B1_DQ10_RG_RX_ARDQS_DQSSTB_CG_EN_B1, 0x1);
- SET32_BITFIELDS(&ch[chn].phy_ao.byte[0].shu_b0_dq8,
- SHU_B0_DQ8_R_DMRANK_CHG_PIPE_CG_IG_B0, 1,
- SHU_B0_DQ8_R_DMRANK_PIPE_CG_IG_B0, 1,
- SHU_B0_DQ8_R_DMDQSIEN_RDSEL_TOG_PIPE_CG_IG_B0, 1,
- SHU_B0_DQ8_R_DMDQSIEN_RDSEL_PIPE_CG_IG_B0, 1,
- SHU_B0_DQ8_R_DMDQSIEN_FLAG_PIPE_CG_IG_B0, 1,
- SHU_B0_DQ8_R_DMDQSIEN_FLAG_SYNC_CG_IG_B0, 1,
- SHU_B0_DQ8_R_DMRXDLY_CG_IG_B0, 1,
- SHU_B0_DQ8_R_DMRXDVS_RDSEL_TOG_PIPE_CG_IG_B0, 1,
- SHU_B0_DQ8_R_DMRXDVS_RDSEL_PIPE_CG_IG_B0, 1,
- SHU_B0_DQ8_R_RMRODTEN_CG_IG_B0, 1,
- SHU_B0_DQ8_R_DMRANK_RXDLY_PIPE_CG_IG_B0, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.byte[1].shu_b0_dq8,
- SHU_B1_DQ8_R_DMRANK_CHG_PIPE_CG_IG_B1, 1,
- SHU_B1_DQ8_R_DMRANK_PIPE_CG_IG_B1, 1,
- SHU_B1_DQ8_R_DMDQSIEN_RDSEL_TOG_PIPE_CG_IG_B1, 1,
- SHU_B1_DQ8_R_DMDQSIEN_RDSEL_PIPE_CG_IG_B1, 1,
- SHU_B1_DQ8_R_DMDQSIEN_FLAG_PIPE_CG_IG_B1, 1,
- SHU_B1_DQ8_R_DMDQSIEN_FLAG_SYNC_CG_IG_B1, 1,
- SHU_B1_DQ8_R_DMRXDLY_CG_IG_B1, 1,
- SHU_B1_DQ8_R_DMRXDVS_RDSEL_TOG_PIPE_CG_IG_B1, 1,
- SHU_B1_DQ8_R_DMRXDVS_RDSEL_PIPE_CG_IG_B1, 1,
- SHU_B1_DQ8_R_RMRODTEN_CG_IG_B1, 1,
- SHU_B1_DQ8_R_DMRANK_RXDLY_PIPE_CG_IG_B1, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.byte[0].shu_b0_dll2,
- SHU_B0_DLL2_RG_ARDQ_REV_B0, 0x1);
- SET32_BITFIELDS(&ch[chn].phy_ao.byte[1].shu_b0_dll2,
- SHU_B1_DLL2_RG_ARDQ_REV_B1, 0x1);
- SET32_BITFIELDS(&ch[chn].phy_ao.shu_ca_dll2,
- SHU_CA_DLL2_RG_ARCMD_REV, 0x1);
- SET32_BITFIELDS(&ch[chn].ao.dummy_rd, DUMMY_RD_DQSG_DMYRD_EN, 0);
- SET32_BITFIELDS(&ch[chn].ao.dramc_dbg_sel1,
- DRAMC_DBG_SEL1_DEBUG_SEL_0, 0x1e);
- SET32_BITFIELDS(&ch[chn].ao.swcmd_ctrl2, SWCMD_CTRL2_RTSWCMD_AGE, 0x20);
- SET32_BITFIELDS(&ch[chn].ao.rtmrw_ctrl0, RTMRW_CTRL0_RTMRW_AGE, 0x20);
- SET32_BITFIELDS(&ch[chn].ao.dllfrz_ctrl,
- DLLFRZ_CTRL_DLLFRZ, 0,
- DLLFRZ_CTRL_DLLFRZ_MON_PBREF_OPT, 0);
- SET32_BITFIELDS(&ch[chn].ao.mpc_ctrl,
- MPC_CTRL_RTSWCMD_HPRI_EN, 1,
- MPC_CTRL_RTMRW_HPRI_EN, 1);
- SET32_BITFIELDS(&ch[chn].ao.hw_mrr_fun,
- HW_MRR_FUN_R2MRRHPRICTL, 0,
- HW_MRR_FUN_TR2MRR_ENA, 0);
- SET32_BITFIELDS(&ch[chn].ao.actiming_ctrl,
- ACTIMING_CTRL_REFNA_OPT, 1,
- ACTIMING_CTRL_SEQCLKRUN3, 1);
- SET32_BITFIELDS(&ch[chn].ao.ckectrl, CKECTRL_RUNTIMEMRRCKEFIX, 1);
- SET32_BITFIELDS(&ch[chn].ao.dvfs_ctrl0,
- DVFS_CTRL0_DVFS_SYNC_MASK, 0,
- DVFS_CTRL0_R_DVFS_SREF_OPT, 1);
- SET32_BITFIELDS(&ch[chn].ao.dvfs_timing_ctrl1,
- DVFS_TIMING_CTRL1_SHU_PERIOD_GO_ZERO_CNT, 1);
- SET32_BITFIELDS(&ch[chn].ao.hmr4,
- HMR4_REFRCNT_OPT, 1,
- HMR4_REFR_PERIOD_OPT, 0,
- HMR4_SPDR_MR4_OPT, 1,
- HMR4_HMR4_TOG_OPT, 0);
- SET32_BITFIELDS(&ch[chn].ao.rx_set0, RX_SET0_SMRR_UPD_OLD, 0);
- SET32_BITFIELDS(&ch[chn].ao.dramctrl, DRAMCTRL_SHORTQ_OPT, 1);
- SET32_BITFIELDS(&ch[chn].ao.misctl0,
- MISCTL0_REFP_ARBMASK_PBR2PBR_PA_DIS, 1);
- SET32_BITFIELDS(&ch[chn].ao.perfctl0, PERFCTL0_EBG_EN, 0);
- SET32_BITFIELDS(&ch[chn].ao.clkar,
- CLKAR_REQQUECLKRUN, 1,
- CLKAR_REQQUE_PACG_DIS, 0x7fff);
- SET32_BITFIELDS(&ch[chn].ao.refctrl0,
- REFCTRL0_PBREF_BK_REFA_ENA, 0,
- REFCTRL0_PBREF_BK_REFA_NUM, 0);
- SET32_BITFIELDS(&ch[chn].ao.refctrl1,
- REFCTRL1_REF_OVERHEAD_SLOW_REFPB_ENA, 0);
- SET32_BITFIELDS(&ch[chn].ao.refctrl1, REFCTRL1_REFPB2AB_IGZQCS, 0);
- SET32_BITFIELDS(&ch[chn].ao.refctrl1, REFCTRL1_REFPENDINGINT_OPT1, 1);
- SET32_BITFIELDS(&ch[chn].ao.ref_bounce1,
- REF_BOUNCE1_REFRATE_DEBOUNCE_TH, 5);
- SET32_BITFIELDS(&ch[chn].ao.refpend2, REFPEND2_MPENDREFCNT_TH8, 8);
- SET32_BITFIELDS(&ch[chn].ao.scsmctrl, SCSMCTRL_SC_PG_MAN_DIS, 0);
- SET32_BITFIELDS(&ch[chn].ao.scsmctrl_cg,
- SCSMCTRL_CG_SCSM_CGAR, 1,
- SCSMCTRL_CG_SCARB_SM_CGAR, 1);
- SET32_BITFIELDS(&ch[chn].ao.rtswcmd_cnt,
- RTSWCMD_CNT_RTSWCMD_CNT, 0x30);
- SET32_BITFIELDS(&ch[chn].ao.dramc_irq_en,
- DRAMC_IRQ_EN_DRAMC_IRQ_EN_RSV, 0x3fff);
- SET32_BITFIELDS(&ch[chn].ao.shu_dcm_ctrl0,
- SHU_DCM_CTRL0_DDRPHY_CLK_EN_OPT, 1);
- SET32_BITFIELDS(&ch[chn].ao.shu_hmr4_dvfs_ctrl0,
- SHU_HMR4_DVFS_CTRL0_REFRCNT, 0x1ff,
- SHU_HMR4_DVFS_CTRL0_FSPCHG_PRDCNT, 0);
- SET32_BITFIELDS(&ch[chn].ao.shu_hwset_vrcg,
- SHU_HWSET_VRCG_VRCGDIS_PRDCNT, 11);
- SET32_BITFIELDS(&ch[chn].ao.shu_misc, SHU_MISC_REQQUE_MAXCNT, 2);
- SET32_BITFIELDS(&ch[chn].phy_ao.dvs_b[0].b0_dll_arpi4,
- B0_DLL_ARPI4_RG_ARPI_BYPASS_SR_DQS_B0, 1,
- B0_DLL_ARPI4_RG_ARPI_BYPASS_SR_DQ_B0, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.dvs_b[1].b0_dll_arpi4,
- B1_DLL_ARPI4_RG_ARPI_BYPASS_SR_DQS_B1, 1,
- B1_DLL_ARPI4_RG_ARPI_BYPASS_SR_DQ_B1, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.ca_dll_arpi4,
- CA_DLL_ARPI4_RG_ARPI_BYPASS_SR_CLK_CA, 1,
- CA_DLL_ARPI4_RG_ARPI_BYPASS_SR_CA_CA, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.ca_cmd11,
- CA_CMD11_RG_RRESETB_DRVN, 0xa,
- CA_CMD11_RG_RRESETB_DRVP, 0xa);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_cg_ctrl2,
- MISC_CG_CTRL2_RG_MEM_DCM_IDLE_FSEL, 0x1f);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_cg_ctrl9,
- MISC_CG_CTRL9_RG_MCK4X_O_FB_CK_CG_OFF, 0,
- MISC_CG_CTRL9_RG_CG_DDR400_MCK4X_O_OFF, 0,
- MISC_CG_CTRL9_RG_MCK4X_O_OPENLOOP_MODE_EN, 0,
- MISC_CG_CTRL9_RG_MCK4X_Q_FB_CK_CG_OFF, 0,
- MISC_CG_CTRL9_RG_CG_DDR400_MCK4X_Q_OFF, 0,
- MISC_CG_CTRL9_RG_MCK4X_Q_OPENLOOP_MODE_EN, 0,
- MISC_CG_CTRL9_RG_MCK4X_I_FB_CK_CG_OFF, 0,
- MISC_CG_CTRL9_RG_CG_DDR400_MCK4X_I_OFF, 0,
- MISC_CG_CTRL9_RG_MCK4X_I_OPENLOOP_MODE_EN, 0,
- MISC_CG_CTRL9_RG_M_CK_OPENLOOP_MODE_EN, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_dvfsctl2,
- MISC_DVFSCTL2_RG_ADA_MCK8X_EN_SHUFFLE, 1,
- MISC_DVFSCTL2_RG_DLL_SHUFFLE, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_dvfsctl3,
- MISC_DVFSCTL3_RG_CNT_PHY_ST_DELAY_AFT_CHG_TO_BCLK, 0x10,
- MISC_DVFSCTL3_RG_DVFS_MEM_CK_SEL_SOURCE, 1,
- MISC_DVFSCTL3_RG_DVFS_MEM_CK_SEL_DESTI, 3,
- MISC_DVFSCTL3_RG_PHY_ST_DELAY_BEF_CHG_TO_BCLK, 1,
- MISC_DVFSCTL3_RG_PHY_ST_DELAY_AFT_CHG_TO_MCLK, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_ddr_reserve,
- MISC_DDR_RESERVE_WDT_CONF_ISO_CNT, 0xf);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_imp_ctrl1,
- MISC_IMP_CTRL1_RG_RIMP_SUS_ECO_OPT, 1,
- MISC_IMP_CTRL1_IMP_ABN_LAT_CLR, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_impcal,
- MISC_IMPCAL_IMPCAL_BYPASS_UP_CA_DRV, 1,
- MISC_IMPCAL_IMPCAL_DRVUPDOPT, 1,
- MISC_IMPCAL_IMPBINARY, 1,
- MISC_IMPCAL_DQDRVSWUPD, 1,
- MISC_IMPCAL_DRVCGWREF, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_dutyscan1,
- MISC_DUTYSCAN1_EYESCAN_DQS_OPT, 1,
- MISC_DUTYSCAN1_RX_EYE_SCAN_CG_EN, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_dvfs_emi_clk,
- MISC_DVFS_EMI_CLK_RG_DLL_SHUFFLE_DDRPHY, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_ctrl0,
- MISC_CTRL0_IDLE_DCM_CHB_CDC_ECO_OPT, 0,
- MISC_CTRL0_IMPCAL_CDC_ECO_OPT, 1,
- MISC_CTRL0_IMPCAL_LP_ECO_OPT, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_ctrl4,
- MISC_CTRL4_R_OPT2_CG_CS, 0,
- MISC_CTRL4_R_OPT2_CG_CLK, 0,
- MISC_CTRL4_R_OPT2_CG_CMD, 0,
- MISC_CTRL4_R_OPT2_CG_DQSIEN, 0,
- MISC_CTRL4_R_OPT2_CG_DQ, 0,
- MISC_CTRL4_R_OPT2_CG_DQS, 0,
- MISC_CTRL4_R_OPT2_CG_DQM, 0,
- MISC_CTRL4_R_OPT2_CG_MCK, 0,
- MISC_CTRL4_R_OPT2_MPDIV_CG, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_ctrl6,
- MISC_CTRL6_RG_ADA_MCK8X_EN_SHU_OPT, 1,
- MISC_CTRL6_RG_PHDET_EN_SHU_OPT, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_rx_autok_cfg0,
- MISC_RX_AUTOK_CFG0_RX_CAL_CG_EN, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.byte[0].shu_b0_dq1,
- SHU_B0_DQ1_RG_ARPI_MIDPI_BYPASS_EN_B0, 1,
- SHU_B0_DQ1_RG_ARPI_MIDPI_DUMMY_EN_B0, 1,
- SHU_B0_DQ1_RG_ARPI_8PHASE_XLATCH_FORCE_B0, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.byte[1].shu_b0_dq1,
- SHU_B1_DQ1_RG_ARPI_MIDPI_BYPASS_EN_B1, 1,
- SHU_B1_DQ1_RG_ARPI_MIDPI_DUMMY_EN_B1, 1,
- SHU_B1_DQ1_RG_ARPI_8PHASE_XLATCH_FORCE_B1, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.byte[0].shu_b0_dq10,
- SHU_B0_DQ10_RG_RX_ARDQS_BW_SEL_B0, 1,
- SHU_B0_DQ10_RG_RX_ARDQS_DQSSTB_RPST_HS_EN_B0, 1,
- SHU_B0_DQ10_RG_RX_ARDQS_DQSSTB_CG_EN_B0, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.byte[1].shu_b0_dq10,
- SHU_B1_DQ10_RG_RX_ARDQS_BW_SEL_B1, 1,
- SHU_B1_DQ10_RG_RX_ARDQS_DQSSTB_RPST_HS_EN_B1, 1,
- SHU_B1_DQ10_RG_RX_ARDQS_DQSSTB_CG_EN_B1, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.byte[0].shu_b0_dq11,
- SHU_B0_DQ11_RG_RX_ARDQ_BW_SEL_B0, dq_bw_sel_b0);
- SET32_BITFIELDS(&ch[chn].phy_ao.byte[1].shu_b0_dq11,
- SHU_B1_DQ11_RG_RX_ARDQ_BW_SEL_B1, dq_bw_sel_b1);
- SET32_BITFIELDS(&ch[chn].phy_ao.shu_ca_cmd11,
- SHU_CA_CMD11_RG_RX_ARCA_BW_SEL_CA, ca_bw_sel_ca);
- SET32_BITFIELDS(&ch[chn].phy_ao.shu_ca_cmd10,
- SHU_CA_CMD10_RG_RX_ARCLK_BW_SEL_CA, clk_bw_sel_ca);
- SET32_BITFIELDS(&ch[chn].phy_ao.shu_ca_cmd1,
- SHU_CA_CMD1_RG_ARPI_MIDPI_BYPASS_EN_CA, 1,
- SHU_CA_CMD1_RG_ARPI_MIDPI_DUMMY_EN_CA, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.shu_ca_cmd8,
- SHU_CA_CMD8_R_DMRANK_CHG_PIPE_CG_IG_CA, 1,
- SHU_CA_CMD8_R_DMRANK_PIPE_CG_IG_CA, 1,
- SHU_CA_CMD8_R_DMDQSIEN_RDSEL_TOG_PIPE_CG_IG_CA, 1,
- SHU_CA_CMD8_R_DMDQSIEN_RDSEL_PIPE_CG_IG_CA, 1,
- SHU_CA_CMD8_R_DMDQSIEN_FLAG_PIPE_CG_IG_CA, 1,
- SHU_CA_CMD8_R_DMDQSIEN_FLAG_SYNC_CG_IG_CA, 1,
- SHU_CA_CMD8_R_RMRX_TOPHY_CG_IG_CA, 1,
- SHU_CA_CMD8_R_RMRODTEN_CG_IG_CA, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.shu_ca_cmd12,
- SHU_CA_CMD12_RG_RIMP_REV, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_shu_impedamce_upd_dis1,
- MISC_SHU_IMPEDAMCE_UPD_DIS1_CMD1_ODTN_UPD_DIS, 1,
- MISC_SHU_IMPEDAMCE_UPD_DIS1_CMD1_DRVN_UPD_DIS, 1,
- MISC_SHU_IMPEDAMCE_UPD_DIS1_CMD1_DRVP_UPD_DIS, 1,
- MISC_SHU_IMPEDAMCE_UPD_DIS1_CS_ODTN_UPD_DIS, 1,
- MISC_SHU_IMPEDAMCE_UPD_DIS1_CS_DRVN_UPD_DIS, 1,
- MISC_SHU_IMPEDAMCE_UPD_DIS1_CS_DRVP_UPD_DIS, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_shu_rx_cg_ctrl,
- MISC_SHU_RX_CG_CTRL_RX_DCM_WAIT_DLE_EXT_DLY, 0,
- MISC_SHU_RX_CG_CTRL_RX_DCM_EXT_DLY, 2,
- MISC_SHU_RX_CG_CTRL_RX_APHY_CTRL_DCM_OPT, 0,
- MISC_SHU_RX_CG_CTRL_RX_DCM_OPT, 0);
- }
-
- dramc_set_broadcast(bc_bak);
-}
-
-static void rx_picg_setting(const struct ddr_cali *cali)
-{
- u8 talk_lat = (get_div_mode(cali) == DIV4_MODE) ? 1 : 0;
-
- SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_stbcal,
- MISC_SHU_STBCAL_STBCALEN, 0);
- SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_stbcal,
- MISC_SHU_STBCAL_STB_SELPHCALEN, 0);
- SET32_BITFIELDS(&ch[0].phy_ao.misc_stbcal1,
- MISC_STBCAL1_STBCNT_SHU_RST_EN, 1);
- SET32_BITFIELDS(&ch[0].phy_ao.misc_stbcal2,
- MISC_STBCAL2_DQSIEN_SELPH_BY_RANK_EN, 1);
- SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_stbcal,
- MISC_SHU_STBCAL_DQSIEN_PICG_MODE, 1);
- SET32_BITFIELDS(&ch[0].phy_ao.misc_rx_in_gate_en_ctrl,
- MISC_RX_IN_GATE_EN_CTRL_RX_IN_GATE_EN_OPT, 1);
- SET32_BITFIELDS(&ch[0].phy_ao.misc_rx_in_buff_en_ctrl,
- MISC_RX_IN_BUFF_EN_CTRL_RX_IN_BUFF_EN_OPT, 1);
- SET32_BITFIELDS(&ch[0].phy_ao.misc_stbcal2,
- MISC_STBCAL2_STB_STBENRST_EARLY_1T_EN, 0);
- for (u8 rk = 0; rk < cali->support_ranks; rk++)
- SET32_BITFIELDS(&ch[0].phy_ao.misc_rk[rk].misc_shu_rk_dqsien_picg_ctrl,
- MISC_SHU_RK_DQSIEN_PICG_CTRL_DQSIEN_PICG_TAIL_EXT_LAT, talk_lat,
- MISC_SHU_RK_DQSIEN_PICG_CTRL_DQSIEN_PICG_HEAD_EXT_LAT, 0);
- SET32_BITFIELDS(&ch[0].phy_ao.misc_rx_in_buff_en_ctrl,
- MISC_RX_IN_BUFF_EN_CTRL_DIS_IN_BUFF_EN, 0,
- MISC_RX_IN_BUFF_EN_CTRL_FIX_IN_BUFF_EN, 0,
- MISC_RX_IN_BUFF_EN_CTRL_RX_IN_BUFF_EN_4BYTE_EN, 0);
- SET32_BITFIELDS(&ch[0].phy_ao.misc_rx_in_gate_en_ctrl,
- MISC_RX_IN_GATE_EN_CTRL_DIS_IN_GATE_EN, 0,
- MISC_RX_IN_GATE_EN_CTRL_FIX_IN_GATE_EN, 0,
- MISC_RX_IN_GATE_EN_CTRL_RX_IN_GATE_EN_4BYTE_EN, 0);
-}
-
-static void dqs_stb_settings(void)
-{
- u32 dqsien_mode = 1;
-
- SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_stbcal,
- MISC_SHU_STBCAL_DQSIEN_DQSSTB_MODE, dqsien_mode);
- SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_dq10,
- SHU_B0_DQ10_RG_RX_ARDQS_DQSIEN_MODE_B0, dqsien_mode);
- SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_dq10,
- SHU_B1_DQ10_RG_RX_ARDQS_DQSIEN_MODE_B1, dqsien_mode);
-}
-
-static void rodt_settings(const struct ddr_cali *cali)
-{
- u8 vref_sel;
- u8 odt_onoff = get_odt_state(cali);
- if (get_odt_state(cali) == ODT_ON)
- vref_sel = 0x2c;
- else
- vref_sel = 0x37;
-
- SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[0].b0_dq5,
- B0_DQ5_RG_RX_ARDQ_VREF_EN_B0, 1);
- SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[1].b0_dq5,
- B1_DQ5_RG_RX_ARDQ_VREF_EN_B1, 1);
- SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_vref,
- SHU_B0_VREF_RG_RX_ARDQ_VREF_UNTERM_EN_B0, !odt_onoff);
- SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_vref,
- SHU_B1_VREF_RG_RX_ARDQ_VREF_UNTERM_EN_B1, !odt_onoff);
-
- for (u8 rk = 0; rk < cali->support_ranks; rk++) {
- SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[rk].shu_b0_phy_vref_sel,
- RG_RX_ARDQ_VREF_SEL_LB_B0, vref_sel,
- RG_RX_ARDQ_VREF_SEL_UB_B0, vref_sel);
- SET32_BITFIELDS(&ch[0].phy_ao.byte[1].rk[rk].shu_b0_phy_vref_sel,
- RG_RX_ARDQ_VREF_SEL_LB_B1, vref_sel,
- RG_RX_ARDQ_VREF_SEL_UB_B1, vref_sel);
- }
-
- SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_vref,
- SHU_B0_VREF_RG_RX_ARDQ_VREF_RANK_SEL_EN_B0, 1);
- SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_vref,
- SHU_B1_VREF_RG_RX_ARDQ_VREF_RANK_SEL_EN_B1, 1);
- SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_odtctrl, MISC_SHU_ODTCTRL_RODTEN, 1);
- SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_dq7, SHU_B0_DQ7_R_DMRODTEN_B0, 1);
- SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_dq7, SHU_B1_DQ7_R_DMRODTEN_B1, 1);
- SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_rodtenstb,
- MISC_SHU_RODTENSTB_RODTENSTB_TRACK_EN, 1,
- MISC_SHU_RODTENSTB_RODTENSTB_TRACK_UDFLWCTRL, 1,
- MISC_SHU_RODTENSTB_RODTENSTB_SELPH_BY_BITTIME, 0);
- SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_dq13,
- SHU_B0_DQ13_RG_TX_ARDQ_IO_ODT_DIS_B0, !odt_onoff);
- SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_dq13,
- SHU_B1_DQ13_RG_TX_ARDQ_IO_ODT_DIS_B1, !odt_onoff);
- SET32_BITFIELDS(&ch[0].phy_ao.shu_ca_cmd13,
- SHU_CA_CMD13_RG_TX_ARCA_IO_ODT_DIS_CA, !odt_onoff);
- SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_dq13,
- SHU_B0_DQ13_RG_TX_ARDQS_OE_ODTEN_CG_EN_B0, 0,
- SHU_B0_DQ13_RG_TX_ARDQM_OE_ODTEN_CG_EN_B0, 0);
- SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_dq14,
- SHU_B0_DQ14_RG_TX_ARDQ_OE_ODTEN_CG_EN_B0, 0);
- SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_dq13,
- SHU_B1_DQ13_RG_TX_ARDQS_OE_ODTEN_CG_EN_B1, 0,
- SHU_B1_DQ13_RG_TX_ARDQM_OE_ODTEN_CG_EN_B1, 0);
- SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_dq14,
- SHU_B1_DQ14_RG_TX_ARDQ_OE_ODTEN_CG_EN_B1, 0);
-}
-
-void dramc_cmd_ui_delay_setting(u8 chn, u8 value)
-{
- SET32_BITFIELDS(&ch[chn].ao.shu_selph_ca7,
- SHU_SELPH_CA7_DLY_RA0, value,
- SHU_SELPH_CA7_DLY_RA1, value,
- SHU_SELPH_CA7_DLY_RA2, value,
- SHU_SELPH_CA7_DLY_RA3, value,
- SHU_SELPH_CA7_DLY_RA4, value,
- SHU_SELPH_CA7_DLY_RA5, value,
- SHU_SELPH_CA7_DLY_RA6, value);
- SET32_BITFIELDS(&ch[chn].ao.shu_selph_ca5, SHU_SELPH_CA5_DLY_CKE, value);
- SET32_BITFIELDS(&ch[chn].ao.shu_selph_ca6, SHU_SELPH_CA6_DLY_CKE1, value);
-}
-
-void cbt_delay_ca_clk(u8 chn, u8 rank, s32 delay)
-{
- if (delay < 0)
- /* Set CLK delay */
- SET32_BITFIELDS(&ch[chn].phy_ao.ca_rk[rank].shu_r0_ca_cmd0,
- SHU_R0_CA_CMD0_RG_ARPI_CMD, 0,
- SHU_R0_CA_CMD0_RG_ARPI_CLK, -delay,
- SHU_R0_CA_CMD0_RG_ARPI_CS, -delay);
- else
- /* Set CA output delay */
- SET32_BITFIELDS(&ch[chn].phy_ao.ca_rk[rank].shu_r0_ca_cmd0,
- SHU_R0_CA_CMD0_RG_ARPI_CMD, delay,
- SHU_R0_CA_CMD0_RG_ARPI_CLK, 0,
- SHU_R0_CA_CMD0_RG_ARPI_CS, 0);
-}
-
-static void set_mck_8x_low_pwr_option(void)
-{
- const u32 mck_8x_mode = 1;
-
- SET32_BITFIELDS(&ch[0].phy_ao.misc_lp_ctrl,
- MISC_LP_CTRL_RG_SC_ARPI_RESETB_8X_SEQ_LP_SEL, mck_8x_mode,
- MISC_LP_CTRL_RG_ADA_MCK8X_8X_SEQ_LP_SEL, mck_8x_mode,
- MISC_LP_CTRL_RG_AD_MCK8X_8X_SEQ_LP_SEL, mck_8x_mode,
- MISC_LP_CTRL_RG_MIDPI_EN_8X_SEQ_LP_SEL, mck_8x_mode,
- MISC_LP_CTRL_RG_MIDPI_CKDIV4_EN_8X_SEQ_LP_SEL, mck_8x_mode,
- MISC_LP_CTRL_RG_MCK8X_CG_SRC_LP_SEL, mck_8x_mode,
- MISC_LP_CTRL_RG_MCK8X_CG_SRC_AND_LP_SEL, mck_8x_mode);
-}
-
-static void update_initial_settings(const struct ddr_cali *cali)
-{
- const u8 ca_pi = 0, ca_ui = 1;
- u8 fsp = get_fsp(cali);
- dram_freq_grp freq_group = get_freq_group(cali);
- u8 buf_en_head;
-
- SET32_BITFIELDS(&ch[0].phy_ao.misc_ctrl3, MISC_CTRL3_ARPI_CG_CLK_OPT, 0);
- SET32_BITFIELDS(&ch[0].phy_ao.misc_ctrl4, MISC_CTRL4_R_OPT2_CG_CLK, 0);
-
- replace_dv_init(cali);
-
- SET32_BITFIELDS(&ch[0].phy_ao.shu_ca_cmd14,
- SHU_CA_CMD14_RG_TX_ARCA_MCKIO_SEL_CA, 0xc0);
- SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_dq7,
- SHU_B0_DQ7_R_DMRXDVS_PBYTE_DQM_EN_B0, 0x0,
- SHU_B0_DQ7_R_DMRXDVS_PBYTE_FLAG_OPT_B0, 0x0,
- SHU_B0_DQ7_R_DMRXDVS_DQM_FLAGSEL_B0, 0x0);
- SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_dq7,
- SHU_B1_DQ7_R_DMRXDVS_PBYTE_DQM_EN_B1, 0x0,
- SHU_B1_DQ7_R_DMRXDVS_PBYTE_FLAG_OPT_B1, 0x0,
- SHU_B1_DQ7_R_DMRXDVS_DQM_FLAGSEL_B1, 0x0);
-
- rx_picg_setting(cali);
- dramc_sw_impedance_save_register(cali);
- dqs_stb_settings();
- rodt_settings(cali);
- SET32_BITFIELDS(&ch[0].ao.shu_tx_set0, SHU_TX_SET0_DBIWR, 0x0);
-
- dramc_cmd_ui_delay_setting(CHANNEL_A, ca_ui);
- SET32_BITFIELDS(&ch[0].ao.shu_selph_ca5,
- SHU_SELPH_CA5_DLY_CS, 0x1,
- SHU_SELPH_CA5_DLY_CS1, 0x1);
-
- for (u8 rk = 0; rk < cali->support_ranks; rk++)
- cbt_delay_ca_clk(CHANNEL_A, rk, ca_pi);
-
- SET32_BITFIELDS(&ch[0].ao.refctrl1, REFCTRL1_REF_OVERHEAD_PBR2PB_ENA, 0x1);
- SET32_BITFIELDS(&ch[0].ao.misctl0, MISCTL0_REFP_ARBMASK_PBR2PBR_ENA, 0x1);
- SET32_BITFIELDS(&ch[0].ao.scheduler_com, SCHEDULER_COM_PBR2PBR_OPT, 0x1);
- SET32_BITFIELDS(&ch[0].ao.shu_tx_set0, SHU_TX_SET0_WPST1P5T, fsp);
- SET32_BITFIELDS(&ch[0].ao.dummy_rd,
- DUMMY_RD_DMYRD_REORDER_DIS, 0x1,
- DUMMY_RD_SREF_DMYRD_EN, 0x1);
- SET32_BITFIELDS(&ch[0].ao.dramctrl,
- DRAMCTRL_ALL_BLOCK_CTO_ALE_DBG_EN, 0x0,
- DRAMCTRL_DVFS_BLOCK_CTO_ALE_DBG_EN, 0x1,
- DRAMCTRL_SELFREF_BLOCK_CTO_ALE_DBG_EN, 0x1);
- SET32_BITFIELDS(&ch[0].phy_ao.misc_stbcal2, MISC_STBCAL2_DQSGCNT_BYP_REF, 1);
-
- if (freq_group <= DDRFREQ_800)
- buf_en_head = 0;
- else if (freq_group <= DDRFREQ_1200)
- buf_en_head = 1;
- else
- buf_en_head = 2;
-
- SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_phy_rx_ctrl,
- MISC_SHU_PHY_RX_CTRL_RX_IN_BUFF_EN_HEAD, buf_en_head);
-
- SET32_BITFIELDS(&ch[0].phy_ao.misc_ctrl1, MISC_CTRL1_R_DMARPIDQ_SW, 1);
- SET32_BITFIELDS(&ch[0].phy_ao.ca_tx_mck,
- CA_TX_MCK_R_DMRESETB_DRVP_FRPHY, 0xa,
- CA_TX_MCK_R_DMRESETB_DRVN_FRPHY, 0xa);
- SET32_BITFIELDS(&ch[0].phy_ao.misc_shu_rank_sel_lat,
- MISC_SHU_RANK_SEL_LAT_RANK_SEL_LAT_B0, 0x3,
- MISC_SHU_RANK_SEL_LAT_RANK_SEL_LAT_B1, 0x3,
- MISC_SHU_RANK_SEL_LAT_RANK_SEL_LAT_CA, 0x3);
- set_mck_8x_low_pwr_option();
-}
-
-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;
- }
-
- update_initial_settings(cali);
- 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;
- bool set_rank1 = (rank == RANK_MAX) && (cali->support_ranks == DUAL_RANK_DDR);
-
- if (option != CKE_DYNAMIC) {
- cke_on = option;
- cke_off = 1 - option;
- }
-
- if (rank == RANK_0 || rank == RANK_MAX) {
- SET32_BITFIELDS(&ch[chn].ao.ckectrl,
- CKECTRL_CKEFIXOFF, cke_off,
- CKECTRL_CKEFIXON, cke_on);
- }
- if (rank == RANK_1 || set_rank1) {
- SET32_BITFIELDS(&ch[chn].ao.ckectrl,
- CKECTRL_CKE1FIXOFF, cke_off,
- CKECTRL_CKE1FIXON, cke_on);
- }
-}
-
-static void dramc_power_on_sequence(const struct ddr_cali *cali)
-{
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_ctrl1,
- MISC_CTRL1_R_DMDA_RRESETB_I, 0x0);
- cke_fix_onoff(cali, chn, RANK_MAX, CKE_FIXOFF);
- udelay(200);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_ctrl1,
- MISC_CTRL1_R_DMDA_RRESETB_I, 0x1);
- SET32_BITFIELDS(&ch[chn].ao.dramc_pd_ctrl,
- DRAMC_PD_CTRL_APHYCKCG_FIXOFF, 1);
- SET32_BITFIELDS(&ch[chn].ao.dramc_pd_ctrl,
- DRAMC_PD_CTRL_TCKFIXON, 1);
- mdelay(2);
- cke_fix_onoff(cali, chn, RANK_MAX, CKE_FIXON);
- udelay(2);
- SET32_BITFIELDS(&ch[chn].ao.dramc_pd_ctrl,
- DRAMC_PD_CTRL_TCKFIXON, 0);
- SET32_BITFIELDS(&ch[chn].ao.dramc_pd_ctrl,
- DRAMC_PD_CTRL_APHYCKCG_FIXOFF, 0);
- }
-}
-
-static void dramc_zq_calibration(const struct ddr_cali *cali, u8 chn, u8 rank)
-{
- const u32 timeout = 100;
-
- struct reg_bak regs_bak[] = {
- {&ch[chn].ao.swcmd_en},
- {&ch[chn].ao.swcmd_ctrl0},
- {&ch[chn].ao.dramc_pd_ctrl},
- {&ch[chn].ao.ckectrl},
- };
-
- for (int i = 0; i < ARRAY_SIZE(regs_bak); i++)
- regs_bak[i].value = read32(regs_bak[i].addr);
-
- SET32_BITFIELDS(&ch[chn].ao.dramc_pd_ctrl, DRAMC_PD_CTRL_APHYCKCG_FIXOFF, 1);
- SET32_BITFIELDS(&ch[chn].ao.dramc_pd_ctrl, DRAMC_PD_CTRL_TCKFIXON, 1);
- udelay(1);
- cke_fix_onoff(cali, chn, rank, CKE_FIXON);
- SET32_BITFIELDS(&ch[chn].ao.swcmd_ctrl0, SWCMD_CTRL0_SWTRIG_ZQ_RK, rank);
- SET32_BITFIELDS(&ch[chn].ao.swcmd_en, SWCMD_EN_ZQCEN_SWTRIG, 1);
- if (!wait_us(timeout, READ32_BITFIELD(&ch[chn].nao.spcmdresp3,
- SPCMDRESP3_ZQC_SWTRIG_RESPONSE))) {
- dramc_err("ZQCAL Start failed (time out)\n");
- return;
- }
- SET32_BITFIELDS(&ch[chn].ao.swcmd_en, SWCMD_EN_ZQCEN_SWTRIG, 0);
-
- udelay(1);
- SET32_BITFIELDS(&ch[chn].ao.swcmd_en, SWCMD_EN_ZQLATEN_SWTRIG, 1);
- if (!wait_us(timeout, READ32_BITFIELD(&ch[chn].nao.spcmdresp3,
- SPCMDRESP3_ZQLAT_SWTRIG_RESPONSE))) {
- dramc_err("ZQCAL Latch failed (time out)\n");
- return;
- }
- SET32_BITFIELDS(&ch[chn].ao.swcmd_en, SWCMD_EN_ZQLATEN_SWTRIG, 0);
-
- udelay(1);
- for (int i = 0; i < ARRAY_SIZE(regs_bak); i++)
- write32(regs_bak[i].addr, regs_bak[i].value);
-}
-
-u8 dramc_mode_reg_read(u8 chn, u8 mr_idx)
-{
- const u32 timeout = 10000;
- u8 value;
-
- SET32_BITFIELDS(&ch[chn].ao.swcmd_ctrl0, SWCMD_CTRL0_MRSMA, mr_idx);
- SET32_BITFIELDS(&ch[chn].ao.swcmd_en, SWCMD_EN_MRREN, 1);
-
- /* Wait until MRW command fired */
- if (!wait_ms(timeout, READ32_BITFIELD(&ch[chn].nao.spcmdresp,
- SPCMDRESP_MRR_RESPONSE))) {
- dramc_err("Read mode register time out\n");
- return -1;
- }
-
- value = READ32_BITFIELD(&ch[chn].nao.mrr_status, MRR_STATUS_MRR_SW_REG);
- SET32_BITFIELDS(&ch[chn].ao.swcmd_en, SWCMD_EN_MRREN, 0);
- dramc_dbg("Read MR%d = %#x\n", mr_idx, value);
-
- return value;
-}
-
-u8 dramc_mode_reg_read_by_rank(u8 chn, u8 rank, u8 mr_idx)
-{
- u8 value;
- u8 rank_bak;
-
- rank_bak = READ32_BITFIELD(&ch[chn].ao.swcmd_ctrl0, SWCMD_CTRL0_MRSRK);
- SET32_BITFIELDS(&ch[chn].ao.swcmd_ctrl0, SWCMD_CTRL0_MRSRK, rank);
- value = dramc_mode_reg_read(chn, mr_idx);
- SET32_BITFIELDS(&ch[chn].ao.swcmd_ctrl0, SWCMD_CTRL0_MRSRK, rank_bak);
-
- return value;
-}
-
-void dramc_mode_reg_write_by_rank(const struct ddr_cali *cali,
- u8 chn, u8 rank, u8 mr_idx, u8 value)
-{
- u32 bk_bak, ckectrl_bak;
- dramc_info("MRW CH%d RK%d MR%d = %#x\n", chn, rank, mr_idx, value);
-
- bk_bak = READ32_BITFIELD(&ch[chn].ao.swcmd_ctrl0, SWCMD_CTRL0_MRSRK);
- ckectrl_bak = read32(&ch[chn].ao.ckectrl);
-
- SET32_BITFIELDS(&ch[chn].ao.swcmd_ctrl0, SWCMD_CTRL0_MRSRK, rank);
- cke_fix_onoff(cali, chn, rank, CKE_FIXON);
- SET32_BITFIELDS(&ch[chn].ao.swcmd_ctrl0, SWCMD_CTRL0_MRSMA, mr_idx);
- SET32_BITFIELDS(&ch[chn].ao.swcmd_ctrl0, SWCMD_CTRL0_MRSOP, value);
- SET32_BITFIELDS(&ch[chn].ao.swcmd_en, SWCMD_EN_MRWEN, 1);
- while (READ32_BITFIELD(&ch[chn].nao.spcmdresp, SPCMDRESP_MRW_RESPONSE) == 0)
- udelay(1);
-
- SET32_BITFIELDS(&ch[chn].ao.swcmd_en, SWCMD_EN_MRWEN, 0);
- write32(&ch[chn].ao.ckectrl, ckectrl_bak);
- SET32_BITFIELDS(&ch[chn].ao.swcmd_ctrl0, SWCMD_CTRL0_MRSRK, bk_bak);
-}
-
-void cbt_switch_freq(const struct ddr_cali *cali, cbt_freq freq)
-{
- static u8 _cur_freq = CBT_UNKNOWN_FREQ;
-
- /* if frequency is the same as before, do nothing */
- if (_cur_freq == freq)
- return;
- _cur_freq = freq;
-
- enable_dfs_hw_mode_clk();
-
- if (freq == CBT_LOW_FREQ)
- dramc_dfs_direct_jump_rg_mode(cali, DRAM_DFS_SHU1);
- else
- dramc_dfs_direct_jump_rg_mode(cali, DRAM_DFS_SHU0);
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++)
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_clk_ctrl,
- MISC_CLK_CTRL_DVFS_CLK_MEM_SEL, 0,
- MISC_CLK_CTRL_DVFS_MEM_CK_MUX_UPDATE_EN, 0);
-}
-
-static void dramc_mode_reg_init(const struct ddr_cali *cali)
-{
- u8 chn;
- u8 set_mrsrk;
- u8 operate_fsp = get_fsp(cali);
- struct mr_values *mr_value = cali->mr_value;
-
- u32 bc_bak = dramc_get_broadcast();
- dramc_set_broadcast(DRAMC_BROADCAST_OFF);
- dramc_power_on_sequence(cali);
-
- if (get_fsp(cali) == FSP_1) {
- for (chn = 0; chn < CHANNEL_MAX; chn++)
- SET32_BITFIELDS(&ch[chn].phy_ao.ca_cmd2,
- CA_CMD2_RG_TX_ARCMD_OE_DIS_CA, 1,
- CA_CMD2_RG_TX_ARCA_OE_TIE_SEL_CA, 0,
- CA_CMD2_RG_TX_ARCA_OE_TIE_EN_CA, 0xff);
- cbt_switch_freq(cali, CBT_LOW_FREQ);
- for (chn = 0; chn < CHANNEL_MAX; chn++)
- SET32_BITFIELDS(&ch[chn].phy_ao.ca_cmd2,
- CA_CMD2_RG_TX_ARCMD_OE_DIS_CA, 0,
- CA_CMD2_RG_TX_ARCA_OE_TIE_SEL_CA, 1,
- CA_CMD2_RG_TX_ARCA_OE_TIE_EN_CA, 0xff);
- }
-
- for (chn = 0; chn < CHANNEL_MAX; chn++) {
- for (u8 rk = 0; rk < cali->support_ranks; rk++) {
- dramc_dbg("ModeRegInit CH%u RK%u\n", chn, rk);
- for (u8 fsp = FSP_0; fsp < FSP_MAX; fsp++) {
- if (fsp == FSP_0) {
- dramc_dbg("FSP0\n");
- mr_value->mr13[rk] = BIT(4) | BIT(3);
- mr_value->mr22[fsp] = 0x38;
- mr_value->mr11[fsp] = 0x0;
- } else {
- dramc_dbg("FSP1\n");
- mr_value->mr13[rk] |= 0x40;
-
- if (cali->cbt_mode[rk] == CBT_NORMAL_MODE)
- mr_value->mr11[fsp] = 0x3 | 0x40;
- else
- mr_value->mr11[fsp] = 0x3 | 0x20;
-
- if (rk == RANK_0)
- mr_value->mr22[fsp] = 0x4;
- else
- mr_value->mr22[fsp] = 0x2c;
- }
-
- dramc_mode_reg_write_by_rank(cali, chn, rk, 13,
- mr_value->mr13[rk]);
- dramc_mode_reg_write_by_rank(cali, chn, rk, 12,
- mr_value->mr12[chn][rk][fsp]);
- dramc_mode_reg_write_by_rank(cali, chn, rk, 1,
- mr_value->mr01[fsp]);
- dramc_mode_reg_write_by_rank(cali, chn, rk, 2,
- mr_value->mr02[fsp]);
- dramc_mode_reg_write_by_rank(cali, chn, rk, 11,
- mr_value->mr11[fsp]);
- dramc_mode_reg_write_by_rank(cali, chn, rk, 21,
- mr_value->mr21[fsp]);
- dramc_mode_reg_write_by_rank(cali, chn, rk, 51,
- mr_value->mr51[fsp]);
- dramc_mode_reg_write_by_rank(cali, chn, rk, 22,
- mr_value->mr22[fsp]);
- dramc_mode_reg_write_by_rank(cali, chn, rk, 14,
- mr_value->mr14[chn][rk][fsp]);
- dramc_mode_reg_write_by_rank(cali, chn, rk, 3,
- mr_value->mr03[fsp]);
- dramc_mode_reg_write_by_rank(cali, chn, rk, 4,
- mr_value->mr04[rk]);
- dramc_mode_reg_write_by_rank(cali, chn, rk, 3,
- mr_value->mr03[fsp]);
- }
-
- dramc_zq_calibration(cali, chn, rk);
-
- if (operate_fsp == FSP_0)
- mr_value->mr13[rk] &= 0x3f;
- else
- mr_value->mr13[rk] |= 0xc0;
- }
-
- if (cali->support_ranks == DUAL_RANK_DDR)
- set_mrsrk = 0x3;
- else
- set_mrsrk = RANK_0;
-
- dramc_mode_reg_write_by_rank(cali, chn, set_mrsrk, 13, mr_value->mr13[RANK_0]);
-
- SET32_BITFIELDS(&ch[chn].ao.shu_hwset_mr13,
- SHU_HWSET_MR13_HWSET_MR13_OP, mr_value->mr13[RANK_0] | BIT(3),
- SHU_HWSET_MR13_HWSET_MR13_MRSMA, 13);
- SET32_BITFIELDS(&ch[chn].ao.shu_hwset_vrcg,
- SHU_HWSET_VRCG_HWSET_VRCG_OP, mr_value->mr13[RANK_0] | BIT(3),
- SHU_HWSET_VRCG_HWSET_VRCG_MRSMA, 13);
- SET32_BITFIELDS(&ch[chn].ao.shu_hwset_mr2,
- SHU_HWSET_MR2_HWSET_MR2_OP, mr_value->mr02[operate_fsp],
- SHU_HWSET_MR2_HWSET_MR2_MRSMA, 2);
- }
-
- if (operate_fsp == FSP_1) {
- for (chn = 0; chn < CHANNEL_MAX; chn++)
- SET32_BITFIELDS(&ch[chn].phy_ao.ca_cmd2,
- CA_CMD2_RG_TX_ARCMD_OE_DIS_CA, 1,
- CA_CMD2_RG_TX_ARCA_OE_TIE_SEL_CA, 0,
- CA_CMD2_RG_TX_ARCA_OE_TIE_EN_CA, 0xff);
- cbt_switch_freq(cali, CBT_HIGH_FREQ);
- for (chn = 0; chn < CHANNEL_MAX; chn++)
- SET32_BITFIELDS(&ch[chn].phy_ao.ca_cmd2,
- CA_CMD2_RG_TX_ARCMD_OE_DIS_CA, 0,
- CA_CMD2_RG_TX_ARCA_OE_TIE_SEL_CA, 1,
- CA_CMD2_RG_TX_ARCA_OE_TIE_EN_CA, 0xff);
- }
-
- for (chn = 0; chn < CHANNEL_MAX; chn++)
- SET32_BITFIELDS(&ch[chn].ao.swcmd_ctrl0, SWCMD_CTRL0_MRSRK, RANK_0);
-
- dramc_set_broadcast(bc_bak);
-}
-
-static void move_dramc_delay(const struct ddr_cali *cali, reg_transfer *ui,
- reg_transfer *mck, s8 shift_ui)
-{
- s32 sum;
- u8 ui_offset = ui->offset, ui_width = 4, mck_offset = mck->offset, mck_width = 3;
- u32 *ui_reg = ui->addr, *mck_reg = mck->addr;
-
- u32 tmp_ui, tmp_mck, ui_mask, mck_mask;
- u8 div_shift = get_mck2ui_div_shift(cali);
-
- ui_mask = BIT(ui_width) - 1;
- mck_mask = BIT(mck_width) - 1;
- tmp_ui = ((read32(ui_reg) >> ui_offset) & ui_mask) & ~(1 << div_shift);
- tmp_mck = (read32(mck_reg) >> mck_offset) & mck_mask;
-
- sum = (tmp_mck << div_shift) + tmp_ui + shift_ui;
-
- if (sum < 0) {
- tmp_ui = 0;
- tmp_mck = 0;
- } else {
- tmp_mck = sum >> div_shift;
- tmp_ui = sum - (tmp_mck << div_shift);
- }
-
- clrsetbits32(ui_reg, ui_mask << ui_offset, tmp_ui << ui_offset);
- clrsetbits32(mck_reg, mck_mask << mck_offset, tmp_mck << mck_offset);
-}
-
-void shift_dq_ui(const struct ddr_cali *cali, u8 rk, s8 shift_ui)
-{
- u8 chn = cali->chn;
- reg_transfer ui_regs[] = {
- {&ch[chn].ao.shu_rk[rk].shurk_selph_dq3, 0},
- {&ch[chn].ao.shu_rk[rk].shurk_selph_dq3, 4},
- {&ch[chn].ao.shu_rk[rk].shurk_selph_dq2, 0},
- {&ch[chn].ao.shu_rk[rk].shurk_selph_dq2, 4}
- };
- reg_transfer mck_regs[] = {
- {&ch[chn].ao.shu_rk[rk].shurk_selph_dq1, 0},
- {&ch[chn].ao.shu_rk[rk].shurk_selph_dq1, 4},
- {&ch[chn].ao.shu_rk[rk].shurk_selph_dq0, 0},
- {&ch[chn].ao.shu_rk[rk].shurk_selph_dq0, 4}
- };
-
- for (int idx = 0; idx < ARRAY_SIZE(ui_regs); idx++)
- move_dramc_delay(cali, &ui_regs[idx], &mck_regs[idx], shift_ui);
-}
-
-static void ddr_update_ac_timing(const struct ddr_cali *cali)
-{
- u8 table_idx;
- const struct ac_timing *ac_tim;
- const dram_freq_grp freq_group = cali->freq_group;
-
- u8 rank_inctl, tx_dly, datlat_dsel;
- const u8 root = 0;
- u8 tx_rank_inctl;
- const u8 tref_bw = 0;
- u8 tfaw_05t, trrd_05t;
- u16 xrtwtw, xtrtrt, xrtw2r, xrtr2w, tfaw;
- u16 trtw, trtw_05t, tmrr2w, trrd;
- u16 phs_inctl;
- u32 rank_inctl_root;
-
- for (table_idx = 0; table_idx < AC_TIMING_NUMBER; table_idx++)
- if (ac_timing_tbl[table_idx].freq_group == freq_group &&
- ac_timing_tbl[table_idx].div_mode == get_div_mode(cali) &&
- ac_timing_tbl[table_idx].cbt_mode == get_cbt_mode(cali)) {
- dramc_dbg("Found matched AC timing table %u\n", table_idx);
- break;
- }
-
- if (table_idx == AC_TIMING_NUMBER) {
- dramc_err("Error: no matched AC timing table found\n");
- return;
- }
-
- ac_tim = &ac_timing_tbl[table_idx];
-
- trtw = ac_tim->trtw_odt_on;
- trtw_05t = ac_tim->trtw_odt_on_05T;
- xrtw2r = ac_tim->xrtw2r_odt_on;
- xrtr2w = ac_tim->xrtr2w_odt_on;
- tfaw = ac_tim->tfaw_4266;
- tfaw_05t = ac_tim->tfaw_4266_05T;
- trrd = ac_tim->trrd_4266;
- trrd_05t = ac_tim->trrd_4266_05T;
- xtrtrt = ac_tim->xrtr2r_new_mode;
- xrtwtw = ac_tim->xrtw2w_new_mode;
- tmrr2w = ac_tim->tmrr2w_odt_on;
-
- if (READ32_BITFIELD(&ch[0].phy_ao.shu_misc_rx_pipe_ctrl,
- SHU_MISC_RX_PIPE_CTRL_RX_PIPE_BYPASS_EN))
- datlat_dsel = ac_tim->datlat;
- else
- datlat_dsel = ac_tim->datlat > 1 ? ac_tim->datlat - 1 : 0;
-
- if (ac_tim->dqsinctl >= 2) {
- rank_inctl_root = ac_tim->dqsinctl - 2;
- } else {
- dramc_err("rank_inctl_root <2, need check\n");
- rank_inctl_root = 0;
- }
- phs_inctl = (ac_tim->dqsinctl == 0) ? 0 : (ac_tim->dqsinctl - 1);
-
- if (freq_group <= DDRFREQ_800) {
- if (get_div_mode(cali) == DIV4_MODE) {
- tx_rank_inctl = 1;
- tx_dly = 2;
- } else {
- tx_rank_inctl = 0;
- tx_dly = 1;
- }
- } else {
- tx_rank_inctl = 1;
- tx_dly = 2;
- }
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- SET32_BITFIELDS(&ch[chn].ao.shu_actim1,
- SHU_ACTIM1_TRAS, ac_tim->tras,
- SHU_ACTIM1_TRP, ac_tim->trp,
- SHU_ACTIM1_TRPAB, ac_tim->trpab,
- SHU_ACTIM1_TMRWCKEL, ac_tim->tmrwckel,
- SHU_ACTIM1_TRC, ac_tim->trc);
- SET32_BITFIELDS(&ch[chn].ao.shu_actim3,
- SHU_ACTIM3_TRFC, ac_tim->trfc,
- SHU_ACTIM3_TR2MRR, ac_tim->tr2mrr,
- SHU_ACTIM3_TRFCPB, ac_tim->trfcpb);
- SET32_BITFIELDS(&ch[chn].ao.shu_actim2,
- SHU_ACTIM2_TXP, ac_tim->txp,
- SHU_ACTIM2_TMRRI, ac_tim->tmrri,
- SHU_ACTIM2_TFAW, tfaw,
- SHU_ACTIM2_TR2W, trtw,
- SHU_ACTIM2_TRTP, ac_tim->trtp);
- SET32_BITFIELDS(&ch[chn].ao.shu_actim0,
- SHU_ACTIM0_TRCD, ac_tim->trcd,
- SHU_ACTIM0_TWR, ac_tim->twr,
- SHU_ACTIM0_TRRD, trrd);
- SET32_BITFIELDS(&ch[chn].ao.shu_actim5,
- SHU_ACTIM5_TPBR2PBR, ac_tim->tpbr2pbr,
- SHU_ACTIM5_TWTPD, ac_tim->twtpd,
- SHU_ACTIM5_TPBR2ACT, ac_tim->tpbr2act);
- SET32_BITFIELDS(&ch[chn].ao.shu_actim6,
- SHU_ACTIM6_TR2MRW, ac_tim->tr2mrw,
- SHU_ACTIM6_TW2MRW, ac_tim->tw2mrw,
- SHU_ACTIM6_TMRD, ac_tim->tmrd,
- SHU_ACTIM6_TZQLAT2, ac_tim->zqlat2,
- SHU_ACTIM6_TMRW, ac_tim->tmrw);
- SET32_BITFIELDS(&ch[chn].ao.shu_actim4,
- SHU_ACTIM4_TMRR2MRW, ac_tim->tmrr2mrw,
- SHU_ACTIM4_TMRR2W, tmrr2w,
- SHU_ACTIM4_TZQCS, ac_tim->tzqcs,
- SHU_ACTIM4_TXREFCNT, ac_tim->txrefcnt);
- SET32_BITFIELDS(&ch[chn].ao.shu_ckectrl, SHU_CKECTRL_TCKEPRD, ac_tim->ckeprd);
- SET32_BITFIELDS(&ch[chn].ao.shu_actim_xrt,
- SHU_ACTIM_XRT_XRTW2W, xrtwtw,
- SHU_ACTIM_XRT_XRTW2R, xrtw2r,
- SHU_ACTIM_XRT_XRTR2W, xrtr2w,
- SHU_ACTIM_XRT_XRTR2R, xtrtrt);
- SET32_BITFIELDS(&ch[chn].ao.shu_hwset_vrcg,
- SHU_HWSET_VRCG_VRCGDIS_PRDCNT, ac_tim->vrcgdis_prdcnt);
- SET32_BITFIELDS(&ch[chn].ao.shu_hwset_mr2,
- SHU_HWSET_MR2_HWSET_MR2_OP, ac_tim->hwset_mr2_op);
- SET32_BITFIELDS(&ch[chn].ao.shu_hwset_mr13,
- SHU_HWSET_MR13_HWSET_MR13_OP, ac_tim->hwset_mr13_op);
- SET32_BITFIELDS(&ch[chn].ao.shu_ac_time_05t,
- SHU_AC_TIME_05T_TWTR_M05T, ac_tim->twtr_05T,
- SHU_AC_TIME_05T_TR2W_05T, trtw_05t,
- SHU_AC_TIME_05T_TWTPD_M05T, ac_tim->twtpd_05T,
- SHU_AC_TIME_05T_TFAW_05T, tfaw_05t,
- SHU_AC_TIME_05T_TRRD_05T, trrd_05t,
- SHU_AC_TIME_05T_TWR_M05T, ac_tim->twr_05T,
- SHU_AC_TIME_05T_TRAS_05T, ac_tim->tras_05T,
- SHU_AC_TIME_05T_TRPAB_05T, ac_tim->trpab_05T,
- SHU_AC_TIME_05T_TRP_05T, ac_tim->trp_05T,
- SHU_AC_TIME_05T_TRCD_05T, ac_tim->trcd_05T,
- SHU_AC_TIME_05T_TRTP_05T, ac_tim->trtp_05T,
- SHU_AC_TIME_05T_TXP_05T, ac_tim->txp_05T);
- SET32_BITFIELDS(&ch[chn].ao.shu_ac_time_05t,
- SHU_AC_TIME_05T_TRFC_05T, ac_tim->trfc_05T,
- SHU_AC_TIME_05T_TRFCPB_05T, ac_tim->trfcpb_05T,
- SHU_AC_TIME_05T_TPBR2PBR_05T, ac_tim->tpbr2pbr_05T,
- SHU_AC_TIME_05T_TPBR2ACT_05T, ac_tim->tpbr2act_05T,
- SHU_AC_TIME_05T_TR2MRW_05T, ac_tim->tr2mrw_05T,
- SHU_AC_TIME_05T_TW2MRW_05T, ac_tim->tw2mrw_05T,
- SHU_AC_TIME_05T_TMRR2MRW_05T, ac_tim->tmrr2mrw_05T,
- SHU_AC_TIME_05T_TMRW_05T, ac_tim->tmrw_05T,
- SHU_AC_TIME_05T_TMRD_05T, ac_tim->tmrd_05T,
- SHU_AC_TIME_05T_TMRWCKEL_05T, ac_tim->tmrwckel_05T,
- SHU_AC_TIME_05T_TMRRI_05T, ac_tim->tmrri_05T,
- SHU_AC_TIME_05T_TRC_05T, ac_tim->trc_05T);
- SET32_BITFIELDS(&ch[chn].ao.shu_actim0, SHU_ACTIM0_TWTR, ac_tim->twtr);
- SET32_BITFIELDS(&ch[chn].ao.shu_ckectrl,
- SHU_CKECTRL_TPDE, ac_tim->tpde,
- SHU_CKECTRL_TPDX, ac_tim->tpdx,
- SHU_CKECTRL_TPDE_05T, ac_tim->tpde_05T,
- SHU_CKECTRL_TPDX_05T, ac_tim->tpdx_05T);
- SET32_BITFIELDS(&ch[chn].ao.shu_actim5, SHU_ACTIM5_TR2PD, ac_tim->trtpd);
- SET32_BITFIELDS(&ch[chn].ao.shu_ac_time_05t,
- SHU_AC_TIME_05T_TR2PD_05T, ac_tim->trtpd_05T);
- SET32_BITFIELDS(&ch[chn].ao.shu_ac_derating0,
- SHU_AC_DERATING0_TRCD_DERATE, ac_tim->trcd_derate,
- SHU_AC_DERATING0_TRRD_DERATE, ac_tim->trrd_derate);
- SET32_BITFIELDS(&ch[chn].ao.shu_ac_derating1,
- SHU_AC_DERATING1_TRC_DERATE, ac_tim->trc_derate,
- SHU_AC_DERATING1_TRAS_DERATE, ac_tim->tras_derate,
- SHU_AC_DERATING1_TRP_DERATE, ac_tim->trp_derate,
- SHU_AC_DERATING1_TRPAB_DERATE, ac_tim->trpab_derate);
- SET32_BITFIELDS(&ch[chn].ao.shu_ac_derating_05t,
- SHU_AC_DERATING_05T_TRRD_05T_DERATE, ac_tim->trrd_derate_05T,
- SHU_AC_DERATING_05T_TRAS_05T_DERATE, ac_tim->tras_derate_05T,
- SHU_AC_DERATING_05T_TRPAB_05T_DERATE, ac_tim->trpab_derate_05T,
- SHU_AC_DERATING_05T_TRP_05T_DERATE, ac_tim->trp_derate_05T,
- SHU_AC_DERATING_05T_TRCD_05T_DERATE, ac_tim->trcd_derate_05T,
- SHU_AC_DERATING_05T_TRC_05T_DERATE, ac_tim->trc_derate_05T);
- SET32_BITFIELDS(&ch[chn].ao.refctrl3, REFCTRL3_REF_DERATING_EN, 0xc0);
- SET32_BITFIELDS(&ch[chn].ao.shu_ac_derating0,
- SHU_AC_DERATING0_ACDERATEEN, 0x1);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_rk[0].misc_shu_rk_dqsctl,
- MISC_SHU_RK_DQSCTL_DQSINCTL, ac_tim->dqsinctl);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_rk[1].misc_shu_rk_dqsctl,
- MISC_SHU_RK_DQSCTL_DQSINCTL, ac_tim->dqsinctl);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_shu_odtctrl,
- MISC_SHU_ODTCTRL_RODT_LAT, ac_tim->dqsinctl);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_shu_rankctl,
- MISC_SHU_RANKCTL_RANKINCTL_PHY, ac_tim->dqsinctl,
- MISC_SHU_RANKCTL_RANKINCTL_ROOT1, rank_inctl_root,
- MISC_SHU_RANKCTL_RANKINCTL, rank_inctl_root);
- SET32_BITFIELDS(&ch[chn].phy_ao.shu_misc_rank_sel_stb,
- SHU_MISC_RANK_SEL_STB_RANK_SEL_PHSINCTL, phs_inctl);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_shu_rdat,
- MISC_SHU_RDAT_DATLAT, ac_tim->datlat,
- MISC_SHU_RDAT_DATLAT_DSEL, datlat_dsel,
- MISC_SHU_RDAT_DATLAT_DSEL_PHY, datlat_dsel);
- SET32_BITFIELDS(&ch[chn].ao.shu_actiming_conf,
- SHU_ACTIMING_CONF_REFBW_FR, tref_bw);
- rank_inctl = READ32_BITFIELD(&ch[0].phy_ao.misc_shu_rankctl,
- MISC_SHU_RANKCTL_RANKINCTL);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_shu_rankctl,
- MISC_SHU_RANKCTL_RANKINCTL_RXDLY, rank_inctl);
- SET32_BITFIELDS(&ch[chn].ao.shu_tx_rankctl,
- SHU_TX_RANKCTL_TXRANKINCTL_ROOT, root,
- SHU_TX_RANKCTL_TXRANKINCTL, tx_rank_inctl,
- SHU_TX_RANKCTL_TXRANKINCTL_TXDLY, tx_dly);
- }
-}
-
-static void set_cke2rank_independent(void)
-{
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- SET32_BITFIELDS(&ch[chn].ao.rkcfg, RKCFG_CKE2RANK, 0);
- SET32_BITFIELDS(&ch[chn].ao.ckectrl,
- CKECTRL_CKE2RANK_OPT3, 0,
- CKECTRL_CKE2RANK_OPT, 0,
- CKECTRL_CKE2RANK_OPT2, 1,
- CKECTRL_CKE2RANK_OPT5, 0,
- CKECTRL_CKE2RANK_OPT6, 0,
- CKECTRL_CKE2RANK_OPT7, 1,
- CKECTRL_CKE2RANK_OPT8, 0,
- CKECTRL_CKETIMER_SEL, 0,
- CKECTRL_FASTWAKE_SEL, 1,
- CKECTRL_CKEWAKE_SEL, 0);
- SET32_BITFIELDS(&ch[chn].ao.shu_dcm_ctrl0,
- SHU_DCM_CTRL0_FASTWAKE, 1,
- SHU_DCM_CTRL0_FASTWAKE2, 1);
- SET32_BITFIELDS(&ch[chn].ao.actiming_ctrl, ACTIMING_CTRL_CLKWITRFC, 0);
- }
-}
-
-static void dramc_hw_gating_onoff(bool is_on)
-{
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_dvfsctl2,
- MISC_DVFSCTL2_R_DVFS_OPTION, is_on,
- MISC_DVFSCTL2_R_DVFS_PARK_N, is_on);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_stbcal2,
- MISC_STBCAL2_STB_GERRSTOP, is_on);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_shu_stbcal,
- MISC_SHU_STBCAL_STBCALEN, is_on);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_shu_stbcal,
- MISC_SHU_STBCAL_STB_SELPHCALEN, is_on);
- }
-}
-
-static void dramc_reset_delay_chain_before_calibration(void)
-{
- u32 bc_bak = dramc_get_broadcast();
- dramc_set_broadcast(DRAMC_BROADCAST_OFF);
-
- for (u8 rk = RANK_0; rk < RANK_MAX; rk++) {
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- struct ddrphy_ao_regs *phy_ao = &ch[chn].phy_ao;
-
- SET32_BITFIELDS(&phy_ao->ca_rk[rk].shu_r0_ca_txdly0,
- SHU_R0_CA_TXDLY0_TX_ARCA0_DLY, 0,
- SHU_R0_CA_TXDLY0_TX_ARCA1_DLY, 0,
- SHU_R0_CA_TXDLY0_TX_ARCA2_DLY, 0,
- SHU_R0_CA_TXDLY0_TX_ARCA3_DLY, 0);
- SET32_BITFIELDS(&phy_ao->ca_rk[rk].shu_r0_ca_txdly1,
- SHU_R0_CA_TXDLY1_TX_ARCA4_DLY, 0,
- SHU_R0_CA_TXDLY1_TX_ARCA5_DLY, 0,
- SHU_R0_CA_TXDLY1_TX_ARCA6_DLY, 0,
- SHU_R0_CA_TXDLY1_TX_ARCA7_DLY, 0);
- SET32_BITFIELDS(&phy_ao->byte[0].rk[rk].shu_r0_b0_txdly0,
- SHU_R0_B0_TXDLY0_TX_ARDQ0_DLY_B0, 0,
- SHU_R0_B0_TXDLY0_TX_ARDQ1_DLY_B0, 0,
- SHU_R0_B0_TXDLY0_TX_ARDQ2_DLY_B0, 0,
- SHU_R0_B0_TXDLY0_TX_ARDQ3_DLY_B0, 0);
- SET32_BITFIELDS(&phy_ao->byte[0].rk[rk].shu_r0_b0_txdly1,
- SHU_R0_B0_TXDLY1_TX_ARDQ4_DLY_B0, 0,
- SHU_R0_B0_TXDLY1_TX_ARDQ5_DLY_B0, 0,
- SHU_R0_B0_TXDLY1_TX_ARDQ6_DLY_B0, 0,
- SHU_R0_B0_TXDLY1_TX_ARDQ7_DLY_B0, 0);
- SET32_BITFIELDS(&phy_ao->byte[1].rk[rk].shu_r0_b0_txdly0,
- SHU_R0_B1_TXDLY0_TX_ARDQ0_DLY_B1, 0,
- SHU_R0_B1_TXDLY0_TX_ARDQ1_DLY_B1, 0,
- SHU_R0_B1_TXDLY0_TX_ARDQ2_DLY_B1, 0,
- SHU_R0_B1_TXDLY0_TX_ARDQ3_DLY_B1, 0);
- SET32_BITFIELDS(&phy_ao->byte[1].rk[rk].shu_r0_b0_txdly1,
- SHU_R0_B1_TXDLY1_TX_ARDQ4_DLY_B1, 0,
- SHU_R0_B1_TXDLY1_TX_ARDQ5_DLY_B1, 0,
- SHU_R0_B1_TXDLY1_TX_ARDQ6_DLY_B1, 0,
- SHU_R0_B1_TXDLY1_TX_ARDQ7_DLY_B1, 0);
- SET32_BITFIELDS(&phy_ao->byte[0].rk[rk].shu_r0_b0_txdly3,
- SHU_R0_B0_TXDLY3_TX_ARDQM0_DLY_B0, 0x0);
- SET32_BITFIELDS(&phy_ao->byte[1].rk[rk].shu_r0_b0_txdly3,
- SHU_R0_B1_TXDLY3_TX_ARDQM0_DLY_B1, 0x0);
- }
- }
-
- dramc_set_broadcast(bc_bak);
-}
-
-static void dramc_init(const struct ddr_cali *cali)
-{
- dramc_setting(cali);
- dramc_reset_delay_chain_before_calibration();
- dramc_8_phase_cal(cali);
- dramc_duty_calibration(cali->params);
- dramc_mode_reg_init(cali);
-
- ddr_update_ac_timing(cali);
-}
-
-static void dramc_before_calibration(const struct ddr_cali *cali)
-{
- u8 ma_type = get_column_num();
- dram_freq_grp freq_group = cali->freq_group;
- u8 dis_imp_hw = (freq_group > DDRFREQ_1200) ? 0 : 1;
-
- dramc_hw_gating_onoff(false);
-
- cke_fix_onoff(cali, CHANNEL_A, RANK_MAX, CKE_FIXON);
- cke_fix_onoff(cali, CHANNEL_B, RANK_MAX, CKE_FIXON);
-
- set_cke2rank_independent();
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- SET32_BITFIELDS(&ch[chn].ao.shu_tx_set0, SHU_TX_SET0_DBIWR, 0x0);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_shu_impedamce_upd_dis1,
- MISC_SHU_IMPEDAMCE_UPD_DIS1_ODTN_UPD_DIS, dis_imp_hw,
- MISC_SHU_IMPEDAMCE_UPD_DIS1_DRVN_UPD_DIS, dis_imp_hw,
- MISC_SHU_IMPEDAMCE_UPD_DIS1_DRVP_UPD_DIS, dis_imp_hw,
- MISC_SHU_IMPEDAMCE_UPD_DIS1_WCK_ODTN_UPD_DIS, dis_imp_hw,
- MISC_SHU_IMPEDAMCE_UPD_DIS1_WCK_DRVN_UPD_DIS, dis_imp_hw,
- MISC_SHU_IMPEDAMCE_UPD_DIS1_WCK_DRVP_UPD_DIS, dis_imp_hw,
- MISC_SHU_IMPEDAMCE_UPD_DIS1_DQ_ODTN_UPD_DIS, dis_imp_hw,
- MISC_SHU_IMPEDAMCE_UPD_DIS1_DQ_DRVN_UPD_DIS, dis_imp_hw,
- MISC_SHU_IMPEDAMCE_UPD_DIS1_DQ_DRVP_UPD_DIS, dis_imp_hw,
- MISC_SHU_IMPEDAMCE_UPD_DIS1_DQS_ODTN_UPD_DIS, dis_imp_hw,
- MISC_SHU_IMPEDAMCE_UPD_DIS1_DQS_DRVN_UPD_DIS, dis_imp_hw,
- MISC_SHU_IMPEDAMCE_UPD_DIS1_DQS_DRVP_UPD_DIS, dis_imp_hw,
- MISC_SHU_IMPEDAMCE_UPD_DIS1_WCK_DRVP_UPD_DIS, 1,
- MISC_SHU_IMPEDAMCE_UPD_DIS1_WCK_DRVN_UPD_DIS, 1,
- MISC_SHU_IMPEDAMCE_UPD_DIS1_WCK_ODTN_UPD_DIS, 1);
-
- SET32_BITFIELDS(&ch[chn].phy_ao.shu_misc_impcal1,
- SHU_MISC_IMPCAL1_IMPCALCNT, dis_imp_hw ? 0x0 : 0x40);
- SET32_BITFIELDS(&ch[chn].phy_ao.shu_misc_drving1,
- SHU_MISC_DRVING1_DIS_IMPCAL_HW, dis_imp_hw);
- SET32_BITFIELDS(&ch[chn].phy_ao.shu_misc_drving1,
- SHU_MISC_DRVING1_DIS_IMP_ODTN_TRACK, dis_imp_hw);
- SET32_BITFIELDS(&ch[chn].phy_ao.shu_misc_drving2,
- SHU_MISC_DRVING2_DIS_IMPCAL_ODT_EN, dis_imp_hw);
- SET32_BITFIELDS(&ch[chn].phy_ao.shu_ca_cmd12,
- SHU_CA_CMD12_RG_RIMP_UNTERM_EN, dis_imp_hw);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_clk_ctrl,
- MISC_CLK_CTRL_DVFS_CLK_MEM_SEL, 0,
- MISC_CLK_CTRL_DVFS_MEM_CK_MUX_UPDATE_EN, 0);
- SET32_BITFIELDS(&ch[chn].ao.shu_zq_set0,
- SHU_ZQ_SET0_ZQCSCNT, 0x1ff,
- SHU_ZQ_SET0_TZQLAT, 0x1b);
- SET32_BITFIELDS(&ch[chn].ao.zq_set0,
- ZQ_SET0_ZQCSDUAL, 1,
- ZQ_SET0_ZQCSMASK_OPT, 0,
- ZQ_SET0_ZQMASK_CGAR, 0,
- ZQ_SET0_ZQCS_MASK_SEL_CGAR, 0);
- }
- SET32_BITFIELDS(&ch[0].ao.zq_set0, ZQ_SET0_ZQCSMASK, 1);
- SET32_BITFIELDS(&ch[1].ao.zq_set0, ZQ_SET0_ZQCSMASK, 0);
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- SET32_BITFIELDS(&ch[chn].ao.zq_set0, ZQ_SET0_ZQCS_MASK_SEL, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.byte[0].shu_b0_dq2,
- SHU_B0_DQ2_RG_ARPI_OFFSET_LAT_EN_B0, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.byte[1].shu_b0_dq2,
- SHU_B1_DQ2_RG_ARPI_OFFSET_LAT_EN_B1, 0);
- SET32_BITFIELDS(&ch[chn].ao.dcm_sub_ctrl,
- DCM_SUB_CTRL_SUBCLK_CTRL_TX_AUTOK, 0x0);
- SET32_BITFIELDS(&ch[chn].ao.dcm_sub_ctrl,
- DCM_SUB_CTRL_SUBCLK_CTRL_TX_TRACKING, 0);
- SET32_BITFIELDS(&ch[chn].ao.dqsoscr, DQSOSCR_DQSOSCRDIS, 0x1);
- SET32_BITFIELDS(&ch[chn].ao.refctrl0, REFCTRL0_REFDIS, 0x1);
- SET32_BITFIELDS(&ch[chn].ao.shu_matype, SHU_MATYPE_MATYPE, ma_type);
- }
- tx_path_algorithm(cali);
-}
-
-void dfs_init_for_calibration(const struct ddr_cali *cali)
-{
- dramc_init_default_mr_value(cali);
- dramc_init(cali);
- dramc_before_calibration(cali);
-}
-
-void tx_picg_setting(const struct ddr_cali *cali)
-{
- u32 dqs_oen_final, dq_oen_final;
- u16 dqs_oen_2t[2], dqs_oen_05t[2], dqs_oen_delay[2];
- u16 dq_oen_2t[2], dq_oen_05t[2], dq_oen_delay[2];
- u16 comb_tx_sel[2];
- u16 shift_dqs_div[2], shift_dq_div[2];
- u16 comb_tx_picg_cnt;
- u8 div_ratio;
-
- comb_tx_picg_cnt = 3;
- if (get_div_mode(cali) == DIV8_MODE) {
- shift_dqs_div[0] = 10;
- shift_dqs_div[1] = 6;
- shift_dq_div[0] = 8;
- shift_dq_div[1] = 4;
- div_ratio = 3;
- } else {
- shift_dqs_div[0] = 2;
- shift_dqs_div[1] = 0;
- shift_dq_div[0] = 0;
- shift_dq_div[1] = 0;
- div_ratio = 2;
- }
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- struct dramc_ao_regs *dramc_ao = &ch[chn].ao;
-
- dqs_oen_2t[0] = READ32_BITFIELD(&dramc_ao->shu_selph_dqs0,
- SHU_SELPH_DQS0_TXDLY_OEN_DQS0);
- dqs_oen_05t[0] = READ32_BITFIELD(&dramc_ao->shu_selph_dqs1,
- SHU_SELPH_DQS1_DLY_OEN_DQS0);
- dqs_oen_delay[0] = (dqs_oen_2t[0] << div_ratio) + dqs_oen_05t[0];
- dqs_oen_2t[1] = READ32_BITFIELD(&dramc_ao->shu_selph_dqs0,
- SHU_SELPH_DQS0_TXDLY_OEN_DQS1);
- dqs_oen_05t[1] = READ32_BITFIELD(&dramc_ao->shu_selph_dqs1,
- SHU_SELPH_DQS1_DLY_OEN_DQS1);
- dqs_oen_delay[1] = (dqs_oen_2t[1] << div_ratio) + dqs_oen_05t[1];
-
- dqs_oen_final = MIN(dqs_oen_delay[0], dqs_oen_delay[1]) + 1;
-
- comb_tx_sel[0] = (dqs_oen_final > shift_dqs_div[0]) ?
- ((dqs_oen_final - shift_dqs_div[0]) >> div_ratio) : 0;
-
- if (get_div_mode(cali) == DIV4_MODE)
- comb_tx_sel[1] = 0;
- else
- comb_tx_sel[1] = (dqs_oen_final > shift_dqs_div[1]) ?
- ((dqs_oen_final - shift_dqs_div[1]) >> div_ratio) : 0;
-
- SET32_BITFIELDS(&dramc_ao->shu_aphy_tx_picg_ctrl,
- SHU_APHY_TX_PICG_CTRL_TX_DQS_SEL_P0, comb_tx_sel[0],
- SHU_APHY_TX_PICG_CTRL_TX_DQS_SEL_P1, comb_tx_sel[1],
- SHU_APHY_TX_PICG_CTRL_TX_PICG_CNT, comb_tx_picg_cnt);
- for (int rk = RANK_0; rk < cali->support_ranks; rk++) {
- dq_oen_2t[0] = READ32_BITFIELD(&dramc_ao->shu_rk[rk].shurk_selph_dq0,
- SHURK_SELPH_DQ0_TXDLY_OEN_DQ0);
- dq_oen_05t[0] = READ32_BITFIELD(&dramc_ao->shu_rk[rk].shurk_selph_dq2,
- SHURK_SELPH_DQ2_DLY_OEN_DQ0);
- dq_oen_delay[0] = (dq_oen_2t[0] << div_ratio) + dq_oen_05t[0];
- dq_oen_2t[1] = READ32_BITFIELD(&dramc_ao->shu_rk[rk].shurk_selph_dq0,
- SHURK_SELPH_DQ0_TXDLY_OEN_DQ1);
- dq_oen_05t[1] = READ32_BITFIELD(&dramc_ao->shu_rk[rk].shurk_selph_dq2,
- SHURK_SELPH_DQ2_DLY_OEN_DQ1);
- dq_oen_delay[1] = (dq_oen_2t[1] << div_ratio) + dq_oen_05t[1];
-
- dq_oen_final = MIN(dq_oen_delay[0], dq_oen_delay[1]) + 1;
-
- comb_tx_sel[0] = (dq_oen_final > shift_dq_div[0]) ?
- ((dq_oen_final - shift_dq_div[0]) >> div_ratio) : 0;
-
- if (get_div_mode(cali) == DIV4_MODE)
- comb_tx_sel[1] = 0;
- else
- comb_tx_sel[1] = (dq_oen_final > shift_dq_div[1]) ?
- ((dq_oen_final - shift_dq_div[1]) >> div_ratio) : 0;
-
- SET32_BITFIELDS(&dramc_ao->shu_rk[rk].shurk_aphy_tx_picg_ctrl,
- SHURK_APHY_TX_PICG_CTRL_TX_DQ_RK_SEL_P0, comb_tx_sel[0],
- SHURK_APHY_TX_PICG_CTRL_TX_DQ_RK_SEL_P1, comb_tx_sel[1]);
- }
- }
-}
-
-void xrtrtr_shu_setting(const struct ddr_cali *cali)
-{
- const dram_freq_grp freq_group = get_freq_group(cali);
- u8 rk_sel_ui_minus = 0, rk_sel_mck_minus = 0;
-
- if (freq_group == DDRFREQ_400)
- rk_sel_mck_minus = 1;
- else if (freq_group >= DDRFREQ_1600)
- rk_sel_ui_minus = 2;
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++)
- SET32_BITFIELDS(&ch[chn].phy_ao.shu_misc_rank_sel_stb,
- SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_MCK_MINUS, rk_sel_mck_minus,
- SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_UI_MINUS, rk_sel_ui_minus,
- SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_MCK_PLUS, 0x0,
- SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_UI_PLUS, 0x0,
- SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_PHASE_EN, 0x0,
- SHU_MISC_RANK_SEL_STB_RANK_SEL_RXDLY_TRACK, 0x0,
- SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_TRACK, 0x1,
- SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_SERMODE, 0x0,
- SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_EN_B23, 0x0,
- SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_EN, 0x1);
-}
-
-void freq_jump_ratio_calculation(const struct ddr_cali *cali)
-{
- u32 src_freq, dst_freq, src_shu, dst_shu, jump_ratio_index;
- u16 jump_ratio[DRAM_DFS_SHU_MAX] = {0};
-
- jump_ratio_index = 0;
- src_freq = get_frequency(cali);
- src_shu = get_shu(cali);
-
- if (get_freq_group_by_shu_save(src_shu) != DDRFREQ_400) {
- for (dst_shu = DRAM_DFS_SHU0; dst_shu < DRAM_DFS_SHU_MAX; dst_shu++) {
- dst_freq = get_frequency_by_shu(dst_shu);
- jump_ratio[jump_ratio_index] =
- DIV_ROUND_CLOSEST(dst_freq * 32, src_freq);
-
- dramc_dbg("Jump ratio [%u]: %#x Freq %d -> %d, DDR%u -> DDR%u\n",
- jump_ratio_index, jump_ratio[jump_ratio_index],
- src_shu, dst_shu, src_freq << 1, dst_freq << 1);
- jump_ratio_index++;
- }
- }
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- SET32_BITFIELDS(&ch[chn].ao.shu_freq_ratio_set0,
- SHU_FREQ_RATIO_SET0_TDQSCK_JUMP_RATIO0, jump_ratio[0],
- SHU_FREQ_RATIO_SET0_TDQSCK_JUMP_RATIO1, jump_ratio[1],
- SHU_FREQ_RATIO_SET0_TDQSCK_JUMP_RATIO2, jump_ratio[2],
- SHU_FREQ_RATIO_SET0_TDQSCK_JUMP_RATIO3, jump_ratio[3]);
- SET32_BITFIELDS(&ch[chn].ao.shu_freq_ratio_set1,
- SHU_FREQ_RATIO_SET1_TDQSCK_JUMP_RATIO4, jump_ratio[4],
- SHU_FREQ_RATIO_SET1_TDQSCK_JUMP_RATIO5, jump_ratio[5],
- SHU_FREQ_RATIO_SET1_TDQSCK_JUMP_RATIO6, jump_ratio[6]);
- }
-}
-
-void dramc_hmr4_presetting(const struct ddr_cali *cali)
-{
- for (u8 chn = CHANNEL_A; chn < CHANNEL_MAX; chn++) {
- SET32_BITFIELDS(&ch[chn].ao.hmr4, HMR4_REFR_PERIOD_OPT, 1);
- SET32_BITFIELDS(&ch[chn].ao.hmr4, HMR4_REFRCNT_OPT, 0);
- SET32_BITFIELDS(&ch[chn].ao.shu_hmr4_dvfs_ctrl0,
- SHU_HMR4_DVFS_CTRL0_REFRCNT, 0x80);
-
- if (get_cbt_mode(cali) == CBT_BYTE_MODE1)
- SET32_BITFIELDS(&ch[chn].ao.hmr4, HMR4_HMR4_BYTEMODE_EN, 1);
- else
- SET32_BITFIELDS(&ch[chn].ao.hmr4, HMR4_HMR4_BYTEMODE_EN, 0);
-
- SET32_BITFIELDS(&ch[chn].ao.refctrl1, REFCTRL1_REFRATE_MON_CLR, 0);
- SET32_BITFIELDS(&ch[chn].ao.refctrl1, REFCTRL1_REFRATE_MON_CLR, 1);
- SET32_BITFIELDS(&ch[chn].ao.refctrl1, REFCTRL1_REFRATE_MON_CLR, 0);
- }
-}
-
-void dramc_enable_perbank_refresh(bool en)
-{
- if (en) {
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- SET32_BITFIELDS(&ch[chn].ao.refctrl0,
- REFCTRL0_PBREF_BK_REFA_ENA, 1,
- REFCTRL0_PBREF_BK_REFA_NUM, 2);
- SET32_BITFIELDS(&ch[chn].ao.refctrl0,
- REFCTRL0_KEEP_PBREF, 0,
- REFCTRL0_KEEP_PBREF_OPT, 1);
- SET32_BITFIELDS(&ch[chn].ao.refctrl1, REFCTRL1_REFPB2AB_IGZQCS, 1);
- }
- }
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++)
- SET32_BITFIELDS(&ch[chn].ao.shu_conf0, SHU_CONF0_PBREFEN, en);
-}
-
-void dramc_modified_refresh_mode(void)
-{
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- SET32_BITFIELDS(&ch[chn].ao.refpend1,
- REFPEND1_MPENDREFCNT_TH0, 2,
- REFPEND1_MPENDREFCNT_TH1, 2,
- REFPEND1_MPENDREFCNT_TH2, 4,
- REFPEND1_MPENDREFCNT_TH3, 5,
- REFPEND1_MPENDREFCNT_TH4, 5,
- REFPEND1_MPENDREFCNT_TH5, 3,
- REFPEND1_MPENDREFCNT_TH6, 3,
- REFPEND1_MPENDREFCNT_TH7, 3);
- SET32_BITFIELDS(&ch[chn].ao.refctrl1,
- REFCTRL1_REFPEND_OPT1, 1,
- REFCTRL1_REFPEND_OPT2, 1);
- SET32_BITFIELDS(&ch[chn].ao.shu_ref0, SHU_REF0_MPENDREF_CNT, 4);
- }
-}
-
-void dramc_cke_debounce(const struct ddr_cali *cali)
-{
- if (get_freq_group(cali) < DDRFREQ_2133)
- return;
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++)
- for (u8 rk = 0; rk < cali->support_ranks; rk++)
- SET32_BITFIELDS(&ch[chn].ao.shu_rk[rk].shurk_cke_ctrl,
- SHURK_CKE_CTRL_CKE_DBE_CNT, 15);
-}
-
-void dramc_hw_dqsosc(const struct ddr_cali *cali, u8 chn)
-{
- SET32_BITFIELDS(&ch[chn].ao.tx_freq_ratio_old_mode0,
- TX_FREQ_RATIO_OLD_MODE0_SHUFFLE_LEVEL_MODE_SELECT, 1);
- SET32_BITFIELDS(&ch[chn].ao.tx_tracking_set0,
- TX_TRACKING_SET0_SHU_PRELOAD_TX_HW, 1,
- TX_TRACKING_SET0_SHU_PRELOAD_TX_START, 0,
- TX_TRACKING_SET0_SW_UP_TX_NOW_CASE, 0);
-
- SET32_BITFIELDS(&ch[chn].ao.mpc_ctrl, MPC_CTRL_MPC_BLOCKALE_OPT, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_ctrl1, MISC_CTRL1_R_DMARPIDQ_SW, 0);
- SET32_BITFIELDS(&ch[chn].ao.dcm_sub_ctrl, DCM_SUB_CTRL_SUBCLK_CTRL_TX_TRACKING, 1);
- SET32_BITFIELDS(&ch[chn].ao.dqsoscr, DQSOSCR_ARUIDQ_SW, 1);
- SET32_BITFIELDS(&ch[chn].ao.dqsoscr, DQSOSCR_DQSOSCRDIS, 0);
- SET32_BITFIELDS(&ch[chn].ao.rk[0].rk_dqsosc, RK_DQSOSC_DQSOSCR_RK0EN, 1);
- if (cali->support_ranks == DUAL_RANK_DDR)
- SET32_BITFIELDS(&ch[chn].ao.rk[1].rk_dqsosc, RK_DQSOSC_DQSOSCR_RK0EN, 1);
- SET32_BITFIELDS(&ch[chn].ao.tx_set0, TX_SET0_DRSCLR_RK0_EN, 1);
- SET32_BITFIELDS(&ch[chn].ao.dqsoscr, DQSOSCR_DQSOSC_CALEN, 1);
-}
-
-void apply_write_dbi_power_improve(bool en)
-{
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++)
- SET32_BITFIELDS(&ch[chn].ao.dbiwr_protect,
- DBIWR_PROTECT_DBIWR_OPT_B1, 0,
- DBIWR_PROTECT_DBIWR_OPT_B0, 0,
- DBIWR_PROTECT_DBIWR_PINMUX_EN, 0,
- DBIWR_PROTECT_DBIWR_IMP_EN, en);
-}
-
-void dramc_write_dbi_onoff(u8 onoff)
-{
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++)
- SET32_BITFIELDS(&ch[chn].ao.shu_tx_set0, SHU_TX_SET0_DBIWR, onoff);
- dramc_info("Dramc Write-DBI: %s\n", (onoff == DBI_ON) ? "on" : "off");
-}
diff --git a/src/soc/mediatek/mt8192/dramc_pi_calibration_api.c b/src/soc/mediatek/mt8192/dramc_pi_calibration_api.c
deleted file mode 100644
index 5c6d94dbad..0000000000
--- a/src/soc/mediatek/mt8192/dramc_pi_calibration_api.c
+++ /dev/null
@@ -1,656 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#include <soc/dramc_pi_api.h>
-#include <soc/dramc_register.h>
-
-static const u8 imp_vref_sel[ODT_MAX][IMP_DRV_MAX] = {
- /* DRVP DRVN ODTP ODTN */
- [ODT_OFF] = {0x37, 0x33, 0x00, 0x37},
- [ODT_ON] = {0x3a, 0x33, 0x00, 0x3a},
-};
-
-static void dramc_imp_cal_vref_sel(dram_odt_state odt, imp_drv_type drv_type)
-{
- u8 vref_tmp = imp_vref_sel[odt][drv_type];
-
- switch (drv_type) {
- case DRVP:
- SET32_BITFIELDS(&ch[0].phy_ao.shu_ca_cmd12,
- SHU_CA_CMD12_RG_RIMP_VREF_SEL_DRVP, vref_tmp);
- break;
- case DRVN:
- SET32_BITFIELDS(&ch[0].phy_ao.shu_ca_cmd12,
- SHU_CA_CMD12_RG_RIMP_VREF_SEL_DRVN, vref_tmp);
- break;
- case ODTN:
- SET32_BITFIELDS(&ch[0].phy_ao.shu_ca_cmd12,
- SHU_CA_CMD12_RG_RIMP_VREF_SEL_ODTN, vref_tmp);
- break;
- default:
- die("Can't support drv_type %d\n", drv_type);
- break;
- }
-}
-
-static u32 dramc_sw_imp_cal_result(imp_drv_type drv_type)
-{
- u32 drive = 0, cal_res = 0;
- u32 change = (drv_type == DRVP) ? 1 : 0;
-
- static const char *const drv_type_str[IMP_DRV_MAX] = {
- [DRVP] = "DRVP",
- [DRVN] = "DRVN",
- [ODTP] = "ODTP",
- [ODTN] = "ODTN",
- };
- if (drv_type >= IMP_DRV_MAX)
- die("Can't support drv_type %d", drv_type);
-
- const char *drv_str = drv_type_str[drv_type];
-
- for (drive = 0; drive < 32; drive++) {
- if (drv_type == DRVP)
- SET32_BITFIELDS(&ch[0].phy_ao.shu_misc_impcal1,
- SHU_MISC_IMPCAL1_IMPDRVP, drive);
- else if (drv_type == DRVN || drv_type == ODTN)
- SET32_BITFIELDS(&ch[0].phy_ao.shu_misc_impcal1,
- SHU_MISC_IMPCAL1_IMPDRVN, drive);
-
- udelay(1);
- cal_res = READ32_BITFIELD(&ch[0].phy_nao.misc_phy_rgs_cmd,
- MISC_PHY_RGS_CMD_RGS_RIMPCALOUT);
- dramc_dbg("OCD %s=%d ,CALOUT=%d\n", drv_str, drive, cal_res);
-
- if (cal_res == change) {
- dramc_info("%s calibration passed! result=%d\n", drv_str, drive);
- break;
- }
- }
-
- if (drive == 32) {
- drive = 31;
- dramc_err("OCD %s calibration failed! %s=%d\n", drv_str, drv_str, drive);
- }
-
- return drive;
-}
-
-void dramc_sw_impedance_cal(dram_odt_state odt, struct dram_impedance *imp)
-{
- const u8 chn = 0;
- u8 i_chn, enp, enn;
- u32 bc_bak, impcal_bak, cal_res;
- u32 drvp_result = 0xff, odtn_result = 0xff, drvn_result = 0xff;
-
- bc_bak = dramc_get_broadcast();
- dramc_set_broadcast(DRAMC_BROADCAST_OFF);
- for (i_chn = 0; i_chn < CHANNEL_MAX; i_chn++) {
- SET32_BITFIELDS(&ch[i_chn].phy_ao.misc_lp_ctrl,
- MISC_LP_CTRL_RG_ARDMSUS_10, 0x0,
- MISC_LP_CTRL_RG_ARDMSUS_10_LP_SEL, 0x0,
- MISC_LP_CTRL_RG_RIMP_DMSUS_10, 0x0,
- MISC_LP_CTRL_RG_RIMP_DMSUS_10_LP_SEL, 0x0);
- SET32_BITFIELDS(&ch[i_chn].phy_ao.misc_impcal, MISC_IMPCAL_IMPCAL_HW, 0);
- }
-
- impcal_bak = read32(&ch[chn].phy_ao.misc_impcal);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_imp_ctrl1, MISC_IMP_CTRL1_RG_RIMP_PRE_EN, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_impcal,
- MISC_IMPCAL_IMPCAL_CALI_ENN, 0,
- MISC_IMPCAL_IMPCAL_IMPPDP, 1,
- MISC_IMPCAL_IMPCAL_IMPPDN, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_imp_ctrl1,
- MISC_IMP_CTRL1_RG_IMP_EN, 1,
- MISC_IMP_CTRL1_RG_RIMP_DDR3_SEL, 0,
- MISC_IMP_CTRL1_RG_RIMP_VREF_EN, 1,
- MISC_IMP_CTRL1_RG_RIMP_DDR4_SEL, 1);
- udelay(1);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_impcal, MISC_IMPCAL_IMPCAL_CALI_EN, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.shu_misc_impcal1,
- SHU_MISC_IMPCAL1_IMPDRVN, 0,
- SHU_MISC_IMPCAL1_IMPDRVP, 0);
-
- for (imp_drv_type drv_type = DRVP; drv_type < IMP_DRV_MAX; drv_type++) {
- if (drv_type == ODTP)
- continue;
- dramc_imp_cal_vref_sel(odt, drv_type);
-
- switch (drv_type) {
- case DRVP:
- enp = 0x1;
- enn = 0x0;
- drvp_result = 0;
- break;
- case DRVN:
- case ODTN:
- enp = 0x0;
- enn = (drv_type == DRVN) ? 0x0 : 0x1;
- break;
- default:
- die("Can't support drv_type %d\n", drv_type);
- break;
- }
-
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_impcal,
- MISC_IMPCAL_IMPCAL_CALI_ENP, enp);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_impcal,
- MISC_IMPCAL_IMPCAL_CALI_ENN, enn);
- SET32_BITFIELDS(&ch[chn].phy_ao.shu_misc_impcal1,
- SHU_MISC_IMPCAL1_IMPDRVP, drvp_result);
- SET32_BITFIELDS(&ch[chn].phy_ao.shu_ca_cmd12,
- SHU_CA_CMD12_RG_RIMP_DRV05, 0);
-
- cal_res = dramc_sw_imp_cal_result(drv_type);
- switch (drv_type) {
- case DRVP:
- drvp_result = cal_res;
- break;
- case DRVN:
- drvn_result = cal_res;
- break;
- case ODTN:
- odtn_result = cal_res;
- break;
- default:
- die("Can't support drv_type %d\n", drv_type);
- break;
- }
- }
-
- imp->result[odt][DRVP] = drvp_result;
- imp->result[odt][DRVN] = drvn_result;
- imp->result[odt][ODTP] = 0;
- imp->result[odt][ODTN] = odtn_result;
-
- dramc_info("freq_region=%d, Reg: DRVP=%d, DRVN=%d, ODTN=%d\n",
- odt, drvp_result, drvn_result, odtn_result);
-
- write32(&ch[chn].phy_ao.misc_impcal, impcal_bak);
- dramc_set_broadcast(bc_bak);
-}
-
-void dramc_sw_impedance_save_register(const struct ddr_cali *cali)
-{
- u8 ca_term, dq_term;
- u32 bc_bak = dramc_get_broadcast();
- const u32 (*result)[IMP_DRV_MAX] = cali->impedance.result;
- struct ddrphy_ao_regs *phy_ao = &ch[0].phy_ao;
-
- ca_term = get_odt_state(cali);
- dq_term = (get_freq_group(cali) < DDRFREQ_2133) ? ODT_OFF : ODT_ON;
-
- dramc_set_broadcast(DRAMC_BROADCAST_ON);
- SET32_BITFIELDS(&phy_ao->shu_misc_drving1,
- SHU_MISC_DRVING1_DQDRVP2, result[dq_term][DRVP],
- SHU_MISC_DRVING1_DQDRVN2, result[dq_term][DRVN]);
- SET32_BITFIELDS(&phy_ao->shu_misc_drving2,
- SHU_MISC_DRVING2_DQDRVP1, result[dq_term][DRVP],
- SHU_MISC_DRVING2_DQDRVN1, result[dq_term][DRVN]);
- SET32_BITFIELDS(&phy_ao->shu_misc_drving3,
- SHU_MISC_DRVING3_DQODTP2, result[dq_term][ODTP],
- SHU_MISC_DRVING3_DQODTN2, result[dq_term][ODTN]);
- SET32_BITFIELDS(&phy_ao->shu_misc_drving4,
- SHU_MISC_DRVING4_DQODTP1, result[dq_term][ODTP],
- SHU_MISC_DRVING4_DQODTN1, result[dq_term][ODTN]);
-
- SET32_BITFIELDS(&phy_ao->shu_misc_drving1,
- SHU_MISC_DRVING1_DQSDRVP2, result[dq_term][DRVP],
- SHU_MISC_DRVING1_DQSDRVN2, result[dq_term][DRVN]);
- SET32_BITFIELDS(&phy_ao->shu_misc_drving1,
- SHU_MISC_DRVING1_DQSDRVP1, result[dq_term][DRVP],
- SHU_MISC_DRVING1_DQSDRVN1, result[dq_term][DRVN]);
- SET32_BITFIELDS(&phy_ao->shu_misc_drving3,
- SHU_MISC_DRVING3_DQSODTP2, result[dq_term][ODTP],
- SHU_MISC_DRVING3_DQSODTN2, result[dq_term][ODTN]);
- SET32_BITFIELDS(&phy_ao->shu_misc_drving3,
- SHU_MISC_DRVING3_DQSODTP, result[dq_term][ODTP],
- SHU_MISC_DRVING3_DQSODTN, result[dq_term][ODTN]);
-
- SET32_BITFIELDS(&phy_ao->shu_misc_drving2,
- SHU_MISC_DRVING2_CMDDRVP2, result[ca_term][DRVP],
- SHU_MISC_DRVING2_CMDDRVN2, result[ca_term][DRVN]);
- SET32_BITFIELDS(&phy_ao->shu_misc_drving2,
- SHU_MISC_DRVING2_CMDDRVP1, result[ca_term][DRVP],
- SHU_MISC_DRVING2_CMDDRVN1, result[ca_term][DRVN]);
- SET32_BITFIELDS(&phy_ao->shu_misc_drving4,
- SHU_MISC_DRVING4_CMDODTP2, result[ca_term][ODTP],
- SHU_MISC_DRVING4_CMDODTN2, result[ca_term][ODTN]);
- SET32_BITFIELDS(&phy_ao->shu_misc_drving4,
- SHU_MISC_DRVING4_CMDODTP1, result[ca_term][ODTP],
- SHU_MISC_DRVING4_CMDODTN1, result[ca_term][ODTN]);
-
- SET32_BITFIELDS(&phy_ao->misc_shu_drving8, MISC_SHU_DRVING8_CS_DRVP, 0xF);
- SET32_BITFIELDS(&phy_ao->misc_shu_drving8, MISC_SHU_DRVING8_CS_DRVN, 0x14);
-
- dramc_set_broadcast(bc_bak);
-}
-
-static void dramc_phy_reset(u8 chn)
-{
- SET32_BITFIELDS(&ch[chn].ao.rx_set0, RX_SET0_RDATRST, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_ctrl1, MISC_CTRL1_R_DMPHYRST, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.dvs_b[0].b0_dq9,
- B0_DQ9_RG_RX_ARDQS0_STBEN_RESETB_B0, 0,
- B0_DQ9_RG_RX_ARDQ_STBEN_RESETB_B0, 0);
- SET32_BITFIELDS(&ch[chn].phy_ao.dvs_b[1].b0_dq9,
- B1_DQ9_RG_RX_ARDQS0_STBEN_RESETB_B1, 0,
- B1_DQ9_RG_RX_ARDQ_STBEN_RESETB_B1, 0);
- udelay(1);
- SET32_BITFIELDS(&ch[chn].phy_ao.dvs_b[1].b0_dq9,
- B1_DQ9_RG_RX_ARDQS0_STBEN_RESETB_B1, 1,
- B1_DQ9_RG_RX_ARDQ_STBEN_RESETB_B1, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.dvs_b[0].b0_dq9,
- B0_DQ9_RG_RX_ARDQS0_STBEN_RESETB_B0, 1,
- B0_DQ9_RG_RX_ARDQ_STBEN_RESETB_B0, 1);
- SET32_BITFIELDS(&ch[chn].phy_ao.misc_ctrl1, MISC_CTRL1_R_DMPHYRST, 0);
- SET32_BITFIELDS(&ch[chn].ao.rx_set0, RX_SET0_RDATRST, 0);
-}
-
-static int dramc_8_phase_cal_find_best_dly(u8 phase_sm, u8 ph_dly, u8 ph_dly_back,
- int *ph_dly_final, int *ph_dly_loop_break)
-{
- const u8 early_break_cnt = 5;
- static u8 loop_cnt = 0;
- static u16 r0 = 0xffff, r180 = 0xffff, r_tmp = 0xffff, p_tmp = 0xffff;
- s16 err_code;
- static s16 err_code_min = 0x7fff;
- u16 dqs_dly;
- const u16 jm_dly_start = 0, jm_dly_end = 512, jm_dly_step = 1;
- u32 sample_cnt, ones_cnt;
- u8 dqs_level = DQS_LEVEL_UNKNOWN;
-
- dramc_dbg("8PH dly = %u\n", ph_dly);
- *ph_dly_loop_break = 0;
-
- SET32_BITFIELDS(&ch[0].phy_ao.byte[0].shu_b0_dq1,
- SHU_B0_DQ1_RG_ARPI_MIDPI_8PH_DLY_B0, ph_dly);
- SET32_BITFIELDS(&ch[0].phy_ao.byte[1].shu_b0_dq1,
- SHU_B1_DQ1_RG_ARPI_MIDPI_8PH_DLY_B1, ph_dly);
- SET32_BITFIELDS(&ch[0].phy_ao.shu_ca_cmd1,
- SHU_CA_CMD1_RG_ARPI_MIDPI_8PH_DLY_CA, ph_dly);
-
- for (dqs_dly = jm_dly_start; dqs_dly < jm_dly_end; dqs_dly += jm_dly_step) {
- /* Set DQS delay */
- SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[0].b0_phy2,
- B0_PHY2_RG_RX_ARDQS_JM_DLY_B0, dqs_dly);
- SET32_BITFIELDS(&ch[0].phy_ao.dvs_b[1].b0_phy2,
- B1_PHY2_RG_RX_ARDQS_JM_DLY_B1, dqs_dly);
- dramc_phy_reset(0);
- SET32_BITFIELDS(&ch[0].phy_ao.misc_dutyscan1,
- MISC_DUTYSCAN1_REG_SW_RST, 1);
- SET32_BITFIELDS(&ch[0].phy_ao.misc_dutyscan1,
- MISC_DUTYSCAN1_REG_SW_RST, 0);
- SET32_BITFIELDS(&ch[0].phy_ao.misc_dutyscan1,
- MISC_DUTYSCAN1_RX_EYE_SCAN_EN, 1);
- udelay(10);
- SET32_BITFIELDS(&ch[0].phy_ao.misc_dutyscan1,
- MISC_DUTYSCAN1_RX_EYE_SCAN_EN, 0);
- sample_cnt = READ32_BITFIELD(&ch[0].phy_nao.misc_duty_toggle_cnt,
- MISC_DUTY_TOGGLE_CNT_TOGGLE_CNT);
- ones_cnt = READ32_BITFIELD(&ch[0].phy_nao.misc_duty_dqs0_err_cnt,
- MISC_DUTY_DQS0_ERR_CNT_DQS0_ERR_CNT);
-
- if (ones_cnt < sample_cnt / 2) {
- if (dqs_level == DQS_LEVEL_UNKNOWN)
- dramc_dbg("[L] %u, %8u\n", dqs_dly, ones_cnt);
- dqs_level = 0;
- } else if (dqs_level == 0) {
- dqs_level = 1;
- dramc_dbg("[H] %u, %8u\n", dqs_dly, ones_cnt);
-
- if (phase_sm == DQS_8PH_DEGREE_0) {
- r0 = dqs_dly;
- dramc_dbg("R0 = %u\n", r0);
- } else if (phase_sm == DQS_8PH_DEGREE_180) {
- r180 = dqs_dly;
- if (r180 <= r0) {
- dqs_level = DQS_LEVEL_UNKNOWN;
- continue;
- }
-
- r_tmp = r0 + ((r180 - r0) >> 2);
- dramc_dbg("R = %u, R180 = %u\n", r_tmp, r180);
- } else if (phase_sm == DQS_8PH_DEGREE_45) {
- p_tmp = dqs_dly;
- dramc_dbg("p_tmp = %u, R0 = %u\n", p_tmp, r0);
- if (p_tmp <= r0) {
- dqs_level = DQS_LEVEL_UNKNOWN;
- continue;
- }
-
- err_code = ABS(p_tmp - r_tmp);
-
- if (err_code == 0) {
- *ph_dly_final = ph_dly;
- *ph_dly_loop_break = 1;
- } else if (err_code < err_code_min) {
- err_code_min = err_code;
- *ph_dly_final = ph_dly;
- loop_cnt = 0;
- } else {
- loop_cnt++;
- if (loop_cnt > early_break_cnt)
- *ph_dly_loop_break = 1;
- }
-
- dramc_dbg("diff (P-R) = %d, min = %d, break count = %u\n",
- err_code, err_code_min, loop_cnt);
- } else {
- die("Invalid phase_sm: %u!\n", phase_sm);
- }
-
- break;
- }
- }
-
- if (dqs_level == DQS_LEVEL_UNKNOWN || dqs_level == 0) {
- *ph_dly_final = ph_dly_back;
- dramc_err("8-Phase SM_%u failed, falling back to default\n", phase_sm);
- return 0;
- } else if (*ph_dly_loop_break) {
- return -1;
- }
-
- return -2;
-}
-
-static void dramc_8_phase_cal_set_best_dly(const struct ddr_cali *cali, u8 ph_dly_back)
-{
- u8 dqsien_pi;
- u8 phase_sm, ph_dly, ph_start, ph_end;
- int ph_dly_loop_break;
- int ph_dly_final = 0xff; /* default delay: 0xff */
-
- for (phase_sm = DQS_8PH_DEGREE_0; phase_sm < DQS_8PH_DEGREE_MAX; phase_sm++) {
- switch (phase_sm) {
- case DQS_8PH_DEGREE_0:
- dqsien_pi = 16;
- ph_start = 0;
- ph_end = 1;
- break;
- case DQS_8PH_DEGREE_180:
- dqsien_pi = 48;
- ph_start = 0;
- ph_end = 1;
- break;
- case DQS_8PH_DEGREE_45:
- dqsien_pi = 24;
- ph_start = 0;
- ph_end = 32;
- break;
- default:
- die("Invalid phase_sm: %u!\n", phase_sm);
- return;
- }
-
- dramc_dbg("8-Phase SM_%u, 8PH_dly (%u~%u), DQSIEN PI = %u, 8PH_Dly = %u\n",
- phase_sm, ph_start, ph_end, dqsien_pi, ph_dly_back);
-
- for (u8 rk = RANK_0; rk < cali->support_ranks; rk++)
- SET32_BITFIELDS(&ch[0].phy_ao.byte[0].rk[rk].shu_rk_b0_dqsien_pi_dly,
- SHU_RK_B0_DQSIEN_PI_DLY_DQSIEN_PI_B0, dqsien_pi);
-
- for (ph_dly = ph_start; ph_dly < ph_end; ph_dly++) {
- int ret = dramc_8_phase_cal_find_best_dly(phase_sm, ph_dly,
- ph_dly_back, &ph_dly_final, &ph_dly_loop_break);
- if (ret == 0)
- goto final_found;
- if (ph_dly_loop_break)
- break;
- }
- }
-
-final_found:
- dramc_dbg("8 phase calibration ph_dly_final = %u\n", ph_dly_final);
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- SET32_BITFIELDS(&ch[chn].phy_ao.byte[0].shu_b0_dq1,
- SHU_B0_DQ1_RG_ARPI_MIDPI_8PH_DLY_B0, ph_dly_final);
- SET32_BITFIELDS(&ch[chn].phy_ao.byte[1].shu_b0_dq1,
- SHU_B1_DQ1_RG_ARPI_MIDPI_8PH_DLY_B1, ph_dly_final);
- SET32_BITFIELDS(&ch[chn].phy_ao.shu_ca_cmd1,
- SHU_CA_CMD1_RG_ARPI_MIDPI_8PH_DLY_CA, ph_dly_final);
- }
-}
-
-void dramc_8_phase_cal(const struct ddr_cali *cali)
-{
- u8 ph_dly_back = 0;
- dram_freq_grp freq_group = cali->freq_group;
- /* ch0 and ch1 of phy_ao */
- struct ddrphy_ao_regs *phy_ao = &ch[0].phy_ao;
- struct ddrphy_ao_regs *phy_ao_ch1 = &ch[1].phy_ao;
-
- if (freq_group < DDRFREQ_2133) {
- dramc_info("Freq %u < 2133, do not need do 8-Phase\n", get_frequency(cali));
- return;
- }
-
- struct reg_bak regs_bak[] = {
- {&phy_ao->misc_dutyscan1},
- {&phy_ao->dvs_b[0].b0_dq6},
- {&phy_ao->dvs_b[1].b0_dq6},
- {&phy_ao->dvs_b[0].b0_dq5},
- {&phy_ao->dvs_b[1].b0_dq5},
- {&phy_ao->dvs_b[0].b0_dq3},
- {&phy_ao->dvs_b[1].b0_dq3},
- {&phy_ao->misc_ctrl1},
- {&phy_ao->misc_ctrl4},
- {&phy_ao->dvs_b[0].b0_phy2},
- {&phy_ao->dvs_b[1].b0_phy2},
- {&phy_ao->byte[0].shu_b0_dll_arpi2},
- {&phy_ao->byte[1].shu_b0_dll_arpi2},
- {&phy_ao->byte[0].shu_b0_dq11},
- {&phy_ao->byte[1].shu_b0_dq11},
- {&phy_ao->shu_ca_cmd11},
- {&phy_ao->misc_stbcal},
- {&phy_ao->byte[0].rk[0].shu_rk_b0_dqsien_pi_dly},
- {&phy_ao->byte[0].rk[1].shu_rk_b0_dqsien_pi_dly},
- {&phy_ao->misc_jmeter},
- {&phy_ao->misc_shu_stbcal},
- {&phy_ao->shu_ca_dll1},
- {&phy_ao->byte[0].shu_b0_dll1},
- {&phy_ao->byte[1].shu_b0_dll1},
- {&phy_ao->dvs_b[0].b0_dq2},
- {&phy_ao->dvs_b[1].b0_dq2},
- {&phy_ao->ca_cmd2},
- {&phy_ao->byte[0].shu_b0_dq13},
- {&phy_ao->byte[1].shu_b0_dq13},
- {&phy_ao->shu_ca_cmd13},
- {&phy_ao_ch1->shu_ca_dll1},
- {&phy_ao_ch1->byte[0].shu_b0_dll1},
- {&phy_ao_ch1->byte[1].shu_b0_dll1},
- {&phy_ao_ch1->dvs_b[0].b0_dq2},
- {&phy_ao_ch1->dvs_b[1].b0_dq2},
- {&phy_ao_ch1->ca_cmd2},
- {&phy_ao_ch1->byte[0].shu_b0_dq13},
- {&phy_ao_ch1->byte[1].shu_b0_dq13},
- {&phy_ao_ch1->shu_ca_cmd13},
- };
- for (size_t i = 0; i < ARRAY_SIZE(regs_bak); i++)
- regs_bak[i].value = read32(regs_bak[i].addr);
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- phy_ao = &ch[chn].phy_ao;
- SET32_BITFIELDS(&phy_ao->dvs_b[0].b0_dq2,
- B0_DQ2_RG_TX_ARDQS_OE_TIE_SEL_B0, 0,
- B0_DQ2_RG_TX_ARDQS_OE_TIE_EN_B0, 1,
- B0_DQ2_RG_TX_ARWCK_OE_TIE_SEL_B0, 0,
- B0_DQ2_RG_TX_ARWCK_OE_TIE_EN_B0, 1,
- B0_DQ2_RG_TX_ARWCKB_OE_TIE_SEL_B0, 0,
- B0_DQ2_RG_TX_ARWCKB_OE_TIE_EN_B0, 1,
- B0_DQ2_RG_TX_ARDQM_OE_TIE_SEL_B0, 0,
- B0_DQ2_RG_TX_ARDQM_OE_TIE_EN_B0, 1,
- B0_DQ2_RG_TX_ARDQ_OE_TIE_SEL_B0, 0,
- B0_DQ2_RG_TX_ARDQ_OE_TIE_EN_B0, 0xff);
- SET32_BITFIELDS(&phy_ao->dvs_b[1].b0_dq2,
- B1_DQ2_RG_TX_ARDQS_OE_TIE_SEL_B1, 0,
- B1_DQ2_RG_TX_ARDQS_OE_TIE_EN_B1, 1,
- B1_DQ2_RG_TX_ARWCK_OE_TIE_SEL_B1, 0,
- B1_DQ2_RG_TX_ARWCK_OE_TIE_EN_B1, 1,
- B1_DQ2_RG_TX_ARWCKB_OE_TIE_SEL_B1, 0,
- B1_DQ2_RG_TX_ARWCKB_OE_TIE_EN_B1, 1,
- B1_DQ2_RG_TX_ARDQM_OE_TIE_SEL_B1, 0,
- B1_DQ2_RG_TX_ARDQM_OE_TIE_EN_B1, 1,
- B1_DQ2_RG_TX_ARDQ_OE_TIE_SEL_B1, 0,
- B1_DQ2_RG_TX_ARDQ_OE_TIE_EN_B1, 0xff);
- SET32_BITFIELDS(&phy_ao->ca_cmd2,
- CA_CMD2_RG_TX_ARCLK_OE_TIE_SEL_CA, 0,
- CA_CMD2_RG_TX_ARCLK_OE_TIE_EN_CA, 1,
- CA_CMD2_RG_TX_ARCS_OE_TIE_SEL_CA, 0,
- CA_CMD2_RG_TX_ARCS_OE_TIE_EN_CA, 1,
- CA_CMD2_RG_TX_ARCA_OE_TIE_SEL_CA, 0,
- CA_CMD2_RG_TX_ARCA_OE_TIE_EN_CA, 0xff);
- SET32_BITFIELDS(&phy_ao->byte[0].shu_b0_dq13,
- SHU_B0_DQ13_RG_TX_ARDQSB_OE_TIE_SEL_B0, 0,
- SHU_B0_DQ13_RG_TX_ARDQSB_OE_TIE_EN_B0, 1);
- SET32_BITFIELDS(&phy_ao->byte[1].shu_b0_dq13,
- SHU_B1_DQ13_RG_TX_ARDQSB_OE_TIE_SEL_B1, 0,
- SHU_B1_DQ13_RG_TX_ARDQSB_OE_TIE_EN_B1, 1);
- SET32_BITFIELDS(&phy_ao->shu_ca_cmd13,
- SHU_CA_CMD13_RG_TX_ARCLKB_OE_TIE_SEL_CA, 0,
- SHU_CA_CMD13_RG_TX_ARCLKB_OE_TIE_EN_CA, 1);
- }
-
- phy_ao = &ch[0].phy_ao;
- ph_dly_back = READ32_BITFIELD(&phy_ao->byte[0].shu_b0_dq1,
- SHU_B0_DQ1_RG_ARPI_MIDPI_8PH_DLY_B0);
- SET32_BITFIELDS(&phy_ao->misc_shu_stbcal,
- MISC_SHU_STBCAL_STBCALEN, 0x0,
- MISC_SHU_STBCAL_STB_SELPHCALEN, 0x0);
- SET32_BITFIELDS(&phy_ao->byte[0].shu_b0_dq11,
- SHU_B0_DQ11_RG_RX_ARDQ_RANK_SEL_SER_EN_B0, 0);
- SET32_BITFIELDS(&phy_ao->byte[1].shu_b0_dq11,
- SHU_B1_DQ11_RG_RX_ARDQ_RANK_SEL_SER_EN_B1, 0);
- SET32_BITFIELDS(&phy_ao->shu_ca_cmd11,
- SHU_CA_CMD11_RG_RX_ARCA_RANK_SEL_SER_EN_CA, 0);
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- phy_ao = &ch[chn].phy_ao;
- SET32_BITFIELDS(&phy_ao->shu_ca_dll1,
- SHU_CA_DLL1_RG_ARDLL_PHDET_EN_CA, 0x0,
- SHU_CA_DLL1_RG_ARDLL_PHDET_OUT_SEL_CA, 0x0);
- SET32_BITFIELDS(&phy_ao->byte[0].shu_b0_dll1,
- SHU_B0_DLL1_RG_ARDLL_PHDET_EN_B0, 0x0,
- SHU_B0_DLL1_RG_ARDLL_PHDET_OUT_SEL_B0, 0x0);
- SET32_BITFIELDS(&phy_ao->byte[1].shu_b0_dll1,
- SHU_B1_DLL1_RG_ARDLL_PHDET_EN_B1, 0x0,
- SHU_B1_DLL1_RG_ARDLL_PHDET_OUT_SEL_B1, 0x0);
- }
-
- phy_ao = &ch[0].phy_ao;
- SET32_BITFIELDS(&phy_ao->misc_ctrl1, MISC_CTRL1_R_DMDQSIENCG_EN, 0);
- SET32_BITFIELDS(&phy_ao->byte[0].shu_b0_dll_arpi2,
- SHU_B0_DLL_ARPI2_RG_ARPI_CG_DQSIEN_B0, 0);
- SET32_BITFIELDS(&phy_ao->byte[1].shu_b0_dll_arpi2,
- SHU_B1_DLL_ARPI2_RG_ARPI_CG_DQSIEN_B1, 0);
- SET32_BITFIELDS(&phy_ao->misc_dutyscan1,
- MISC_DUTYSCAN1_RX_EYE_SCAN_CG_EN, 1);
- SET32_BITFIELDS(&phy_ao->misc_ctrl4, MISC_CTRL4_R_OPT2_CG_DQSIEN, 0);
- SET32_BITFIELDS(&phy_ao->misc_stbcal, MISC_STBCAL_DQSIENCG_NORMAL_EN, 0);
- SET32_BITFIELDS(&phy_ao->dvs_b[0].b0_dq6,
- B0_DQ6_RG_RX_ARDQ_EYE_DLY_DQS_BYPASS_B0, 1);
- SET32_BITFIELDS(&phy_ao->dvs_b[1].b0_dq6,
- B1_DQ6_RG_RX_ARDQ_EYE_DLY_DQS_BYPASS_B1, 1);
- SET32_BITFIELDS(&phy_ao->misc_dutyscan1, MISC_DUTYSCAN1_RX_EYE_SCAN_EN, 1);
- SET32_BITFIELDS(&phy_ao->misc_dutyscan1,
- MISC_DUTYSCAN1_EYESCAN_DQS_SYNC_EN, 0x1,
- MISC_DUTYSCAN1_EYESCAN_NEW_DQ_SYNC_EN, 0x1,
- MISC_DUTYSCAN1_EYESCAN_DQ_SYNC_EN, 0x1);
- SET32_BITFIELDS(&phy_ao->dvs_b[0].b0_dq5, B0_DQ5_RG_RX_ARDQ_EYE_EN_B0, 1);
- SET32_BITFIELDS(&phy_ao->dvs_b[1].b0_dq5, B1_DQ5_RG_RX_ARDQ_EYE_EN_B1, 1);
- SET32_BITFIELDS(&phy_ao->dvs_b[0].b0_dq5, B0_DQ5_RG_RX_ARDQ_VREF_EN_B0, 1);
- SET32_BITFIELDS(&phy_ao->dvs_b[1].b0_dq5, B1_DQ5_RG_RX_ARDQ_VREF_EN_B1, 1);
- SET32_BITFIELDS(&phy_ao->dvs_b[0].b0_dq3, B0_DQ3_RG_RX_ARDQ_SMT_EN_B0, 1);
- SET32_BITFIELDS(&phy_ao->dvs_b[1].b0_dq3, B1_DQ3_RG_RX_ARDQ_SMT_EN_B1, 1);
- SET32_BITFIELDS(&phy_ao->dvs_b[0].b0_phy2, B0_PHY2_RG_RX_ARDQS_JM_EN_B0, 1);
- SET32_BITFIELDS(&phy_ao->dvs_b[1].b0_phy2, B1_PHY2_RG_RX_ARDQS_JM_EN_B1, 1);
- SET32_BITFIELDS(&phy_ao->misc_jmeter, MISC_JMETER_JMTR_EN, 1);
- SET32_BITFIELDS(&phy_ao->dvs_b[0].b0_phy2, B0_PHY2_RG_RX_ARDQS_JM_SEL_B0, 1);
- SET32_BITFIELDS(&phy_ao->dvs_b[1].b0_phy2, B1_PHY2_RG_RX_ARDQS_JM_SEL_B1, 1);
- SET32_BITFIELDS(&phy_ao->misc_dutyscan1, MISC_DUTYSCAN1_RX_MIOCK_JIT_EN, 1);
- SET32_BITFIELDS(&phy_ao->misc_dutyscan1, MISC_DUTYSCAN1_RX_EYE_SCAN_EN, 0);
- SET32_BITFIELDS(&phy_ao->misc_dutyscan1, MISC_DUTYSCAN1_DQSERRCNT_DIS, 0);
-
- dramc_8_phase_cal_set_best_dly(cali, ph_dly_back);
-
- for (size_t i = 0; i < ARRAY_SIZE(regs_bak); i++)
- write32(regs_bak[i].addr, regs_bak[i].value);
-}
-
-static void duty_delay_reg_convert(s8 duty_delay, u8 *delay)
-{
- if (duty_delay < 0)
- *delay = -duty_delay;
- else if (duty_delay > 0)
- *delay = duty_delay + (1 << 5);
- else
- *delay = 0;
-}
-
-static void dramc_duty_set_clk_delay_cell(u8 chn, const s8 *duty_delay)
-{
- u8 delay;
-
- duty_delay_reg_convert(duty_delay[RANK_0], &delay);
- SET32_BITFIELDS(&ch[chn].phy_ao.shu_ca_txduty,
- SHU_CA_TXDUTY_DA_TX_ARCLK_DUTY_DLY, delay);
-}
-
-static void dramc_duty_set_dqs_delay_cell(u8 chn, const s8 *duty_delay)
-{
- u8 dqs;
- u8 delay;
-
- for (dqs = 0; dqs < DQS_NUMBER; dqs++) {
- duty_delay_reg_convert(duty_delay[dqs], &delay);
- SET32_BITFIELDS(&ch[chn].phy_ao.byte[dqs].shu_b0_txduty,
- SHU_B0_TXDUTY_DA_TX_ARDQS_DUTY_DLY_B0, delay);
- }
-}
-
-static void dramc_duty_set_wck_delay_cell(u8 chn, const s8 *duty_delay)
-{
- u8 dqs;
- u8 delay;
-
- for (dqs = 0; dqs < DQS_NUMBER; dqs++) {
- duty_delay_reg_convert(duty_delay[dqs], &delay);
- SET32_BITFIELDS(&ch[chn].phy_ao.byte[dqs].shu_b0_txduty,
- SHU_B0_TXDUTY_DA_TX_ARWCK_DUTY_DLY_B0, delay);
- }
-}
-
-static void dramc_duty_set_dqdqm_delay_cell(u8 chn, const s8 *duty_delay,
- u8 k_type)
-{
- u8 dqs;
- u8 delay;
-
- for (dqs = 0; dqs < DQS_NUMBER; dqs++) {
- duty_delay_reg_convert(duty_delay[dqs], &delay);
-
- if (k_type == DUTYSCAN_K_DQ)
- SET32_BITFIELDS(&ch[chn].phy_ao.byte[dqs].shu_b0_txduty,
- SHU_B0_TXDUTY_DA_TX_ARDQ_DUTY_DLY_B0, delay);
- else if (k_type == DUTYSCAN_K_DQM)
- SET32_BITFIELDS(&ch[chn].phy_ao.byte[dqs].shu_b0_txduty,
- SHU_B0_TXDUTY_DA_TX_ARDQM_DUTY_DLY_B0, delay);
- }
-}
-
-void dramc_duty_calibration(const struct sdram_params *params)
-{
- u32 bc_bak = dramc_get_broadcast();
- dramc_set_broadcast(DRAMC_BROADCAST_OFF);
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- dramc_duty_set_clk_delay_cell(chn, params->duty_clk_delay[chn]);
- dramc_duty_set_dqs_delay_cell(chn, params->duty_dqs_delay[chn]);
- dramc_duty_set_wck_delay_cell(chn, params->duty_wck_delay[chn]);
- dramc_duty_set_dqdqm_delay_cell(chn, params->duty_dqm_delay[chn],
- DUTYSCAN_K_DQM);
- dramc_duty_set_dqdqm_delay_cell(chn, params->duty_dq_delay[chn],
- DUTYSCAN_K_DQ);
- }
-
- dramc_set_broadcast(bc_bak);
-}
diff --git a/src/soc/mediatek/mt8192/dramc_pi_main.c b/src/soc/mediatek/mt8192/dramc_pi_main.c
deleted file mode 100644
index ff2bfc9741..0000000000
--- a/src/soc/mediatek/mt8192/dramc_pi_main.c
+++ /dev/null
@@ -1,392 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#include <soc/dramc_pi_api.h>
-#include <soc/dramc_register.h>
-#include <soc/pll.h>
-#include <soc/pll_common.h>
-#include <soc/regulator.h>
-
-static void dramc_write_shift_mck_write_dbi(const struct ddr_cali *cali, s8 shift_value)
-{
- u8 div_shift;
- s8 ui_move;
-
- div_shift = get_mck2ui_div_shift(cali);
- ui_move = shift_value * (1 << div_shift);
- shift_dq_ui(cali, cali->rank, ui_move);
-}
-
-static void dramc_ac_timing_optimize(const struct ddr_cali *cali)
-{
- u8 rf_group, cab_id;
- u8 trfc, trfc_05t, trfc_pb, trfrc_pb05t, tx_ref_cnt;
-
- enum {
- TRFCAB_130,
- TRFCAB_180,
- TRFCAB_280,
- TRFCAB_380,
- TRFCAB_NUM,
- };
- enum {
- GRP_DDR800_DIV4_ACTIM,
- GRP_DDR1200_ACTIM,
- GRP_DDR1600_ACTIM,
- GRP_DDR1866_ACTIM,
- GRP_DDR2400_ACTIM,
- GRP_DDR3200_ACTIM,
- GRP_DDR4266_ACTIM,
- GRP_ACTIM_NUM,
- };
- struct optimize_ac_time {
- u8 trfc;
- u8 trfc_05t;
- u8 trfc_pb;
- u8 trfrc_pb05t;
- u16 tx_ref_cnt;
- };
-
- const u8 density = cali->density;
- const dram_freq_grp freq_group = get_freq_group(cali);
-
- /* tRFCab */
- struct optimize_ac_time *ptr_trfcab_opt;
- struct optimize_ac_time trfcab_opt[GRP_ACTIM_NUM][TRFCAB_NUM] = {
- [GRP_DDR800_DIV4_ACTIM] = {
- {.trfc = 14, .trfc_05t = 0, .trfc_pb = 0,
- .trfrc_pb05t = 0, .tx_ref_cnt = 28},
- {.trfc = 24, .trfc_05t = 0, .trfc_pb = 6,
- .trfrc_pb05t = 0, .tx_ref_cnt = 38},
- {.trfc = 44, .trfc_05t = 0, .trfc_pb = 16,
- .trfrc_pb05t = 0, .tx_ref_cnt = 58},
- {.trfc = 64, .trfc_05t = 0, .trfc_pb = 26,
- .trfrc_pb05t = 0, .tx_ref_cnt = 78}
- },
- [GRP_DDR1200_ACTIM] = {
- {.trfc = 8, .trfc_05t = 0, .trfc_pb = 0,
- .trfrc_pb05t = 0, .tx_ref_cnt = 21},
- {.trfc = 15, .trfc_05t = 1, .trfc_pb = 2,
- .trfrc_pb05t = 0, .tx_ref_cnt = 29},
- {.trfc = 30, .trfc_05t = 1, .trfc_pb = 9,
- .trfrc_pb05t = 1, .tx_ref_cnt = 44},
- {.trfc = 45, .trfc_05t = 1, .trfc_pb = 17,
- .trfrc_pb05t = 0, .tx_ref_cnt = 59}
- },
- [GRP_DDR1600_ACTIM] = {
- {.trfc = 14, .trfc_05t = 0, .trfc_pb = 0,
- .trfrc_pb05t = 0, .tx_ref_cnt = 28},
- {.trfc = 24, .trfc_05t = 0, .trfc_pb = 6,
- .trfrc_pb05t = 0, .tx_ref_cnt = 38},
- {.trfc = 44, .trfc_05t = 0, .trfc_pb = 16,
- .trfrc_pb05t = 0, .tx_ref_cnt = 58},
- {.trfc = 64, .trfc_05t = 0, .trfc_pb = 26,
- .trfrc_pb05t = 0, .tx_ref_cnt = 78}
- },
- [GRP_DDR1866_ACTIM] = {
- {.trfc = 18, .trfc_05t = 1, .trfc_pb = 2,
- .trfrc_pb05t = 0, .tx_ref_cnt = 33},
- {.trfc = 30, .trfc_05t = 0, .trfc_pb = 9,
- .trfrc_pb05t = 0, .tx_ref_cnt = 44},
- {.trfc = 53, .trfc_05t = 1, .trfc_pb = 21,
- .trfrc_pb05t = 0, .tx_ref_cnt = 68},
- {.trfc = 77, .trfc_05t = 0, .trfc_pb = 32,
- .trfrc_pb05t = 1, .tx_ref_cnt = 91}
- },
- [GRP_DDR2400_ACTIM] = {
- {.trfc = 27, .trfc_05t = 1, .trfc_pb = 6,
- .trfrc_pb05t = 1, .tx_ref_cnt = 42},
- {.trfc = 42, .trfc_05t = 1, .trfc_pb = 15,
- .trfrc_pb05t = 1, .tx_ref_cnt = 57},
- {.trfc = 72, .trfc_05t = 1, .trfc_pb = 30,
- .trfrc_pb05t = 1, .tx_ref_cnt = 87},
- {.trfc = 102, .trfc_05t = 1, .trfc_pb = 45,
- .trfrc_pb05t = 1, .tx_ref_cnt = 117}
- },
- [GRP_DDR3200_ACTIM] = {
- {.trfc = 40, .trfc_05t = 0, .trfc_pb = 12,
- .trfrc_pb05t = 0, .tx_ref_cnt = 55},
- {.trfc = 60, .trfc_05t = 0, .trfc_pb = 24,
- .trfrc_pb05t = 0, .tx_ref_cnt = 75},
- {.trfc = 100, .trfc_05t = 0, .trfc_pb = 44,
- .trfrc_pb05t = 0, .tx_ref_cnt = 115},
- {.trfc = 140, .trfc_05t = 0, .trfc_pb = 64,
- .trfrc_pb05t = 0, .tx_ref_cnt = 155}
- },
- [GRP_DDR4266_ACTIM] = {
- {.trfc = 57, .trfc_05t = 1, .trfc_pb = 20,
- .trfrc_pb05t = 0, .tx_ref_cnt = 74},
- {.trfc = 84, .trfc_05t = 0, .trfc_pb = 36,
- .trfrc_pb05t = 0, .tx_ref_cnt = 100},
- {.trfc = 137, .trfc_05t = 1, .trfc_pb = 63,
- .trfrc_pb05t = 0, .tx_ref_cnt = 154},
- {.trfc = 191, .trfc_05t = 0, .trfc_pb = 89,
- .trfrc_pb05t = 1, .tx_ref_cnt = 207}
- }
- };
-
- switch (density) {
- case 0x0:
- rf_group = TRFCAB_130;
- break;
- case 0x1:
- case 0x2:
- rf_group = TRFCAB_180;
- break;
- case 0x3:
- case 0x4:
- rf_group = TRFCAB_280;
- break;
- case 0x5:
- case 0x6:
- rf_group = TRFCAB_380;
- break;
- default:
- die("Invalid DDR density %u\n", density);
- return;
- }
-
- switch (freq_group) {
- case DDRFREQ_400:
- cab_id = GRP_DDR800_DIV4_ACTIM;
- break;
- case DDRFREQ_600:
- cab_id = GRP_DDR1200_ACTIM;
- break;
- case DDRFREQ_800:
- cab_id = GRP_DDR1600_ACTIM;
- break;
- case DDRFREQ_933:
- cab_id = GRP_DDR1866_ACTIM;
- break;
- case DDRFREQ_1200:
- cab_id = GRP_DDR2400_ACTIM;
- break;
- case DDRFREQ_1600:
- cab_id = GRP_DDR3200_ACTIM;
- break;
- case DDRFREQ_2133:
- cab_id = GRP_DDR4266_ACTIM;
- break;
- default:
- die("Invalid DDR frequency group %u\n", freq_group);
- return;
- }
-
- ptr_trfcab_opt = &trfcab_opt[cab_id][0];
- trfc = ptr_trfcab_opt[rf_group].trfc;
- trfc_05t = ptr_trfcab_opt[rf_group].trfc_05t;
- trfc_pb = ptr_trfcab_opt[rf_group].trfc_pb;
- trfrc_pb05t = ptr_trfcab_opt[rf_group].trfrc_pb05t;
- tx_ref_cnt = ptr_trfcab_opt[rf_group].tx_ref_cnt;
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++) {
- SET32_BITFIELDS(&ch[chn].ao.shu_actim3,
- SHU_ACTIM3_TRFC, trfc);
- SET32_BITFIELDS(&ch[chn].ao.shu_ac_time_05t,
- SHU_AC_TIME_05T_TRFC_05T, trfc_05t);
- SET32_BITFIELDS(&ch[chn].ao.shu_actim4,
- SHU_ACTIM4_TXREFCNT, tx_ref_cnt);
- SET32_BITFIELDS(&ch[chn].ao.shu_actim3,
- SHU_ACTIM3_TRFCPB, trfc_pb);
- SET32_BITFIELDS(&ch[chn].ao.shu_ac_time_05t,
- SHU_AC_TIME_05T_TRFCPB_05T, trfrc_pb05t);
- dramc_dbg("Density (MR8 OP[5:2]) %u, TRFC %u, TRFC_05T %u, TXREFCNT %u, "
- "TRFCpb %u, TRFCpb_05T %u\n",
- density, trfc, trfc_05t, tx_ref_cnt, trfc_pb, trfrc_pb05t);
- }
-}
-
-static void set_vcore_voltage(const struct ddr_cali *cali)
-{
- u32 vcore = get_vcore_value(cali);
-
- dramc_info("Set DRAM vcore voltage to %u\n", vcore);
- mainboard_set_regulator_vol(MTK_REGULATOR_VCORE, vcore);
-}
-
-static void get_dram_info_after_cal(struct ddr_cali *cali)
-{
- u8 vendor_id, density, max_density = 0;
- u32 size_gb, max_size = 0;
-
- vendor_id = dramc_mode_reg_read_by_rank(CHANNEL_A, RANK_0, 5) & 0xff;
- dramc_info("Vendor id is %#x\n", vendor_id);
-
- for (u8 rk = RANK_0; rk < cali->support_ranks; rk++) {
- density = dramc_mode_reg_read_by_rank(CHANNEL_A, rk, 8) & 0xff;
- dramc_dbg("MR8 %#x\n", density);
- density = (density >> 2) & 0xf;
-
- switch (density) {
- /* these case values are from JESD209-4C MR8 Density OP[5:2] */
- case 0x0:
- size_gb = 4;
- break;
- case 0x1:
- size_gb = 6;
- break;
- case 0x2:
- size_gb = 8;
- break;
- case 0x3:
- size_gb = 12;
- break;
- case 0x4:
- size_gb = 16;
- break;
- case 0x5:
- size_gb = 24;
- break;
- case 0x6:
- size_gb = 32;
- break;
- case 0xC:
- size_gb = 2;
- break;
- default:
- dramc_err("Unexpected mode register density value: %#x\n", density);
- size_gb = 0;
- break;
- }
- if (size_gb > max_size) {
- max_size = size_gb;
- max_density = density;
- }
- dramc_dbg("RK%u size %uGb, density:%u\n", rk, size_gb, max_density);
- }
-
- cali->density = max_density;
-}
-
-static void dramc_calibration_single_channel(struct ddr_cali *cali, u8 chn)
-{
- cali->chn = chn;
- SET32_BITFIELDS(&ch[chn].phy_ao.ca_cmd2,
- CA_CMD2_RG_TX_ARCMD_OE_DIS_CA, 0,
- CA_CMD2_RG_TX_ARCA_OE_TIE_SEL_CA, 1,
- CA_CMD2_RG_TX_ARCA_OE_TIE_EN_CA, 0xff);
-}
-
-static void dramc_calibration_all_channels(struct ddr_cali *cali)
-{
- u8 chn_bak, rank_bak;
- const dbi_mode w_dbi = get_write_dbi(cali);
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++)
- SET32_BITFIELDS(&ch[chn].phy_ao.ca_cmd2,
- CA_CMD2_RG_TX_ARCMD_OE_DIS_CA, 1,
- CA_CMD2_RG_TX_ARCA_OE_TIE_SEL_CA, 0,
- CA_CMD2_RG_TX_ARCA_OE_TIE_EN_CA, 0xff);
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++)
- dramc_calibration_single_channel(cali, chn);
-
- if (w_dbi == DBI_ON) {
- chn_bak = cali->chn;
- rank_bak = cali->rank;
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++)
- for (u8 rank = RANK_0; rank < RANK_MAX; rank++) {
- cali->chn = chn;
- cali->rank = rank;
- dramc_write_shift_mck_write_dbi(cali, -1);
- }
- cali->chn = chn_bak;
- cali->rank = rank_bak;
- apply_write_dbi_power_improve(true);
- }
-
- dramc_write_dbi_onoff(w_dbi);
-
- tx_picg_setting(cali);
- if (cali->support_ranks == DUAL_RANK_DDR)
- xrtrtr_shu_setting(cali);
- freq_jump_ratio_calculation(cali);
-
- dramc_hmr4_presetting(cali);
- dramc_enable_perbank_refresh(true);
- dramc_modified_refresh_mode();
- dramc_cke_debounce(cali);
-
- for (u8 chn = 0; chn < CHANNEL_MAX; chn++)
- dramc_hw_dqsosc(cali, chn);
-}
-
-static void mem_pll_init(void)
-{
- SET32_BITFIELDS(&mtk_apmixed->mpll_con3, PLL_POWER_ISO_ENABLE, 3);
-
- udelay(30);
- SET32_BITFIELDS(&mtk_apmixed->mpll_con3, PLL_ISO_ENABLE, 0);
-
- udelay(1);
- SET32_BITFIELDS(&mtk_apmixed->mpll_con1, PLL_CON1, MPLL_CON1_FREQ);
- SET32_BITFIELDS(&mtk_apmixed->mpll_con0, PLL_ENABLE, 1);
-
- udelay(20);
- SET32_BITFIELDS(&mtk_apmixed->pllon_con0, MPLL_IOS_SEL, 0);
- SET32_BITFIELDS(&mtk_apmixed->pllon_con0, MPLL_EN_SEL, 0);
- SET32_BITFIELDS(&mtk_apmixed->pllon_con1, MPLL_PWR_SEL, 0);
- SET32_BITFIELDS(&mtk_apmixed->pllon_con2, MPLL_BY_ISO_DLY, 0);
- SET32_BITFIELDS(&mtk_apmixed->pllon_con3, MPLL_BY_PWR_DLY, 0);
-}
-
-void init_dram(const struct dramc_data *dparam)
-{
- u32 bc_bak;
- u8 k_shuffle, k_shuffle_end;
- u8 pll_mode = 0;
- bool first_freq_k = true;
-
- struct ddr_cali cali = {0};
- struct mr_values mr_value;
- const struct ddr_base_info *ddr_info = &dparam->ddr_info;
-
- cali.pll_mode = &pll_mode;
- cali.mr_value = &mr_value;
- cali.support_ranks = ddr_info->support_ranks;
- cali.cbt_mode[RANK_0] = ddr_info->cbt_mode[RANK_0];
- cali.cbt_mode[RANK_1] = ddr_info->cbt_mode[RANK_1];
- cali.emi_config = &ddr_info->emi_config;
-
- dramc_set_broadcast(DRAMC_BROADCAST_ON);
- mem_pll_init();
-
- global_option_init(&cali);
- bc_bak = dramc_get_broadcast();
- dramc_set_broadcast(DRAMC_BROADCAST_OFF);
- emi_mdl_init(cali.emi_config);
- dramc_set_broadcast(bc_bak);
-
- dramc_sw_impedance_cal(ODT_OFF, &cali.impedance);
- dramc_sw_impedance_cal(ODT_ON, &cali.impedance);
-
- if (ddr_info->config_dvfs == DRAMC_ENABLE_DVFS)
- k_shuffle_end = CALI_SEQ_MAX;
- else
- k_shuffle_end = CALI_SEQ1;
-
- for (k_shuffle = CALI_SEQ0; k_shuffle < k_shuffle_end; k_shuffle++) {
- set_cali_datas(&cali, dparam, k_shuffle);
- set_vcore_voltage(&cali);
- dfs_init_for_calibration(&cali);
-
- if (first_freq_k)
- emi_init2();
-
- dramc_calibration_all_channels(&cali);
-
- /* only need to do once to get DDR's base information */
- if (first_freq_k)
- get_dram_info_after_cal(&cali);
-
- dramc_ac_timing_optimize(&cali);
- dramc_save_result_to_shuffle(DRAM_DFS_SHU0, cali.shu);
-
- /* for frequency switch in dramc_mode_reg_init phase */
- if (first_freq_k)
- dramc_load_shuffle_to_dramc(cali.shu, DRAM_DFS_SHU1);
-
- first_freq_k = false;
- dramc_info("Calibration of data rate %u finished\n", get_frequency(&cali) * 2);
- }
-}
diff --git a/src/soc/mediatek/mt8192/dramc_utility.c b/src/soc/mediatek/mt8192/dramc_utility.c
deleted file mode 100644
index 71a7eb6920..0000000000
--- a/src/soc/mediatek/mt8192/dramc_utility.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#include <soc/dramc_pi_api.h>
-#include <soc/dramc_register.h>
-#include <soc/infracfg.h>
-
-struct dfs_frequency_table {
- u32 frequency;
- dram_freq_grp freq_group;
- dram_div_mode div_mode;
- dram_dfs_shu shuffle_saved;
- vref_cali_mode vref_cali;
- u32 vcore;
-};
-
-static const struct dfs_frequency_table freq_shuffle_table[DRAM_DFS_SHU_MAX] = {
- [CALI_SEQ0] = {800, DDRFREQ_800, DIV8_MODE, DRAM_DFS_SHU4, VREF_CALI_ON, 650000},
- [CALI_SEQ1] = {1200, DDRFREQ_1200, DIV8_MODE, DRAM_DFS_SHU2, VREF_CALI_ON, 662500},
- [CALI_SEQ2] = {600, DDRFREQ_600, DIV8_MODE, DRAM_DFS_SHU5, VREF_CALI_OFF, 650000},
- [CALI_SEQ3] = {933, DDRFREQ_933, DIV8_MODE, DRAM_DFS_SHU3, VREF_CALI_OFF, 662500},
- [CALI_SEQ4] = {400, DDRFREQ_400, DIV4_MODE, DRAM_DFS_SHU6, VREF_CALI_OFF, 650000},
- [CALI_SEQ5] = {2133, DDRFREQ_2133, DIV8_MODE, DRAM_DFS_SHU0, VREF_CALI_ON, 725000},
- [CALI_SEQ6] = {1600, DDRFREQ_1600, DIV8_MODE, DRAM_DFS_SHU1, VREF_CALI_OFF, 687500},
-};
-
-void dramc_set_broadcast(u32 onoff)
-{
- write32(&mt8192_infracfg->dramc_wbr, onoff);
-}
-
-u32 dramc_get_broadcast(void)
-{
- return read32(&mt8192_infracfg->dramc_wbr);
-}
-
-u8 get_fsp(const struct ddr_cali *cali)
-{
- return cali->fsp;
-}
-
-dram_div_mode get_div_mode(const struct ddr_cali *cali)
-{
- return cali->div_mode;
-}
-
-dram_freq_grp get_freq_group(const struct ddr_cali *cali)
-{
- return cali->freq_group;
-}
-
-dbi_mode get_write_dbi(const struct ddr_cali *cali)
-{
- return cali->w_dbi[get_fsp(cali)];
-}
-
-dram_odt_state get_odt_state(const struct ddr_cali *cali)
-{
- return cali->odt_onoff;
-}
-
-dram_dfs_shu get_shu(const struct ddr_cali *cali)
-{
- return cali->shu;
-}
-
-dram_cbt_mode get_cbt_mode(const struct ddr_cali *cali)
-{
- return cali->cbt_mode[cali->rank];
-}
-
-u32 get_vcore_value(const struct ddr_cali *cali)
-{
- return cali->vcore_voltage;
-}
-
-u32 get_frequency(const struct ddr_cali *cali)
-{
- return cali->frequency;
-}
-
-vref_cali_mode get_vref_cali(const struct ddr_cali *cali)
-{
- return cali->vref_cali;
-}
-
-dram_pinmux_type get_pinmux_type(const struct ddr_cali *cali)
-{
- return cali->pinmux_type;
-}
-
-u8 get_mck2ui_div_shift(const struct ddr_cali *cali)
-{
- if (get_div_mode(cali) == DIV4_MODE)
- return 2;
- else
- return 3;
-}
-
-dram_dfs_shu get_shu_save_by_k_shu(dram_cali_seq k_shu)
-{
- return freq_shuffle_table[k_shu].shuffle_saved;
-}
-
-dram_freq_grp get_freq_group_by_shu_save(dram_dfs_shu shu)
-{
- for (u8 k_shu = CALI_SEQ0; k_shu < CALI_SEQ_MAX; k_shu++)
- if (freq_shuffle_table[k_shu].shuffle_saved == shu)
- return freq_shuffle_table[k_shu].freq_group;
-
- dramc_err("Invalid shuffle: %d\n", shu);
- return DDRFREQ_800;
-}
-
-u32 get_frequency_by_shu(dram_dfs_shu shu)
-{
- for (u8 k_shu = CALI_SEQ0; k_shu < CALI_SEQ_MAX; k_shu++)
- if (freq_shuffle_table[k_shu].shuffle_saved == shu)
- return freq_shuffle_table[k_shu].frequency;
-
- dramc_err("Invalid shuffle: %d, using k_shu = %d\n", shu, CALI_SEQ0);
- return freq_shuffle_table[CALI_SEQ0].frequency;
-}
-
-dram_freq_grp get_highest_freq_group(void)
-{
- dram_freq_grp highest_freq = DDRFREQ_800;
-
- for (u8 k_shu = CALI_SEQ0; k_shu < CALI_SEQ_MAX; k_shu++)
- if (freq_shuffle_table[k_shu].freq_group > highest_freq)
- highest_freq = freq_shuffle_table[k_shu].freq_group;
-
- dramc_dbg("Highest freq is: %d\n", highest_freq);
- return highest_freq;
-}
-
-void set_cali_datas(struct ddr_cali *cali, const struct dramc_data *dparam, dram_cali_seq k_shu)
-{
- const struct dfs_frequency_table *shuffle = &freq_shuffle_table[k_shu];
-
- cali->chn = CHANNEL_A;
- cali->rank = RANK_0;
- cali->fsp = (shuffle->freq_group < DDRFREQ_1600) ? FSP_0 : FSP_1;
- cali->w_dbi[FSP_0] = DBI_OFF;
- cali->w_dbi[FSP_1] = DBI_ON;
- cali->frequency = shuffle->frequency;
- cali->freq_group = shuffle->freq_group;
- cali->div_mode = shuffle->div_mode;
- cali->shu = shuffle->shuffle_saved;
- cali->vref_cali = shuffle->vref_cali;
- cali->vcore_voltage = shuffle->vcore;
- cali->odt_onoff = (cali->fsp == FSP_0) ? ODT_OFF : ODT_ON;
- cali->params = &dparam->freq_params[cali->shu];
-
- dramc_dbg("cali data (size: %ld) fsp: %d, freq_group: %d, div_mode: %d, "
- "shu: %d, vref_cali: %d, odt_onoff: %d, vcore: %d\n",
- sizeof(*cali), cali->fsp, cali->freq_group, cali->div_mode, cali->shu,
- cali->vref_cali, cali->odt_onoff, cali->vcore_voltage);
-}
-
-void dramc_auto_refresh_switch(u8 chn, bool enable)
-{
- SET32_BITFIELDS(&ch[chn].ao.refctrl0, REFCTRL0_REFDIS, enable ? 0 : 1);
-
- if (!enable)
- udelay(READ32_BITFIELD(&ch[chn].nao.misc_statusa,
- MISC_STATUSA_REFRESH_QUEUE_CNT));
-}
diff --git a/src/soc/mediatek/mt8192/emi.c b/src/soc/mediatek/mt8192/emi.c
deleted file mode 100644
index a130a8874e..0000000000
--- a/src/soc/mediatek/mt8192/emi.c
+++ /dev/null
@@ -1,440 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#include <soc/dramc_pi_api.h>
-#include <soc/dramc_register.h>
-#include <soc/infracfg.h>
-#include <symbols.h>
-
-static struct emi_regs *emi_reg = (void *)EMI_BASE;
-static struct emi_mpu_regs *const emi_mpu = (void *)EMI_MPU_BASE;
-static struct infra_ao_mem_regs *infra_ao_mem = (void *)INFRACFG_AO_MEM_BASE;
-
-static void emi_center_config(void)
-{
- /* set EMI default settings which EMI hardware needs */
- write32(&emi_reg->cona, 0xf053f154);
- write32(&emi_reg->conp, 0x182e2d33);
- write32(&emi_reg->conb, 0x0f251025);
- write32(&emi_reg->conq, 0x122a1027);
- write32(&emi_reg->conc, 0x1a31162d);
- write32(&emi_reg->conb_2nd, 0x182e2d33);
- write32(&emi_reg->conc_2nd, 0x0f251025);
- write32(&emi_reg->conp_2nd, 0x122a1027);
- write32(&emi_reg->conq_2nd, 0x1a31162d);
- write32(&emi_reg->conb_3rd, 0x1024202c);
- write32(&emi_reg->conc_3rd, 0x0b210c21);
- write32(&emi_reg->conp_3rd, 0x0f250d23);
- write32(&emi_reg->conq_3rd, 0x152b1228);
- write32(&emi_reg->conb_4th, 0x0c201a28);
- write32(&emi_reg->conc_4th, 0x0d230a20);
- write32(&emi_reg->conp_4th, 0x0e260d24);
- write32(&emi_reg->conq_4th, 0x132d1229);
- write32(&emi_reg->conb_5th, 0x0c201a28);
- write32(&emi_reg->conc_5th, 0x0d230a20);
- write32(&emi_reg->conp_5th, 0x0e260d24);
- write32(&emi_reg->conq_5th, 0x132d1229);
- write32(&emi_reg->conb_6th, 0x0c201a28);
- write32(&emi_reg->conc_6th, 0x0d230a20);
- write32(&emi_reg->conp_6th, 0x0e260d24);
- write32(&emi_reg->conq_6th, 0x132d1229);
- write32(&emi_reg->conb_7th, 0x0e290e28);
- write32(&emi_reg->conc_7th, 0x091e1322);
- write32(&emi_reg->mpud26_st, 0x0f29112a);
- write32(&emi_reg->conq_7th, 0x0c240a1f);
- write32(&emi_reg->conb_8th, 0x0e290e28);
- write32(&emi_reg->conc_8th, 0x091e1322);
- write32(&emi_reg->conp_8th, 0x0f29112a);
- write32(&emi_reg->conq_8th, 0x0c240a1f);
- write32(&emi_reg->cong, 0x37373a57);
- write32(&emi_reg->conr, 0x3f3f3c39);
- write32(&emi_reg->cong_2nd, 0x3836374e);
- write32(&emi_reg->conr_2nd, 0x41413d3a);
- write32(&emi_reg->cong_3rd, 0x33313241);
- write32(&emi_reg->conr_3rd, 0x3a3a3835);
- write32(&emi_reg->cong_4th, 0x34343542);
- write32(&emi_reg->conr_4th, 0x3b3b3835);
- write32(&emi_reg->cong_5th, 0x34343542);
- write32(&emi_reg->conr_5th, 0x3b3b3835);
- write32(&emi_reg->cong_6th, 0x34343542);
- write32(&emi_reg->conr_6th, 0x3b3b3835);
- write32(&emi_reg->cong_7th, 0x37333034);
- write32(&emi_reg->conr_7th, 0x39393a39);
- write32(&emi_reg->cong_8th, 0x37333034);
- write32(&emi_reg->conr_8th, 0x39393a39);
- write32(&emi_reg->cond, 0x3657587a);
- write32(&emi_reg->cone, 0x0000c042);
- write32(&emi_reg->conf, 0x08421000);
- write32(&emi_reg->conh, 0x00000083);
- write32(&emi_reg->conh_2nd, 0x00073210);
- write32(&emi_reg->coni, 0x00008802);
- write32(&emi_reg->conj, 0x00000000);
- write32(&emi_reg->conm, 0x007812ff);
- write32(&emi_reg->conn, 0x00000000);
- write32(&emi_reg->mdct, 0x11120c1f);
- write32(&emi_reg->shf0, 0x11120c1f);
- write32(&emi_reg->mdct_2nd, 0x00001123);
- write32(&emi_reg->shf1, 0x00001123);
- write32(&emi_reg->iocl, 0xa8a8a8a8);
- write32(&emi_reg->iocl_2nd, 0x25252525);
- write32(&emi_reg->iocm, 0xa8a8a8a8);
- write32(&emi_reg->iocm_2nd, 0x25252525);
- write32(&emi_reg->testb, 0x00060037);
- write32(&emi_reg->testc, 0x384a0014);
- write32(&emi_reg->testd, 0xa0000000);
- write32(&emi_reg->arba, 0x20107244);
- write32(&emi_reg->arbb, 0x10107044);
- write32(&emi_reg->arbc, 0x343450df);
- write32(&emi_reg->arbd, 0x0000f0d0);
- write32(&emi_reg->arbe, 0x10106048);
- write32(&emi_reg->arbf, 0x343450df);
- write32(&emi_reg->arbg, 0x83837044);
- write32(&emi_reg->arbh, 0x83837044);
- write32(&emi_reg->arbi, 0x00007108);
- write32(&emi_reg->arbi_2nd, 0x00007108);
- write32(&emi_reg->arbk, 0x090a4000);
- write32(&emi_reg->slct, 0xff0bff00);
- write32(&emi_reg->bmen, 0x00ff0001);
- write32(&emi_reg->clua, 0x10000008);
- write32(&emi_reg->slva, 0xffffffff);
- write32(&emi_reg->thro_os0, 0x24240101);
- write32(&emi_reg->thro_os1, 0x01012424);
- write32(&emi_reg->thro_os2, 0x50500101);
- write32(&emi_reg->thro_os3, 0x01015050);
- write32(&emi_reg->thro_ctrl0, 0x0fc39a30);
- write32(&emi_reg->thro_prd0, 0x05050003);
- write32(&emi_reg->thro_prd1, 0x254dffff);
- write32(&emi_reg->thro_lat0, 0x465a788c);
- write32(&emi_reg->thro_lat1, 0x000003e8);
- write32(&emi_reg->thro_lat2, 0x0000036b);
- write32(&emi_reg->thro_lat3, 0x00000290);
- write32(&emi_reg->thro_lat4, 0x00000200);
- write32(&emi_reg->thro_lat5, 0x00000000);
- write32(&emi_reg->thro_lat6, 0x00000000);
- write32(&emi_reg->thro_ctrl1, 0x02531cff);
- write32(&emi_reg->thro_prd2, 0x00002785);
- write32(&emi_reg->thro_lat7, 0x000001b5);
- write32(&emi_reg->thro_lat8, 0x003c0000);
- write32(&emi_reg->thro_prd3, 0x0255250d);
- write32(&emi_reg->bwlmta, 0xffff3c59);
- write32(&emi_reg->bwlmtb, 0xffff00ff);
- write32(&emi_reg->bwlmte, 0xffffffff);
- write32(&emi_reg->bwlmtf, 0x0000ffff);
- write32(&emi_reg->thro_lat9, 0x0000014b);
- write32(&emi_reg->thro_lat10, 0x002d0000);
- write32(&emi_reg->thro_lat11, 0x00000185);
- write32(&emi_reg->thro_lat12, 0x003c0000);
- write32(&emi_reg->thro_lat13, 0x00000185);
- write32(&emi_reg->thro_lat14, 0x003c0000);
- write32(&emi_reg->bwlmte_2nd, 0xffffffff);
- write32(&emi_reg->bwlmtf_2nd, 0xffffffff);
- write32(&emi_reg->bwlmtg_2nd, 0xffffffff);
- write32(&emi_reg->bwlmte_4th, 0xffffffff);
- write32(&emi_reg->bwlmtf_4th, 0x0000ffff);
- write32(&emi_reg->bwlmte_5th, 0xffffffff);
- write32(&emi_reg->bwlmtf_5th, 0xffffffff);
- write32(&emi_reg->bwlmtg_5th, 0xffffffff);
- write32(&emi_reg->thro_lat27, 0x41547082);
- write32(&emi_reg->thro_lat28, 0x38382a38);
- write32(&emi_reg->thro_lat29, 0x000001d4);
- write32(&emi_reg->thro_lat30, 0x00000190);
- write32(&emi_reg->thro_lat31, 0x0000012c);
- write32(&emi_reg->thro_lat32, 0x000000ed);
- write32(&emi_reg->thro_lat33, 0x000000c8);
- write32(&emi_reg->thro_lat34, 0x00000096);
- write32(&emi_reg->thro_lat35, 0x000000c8);
- write32(&emi_reg->thro_lat36, 0x000000c8);
- write32(&emi_reg->thro_lat41, 0x26304048);
- write32(&emi_reg->thro_lat42, 0x20201820);
- write32(&emi_reg->thro_lat55, 0x181e282f);
- write32(&emi_reg->thro_lat56, 0x14140f18);
- write32(&emi_reg->thro_lat69, 0x7496c8ea);
- write32(&emi_reg->thro_lat70, 0x64644b64);
- write32(&emi_reg->thro_lat83, 0x01010101);
- write32(&emi_reg->thro_lat84, 0x01010101);
- write32(&emi_reg->thro_lat97, 0x7496c8ea);
- write32(&emi_reg->thro_lat98, 0x64644b64);
- write32(&emi_reg->thro_lat111, 0x01010101);
- write32(&emi_reg->thro_lat112, 0x01010101);
- write32(&emi_reg->thro_prd5, 0x300ff025);
- write32(&emi_reg->thro_lat113, 0x000003e8);
- write32(&emi_reg->thro_lat114, 0x0000036b);
- write32(&emi_reg->thro_lat115, 0x00000290);
- write32(&emi_reg->thro_lat116, 0x00000200);
- write32(&emi_reg->thro_lat117, 0x000001b5);
- write32(&emi_reg->thro_lat118, 0x0000014b);
- write32(&emi_reg->thro_lat119, 0x00000185);
- write32(&emi_reg->thro_lat120, 0x00000185);
- write32(&emi_reg->thro_lat125, 0x52698ca0);
- write32(&emi_reg->thro_lat126, 0x46463546);
- write32(&emi_reg->thro_lat139, 0x01010101);
- write32(&emi_reg->thro_lat140, 0x01010101);
- write32(&emi_reg->qos_mdr_be0a, 0x00000009);
- write32(&emi_reg->qos_mdr_be1a, 0x00000000);
- write32(&emi_reg->qos_mdr_shf0, 0x00730000);
- write32(&emi_reg->qos_mdr_shf1, 0x00000808);
- write32(&emi_reg->qos_mdw_be0a, 0x00000028);
- write32(&emi_reg->qos_mdw_be1a, 0x00000000);
- write32(&emi_reg->qos_mdw_shf0, 0x00730000);
- write32(&emi_reg->qos_mdw_shf1, 0x00000808);
- write32(&emi_reg->qos_apr_be0a, 0x00000080);
- write32(&emi_reg->qos_apr_be1a, 0x00000000);
- write32(&emi_reg->qos_apr_shf0, 0x30201008);
- write32(&emi_reg->qos_apw_be0a, 0x00000800);
- write32(&emi_reg->qos_apw_be1a, 0x00000000);
- write32(&emi_reg->qos_mmr_be0a, 0x00008000);
- write32(&emi_reg->qos_mmr_be1a, 0x00020000);
- write32(&emi_reg->qos_mmr_be1b, 0x00001000);
- write32(&emi_reg->qos_mmr_be2a, 0x00010000);
- write32(&emi_reg->qos_mmr_be2b, 0x00000800);
- write32(&emi_reg->qos_mmr_shf0, 0x08080000);
- write32(&emi_reg->qos_mmr_shf1, 0x00073030);
- write32(&emi_reg->qos_mmw_be0a, 0x00040000);
- write32(&emi_reg->qos_mmw_be1a, 0x00100000);
- write32(&emi_reg->qos_mmw_be1b, 0x00004000);
- write32(&emi_reg->qos_mmw_be2a, 0x00080000);
- write32(&emi_reg->qos_mmw_be2b, 0x00002000);
- write32(&emi_reg->qos_mmw_shf0, 0x08080000);
- write32(&emi_reg->qos_mmw_shf1, 0x00074040);
- write32(&emi_reg->qos_mdhwr_be0a, 0x00400000);
- write32(&emi_reg->qos_mdhwr_be1a, 0x00200000);
- write32(&emi_reg->qos_mdhwr_shf0, 0x10100404);
- write32(&emi_reg->qos_mdhww_be0a, 0x01000000);
- write32(&emi_reg->qos_mdhww_be1a, 0x00800000);
- write32(&emi_reg->qos_gpur_be0a, 0x04000000);
- write32(&emi_reg->qos_gpur_be1a, 0x02000000);
- write32(&emi_reg->qos_gpur_shf0, 0x60602010);
- write32(&emi_reg->qos_gpuw_be0a, 0x10000000);
- write32(&emi_reg->qos_gpuw_be1a, 0x08000000);
- write32(&emi_reg->qos_arbr_be0a, 0x00000009);
- write32(&emi_reg->qos_arbr_be1a, 0x04400080);
- write32(&emi_reg->qos_arbr_shf0, 0x0f170f11);
- write32(&emi_reg->qos_ctrl1, 0x0303f7f7);
- write32(&emi_reg->ext_lt_con1_1st, 0x00000166);
- write32(&emi_reg->ext_lt_con2_1st, 0xffffffff);
- write32(&emi_reg->ext_lt_con3_1st, 0xffffffff);
- write32(&emi_reg->ext_lt_con1_2nd, 0x00400166);
- write32(&emi_reg->ext_lt_con2_2nd, 0xffffffff);
- write32(&emi_reg->ext_lt_con3_2nd, 0xffffffff);
- write32(&emi_reg->ext_lt_con1_3rd, 0x00000266);
- write32(&emi_reg->ext_lt_con2_3rd, 0xffffffff);
- write32(&emi_reg->ext_lt_con3_3rd, 0xffffffff);
- write32(&emi_reg->ext_lt_con1_4th, 0x00400266);
- write32(&emi_reg->ext_lt_con2_4th, 0xffffffff);
- write32(&emi_reg->ext_lt_con3_4th, 0xffffffff);
- write32(&emi_reg->prtcl_m0_cyc, 0xffffffff);
- write32(&emi_reg->prtcl_m0_ctl, 0x001ffc85);
- write32(&emi_reg->prtcl_m0_msk, 0xffffffff);
- write32(&emi_reg->prtcl_m1_cyc, 0xffffffff);
- write32(&emi_reg->prtcl_m1_ctl, 0x001ffc85);
- write32(&emi_reg->prtcl_m1_msk, 0xffffffff);
- write32(&emi_reg->prtcl_m2_cyc, 0xffffffff);
- write32(&emi_reg->prtcl_m2_ctl, 0x001ffc85);
- write32(&emi_reg->prtcl_m2_msk, 0xffffffff);
- write32(&emi_reg->prtcl_m3_cyc, 0xffffffff);
- write32(&emi_reg->prtcl_m3_ctl, 0x001ffc85);
- write32(&emi_reg->prtcl_m3_msk, 0xffffffff);
- write32(&emi_reg->prtcl_m4_cyc, 0xffffffff);
- write32(&emi_reg->prtcl_m4_ctl, 0x001ffc85);
- write32(&emi_reg->prtcl_m4_msk, 0xffffffff);
- write32(&emi_reg->prtcl_m5_cyc, 0xffffffff);
- write32(&emi_reg->prtcl_m5_ctl, 0x001ffc85);
- write32(&emi_reg->prtcl_m5_msk, 0xffffffff);
- write32(&emi_reg->prtcl_m6_cyc, 0xffffffff);
- write32(&emi_reg->prtcl_m6_ctl, 0x001ffc85);
- write32(&emi_reg->prtcl_m6_msk, 0xffffffff);
- write32(&emi_reg->prtcl_m7_cyc, 0xffffffff);
- write32(&emi_reg->prtcl_m7_ctl, 0x001ffc85);
- write32(&emi_reg->prtcl_m7_msk, 0xffffffff);
- write32(&emi_reg->dvfs_shf_con, 0x00000000);
- write32(&emi_reg->mxto0, 0x60606060);
- write32(&emi_reg->mxto1, 0x60606060);
- write32(&emi_reg->conk, 0x00000000);
- write32(&emi_reg->thro_slv_con0, 0x08ffbbff);
- write32(&emi_reg->thro_slv_con1, 0xffff5b3c);
- write32(&emi_reg->bwlmte_8th, 0xffff00ff);
- write32(&emi_reg->bwlmtf_8th, 0x00ffffff);
- write32(&emi_reg->bwlmtg_8th, 0xffff00ff);
- write32(&emi_reg->bwlmth_8th, 0x00ffffff);
- write32(&emi_reg->bwlmtg_7th, 0x00000000);
- write32(&emi_reg->chn_hash0, 0xC0000000);
-}
-
-static void emi_chn_config(void)
-{
- struct emi_chn_regs *emi_chn = &ch->emi_chn;
-
- /* set EMI channel default settings which EMI hardware needs */
- write32(&emi_chn->cona, 0x0400f051);
- write32(&emi_chn->conb, 0x00ff6048);
- write32(&emi_chn->conc, 0x00000004);
- write32(&emi_chn->mdct, 0x99f08c03);
- write32(&emi_chn->shf0, 0x9a508c17);
- write32(&emi_chn->testb, 0x00038137);
- write32(&emi_chn->testc, 0x38460002);
- write32(&emi_chn->testd, 0x00000000);
- write32(&emi_chn->ap_early_cke, 0x000002ff);
- write32(&emi_chn->dqfr, 0x00003111);
- write32(&emi_chn->arbi, 0x22607188);
- write32(&emi_chn->arbi_2nd, 0x22607188);
- write32(&emi_chn->arbj, 0x3719595e);
- write32(&emi_chn->arbj_2nd, 0x2719595e);
- write32(&emi_chn->arbk, 0x64f3ff79);
- write32(&emi_chn->arbk_2nd, 0x64f3ff79);
- write32(&emi_chn->slct, 0x011b0868);
- write32(&emi_chn->arb_rff, 0xa7414222);
- write32(&emi_chn->drs_mon0, 0x0000f801);
- write32(&emi_chn->drs_mon1, 0x40000000);
- write32(&emi_chn->rkarb0, 0x000c802f);
- write32(&emi_chn->rkarb1, 0xbd3f3f7e);
- write32(&emi_chn->rkarb2, 0x7e003d7e);
- write32(&emi_chn->eco3, 0x00000000);
- write32(&emi_chn->md_pre_mask, 0xaa0148ff);
- write32(&emi_chn->md_pre_mask_shf, 0xaa6168ff);
- write32(&emi_chn->md_pre_mask_shf0, 0xaa516cff);
- write32(&emi_chn->md_pre_mask_shf1, 0xaa0140ff);
- write32(&emi_chn->qos_mdr_shf0, 0x9f658633);
-}
-
-static void emi_init(void)
-{
- dramc_set_broadcast(DRAMC_BROADCAST_ON);
- emi_center_config();
- emi_chn_config();
- dramc_set_broadcast(DRAMC_BROADCAST_OFF);
-}
-
-void emi_mdl_init(const struct emi_mdl *emi_con)
-{
- emi_init();
-
- write32(&emi_reg->cona, emi_con->cona_val);
- write32(&emi_reg->conf, emi_con->conf_val);
- write32(&emi_reg->conh, emi_con->conh_val);
- for (u8 chn = CHANNEL_A; chn < CHANNEL_MAX; chn++)
- write32(&ch[chn].emi_chn.cona, emi_con->chn_cona_val);
-}
-
-u32 get_column_num(void)
-{
- u32 ma_type = read32(&emi_reg->cona);
- u32 ma_type_r0 = ((ma_type >> 20) & 0x3) + 1;
- u32 ma_type_r1 = ((ma_type >> 22) & 0x3) + 1;
-
- ma_type = MIN(ma_type_r0, ma_type_r1);
-
- return ma_type;
-}
-
-static void emi_sw_setting(void)
-{
- setbits32(&emi_mpu->mpu_ctrl_d[1], BIT(4));
- setbits32(&emi_mpu->mpu_ctrl_d[7], BIT(4));
-
- /* set EMI default bandwidth threshold */
- write32(&emi_reg->bwct0, 0x05008305);
- write32(&emi_reg->bwct0_6th, 0x08ff8705);
- write32(&emi_reg->bwct0_3rd, 0x0dff8a05);
- setbits32(&emi_reg->thro_ctrl1, 0x3 << 8);
-}
-
-static void dramc_dcm_setting(void)
-{
- /* set EMI dcm default settgings */
- write32(&infra_ao_mem->emi_idle_bit_en_0, 0xFFFFFFFF);
- write32(&infra_ao_mem->emi_idle_bit_en_1, 0xFFFFFFFF);
- write32(&infra_ao_mem->emi_idle_bit_en_2, 0xFFFFFFFF);
- write32(&infra_ao_mem->emi_idle_bit_en_3, 0xFFFFFFFF);
- write32(&infra_ao_mem->emi_m0m1_idle_bit_en_0, 0x01F00000);
- write32(&infra_ao_mem->emi_m0m1_idle_bit_en_1, 0xC0040180);
- write32(&infra_ao_mem->emi_m0m1_idle_bit_en_2, 0x00000000);
- write32(&infra_ao_mem->emi_m0m1_idle_bit_en_3, 0x00000003);
- write32(&infra_ao_mem->emi_m2m5_idle_bit_en_0, 0x0C000000);
- write32(&infra_ao_mem->emi_m2m5_idle_bit_en_1, 0x00C00000);
- write32(&infra_ao_mem->emi_m2m5_idle_bit_en_2, 0x01F08000);
- write32(&infra_ao_mem->emi_m2m5_idle_bit_en_3, 0x00000000);
- write32(&infra_ao_mem->emi_m3_idle_bit_en_0, 0x20003040);
- write32(&infra_ao_mem->emi_m3_idle_bit_en_1, 0x00000000);
- write32(&infra_ao_mem->emi_m3_idle_bit_en_2, 0x00001000);
- write32(&infra_ao_mem->emi_m3_idle_bit_en_3, 0x00000000);
- write32(&infra_ao_mem->emi_m4_idle_bit_en_0, 0x10020F20);
- write32(&infra_ao_mem->emi_m4_idle_bit_en_1, 0x00019000);
- write32(&infra_ao_mem->emi_m4_idle_bit_en_2, 0x040A0818);
- write32(&infra_ao_mem->emi_m4_idle_bit_en_3, 0x00000370);
- write32(&infra_ao_mem->emi_m6m7_idle_bit_en_0, 0xC001C080);
- write32(&infra_ao_mem->emi_m6m7_idle_bit_en_1, 0x33000E01);
- write32(&infra_ao_mem->emi_m6m7_idle_bit_en_2, 0x180067E1);
- write32(&infra_ao_mem->emi_m6m7_idle_bit_en_3, 0x000C008C);
- write32(&infra_ao_mem->emi_sram_idle_bit_en_0, 0x020C0008);
- write32(&infra_ao_mem->emi_sram_idle_bit_en_1, 0x0C00007E);
- write32(&infra_ao_mem->emi_sram_idle_bit_en_2, 0x80050006);
- write32(&infra_ao_mem->emi_sram_idle_bit_en_3, 0x00030000);
-
- write32(&infra_ao_mem->emi_dcm_cfg0, 0x0000000F);
- write32(&infra_ao_mem->emi_dcm_cfg1, 0x00000000);
- write32(&infra_ao_mem->emi_dcm_cfg2, 0x001F0044);
- write32(&infra_ao_mem->top_ck_anchor_cfg, 0x200000FF);
-
- setbits32(&mt8192_infracfg->mem_dcm_ctrl, BIT(27));
-}
-
-static void dramc_dcm_setting2(void)
-{
- u32 emi_temp_data;
-
- write32(&infra_ao_mem->emi_disph_cfg, 0x00000007);
- write32(&infra_ao_mem->emi_disph_cfg, 0x80000007);
-
- emi_temp_data = read32(&infra_ao_mem->emi_disph_cfg);
- emi_temp_data = emi_temp_data & 0xf;
- setbits32(&emi_reg->chn_hash0, emi_temp_data);
-}
-
-void emi_init2(void)
-{
- u32 tmp;
- u32 bc_bak;
- struct emi_chn_regs *emi_chn = &ch->emi_chn;
-
- bc_bak = dramc_get_broadcast();
- dramc_set_broadcast(DRAMC_BROADCAST_ON);
- setbits32(&emi_chn->conc, 0x1);
- setbits32(&emi_reg->conm, BIT(10));
- setbits32(&emi_mpu->mpu_ctrl, BIT(4));
-
- clrbits32(&emi_chn->rkarb0, 0x1);
- tmp = read32(&emi_chn->cona) & 0x1;
- setbits32(&emi_chn->rkarb0, tmp);
-
- dramc_dcm_setting();
-
- /* do basic memory read/write for adjusting EMI HW settings */
- write32((void *)_dram, read32((void *)_dram));
- write32((void *)(_dram + 0x100), read32((void *)(_dram + 0x100)));
- write32((void *)(_dram + 0x200), read32((void *)(_dram + 0x200)));
- write32((void *)(_dram + 0x300), read32((void *)(_dram + 0x300)));
-
- setbits32(&emi_reg->conn, BIT(22));
- setbits32(&emi_chn->testc, BIT(2));
-
- dramc_dcm_setting2();
-
- setbits32(&emi_reg->conn, BIT(21));
- setbits32(&emi_chn->testc, BIT(4));
- write32(&emi_chn->ebg_con, 0x40);
-
- dramc_set_broadcast(DRAMC_BROADCAST_OFF);
- emi_sw_setting();
- dramc_set_broadcast(bc_bak);
-}
-
-size_t sdram_size(void)
-{
- size_t dram_size = 0x100000000;
-
- return dram_size;
-}
-
-void mt_set_emi(struct dramc_param *dparam)
-{
- init_dram(&dparam->dramc_datas);
-}
diff --git a/src/soc/mediatek/mt8192/include/soc/dramc_ac_timing.h b/src/soc/mediatek/mt8192/include/soc/dramc_ac_timing.h
deleted file mode 100644
index f00101a3a9..0000000000
--- a/src/soc/mediatek/mt8192/include/soc/dramc_ac_timing.h
+++ /dev/null
@@ -1,972 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#ifndef __SOC_MEDIATEK_MT8192_DRAMC_AC_TIMING_H__
-#define __SOC_MEDIATEK_MT8192_DRAMC_AC_TIMING_H__
-
-#include <stdint.h>
-#include <sys/types.h>
-#include <soc/dramc_common_mt8192.h>
-#include <soc/dramc_pi_api.h>
-
-/* Normal Mode and Byte Mode */
-#define AC_TIMING_NUMBER (DDRFREQ_MAX * 2)
-
-struct ac_timing {
- u8 cbt_mode, read_dbi;
- u8 div_mode;
- u16 freq_group;
- u16 read_lat, write_lat;
- u16 dqsinctl, datlat;
- u16 tras;
- u16 trp;
- u16 trpab;
- u16 trc;
- u16 trfc;
- u16 trfcpb;
- u16 txp;
- u16 trtp;
- u16 trcd;
- u16 twr;
- u16 twtr;
- u16 tpbr2pbr;
- u16 tpbr2act;
- u16 tr2mrw;
- u16 tw2mrw;
- u16 tmrr2mrw;
- u16 tmrw;
- u16 tmrd;
- u16 tmrwckel;
- u16 tpde;
- u16 tpdx;
- u16 tmrri;
- u16 trrd;
- u16 trrd_4266;
- u16 tfaw;
- u16 tfaw_4266;
- u16 trtw_odt_off;
- u16 trtw_odt_on;
- u16 txrefcnt;
- u16 tzqcs;
- u16 xrtw2w_new_mode;
- u16 xrtw2w_old_mode;
- u16 xrtw2r_odt_on;
- u16 xrtw2r_odt_off;
- u16 xrtr2w_odt_on;
- u16 xrtr2w_odt_off;
- u16 xrtr2r_new_mode;
- u16 xrtr2r_old_mode;
- u16 tr2mrr;
- u16 vrcgdis_prdcnt;
- u16 hwset_mr2_op;
- u16 hwset_mr13_op;
- u16 hwset_vrcg_op;
- u16 trcd_derate;
- u16 trc_derate;
- u16 tras_derate;
- u16 trpab_derate;
- u16 trp_derate;
- u16 trrd_derate;
- u16 trtpd;
- u16 twtpd;
- u16 tmrr2w_odt_off;
- u16 tmrr2w_odt_on;
- u16 ckeprd;
- u16 ckelckcnt;
- u16 zqlat2;
- u16 tras_05T;
- u16 trp_05T;
- u16 trpab_05T;
- u16 trc_05T;
- u16 trfc_05T;
- u16 trfcpb_05T;
- u16 txp_05T;
- u16 trtp_05T;
- u16 trcd_05T;
- u16 twr_05T;
- u16 twtr_05T;
- u16 tpbr2pbr_05T;
- u16 tpbr2act_05T;
- u16 tr2mrw_05T;
- u16 tw2mrw_05T;
- u16 tmrr2mrw_05T;
- u16 tmrw_05T;
- u16 tmrd_05T;
- u16 tmrwckel_05T;
- u16 tpde_05T;
- u16 tpdx_05T;
- u16 tmrri_05T;
- u16 trrd_05T;
- u16 trrd_4266_05T;
- u16 tfaw_05T;
- u16 tfaw_4266_05T;
- u16 trtw_odt_off_05T;
- u16 trtw_odt_on_05T;
- u16 trcd_derate_05T;
- u16 trc_derate_05T;
- u16 tras_derate_05T;
- u16 trpab_derate_05T;
- u16 trp_derate_05T;
- u16 trrd_derate_05T;
- u16 trtpd_05T;
- u16 twtpd_05T;
-};
-
-/* Normal Mode and Byte Mode for each frequency */
-static const struct ac_timing ac_timing_tbl[AC_TIMING_NUMBER] = {
- {
- .freq_group = DDRFREQ_2133, .cbt_mode = CBT_NORMAL_MODE, .read_dbi = 0,
- .read_lat = 36, .write_lat = 18, .div_mode = DIV8_MODE,
- .tras = 14, .tras_05T = 0,
- .trp = 8, .trp_05T = 1,
- .trpab = 10, .trpab_05T = 0,
- .trc = 23, .trc_05T = 0,
- .trfc = 137, .trfc_05T = 1,
- .trfcpb = 63, .trfcpb_05T = 0,
- .txp = 1, .txp_05T = 0,
- .trtp = 2, .trtp_05T = 1,
- .trcd = 10, .trcd_05T = 0,
- .twr = 15, .twr_05T = 0,
- .twtr = 10, .twtr_05T = 1,
- .tpbr2pbr = 41, .tpbr2pbr_05T = 0,
- .tpbr2act = 0, .tpbr2act_05T = 0,
- .tr2mrw = 17, .tr2mrw_05T = 0,
- .tw2mrw = 11, .tw2mrw_05T = 0,
- .tmrr2mrw = 14, .tmrr2mrw_05T = 0,
- .tmrw = 6, .tmrw_05T = 0,
- .tmrd = 8, .tmrd_05T = 0,
- .tmrwckel = 9, .tmrwckel_05T = 0,
- .tpde = 1, .tpde_05T = 1,
- .tpdx = 1, .tpdx_05T = 0,
- .tmrri = 14, .tmrri_05T = 0,
- .trrd = 4, .trrd_05T = 1,
- .trrd_4266 = 3, .trrd_4266_05T = 0,
- .tfaw = 13, .tfaw_05T = 1,
- .tfaw_4266 = 8, .tfaw_4266_05T = 0,
- .trtw_odt_off = 6, .trtw_odt_off_05T = 0,
- .trtw_odt_on = 8, .trtw_odt_on_05T = 0,
- .txrefcnt = 154,
- .tzqcs = 46,
- .xrtw2w_new_mode = 5,
- .xrtw2w_old_mode = 6,
- .xrtw2r_odt_on = 1,
- .xrtw2r_odt_off = 1,
- .xrtr2w_odt_on = 7,
- .xrtr2w_odt_off = 7,
- .xrtr2r_new_mode = 3,
- .xrtr2r_old_mode = 7,
- .tr2mrr = 4,
- .vrcgdis_prdcnt = 54,
- .hwset_mr2_op = 63,
- .hwset_mr13_op = 216,
- .hwset_vrcg_op = 208,
- .trcd_derate = 11, .trcd_derate_05T = 0,
- .trc_derate = 26, .trc_derate_05T = 0,
- .tras_derate = 15, .tras_derate_05T = 0,
- .trpab_derate = 11, .trpab_derate_05T = 0,
- .trp_derate = 9, .trp_derate_05T = 1,
- .trrd_derate = 5, .trrd_derate_05T = 1,
- .trtpd = 14, .trtpd_05T = 1,
- .twtpd = 18, .twtpd_05T = 0,
- .tmrr2w_odt_off = 10,
- .tmrr2w_odt_on = 12,
- .ckeprd = 3,
- .ckelckcnt = 3,
- .zqlat2 = 16,
- .dqsinctl = 7, .datlat = 18
- },
- {
- .freq_group = DDRFREQ_2133, .cbt_mode = CBT_BYTE_MODE1, .read_dbi = 0,
- .read_lat = 40, .write_lat = 18, .div_mode = DIV8_MODE,
- .tras = 14, .tras_05T = 0,
- .trp = 8, .trp_05T = 1,
- .trpab = 10, .trpab_05T = 0,
- .trc = 23, .trc_05T = 0,
- .trfc = 137, .trfc_05T = 1,
- .trfcpb = 63, .trfcpb_05T = 0,
- .txp = 1, .txp_05T = 0,
- .trtp = 2, .trtp_05T = 1,
- .trcd = 10, .trcd_05T = 0,
- .twr = 16, .twr_05T = 0,
- .twtr = 11, .twtr_05T = 1,
- .tpbr2pbr = 41, .tpbr2pbr_05T = 0,
- .tpbr2act = 0, .tpbr2act_05T = 0,
- .tr2mrw = 18, .tr2mrw_05T = 0,
- .tw2mrw = 11, .tw2mrw_05T = 0,
- .tmrr2mrw = 15, .tmrr2mrw_05T = 0,
- .tmrw = 6, .tmrw_05T = 0,
- .tmrd = 8, .tmrd_05T = 0,
- .tmrwckel = 9, .tmrwckel_05T = 0,
- .tpde = 1, .tpde_05T = 1,
- .tpdx = 1, .tpdx_05T = 0,
- .tmrri = 14, .tmrri_05T = 0,
- .trrd = 4, .trrd_05T = 1,
- .trrd_4266 = 3, .trrd_4266_05T = 0,
- .tfaw = 13, .tfaw_05T = 1,
- .tfaw_4266 = 8, .tfaw_4266_05T = 0,
- .trtw_odt_off = 7, .trtw_odt_off_05T = 0,
- .trtw_odt_on = 9, .trtw_odt_on_05T = 0,
- .txrefcnt = 154,
- .tzqcs = 46,
- .xrtw2w_new_mode = 5,
- .xrtw2w_old_mode = 6,
- .xrtw2r_odt_on = 1,
- .xrtw2r_odt_off = 1,
- .xrtr2w_odt_on = 8,
- .xrtr2w_odt_off = 8,
- .xrtr2r_new_mode = 3,
- .xrtr2r_old_mode = 7,
- .tr2mrr = 4,
- .vrcgdis_prdcnt = 54,
- .hwset_mr2_op = 63,
- .hwset_mr13_op = 216,
- .hwset_vrcg_op = 208,
- .trcd_derate = 11, .trcd_derate_05T = 0,
- .trc_derate = 26, .trc_derate_05T = 0,
- .tras_derate = 15, .tras_derate_05T = 0,
- .trpab_derate = 11, .trpab_derate_05T = 0,
- .trp_derate = 9, .trp_derate_05T = 1,
- .trrd_derate = 5, .trrd_derate_05T = 1,
- .trtpd = 15, .trtpd_05T = 1,
- .twtpd = 19, .twtpd_05T = 0,
- .tmrr2w_odt_off = 11,
- .tmrr2w_odt_on = 13,
- .ckeprd = 3,
- .ckelckcnt = 3,
- .zqlat2 = 16,
- .dqsinctl = 7, .datlat = 18
- },
- {
- .freq_group = DDRFREQ_1600, .cbt_mode = CBT_NORMAL_MODE, .read_dbi = 0,
- .read_lat = 28, .write_lat = 14, .div_mode = DIV8_MODE,
- .tras = 8, .tras_05T = 1,
- .trp = 6, .trp_05T = 0,
- .trpab = 7, .trpab_05T = 0,
- .trc = 15, .trc_05T = 0,
- .trfc = 100, .trfc_05T = 0,
- .trfcpb = 44, .trfcpb_05T = 0,
- .txp = 0, .txp_05T = 0,
- .trtp = 1, .trtp_05T = 1,
- .trcd = 7, .trcd_05T = 1,
- .twr = 12, .twr_05T = 1,
- .twtr = 7, .twtr_05T = 0,
- .tpbr2pbr = 29, .tpbr2pbr_05T = 0,
- .tpbr2act = 0, .tpbr2act_05T = 0,
- .tr2mrw = 13, .tr2mrw_05T = 1,
- .tw2mrw = 9, .tw2mrw_05T = 0,
- .tmrr2mrw = 11, .tmrr2mrw_05T = 1,
- .tmrw = 4, .tmrw_05T = 1,
- .tmrd = 6, .tmrd_05T = 1,
- .tmrwckel = 7, .tmrwckel_05T = 1,
- .tpde = 1, .tpde_05T = 1,
- .tpdx = 1, .tpdx_05T = 0,
- .tmrri = 10, .tmrri_05T = 1,
- .trrd = 3, .trrd_05T = 0,
- .trrd_4266 = 2, .trrd_4266_05T = 0,
- .tfaw = 8, .tfaw_05T = 0,
- .tfaw_4266 = 4, .tfaw_4266_05T = 0,
- .trtw_odt_off = 4, .trtw_odt_off_05T = 0,
- .trtw_odt_on = 6, .trtw_odt_on_05T = 0,
- .txrefcnt = 115,
- .tzqcs = 34,
- .xrtw2w_new_mode = 4,
- .xrtw2w_old_mode = 6,
- .xrtw2r_odt_on = 1,
- .xrtw2r_odt_off = 1,
- .xrtr2w_odt_on = 5,
- .xrtr2w_odt_off = 5,
- .xrtr2r_new_mode = 3,
- .xrtr2r_old_mode = 7,
- .tr2mrr = 4,
- .vrcgdis_prdcnt = 40,
- .hwset_mr2_op = 45,
- .hwset_mr13_op = 216,
- .hwset_vrcg_op = 208,
- .trcd_derate = 8, .trcd_derate_05T = 0,
- .trc_derate = 17, .trc_derate_05T = 0,
- .tras_derate = 9, .tras_derate_05T = 1,
- .trpab_derate = 8, .trpab_derate_05T = 0,
- .trp_derate = 6, .trp_derate_05T = 1,
- .trrd_derate = 4, .trrd_derate_05T = 0,
- .trtpd = 12, .trtpd_05T = 0,
- .twtpd = 14, .twtpd_05T = 1,
- .tmrr2w_odt_off = 8,
- .tmrr2w_odt_on = 10,
- .ckeprd = 2,
- .ckelckcnt = 2,
- .zqlat2 = 12,
- .dqsinctl = 5, .datlat = 15
- },
- {
- .freq_group = DDRFREQ_1600, .cbt_mode = CBT_BYTE_MODE1, .read_dbi = 0,
- .read_lat = 32, .write_lat = 14, .div_mode = DIV8_MODE,
- .tras = 8, .tras_05T = 1,
- .trp = 6, .trp_05T = 0,
- .trpab = 7, .trpab_05T = 0,
- .trc = 15, .trc_05T = 0,
- .trfc = 100, .trfc_05T = 0,
- .trfcpb = 44, .trfcpb_05T = 0,
- .txp = 0, .txp_05T = 0,
- .trtp = 1, .trtp_05T = 1,
- .trcd = 7, .trcd_05T = 1,
- .twr = 12, .twr_05T = 1,
- .twtr = 8, .twtr_05T = 0,
- .tpbr2pbr = 29, .tpbr2pbr_05T = 0,
- .tpbr2act = 0, .tpbr2act_05T = 0,
- .tr2mrw = 14, .tr2mrw_05T = 1,
- .tw2mrw = 9, .tw2mrw_05T = 0,
- .tmrr2mrw = 12, .tmrr2mrw_05T = 1,
- .tmrw = 4, .tmrw_05T = 1,
- .tmrd = 6, .tmrd_05T = 1,
- .tmrwckel = 7, .tmrwckel_05T = 1,
- .tpde = 1, .tpde_05T = 1,
- .tpdx = 1, .tpdx_05T = 0,
- .tmrri = 10, .tmrri_05T = 1,
- .trrd = 3, .trrd_05T = 0,
- .trrd_4266 = 2, .trrd_4266_05T = 0,
- .tfaw = 8, .tfaw_05T = 0,
- .tfaw_4266 = 4, .tfaw_4266_05T = 0,
- .trtw_odt_off = 5, .trtw_odt_off_05T = 0,
- .trtw_odt_on = 7, .trtw_odt_on_05T = 0,
- .txrefcnt = 115,
- .tzqcs = 34,
- .xrtw2w_new_mode = 4,
- .xrtw2w_old_mode = 6,
- .xrtw2r_odt_on = 1,
- .xrtw2r_odt_off = 1,
- .xrtr2w_odt_on = 6,
- .xrtr2w_odt_off = 6,
- .xrtr2r_new_mode = 3,
- .xrtr2r_old_mode = 7,
- .tr2mrr = 4,
- .vrcgdis_prdcnt = 40,
- .hwset_mr2_op = 45,
- .hwset_mr13_op = 216,
- .hwset_vrcg_op = 208,
- .trcd_derate = 8, .trcd_derate_05T = 0,
- .trc_derate = 17, .trc_derate_05T = 0,
- .tras_derate = 9, .tras_derate_05T = 1,
- .trpab_derate = 8, .trpab_derate_05T = 0,
- .trp_derate = 6, .trp_derate_05T = 1,
- .trrd_derate = 4, .trrd_derate_05T = 0,
- .trtpd = 13, .trtpd_05T = 0,
- .twtpd = 15, .twtpd_05T = 1,
- .tmrr2w_odt_off = 9,
- .tmrr2w_odt_on = 11,
- .ckeprd = 2,
- .ckelckcnt = 2,
- .zqlat2 = 12,
- .dqsinctl = 5, .datlat = 15
- },
- {
- .freq_group = DDRFREQ_1200, .cbt_mode = CBT_NORMAL_MODE, .read_dbi = 0,
- .read_lat = 24, .write_lat = 12, .div_mode = DIV8_MODE,
- .tras = 4, .tras_05T = 1,
- .trp = 4, .trp_05T = 0,
- .trpab = 5, .trpab_05T = 0,
- .trc = 9, .trc_05T = 1,
- .trfc = 72, .trfc_05T = 1,
- .trfcpb = 30, .trfcpb_05T = 1,
- .txp = 0, .txp_05T = 1,
- .trtp = 1, .trtp_05T = 0,
- .trcd = 5, .trcd_05T = 1,
- .twr = 9, .twr_05T = 1,
- .twtr = 6, .twtr_05T = 1,
- .tpbr2pbr = 20, .tpbr2pbr_05T = 1,
- .tpbr2act = 0, .tpbr2act_05T = 0,
- .tr2mrw = 12, .tr2mrw_05T = 0,
- .tw2mrw = 8, .tw2mrw_05T = 0,
- .tmrr2mrw = 10, .tmrr2mrw_05T = 0,
- .tmrw = 4, .tmrw_05T = 0,
- .tmrd = 5, .tmrd_05T = 0,
- .tmrwckel = 6, .tmrwckel_05T = 0,
- .tpde = 1, .tpde_05T = 1,
- .tpdx = 1, .tpdx_05T = 0,
- .tmrri = 8, .tmrri_05T = 0,
- .trrd = 2, .trrd_05T = 1,
- .trrd_4266 = 1, .trrd_4266_05T = 1,
- .tfaw = 4, .tfaw_05T = 1,
- .tfaw_4266 = 1, .tfaw_4266_05T = 1,
- .trtw_odt_off = 3, .trtw_odt_off_05T = 0,
- .trtw_odt_on = 6, .trtw_odt_on_05T = 0,
- .txrefcnt = 87,
- .tzqcs = 26,
- .xrtw2w_new_mode = 4,
- .xrtw2w_old_mode = 6,
- .xrtw2r_odt_on = 2,
- .xrtw2r_odt_off = 2,
- .xrtr2w_odt_on = 5,
- .xrtr2w_odt_off = 5,
- .xrtr2r_new_mode = 3,
- .xrtr2r_old_mode = 6,
- .tr2mrr = 4,
- .vrcgdis_prdcnt = 31,
- .hwset_mr2_op = 36,
- .hwset_mr13_op = 24,
- .hwset_vrcg_op = 16,
- .trcd_derate = 6, .trcd_derate_05T = 0,
- .trc_derate = 10, .trc_derate_05T = 1,
- .tras_derate = 5, .tras_derate_05T = 0,
- .trpab_derate = 5, .trpab_derate_05T = 1,
- .trp_derate = 4, .trp_derate_05T = 1,
- .trrd_derate = 3, .trrd_derate_05T = 0,
- .trtpd = 10, .trtpd_05T = 1,
- .twtpd = 12, .twtpd_05T = 0,
- .tmrr2w_odt_off = 6,
- .tmrr2w_odt_on = 8,
- .ckeprd = 2,
- .ckelckcnt = 2,
- .zqlat2 = 10,
- .dqsinctl = 4, .datlat = 13
- },
- {
- .freq_group = DDRFREQ_1200, .cbt_mode = CBT_BYTE_MODE1, .read_dbi = 0,
- .read_lat = 26, .write_lat = 12, .div_mode = DIV8_MODE,
- .tras = 4, .tras_05T = 1,
- .trp = 4, .trp_05T = 0,
- .trpab = 5, .trpab_05T = 0,
- .trc = 9, .trc_05T = 1,
- .trfc = 72, .trfc_05T = 1,
- .trfcpb = 30, .trfcpb_05T = 1,
- .txp = 0, .txp_05T = 1,
- .trtp = 1, .trtp_05T = 0,
- .trcd = 5, .trcd_05T = 1,
- .twr = 10, .twr_05T = 0,
- .twtr = 6, .twtr_05T = 0,
- .tpbr2pbr = 20, .tpbr2pbr_05T = 1,
- .tpbr2act = 0, .tpbr2act_05T = 0,
- .tr2mrw = 12, .tr2mrw_05T = 1,
- .tw2mrw = 8, .tw2mrw_05T = 0,
- .tmrr2mrw = 10, .tmrr2mrw_05T = 1,
- .tmrw = 4, .tmrw_05T = 0,
- .tmrd = 5, .tmrd_05T = 0,
- .tmrwckel = 6, .tmrwckel_05T = 0,
- .tpde = 1, .tpde_05T = 1,
- .tpdx = 1, .tpdx_05T = 0,
- .tmrri = 8, .tmrri_05T = 0,
- .trrd = 2, .trrd_05T = 1,
- .trrd_4266 = 1, .trrd_4266_05T = 1,
- .tfaw = 4, .tfaw_05T = 1,
- .tfaw_4266 = 1, .tfaw_4266_05T = 1,
- .trtw_odt_off = 4, .trtw_odt_off_05T = 0,
- .trtw_odt_on = 6, .trtw_odt_on_05T = 0,
- .txrefcnt = 87,
- .tzqcs = 26,
- .xrtw2w_new_mode = 4,
- .xrtw2w_old_mode = 6,
- .xrtw2r_odt_on = 1,
- .xrtw2r_odt_off = 1,
- .xrtr2w_odt_on = 5,
- .xrtr2w_odt_off = 5,
- .xrtr2r_new_mode = 3,
- .xrtr2r_old_mode = 6,
- .tr2mrr = 4,
- .vrcgdis_prdcnt = 31,
- .hwset_mr2_op = 36,
- .hwset_mr13_op = 24,
- .hwset_vrcg_op = 16,
- .trcd_derate = 6, .trcd_derate_05T = 0,
- .trc_derate = 10, .trc_derate_05T = 1,
- .tras_derate = 5, .tras_derate_05T = 0,
- .trpab_derate = 5, .trpab_derate_05T = 1,
- .trp_derate = 4, .trp_derate_05T = 1,
- .trrd_derate = 3, .trrd_derate_05T = 0,
- .trtpd = 11, .trtpd_05T = 0,
- .twtpd = 13, .twtpd_05T = 0,
- .tmrr2w_odt_off = 7,
- .tmrr2w_odt_on = 9,
- .ckeprd = 2,
- .ckelckcnt = 2,
- .zqlat2 = 10,
- .dqsinctl = 4, .datlat = 13
- },
- {
- .freq_group = DDRFREQ_933, .cbt_mode = CBT_NORMAL_MODE, .read_dbi = 0,
- .read_lat = 20, .write_lat = 10, .div_mode = DIV8_MODE,
- .tras = 1, .tras_05T = 1,
- .trp = 3, .trp_05T = 0,
- .trpab = 3, .trpab_05T = 1,
- .trc = 5, .trc_05T = 0,
- .trfc = 53, .trfc_05T = 1,
- .trfcpb = 21, .trfcpb_05T = 0,
- .txp = 0, .txp_05T = 0,
- .trtp = 0, .trtp_05T = 1,
- .trcd = 4, .trcd_05T = 1,
- .twr = 8, .twr_05T = 1,
- .twtr = 5, .twtr_05T = 1,
- .tpbr2pbr = 14, .tpbr2pbr_05T = 0,
- .tpbr2act = 0, .tpbr2act_05T = 0,
- .tr2mrw = 10, .tr2mrw_05T = 0,
- .tw2mrw = 7, .tw2mrw_05T = 0,
- .tmrr2mrw = 9, .tmrr2mrw_05T = 0,
- .tmrw = 3, .tmrw_05T = 0,
- .tmrd = 4, .tmrd_05T = 0,
- .tmrwckel = 5, .tmrwckel_05T = 0,
- .tpde = 1, .tpde_05T = 1,
- .tpdx = 1, .tpdx_05T = 0,
- .tmrri = 6, .tmrri_05T = 0,
- .trrd = 1, .trrd_05T = 1,
- .trrd_4266 = 1, .trrd_4266_05T = 0,
- .tfaw = 1, .tfaw_05T = 1,
- .tfaw_4266 = 0, .tfaw_4266_05T = 0,
- .trtw_odt_off = 3, .trtw_odt_off_05T = 0,
- .trtw_odt_on = 5, .trtw_odt_on_05T = 0,
- .txrefcnt = 68,
- .tzqcs = 19,
- .xrtw2w_new_mode = 4,
- .xrtw2w_old_mode = 6,
- .xrtw2r_odt_on = 2,
- .xrtw2r_odt_off = 2,
- .xrtr2w_odt_on = 3,
- .xrtr2w_odt_off = 3,
- .xrtr2r_new_mode = 3,
- .xrtr2r_old_mode = 6,
- .tr2mrr = 4,
- .vrcgdis_prdcnt = 24,
- .hwset_mr2_op = 27,
- .hwset_mr13_op = 24,
- .hwset_vrcg_op = 16,
- .trcd_derate = 5, .trcd_derate_05T = 0,
- .trc_derate = 6, .trc_derate_05T = 1,
- .tras_derate = 2, .tras_derate_05T = 0,
- .trpab_derate = 4, .trpab_derate_05T = 0,
- .trp_derate = 3, .trp_derate_05T = 1,
- .trrd_derate = 2, .trrd_derate_05T = 0,
- .trtpd = 9, .trtpd_05T = 1,
- .twtpd = 10, .twtpd_05T = 1,
- .tmrr2w_odt_off = 5,
- .tmrr2w_odt_on = 7,
- .ckeprd = 1,
- .ckelckcnt = 2,
- .zqlat2 = 7,
- .dqsinctl = 3, .datlat = 13
- },
- {
- .freq_group = DDRFREQ_933, .cbt_mode = CBT_BYTE_MODE1, .read_dbi = 0,
- .read_lat = 22, .write_lat = 10, .div_mode = DIV8_MODE,
- .tras = 1, .tras_05T = 1,
- .trp = 3, .trp_05T = 0,
- .trpab = 3, .trpab_05T = 1,
- .trc = 5, .trc_05T = 0,
- .trfc = 53, .trfc_05T = 1,
- .trfcpb = 21, .trfcpb_05T = 0,
- .txp = 0, .txp_05T = 0,
- .trtp = 0, .trtp_05T = 1,
- .trcd = 4, .trcd_05T = 1,
- .twr = 8, .twr_05T = 0,
- .twtr = 5, .twtr_05T = 0,
- .tpbr2pbr = 14, .tpbr2pbr_05T = 0,
- .tpbr2act = 0, .tpbr2act_05T = 0,
- .tr2mrw = 10, .tr2mrw_05T = 1,
- .tw2mrw = 7, .tw2mrw_05T = 0,
- .tmrr2mrw = 9, .tmrr2mrw_05T = 1,
- .tmrw = 3, .tmrw_05T = 0,
- .tmrd = 4, .tmrd_05T = 0,
- .tmrwckel = 5, .tmrwckel_05T = 0,
- .tpde = 1, .tpde_05T = 1,
- .tpdx = 1, .tpdx_05T = 0,
- .tmrri = 6, .tmrri_05T = 0,
- .trrd = 1, .trrd_05T = 1,
- .trrd_4266 = 1, .trrd_4266_05T = 0,
- .tfaw = 1, .tfaw_05T = 1,
- .tfaw_4266 = 0, .tfaw_4266_05T = 0,
- .trtw_odt_off = 3, .trtw_odt_off_05T = 0,
- .trtw_odt_on = 5, .trtw_odt_on_05T = 0,
- .txrefcnt = 68,
- .tzqcs = 19,
- .xrtw2w_new_mode = 4,
- .xrtw2w_old_mode = 6,
- .xrtw2r_odt_on = 2,
- .xrtw2r_odt_off = 1,
- .xrtr2w_odt_on = 4,
- .xrtr2w_odt_off = 4,
- .xrtr2r_new_mode = 3,
- .xrtr2r_old_mode = 6,
- .tr2mrr = 4,
- .vrcgdis_prdcnt = 24,
- .hwset_mr2_op = 27,
- .hwset_mr13_op = 24,
- .hwset_vrcg_op = 16,
- .trcd_derate = 5, .trcd_derate_05T = 0,
- .trc_derate = 6, .trc_derate_05T = 1,
- .tras_derate = 2, .tras_derate_05T = 0,
- .trpab_derate = 4, .trpab_derate_05T = 0,
- .trp_derate = 3, .trp_derate_05T = 1,
- .trrd_derate = 2, .trrd_derate_05T = 0,
- .trtpd = 10, .trtpd_05T = 0,
- .twtpd = 11, .twtpd_05T = 0,
- .tmrr2w_odt_off = 6,
- .tmrr2w_odt_on = 8,
- .ckeprd = 1,
- .ckelckcnt = 2,
- .zqlat2 = 7,
- .dqsinctl = 3, .datlat = 13
- },
- {
- .freq_group = DDRFREQ_800, .cbt_mode = CBT_NORMAL_MODE, .read_dbi = 0,
- .read_lat = 14, .write_lat = 8, .div_mode = DIV8_MODE,
- .tras = 0, .tras_05T = 0,
- .trp = 2, .trp_05T = 1,
- .trpab = 3, .trpab_05T = 0,
- .trc = 3, .trc_05T = 0,
- .trfc = 44, .trfc_05T = 0,
- .trfcpb = 16, .trfcpb_05T = 0,
- .txp = 0, .txp_05T = 0,
- .trtp = 0, .trtp_05T = 1,
- .trcd = 4, .trcd_05T = 0,
- .twr = 7, .twr_05T = 1,
- .twtr = 4, .twtr_05T = 1,
- .tpbr2pbr = 11, .tpbr2pbr_05T = 0,
- .tpbr2act = 0, .tpbr2act_05T = 0,
- .tr2mrw = 8, .tr2mrw_05T = 1,
- .tw2mrw = 6, .tw2mrw_05T = 1,
- .tmrr2mrw = 7, .tmrr2mrw_05T = 0,
- .tmrw = 3, .tmrw_05T = 0,
- .tmrd = 3, .tmrd_05T = 1,
- .tmrwckel = 4, .tmrwckel_05T = 1,
- .tpde = 1, .tpde_05T = 1,
- .tpdx = 1, .tpdx_05T = 0,
- .tmrri = 5, .tmrri_05T = 1,
- .trrd = 1, .trrd_05T = 0,
- .trrd_4266 = 0, .trrd_4266_05T = 1,
- .tfaw = 0, .tfaw_05T = 0,
- .tfaw_4266 = 0, .tfaw_4266_05T = 0,
- .trtw_odt_off = 1, .trtw_odt_off_05T = 0,
- .trtw_odt_on = 4, .trtw_odt_on_05T = 0,
- .txrefcnt = 58,
- .tzqcs = 16,
- .xrtw2w_new_mode = 4,
- .xrtw2w_old_mode = 6,
- .xrtw2r_odt_on = 3,
- .xrtw2r_odt_off = 3,
- .xrtr2w_odt_on = 3,
- .xrtr2w_odt_off = 3,
- .xrtr2r_new_mode = 3,
- .xrtr2r_old_mode = 6,
- .tr2mrr = 4,
- .vrcgdis_prdcnt = 20,
- .hwset_mr2_op = 18,
- .hwset_mr13_op = 24,
- .hwset_vrcg_op = 16,
- .trcd_derate = 4, .trcd_derate_05T = 0,
- .trc_derate = 4, .trc_derate_05T = 0,
- .tras_derate = 0, .tras_derate_05T = 1,
- .trpab_derate = 3, .trpab_derate_05T = 1,
- .trp_derate = 2, .trp_derate_05T = 1,
- .trrd_derate = 1, .trrd_derate_05T = 1,
- .trtpd = 7, .trtpd_05T = 1,
- .twtpd = 9, .twtpd_05T = 1,
- .tmrr2w_odt_off = 3,
- .tmrr2w_odt_on = 5,
- .ckeprd = 1,
- .ckelckcnt = 2,
- .zqlat2 = 6,
- .dqsinctl = 2, .datlat = 10
- },
- {
- .freq_group = DDRFREQ_800, .cbt_mode = CBT_BYTE_MODE1, .read_dbi = 0,
- .read_lat = 16, .write_lat = 8, .div_mode = DIV8_MODE,
- .tras = 0, .tras_05T = 0,
- .trp = 2, .trp_05T = 1,
- .trpab = 3, .trpab_05T = 0,
- .trc = 3, .trc_05T = 0,
- .trfc = 44, .trfc_05T = 0,
- .trfcpb = 16, .trfcpb_05T = 0,
- .txp = 0, .txp_05T = 0,
- .trtp = 0, .trtp_05T = 1,
- .trcd = 4, .trcd_05T = 0,
- .twr = 7, .twr_05T = 0,
- .twtr = 4, .twtr_05T = 0,
- .tpbr2pbr = 11, .tpbr2pbr_05T = 0,
- .tpbr2act = 0, .tpbr2act_05T = 0,
- .tr2mrw = 9, .tr2mrw_05T = 0,
- .tw2mrw = 6, .tw2mrw_05T = 1,
- .tmrr2mrw = 7, .tmrr2mrw_05T = 1,
- .tmrw = 3, .tmrw_05T = 0,
- .tmrd = 3, .tmrd_05T = 1,
- .tmrwckel = 4, .tmrwckel_05T = 1,
- .tpde = 1, .tpde_05T = 1,
- .tpdx = 1, .tpdx_05T = 0,
- .tmrri = 5, .tmrri_05T = 1,
- .trrd = 1, .trrd_05T = 0,
- .trrd_4266 = 0, .trrd_4266_05T = 1,
- .tfaw = 0, .tfaw_05T = 0,
- .tfaw_4266 = 0, .tfaw_4266_05T = 0,
- .trtw_odt_off = 2, .trtw_odt_off_05T = 0,
- .trtw_odt_on = 4, .trtw_odt_on_05T = 0,
- .txrefcnt = 58,
- .tzqcs = 16,
- .xrtw2w_new_mode = 4,
- .xrtw2w_old_mode = 6,
- .xrtw2r_odt_on = 3,
- .xrtw2r_odt_off = 2,
- .xrtr2w_odt_on = 3,
- .xrtr2w_odt_off = 3,
- .xrtr2r_new_mode = 3,
- .xrtr2r_old_mode = 6,
- .tr2mrr = 4,
- .vrcgdis_prdcnt = 20,
- .hwset_mr2_op = 18,
- .hwset_mr13_op = 24,
- .hwset_vrcg_op = 16,
- .trcd_derate = 4, .trcd_derate_05T = 0,
- .trc_derate = 4, .trc_derate_05T = 0,
- .tras_derate = 0, .tras_derate_05T = 1,
- .trpab_derate = 3, .trpab_derate_05T = 1,
- .trp_derate = 2, .trp_derate_05T = 1,
- .trrd_derate = 1, .trrd_derate_05T = 1,
- .trtpd = 8, .trtpd_05T = 0,
- .twtpd = 9, .twtpd_05T = 1,
- .tmrr2w_odt_off = 4,
- .tmrr2w_odt_on = 6,
- .ckeprd = 1,
- .ckelckcnt = 2,
- .zqlat2 = 6,
- .dqsinctl = 2, .datlat = 10
- },
- {
- .freq_group = DDRFREQ_600, .cbt_mode = CBT_NORMAL_MODE, .read_dbi = 0,
- .read_lat = 14, .write_lat = 8, .div_mode = DIV8_MODE,
- .tras = 0, .tras_05T = 0,
- .trp = 1, .trp_05T = 1,
- .trpab = 2, .trpab_05T = 0,
- .trc = 0, .trc_05T = 1,
- .trfc = 30, .trfc_05T = 1,
- .trfcpb = 9, .trfcpb_05T = 1,
- .txp = 0, .txp_05T = 0,
- .trtp = 0, .trtp_05T = 1,
- .trcd = 3, .trcd_05T = 0,
- .twr = 6, .twr_05T = 1,
- .twtr = 4, .twtr_05T = 1,
- .tpbr2pbr = 7, .tpbr2pbr_05T = 0,
- .tpbr2act = 0, .tpbr2act_05T = 0,
- .tr2mrw = 8, .tr2mrw_05T = 1,
- .tw2mrw = 6, .tw2mrw_05T = 1,
- .tmrr2mrw = 7, .tmrr2mrw_05T = 0,
- .tmrw = 3, .tmrw_05T = 0,
- .tmrd = 3, .tmrd_05T = 0,
- .tmrwckel = 4, .tmrwckel_05T = 0,
- .tpde = 1, .tpde_05T = 1,
- .tpdx = 1, .tpdx_05T = 0,
- .tmrri = 4, .tmrri_05T = 0,
- .trrd = 1, .trrd_05T = 0,
- .trrd_4266 = 0, .trrd_4266_05T = 1,
- .tfaw = 0, .tfaw_05T = 0,
- .tfaw_4266 = 0, .tfaw_4266_05T = 0,
- .trtw_odt_off = 1, .trtw_odt_off_05T = 0,
- .trtw_odt_on = 4, .trtw_odt_on_05T = 0,
- .txrefcnt = 44,
- .tzqcs = 12,
- .xrtw2w_new_mode = 4,
- .xrtw2w_old_mode = 6,
- .xrtw2r_odt_on = 3,
- .xrtw2r_odt_off = 3,
- .xrtr2w_odt_on = 3,
- .xrtr2w_odt_off = 3,
- .xrtr2r_new_mode = 3,
- .xrtr2r_old_mode = 6,
- .tr2mrr = 4,
- .vrcgdis_prdcnt = 16,
- .hwset_mr2_op = 18,
- .hwset_mr13_op = 24,
- .hwset_vrcg_op = 16,
- .trcd_derate = 3, .trcd_derate_05T = 0,
- .trc_derate = 1, .trc_derate_05T = 0,
- .tras_derate = 0, .tras_derate_05T = 0,
- .trpab_derate = 2, .trpab_derate_05T = 0,
- .trp_derate = 1, .trp_derate_05T = 1,
- .trrd_derate = 1, .trrd_derate_05T = 0,
- .trtpd = 7, .trtpd_05T = 1,
- .twtpd = 8, .twtpd_05T = 1,
- .tmrr2w_odt_off = 3,
- .tmrr2w_odt_on = 5,
- .ckeprd = 1,
- .ckelckcnt = 2,
- .zqlat2 = 5,
- .dqsinctl = 2, .datlat = 9
- },
- {
- .freq_group = DDRFREQ_600, .cbt_mode = CBT_BYTE_MODE1, .read_dbi = 0,
- .read_lat = 16, .write_lat = 8, .div_mode = DIV8_MODE,
- .tras = 0, .tras_05T = 0,
- .trp = 1, .trp_05T = 1,
- .trpab = 2, .trpab_05T = 0,
- .trc = 0, .trc_05T = 1,
- .trfc = 30, .trfc_05T = 1,
- .trfcpb = 9, .trfcpb_05T = 1,
- .txp = 0, .txp_05T = 0,
- .trtp = 0, .trtp_05T = 1,
- .trcd = 3, .trcd_05T = 0,
- .twr = 6, .twr_05T = 0,
- .twtr = 4, .twtr_05T = 1,
- .tpbr2pbr = 7, .tpbr2pbr_05T = 0,
- .tpbr2act = 0, .tpbr2act_05T = 0,
- .tr2mrw = 9, .tr2mrw_05T = 0,
- .tw2mrw = 6, .tw2mrw_05T = 1,
- .tmrr2mrw = 7, .tmrr2mrw_05T = 1,
- .tmrw = 3, .tmrw_05T = 0,
- .tmrd = 3, .tmrd_05T = 0,
- .tmrwckel = 4, .tmrwckel_05T = 0,
- .tpde = 1, .tpde_05T = 1,
- .tpdx = 1, .tpdx_05T = 0,
- .tmrri = 4, .tmrri_05T = 0,
- .trrd = 1, .trrd_05T = 0,
- .trrd_4266 = 0, .trrd_4266_05T = 1,
- .tfaw = 0, .tfaw_05T = 0,
- .tfaw_4266 = 0, .tfaw_4266_05T = 0,
- .trtw_odt_off = 2, .trtw_odt_off_05T = 0,
- .trtw_odt_on = 5, .trtw_odt_on_05T = 0,
- .txrefcnt = 44,
- .tzqcs = 12,
- .xrtw2w_new_mode = 4,
- .xrtw2w_old_mode = 6,
- .xrtw2r_odt_on = 3,
- .xrtw2r_odt_off = 2,
- .xrtr2w_odt_on = 3,
- .xrtr2w_odt_off = 3,
- .xrtr2r_new_mode = 3,
- .xrtr2r_old_mode = 6,
- .tr2mrr = 4,
- .vrcgdis_prdcnt = 16,
- .hwset_mr2_op = 18,
- .hwset_mr13_op = 24,
- .hwset_vrcg_op = 16,
- .trcd_derate = 3, .trcd_derate_05T = 0,
- .trc_derate = 1, .trc_derate_05T = 0,
- .tras_derate = 0, .tras_derate_05T = 0,
- .trpab_derate = 2, .trpab_derate_05T = 0,
- .trp_derate = 1, .trp_derate_05T = 1,
- .trrd_derate = 1, .trrd_derate_05T = 0,
- .trtpd = 8, .trtpd_05T = 0,
- .twtpd = 9, .twtpd_05T = 0,
- .tmrr2w_odt_off = 4,
- .tmrr2w_odt_on = 6,
- .ckeprd = 1,
- .ckelckcnt = 2,
- .zqlat2 = 5,
- .dqsinctl = 2, .datlat = 9
- },
- {
- .freq_group = DDRFREQ_400, .cbt_mode = CBT_NORMAL_MODE, .read_dbi = 0,
- .read_lat = 14, .write_lat = 8, .div_mode = DIV4_MODE,
- .tras = 1, .tras_05T = 0,
- .trp = 2, .trp_05T = 0,
- .trpab = 3, .trpab_05T = 0,
- .trc = 3, .trc_05T = 0,
- .trfc = 44, .trfc_05T = 0,
- .trfcpb = 16, .trfcpb_05T = 0,
- .txp = 0, .txp_05T = 0,
- .trtp = 3, .trtp_05T = 0,
- .trcd = 4, .trcd_05T = 0,
- .twr = 12, .twr_05T = 0,
- .twtr = 10, .twtr_05T = 0,
- .tpbr2pbr = 11, .tpbr2pbr_05T = 0,
- .tpbr2act = 0, .tpbr2act_05T = 0,
- .tr2mrw = 16, .tr2mrw_05T = 0,
- .tw2mrw = 13, .tw2mrw_05T = 0,
- .tmrr2mrw = 14, .tmrr2mrw_05T = 0,
- .tmrw = 6, .tmrw_05T = 0,
- .tmrd = 6, .tmrd_05T = 0,
- .tmrwckel = 8, .tmrwckel_05T = 0,
- .tpde = 3, .tpde_05T = 0,
- .tpdx = 3, .tpdx_05T = 0,
- .tmrri = 7, .tmrri_05T = 0,
- .trrd = 1, .trrd_05T = 0,
- .trrd_4266 = 1, .trrd_4266_05T = 0,
- .tfaw = 0, .tfaw_05T = 0,
- .tfaw_4266 = 0, .tfaw_4266_05T = 0,
- .trtw_odt_off = 6, .trtw_odt_off_05T = 0,
- .trtw_odt_on = 11, .trtw_odt_on_05T = 0,
- .txrefcnt = 58,
- .tzqcs = 16,
- .xrtw2w_new_mode = 9,
- .xrtw2w_old_mode = 10,
- .xrtw2r_odt_on = 7,
- .xrtw2r_odt_off = 5,
- .xrtr2w_odt_on = 9,
- .xrtr2w_odt_off = 9,
- .xrtr2r_new_mode = 6,
- .xrtr2r_old_mode = 8,
- .tr2mrr = 8,
- .vrcgdis_prdcnt = 20,
- .hwset_mr2_op = 18,
- .hwset_mr13_op = 24,
- .hwset_vrcg_op = 16,
- .trcd_derate = 4, .trcd_derate_05T = 0,
- .trc_derate = 4, .trc_derate_05T = 0,
- .tras_derate = 1, .tras_derate_05T = 0,
- .trpab_derate = 3, .trpab_derate_05T = 0,
- .trp_derate = 2, .trp_derate_05T = 0,
- .trrd_derate = 2, .trrd_derate_05T = 0,
- .trtpd = 15, .trtpd_05T = 0,
- .twtpd = 15, .twtpd_05T = 0,
- .tmrr2w_odt_off = 10,
- .tmrr2w_odt_on = 12,
- .ckeprd = 2,
- .ckelckcnt = 3,
- .zqlat2 = 6,
- .dqsinctl = 5, .datlat = 15
- },
- {
- .freq_group = DDRFREQ_400, .cbt_mode = CBT_BYTE_MODE1, .read_dbi = 0,
- .read_lat = 16, .write_lat = 8, .div_mode = DIV4_MODE,
- .tras = 1, .tras_05T = 0,
- .trp = 2, .trp_05T = 0,
- .trpab = 3, .trpab_05T = 0,
- .trc = 3, .trc_05T = 0,
- .trfc = 44, .trfc_05T = 0,
- .trfcpb = 16, .trfcpb_05T = 0,
- .txp = 0, .txp_05T = 0,
- .trtp = 3, .trtp_05T = 0,
- .trcd = 4, .trcd_05T = 0,
- .twr = 12, .twr_05T = 0,
- .twtr = 10, .twtr_05T = 0,
- .tpbr2pbr = 11, .tpbr2pbr_05T = 0,
- .tpbr2act = 0, .tpbr2act_05T = 0,
- .tr2mrw = 17, .tr2mrw_05T = 0,
- .tw2mrw = 13, .tw2mrw_05T = 0,
- .tmrr2mrw = 15, .tmrr2mrw_05T = 0,
- .tmrw = 6, .tmrw_05T = 0,
- .tmrd = 6, .tmrd_05T = 0,
- .tmrwckel = 8, .tmrwckel_05T = 0,
- .tpde = 3, .tpde_05T = 0,
- .tpdx = 3, .tpdx_05T = 0,
- .tmrri = 7, .tmrri_05T = 0,
- .trrd = 1, .trrd_05T = 0,
- .trrd_4266 = 1, .trrd_4266_05T = 0,
- .tfaw = 0, .tfaw_05T = 0,
- .tfaw_4266 = 0, .tfaw_4266_05T = 0,
- .trtw_odt_off = 7, .trtw_odt_off_05T = 0,
- .trtw_odt_on = 12, .trtw_odt_on_05T = 0,
- .txrefcnt = 58,
- .tzqcs = 16,
- .xrtw2w_new_mode = 9,
- .xrtw2w_old_mode = 10,
- .xrtw2r_odt_on = 6,
- .xrtw2r_odt_off = 4,
- .xrtr2w_odt_on = 10,
- .xrtr2w_odt_off = 10,
- .xrtr2r_new_mode = 6,
- .xrtr2r_old_mode = 9,
- .tr2mrr = 8,
- .vrcgdis_prdcnt = 20,
- .hwset_mr2_op = 18,
- .hwset_mr13_op = 24,
- .hwset_vrcg_op = 16,
- .trcd_derate = 4, .trcd_derate_05T = 0,
- .trc_derate = 4, .trc_derate_05T = 0,
- .tras_derate = 1, .tras_derate_05T = 0,
- .trpab_derate = 3, .trpab_derate_05T = 0,
- .trp_derate = 2, .trp_derate_05T = 0,
- .trrd_derate = 2, .trrd_derate_05T = 0,
- .trtpd = 16, .trtpd_05T = 0,
- .twtpd = 15, .twtpd_05T = 0,
- .tmrr2w_odt_off = 11,
- .tmrr2w_odt_on = 13,
- .ckeprd = 2,
- .ckelckcnt = 3,
- .zqlat2 = 6,
- .dqsinctl = 5, .datlat = 15
- },
-};
-
-#endif /* __SOC_MEDIATEK_MT8192_DRAMC_AC_TIMING_H__ */
diff --git a/src/soc/mediatek/mt8192/include/soc/dramc_common_mt8192.h b/src/soc/mediatek/mt8192/include/soc/dramc_common_mt8192.h
deleted file mode 100644
index b5c7889803..0000000000
--- a/src/soc/mediatek/mt8192/include/soc/dramc_common_mt8192.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#ifndef __SOC_MEDIATEK_MT8192_DRAMC_COMMON_MT8192_H__
-#define __SOC_MEDIATEK_MT8192_DRAMC_COMMON_MT8192_H__
-
-enum {
- FSP_0 = 0,
- FSP_1,
- FSP_MAX,
-};
-
-typedef enum {
- DRAM_DFS_SHU0 = 0,
- DRAM_DFS_SHU1,
- DRAM_DFS_SHU2,
- DRAM_DFS_SHU3,
- DRAM_DFS_SHU4,
- DRAM_DFS_SHU5,
- DRAM_DFS_SHU6,
- DRAM_DFS_SHU_MAX
-} dram_dfs_shu;
-
-typedef enum {
- ODT_OFF = 0,
- ODT_ON,
- ODT_MAX
-} dram_odt_state;
-
-typedef enum {
- DBI_OFF = 0,
- DBI_ON
-} dbi_mode;
-
-enum {
- CKE_FIXOFF = 0,
- CKE_FIXON,
- CKE_DYNAMIC
-};
-
-enum {
- CA_NUM_LP4 = 6,
- DQ_DATA_WIDTH = 16,
- DQS_BIT_NUMBER = 8,
- DQS_NUMBER = (DQ_DATA_WIDTH / DQS_BIT_NUMBER),
-};
-#define BYTE_NUM DQS_NUMBER
-
-/* DONOT change the sequence of pinmux */
-typedef enum {
- PINMUX_DSC = 0,
- PINMUX_LPBK,
- PINMUX_EMCP,
- PINMUX_MAX
-} dram_pinmux_type;
-
-enum {
- CBT_R0_R1_NORMAL = 0,
- CBT_R0_R1_BYTE,
- CBT_R0_NORMAL_R1_BYTE,
- CBT_R0_BYTE_R1_NORMAL
-};
-
-#endif /* __SOC_MEDIATEK_MT8192_DRAMC_COMMON_MT8192_H__ */
diff --git a/src/soc/mediatek/mt8192/include/soc/dramc_pi_api.h b/src/soc/mediatek/mt8192/include/soc/dramc_pi_api.h
deleted file mode 100644
index 2dee0445c3..0000000000
--- a/src/soc/mediatek/mt8192/include/soc/dramc_pi_api.h
+++ /dev/null
@@ -1,352 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#ifndef __SOC_MEDIATEK_MT8192_DRAMC_PI_API_H__
-#define __SOC_MEDIATEK_MT8192_DRAMC_PI_API_H__
-
-#include <console/console.h>
-#include <delay.h>
-#include <device/mmio.h>
-#include <stdint.h>
-#include <types.h>
-
-#include <soc/addressmap.h>
-#include <soc/dramc_common_mt8192.h>
-#include <soc/dramc_register_bits_def.h>
-#include <soc/emi.h>
-
-#define dramc_err(_x_...) printk(BIOS_ERR, _x_)
-#define dramc_info(_x_...) printk(BIOS_INFO, _x_)
-#if CONFIG(DEBUG_DRAM)
-#define dramc_dbg(_x_...) printk(BIOS_INFO, _x_)
-#else
-#define dramc_dbg(_x_...)
-#endif
-
-#define DRAMC_BROADCAST_ON 0x7f
-#define DRAMC_BROADCAST_OFF 0x0
-
-#define TX_DQ_UI_TO_PI_TAP 64
-#define TX_PHASE_DQ_UI_TO_PI_TAP 32
-#define LP4_TX_VREF_DATA_NUM 50
-#define LP4_TX_VREF_PASS_CONDITION 0
-#define TX_PASS_WIN_CRITERIA 7
-#define LP4_TX_VREF_BOUNDARY_NOT_READY 0xff
-#define REG_SHU_OFFSET_WIDTH 0x700
-#define SHU_OFFSET (REG_SHU_OFFSET_WIDTH / 4)
-
-#define DQS_LEVEL_UNKNOWN 0xff
-
-typedef enum {
- DDRFREQ_400,
- DDRFREQ_600,
- DDRFREQ_800,
- DDRFREQ_933,
- DDRFREQ_1200,
- DDRFREQ_1600,
- DDRFREQ_2133,
- DDRFREQ_MAX,
-} dram_freq_grp;
-
-typedef enum {
- CALI_SEQ0 = 0,
- CALI_SEQ1,
- CALI_SEQ2,
- CALI_SEQ3,
- CALI_SEQ4,
- CALI_SEQ5,
- CALI_SEQ6,
- CALI_SEQ_MAX
-} dram_cali_seq;
-
-typedef enum {
- DIV8_MODE = 0,
- DIV4_MODE,
- UNKNOWN_MODE,
-} dram_div_mode;
-
-typedef enum {
- VREF_CALI_OFF = 0,
- VREF_CALI_ON,
-} vref_cali_mode;
-
-typedef enum {
- DRVP = 0,
- DRVN,
- ODTP,
- ODTN,
- IMP_DRV_MAX
-} imp_drv_type;
-
-typedef enum {
- RX_WIN_RD_DQC = 0,
- RX_WIN_TEST_ENG,
-} rx_cali_type;
-
-typedef enum TX_CAL_TYPE {
- TX_DQ_DQS_MOVE_DQ_ONLY,
- TX_DQ_DQS_MOVE_DQM_ONLY,
- TX_DQ_DQS_MOVE_DQ_DQM,
-} tx_cali_type;
-
-typedef enum {
- DCM_OFF = 0,
- DCM_ON,
-} dcm_state;
-
-typedef enum {
- CBT_LOW_FREQ = 0,
- CBT_HIGH_FREQ,
- CBT_UNKNOWN_FREQ = 0xff,
-} cbt_freq;
-
-typedef enum {
- IN_CBT,
- OUT_CBT,
-} cbt_state;
-
-enum {
- PHYPLL_MODE = 0,
- CLRPLL_MODE,
-};
-
-enum {
- DUTYSCAN_K_DQ,
- DUTYSCAN_K_DQM,
-};
-
-typedef enum {
- O1_OFF,
- O1_ON,
-} o1_state;
-
-typedef enum {
- SINGLE_RANK_DDR = 1,
- DUAL_RANK_DDR
-} ddr_rank_num;
-
-enum {
- DQS_8PH_DEGREE_0 = 0,
- DQS_8PH_DEGREE_180,
- DQS_8PH_DEGREE_45,
-
- DQS_8PH_DEGREE_MAX,
-};
-
-struct dram_impedance {
- u32 result[ODT_MAX][IMP_DRV_MAX];
-};
-
-struct mr_values {
- u8 mr01[FSP_MAX];
- u8 mr02[FSP_MAX];
- u8 mr03[FSP_MAX];
- u8 mr04[RANK_MAX];
- u8 mr11[FSP_MAX];
- u8 mr12[CHANNEL_MAX][RANK_MAX][FSP_MAX];
- u8 mr13[RANK_MAX];
- u8 mr14[CHANNEL_MAX][RANK_MAX][FSP_MAX];
- u8 mr18[CHANNEL_MAX][RANK_MAX];
- u8 mr19[CHANNEL_MAX][RANK_MAX];
- u8 mr20[FSP_MAX];
- u8 mr21[FSP_MAX];
- u8 mr22[FSP_MAX];
- u8 mr23[CHANNEL_MAX][RANK_MAX];
- u8 mr26[RANK_MAX];
- u8 mr30[RANK_MAX];
- u8 mr51[FSP_MAX];
-};
-
-struct ddr_cali {
- u8 chn;
- u8 rank;
- /*
- * frequency set point:
- * 0 means lower,un-terminated freq;
- * 1 means higher,terminated freq
- */
- u8 fsp;
- u8 density;
- u8 *pll_mode;
- u32 frequency;
- u32 vcore_voltage;
- dram_dfs_shu shu;
- ddr_rank_num support_ranks;
- dbi_mode w_dbi[FSP_MAX];
- vref_cali_mode vref_cali;
- dram_odt_state odt_onoff;
- dram_freq_grp freq_group;
- dram_div_mode div_mode;
- dram_pinmux_type pinmux_type;
- dram_cbt_mode cbt_mode[RANK_MAX];
- struct dram_impedance impedance;
- struct mr_values *mr_value;
- const struct emi_mdl *emi_config;
- const struct sdram_params *params;
-};
-
-struct reg_bak {
- u32 *addr;
- u32 value;
-};
-
-typedef struct _ana_top_config {
- u8 dll_async_en;
- u8 all_slave_en;
- u8 rank_mode;
- u8 dll_idle_mode;
- u8 aphy_comb_en;
- u8 tx_odt_dis;
- u8 new_8x_mode;
-} ana_top_config;
-
-typedef struct ana_dvfs_core_config {
- u8 ckr;
- u8 dq_p2s_ratio;
- u8 ca_p2s_ratio;
- u8 dq_ca_open;
- u8 dq_semi_open;
- u8 ca_semi_open;
- u8 ca_full_rate;
- u8 dq_ckdiv4_en;
- u8 ca_ckdiv4_en;
- u8 ca_prediv_en;
- u8 ph8_dly;
- u8 semi_open_ca_pick_mck_ratio;
- u8 dq_aamck_div;
- u8 ca_admck_div;
- u8 dq_track_ca_en;
- u32 pll_freq;
-} ana_dvfs_core;
-
-typedef struct lp4_dram_config {
- u8 ex_row_en[RANK_MAX];
- u8 mr_wl;
- u8 dbi_wr;
- u8 dbi_rd;
- u8 lp4y_en;
- u8 work_fsp;
-} dram_config;
-
-typedef struct _dvfs_group_config {
- u32 data_rate;
- u8 dqsien_mode;
- u8 dq_p2s_ratio;
- u8 ckr;
-} dvfs_group_config;
-
-struct gating_config {
- u8 gat_track_en;
- u8 rx_gating_mode;
- u8 rx_gating_track_mode;
- u8 valid_lat_value;
-};
-
-typedef struct _dramc_subsys_config {
- dram_freq_grp freq_group;
- ana_top_config *a_cfg;
- ana_dvfs_core *dvfs_core;
- dram_config *lp4_init;
- dvfs_group_config *dfs_gp;
- struct gating_config *gat_c;
-} dramc_subsys_config;
-
-typedef struct _reg_transfer {
- u32 *addr;
- u8 offset;
-} reg_transfer;
-
-void emi_init2(void);
-u32 get_column_num(void);
-u32 get_row_width_from_emi(u32 rank);
-u8 dramc_mode_reg_read(u8 chn, u8 mr_idx);
-u8 dramc_mode_reg_read_by_rank(u8 chn, u8 rank, u8 mr_idx);
-void dramc_mode_reg_write_by_rank(const struct ddr_cali *cali,
- u8 chn, u8 rank, u8 mr_idx, u8 value);
-void after_calib(const struct ddr_cali *cali);
-void init_dram(const struct dramc_data *dparam);
-void global_option_init(struct ddr_cali *cali);
-u32 dramc_get_broadcast(void);
-void dramc_set_broadcast(u32 onoff);
-void dramc_sw_impedance_cal(dram_odt_state odt, struct dram_impedance *imp);
-void dramc_sw_impedance_save_register(const struct ddr_cali *cali);
-void dfs_init_for_calibration(const struct ddr_cali *cali);
-void dramc_auto_refresh_switch(u8 chn, bool flag);
-void dramc_runtime_config(const struct ddr_cali *cali);
-void emi_mdl_init(const struct emi_mdl *emi_con);
-void cke_fix_onoff(const struct ddr_cali *cali, u8 chn, u8 rank, int option);
-void enable_phy_dcm_shuffle(dcm_state enable, u8 shuffle_save);
-void enable_phy_dcm_non_shuffle(dcm_state enable);
-void dramc_8_phase_cal(const struct ddr_cali *cali);
-void dramc_duty_calibration(const struct sdram_params *params);
-void dramc_write_leveling(const struct ddr_cali *cali,
- u8 dqs_final_delay[RANK_MAX][DQS_NUMBER]);
-void dramc_rx_dqs_gating_cal(const struct ddr_cali *cali, u8 *txdly_min, u8 *txdly_max);
-void dramc_rx_dqs_gating_post_process(const struct ddr_cali *cali,
- u8 txdly_min, u8 txdly_max);
-void dramc_rx_datlat_cal(const struct ddr_cali *cali);
-void dramc_dual_rank_rx_datlat_cal(const struct ddr_cali *cali);
-void dramc_cmd_bus_training(const struct ddr_cali *cali);
-void dramc_rx_window_perbit_cal(const struct ddr_cali *cali, rx_cali_type type);
-void dramc_tx_window_perbit_cal(const struct ddr_cali *cali, tx_cali_type cal_type,
- const u8 dqs_final_delay[RANK_MAX][DQS_NUMBER], bool vref_scan_enable);
-void dramc_tx_oe_calibration(const struct ddr_cali *cali);
-dram_freq_grp get_freq_group(const struct ddr_cali *cali);
-dram_odt_state get_odt_state(const struct ddr_cali *cali);
-u8 get_fsp(const struct ddr_cali *cali);
-dram_dfs_shu get_shu(const struct ddr_cali *cali);
-dram_freq_grp get_highest_freq_group(void);
-dram_cbt_mode get_cbt_mode(const struct ddr_cali *cali);
-u32 get_frequency(const struct ddr_cali *cali);
-vref_cali_mode get_vref_cali(const struct ddr_cali *cali);
-dram_div_mode get_div_mode(const struct ddr_cali *cali);
-dbi_mode get_write_dbi(const struct ddr_cali *cali);
-dram_dfs_shu get_shu_save_by_k_shu(dram_cali_seq k_seq);
-dram_freq_grp get_freq_group_by_shu_save(dram_dfs_shu shu);
-dram_pinmux_type get_pinmux_type(const struct ddr_cali *cali);
-u32 get_frequency_by_shu(dram_dfs_shu shu);
-u32 get_vcore_value(const struct ddr_cali *cali);
-void set_cali_datas(struct ddr_cali *cali,
- const struct dramc_data *dparam, dram_cali_seq k_seq);
-u8 get_mck2ui_div_shift(const struct ddr_cali *cali);
-void tx_picg_setting(const struct ddr_cali *cali);
-void xrtrtr_shu_setting(const struct ddr_cali *cali);
-void cbt_switch_freq(const struct ddr_cali *cali, cbt_freq freq);
-void enable_dfs_hw_mode_clk(void);
-void dramc_dfs_direct_jump_rg_mode(const struct ddr_cali *cali, u8 shu_level);
-void dramc_dfs_direct_jump_sram_shu_rg_mode(const struct ddr_cali *cali,
- dram_dfs_shu shu_level);
-void dramc_save_result_to_shuffle(dram_dfs_shu src, dram_dfs_shu dst);
-void dramc_load_shuffle_to_dramc(dram_dfs_shu src, dram_dfs_shu dst);
-void dvfs_settings(const struct ddr_cali *cali);
-void dramc_dqs_precalculation_preset(const struct ddr_cali *cali);
-void freq_jump_ratio_calculation(const struct ddr_cali *cali);
-void dramc_hmr4_presetting(const struct ddr_cali *cali);
-void dramc_enable_perbank_refresh(bool en);
-void dramc_modified_refresh_mode(void);
-void dramc_cke_debounce(const struct ddr_cali *cali);
-void dramc_hw_dqsosc(const struct ddr_cali *cali, u8 chn);
-void xrtwtw_shu_setting(const struct ddr_cali *cali);
-void enable_write_DBI_after_calibration(const struct ddr_cali *cali);
-void dramc_set_mr13_vrcg_to_normal(const struct ddr_cali *cali);
-void ana_init(const struct ddr_cali *cali, dramc_subsys_config *subsys);
-void dig_static_setting(const struct ddr_cali *cali, dramc_subsys_config *subsys);
-void dig_config_shuf(const struct ddr_cali *cali, dramc_subsys_config *subsys);
-void resetb_pull_dn(void);
-void dramc_subsys_pre_config(dram_freq_grp freq_group, dramc_subsys_config *subsys);
-void single_end_dramc_post_config(u8 lp4y_en);
-void dram_configure(dram_freq_grp freq_group, dram_config *tr);
-void ana_clk_div_config(ana_dvfs_core *tr, dvfs_group_config *dfs);
-void apply_write_dbi_power_improve(bool onoff);
-void dramc_write_dbi_onoff(u8 onoff);
-void cbt_delay_ca_clk(u8 chn, u8 rank, s32 iDelay);
-void dramc_cmd_ui_delay_setting(u8 chn, u8 value);
-void dramc_dqsosc_set_mr18_mr19(const struct ddr_cali *cali,
- u16 *osc_thrd_inc, u16 *osc_thrd_dec);
-void dqsosc_shu_settings(const struct ddr_cali *cali,
- u16 *osc_thrd_inc, u16 *osc_thrd_dec);
-void shift_dq_ui(const struct ddr_cali *cali, u8 rk, s8 shift_ui);
-void shuffle_dfs_to_fsp1(const struct ddr_cali *cali);
-u8 get_cbt_vref_pinmux_value(const struct ddr_cali *cali, u8 range, u8 vref_lev);
-void o1_path_on_off(const struct ddr_cali *cali, o1_state o1);
-
-#endif /* __SOC_MEDIATEK_MT8192_DRAMC_PI_API_H__ */
diff --git a/src/soc/mediatek/mt8192/include/soc/dramc_register.h b/src/soc/mediatek/mt8192/include/soc/dramc_register.h
deleted file mode 100644
index f7b62646e3..0000000000
--- a/src/soc/mediatek/mt8192/include/soc/dramc_register.h
+++ /dev/null
@@ -1,1818 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#ifndef __SOC_MEDIATEK_MT8192_DRAMC_REGISTER_H__
-#define __SOC_MEDIATEK_MT8192_DRAMC_REGISTER_H__
-
-#include <soc/addressmap.h>
-#include <soc/dpm.h>
-#include <stdint.h>
-
-struct dramc_nao_regs {
- u32 testmode;
- u32 rsvd_0[4];
- u32 rdqc_cmp;
- u32 rdqc_dqm_cmp;
- u32 rsvd_1[2];
- u32 dmmonitor;
- u32 rsvd_2[2];
- u32 initk_pat0;
- u32 initk_pat1;
- u32 initk_pat2;
- u32 initk_pat3;
- u32 initk_pat4;
- u32 rsvd_3[3];
- u32 spcmdresp3;
- u32 cbt_wlev_status2;
- u32 rsvd_4[10];
- u32 misc_statusa;
- u32 special_status;
- u32 spcmdresp;
- u32 mrr_status;
- u32 mrr_status2;
- u32 mrrdata0;
- u32 mrrdata1;
- u32 mrrdata2;
- u32 mrrdata3;
- u32 ref_status;
- u32 rsvd_5[2];
- u32 wck_status;
- u32 rsvd_6[3];
- u32 tcmdo1lat;
- u32 cbt_wlev_status1;
- u32 cbt_wlev_status;
- u32 spcmdresp2;
- u32 cbt_wlev_atk_result0;
- u32 cbt_wlev_atk_result1;
- u32 cbt_wlev_atk_result2;
- u32 cbt_wlev_atk_result3;
- u32 cbt_wlev_atk_result4;
- u32 cbt_wlev_atk_result5;
- u32 cbt_wlev_atk_result6;
- u32 cbt_wlev_atk_result7;
- u32 cbt_wlev_atk_result8;
- u32 cbt_wlev_atk_result9;
- u32 cbt_wlev_atk_result10;
- u32 cbt_wlev_atk_result11;
- u32 cbt_wlev_atk_result12;
- u32 cbt_wlev_atk_result13;
- u32 rsvd_7[1];
- u32 hwmrr_push2pop_cnt;
- u32 hwmrr_status;
- u32 hw_refrate_mon;
- u32 hw_refrate_mon2;
- u32 hw_refrate_mon3;
- u32 testrpt;
- u32 cmp_err;
- u32 test_abit_status1;
- u32 test_abit_status2;
- u32 test_abit_status3;
- u32 test_abit_status4;
- u32 test_abit_status5;
- u32 test_abit_status6;
- u32 test_abit_status7;
- u32 test_abit_status8;
- u32 test_rf_error_flag0;
- u32 test_rf_error_flag1;
- u32 test_rf_error_cnt1;
- u32 test_rf_error_cnt2;
- u32 test_rf_error_cnt3;
- u32 test_rf_error_cnt4;
- u32 test_rf_error_cnt5;
- u32 test_rf_error_cnt6;
- u32 test_rf_error_cnt7;
- u32 test_rf_error_cnt8;
- u32 test_loop_cnt;
- u32 rsvd_8[3];
- u32 sref_dly_cnt;
- u32 rsvd_9[31];
- u32 tx_atk_set0;
- u32 tx_atk_set1;
- u32 rsvd_10[2];
- u32 tx_atk_result0;
- u32 tx_atk_result1;
- u32 tx_atk_result2;
- u32 tx_atk_result3;
- u32 tx_atk_result4;
- u32 tx_atk_result5;
- u32 tx_atk_result6;
- u32 tx_atk_result7;
- u32 tx_atk_result8;
- u32 rsvd_11[3];
- u32 tx_atk_dbg_bit_status1;
- u32 tx_atk_dbg_bit_status2;
- u32 tx_atk_dbg_bit_status3;
- u32 tx_atk_dbg_bit_status4;
- u32 rsvd_12[34];
- u32 lp5_pdx_pde_mon;
- u32 lp5_pdx_pde_max_mon;
- u32 dram_clk_en_0_old_counter;
- u32 aphypi_cg_ck_old_counter;
- u32 ckeo_pre_old_counter;
- u32 cke1o_pre_old_counter;
- u32 dram_clk_en_0_new_counter;
- u32 aphypi_cg_ck_new_counter;
- u32 ckeo_pre_new_counter;
- u32 cke1o_pre_new_counter;
- u32 refresh_pop_counter;
- u32 freerun_26m_counter;
- u32 dramc_idle_counter;
- u32 r2r_page_hit_counter;
- u32 r2r_page_miss_counter;
- u32 r2r_interbank_counter;
- u32 r2w_page_hit_counter;
- u32 r2w_page_miss_counter;
- u32 r2w_interbank_counter;
- u32 w2r_page_hit_counter;
- u32 w2r_page_miss_counter;
- u32 w2r_interbank_counter;
- u32 w2w_page_hit_counter;
- u32 w2w_page_miss_counter;
- u32 w2w_interbank_counter;
- u32 rk0_pre_standby_counter;
- u32 rk0_pre_powerdown_counter;
- u32 rk0_act_standby_counter;
- u32 rk0_act_powerdown_counter;
- u32 rk1_pre_standby_counter;
- u32 rk1_pre_powerdown_counter;
- u32 rk1_act_standby_counter;
- u32 rk1_act_powerdown_counter;
- u32 rk2_pre_standby_counter;
- u32 rk2_pre_powerdown_counter;
- u32 rk2_act_standby_counter;
- u32 rk2_act_powerdown_counter;
- u32 dq0_toggle_counter;
- u32 dq1_toggle_counter;
- u32 dq2_toggle_counter;
- u32 dq3_toggle_counter;
- u32 dq0_toggle_counter_r;
- u32 dq1_toggle_counter_r;
- u32 dq2_toggle_counter_r;
- u32 dq3_toggle_counter_r;
- u32 read_bytes_counter;
- u32 write_bytes_counter;
- u32 max_sref_req_to_ack_latency_counter;
- u32 rsvd_13[2];
- u32 dramc_idle_dcm_counter;
- u32 ddrphy_clk_en_counter;
- u32 ddrphy_clk_en_comb_counter;
- u32 rsvd_14[1];
- u32 ebg_counter_cnt0;
- u32 ebg_counter_cnt1;
- u32 ebg_counter_cnt2;
- u32 rsvd_15[1];
- u32 lat_counter_cmd0;
- u32 lat_counter_cmd1;
- u32 lat_counter_cmd2;
- u32 lat_counter_cmd3;
- u32 lat_counter_cmd4;
- u32 lat_counter_cmd5;
- u32 lat_counter_cmd6;
- u32 lat_counter_cmd7;
- u32 lat_counter_aver;
- u32 lat_counter_num;
- u32 lat_counter_block_ale;
- u32 rsvd_16[70];
- u32 dramc_loop_bak_adr;
- u32 dramc_loop_bak_rk;
- u32 rsvd_17[1];
- u32 dramc_loop_bak_wdat0;
- u32 dramc_loop_bak_wdat1;
- u32 dramc_loop_bak_wdat2;
- u32 dramc_loop_bak_wdat3;
- u32 dramc_loop_bak_wdat4;
- u32 dramc_loop_bak_wdat5;
- u32 dramc_loop_bak_wdat6;
- u32 dramc_loop_bak_wdat7;
- u32 rsvd_18[52];
- u32 rk0_dqsosc_status;
- u32 rk0_dqsosc_delta;
- u32 rk0_dqsosc_delta2;
- u32 rsvd_19[1];
- u32 rk0_current_tx_setting1;
- u32 rk0_current_tx_setting2;
- u32 rk0_current_tx_setting3;
- u32 rk0_current_tx_setting4;
- u32 rk0_dummy_rd_data0;
- u32 rk0_dummy_rd_data1;
- u32 rk0_dummy_rd_data2;
- u32 rk0_dummy_rd_data3;
- u32 rk0_dummy_rd_data4;
- u32 rk0_dummy_rd_data5;
- u32 rk0_dummy_rd_data6;
- u32 rk0_dummy_rd_data7;
- u32 rsvd_20[8];
- u32 rk0_pi_dq_cal;
- u32 rsvd_21[1];
- u32 rk0_pi_dqm_cal;
- u32 rsvd_22[37];
- u32 rk1_dqsosc_status;
- u32 rk1_dqsosc_delta;
- u32 rk1_dqsosc_delta2;
- u32 rsvd_23[1];
- u32 rk1_current_tx_setting1;
- u32 rk1_current_tx_setting2;
- u32 rk1_current_tx_setting3;
- u32 rk1_current_tx_setting4;
- u32 rk1_dummy_rd_data0;
- u32 rk1_dummy_rd_data1;
- u32 rk1_dummy_rd_data2;
- u32 rk1_dummy_rd_data3;
- u32 rk1_dummy_rd_data4;
- u32 rk1_dummy_rd_data5;
- u32 rk1_dummy_rd_data6;
- u32 rk1_dummy_rd_data7;
- u32 rsvd_24[8];
- u32 rk1_pi_dq_cal;
- u32 rsvd_25[1];
- u32 rk1_pi_dqm_cal;
- u32 rsvd_26[101];
- u32 mr_backup_00_rk0_fsp0;
- u32 mr_backup_01_rk0_fsp0;
- u32 mr_backup_02_rk0_fsp0;
- u32 mr_backup_03_rk0_fsp0;
- u32 mr_backup_04_rk0_fsp0;
- u32 mr_backup_05_rk0_fsp0;
- u32 mr_backup_06_rk0_fsp0;
- u32 mr_backup_07_rk0_fsp0;
- u32 mr_backup_08_rk0_fsp0;
- u32 mr_backup_09_rk0_fsp0;
- u32 rsvd_27[2];
- u32 mr_backup_00_rk0_fsp1;
- u32 mr_backup_01_rk0_fsp1;
- u32 mr_backup_02_rk0_fsp1;
- u32 mr_backup_03_rk0_fsp1;
- u32 mr_backup_04_rk0_fsp1;
- u32 rsvd_28[7];
- u32 mr_backup_00_rk0_fsp2;
- u32 mr_backup_01_rk0_fsp2;
- u32 mr_backup_02_rk0_fsp2;
- u32 mr_backup_03_rk0_fsp2;
- u32 rsvd_29[100];
- u32 mr_backup_00_rk1_fsp0;
- u32 mr_backup_01_rk1_fsp0;
- u32 mr_backup_02_rk1_fsp0;
- u32 mr_backup_03_rk1_fsp0;
- u32 mr_backup_04_rk1_fsp0;
- u32 mr_backup_05_rk1_fsp0;
- u32 mr_backup_06_rk1_fsp0;
- u32 mr_backup_07_rk1_fsp0;
- u32 mr_backup_08_rk1_fsp0;
- u32 mr_backup_09_rk1_fsp0;
- u32 rsvd_30[2];
- u32 mr_backup_00_rk1_fsp1;
- u32 mr_backup_01_rk1_fsp1;
- u32 mr_backup_02_rk1_fsp1;
- u32 mr_backup_03_rk1_fsp1;
- u32 mr_backup_04_rk1_fsp1;
- u32 rsvd_31[7];
- u32 mr_backup_00_rk1_fsp2;
- u32 mr_backup_01_rk1_fsp2;
- u32 mr_backup_02_rk1_fsp2;
- u32 mr_backup_03_rk1_fsp2;
-};
-
-struct ddrphy_nao_regs {
- u32 misc_sta_extlb0;
- u32 misc_sta_extlb1;
- u32 misc_sta_extlb2;
- u32 rsvd_0[1];
- u32 misc_dma_debug0;
- u32 misc_dma_debug1;
- u32 misc_retry_dbg0;
- u32 misc_retry_dbg1;
- u32 misc_retry_dbg2;
- u32 misc_rdsel_track_dbg;
- u32 rsvd_1[22];
- u32 misc_dq_rxdly_trro0;
- u32 misc_dq_rxdly_trro1;
- u32 misc_dq_rxdly_trro2;
- u32 misc_dq_rxdly_trro3;
- u32 misc_dq_rxdly_trro4;
- u32 misc_dq_rxdly_trro5;
- u32 misc_dq_rxdly_trro6;
- u32 misc_dq_rxdly_trro7;
- u32 misc_dq_rxdly_trro8;
- u32 misc_dq_rxdly_trro9;
- u32 misc_dq_rxdly_trro10;
- u32 misc_dq_rxdly_trro11;
- u32 misc_dq_rxdly_trro12;
- u32 misc_dq_rxdly_trro13;
- u32 misc_dq_rxdly_trro14;
- u32 misc_dq_rxdly_trro15;
- u32 misc_dq_rxdly_trro16;
- u32 misc_dq_rxdly_trro17;
- u32 misc_dq_rxdly_trro18;
- u32 misc_dq_rxdly_trro19;
- u32 misc_dq_rxdly_trro20;
- u32 misc_dq_rxdly_trro21;
- u32 misc_dq_rxdly_trro22;
- u32 misc_dq_rxdly_trro23;
- u32 misc_dq_rxdly_trro24;
- u32 misc_dq_rxdly_trro25;
- u32 misc_dq_rxdly_trro26;
- u32 misc_dq_rxdly_trro27;
- u32 misc_dq_rxdly_trro28;
- u32 misc_dq_rxdly_trro29;
- u32 misc_dq_rxdly_trro30;
- u32 misc_dq_rxdly_trro31;
- u32 rsvd_2[20];
- u32 misc_ca_rxdly_trro20;
- u32 misc_ca_rxdly_trro21;
- u32 misc_ca_rxdly_trro22;
- u32 misc_ca_rxdly_trro23;
- u32 misc_ca_rxdly_trro24;
- u32 misc_ca_rxdly_trro25;
- u32 misc_ca_rxdly_trro26;
- u32 misc_ca_rxdly_trro27;
- u32 misc_ca_rxdly_trro28;
- u32 misc_ca_rxdly_trro29;
- u32 misc_ca_rxdly_trro30;
- u32 misc_ca_rxdly_trro31;
- u32 misc_dqo1;
- u32 misc_cao1;
- u32 misc_ad_rx_dq_o1;
- u32 misc_ad_rx_cmd_o1;
- u32 misc_phy_rgs_dq;
- u32 misc_phy_rgs_cmd;
- u32 misc_phy_rgs_stben_b0;
- u32 misc_phy_rgs_stben_b1;
- u32 misc_phy_rgs_stben_cmd;
- u32 misc_phy_picg_mon_s0;
- u32 misc_phy_picg_mon_s1;
- u32 misc_phy_picg_mon_s2;
- u32 misc_phy_picg_mon_s3;
- u32 misc_phy_picg_mon_s4;
- u32 misc_phy_picg_mon_s5;
- u32 misc_phy_picg_mon_s6;
- u32 misc_phy_picg_mon_s7;
- u32 misc_phy_picg_mon_s8;
- u32 misc_mbist_status;
- u32 misc_mbist_status2;
- u32 misc_impcal_status1;
- u32 misc_impcal_status2;
- u32 misc_impcal_status3;
- u32 misc_impcal_status4;
- u32 misc_impcal_status5;
- u32 misc_impcal_status6;
- u32 misc_impcal_status7;
- u32 misc_impcal_status8;
- u32 rsvd_3[1];
- u32 misc_impcal_status9;
- u32 misc_sta_toglb0;
- u32 misc_sta_toglb1;
- u32 rsvd_4[5];
- u32 misc_sta_extlb_dbg0;
- u32 misc_sta_extlb_dbg1;
- u32 misc_sta_extlb_dbg2;
- u32 misc_sta_extlb_dbg3;
- u32 misc_duty_toggle_cnt;
- u32 misc_duty_dqs0_err_cnt;
- u32 misc_duty_dq_err_cnt0;
- u32 misc_duty_dqs1_err_cnt;
- u32 misc_duty_dq_err_cnt1;
- u32 misc_duty_dqs2_err_cnt;
- u32 misc_duty_dq_err_cnt2;
- u32 misc_duty_dqs3_err_cnt;
- u32 misc_duty_dq_err_cnt3;
- u32 misc_jmeter_st0;
- u32 misc_jmeter_st1;
- u32 misc_emi_lpbk0;
- u32 misc_emi_lpbk1;
- u32 misc_emi_lpbk2;
- u32 misc_emi_lpbk3;
- u32 misc_emi_lpbk4;
- u32 misc_emi_lpbk5;
- u32 misc_emi_lpbk6;
- u32 misc_emi_lpbk7;
- u32 misc_ft_status0;
- u32 misc_ft_status1;
- u32 misc_ft_status2;
- u32 misc_ft_status3;
- u32 misc_ft_status4;
- u32 misc_sta_toglb2;
- u32 misc_sta_toglb3;
- u32 misc_sta_extlb3;
- u32 misc_sta_extlb4;
- u32 misc_sta_extlb5;
- u32 rsvd_5[90];
- u32 debug_aphy_rx_ctl;
- u32 rsvd_6[3];
- u32 gating_err_infor;
- u32 debug_dqsien_b0;
- u32 debug_dqsien_b1;
- u32 debug_dqsien_ca;
- u32 gating_err_latch_dly_b0_rk0;
- u32 gating_err_latch_dly_b1_rk0;
- u32 gating_err_latch_dly_ca_rk0;
- u32 rsvd_7[1];
- u32 gating_err_latch_dly_b0_rk1;
- u32 gating_err_latch_dly_b1_rk1;
- u32 gating_err_latch_dly_ca_rk1;
- u32 rsvd_8[1];
- u32 debug_rodt_ctl;
- u32 rsvd_9[47];
- u32 cal_dqsg_cnt_b0;
- u32 cal_dqsg_cnt_b1;
- u32 cal_dqsg_cnt_ca;
- u32 dvfs_status;
- u32 rx_autok_status0;
- u32 rx_autok_status1;
- u32 rx_autok_status2;
- u32 rx_autok_status3;
- u32 rx_autok_status4;
- u32 rx_autok_status5;
- u32 rx_autok_status6;
- u32 rx_autok_status7;
- u32 rx_autok_status8;
- u32 rx_autok_status9;
- u32 rx_autok_status10;
- u32 rx_autok_status11;
- u32 rx_autok_status12;
- u32 rx_autok_status13;
- u32 rx_autok_status14;
- u32 rx_autok_status15;
- u32 rx_autok_status16;
- u32 rx_autok_status17;
- u32 rx_autok_status18;
- u32 rx_autok_status19;
- u32 rx_autok_status20;
- u32 rsvd_10[39];
- u32 dqsien_autok_b0_rk0_status0;
- u32 dqsien_autok_b0_rk0_status1;
- u32 dqsien_autok_b0_rk0_dbg_status0;
- u32 dqsien_autok_b0_rk0_dbg_status1;
- u32 dqsien_autok_b0_rk0_dbg_status2;
- u32 dqsien_autok_b0_rk0_dbg_status3;
- u32 dqsien_autok_b0_rk0_dbg_status4;
- u32 dqsien_autok_b0_rk0_dbg_status5;
- u32 dqsien_autok_b0_rk1_status0;
- u32 dqsien_autok_b0_rk1_status1;
- u32 dqsien_autok_b0_rk1_dbg_status0;
- u32 dqsien_autok_b0_rk1_dbg_status1;
- u32 dqsien_autok_b0_rk1_dbg_status2;
- u32 dqsien_autok_b0_rk1_dbg_status3;
- u32 dqsien_autok_b0_rk1_dbg_status4;
- u32 dqsien_autok_b0_rk1_dbg_status5;
- u32 dqsien_autok_b1_rk0_status0;
- u32 dqsien_autok_b1_rk0_status1;
- u32 dqsien_autok_b1_rk0_dbg_status0;
- u32 dqsien_autok_b1_rk0_dbg_status1;
- u32 dqsien_autok_b1_rk0_dbg_status2;
- u32 dqsien_autok_b1_rk0_dbg_status3;
- u32 dqsien_autok_b1_rk0_dbg_status4;
- u32 dqsien_autok_b1_rk0_dbg_status5;
- u32 dqsien_autok_b1_rk1_status0;
- u32 dqsien_autok_b1_rk1_status1;
- u32 dqsien_autok_b1_rk1_dbg_status0;
- u32 dqsien_autok_b1_rk1_dbg_status1;
- u32 dqsien_autok_b1_rk1_dbg_status2;
- u32 dqsien_autok_b1_rk1_dbg_status3;
- u32 dqsien_autok_b1_rk1_dbg_status4;
- u32 dqsien_autok_b1_rk1_dbg_status5;
- u32 dqsien_autok_ca_rk0_status0;
- u32 dqsien_autok_ca_rk0_status1;
- u32 dqsien_autok_ca_rk0_dbg_status0;
- u32 dqsien_autok_ca_rk0_dbg_status1;
- u32 dqsien_autok_ca_rk0_dbg_status2;
- u32 dqsien_autok_ca_rk0_dbg_status3;
- u32 dqsien_autok_ca_rk0_dbg_status4;
- u32 dqsien_autok_ca_rk0_dbg_status5;
- u32 rsvd_11[24];
- u32 dqsien_autok_ca_rk1_status0;
- u32 dqsien_autok_ca_rk1_status1;
- u32 dqsien_autok_ca_rk1_dbg_status0;
- u32 dqsien_autok_ca_rk1_dbg_status1;
- u32 dqsien_autok_ca_rk1_dbg_status2;
- u32 dqsien_autok_ca_rk1_dbg_status3;
- u32 dqsien_autok_ca_rk1_dbg_status4;
- u32 dqsien_autok_ca_rk1_dbg_status5;
- u32 dqsien_autok_ctrl_status;
- u32 ad_dline_mon;
- u32 dline_mon_track_dbg;
- u32 misc_dutycal_status;
- u32 misc_dbg_db_imp_message0;
- u32 misc_dbg_db_imp_message1;
- u32 misc_dbg_db_imp_message2;
- u32 misc_dbg_db_imp_message3;
- u32 misc_dbg_db_imp_message4;
- u32 misc_dbg_db_imp_message5;
- u32 misc_dbg_db_imp_message6;
- u32 misc_dbg_db_imp_message7;
- u32 misc_dbg_db_imp_message8;
- u32 misc_dbg_db_imp_message9;
- u32 misc_dbg_db_imp_message10;
- u32 misc_dbg_db_imp_message11;
- u32 rsvd_12[40];
- u32 misc_dma_sram_mbist;
- u32 rsvd_13[7];
- u32 misc_aphy_obs0;
- u32 misc_aphy_obs1;
- u32 misc_aphy_obs2;
- u32 misc_aphy_obs3;
- u32 misc_aphy_obs4;
- u32 misc_aphy_obs5;
- u32 misc_aphy_obs6;
- u32 misc_aphy_obs7;
- u32 misc_aphy_obs8;
-};
-
-struct dramc_ao_rk {
- u32 rk_test2_a1;
- u32 rk_dummy_rd_wdata0;
- u32 rk_dummy_rd_wdata1;
- u32 rk_dummy_rd_wdata2;
- u32 rk_dummy_rd_wdata3;
- u32 rk_dummy_rd_adr;
- u32 rsvd_0[15];
- u32 rk_dummy_rd_adr2;
- u32 rsvd_1[4];
- u32 rk_sref_dpd_tck_rk_ctrl;
- u32 rsvd_2[9];
- u32 rk_dqsosc;
- u32 rsvd_3[91];
-};
-
-struct dramc_ao_shu_rk {
- u32 shurk_selph_dq0;
- u32 shurk_selph_dq1;
- u32 shurk_selph_dq2;
- u32 shurk_selph_dq3;
- u32 shurk_dqs2dq_cal1;
- u32 shurk_dqs2dq_cal2;
- u32 shurk_dqs2dq_cal3;
- u32 shurk_dqs2dq_cal4;
- u32 shurk_dqs2dq_cal5;
- u32 shurk_pi;
- u32 shurk_dqsosc;
- u32 shurk_dqsosc_thrd;
- u32 shurk_aphy_tx_picg_ctrl;
- u32 rsvd_25[3];
- u32 shurk_wck_wr_mck;
- u32 shurk_wck_rd_mck;
- u32 shurk_wck_fs_mck;
- u32 shurk_wck_wr_ui;
- u32 shurk_wck_rd_ui;
- u32 shurk_wck_fs_ui;
- u32 rsvd_26[2];
- u32 shurk_cke_ctrl;
- u32 rsvd_27[103];
-};
-
-struct dramc_ao_regs {
- u32 ddrcommon0;
- u32 rsvd_0[2];
- u32 sa_reserve;
- u32 rsvd_1[59];
- u32 nonshu_rsv;
- u32 test2_a0;
- u32 test2_a2;
- u32 test2_a3;
- u32 test2_a4;
- u32 dummy_rd;
- u32 dummy_rd_intv;
- u32 bus_mon1;
- u32 dramc_dbg_sel1;
- u32 dramc_dbg_sel2;
- u32 swcmd_en;
- u32 swcmd_ctrl0;
- u32 swcmd_ctrl1;
- u32 swcmd_ctrl2;
- u32 rddqcgolden1;
- u32 rddqcgolden;
- u32 rtmrw_ctrl0;
- u32 rtmrw_ctrl1;
- u32 rtmrw_ctrl2;
- u32 rtmrw_ctrl3;
- u32 cbt_wlev_ctrl0;
- u32 cbt_wlev_ctrl1;
- u32 cbt_wlev_ctrl2;
- u32 cbt_wlev_ctrl3;
- u32 cbt_wlev_ctrl4;
- u32 cbt_wlev_atk_ctrl0;
- u32 cbt_wlev_atk_ctrl1;
- u32 sref_dpd_ctrl;
- u32 cfc_ctrl;
- u32 dllfrz_ctrl;
- u32 mpc_ctrl;
- u32 hw_mrr_fun;
- u32 scheduler_com;
- u32 rsvd_2[4];
- u32 actiming_ctrl;
- u32 rsvd_3[3];
- u32 zq_set0;
- u32 zq_set1;
- u32 rsvd_4[2];
- u32 tx_tracking_set0;
- u32 rsvd_5[3];
- u32 tx_retry_set0;
- u32 rsvd_6[1];
- u32 mpc_option;
- u32 rsvd_7[1];
- u32 mrr_bit_mux1;
- u32 mrr_bit_mux2;
- u32 mrr_bit_mux3;
- u32 mrr_bit_mux4;
- u32 rsvd_8[6];
- u32 shuctrl;
- u32 dramc_pd_ctrl;
- u32 dcm_ctrl0;
- u32 ckectrl;
- u32 dvfs_ctrl0;
- u32 shuctrl1;
- u32 dvfs_timing_ctrl1;
- u32 shuctrl3;
- u32 dvfs_timing_ctrl3;
- u32 cmd_dec_ctrl0;
- u32 hmr4;
- u32 bypass_fspop;
- u32 rkcfg;
- u32 slp4_testmode;
- u32 dq_mux_set0;
- u32 dbiwr_protect;
- u32 tx_set0;
- u32 tx_cg_set0;
- u32 rx_set0;
- u32 rx_cg_set0;
- u32 dqsoscr;
- u32 dramctrl;
- u32 misctl0;
- u32 perfctl0;
- u32 arbctl;
- u32 datascr;
- u32 clkar;
- u32 refctrl0;
- u32 refctrl1;
- u32 ref_bounce1;
- u32 ref_bounce2;
- u32 rsvd_9[1];
- u32 refpend1;
- u32 refpend2;
- u32 refque_cnt;
- u32 scsmctrl;
- u32 scsmctrl_cg;
- u32 refctrl2;
- u32 tx_freq_ratio_old_mode0;
- u32 tx_freq_ratio_old_mode1;
- u32 tx_freq_ratio_old_mode2;
- u32 wdt_rst;
- u32 seda_loop_bak_err_pat_b01;
- u32 seda_loop_bak_err_pat_b23;
- u32 seda_loop_bak_err_pat_b45;
- u32 seda_loop_bak_err_pat_b67;
- u32 seda_loop_bak_set;
- u32 rsvd_10[3];
- u32 dbg_cmddec_cmdsel0;
- u32 dbg_cmddec_cmdsel1;
- u32 dbg_cmddec_cmdsel2;
- u32 dbg_cmddec_cmdsel3;
- u32 dbg_cmddec_cmdsel4;
- u32 rtswcmd_cnt;
- u32 refctrl3;
- u32 rsvd_11[1];
- u32 dramc_irq_en;
- u32 dramc_irq_clear;
- u32 irq_rsv1;
- u32 irq_rsv2;
- u32 refcnt_fr_clk1;
- u32 refcnt_fr_clk2;
- u32 refcnt_fr_clk3;
- u32 refcnt_fr_clk4;
- u32 refcnt_fr_clk5;
- u32 refcnt_fr_clk6;
- u32 refcnt_fr_clk7;
- u32 rsvd_12[1];
- u32 dcm_sub_ctrl;
- u32 rsvd_13[3];
- u32 cbt_wlev_ctrl5;
- u32 rsvd_14[3];
- u32 dram_clk_ctrl;
- u32 rsvd_15[115];
- struct dramc_ao_rk rk[RANK_MAX];
- u32 rsvd_19[256];
- u32 wdt_dbg_signal;
- u32 rsvd_20[1];
- u32 selfref_hwsave_flag;
- u32 rsvd_21[125];
- u32 dramc_irq_status1;
- u32 dramc_irq_status2;
- u32 rsvd_22[2];
- u32 dramc_irq_info1;
- u32 dramc_irq_info1a;
- u32 rsvd_23[2];
- u32 dramc_irq_info2;
- u32 dramc_irq_info3;
- u32 dramc_irq_info4;
- u32 dramc_irq_info5;
- u32 rsvd_24[180];
- struct dramc_ao_shu_rk shu_rk[RANK_MAX];
- u32 shu_matype;
- u32 shu_common0;
- u32 shu_sref_ctrl;
- u32 shu_scheduler;
- u32 shu_dcm_ctrl0;
- u32 shu_hmr4_dvfs_ctrl0;
- u32 shu_selph_ca1;
- u32 shu_selph_ca2;
- u32 shu_selph_ca3;
- u32 shu_selph_ca4;
- u32 shu_selph_ca5;
- u32 shu_selph_ca6;
- u32 shu_selph_ca7;
- u32 shu_selph_ca8;
- u32 shu_hwset_mr2;
- u32 shu_hwset_mr13;
- u32 shu_hwset_vrcg;
- u32 shu_actim0;
- u32 shu_actim1;
- u32 shu_actim2;
- u32 shu_actim3;
- u32 shu_actim4;
- u32 shu_actim5;
- u32 shu_actim6;
- u32 shu_actim_xrt;
- u32 shu_ac_time_05t;
- u32 shu_ac_derating0;
- u32 shu_ac_derating1;
- u32 shu_ac_derating_05t;
- u32 shu_actiming_conf;
- u32 shu_ckectrl;
- u32 shu_selph_dqs0;
- u32 shu_selph_dqs1;
- u32 shu_wodt;
- u32 shu_tx_set0;
- u32 shu_rx_cg_set0;
- u32 shu_dqsosc_set0;
- u32 shu_dqsoscr;
- u32 shu_tx_rankctl;
- u32 shu_zq_set0;
- u32 shu_conf0;
- u32 shu_misc;
- u32 shu_new_xrw2w_ctrl;
- u32 shu_aphy_tx_picg_ctrl;
- u32 shu_freq_ratio_set0;
- u32 shu_freq_ratio_set1;
- u32 shu_freq_ratio_set2;
- u32 shureg_rsv;
- u32 shu_wckctrl;
- u32 shu_wckctrl_1;
- u32 rsvd_28[2];
- u32 shu_rx_set0;
- u32 shu_ref0;
- u32 rsvd_29[2];
- u32 shu_lp5_cmd;
- u32 shu_lp5_sact;
- u32 shu_actim7;
-};
-
-struct emi_regs {
- u32 cona;
- u32 conp;
- u32 conb;
- u32 conq;
- u32 conc;
- u32 conr;
- u32 cond;
- u32 conp_2nd;
- u32 cone;
- u32 conq_2nd;
- u32 conf;
- u32 conr_2nd;
- u32 cong;
- u32 conb_3rd;
- u32 conh;
- u32 conh_2nd;
- u32 coni;
- u32 conb_4th;
- u32 conj;
- u32 conb_5th;
- u32 conk;
- u32 conb_6th;
- u32 rsvd_0[1];
- u32 conb_7th;
- u32 conm;
- u32 conb_8th;
- u32 conn;
- u32 conc_3rd;
- u32 cono;
- u32 conc_4th;
- u32 mdct;
- u32 mdct_2nd;
- u32 rsvd_1[1];
- u32 conc_5th;
- u32 rsvd_2[1];
- u32 conc_6th;
- u32 rsvd_3[1];
- u32 conc_7th;
- u32 rsvd_4[1];
- u32 conc_8th;
- u32 rsvd_5[9];
- u32 cong_3rd;
- u32 cong_4th;
- u32 cong_5th;
- u32 iocl;
- u32 iocl_2nd;
- u32 iocm;
- u32 iocm_2nd;
- u32 rsvd_6[1];
- u32 cong_6th;
- u32 testb;
- u32 rsvd_7[1];
- u32 testc;
- u32 cong_7th;
- u32 testd;
- u32 rsvd_8[1];
- u32 arba;
- u32 rsvd_9[1];
- u32 arbb;
- u32 rsvd_10[1];
- u32 arbc;
- u32 rsvd_11[1];
- u32 arbd;
- u32 rsvd_12[1];
- u32 arbe;
- u32 rsvd_13[1];
- u32 arbf;
- u32 cong_8th;
- u32 arbg;
- u32 rsvd_14[1];
- u32 arbh;
- u32 conp_3rd;
- u32 arbi;
- u32 arbi_2nd;
- u32 rsvd_15[1];
- u32 arbj_2nd;
- u32 arbk;
- u32 arbk_2nd;
- u32 slct;
- u32 rsvd_16[1];
- u32 mpud0_st;
- u32 mpud1_st;
- u32 mpud2_st;
- u32 mpud3_st;
- u32 mpud4_st;
- u32 mpud5_st;
- u32 mpud6_st;
- u32 mpud7_st;
- u32 mpud8_st;
- u32 mpud9_st;
- u32 mpud10_st;
- u32 mpud11_st;
- u32 mpud12_st;
- u32 mpud13_st;
- u32 mpud14_st;
- u32 mpud15_st;
- u32 mpud16_st;
- u32 mpud17_st;
- u32 mpud18_st;
- u32 mpud19_st;
- u32 mpud20_st;
- u32 mpud21_st;
- u32 mpud22_st;
- u32 mpud23_st;
- u32 mpud24_st;
- u32 mpud25_st;
- u32 mpud26_st;
- u32 mpud27_st;
- u32 mpud28_st;
- u32 mpud29_st;
- u32 mpud30_st;
- u32 mpud31_st;
- u32 conp_4th;
- u32 conp_5th;
- u32 conp_6th;
- u32 rsvd_17[1];
- u32 mpus;
- u32 conp_8th;
- u32 mput;
- u32 mput_2nd;
- u32 d0_st2;
- u32 d1_st2;
- u32 d2_st2;
- u32 d3_st2;
- u32 d4_st2;
- u32 d5_st2;
- u32 d6_st2;
- u32 d7_st2;
- u32 d8_st2;
- u32 d9_st2;
- u32 d10_st2;
- u32 d11_st2;
- u32 d12_st2;
- u32 d13_st2;
- u32 d14_st2;
- u32 d15_st2;
- u32 d16_st2;
- u32 d17_st2;
- u32 d18_st2;
- u32 d19_st2;
- u32 d20_st2;
- u32 d21_st2;
- u32 d22_st2;
- u32 d23_st2;
- u32 d24_st2;
- u32 d25_st2;
- u32 d26_st2;
- u32 d27_st2;
- u32 d28_st2;
- u32 d29_st2;
- u32 d30_st2;
- u32 d31_st2;
- u32 rsvd_18[33];
- u32 prtcl_m0_cyc;
- u32 rsvd_19[1];
- u32 prtcl_m0_ctl;
- u32 rsvd_20[1];
- u32 prtcl_m0_msk;
- u32 rsvd_21[13];
- u32 prtcl_m1_cyc;
- u32 rsvd_22[1];
- u32 prtcl_m1_ctl;
- u32 rsvd_23[1];
- u32 prtcl_m1_msk;
- u32 rsvd_24[13];
- u32 prtcl_m2_cyc;
- u32 rsvd_25[1];
- u32 prtcl_m2_ctl;
- u32 rsvd_26[1];
- u32 prtcl_m2_msk;
- u32 rsvd_27[12];
- u32 prtcl_m3_cyc;
- u32 prtcl_m3_ctl;
- u32 prtcl_m3_msk;
- u32 rsvd_28[6];
- u32 prtcl_m4_cyc;
- u32 bmen;
- u32 bstp;
- u32 bcnt;
- u32 prtcl_m4_ctl;
- u32 tact;
- u32 prtcl_m4_msk;
- u32 tsct;
- u32 rsvd_29[1];
- u32 wact;
- u32 rsvd_30[1];
- u32 wsct;
- u32 rsvd_31[1];
- u32 bact;
- u32 rsvd_32[1];
- u32 bsct;
- u32 rsvd_33[1];
- u32 msel;
- u32 rsvd_34[1];
- u32 tsct2;
- u32 prtcl_m5_cyc;
- u32 tsct3;
- u32 prtcl_m5_ctl;
- u32 wsct2;
- u32 prtcl_m5_msk;
- u32 wsct3;
- u32 wsct4;
- u32 msel2;
- u32 rsvd_35[1];
- u32 msel3;
- u32 rsvd_36[1];
- u32 msel4;
- u32 rsvd_37[1];
- u32 msel5;
- u32 rsvd_38[1];
- u32 msel6;
- u32 rsvd_39[1];
- u32 msel7;
- u32 rsvd_40[1];
- u32 msel8;
- u32 prtcl_m6_cyc;
- u32 msel9;
- u32 prtcl_m6_ctl;
- u32 msel10;
- u32 prtcl_m6_msk;
- u32 bmid0;
- u32 bmid1;
- u32 bmid2;
- u32 bmid3;
- u32 bmid4;
- u32 bmid5;
- u32 bmid6;
- u32 bmid7;
- u32 bmid8;
- u32 bmid9;
- u32 bmid10;
- u32 rsvd_41[1];
- u32 bmen1;
- u32 rsvd_42[1];
- u32 bmen2;
- u32 rsvd_43[3];
- u32 bmrw0;
- u32 bmrw1;
- u32 ttype1;
- u32 rsvd_44[1];
- u32 ttype2;
- u32 prtcl_m7_cyc;
- u32 ttype3;
- u32 prtcl_m7_ctl;
- u32 ttype4;
- u32 prtcl_m7_msk;
- u32 ttype5;
- u32 rsvd_45[1];
- u32 ttype6;
- u32 rsvd_46[1];
- u32 ttype7;
- u32 rsvd_47[1];
- u32 ttype8;
- u32 rsvd_48[1];
- u32 ttype9;
- u32 rsvd_49[1];
- u32 ttype10;
- u32 rsvd_50[1];
- u32 ttype11;
- u32 rsvd_51[1];
- u32 ttype12;
- u32 rsvd_52[1];
- u32 ttype13;
- u32 rsvd_53[1];
- u32 ttype14;
- u32 rsvd_54[1];
- u32 ttype15;
- u32 rsvd_55[1];
- u32 ttype16;
- u32 rsvd_56[1];
- u32 ttype17;
- u32 rsvd_57[1];
- u32 ttype18;
- u32 rsvd_58[1];
- u32 ttype19;
- u32 rsvd_59[1];
- u32 ttype20;
- u32 rsvd_60[1];
- u32 ttype21;
- u32 rsvd_61[3];
- u32 bwct0;
- u32 bwct1;
- u32 bwct2;
- u32 bwct3;
- u32 bwct4;
- u32 bwst0;
- u32 bwst1;
- u32 rsvd_62[1];
- u32 ex_con;
- u32 ex_st0;
- u32 ex_st1;
- u32 ex_st2;
- u32 wp_adr;
- u32 wp_adr_2nd;
- u32 wp_ctrl;
- u32 rsvd_63[1];
- u32 chker;
- u32 chker_type;
- u32 chker_adr;
- u32 chker_adr_2nd;
- u32 rsvd_64[7];
- u32 thro_slv_con0;
- u32 rsvd_65[1];
- u32 thro_slv_con1;
- u32 mxto0;
- u32 mxto1;
- u32 rsvd_66[4];
- u32 conq_3rd;
- u32 conq_4th;
- u32 conq_5th;
- u32 conq_6th;
- u32 rsvd_67[4];
- u32 conq_7th;
- u32 conq_8th;
- u32 conr_3rd;
- u32 conr_4th;
- u32 rsvd_68[9];
- u32 conr_5th;
- u32 rsvd_69[2];
- u32 bwct0_2nd;
- u32 rsvd_70[25];
- u32 conr_6th;
- u32 conr_7th;
- u32 shf0;
- u32 dvfs_shf_con;
- u32 shf1;
- u32 clua;
- u32 rsvd_71[10];
- u32 conr_8th;
- u32 rsvd_72[1];
- u32 ltct0_2nd;
- u32 ltct1_2nd;
- u32 ltct2_2nd;
- u32 ltct3_2nd;
- u32 rsvd_73[4];
- u32 bwct0_3rd;
- u32 bwlmte_8th;
- u32 rsvd_74[1];
- u32 bwlmtf_8th;
- u32 bwct0_4th;
- u32 bwlmtg_8th;
- u32 rsvd_75[1];
- u32 bwlmth_8th;
- u32 rsvd_76[5];
- u32 chn_hash0;
- u32 rsvd_77[2];
- u32 bwct0_5th;
- u32 rsvd_78[5];
- u32 bwct0_6th;
- u32 rsvd_79[11];
- u32 snst;
- u32 rsvd_80[1];
- u32 slva;
- u32 rsvd_81[7];
- u32 thro_os0;
- u32 thro_os1;
- u32 thro_os2;
- u32 thro_os3;
- u32 thro_ctrl0;
- u32 thro_prd0;
- u32 thro_prd1;
- u32 thro_lat0;
- u32 thro_lat1;
- u32 thro_lat2;
- u32 thro_lat3;
- u32 thro_lat4;
- u32 thro_lat5;
- u32 thro_lat6;
- u32 thro_ctrl1;
- u32 thro_prd2;
- u32 rsvd_82[5];
- u32 thro_lat7;
- u32 thro_lat8;
- u32 thro_prd3;
- u32 rsvd_83[4];
- u32 bwlmta;
- u32 bwlmtb;
- u32 rsvd_84[2];
- u32 bwlmte;
- u32 bwlmtf;
- u32 rsvd_85[2];
- u32 conb_2nd;
- u32 conc_2nd;
- u32 cong_2nd;
- u32 rsvd_86[1];
- u32 thro_lat9;
- u32 thro_lat10;
- u32 thro_lat11;
- u32 thro_lat12;
- u32 thro_lat13;
- u32 thro_lat14;
- u32 rsvd_87[2];
- u32 bwlmte_2nd;
- u32 bwlmtf_2nd;
- u32 bwlmtg_2nd;
- u32 rsvd_88[13];
- u32 bwlmte_4th;
- u32 bwlmtf_4th;
- u32 rsvd_89[2];
- u32 bwlmte_5th;
- u32 bwlmtf_5th;
- u32 bwlmtg_5th;
- u32 rsvd_90[7];
- u32 bwlmtg_7th;
- u32 rsvd_91[12];
- u32 axi_bist_adr0;
- u32 axi_bist_adr1;
- u32 axi_bist_adr2;
- u32 rsvd_92[22];
- u32 thro_lat27;
- u32 thro_lat28;
- u32 thro_lat29;
- u32 thro_lat30;
- u32 rsvd_93[64];
- u32 thro_lat31;
- u32 thro_lat32;
- u32 thro_lat33;
- u32 thro_lat34;
- u32 thro_lat35;
- u32 thro_lat36;
- u32 rsvd_94[4];
- u32 thro_lat41;
- u32 thro_lat42;
- u32 rsvd_95[12];
- u32 thro_lat55;
- u32 thro_lat56;
- u32 rsvd_96[12];
- u32 thro_lat69;
- u32 thro_lat70;
- u32 rsvd_97[12];
- u32 thro_lat83;
- u32 thro_lat84;
- u32 rsvd_98[12];
- u32 thro_lat97;
- u32 thro_lat98;
- u32 rsvd_99[12];
- u32 thro_lat111;
- u32 thro_lat112;
- u32 rsvd_100[1];
- u32 thro_prd5;
- u32 rsvd_101[12];
- u32 thro_lat113;
- u32 thro_lat114;
- u32 thro_lat115;
- u32 thro_lat116;
- u32 thro_lat117;
- u32 thro_lat118;
- u32 thro_lat119;
- u32 thro_lat120;
- u32 rsvd_102[4];
- u32 thro_lat125;
- u32 thro_lat126;
- u32 rsvd_103[16];
- u32 thro_lat139;
- u32 thro_lat140;
- u32 rsvd_104[1];
- u32 qos_mdr_be0a;
- u32 rsvd_105[1];
- u32 qos_mdr_be1a;
- u32 rsvd_106[1];
- u32 qos_mdr_shf0;
- u32 qos_mdr_shf1;
- u32 qos_mdw_be0a;
- u32 rsvd_107[1];
- u32 qos_mdw_be1a;
- u32 rsvd_108[1];
- u32 qos_mdw_shf0;
- u32 qos_mdw_shf1;
- u32 qos_apr_be0a;
- u32 rsvd_109[1];
- u32 qos_apr_be1a;
- u32 rsvd_110[1];
- u32 qos_apr_shf0;
- u32 qos_apw_be0a;
- u32 rsvd_111[1];
- u32 qos_apw_be1a;
- u32 rsvd_112[1];
- u32 qos_mmr_be0a;
- u32 rsvd_113[1];
- u32 qos_mmr_be1a;
- u32 qos_mmr_be1b;
- u32 qos_mmr_be2a;
- u32 qos_mmr_be2b;
- u32 qos_mmr_shf0;
- u32 qos_mmr_shf1;
- u32 qos_mmw_be0a;
- u32 rsvd_114[1];
- u32 qos_mmw_be1a;
- u32 qos_mmw_be1b;
- u32 qos_mmw_be2a;
- u32 qos_mmw_be2b;
- u32 qos_mmw_shf0;
- u32 qos_mmw_shf1;
- u32 qos_mdhwr_be0a;
- u32 rsvd_115[1];
- u32 qos_mdhwr_be1a;
- u32 rsvd_116[1];
- u32 qos_mdhwr_shf0;
- u32 qos_mdhww_be0a;
- u32 rsvd_117[1];
- u32 qos_mdhww_be1a;
- u32 rsvd_118[1];
- u32 qos_gpur_be0a;
- u32 rsvd_119[1];
- u32 qos_gpur_be1a;
- u32 rsvd_120[1];
- u32 qos_gpur_shf0;
- u32 qos_gpuw_be0a;
- u32 rsvd_121[1];
- u32 qos_gpuw_be1a;
- u32 rsvd_122[1];
- u32 qos_arbr_be0a;
- u32 rsvd_123[1];
- u32 qos_arbr_be1a;
- u32 rsvd_124[1];
- u32 qos_arbr_shf0;
- u32 qos_ctrl1;
- u32 rsvd_125[3];
- u32 ext_lt_con1_1st;
- u32 ext_lt_con2_1st;
- u32 ext_lt_con3_1st;
- u32 rsvd_126[1];
- u32 ext_lt_con1_2nd;
- u32 ext_lt_con2_2nd;
- u32 ext_lt_con3_2nd;
- u32 rsvd_127[1];
- u32 ext_lt_con1_3rd;
- u32 ext_lt_con2_3rd;
- u32 ext_lt_con3_3rd;
- u32 rsvd_128[1];
- u32 ext_lt_con1_4th;
- u32 ext_lt_con2_4th;
- u32 ext_lt_con3_4th;
-};
-
-struct phy_ao_rk {
- u32 shu_r0_b0_txdly0;
- u32 shu_r0_b0_txdly1;
- u32 shu_r0_b0_txdly2;
- u32 shu_r0_b0_txdly3;
- u32 shu_r0_b0_txdly4;
- u32 shu_r0_b0_rxdly0;
- u32 shu_r0_b0_rxdly1;
- u32 shu_r0_b0_rxdly2;
- u32 shu_r0_b0_rxdly3;
- u32 shu_r0_b0_rxdly4;
- u32 shu_r0_b0_rxdly5;
- u32 shu_rk_b0_dq1;
- u32 shu_b0_phy_vref_sel;
- u32 shu_r0_b0_dq0;
- u32 shu_r0_b0_ini_uipi;
- u32 shu_r0_b0_next_ini_uipi;
- u32 shu_dqsien_mck_ui_dly;
- u32 shu_rk_b0_dqsien_pi_dly;
- u32 shu_rk_b0_rodten_mck_ui_dly;
- u32 shu_rk_b0_dq0;
- u32 rsvd_0[4];
- u32 shu_rk_b0_bist_ctrl;
- u32 rsvd_1[7];
-};
-
-struct phy_ao_shu_byte {
- struct phy_ao_rk rk[RANK_MAX];
- u32 shu_b0_dq0;
- u32 shu_b0_dq3;
- u32 shu_b0_dq4;
- u32 shu_b0_dq5;
- u32 shu_b0_dq6;
- u32 shu_b0_dq1;
- u32 shu_b0_dq2;
- u32 shu_b0_dq10;
- u32 shu_b0_dq11;
- u32 shu_b0_dq7;
- u32 shu_b0_dq8;
- u32 shu_b0_dq9;
- u32 shu_b0_dq12;
- u32 shu_b0_dll0;
- u32 shu_b0_dll1;
- u32 shu_b0_dll2;
- u32 shu_b0_rank_selph_ui_dly;
- u32 shu_b0_dll_arpi2;
- u32 shu_b0_dll_arpi3;
- u32 shu_b0_txduty;
- u32 shu_b0_vref;
- u32 shu_b0_dq13;
- u32 shu_b0_dq14;
- u32 b0_shu_midpi_ctrl;
- u32 rsvd_16[8];
-};
-
-struct phy_ao_rx_dvs_byte {
- struct {
- u32 rk_b0_rxdvs0;
- u32 rk_b0_rxdvs1;
- u32 rk_b0_rxdvs2;
- u32 rk_b0_rxdvs3;
- u32 rk_b0_rxdvs4;
- u32 rsvd[27];
- } rk[RANK_MAX];
- u32 b0_lp_ctrl0;
- u32 b0_rxdvs0;
- u32 b0_rxdvs1;
- u32 b0_dll_arpi0;
- u32 b0_dll_arpi1;
- u32 b0_dll_arpi4;
- u32 b0_dll_arpi5;
- u32 b0_dq2;
- u32 b0_dq3;
- u32 b0_dq4;
- u32 b0_dq5;
- u32 b0_dq6;
- u32 b0_dq7;
- u32 b0_dq8;
- u32 b0_dq9;
- u32 b0_dq10;
- u32 b0_dq11;
- u32 b0_phy2;
- u32 b0_phy3;
- u32 b0_tx_mck;
- u32 rsvd_3[12];
-};
-
-struct phy_ao_ca_rk {
- u32 shu_r0_ca_txdly0;
- u32 shu_r0_ca_txdly1;
- u32 shu_r0_ca_txdly2;
- u32 shu_r0_ca_txdly3;
- u32 shu_r0_ca_txdly4;
- u32 shu_r0_ca_rxdly0;
- u32 shu_r0_ca_rxdly1;
- u32 shu_r0_ca_rxdly2;
- u32 shu_r0_ca_rxdly6;
- u32 shu_r0_ca_rxdly3;
- u32 shu_r0_ca_rxdly4;
- u32 shu_r0_ca_rxdly5;
- u32 shu_r0_ca_rxdly7;
- u32 shu_r0_ca_cmd0;
- u32 shu_r0_ca_ini_uipi;
- u32 shu_r0_ca_next_ini_uipi;
- u32 shu_rk_ca_dqsien_mck_ui_dly;
- u32 shu_rk_ca_dqsien_pi_dly;
- u32 shu_rk_ca_rodten_mck_ui_dly;
- u32 shu_rk_ca_cmd0;
- u32 shu_rk_ca_cmd1;
- u32 shu_ca_phy_vref_sel;
- u32 rsvd[10];
-};
-
-struct phy_ao_misc_rk {
- u32 misc_shu_rk_dqsctl;
- u32 misc_shu_rk_dqsien_picg_ctrl;
- u32 misc_shu_rk_dqscal;
- u32 rsvd[29];
-};
-
-struct ddrphy_ao_regs {
- u32 phypll0;
- u32 phypll1;
- u32 phypll2;
- u32 rsvd_0[5];
- u32 clrpll0;
- u32 rsvd_1[15];
- struct phy_ao_rx_dvs_byte dvs_b[BYTE_NUM];
- u32 rk_ca_rxdvs0;
- u32 rk_ca_rxdvs1;
- u32 rk_ca_rxdvs2;
- u32 rk_ca_rxdvs3;
- u32 rk_ca_rxdvs4;
- u32 rsvd_6[59];
- u32 ca_lp_ctrl0;
- u32 ca_rxdvs0;
- u32 ca_rxdvs1;
- u32 ca_dll_arpi0;
- u32 ca_dll_arpi1;
- u32 ca_dll_arpi4;
- u32 ca_dll_arpi5;
- u32 ca_cmd2;
- u32 ca_cmd3;
- u32 ca_cmd4;
- u32 ca_cmd5;
- u32 ca_cmd6;
- u32 ca_cmd7;
- u32 ca_cmd8;
- u32 ca_cmd9;
- u32 ca_cmd10;
- u32 ca_cmd11;
- u32 ca_phy2;
- u32 ca_phy3;
- u32 ca_tx_mck;
- u32 rsvd_7[12];
- u32 misc_stbcal;
- u32 misc_stbcal1;
- u32 misc_stbcal2;
- u32 misc_cg_ctrl0;
- u32 misc_cg_ctrl1;
- u32 misc_cg_ctrl2;
- u32 misc_cg_ctrl3;
- u32 rsvd_8[1];
- u32 misc_cg_ctrl5;
- u32 misc_cg_ctrl7;
- u32 misc_cg_ctrl9;
- u32 misc_cg_ctrl10;
- u32 misc_dvfsctl;
- u32 misc_dvfsctl2;
- u32 misc_dvfsctl3;
- u32 misc_ckmux_sel;
- u32 misc_clk_ctrl;
- u32 misc_dqsg_retry1;
- u32 misc_rdsel_track;
- u32 misc_pre_tdqsck1;
- u32 misc_cdc_ctrl;
- u32 misc_lp_ctrl;
- u32 misc_rg_dfs_ctrl;
- u32 misc_ddr_reserve;
- u32 misc_imp_ctrl1;
- u32 misc_impcal;
- u32 misc_impcal1;
- u32 misc_impedamce_ctrl1;
- u32 misc_impedamce_ctrl2;
- u32 misc_impedamce_ctrl3;
- u32 misc_impedamce_ctrl4;
- u32 misc_peripher_ctrl2;
- u32 misc_apb;
- u32 misc_extlb0;
- u32 misc_extlb1;
- u32 misc_extlb2;
- u32 misc_extlb3;
- u32 misc_extlb4;
- u32 misc_extlb5;
- u32 misc_extlb6;
- u32 misc_extlb7;
- u32 misc_extlb8;
- u32 misc_extlb9;
- u32 misc_extlb10;
- u32 misc_extlb11;
- u32 misc_extlb12;
- u32 misc_extlb13;
- u32 misc_extlb14;
- u32 misc_extlb15;
- u32 misc_extlb16;
- u32 misc_extlb17;
- u32 misc_extlb18;
- u32 misc_extlb19;
- u32 misc_extlb20;
- u32 misc_extlb21;
- u32 misc_extlb22;
- u32 misc_extlb23;
- u32 misc_extlb_rx0;
- u32 misc_extlb_rx1;
- u32 misc_extlb_rx2;
- u32 misc_extlb_rx3;
- u32 misc_extlb_rx4;
- u32 misc_extlb_rx5;
- u32 misc_extlb_rx6;
- u32 misc_extlb_rx7;
- u32 misc_extlb_rx8;
- u32 misc_extlb_rx9;
- u32 misc_extlb_rx10;
- u32 misc_extlb_rx11;
- u32 misc_extlb_rx12;
- u32 misc_extlb_rx13;
- u32 misc_extlb_rx14;
- u32 misc_extlb_rx15;
- u32 misc_extlb_rx16;
- u32 misc_extlb_rx17;
- u32 misc_extlb_rx18;
- u32 misc_extlb_rx19;
- u32 misc_extlb_rx20;
- u32 misc_sram_dma0;
- u32 misc_sram_dma1;
- u32 misc_sram_dma2;
- u32 misc_dutyscan1;
- u32 misc_miock_jit_mtr;
- u32 misc_jmeter;
- u32 misc_dvfs_emi_clk;
- u32 misc_rx_in_gate_en_ctrl;
- u32 misc_rx_in_buff_en_ctrl;
- u32 misc_ctrl0;
- u32 misc_ctrl1;
- u32 misc_ctrl2;
- u32 misc_ctrl3;
- u32 misc_ctrl4;
- u32 misc_ctrl5;
- u32 misc_ctrl6;
- u32 misc_vref_ctrl;
- u32 misc_shu_opt;
- u32 misc_rxdvs0;
- u32 misc_rxdvs2;
- u32 misc_dqsien_autok_cfg0;
- u32 misc_dline_mon_cfg;
- u32 misc_rx_autok_cfg0;
- u32 misc_rx_autok_cfg1;
- u32 rsvd_9[2];
- u32 misc_dbg_irq_ctrl0;
- u32 misc_dbg_irq_ctrl1;
- u32 misc_dbg_irq_ctrl2;
- u32 misc_dbg_irq_ctrl3;
- u32 misc_dbg_irq_ctrl4;
- u32 misc_dbg_irq_ctrl5;
- u32 misc_dbg_irq_ctrl6;
- u32 misc_dbg_irq_ctrl7;
- u32 misc_dbg_irq_ctrl8;
- u32 misc_dbg_irq_ctrl9;
- u32 rsvd_10[2];
- u32 misc_dq_se_pinmux_ctrl0;
- u32 misc_dq_se_pinmux_ctrl1;
- u32 rsvd_11[2];
- u32 misc_bist_lpbk_ctrl0;
- u32 rsvd_12[15];
- u32 shu_phypll0;
- u32 shu_phypll1;
- u32 shu_phypll2;
- u32 shu_phypll3;
- u32 shu_phypll4;
- u32 shu_phypll5;
- u32 shu_phypll6;
- u32 shu_phypll7;
- u32 shu_clrpll0;
- u32 shu_clrpll1;
- u32 shu_clrpll2;
- u32 shu_clrpll3;
- u32 shu_clrpll4;
- u32 shu_clrpll5;
- u32 shu_clrpll6;
- u32 shu_clrpll7;
- u32 shu_pll0;
- u32 shu_pll1;
- u32 shu_pll2;
- u32 rsvd_13[5];
- struct phy_ao_shu_byte byte[BYTE_NUM];
- struct phy_ao_ca_rk ca_rk[RANK_MAX];
- u32 shu_ca_cmd0;
- u32 shu_ca_cmd3;
- u32 shu_ca_cmd4;
- u32 shu_ca_cmd5;
- u32 shu_ca_cmd6;
- u32 shu_ca_cmd1;
- u32 shu_ca_cmd2;
- u32 shu_ca_cmd10;
- u32 shu_ca_cmd11;
- u32 shu_ca_cmd7;
- u32 shu_ca_cmd8;
- u32 shu_ca_cmd9;
- u32 shu_ca_cmd12;
- u32 shu_ca_dll0;
- u32 shu_ca_dll1;
- u32 shu_ca_dll2;
- u32 shu_ca_rank_selph_ui_dly;
- u32 shu_ca_dll_arpi2;
- u32 shu_ca_dll_arpi3;
- u32 shu_ca_txduty;
- u32 shu_ca_vref;
- u32 shu_ca_cmd13;
- u32 shu_ca_cmd14;
- u32 ca_shu_midpi_ctrl;
- u32 rsvd_21[8];
- struct phy_ao_misc_rk misc_rk[RANK_MAX];
- u32 misc_shu_drving7;
- u32 misc_shu_drving8;
- u32 misc_shu_impedamce_offset1;
- u32 misc_shu_impedamce_offset2;
- u32 misc_shu_impedamce_offset3;
- u32 misc_shu_impedamce_offset4;
- u32 misc_shu_impedamce_offset5;
- u32 misc_shu_impedamce_offset6;
- u32 misc_shu_impedamce_offset7;
- u32 misc_shu_impedamce_offset8;
- u32 misc_shu_impedamce_offset9;
- u32 misc_shu_impedamce_upd_dis1;
- u32 shu_misc_sw_impcal;
- u32 misc_shu_stbcal;
- u32 misc_shu_stbcal1;
- u32 misc_shu_dvfsdll;
- u32 misc_shu_rankctl;
- u32 misc_shu_phy_rx_ctrl;
- u32 misc_shu_odtctrl;
- u32 misc_shu_rodtenstb;
- u32 misc_shu_rodtenstb1;
- u32 misc_shu_dqsg_retry1;
- u32 misc_shu_rdat;
- u32 misc_shu_rdat1;
- u32 shu_misc_clk_ctrl0;
- u32 shu_misc_impcal1;
- u32 shu_misc_drving1;
- u32 shu_misc_drving2;
- u32 shu_misc_drving3;
- u32 shu_misc_drving4;
- u32 shu_misc_drving5;
- u32 shu_misc_drving6;
- u32 shu_misc_duty_scan;
- u32 shu_misc_dma;
- u32 shu_misc_rvref;
- u32 shu_misc_rx_pipe_ctrl;
- u32 shu_misc_tx_pipe_ctrl;
- u32 shu_misc_emi_ctrl;
- u32 shu_misc_rank_sel_stb;
- u32 shu_misc_rdsel_track;
- u32 shu_misc_pre_tdqsck;
- u32 shu_misc_async_fifo_ctrl;
- u32 misc_shu_rx_selph_mode;
- u32 misc_shu_rank_sel_lat;
- u32 misc_shu_dline_mon_ctrl;
- u32 misc_shu_dline_mon_cnt;
- u32 misc_shu_midpi_ctrl;
- u32 rsvd_23[1];
- u32 misc_shu_rx_cg_ctrl;
- u32 misc_shu_cg_ctrl0;
- u32 rsvd_24[470];
- u32 misc_stberr_all;
- u32 misc_stberr_rk0_r;
- u32 misc_stberr_rk0_f;
- u32 misc_stberr_rk1_r;
- u32 misc_stberr_rk1_f;
- u32 rsvd_25[3];
- u32 misc_ddr_reserve_state;
- u32 rsvd_26[3];
- u32 misc_irq_status0;
- u32 misc_irq_status1;
- u32 misc_irq_status2;
- u32 rsvd_27[49];
- u32 misc_dbg_db_message0;
- u32 misc_dbg_db_message1;
- u32 misc_dbg_db_message2;
- u32 misc_dbg_db_message3;
- u32 misc_dbg_db_message4;
- u32 misc_dbg_db_message5;
- u32 misc_dbg_db_message6;
- u32 misc_dbg_db_message7;
-};
-
-struct emi_chn_regs {
- u32 cona;
- u32 rsvd_0[1];
- u32 conb;
- u32 rsvd_1[1];
- u32 conc;
- u32 rsvd_2[1];
- u32 mdct;
- u32 rsvd_3[1];
- u32 ebg_con;
- u32 rsvd_4[9];
- u32 testb;
- u32 rsvd_5[1];
- u32 testc;
- u32 rsvd_6[1];
- u32 testd;
- u32 rsvd_7[9];
- u32 md_pre_mask;
- u32 rsvd_8[1];
- u32 md_pre_mask_shf;
- u32 rsvd_9[1];
- u32 ap_early_cke;
- u32 rsvd_10[1];
- u32 dqfr;
- u32 rsvd_11[41];
- u32 arbi;
- u32 arbi_2nd;
- u32 arbj;
- u32 arbj_2nd;
- u32 arbk;
- u32 arbk_2nd;
- u32 slct;
- u32 arb_rff;
- u32 rsvd_12[3];
- u32 drs_mon0;
- u32 drs_mon1;
- u32 rsvd_13[15];
- u32 rkarb0;
- u32 rkarb1;
- u32 rkarb2;
- u32 rsvd_14[144];
- u32 eco3;
- u32 rsvd_15[1];
- u32 md_pre_mask_shf0;
- u32 md_pre_mask_shf1;
- u32 qos_mdr_shf0;
- u32 rsvd_16[192];
- u32 shf0;
-};
-
-struct emi_mpu_regs {
- u32 mpu_ctrl;
- u32 rsvd[511];
- u32 mpu_ctrl_d[16];
-};
-
-struct infra_ao_mem_regs {
- u32 rsvd_0[10];
- u32 emi_dcm_cfg0;
- u32 emi_dcm_cfg1;
- u32 emi_dcm_cfg2;
- u32 emi_dcm_cfg3;
- u32 top_ck_anchor_cfg;
- u32 rsvd_2[5];
- u32 emi_disph_cfg;
- u32 rsvd_3[43];
- u32 emi_idle_bit_en_0;
- u32 emi_idle_bit_en_1;
- u32 emi_idle_bit_en_2;
- u32 emi_idle_bit_en_3;
- u32 emi_m0m1_idle_bit_en_0;
- u32 emi_m0m1_idle_bit_en_1;
- u32 emi_m0m1_idle_bit_en_2;
- u32 emi_m0m1_idle_bit_en_3;
- u32 emi_m2m5_idle_bit_en_0;
- u32 emi_m2m5_idle_bit_en_1;
- u32 emi_m2m5_idle_bit_en_2;
- u32 emi_m2m5_idle_bit_en_3;
- u32 emi_m3_idle_bit_en_0;
- u32 emi_m3_idle_bit_en_1;
- u32 emi_m3_idle_bit_en_2;
- u32 emi_m3_idle_bit_en_3;
- u32 emi_m4_idle_bit_en_0;
- u32 emi_m4_idle_bit_en_1;
- u32 emi_m4_idle_bit_en_2;
- u32 emi_m4_idle_bit_en_3;
- u32 emi_m6m7_idle_bit_en_0;
- u32 emi_m6m7_idle_bit_en_1;
- u32 emi_m6m7_idle_bit_en_2;
- u32 emi_m6m7_idle_bit_en_3;
- u32 emi_sram_idle_bit_en_0;
- u32 emi_sram_idle_bit_en_1;
- u32 emi_sram_idle_bit_en_2;
- u32 emi_sram_idle_bit_en_3;
-};
-
-struct dramc_channel_regs {
- union {
- struct dramc_ao_regs ao;
- uint8_t raw_ao_regs[0x4000];
- };
- union {
- struct dramc_nao_regs nao;
- uint8_t raw_nao_regs[0x1000];
- };
- union {
- struct emi_chn_regs emi_chn;
- uint8_t raw_emi_regs[0x1000];
- };
- union {
- struct ddrphy_nao_regs phy_nao;
- uint8_t raw_ddrphy_nao_regs[0x2000];
- };
- union {
- struct ddrphy_ao_regs phy_ao;
- uint8_t raw_ddrphy_ao_regs[0x8000];
- };
-};
-
-static struct dramc_channel_regs *const ch = (void *)DRAMC_CHA_AO_BASE;
-#endif /* __SOC_MEDIATEK_MT8192_DRAMC_REGISTER_H__ */
diff --git a/src/soc/mediatek/mt8192/include/soc/dramc_register_bits_def.h b/src/soc/mediatek/mt8192/include/soc/dramc_register_bits_def.h
deleted file mode 100644
index 82ae8b587c..0000000000
--- a/src/soc/mediatek/mt8192/include/soc/dramc_register_bits_def.h
+++ /dev/null
@@ -1,2837 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#ifndef __SOC_MEDIATEK_MT8192_DRAMC_MACRO_DEF_H__
-#define __SOC_MEDIATEK_MT8192_DRAMC_MACRO_DEF_H__
-
-/* DDRPHY_REG_PHYPLL1 */
-DEFINE_BIT(PHYPLL1_RG_RPHYPLL_TSTOP_EN, 0)
-DEFINE_BIT(PHYPLL1_RG_RPHYPLL_TST_EN, 4)
-
-/* DDRPHY_REG_SHU_PHYPLL0 */
-DEFINE_BITFIELD(SHU_PHYPLL0_RG_RPHYPLL_RESERVED, 15, 0)
-DEFINE_BITFIELD(SHU_PHYPLL0_RG_RPHYPLL_ICHP, 25, 24)
-
-/* DDRPHY_REG_SHU_CLRPLL0 */
-DEFINE_BITFIELD(SHU_CLRPLL0_RG_RCLRPLL_RESERVED, 15, 0)
-DEFINE_BITFIELD(SHU_CLRPLL0_RG_RCLRPLL_ICHP, 25, 24)
-
-/* DDRPHY_REG_SHU_PHYPLL2 */
-DEFINE_BITFIELD(SHU_PHYPLL2_RG_RPHYPLL_POSDIV, 2, 0)
-DEFINE_BITFIELD(SHU_PHYPLL2_RG_RPHYPLL_PREDIV, 19, 18)
-
-/* DDRPHY_REG_SHU_CLRPLL2 */
-DEFINE_BITFIELD(SHU_CLRPLL2_RG_RCLRPLL_POSDIV, 2, 0)
-DEFINE_BITFIELD(SHU_CLRPLL2_RG_RCLRPLL_PREDIV, 19, 18)
-
-/* DDRPHY_REG_SHU_PHYPLL1 */
-DEFINE_BIT(SHU_PHYPLL1_RG_RPHYPLL_SDM_FRA_EN, 0)
-DEFINE_BIT(SHU_PHYPLL1_RG_RPHYPLL_SDM_PCW_CHG, 1)
-DEFINE_BITFIELD(SHU_PHYPLL1_RG_RPHYPLL_SDM_PCW, 31, 16)
-
-/* DDRPHY_REG_SHU_CLRPLL1 */
-DEFINE_BIT(SHU_CLRPLL1_RG_RCLRPLL_SDM_FRA_EN, 0)
-DEFINE_BIT(SHU_CLRPLL1_RG_RCLRPLL_SDM_PCW_CHG, 1)
-DEFINE_BITFIELD(SHU_CLRPLL1_RG_RCLRPLL_SDM_PCW, 31, 16)
-
-/* DDRPHY_REG_SHU_PLL1 */
-DEFINE_BIT(SHU_PLL1_RG_RPHYPLLGP_CK_SEL, 0)
-DEFINE_BIT(SHU_PLL1_R_SHU_AUTO_PLL_MUX, 4)
-
-/* DDRPHY_REG_SHU_PHYPLL3 */
-DEFINE_BIT(SHU_PHYPLL3_RG_RPHYPLL_DIV_CK_SEL, 0)
-DEFINE_BIT(SHU_PHYPLL3_RG_RPHYPLL_FBKSEL, 6)
-DEFINE_BITFIELD(SHU_PHYPLL3_RG_RPHYPLL_RST_DLY, 9, 8)
-DEFINE_BIT(SHU_PHYPLL3_RG_RPHYPLL_LVROD_EN, 12)
-DEFINE_BIT(SHU_PHYPLL3_RG_RPHYPLL_MONCK_EN, 16)
-
-/* DDRPHY_REG_SHU_CLRPLL3 */
-DEFINE_BIT(SHU_CLRPLL3_RG_RCLRPLL_DIV_CK_SEL, 0)
-DEFINE_BIT(SHU_CLRPLL3_RG_RCLRPLL_FBKSEL, 6)
-DEFINE_BITFIELD(SHU_CLRPLL3_RG_RCLRPLL_RST_DLY, 9, 8)
-DEFINE_BIT(SHU_CLRPLL3_RG_RCLRPLL_LVROD_EN, 12)
-DEFINE_BIT(SHU_CLRPLL3_RG_RCLRPLL_MONCK_EN, 16)
-
-/* DDRPHY_REG_SHU_MISC_CLK_CTRL0 */
-DEFINE_BIT(SHU_MISC_CLK_CTRL0_M_CK_OPENLOOP_MODE_SEL, 4)
-
-/* DDRPHY_REG_SHU_B0_DQ14 */
-DEFINE_BIT(SHU_B0_DQ14_RG_TX_ARWCK_MCKIO_SEL_B0, 2)
-DEFINE_BITFIELD(SHU_B0_DQ14_RG_TX_ARDQ_SER_MODE_B0, 5, 4)
-DEFINE_BIT(SHU_B0_DQ14_RG_TX_ARDQ_OE_ODTEN_CG_EN_B0, 11)
-DEFINE_BITFIELD(SHU_B0_DQ14_RG_TX_ARDQ_MCKIO_SEL_B0, 23, 16)
-
-/* DDRPHY_REG_SHU_B1_DQ14 */
-DEFINE_BIT(SHU_B1_DQ14_RG_TX_ARWCK_MCKIO_SEL_B1, 2)
-DEFINE_BITFIELD(SHU_B1_DQ14_RG_TX_ARDQ_SER_MODE_B1, 5, 4)
-DEFINE_BIT(SHU_B1_DQ14_RG_TX_ARDQ_OE_ODTEN_CG_EN_B1, 11)
-DEFINE_BITFIELD(SHU_B1_DQ14_RG_TX_ARDQ_MCKIO_SEL_B1, 23, 16)
-
-/* DDRPHY_REG_SHU_B0_DQ6 */
-DEFINE_BITFIELD(SHU_B0_DQ6_RG_ARPI_CAP_SEL_B0, 18, 12)
-DEFINE_BIT(SHU_B0_DQ6_RG_ARPI_SOPEN_EN_B0, 20)
-DEFINE_BIT(SHU_B0_DQ6_RG_ARPI_OPEN_EN_B0, 21)
-DEFINE_BITFIELD(SHU_B0_DQ6_RG_ARPI_HYST_SEL_B0, 23, 22)
-DEFINE_BIT(SHU_B0_DQ6_RG_RX_ARDQ_RANK_SEL_SER_MODE_B0, 29)
-
-/* DDRPHY_REG_SHU_B1_DQ6 */
-DEFINE_BITFIELD(SHU_B1_DQ6_RG_ARPI_CAP_SEL_B1, 18, 12)
-DEFINE_BIT(SHU_B1_DQ6_RG_ARPI_SOPEN_EN_B1, 20)
-DEFINE_BIT(SHU_B1_DQ6_RG_ARPI_OPEN_EN_B1, 21)
-DEFINE_BITFIELD(SHU_B1_DQ6_RG_ARPI_HYST_SEL_B1, 23, 22)
-DEFINE_BIT(SHU_B1_DQ6_RG_RX_ARDQ_RANK_SEL_SER_MODE_B1, 29)
-
-/* DDRPHY_REG_SHU_CA_CMD11 */
-DEFINE_BIT(SHU_CA_CMD11_RG_RX_ARCA_RANK_SEL_SER_EN_CA, 0)
-DEFINE_BIT(SHU_CA_CMD11_RG_RX_ARCA_RANK_SEL_LAT_EN_CA, 1)
-DEFINE_BIT(SHU_CA_CMD11_RG_RX_ARCA_OFFSETC_LAT_EN_CA, 2)
-DEFINE_BITFIELD(SHU_CA_CMD11_RG_RX_ARCA_DES_MODE_CA, 17, 16)
-DEFINE_BITFIELD(SHU_CA_CMD11_RG_RX_ARCA_BW_SEL_CA, 19, 18)
-
-/* DDRPHY_REG_SHU_B0_DQ11 */
-DEFINE_BIT(SHU_B0_DQ11_RG_RX_ARDQ_RANK_SEL_SER_EN_B0, 0)
-DEFINE_BIT(SHU_B0_DQ11_RG_RX_ARDQ_RANK_SEL_LAT_EN_B0, 1)
-DEFINE_BIT(SHU_B0_DQ11_RG_RX_ARDQ_OFFSETC_LAT_EN_B0, 2)
-DEFINE_BIT(SHU_B0_DQ11_RG_RX_ARDQ_DVS_EN_B0, 7)
-DEFINE_BITFIELD(SHU_B0_DQ11_RG_RX_ARDQ_DES_MODE_B0, 17, 16)
-DEFINE_BITFIELD(SHU_B0_DQ11_RG_RX_ARDQ_BW_SEL_B0, 19, 18)
-
-/* DDRPHY_REG_SHU_B1_DQ11 */
-DEFINE_BIT(SHU_B1_DQ11_RG_RX_ARDQ_RANK_SEL_SER_EN_B1, 0)
-DEFINE_BIT(SHU_B1_DQ11_RG_RX_ARDQ_RANK_SEL_LAT_EN_B1, 1)
-DEFINE_BIT(SHU_B1_DQ11_RG_RX_ARDQ_OFFSETC_LAT_EN_B1, 2)
-DEFINE_BIT(SHU_B1_DQ11_RG_RX_ARDQ_DVS_EN_B1, 7)
-DEFINE_BITFIELD(SHU_B1_DQ11_RG_RX_ARDQ_DES_MODE_B1, 17, 16)
-DEFINE_BITFIELD(SHU_B1_DQ11_RG_RX_ARDQ_BW_SEL_B1, 19, 18)
-
-/* DDRPHY_REG_SHU_CA_CMD14 */
-DEFINE_BITFIELD(SHU_CA_CMD14_RG_TX_ARCA_SER_MODE_CA, 5, 4)
-DEFINE_BIT(SHU_CA_CMD14_RG_TX_ARCA_OE_ODTEN_CG_EN_CA, 11)
-DEFINE_BITFIELD(SHU_CA_CMD14_RG_TX_ARCA_MCKIO_SEL_CA, 23, 16)
-
-/* DDRPHY_REG_SHU_CA_CMD6 */
-DEFINE_BITFIELD(SHU_CA_CMD6_RG_ARPI_OFFSET_DQSIEN_CA, 5, 0)
-DEFINE_BITFIELD(SHU_CA_CMD6_RG_ARPI_CAP_SEL_CA, 18, 12)
-DEFINE_BIT(SHU_CA_CMD6_RG_ARPI_SOPEN_EN_CA, 20)
-DEFINE_BIT(SHU_CA_CMD6_RG_ARPI_OPEN_EN_CA, 21)
-DEFINE_BITFIELD(SHU_CA_CMD6_RG_ARPI_HYST_SEL_CA, 23, 22)
-DEFINE_BIT(SHU_CA_CMD6_RG_ARPI_SOPEN_CKGEN_EN_CA, 26)
-DEFINE_BIT(SHU_CA_CMD6_RG_ARPI_SOPEN_CKGEN_DIV_CA, 27)
-DEFINE_BIT(SHU_CA_CMD6_RG_RX_ARCMD_RANK_SEL_SER_MODE, 29)
-
-/* DDRPHY_REG_SHU_B0_DLL1 */
-DEFINE_BIT(SHU_B0_DLL1_RG_ARDLL_UDIV_EN_B0, 4)
-DEFINE_BIT(SHU_B0_DLL1_RG_ARDLL_TRACKING_CA_EN_B0, 6)
-DEFINE_BITFIELD(SHU_B0_DLL1_RG_ARDLL_SER_MODE_B0, 9, 8)
-DEFINE_BIT(SHU_B0_DLL1_RG_ARDLL_PS_EN_B0, 10)
-DEFINE_BIT(SHU_B0_DLL1_RG_ARDLL_PSJP_EN_B0, 11)
-DEFINE_BIT(SHU_B0_DLL1_RG_ARDLL_PHDIV_B0, 12)
-DEFINE_BIT(SHU_B0_DLL1_RG_ARDLL_PHDET_OUT_SEL_B0, 13)
-DEFINE_BIT(SHU_B0_DLL1_RG_ARDLL_PHDET_IN_SWAP_B0, 14)
-DEFINE_BIT(SHU_B0_DLL1_RG_ARDLL_PHDET_EN_B0, 16)
-DEFINE_BITFIELD(SHU_B0_DLL1_RG_ARDLL_PGAIN_B0, 23, 20)
-DEFINE_BIT(SHU_B0_DLL1_RG_ARDLL_PD_CK_SEL_B0, 24)
-
-/* DDRPHY_REG_SHU_B1_DLL1 */
-DEFINE_BIT(SHU_B1_DLL1_RG_ARDLL_UDIV_EN_B1, 4)
-DEFINE_BIT(SHU_B1_DLL1_RG_ARDLL_TRACKING_CA_EN_B1, 6)
-DEFINE_BITFIELD(SHU_B1_DLL1_RG_ARDLL_SER_MODE_B1, 9, 8)
-DEFINE_BIT(SHU_B1_DLL1_RG_ARDLL_PS_EN_B1, 10)
-DEFINE_BIT(SHU_B1_DLL1_RG_ARDLL_PSJP_EN_B1, 11)
-DEFINE_BIT(SHU_B1_DLL1_RG_ARDLL_PHDIV_B1, 12)
-DEFINE_BIT(SHU_B1_DLL1_RG_ARDLL_PHDET_OUT_SEL_B1, 13)
-DEFINE_BIT(SHU_B1_DLL1_RG_ARDLL_PHDET_IN_SWAP_B1, 14)
-DEFINE_BIT(SHU_B1_DLL1_RG_ARDLL_PHDET_EN_B1, 16)
-DEFINE_BITFIELD(SHU_B1_DLL1_RG_ARDLL_PGAIN_B1, 23, 20)
-DEFINE_BIT(SHU_B1_DLL1_RG_ARDLL_PD_CK_SEL_B1, 24)
-
-/* DDRPHY_REG_SHU_CA_DLL1 */
-DEFINE_BIT(SHU_CA_DLL1_RG_ARDLL_UDIV_EN_CA, 4)
-DEFINE_BITFIELD(SHU_CA_DLL1_RG_ARDLL_SER_MODE_CA, 9, 8)
-DEFINE_BIT(SHU_CA_DLL1_RG_ARDLL_PS_EN_CA, 10)
-DEFINE_BIT(SHU_CA_DLL1_RG_ARDLL_PSJP_EN_CA, 11)
-DEFINE_BIT(SHU_CA_DLL1_RG_ARDLL_PHDIV_CA, 12)
-DEFINE_BIT(SHU_CA_DLL1_RG_ARDLL_PHDET_OUT_SEL_CA, 13)
-DEFINE_BIT(SHU_CA_DLL1_RG_ARDLL_PHDET_IN_SWAP_CA, 14)
-DEFINE_BIT(SHU_CA_DLL1_RG_ARDLL_PHDET_EN_CA, 16)
-DEFINE_BITFIELD(SHU_CA_DLL1_RG_ARDLL_PGAIN_CA, 23, 20)
-DEFINE_BIT(SHU_CA_DLL1_RG_ARDLL_PD_CK_SEL_CA, 24)
-
-/* DDRPHY_REG_SHU_B0_DQ1 */
-DEFINE_BIT(SHU_B0_DQ1_RG_ARPI_MIDPI_EN_B0, 0)
-DEFINE_BIT(SHU_B0_DQ1_RG_ARPI_MIDPI_CKDIV4_EN_B0, 2)
-DEFINE_BITFIELD(SHU_B0_DQ1_RG_ARPI_MIDPI_8PH_DLY_B0, 12, 8)
-DEFINE_BITFIELD(SHU_B0_DQ1_RG_ARPI_MIDPI_LDO_VREF_SEL_B0, 17, 16)
-DEFINE_BIT(SHU_B0_DQ1_RG_ARPI_8PHASE_XLATCH_FORCE_B0, 26)
-DEFINE_BIT(SHU_B0_DQ1_RG_ARPI_MIDPI_DUMMY_EN_B0, 27)
-DEFINE_BIT(SHU_B0_DQ1_RG_ARPI_MIDPI_BYPASS_EN_B0, 31)
-
-/* DDRPHY_REG_SHU_B1_DQ1 */
-DEFINE_BIT(SHU_B1_DQ1_RG_ARPI_MIDPI_EN_B1, 0)
-DEFINE_BIT(SHU_B1_DQ1_RG_ARPI_MIDPI_CKDIV4_EN_B1, 2)
-DEFINE_BITFIELD(SHU_B1_DQ1_RG_ARPI_MIDPI_8PH_DLY_B1, 12, 8)
-DEFINE_BITFIELD(SHU_B1_DQ1_RG_ARPI_MIDPI_LDO_VREF_SEL_B1, 17, 16)
-DEFINE_BIT(SHU_B1_DQ1_RG_ARPI_8PHASE_XLATCH_FORCE_B1, 26)
-DEFINE_BIT(SHU_B1_DQ1_RG_ARPI_MIDPI_DUMMY_EN_B1, 27)
-DEFINE_BIT(SHU_B1_DQ1_RG_ARPI_MIDPI_BYPASS_EN_B1, 31)
-
-/* DDRPHY_REG_SHU_CA_DLL_ARPI3 */
-DEFINE_BIT(SHU_CA_DLL_ARPI3_RG_ARPI_CLKIEN_EN, 11)
-DEFINE_BIT(SHU_CA_DLL_ARPI3_RG_ARPI_CMD_EN, 13)
-DEFINE_BIT(SHU_CA_DLL_ARPI3_RG_ARPI_CLK_EN, 15)
-DEFINE_BIT(SHU_CA_DLL_ARPI3_RG_ARPI_CS_EN, 16)
-DEFINE_BIT(SHU_CA_DLL_ARPI3_RG_ARPI_FB_EN_CA, 17)
-DEFINE_BIT(SHU_CA_DLL_ARPI3_RG_ARPI_MCTL_EN_CA, 19)
-
-/* DDRPHY_REG_SHU_CA_CMD13 */
-DEFINE_BIT(SHU_CA_CMD13_RG_TX_ARCA_IO_ODT_DIS_CA, 0)
-DEFINE_BIT(SHU_CA_CMD13_RG_TX_ARCA_FRATE_EN_CA, 1)
-DEFINE_BIT(SHU_CA_CMD13_RG_TX_ARCA_DLY_LAT_EN_CA, 2)
-DEFINE_BIT(SHU_CA_CMD13_RG_TX_ARCLK_OE_ODTEN_CG_EN_CA, 7)
-DEFINE_BIT(SHU_CA_CMD13_RG_TX_ARCS_OE_ODTEN_CG_EN_CA, 16)
-DEFINE_BIT(SHU_CA_CMD13_RG_TX_ARCLKB_READ_BASE_DATA_TIE_EN_CA, 17)
-DEFINE_BIT(SHU_CA_CMD13_RG_TX_ARCLKB_OE_TIE_SEL_CA, 24)
-DEFINE_BIT(SHU_CA_CMD13_RG_TX_ARCLKB_OE_TIE_EN_CA, 25)
-
-/* DDRPHY_REG_SHU_CA_CMD1 */
-DEFINE_BIT(SHU_CA_CMD1_RG_ARPI_MIDPI_EN_CA, 0)
-DEFINE_BIT(SHU_CA_CMD1_RG_ARPI_MIDPI_CKDIV4_PREDIV_EN_CA, 1)
-DEFINE_BIT(SHU_CA_CMD1_RG_ARPI_MIDPI_CKDIV4_EN_CA, 2)
-DEFINE_BITFIELD(SHU_CA_CMD1_RG_ARPI_MIDPI_8PH_DLY_CA, 12, 8)
-DEFINE_BITFIELD(SHU_CA_CMD1_RG_ARPI_MIDPI_LDO_VREF_SEL_CA, 17, 16)
-DEFINE_BIT(SHU_CA_CMD1_RG_ARPI_MIDPI_DUMMY_EN_CA, 27)
-DEFINE_BIT(SHU_CA_CMD1_RG_ARPI_MIDPI_BYPASS_EN_CA, 31)
-
-/* DDRPHY_REG_SHU_CA_DLL_ARPI2 */
-DEFINE_BIT(SHU_CA_DLL_ARPI2_RG_ARPI_MPDIV_CG_CA, 10)
-DEFINE_BIT(SHU_CA_DLL_ARPI2_RG_ARPI_CG_CLKIEN, 11)
-DEFINE_BIT(SHU_CA_DLL_ARPI2_RG_ARPI_CG_CMD, 13)
-DEFINE_BIT(SHU_CA_DLL_ARPI2_RG_ARPI_CG_CLK, 15)
-DEFINE_BIT(SHU_CA_DLL_ARPI2_RG_ARPI_CG_CS, 16)
-DEFINE_BIT(SHU_CA_DLL_ARPI2_RG_ARPI_CG_FB_CA, 17)
-DEFINE_BIT(SHU_CA_DLL_ARPI2_RG_ARPI_CG_MCTL_CA, 19)
-DEFINE_BIT(SHU_CA_DLL_ARPI2_RG_ARPI_CG_MCK_FB2DLL_CA, 27)
-DEFINE_BIT(SHU_CA_DLL_ARPI2_RG_ARPI_CG_MCK_CA, 31)
-
-/* DDRPHY_REG_CA_DLL_ARPI5 */
-DEFINE_BITFIELD(CA_DLL_ARPI5_RG_ARDLL_MON_SEL_CA, 7, 4)
-DEFINE_BIT(CA_DLL_ARPI5_RG_ARDLL_DIV_DEC_CA, 8)
-DEFINE_BIT(CA_DLL_ARPI5_RG_ARDLL_FJ_OUT_MODE_SEL_CA, 25)
-DEFINE_BIT(CA_DLL_ARPI5_RG_ARDLL_FJ_OUT_MODE_CA, 26)
-DEFINE_BIT(CA_DLL_ARPI5_RG_ARDLL_IDLE_EN_CA, 28)
-DEFINE_BITFIELD(CA_DLL_ARPI5_RG_ARDLL_PD_ZONE_CA, 31, 29)
-
-/* DDRPHY_REG_B0_DLL_ARPI5 */
-DEFINE_BITFIELD(B0_DLL_ARPI5_RG_ARDLL_MON_SEL_B0, 7, 4)
-DEFINE_BIT(B0_DLL_ARPI5_RG_ARDLL_DIV_DEC_B0, 8)
-DEFINE_BIT(B0_DLL_ARPI5_RG_ARDLL_FJ_OUT_MODE_SEL_B0, 25)
-DEFINE_BIT(B0_DLL_ARPI5_RG_ARDLL_FJ_OUT_MODE_B0, 26)
-DEFINE_BIT(B0_DLL_ARPI5_RG_ARDLL_IDLE_EN_B0, 28)
-DEFINE_BITFIELD(B0_DLL_ARPI5_RG_ARDLL_PD_ZONE_B0, 31, 29)
-
-/* DDRPHY_REG_B1_DLL_ARPI5 */
-DEFINE_BITFIELD(B1_DLL_ARPI5_RG_ARDLL_MON_SEL_B1, 7, 4)
-DEFINE_BIT(B1_DLL_ARPI5_RG_ARDLL_DIV_DEC_B1, 8)
-DEFINE_BIT(B1_DLL_ARPI5_RG_ARDLL_FJ_OUT_MODE_SEL_B1, 25)
-DEFINE_BIT(B1_DLL_ARPI5_RG_ARDLL_FJ_OUT_MODE_B1, 26)
-DEFINE_BIT(B1_DLL_ARPI5_RG_ARDLL_IDLE_EN_B1, 28)
-DEFINE_BITFIELD(B1_DLL_ARPI5_RG_ARDLL_PD_ZONE_B1, 31, 29)
-
-/* DDRPHY_REG_CA_DLL_ARPI1 */
-DEFINE_BIT(CA_DLL_ARPI1_RG_ARPI_CLKIEN_JUMP_EN, 11)
-DEFINE_BIT(CA_DLL_ARPI1_RG_ARPI_CMD_JUMP_EN, 13)
-DEFINE_BIT(CA_DLL_ARPI1_RG_ARPI_CLK_JUMP_EN, 15)
-DEFINE_BIT(CA_DLL_ARPI1_RG_ARPI_CS_JUMP_EN, 16)
-DEFINE_BIT(CA_DLL_ARPI1_RG_ARPI_FB_JUMP_EN_CA, 17)
-DEFINE_BIT(CA_DLL_ARPI1_RG_ARPI_MCTL_JUMP_EN_CA, 19)
-DEFINE_BIT(CA_DLL_ARPI1_RG_ARPISM_MCK_SEL_CA_REG_OPT, 20)
-DEFINE_BIT(CA_DLL_ARPI1_RG_ARPISM_MCK_SEL_CA, 21)
-
-/* DDRPHY_REG_B0_DLL_ARPI1 */
-DEFINE_BIT(B0_DLL_ARPI1_RG_ARPI_DQSIEN_JUMP_EN_B0, 11)
-DEFINE_BIT(B0_DLL_ARPI1_RG_ARPI_DQ_JUMP_EN_B0, 13)
-DEFINE_BIT(B0_DLL_ARPI1_RG_ARPI_DQM_JUMP_EN_B0, 14)
-DEFINE_BIT(B0_DLL_ARPI1_RG_ARPI_DQS_JUMP_EN_B0, 15)
-DEFINE_BIT(B0_DLL_ARPI1_RG_ARPI_FB_JUMP_EN_B0, 17)
-DEFINE_BIT(B0_DLL_ARPI1_RG_ARPI_MCTL_JUMP_EN_B0, 19)
-DEFINE_BIT(B0_DLL_ARPI1_RG_ARPISM_MCK_SEL_B0_REG_OPT, 20)
-DEFINE_BIT(B0_DLL_ARPI1_RG_ARPISM_MCK_SEL_B0, 21)
-
-/* DDRPHY_REG_B1_DLL_ARPI1 */
-DEFINE_BIT(B1_DLL_ARPI1_RG_ARPI_DQSIEN_JUMP_EN_B1, 11)
-DEFINE_BIT(B1_DLL_ARPI1_RG_ARPI_DQ_JUMP_EN_B1, 13)
-DEFINE_BIT(B1_DLL_ARPI1_RG_ARPI_DQM_JUMP_EN_B1, 14)
-DEFINE_BIT(B1_DLL_ARPI1_RG_ARPI_DQS_JUMP_EN_B1, 15)
-DEFINE_BIT(B1_DLL_ARPI1_RG_ARPI_FB_JUMP_EN_B1, 17)
-DEFINE_BIT(B1_DLL_ARPI1_RG_ARPI_MCTL_JUMP_EN_B1, 19)
-DEFINE_BIT(B1_DLL_ARPI1_RG_ARPISM_MCK_SEL_B1_REG_OPT, 20)
-DEFINE_BIT(B1_DLL_ARPI1_RG_ARPISM_MCK_SEL_B1, 21)
-
-/* DDRPHY_REG_SHU_CA_DLL0 */
-DEFINE_BITFIELD(SHU_CA_DLL0_RG_ARDLL_IDLECNT_CA, 15, 12)
-DEFINE_BITFIELD(SHU_CA_DLL0_RG_ARDLL_GAIN_CA, 23, 20)
-DEFINE_BIT(SHU_CA_DLL0_RG_ARDLL_FAST_PSJP_CA, 25)
-DEFINE_BIT(SHU_CA_DLL0_RG_ARDLL_FASTPJ_CK_SEL_CA, 26)
-DEFINE_BIT(SHU_CA_DLL0_RG_ARDLL_GEAR2_PSJP_CA, 27)
-
-/* DDRPHY_REG_SHU_B0_DLL0 */
-DEFINE_BITFIELD(SHU_B0_DLL0_RG_ARDLL_IDLECNT_B0, 15, 12)
-DEFINE_BITFIELD(SHU_B0_DLL0_RG_ARDLL_GAIN_B0, 23, 20)
-DEFINE_BIT(SHU_B0_DLL0_RG_ARDLL_FAST_PSJP_B0, 25)
-DEFINE_BIT(SHU_B0_DLL0_RG_ARDLL_FASTPJ_CK_SEL_B0, 26)
-DEFINE_BIT(SHU_B0_DLL0_RG_ARDLL_GEAR2_PSJP_B0, 27)
-
-/* DDRPHY_REG_SHU_B1_DLL0 */
-DEFINE_BITFIELD(SHU_B1_DLL0_RG_ARDLL_IDLECNT_B1, 15, 12)
-DEFINE_BITFIELD(SHU_B1_DLL0_RG_ARDLL_GAIN_B1, 23, 20)
-DEFINE_BIT(SHU_B1_DLL0_RG_ARDLL_FAST_PSJP_B1, 25)
-DEFINE_BIT(SHU_B1_DLL0_RG_ARDLL_FASTPJ_CK_SEL_B1, 26)
-DEFINE_BIT(SHU_B1_DLL0_RG_ARDLL_GEAR2_PSJP_B1, 27)
-
-/* DDRPHY_REG_SHU_B0_DLL_ARPI3 */
-DEFINE_BIT(SHU_B0_DLL_ARPI3_RG_ARPI_DQSIEN_EN_B0, 11)
-DEFINE_BIT(SHU_B0_DLL_ARPI3_RG_ARPI_DQ_EN_B0, 13)
-DEFINE_BIT(SHU_B0_DLL_ARPI3_RG_ARPI_DQM_EN_B0, 14)
-DEFINE_BIT(SHU_B0_DLL_ARPI3_RG_ARPI_DQS_EN_B0, 15)
-DEFINE_BIT(SHU_B0_DLL_ARPI3_RG_ARPI_FB_EN_B0, 17)
-DEFINE_BIT(SHU_B0_DLL_ARPI3_RG_ARPI_MCTL_EN_B0, 19)
-
-/* DDRPHY_REG_SHU_B1_DLL_ARPI3 */
-DEFINE_BIT(SHU_B1_DLL_ARPI3_RG_ARPI_DQSIEN_EN_B1, 11)
-DEFINE_BIT(SHU_B1_DLL_ARPI3_RG_ARPI_DQ_EN_B1, 13)
-DEFINE_BIT(SHU_B1_DLL_ARPI3_RG_ARPI_DQM_EN_B1, 14)
-DEFINE_BIT(SHU_B1_DLL_ARPI3_RG_ARPI_DQS_EN_B1, 15)
-DEFINE_BIT(SHU_B1_DLL_ARPI3_RG_ARPI_FB_EN_B1, 17)
-DEFINE_BIT(SHU_B1_DLL_ARPI3_RG_ARPI_MCTL_EN_B1, 19)
-
-/* DDRPHY_REG_SHU_CA_CMD2 */
-DEFINE_BIT(SHU_CA_CMD2_RG_ARPI_TX_CG_SYNC_DIS_CA, 0)
-DEFINE_BIT(SHU_CA_CMD2_RG_ARPI_TX_CG_CA_EN_CA, 4)
-DEFINE_BIT(SHU_CA_CMD2_RG_ARPI_TX_CG_CLK_EN_CA, 5)
-DEFINE_BIT(SHU_CA_CMD2_RG_ARPI_TX_CG_CS_EN_CA, 6)
-DEFINE_BIT(SHU_CA_CMD2_RG_ARPI_SMT_XLATCH_FORCE_CLK_CA, 8)
-DEFINE_BIT(SHU_CA_CMD2_RG_ARPI_SMT_XLATCH_CA_FORCE_CA, 9)
-DEFINE_BIT(SHU_CA_CMD2_RG_ARPI_PSMUX_XLATCH_FORCE_CA_CA, 10)
-DEFINE_BIT(SHU_CA_CMD2_RG_ARPI_PSMUX_XLATCH_FORCE_CLK_CA, 11)
-DEFINE_BIT(SHU_CA_CMD2_RG_ARPISM_MCK_SEL_CA_SHU, 12)
-DEFINE_BIT(SHU_CA_CMD2_RG_ARPI_PD_MCTL_SEL_CA, 13)
-DEFINE_BIT(SHU_CA_CMD2_RG_ARPI_OFFSET_LAT_EN_CA, 16)
-DEFINE_BIT(SHU_CA_CMD2_RG_ARPI_OFFSET_ASYNC_EN_CA, 17)
-
-/* DDRPHY_REG_SHU_B0_DQ2 */
-DEFINE_BIT(SHU_B0_DQ2_RG_ARPI_TX_CG_SYNC_DIS_B0, 0)
-DEFINE_BIT(SHU_B0_DQ2_RG_ARPI_TX_CG_DQ_EN_B0, 4)
-DEFINE_BIT(SHU_B0_DQ2_RG_ARPI_TX_CG_DQS_EN_B0, 5)
-DEFINE_BIT(SHU_B0_DQ2_RG_ARPI_TX_CG_DQM_EN_B0, 6)
-DEFINE_BIT(SHU_B0_DQ2_RG_ARPI_SMT_XLATCH_FORCE_DQS_B0, 8)
-DEFINE_BIT(SHU_B0_DQ2_RG_ARPI_SMT_XLATCH_DQ_FORCE_B0, 9)
-DEFINE_BIT(SHU_B0_DQ2_RG_ARPI_PSMUX_XLATCH_FORCE_DQ_B0, 10)
-DEFINE_BIT(SHU_B0_DQ2_RG_ARPI_PSMUX_XLATCH_FORCE_DQS_B0, 11)
-DEFINE_BIT(SHU_B0_DQ2_RG_ARPISM_MCK_SEL_B0_SHU, 12)
-DEFINE_BIT(SHU_B0_DQ2_RG_ARPI_PD_MCTL_SEL_B0, 13)
-DEFINE_BIT(SHU_B0_DQ2_RG_ARPI_OFFSET_LAT_EN_B0, 16)
-DEFINE_BIT(SHU_B0_DQ2_RG_ARPI_OFFSET_ASYNC_EN_B0, 17)
-
-/* DDRPHY_REG_SHU_B1_DQ2 */
-DEFINE_BIT(SHU_B1_DQ2_RG_ARPI_TX_CG_SYNC_DIS_B1, 0)
-DEFINE_BIT(SHU_B1_DQ2_RG_ARPI_TX_CG_DQ_EN_B1, 4)
-DEFINE_BIT(SHU_B1_DQ2_RG_ARPI_TX_CG_DQS_EN_B1, 5)
-DEFINE_BIT(SHU_B1_DQ2_RG_ARPI_TX_CG_DQM_EN_B1, 6)
-DEFINE_BIT(SHU_B1_DQ2_RG_ARPI_SMT_XLATCH_FORCE_DQS_B1, 8)
-DEFINE_BIT(SHU_B1_DQ2_RG_ARPI_SMT_XLATCH_DQ_FORCE_B1, 9)
-DEFINE_BIT(SHU_B1_DQ2_RG_ARPI_PSMUX_XLATCH_FORCE_DQ_B1, 10)
-DEFINE_BIT(SHU_B1_DQ2_RG_ARPI_PSMUX_XLATCH_FORCE_DQS_B1, 11)
-DEFINE_BIT(SHU_B1_DQ2_RG_ARPISM_MCK_SEL_B1_SHU, 12)
-DEFINE_BIT(SHU_B1_DQ2_RG_ARPI_PD_MCTL_SEL_B1, 13)
-DEFINE_BIT(SHU_B1_DQ2_RG_ARPI_OFFSET_LAT_EN_B1, 16)
-DEFINE_BIT(SHU_B1_DQ2_RG_ARPI_OFFSET_ASYNC_EN_B1, 17)
-
-/* DDRPHY_REG_SHU_B0_DQ7 */
-DEFINE_BITFIELD(SHU_B0_DQ7_R_DMRANKRXDVS_B0, 3, 0)
-DEFINE_BIT(SHU_B0_DQ7_R_DMDQMDBI_EYE_SHU_B0, 6)
-DEFINE_BIT(SHU_B0_DQ7_R_DMDQMDBI_SHU_B0, 7)
-DEFINE_BITFIELD(SHU_B0_DQ7_R_DMRXDVS_DQM_FLAGSEL_B0, 11, 8)
-DEFINE_BIT(SHU_B0_DQ7_R_DMRXDVS_PBYTE_FLAG_OPT_B0, 12)
-DEFINE_BIT(SHU_B0_DQ7_R_DMRXDVS_PBYTE_DQM_EN_B0, 13)
-DEFINE_BIT(SHU_B0_DQ7_R_DMRXTRACK_DQM_EN_B0, 14)
-DEFINE_BIT(SHU_B0_DQ7_R_DMRODTEN_B0, 15)
-DEFINE_BIT(SHU_B0_DQ7_R_DMARPI_CG_FB2DLL_DCM_EN_B0, 16)
-DEFINE_BIT(SHU_B0_DQ7_R_DMTX_ARPI_CG_DQ_NEW_B0, 17)
-DEFINE_BIT(SHU_B0_DQ7_R_DMTX_ARPI_CG_DQS_NEW_B0, 18)
-DEFINE_BIT(SHU_B0_DQ7_R_DMTX_ARPI_CG_DQM_NEW_B0, 19)
-DEFINE_BIT(SHU_B0_DQ7_R_LP4Y_SDN_MODE_DQS0, 20)
-DEFINE_BIT(SHU_B0_DQ7_R_DMRXRANK_DQ_EN_B0, 24)
-DEFINE_BITFIELD(SHU_B0_DQ7_R_DMRXRANK_DQ_LAT_B0, 27, 25)
-DEFINE_BIT(SHU_B0_DQ7_R_DMRXRANK_DQS_EN_B0, 28)
-DEFINE_BITFIELD(SHU_B0_DQ7_R_DMRXRANK_DQS_LAT_B0, 31, 29)
-
-/* DDRPHY_REG_SHU_B1_DQ7 */
-DEFINE_BITFIELD(SHU_B1_DQ7_R_DMRANKRXDVS_B1, 3, 0)
-DEFINE_BIT(SHU_B1_DQ7_R_DMDQMDBI_EYE_SHU_B1, 6)
-DEFINE_BIT(SHU_B1_DQ7_R_DMDQMDBI_SHU_B1, 7)
-DEFINE_BITFIELD(SHU_B1_DQ7_R_DMRXDVS_DQM_FLAGSEL_B1, 11, 8)
-DEFINE_BIT(SHU_B1_DQ7_R_DMRXDVS_PBYTE_FLAG_OPT_B1, 12)
-DEFINE_BIT(SHU_B1_DQ7_R_DMRXDVS_PBYTE_DQM_EN_B1, 13)
-DEFINE_BIT(SHU_B1_DQ7_R_DMRXTRACK_DQM_EN_B1, 14)
-DEFINE_BIT(SHU_B1_DQ7_R_DMRODTEN_B1, 15)
-DEFINE_BIT(SHU_B1_DQ7_R_DMARPI_CG_FB2DLL_DCM_EN_B1, 16)
-DEFINE_BIT(SHU_B1_DQ7_R_DMTX_ARPI_CG_DQ_NEW_B1, 17)
-DEFINE_BIT(SHU_B1_DQ7_R_DMTX_ARPI_CG_DQS_NEW_B1, 18)
-DEFINE_BIT(SHU_B1_DQ7_R_DMTX_ARPI_CG_DQM_NEW_B1, 19)
-DEFINE_BIT(SHU_B1_DQ7_R_LP4Y_SDN_MODE_DQS1, 20)
-DEFINE_BIT(SHU_B1_DQ7_R_DMRXRANK_DQ_EN_B1, 24)
-DEFINE_BITFIELD(SHU_B1_DQ7_R_DMRXRANK_DQ_LAT_B1, 27, 25)
-DEFINE_BIT(SHU_B1_DQ7_R_DMRXRANK_DQS_EN_B1, 28)
-DEFINE_BITFIELD(SHU_B1_DQ7_R_DMRXRANK_DQS_LAT_B1, 31, 29)
-
-/* DDRPHY_REG_SHU_CA_CMD7 */
-DEFINE_BIT(SHU_CA_CMD7_R_DMTX_ARPI_CG_CMD_NEW, 17)
-DEFINE_BIT(SHU_CA_CMD7_R_DMTX_ARPI_CG_CS_NEW, 19)
-DEFINE_BIT(SHU_CA_CMD7_R_LP4Y_SDN_MODE_CLK, 20)
-
-/* DDRPHY_REG_CA_CMD6 */
-DEFINE_BIT(CA_CMD6_RG_RX_ARCMD_RES_BIAS_EN, 6)
-DEFINE_BITFIELD(CA_CMD6_RG_RX_ARCMD_BIAS_VREF_SEL, 15, 14)
-DEFINE_BIT(CA_CMD6_RG_RX_ARCMD_DDR4_SEL, 16)
-DEFINE_BIT(CA_CMD6_RG_TX_ARCMD_DDR4_SEL, 17)
-DEFINE_BIT(CA_CMD6_RG_RX_ARCMD_DDR3_SEL, 18)
-DEFINE_BIT(CA_CMD6_RG_TX_ARCMD_DDR3_SEL, 19)
-DEFINE_BIT(CA_CMD6_RG_TX_ARCMD_LP4_SEL, 21)
-
-/* DDRPHY_REG_B0_DQ6 */
-DEFINE_BIT(B0_DQ6_RG_RX_ARDQ_RES_BIAS_EN_B0, 6)
-DEFINE_BIT(B0_DQ6_RG_RX_ARDQ_OP_BIAS_SW_EN_B0, 7)
-DEFINE_BIT(B0_DQ6_RG_RX_ARDQ_O1_SEL_B0, 9)
-DEFINE_BIT(B0_DQ6_RG_RX_ARDQ_BIAS_EN_B0, 12)
-DEFINE_BITFIELD(B0_DQ6_RG_RX_ARDQ_BIAS_VREF_SEL_B0, 15, 14)
-DEFINE_BIT(B0_DQ6_RG_RX_ARDQ_DDR4_SEL_B0, 16)
-DEFINE_BIT(B0_DQ6_RG_TX_ARDQ_DDR4_SEL_B0, 17)
-DEFINE_BIT(B0_DQ6_RG_RX_ARDQ_DDR3_SEL_B0, 18)
-DEFINE_BIT(B0_DQ6_RG_TX_ARDQ_DDR3_SEL_B0, 19)
-DEFINE_BIT(B0_DQ6_RG_TX_ARDQ_LP4_SEL_B0, 21)
-DEFINE_BIT(B0_DQ6_RG_RX_ARDQ_EYE_DLY_DQS_BYPASS_B0, 28)
-DEFINE_BIT(B0_DQ6_RG_RX_ARDQ_DMRANK_OUTSEL_B0, 31)
-
-/* DDRPHY_REG_B1_DQ6 */
-DEFINE_BIT(B1_DQ6_RG_RX_ARDQ_RES_BIAS_EN_B1, 6)
-DEFINE_BIT(B1_DQ6_RG_RX_ARDQ_OP_BIAS_SW_EN_B1, 7)
-DEFINE_BIT(B1_DQ6_RG_RX_ARDQ_O1_SEL_B1, 9)
-DEFINE_BIT(B1_DQ6_RG_RX_ARDQ_BIAS_EN_B1, 12)
-DEFINE_BITFIELD(B1_DQ6_RG_RX_ARDQ_BIAS_VREF_SEL_B1, 15, 14)
-DEFINE_BIT(B1_DQ6_RG_RX_ARDQ_DDR4_SEL_B1, 16)
-DEFINE_BIT(B1_DQ6_RG_TX_ARDQ_DDR4_SEL_B1, 17)
-DEFINE_BIT(B1_DQ6_RG_RX_ARDQ_DDR3_SEL_B1, 18)
-DEFINE_BIT(B1_DQ6_RG_TX_ARDQ_DDR3_SEL_B1, 19)
-DEFINE_BIT(B1_DQ6_RG_TX_ARDQ_LP4_SEL_B1, 21)
-DEFINE_BIT(B1_DQ6_RG_RX_ARDQ_EYE_DLY_DQS_BYPASS_B1, 28)
-DEFINE_BIT(B1_DQ6_RG_RX_ARDQ_DMRANK_OUTSEL_B1, 31)
-
-/* DDRPHY_REG_CA_CMD2 */
-DEFINE_BIT(CA_CMD2_RG_TX_ARCLK_ODTEN_DIS_CA, 0)
-DEFINE_BIT(CA_CMD2_RG_TX_ARCLK_OE_DIS_CA, 1)
-DEFINE_BIT(CA_CMD2_RG_TX_ARCLK_OE_TIE_SEL_CA, 2)
-DEFINE_BIT(CA_CMD2_RG_TX_ARCLK_OE_TIE_EN_CA, 3)
-DEFINE_BIT(CA_CMD2_RG_TX_ARCS_OE_TIE_SEL_CA, 14)
-DEFINE_BIT(CA_CMD2_RG_TX_ARCS_OE_TIE_EN_CA, 15)
-DEFINE_BIT(CA_CMD2_RG_TX_ARCMD_ODTEN_DIS_CA, 20)
-DEFINE_BIT(CA_CMD2_RG_TX_ARCMD_OE_DIS_CA, 21)
-DEFINE_BIT(CA_CMD2_RG_TX_ARCA_OE_TIE_SEL_CA, 22)
-DEFINE_BITFIELD(CA_CMD2_RG_TX_ARCA_OE_TIE_EN_CA, 31, 24)
-
-/* DDRPHY_REG_B0_DQ2 */
-DEFINE_BIT(B0_DQ2_RG_TX_ARDQS0_ODTEN_DIS_B0, 0)
-DEFINE_BIT(B0_DQ2_RG_TX_ARDQS0_OE_DIS_B0, 1)
-DEFINE_BIT(B0_DQ2_RG_TX_ARDQS_OE_TIE_SEL_B0, 2)
-DEFINE_BIT(B0_DQ2_RG_TX_ARDQS_OE_TIE_EN_B0, 3)
-DEFINE_BIT(B0_DQ2_RG_TX_ARWCK_OE_TIE_SEL_B0, 8)
-DEFINE_BIT(B0_DQ2_RG_TX_ARWCK_OE_TIE_EN_B0, 9)
-DEFINE_BIT(B0_DQ2_RG_TX_ARWCKB_OE_TIE_SEL_B0, 10)
-DEFINE_BIT(B0_DQ2_RG_TX_ARWCKB_OE_TIE_EN_B0, 11)
-DEFINE_BIT(B0_DQ2_RG_TX_ARDQM0_ODTEN_DIS_B0, 12)
-DEFINE_BIT(B0_DQ2_RG_TX_ARDQM0_OE_DIS_B0, 13)
-DEFINE_BIT(B0_DQ2_RG_TX_ARDQM_OE_TIE_SEL_B0, 14)
-DEFINE_BIT(B0_DQ2_RG_TX_ARDQM_OE_TIE_EN_B0, 15)
-DEFINE_BIT(B0_DQ2_RG_TX_ARDQ_ODTEN_DIS_B0, 20)
-DEFINE_BIT(B0_DQ2_RG_TX_ARDQ_OE_DIS_B0, 21)
-DEFINE_BIT(B0_DQ2_RG_TX_ARDQ_OE_TIE_SEL_B0, 22)
-DEFINE_BITFIELD(B0_DQ2_RG_TX_ARDQ_OE_TIE_EN_B0, 31, 24)
-
-/* DDRPHY_REG_B1_DQ2 */
-DEFINE_BIT(B1_DQ2_RG_TX_ARDQS0_ODTEN_DIS_B1, 0)
-DEFINE_BIT(B1_DQ2_RG_TX_ARDQS0_OE_DIS_B1, 1)
-DEFINE_BIT(B1_DQ2_RG_TX_ARDQS_OE_TIE_SEL_B1, 2)
-DEFINE_BIT(B1_DQ2_RG_TX_ARDQS_OE_TIE_EN_B1, 3)
-DEFINE_BIT(B1_DQ2_RG_TX_ARWCK_OE_TIE_SEL_B1, 8)
-DEFINE_BIT(B1_DQ2_RG_TX_ARWCK_OE_TIE_EN_B1, 9)
-DEFINE_BIT(B1_DQ2_RG_TX_ARWCKB_OE_TIE_SEL_B1, 10)
-DEFINE_BIT(B1_DQ2_RG_TX_ARWCKB_OE_TIE_EN_B1, 11)
-DEFINE_BIT(B1_DQ2_RG_TX_ARDQM0_ODTEN_DIS_B1, 12)
-DEFINE_BIT(B1_DQ2_RG_TX_ARDQM0_OE_DIS_B1, 13)
-DEFINE_BIT(B1_DQ2_RG_TX_ARDQM_OE_TIE_SEL_B1, 14)
-DEFINE_BIT(B1_DQ2_RG_TX_ARDQM_OE_TIE_EN_B1, 15)
-DEFINE_BIT(B1_DQ2_RG_TX_ARDQ_ODTEN_DIS_B1, 20)
-DEFINE_BIT(B1_DQ2_RG_TX_ARDQ_OE_DIS_B1, 21)
-DEFINE_BIT(B1_DQ2_RG_TX_ARDQ_OE_TIE_SEL_B1, 22)
-DEFINE_BITFIELD(B1_DQ2_RG_TX_ARDQ_OE_TIE_EN_B1, 31, 24)
-
-/* DDRPHY_REG_CA_CMD3 */
-DEFINE_BIT(CA_CMD3_RG_TX_ARCMD_EN, 2)
-DEFINE_BIT(CA_CMD3_RG_ARCMD_RESETB, 3)
-
-/* DDRPHY_REG_B0_DQ3 */
-DEFINE_BIT(B0_DQ3_RG_RX_ARDQ_SMT_EN_B0, 1)
-DEFINE_BIT(B0_DQ3_RG_TX_ARDQ_EN_B0, 2)
-DEFINE_BIT(B0_DQ3_RG_ARDQ_RESETB_B0, 3)
-DEFINE_BIT(B0_DQ3_RG_RX_ARDQS0_IN_BUFF_EN_B0, 5)
-DEFINE_BIT(B0_DQ3_RG_RX_ARDQ_IN_BUFF_EN_B0, 7)
-DEFINE_BIT(B0_DQ3_RG_RX_ARDQ_STBENCMP_EN_B0, 10)
-
-/* DDRPHY_REG_B1_DQ3 */
-DEFINE_BIT(B1_DQ3_RG_RX_ARDQ_SMT_EN_B1, 1)
-DEFINE_BIT(B1_DQ3_RG_TX_ARDQ_EN_B1, 2)
-DEFINE_BIT(B1_DQ3_RG_ARDQ_RESETB_B1, 3)
-DEFINE_BIT(B1_DQ3_RG_RX_ARDQS0_IN_BUFF_EN_B1, 5)
-DEFINE_BIT(B1_DQ3_RG_RX_ARDQ_IN_BUFF_EN_B1, 7)
-DEFINE_BIT(B1_DQ3_RG_RX_ARDQ_STBENCMP_EN_B1, 10)
-
-/* DDRPHY_REG_SHU_B0_DQ13 */
-DEFINE_BIT(SHU_B0_DQ13_RG_TX_ARDQ_IO_ODT_DIS_B0, 0)
-DEFINE_BIT(SHU_B0_DQ13_RG_TX_ARDQ_DLY_LAT_EN_B0, 2)
-DEFINE_BIT(SHU_B0_DQ13_RG_TX_ARDQS_READ_BASE_EN_B0, 3)
-DEFINE_BIT(SHU_B0_DQ13_RG_TX_ARDQS_OE_ODTEN_CG_EN_B0, 7)
-DEFINE_BITFIELD(SHU_B0_DQ13_RG_TX_ARDQS_MCKIO_SEL_B0, 13, 12)
-DEFINE_BIT(SHU_B0_DQ13_RG_TX_ARDQSB_READ_BASE_EN_B0, 15)
-DEFINE_BIT(SHU_B0_DQ13_RG_TX_ARDQM_OE_ODTEN_CG_EN_B0, 16)
-DEFINE_BIT(SHU_B0_DQ13_RG_TX_ARDQSB_READ_BASE_DATA_TIE_EN_B0, 17)
-DEFINE_BIT(SHU_B0_DQ13_RG_TX_ARDQS_READ_BASE_DATA_TIE_EN_B0, 18)
-DEFINE_BIT(SHU_B0_DQ13_RG_TX_ARDQSB_OE_TIE_SEL_B0, 24)
-DEFINE_BIT(SHU_B0_DQ13_RG_TX_ARDQSB_OE_TIE_EN_B0, 25)
-
-/* DDRPHY_REG_SHU_B1_DQ13 */
-DEFINE_BIT(SHU_B1_DQ13_RG_TX_ARDQ_IO_ODT_DIS_B1, 0)
-DEFINE_BIT(SHU_B1_DQ13_RG_TX_ARDQ_DLY_LAT_EN_B1, 2)
-DEFINE_BIT(SHU_B1_DQ13_RG_TX_ARDQS_READ_BASE_EN_B1, 3)
-DEFINE_BIT(SHU_B1_DQ13_RG_TX_ARDQS_OE_ODTEN_CG_EN_B1, 7)
-DEFINE_BITFIELD(SHU_B1_DQ13_RG_TX_ARDQS_MCKIO_SEL_B1, 13, 12)
-DEFINE_BIT(SHU_B1_DQ13_RG_TX_ARDQSB_READ_BASE_EN_B1, 15)
-DEFINE_BIT(SHU_B1_DQ13_RG_TX_ARDQM_OE_ODTEN_CG_EN_B1, 16)
-DEFINE_BIT(SHU_B1_DQ13_RG_TX_ARDQSB_READ_BASE_DATA_TIE_EN_B1, 17)
-DEFINE_BIT(SHU_B1_DQ13_RG_TX_ARDQS_READ_BASE_DATA_TIE_EN_B1, 18)
-DEFINE_BIT(SHU_B1_DQ13_RG_TX_ARDQSB_OE_TIE_SEL_B1, 24)
-DEFINE_BIT(SHU_B1_DQ13_RG_TX_ARDQSB_OE_TIE_EN_B1, 25)
-
-/* DDRPHY_REG_SHU_B0_DQ10 */
-DEFINE_BIT(SHU_B0_DQ10_RG_RX_ARDQS_SE_EN_B0, 0)
-DEFINE_BIT(SHU_B0_DQ10_RG_RX_ARDQS_DQSSTB_CG_EN_B0, 1)
-DEFINE_BIT(SHU_B0_DQ10_RG_RX_ARDQS_DQSIEN_RANK_SEL_LAT_EN_B0, 2)
-DEFINE_BIT(SHU_B0_DQ10_RG_RX_ARDQS_RANK_SEL_LAT_EN_B0, 3)
-DEFINE_BIT(SHU_B0_DQ10_RG_RX_ARDQS_DQSSTB_RPST_HS_EN_B0, 4)
-DEFINE_BITFIELD(SHU_B0_DQ10_RG_RX_ARDQS_DQSIEN_MODE_B0, 10, 8)
-DEFINE_BIT(SHU_B0_DQ10_RG_RX_ARDQS_DLY_LAT_EN_B0, 15)
-DEFINE_BITFIELD(SHU_B0_DQ10_RG_RX_ARDQS_BW_SEL_B0, 19, 18)
-
-/* DDRPHY_REG_SHU_B1_DQ10 */
-DEFINE_BIT(SHU_B1_DQ10_RG_RX_ARDQS_SE_EN_B1, 0)
-DEFINE_BIT(SHU_B1_DQ10_RG_RX_ARDQS_DQSSTB_CG_EN_B1, 1)
-DEFINE_BIT(SHU_B1_DQ10_RG_RX_ARDQS_DQSIEN_RANK_SEL_LAT_EN_B1, 2)
-DEFINE_BIT(SHU_B1_DQ10_RG_RX_ARDQS_RANK_SEL_LAT_EN_B1, 3)
-DEFINE_BIT(SHU_B1_DQ10_RG_RX_ARDQS_DQSSTB_RPST_HS_EN_B1, 4)
-DEFINE_BITFIELD(SHU_B1_DQ10_RG_RX_ARDQS_DQSIEN_MODE_B1, 10, 8)
-DEFINE_BIT(SHU_B1_DQ10_RG_RX_ARDQS_DLY_LAT_EN_B1, 15)
-DEFINE_BITFIELD(SHU_B1_DQ10_RG_RX_ARDQS_BW_SEL_B1, 19, 18)
-
-/* DDRPHY_REG_SHU_CA_CMD10 */
-DEFINE_BIT(SHU_CA_CMD10_RG_RX_ARCLK_DQSIEN_RANK_SEL_LAT_EN_CA, 2)
-DEFINE_BIT(SHU_CA_CMD10_RG_RX_ARCLK_RANK_SEL_LAT_EN_CA, 3)
-DEFINE_BIT(SHU_CA_CMD10_RG_RX_ARCLK_DLY_LAT_EN_CA, 15)
-DEFINE_BITFIELD(SHU_CA_CMD10_RG_RX_ARCLK_BW_SEL_CA, 19, 18)
-
-/* DDRPHY_REG_B0_DQ5 */
-DEFINE_BITFIELD(B0_DQ5_RG_RX_ARDQ_EYE_VREF_SEL_B0, 13, 8)
-DEFINE_BIT(B0_DQ5_RG_RX_ARDQ_VREF_EN_B0, 16)
-DEFINE_BIT(B0_DQ5_RG_RX_ARDQ_EYE_VREF_EN_B0, 17)
-DEFINE_BITFIELD(B0_DQ5_RG_RX_ARDQ_EYE_SEL_B0, 23, 20)
-DEFINE_BIT(B0_DQ5_RG_RX_ARDQ_EYE_EN_B0, 24)
-DEFINE_BIT(B0_DQ5_RG_RX_ARDQ_EYE_STBEN_RESETB_B0, 25)
-DEFINE_BIT(B0_DQ5_RG_RX_ARDQS0_DVS_EN_B0, 31)
-
-/* DDRPHY_REG_B1_DQ5 */
-DEFINE_BITFIELD(B1_DQ5_RG_RX_ARDQ_EYE_VREF_SEL_B1, 13, 8)
-DEFINE_BIT(B1_DQ5_RG_RX_ARDQ_VREF_EN_B1, 16)
-DEFINE_BIT(B1_DQ5_RG_RX_ARDQ_EYE_VREF_EN_B1, 17)
-DEFINE_BITFIELD(B1_DQ5_RG_RX_ARDQ_EYE_SEL_B1, 23, 20)
-DEFINE_BIT(B1_DQ5_RG_RX_ARDQ_EYE_EN_B1, 24)
-DEFINE_BIT(B1_DQ5_RG_RX_ARDQ_EYE_STBEN_RESETB_B1, 25)
-DEFINE_BIT(B1_DQ5_RG_RX_ARDQS0_DVS_EN_B1, 31)
-
-/* DDRPHY_REG_CA_CMD9 */
-DEFINE_BIT(CA_CMD9_RG_RX_ARCMD_STBEN_RESETB, 0)
-DEFINE_BIT(CA_CMD9_RG_RX_ARCLK_STBEN_RESETB, 4)
-
-/* DDRPHY_REG_B0_DQ9 */
-DEFINE_BIT(B0_DQ9_RG_RX_ARDQ_STBEN_RESETB_B0, 0)
-DEFINE_BIT(B0_DQ9_RG_RX_ARDQS0_STBEN_RESETB_B0, 4)
-DEFINE_BIT(B0_DQ9_RG_RX_ARDQS0_DQSIENMODE_B0, 5)
-DEFINE_BIT(B0_DQ9_R_DMRXDVS_R_F_DLY_RK_OPT_B0, 6)
-DEFINE_BIT(B0_DQ9_R_DMRXFIFO_STBENCMP_EN_B0, 7)
-DEFINE_BITFIELD(B0_DQ9_R_IN_GATE_EN_LOW_OPT_B0, 15, 8)
-DEFINE_BITFIELD(B0_DQ9_R_DMDQSIEN_VALID_LAT_B0, 18, 16)
-DEFINE_BITFIELD(B0_DQ9_R_DMDQSIEN_RDSEL_LAT_B0, 22, 20)
-DEFINE_BITFIELD(B0_DQ9_R_DMRXDVS_VALID_LAT_B0, 26, 24)
-DEFINE_BITFIELD(B0_DQ9_R_DMRXDVS_RDSEL_LAT_B0, 30, 28)
-
-/* DDRPHY_REG_B1_DQ9 */
-DEFINE_BIT(B1_DQ9_RG_RX_ARDQ_STBEN_RESETB_B1, 0)
-DEFINE_BIT(B1_DQ9_RG_RX_ARDQS0_STBEN_RESETB_B1, 4)
-DEFINE_BIT(B1_DQ9_RG_RX_ARDQS0_DQSIENMODE_B1, 5)
-DEFINE_BIT(B1_DQ9_R_DMRXDVS_R_F_DLY_RK_OPT_B1, 6)
-DEFINE_BIT(B1_DQ9_R_DMRXFIFO_STBENCMP_EN_B1, 7)
-DEFINE_BITFIELD(B1_DQ9_R_IN_GATE_EN_LOW_OPT_B1, 15, 8)
-DEFINE_BITFIELD(B1_DQ9_R_DMDQSIEN_VALID_LAT_B1, 18, 16)
-DEFINE_BITFIELD(B1_DQ9_R_DMDQSIEN_RDSEL_LAT_B1, 22, 20)
-DEFINE_BITFIELD(B1_DQ9_R_DMRXDVS_VALID_LAT_B1, 26, 24)
-DEFINE_BITFIELD(B1_DQ9_R_DMRXDVS_RDSEL_LAT_B1, 30, 28)
-
-/* DDRPHY_REG_CA_CMD8 */
-DEFINE_BIT(CA_CMD8_RG_RX_ARCLK_SER_RST_MODE, 13)
-DEFINE_BIT(CA_CMD8_RG_ARDLL_RESETB_CA, 15)
-
-/* DDRPHY_REG_B0_DQ8 */
-DEFINE_BIT(B0_DQ8_RG_RX_ARDQS_SER_RST_MODE_B0, 13)
-DEFINE_BIT(B0_DQ8_RG_ARDLL_RESETB_B0, 15)
-
-/* DDRPHY_REG_B1_DQ8 */
-DEFINE_BIT(B1_DQ8_RG_RX_ARDQS_SER_RST_MODE_B1, 13)
-DEFINE_BIT(B1_DQ8_RG_ARDLL_RESETB_B1, 15)
-
-/* DDRPHY_REG_CA_CMD11 */
-DEFINE_BITFIELD(CA_CMD11_RG_RRESETB_DRVP, 4, 0)
-DEFINE_BITFIELD(CA_CMD11_RG_RRESETB_DRVN, 12, 8)
-DEFINE_BIT(CA_CMD11_RG_TX_RRESETB_DDR3_SEL, 19)
-DEFINE_BIT(CA_CMD11_RG_TX_RRESETB_PULL_DN, 20)
-
-/* DDRPHY_REG_MISC_CTRL1 */
-DEFINE_BIT(MISC_CTRL1_R_RK_PINMUXSWAP_EN, 0)
-DEFINE_BIT(MISC_CTRL1_R_DMPHYRST, 1)
-DEFINE_BIT(MISC_CTRL1_R_DM_TX_ARCLK_OE, 2)
-DEFINE_BIT(MISC_CTRL1_R_DM_TX_ARCMD_OE, 3)
-DEFINE_BIT(MISC_CTRL1_R_DMARPIDQ_SW, 7)
-DEFINE_BITFIELD(MISC_CTRL1_R_DMPINMUX, 9, 8)
-DEFINE_BIT(MISC_CTRL1_R_DMRRESETB_I_OPT, 12)
-DEFINE_BIT(MISC_CTRL1_R_DMDA_RRESETB_I, 13)
-DEFINE_BIT(MISC_CTRL1_R_DMDQSIENCG_EN, 24)
-DEFINE_BIT(MISC_CTRL1_R_DMSTBENCMP_RK_OPT, 25)
-DEFINE_BIT(MISC_CTRL1_R_DMDA_RRESETB_E, 31)
-
-/* DDRPHY_REG_B0_LP_CTRL0 */
-DEFINE_BIT(B0_LP_CTRL0_RG_ARDMSUS_10_B0, 0)
-DEFINE_BIT(B0_LP_CTRL0_RG_ARDMSUS_10_B0_LP_SEL, 4)
-DEFINE_BIT(B0_LP_CTRL0_RG_ARDQ_RESETB_B0_LP_SEL, 8)
-DEFINE_BIT(B0_LP_CTRL0_RG_ARPI_RESETB_B0_LP_SEL, 9)
-DEFINE_BIT(B0_LP_CTRL0_RG_B0_MS_SLV_LP_SEL, 12)
-DEFINE_BIT(B0_LP_CTRL0_RG_ARDLL_PHDET_EN_B0_LP_SEL, 13)
-DEFINE_BIT(B0_LP_CTRL0_RG_RX_ARDQ_BIAS_EN_B0_LP_SEL, 16)
-DEFINE_BIT(B0_LP_CTRL0_DA_ARPI_CG_MCK_B0_LP_SEL, 17)
-DEFINE_BIT(B0_LP_CTRL0_DA_ARPI_CG_MCK_FB2DLL_B0_LP_SEL, 18)
-DEFINE_BIT(B0_LP_CTRL0_DA_ARPI_CG_MCTL_B0_LP_SEL, 19)
-DEFINE_BIT(B0_LP_CTRL0_DA_ARPI_CG_FB_B0_LP_SEL, 20)
-DEFINE_BIT(B0_LP_CTRL0_DA_ARPI_CG_DQ_B0_LP_SEL, 21)
-DEFINE_BIT(B0_LP_CTRL0_DA_ARPI_CG_DQM_B0_LP_SEL, 22)
-DEFINE_BIT(B0_LP_CTRL0_DA_ARPI_CG_DQS_B0_LP_SEL, 23)
-DEFINE_BIT(B0_LP_CTRL0_DA_ARPI_CG_DQSIEN_B0_LP_SEL, 24)
-DEFINE_BIT(B0_LP_CTRL0_DA_ARPI_MPDIV_CG_B0_LP_SEL, 25)
-DEFINE_BIT(B0_LP_CTRL0_RG_RX_ARDQ_VREF_EN_B0_LP_SEL, 26)
-DEFINE_BIT(B0_LP_CTRL0_DA_ARPI_MIDPI_EN_B0_LP_SEL, 27)
-DEFINE_BIT(B0_LP_CTRL0_DA_ARPI_MIDPI_CKDIV4_EN_B0_LP_SEL, 28)
-
-/* DDRPHY_REG_B1_LP_CTRL0 */
-DEFINE_BIT(B1_LP_CTRL0_RG_ARDMSUS_10_B1, 0)
-DEFINE_BIT(B1_LP_CTRL0_RG_ARDMSUS_10_B1_LP_SEL, 4)
-DEFINE_BIT(B1_LP_CTRL0_RG_ARDQ_RESETB_B1_LP_SEL, 8)
-DEFINE_BIT(B1_LP_CTRL0_RG_ARPI_RESETB_B1_LP_SEL, 9)
-DEFINE_BIT(B1_LP_CTRL0_RG_B1_MS_SLV_LP_SEL, 12)
-DEFINE_BIT(B1_LP_CTRL0_RG_ARDLL_PHDET_EN_B1_LP_SEL, 13)
-DEFINE_BIT(B1_LP_CTRL0_RG_RX_ARDQ_BIAS_EN_B1_LP_SEL, 16)
-DEFINE_BIT(B1_LP_CTRL0_DA_ARPI_CG_MCK_B1_LP_SEL, 17)
-DEFINE_BIT(B1_LP_CTRL0_DA_ARPI_CG_MCK_FB2DLL_B1_LP_SEL, 18)
-DEFINE_BIT(B1_LP_CTRL0_DA_ARPI_CG_MCTL_B1_LP_SEL, 19)
-DEFINE_BIT(B1_LP_CTRL0_DA_ARPI_CG_FB_B1_LP_SEL, 20)
-DEFINE_BIT(B1_LP_CTRL0_DA_ARPI_CG_DQ_B1_LP_SEL, 21)
-DEFINE_BIT(B1_LP_CTRL0_DA_ARPI_CG_DQM_B1_LP_SEL, 22)
-DEFINE_BIT(B1_LP_CTRL0_DA_ARPI_CG_DQS_B1_LP_SEL, 23)
-DEFINE_BIT(B1_LP_CTRL0_DA_ARPI_CG_DQSIEN_B1_LP_SEL, 24)
-DEFINE_BIT(B1_LP_CTRL0_DA_ARPI_MPDIV_CG_B1_LP_SEL, 25)
-DEFINE_BIT(B1_LP_CTRL0_RG_RX_ARDQ_VREF_EN_B1_LP_SEL, 26)
-DEFINE_BIT(B1_LP_CTRL0_DA_ARPI_MIDPI_EN_B1_LP_SEL, 27)
-DEFINE_BIT(B1_LP_CTRL0_DA_ARPI_MIDPI_CKDIV4_EN_B1_LP_SEL, 28)
-
-/* DDRPHY_REG_CA_LP_CTRL0 */
-DEFINE_BIT(CA_LP_CTRL0_RG_ARDMSUS_10_CA, 0)
-DEFINE_BIT(CA_LP_CTRL0_RG_TX_ARCA_PULL_DN_LP_SEL, 1)
-DEFINE_BIT(CA_LP_CTRL0_RG_TX_ARCA_PULL_UP_LP_SEL, 2)
-DEFINE_BIT(CA_LP_CTRL0_RG_TX_ARCS_PULL_DN_LP_SEL, 3)
-DEFINE_BIT(CA_LP_CTRL0_RG_ARDMSUS_10_CA_LP_SEL, 4)
-DEFINE_BIT(CA_LP_CTRL0_RG_ARCMD_RESETB_LP_SEL, 8)
-DEFINE_BIT(CA_LP_CTRL0_RG_ARPI_RESETB_CA_LP_SEL, 9)
-DEFINE_BIT(CA_LP_CTRL0_RG_CA_MS_SLV_LP_SEL, 12)
-DEFINE_BIT(CA_LP_CTRL0_RG_ARDLL_PHDET_EN_CA_LP_SEL, 13)
-DEFINE_BIT(CA_LP_CTRL0_RG_TX_ARCS_PULL_UP_LP_SEL, 15)
-DEFINE_BIT(CA_LP_CTRL0_RG_RX_ARCMD_BIAS_EN_LP_SEL, 16)
-DEFINE_BIT(CA_LP_CTRL0_DA_ARPI_CG_MCK_CA_LP_SEL, 17)
-DEFINE_BIT(CA_LP_CTRL0_DA_ARPI_CG_MCK_FB2DLL_CA_LP_SEL, 18)
-DEFINE_BIT(CA_LP_CTRL0_DA_ARPI_CG_MCTL_CA_LP_SEL, 19)
-DEFINE_BIT(CA_LP_CTRL0_DA_ARPI_CG_FB_CA_LP_SEL, 20)
-DEFINE_BIT(CA_LP_CTRL0_DA_ARPI_CG_CS_LP_SEL, 21)
-DEFINE_BIT(CA_LP_CTRL0_DA_ARPI_CG_CLK_LP_SEL, 22)
-DEFINE_BIT(CA_LP_CTRL0_DA_ARPI_CG_CMD_LP_SEL, 23)
-DEFINE_BIT(CA_LP_CTRL0_DA_ARPI_CG_CLKIEN_LP_SEL, 24)
-DEFINE_BIT(CA_LP_CTRL0_DA_ARPI_MPDIV_CG_CA_LP_SEL, 25)
-DEFINE_BIT(CA_LP_CTRL0_RG_RX_ARCMD_VREF_EN_LP_SEL, 26)
-DEFINE_BIT(CA_LP_CTRL0_DA_ARPI_MIDPI_EN_CA_LP_SEL, 27)
-DEFINE_BIT(CA_LP_CTRL0_DA_ARPI_MIDPI_CKDIV4_EN_CA_LP_SEL, 28)
-
-/* DDRPHY_REG_MISC_LP_CTRL */
-DEFINE_BIT(MISC_LP_CTRL_RG_ARDMSUS_10, 0)
-DEFINE_BIT(MISC_LP_CTRL_RG_ARDMSUS_10_LP_SEL, 1)
-DEFINE_BIT(MISC_LP_CTRL_RG_RIMP_DMSUS_10, 2)
-DEFINE_BIT(MISC_LP_CTRL_RG_RIMP_DMSUS_10_LP_SEL, 3)
-DEFINE_BIT(MISC_LP_CTRL_RG_RRESETB_LP_SEL, 4)
-DEFINE_BIT(MISC_LP_CTRL_RG_RPHYPLL_RESETB_LP_SEL, 5)
-DEFINE_BIT(MISC_LP_CTRL_RG_RPHYPLL_EN_LP_SEL, 6)
-DEFINE_BIT(MISC_LP_CTRL_RG_RCLRPLL_EN_LP_SEL, 7)
-DEFINE_BIT(MISC_LP_CTRL_RG_RPHYPLL_ADA_MCK8X_EN_LP_SEL, 8)
-DEFINE_BIT(MISC_LP_CTRL_RG_RPHYPLL_AD_MCK8X_EN_LP_SEL, 9)
-DEFINE_BIT(MISC_LP_CTRL_RG_RPHYPLL_TOP_REV_0_LP_SEL, 10)
-DEFINE_BIT(MISC_LP_CTRL_RG_SC_ARPI_RESETB_8X_SEQ_LP_SEL, 11)
-DEFINE_BIT(MISC_LP_CTRL_RG_ADA_MCK8X_8X_SEQ_LP_SEL, 12)
-DEFINE_BIT(MISC_LP_CTRL_RG_AD_MCK8X_8X_SEQ_LP_SEL, 13)
-DEFINE_BIT(MISC_LP_CTRL_RG_MIDPI_EN_8X_SEQ_LP_SEL, 17)
-DEFINE_BIT(MISC_LP_CTRL_RG_MIDPI_CKDIV4_EN_8X_SEQ_LP_SEL, 18)
-DEFINE_BIT(MISC_LP_CTRL_RG_MCK8X_CG_SRC_LP_SEL, 19)
-DEFINE_BIT(MISC_LP_CTRL_RG_MCK8X_CG_SRC_AND_LP_SEL, 20)
-
-/* DDRPHY_REG_MISC_CG_CTRL9 */
-DEFINE_BIT(MISC_CG_CTRL9_RG_M_CK_OPENLOOP_MODE_EN, 4)
-DEFINE_BIT(MISC_CG_CTRL9_RG_MCK4X_I_OPENLOOP_MODE_EN, 8)
-DEFINE_BIT(MISC_CG_CTRL9_RG_CG_DDR400_MCK4X_I_OFF, 9)
-DEFINE_BIT(MISC_CG_CTRL9_RG_DDR400_MCK4X_I_FORCE_ON, 10)
-DEFINE_BIT(MISC_CG_CTRL9_RG_MCK4X_I_FB_CK_CG_OFF, 11)
-DEFINE_BIT(MISC_CG_CTRL9_RG_MCK4X_Q_OPENLOOP_MODE_EN, 12)
-DEFINE_BIT(MISC_CG_CTRL9_RG_CG_DDR400_MCK4X_Q_OFF, 13)
-DEFINE_BIT(MISC_CG_CTRL9_RG_DDR400_MCK4X_Q_FORCE_ON, 14)
-DEFINE_BIT(MISC_CG_CTRL9_RG_MCK4X_Q_FB_CK_CG_OFF, 15)
-DEFINE_BIT(MISC_CG_CTRL9_RG_MCK4X_O_OPENLOOP_MODE_EN, 16)
-DEFINE_BIT(MISC_CG_CTRL9_RG_CG_DDR400_MCK4X_O_OFF, 17)
-DEFINE_BIT(MISC_CG_CTRL9_RG_MCK4X_O_FB_CK_CG_OFF, 19)
-
-/* DDRPHY_REG_MISC_SHU_RX_CG_CTRL */
-DEFINE_BIT(MISC_SHU_RX_CG_CTRL_RX_DCM_OPT, 0)
-DEFINE_BIT(MISC_SHU_RX_CG_CTRL_RX_APHY_CTRL_DCM_OPT, 1)
-DEFINE_BIT(MISC_SHU_RX_CG_CTRL_RX_RODT_DCM_OPT, 2)
-DEFINE_BIT(MISC_SHU_RX_CG_CTRL_RX_DQSIEN_STBCAL_CG_EN, 4)
-DEFINE_BIT(MISC_SHU_RX_CG_CTRL_RX_DQSIEN_AUTOK_CG_EN, 5)
-DEFINE_BIT(MISC_SHU_RX_CG_CTRL_RX_RDSEL_TRACKING_CG_EN, 8)
-DEFINE_BIT(MISC_SHU_RX_CG_CTRL_RX_DQSIEN_RETRY_CG_EN, 9)
-DEFINE_BIT(MISC_SHU_RX_CG_CTRL_RX_PRECAL_CG_EN, 10)
-DEFINE_BITFIELD(MISC_SHU_RX_CG_CTRL_RX_DCM_EXT_DLY, 19, 16)
-DEFINE_BITFIELD(MISC_SHU_RX_CG_CTRL_RX_DCM_WAIT_DLE_EXT_DLY, 23, 20)
-
-/* DDRPHY_REG_MISC_SHU_CG_CTRL0 */
-DEFINE_BITFIELD(MISC_SHU_CG_CTRL0_R_PHY_MCK_CG_CTRL, 31, 0)
-
-/* DDRPHY_REG_MISC_IMP_CTRL1 */
-DEFINE_BIT(MISC_IMP_CTRL1_RG_IMP_EN, 1)
-DEFINE_BIT(MISC_IMP_CTRL1_RG_RIMP_DDR4_SEL, 2)
-DEFINE_BIT(MISC_IMP_CTRL1_RG_RIMP_DDR3_SEL, 3)
-DEFINE_BIT(MISC_IMP_CTRL1_RG_RIMP_BIAS_EN, 4)
-DEFINE_BIT(MISC_IMP_CTRL1_RG_RIMP_ODT_EN, 5)
-DEFINE_BIT(MISC_IMP_CTRL1_RG_RIMP_PRE_EN, 6)
-DEFINE_BIT(MISC_IMP_CTRL1_RG_RIMP_VREF_EN, 7)
-DEFINE_BIT(MISC_IMP_CTRL1_IMP_ABN_LAT_CLR, 14)
-DEFINE_BIT(MISC_IMP_CTRL1_RG_RIMP_SUS_ECO_OPT, 31)
-
-/* DDRPHY_REG_MISC_CG_CTRL0 */
-DEFINE_BIT(MISC_CG_CTRL0_W_CHG_MEM, 0)
-DEFINE_BITFIELD(MISC_CG_CTRL0_RESERVED_MISC_CG_CTRL0_BIT3_1, 3, 1)
-DEFINE_BITFIELD(MISC_CG_CTRL0_CLK_MEM_SEL, 5, 4)
-DEFINE_BIT(MISC_CG_CTRL0_RESERVED_MISC_CG_CTRL0_BIT7, 7)
-DEFINE_BIT(MISC_CG_CTRL0_RG_CG_EMI_OFF_DISABLE, 8)
-DEFINE_BIT(MISC_CG_CTRL0_RG_CG_DRAMC_OFF_DISABLE, 9)
-DEFINE_BIT(MISC_CG_CTRL0_RG_CG_PHY_OFF_DISABLE, 10)
-DEFINE_BIT(MISC_CG_CTRL0_RG_CG_COMB_OFF_DISABLE, 11)
-DEFINE_BIT(MISC_CG_CTRL0_RG_CG_CMD_OFF_DISABLE, 12)
-DEFINE_BIT(MISC_CG_CTRL0_RG_CG_COMB0_OFF_DISABLE, 13)
-DEFINE_BIT(MISC_CG_CTRL0_RG_CG_COMB1_OFF_DISABLE, 14)
-DEFINE_BIT(MISC_CG_CTRL0_RG_CG_RX_CMD_OFF_DISABLE, 15)
-DEFINE_BIT(MISC_CG_CTRL0_RG_CG_RX_COMB0_OFF_DISABLE, 16)
-DEFINE_BIT(MISC_CG_CTRL0_RG_CG_RX_COMB1_OFF_DISABLE, 17)
-DEFINE_BIT(MISC_CG_CTRL0_RG_CG_IDLE_SYNC_EN, 18)
-DEFINE_BIT(MISC_CG_CTRL0_RG_CG_INFRA_OFF_DISABLE, 19)
-DEFINE_BIT(MISC_CG_CTRL0_RG_CG_DRAMC_CK_OFF, 20)
-DEFINE_BIT(MISC_CG_CTRL0_RG_CG_NAO_FORCE_OFF, 22)
-DEFINE_BIT(MISC_CG_CTRL0_RG_FREERUN_MCK_CG, 29)
-
-/* DDRPHY_REG_MISC_CKMUX_SEL */
-DEFINE_BIT(MISC_CKMUX_SEL_R_PHYCTRLMUX, 0)
-DEFINE_BIT(MISC_CKMUX_SEL_R_PHYCTRLDCM, 1)
-DEFINE_BIT(MISC_CKMUX_SEL_RG_52M_104M_SEL, 12)
-DEFINE_BITFIELD(MISC_CKMUX_SEL_FMEM_CK_MUX, 19, 18)
-
-/* DDRPHY_REG_PHYPLL2 */
-DEFINE_BIT(PHYPLL2_RG_RPHYPLL_RESETB, 16)
-DEFINE_BIT(PHYPLL2_RG_RPHYPLL_AD_MCK8X_EN, 21)
-DEFINE_BIT(PHYPLL2_RG_RPHYPLL_ADA_MCK8X_EN, 22)
-
-/* DDRPHY_REG_PHYPLL0 */
-DEFINE_BIT(PHYPLL0_RG_RPHYPLL_EN, 31)
-
-/* DDRPHY_REG_SHU_B0_DLL_ARPI2 */
-DEFINE_BIT(SHU_B0_DLL_ARPI2_RG_ARPI_MPDIV_CG_B0, 10)
-DEFINE_BIT(SHU_B0_DLL_ARPI2_RG_ARPI_CG_DQSIEN_B0, 11)
-DEFINE_BIT(SHU_B0_DLL_ARPI2_RG_ARPI_CG_DQ_B0, 13)
-DEFINE_BIT(SHU_B0_DLL_ARPI2_RG_ARPI_CG_DQM_B0, 14)
-DEFINE_BIT(SHU_B0_DLL_ARPI2_RG_ARPI_CG_DQS_B0, 15)
-DEFINE_BIT(SHU_B0_DLL_ARPI2_RG_ARPI_CG_FB_B0, 17)
-DEFINE_BIT(SHU_B0_DLL_ARPI2_RG_ARPI_CG_MCTL_B0, 19)
-DEFINE_BIT(SHU_B0_DLL_ARPI2_RG_ARPI_CG_MCK_FB2DLL_B0, 27)
-DEFINE_BIT(SHU_B0_DLL_ARPI2_RG_ARPI_CG_MCK_B0, 31)
-
-/* DDRPHY_REG_SHU_B1_DLL_ARPI2 */
-DEFINE_BIT(SHU_B1_DLL_ARPI2_RG_ARPI_MPDIV_CG_B1, 10)
-DEFINE_BIT(SHU_B1_DLL_ARPI2_RG_ARPI_CG_DQSIEN_B1, 11)
-DEFINE_BIT(SHU_B1_DLL_ARPI2_RG_ARPI_CG_DQ_B1, 13)
-DEFINE_BIT(SHU_B1_DLL_ARPI2_RG_ARPI_CG_DQM_B1, 14)
-DEFINE_BIT(SHU_B1_DLL_ARPI2_RG_ARPI_CG_DQS_B1, 15)
-DEFINE_BIT(SHU_B1_DLL_ARPI2_RG_ARPI_CG_FB_B1, 17)
-DEFINE_BIT(SHU_B1_DLL_ARPI2_RG_ARPI_CG_MCTL_B1, 19)
-DEFINE_BIT(SHU_B1_DLL_ARPI2_RG_ARPI_CG_MCK_FB2DLL_B1, 27)
-DEFINE_BIT(SHU_B1_DLL_ARPI2_RG_ARPI_CG_MCK_B1, 31)
-
-/* DDRPHY_REG_SHU_PLL2 */
-DEFINE_BIT(SHU_PLL2_RG_RPHYPLL_ADA_MCK8X_EN_SHU, 0)
-
-/* DDRPHY_REG_B0_SHU_MIDPI_CTRL */
-DEFINE_BIT(B0_SHU_MIDPI_CTRL_MIDPI_ENABLE_B0, 0)
-DEFINE_BIT(B0_SHU_MIDPI_CTRL_MIDPI_DIV4_ENABLE_B0, 1)
-
-/* DDRPHY_REG_B1_SHU_MIDPI_CTRL */
-DEFINE_BIT(B1_SHU_MIDPI_CTRL_MIDPI_ENABLE_B1, 0)
-DEFINE_BIT(B1_SHU_MIDPI_CTRL_MIDPI_DIV4_ENABLE_B1, 1)
-
-/* DDRPHY_REG_CA_SHU_MIDPI_CTRL */
-DEFINE_BIT(CA_SHU_MIDPI_CTRL_MIDPI_ENABLE_CA, 0)
-DEFINE_BIT(CA_SHU_MIDPI_CTRL_MIDPI_DIV4_ENABLE_CA, 1)
-
-/* DDRPHY_REG_CA_DLL_ARPI0 */
-DEFINE_BIT(CA_DLL_ARPI0_RG_ARPI_RESETB_CA, 3)
-
-/* DDRPHY_REG_B0_DLL_ARPI0 */
-DEFINE_BIT(B0_DLL_ARPI0_RG_ARPI_RESETB_B0, 3)
-
-/* DDRPHY_REG_B1_DLL_ARPI0 */
-DEFINE_BIT(B1_DLL_ARPI0_RG_ARPI_RESETB_B1, 3)
-
-/* DDRPHY_REG_MISC_CG_CTRL2 */
-DEFINE_BIT(MISC_CG_CTRL2_RG_MEM_DCM_APB_TOG, 0)
-DEFINE_BITFIELD(MISC_CG_CTRL2_RG_MEM_DCM_APB_SEL, 5, 1)
-DEFINE_BIT(MISC_CG_CTRL2_RG_MEM_DCM_FORCE_ON, 6)
-DEFINE_BIT(MISC_CG_CTRL2_RG_MEM_DCM_DCM_EN, 7)
-DEFINE_BIT(MISC_CG_CTRL2_RG_MEM_DCM_DBC_EN, 8)
-DEFINE_BITFIELD(MISC_CG_CTRL2_RG_MEM_DCM_DBC_CNT, 15, 9)
-DEFINE_BITFIELD(MISC_CG_CTRL2_RG_MEM_DCM_FSEL, 20, 16)
-DEFINE_BITFIELD(MISC_CG_CTRL2_RG_MEM_DCM_IDLE_FSEL, 25, 21)
-DEFINE_BIT(MISC_CG_CTRL2_RG_MEM_DCM_FORCE_OFF, 26)
-DEFINE_BIT(MISC_CG_CTRL2_RESERVED_MISC_CG_CTRL2_BIT27, 27)
-DEFINE_BIT(MISC_CG_CTRL2_RG_PHY_CG_OFF_DISABLE, 28)
-DEFINE_BIT(MISC_CG_CTRL2_RG_PIPE0_CG_OFF_DISABLE, 29)
-DEFINE_BIT(MISC_CG_CTRL2_RESERVED_MISC_CG_CTRL2_BIT30, 30)
-DEFINE_BIT(MISC_CG_CTRL2_RG_MEM_DCM_CG_OFF_DISABLE, 31)
-
-/* DDRPHY_REG_MISC_CTRL0 */
-DEFINE_BIT(MISC_CTRL0_R_DMDQSIEN_FIFO_EN, 0)
-DEFINE_BIT(MISC_CTRL0_R_DMSTBEN_SYNCOPT, 2)
-DEFINE_BIT(MISC_CTRL0_R_DMVALID_DLY_OPT, 4)
-DEFINE_BIT(MISC_CTRL0_R_DMVALID_NARROW_IG, 5)
-DEFINE_BITFIELD(MISC_CTRL0_R_DMVALID_DLY, 10, 8)
-DEFINE_BIT(MISC_CTRL0_IMPCAL_CHAB_EN, 12)
-DEFINE_BIT(MISC_CTRL0_IMPCAL_TRACK_DISABLE, 13)
-DEFINE_BIT(MISC_CTRL0_IMPCAL_LP_ECO_OPT, 18)
-DEFINE_BIT(MISC_CTRL0_IMPCAL_CDC_ECO_OPT, 19)
-DEFINE_BIT(MISC_CTRL0_IDLE_DCM_CHB_CDC_ECO_OPT, 20)
-DEFINE_BIT(MISC_CTRL0_R_DMSHU_PHYDCM_FORCEOFF, 27)
-DEFINE_BIT(MISC_CTRL0_R_DQS0IEN_DIV4_CK_CG_CTRL, 28)
-DEFINE_BIT(MISC_CTRL0_R_DQS1IEN_DIV4_CK_CG_CTRL, 29)
-DEFINE_BIT(MISC_CTRL0_R_CLKIEN_DIV4_CK_CG_CTRL, 30)
-DEFINE_BIT(MISC_CTRL0_R_STBENCMP_DIV4CK_EN, 31)
-
-/* DDRPHY_REG_MISC_RXDVS2 */
-DEFINE_BIT(MISC_RXDVS2_R_DMRXDVS_DEPTH_HALF, 0)
-DEFINE_BIT(MISC_RXDVS2_R_DMRXDVS_SHUFFLE_CTRL_CG_IG, 8)
-DEFINE_BIT(MISC_RXDVS2_R_DMRXDVS_DBG_MON_EN, 16)
-DEFINE_BIT(MISC_RXDVS2_R_DMRXDVS_DBG_MON_CLR, 17)
-DEFINE_BIT(MISC_RXDVS2_R_DMRXDVS_DBG_PAUSE_EN, 18)
-
-/* DDRPHY_REG_MISC_DVFS_EMI_CLK */
-DEFINE_BIT(MISC_DVFS_EMI_CLK_RG_DLL_SHUFFLE_DDRPHY, 24)
-
-/* DDRPHY_REG_B0_DQ10 */
-DEFINE_BIT(B0_DQ10_ARPI_CG_RK1_SRC_SEL_B0, 0)
-
-/* DDRPHY_REG_B1_DQ10 */
-DEFINE_BIT(B1_DQ10_ARPI_CG_RK1_SRC_SEL_B1, 0)
-
-/* DDRPHY_REG_MISC_DVFSCTL */
-DEFINE_BITFIELD(MISC_DVFSCTL_R_DVFS_PICG_MARGIN_NEW, 3, 0)
-DEFINE_BITFIELD(MISC_DVFSCTL_R_DVFS_PICG_MARGIN2_NEW, 7, 4)
-DEFINE_BITFIELD(MISC_DVFSCTL_R_DVFS_PICG_MARGIN3_NEW, 11, 8)
-DEFINE_BITFIELD(MISC_DVFSCTL_R_DVFS_PICG_MARGIN4_NEW, 15, 12)
-DEFINE_BIT(MISC_DVFSCTL_R_DMSHUFFLE_CHANGE_FREQ_OPT, 18)
-DEFINE_BIT(MISC_DVFSCTL_R_SHUFFLE_PI_RESET_ENABLE, 26)
-DEFINE_BIT(MISC_DVFSCTL_R_DVFS_PICG_POSTPONE, 27)
-DEFINE_BITFIELD(MISC_DVFSCTL_R_DVFS_MCK8X_MARGIN, 31, 28)
-
-/* DDRPHY_REG_MISC_STBCAL1 */
-DEFINE_BIT(MISC_STBCAL1_STBCNT_SHU_RST_EN, 0)
-DEFINE_BIT(MISC_STBCAL1_DIS_PI_TRACK_AS_NOT_RD, 2)
-DEFINE_BIT(MISC_STBCAL1_STBCNT_MODESEL, 4)
-DEFINE_BIT(MISC_STBCAL1_DQSIEN_7UI_EN, 5)
-DEFINE_BIT(MISC_STBCAL1_STB_SHIFT_DTCOUT_IG, 6)
-DEFINE_BIT(MISC_STBCAL1_STB_FLAGCLR_OPT, 8)
-DEFINE_BIT(MISC_STBCAL1_STBCNT_SW_RST, 15)
-DEFINE_BITFIELD(MISC_STBCAL1_STBCAL_FILTER, 31, 16)
-
-/* DDRPHY_REG_MISC_STBCAL2 */
-DEFINE_BIT(MISC_STBCAL2_STB_PIDLYCG_IG, 0)
-DEFINE_BIT(MISC_STBCAL2_STB_UIDLYCG_IG, 1)
-DEFINE_BITFIELD(MISC_STBCAL2_STB_DBG_EN, 7, 4)
-DEFINE_BIT(MISC_STBCAL2_STB_DBG_CG_AO, 8)
-DEFINE_BIT(MISC_STBCAL2_STB_DBG_UIPI_UPD_OPT, 9)
-DEFINE_BIT(MISC_STBCAL2_DQSGCNT_BYP_REF, 10)
-DEFINE_BIT(MISC_STBCAL2_STB_PICG_EARLY_1T_EN, 16)
-DEFINE_BIT(MISC_STBCAL2_STB_STBENRST_EARLY_1T_EN, 17)
-DEFINE_BIT(MISC_STBCAL2_STB_IG_XRANK_CG_RST, 18)
-DEFINE_BIT(MISC_STBCAL2_STB_RST_BY_RANK, 19)
-DEFINE_BIT(MISC_STBCAL2_DQSIEN_SELPH_BY_RANK_EN, 20)
-DEFINE_BIT(MISC_STBCAL2_STB_GERRSTOP, 28)
-DEFINE_BIT(MISC_STBCAL2_STB_GERR_RST, 29)
-DEFINE_BIT(MISC_STBCAL2_STB_GERR_B01, 30)
-DEFINE_BIT(MISC_STBCAL2_STB_GERR_B23, 31)
-
-/* DDRPHY_REG_MISC_SHU_STBCAL */
-DEFINE_BITFIELD(MISC_SHU_STBCAL_DQSIEN_DQSSTB_MODE, 13, 12)
-DEFINE_BIT(MISC_SHU_STBCAL_DQSIEN_BURST_MODE, 14)
-DEFINE_BIT(MISC_SHU_STBCAL_STBCALEN, 16)
-DEFINE_BIT(MISC_SHU_STBCAL_STB_SELPHCALEN, 17)
-
-/* DDRPHY_REG_MISC_STBCAL */
-DEFINE_BIT(MISC_STBCAL_PIMASK_RKCHG_OPT, 0)
-DEFINE_BIT(MISC_STBCAL_STBDLELAST_OPT, 4)
-DEFINE_BITFIELD(MISC_STBCAL_STBDLELAST_PULSE, 11, 8)
-DEFINE_BIT(MISC_STBCAL_STBDLELAST_FILTER, 12)
-DEFINE_BIT(MISC_STBCAL_STBSTATE_OPT, 15)
-DEFINE_BIT(MISC_STBCAL_PHYVALID_IG, 16)
-DEFINE_BIT(MISC_STBCAL_SREF_DQSGUPD, 17)
-DEFINE_BIT(MISC_STBCAL_RKCHGMASKDIS, 19)
-DEFINE_BIT(MISC_STBCAL_PICGEN, 20)
-DEFINE_BIT(MISC_STBCAL_REFUICHG, 21)
-DEFINE_BIT(MISC_STBCAL_STBCAL2R, 23)
-DEFINE_BIT(MISC_STBCAL_PICHGBLOCK_NORD, 26)
-DEFINE_BIT(MISC_STBCAL_STB_DQIEN_IG, 27)
-DEFINE_BIT(MISC_STBCAL_DQSIENCG_CHG_EN, 28)
-DEFINE_BIT(MISC_STBCAL_DQSIENCG_NORMAL_EN, 29)
-DEFINE_BIT(MISC_STBCAL_DQSIENMODE, 31)
-
-/* DDRPHY_REG_B0_PHY2 */
-DEFINE_BITFIELD(B0_PHY2_RG_RX_ARDQS_JM_SEL_B0, 7, 4)
-DEFINE_BIT(B0_PHY2_RG_RX_ARDQS_JM_EN_B0, 8)
-DEFINE_BITFIELD(B0_PHY2_RG_RX_ARDQS_JM_DLY_B0, 24, 16)
-DEFINE_BIT(B0_PHY2_RG_RX_ARDQS_DQSIEN_UI_LEAD_LAG_EN_B0, 28)
-
-/* DDRPHY_REG_B1_PHY2 */
-DEFINE_BITFIELD(B1_PHY2_RG_RX_ARDQS_JM_SEL_B1, 7, 4)
-DEFINE_BIT(B1_PHY2_RG_RX_ARDQS_JM_EN_B1, 8)
-DEFINE_BITFIELD(B1_PHY2_RG_RX_ARDQS_JM_DLY_B1, 24, 16)
-DEFINE_BIT(B1_PHY2_RG_RX_ARDQS_DQSIEN_UI_LEAD_LAG_EN_B1, 28)
-
-/* DDRPHY_REG_MISC_RX_IN_GATE_EN_CTRL */
-DEFINE_BIT(MISC_RX_IN_GATE_EN_CTRL_RX_IN_GATE_EN_OPT, 0)
-DEFINE_BIT(MISC_RX_IN_GATE_EN_CTRL_RX_IN_GATE_EN_4BYTE_EN, 1)
-DEFINE_BITFIELD(MISC_RX_IN_GATE_EN_CTRL_FIX_IN_GATE_EN, 11, 8)
-DEFINE_BITFIELD(MISC_RX_IN_GATE_EN_CTRL_DIS_IN_GATE_EN, 15, 12)
-
-/* DDRPHY_REG_MISC_RX_IN_BUFF_EN_CTRL */
-DEFINE_BIT(MISC_RX_IN_BUFF_EN_CTRL_RX_IN_BUFF_EN_OPT, 0)
-DEFINE_BIT(MISC_RX_IN_BUFF_EN_CTRL_RX_IN_BUFF_EN_4BYTE_EN, 1)
-DEFINE_BITFIELD(MISC_RX_IN_BUFF_EN_CTRL_FIX_IN_BUFF_EN, 11, 8)
-DEFINE_BITFIELD(MISC_RX_IN_BUFF_EN_CTRL_DIS_IN_BUFF_EN, 15, 12)
-
-/* DDRPHY_REG_B0_RXDVS0 */
-DEFINE_BIT(B0_RXDVS0_R_RX_RANKINSEL_B0, 0)
-DEFINE_BITFIELD(B0_RXDVS0_R_RX_RANKINCTL_B0, 7, 4)
-DEFINE_BIT(B0_RXDVS0_R_DMRXDVS_DQIENPRE_OPT_B0, 9)
-DEFINE_BIT(B0_RXDVS0_R_DMRXDVS_CNTCMP_OPT_B0, 19)
-DEFINE_BIT(B0_RXDVS0_R_HWRESTORE_ENA_B0, 22)
-DEFINE_BIT(B0_RXDVS0_R_HWSAVE_MODE_ENA_B0, 24)
-DEFINE_BIT(B0_RXDVS0_R_RX_DLY_TRACK_CG_EN_B0, 28)
-DEFINE_BIT(B0_RXDVS0_R_RX_DLY_TRACK_SPM_CTRL_B0, 29)
-DEFINE_BIT(B0_RXDVS0_R_RX_DLY_TRACK_ENA_B0, 31)
-
-/* DDRPHY_REG_B1_RXDVS0 */
-DEFINE_BIT(B1_RXDVS0_R_RX_RANKINSEL_B1, 0)
-DEFINE_BITFIELD(B1_RXDVS0_R_RX_RANKINCTL_B1, 7, 4)
-DEFINE_BIT(B1_RXDVS0_R_DMRXDVS_DQIENPRE_OPT_B1, 9)
-DEFINE_BIT(B1_RXDVS0_R_DMRXDVS_CNTCMP_OPT_B1, 19)
-DEFINE_BIT(B1_RXDVS0_R_HWRESTORE_ENA_B1, 22)
-DEFINE_BIT(B1_RXDVS0_R_HWSAVE_MODE_ENA_B1, 24)
-DEFINE_BIT(B1_RXDVS0_R_RX_DLY_TRACK_CG_EN_B1, 28)
-DEFINE_BIT(B1_RXDVS0_R_RX_DLY_TRACK_SPM_CTRL_B1, 29)
-DEFINE_BIT(B1_RXDVS0_R_RX_DLY_TRACK_ENA_B1, 31)
-
-/* DDRPHY_REG_RK_B0_RXDVS3 */
-DEFINE_BITFIELD(RK_B0_RXDVS3_RG_RK0_ARDQ_MIN_DLY_B0, 7, 0)
-DEFINE_BITFIELD(RK_B0_RXDVS3_RG_RK0_ARDQ_MAX_DLY_B0, 15, 8)
-
-/* DDRPHY_REG_RK_B0_RXDVS4 */
-DEFINE_BITFIELD(RK_B0_RXDVS4_RG_RK0_ARDQS0_MIN_DLY_B0, 8, 0)
-DEFINE_BITFIELD(RK_B0_RXDVS4_RG_RK0_ARDQS0_MAX_DLY_B0, 24, 16)
-
-/* DDRPHY_REG_RK_B0_RXDVS2 */
-DEFINE_BITFIELD(RK_B0_RXDVS2_R_RK0_RX_DLY_FAL_DQS_SCALE_B0, 17, 16)
-DEFINE_BITFIELD(RK_B0_RXDVS2_R_RK0_RX_DLY_FAL_DQ_SCALE_B0, 19, 18)
-DEFINE_BIT(RK_B0_RXDVS2_R_RK0_RX_DLY_FAL_TRACK_GATE_ENA_B0, 23)
-DEFINE_BITFIELD(RK_B0_RXDVS2_R_RK0_RX_DLY_RIS_DQS_SCALE_B0, 25, 24)
-DEFINE_BITFIELD(RK_B0_RXDVS2_R_RK0_RX_DLY_RIS_DQ_SCALE_B0, 27, 26)
-DEFINE_BIT(RK_B0_RXDVS2_R_RK0_RX_DLY_RIS_TRACK_GATE_ENA_B0, 28)
-DEFINE_BIT(RK_B0_RXDVS2_R_RK0_DVS_FDLY_MODE_B0, 29)
-DEFINE_BITFIELD(RK_B0_RXDVS2_R_RK0_DVS_MODE_B0, 31, 30)
-
-/* DDRPHY_REG_RK_B0_RXDVS1 */
-DEFINE_BITFIELD(RK_B0_RXDVS1_R_RK0_B0_DVS_TH_LAG, 15, 0)
-DEFINE_BITFIELD(RK_B0_RXDVS1_R_RK0_B0_DVS_TH_LEAD, 31, 16)
-
-/* DDRPHY_REG_RK_B1_RXDVS3 */
-DEFINE_BITFIELD(RK_B1_RXDVS3_RG_RK0_ARDQ_MIN_DLY_B1, 7, 0)
-DEFINE_BITFIELD(RK_B1_RXDVS3_RG_RK0_ARDQ_MAX_DLY_B1, 15, 8)
-
-/* DDRPHY_REG_RK_B1_RXDVS4 */
-DEFINE_BITFIELD(RK_B1_RXDVS4_RG_RK0_ARDQS0_MIN_DLY_B1, 8, 0)
-DEFINE_BITFIELD(RK_B1_RXDVS4_RG_RK0_ARDQS0_MAX_DLY_B1, 24, 16)
-
-/* DDRPHY_REG_RK_B1_RXDVS2 */
-DEFINE_BITFIELD(RK_B1_RXDVS2_R_RK0_RX_DLY_FAL_DQS_SCALE_B1, 17, 16)
-DEFINE_BITFIELD(RK_B1_RXDVS2_R_RK0_RX_DLY_FAL_DQ_SCALE_B1, 19, 18)
-DEFINE_BIT(RK_B1_RXDVS2_R_RK0_RX_DLY_FAL_TRACK_GATE_ENA_B1, 23)
-DEFINE_BITFIELD(RK_B1_RXDVS2_R_RK0_RX_DLY_RIS_DQS_SCALE_B1, 25, 24)
-DEFINE_BITFIELD(RK_B1_RXDVS2_R_RK0_RX_DLY_RIS_DQ_SCALE_B1, 27, 26)
-DEFINE_BIT(RK_B1_RXDVS2_R_RK0_RX_DLY_RIS_TRACK_GATE_ENA_B1, 28)
-DEFINE_BIT(RK_B1_RXDVS2_R_RK0_DVS_FDLY_MODE_B1, 29)
-DEFINE_BITFIELD(RK_B1_RXDVS2_R_RK0_DVS_MODE_B1, 31, 30)
-
-/* DDRPHY_REG_RK_B1_RXDVS1 */
-DEFINE_BITFIELD(RK_B1_RXDVS1_R_RK0_B1_DVS_TH_LAG, 15, 0)
-DEFINE_BITFIELD(RK_B1_RXDVS1_R_RK0_B1_DVS_TH_LEAD, 31, 16)
-
-/* DDRPHY_REG_MISC_CG_CTRL1 */
-DEFINE_BITFIELD(MISC_CG_CTRL1_R_DVS_DIV4_CG_CTRL, 31, 0)
-
-/* DDRPHY_REG_B0_RXDVS1 */
-DEFINE_BIT(B0_RXDVS1_F_LEADLAG_TRACK_B0, 15)
-DEFINE_BIT(B0_RXDVS1_R_DMRXDVS_UPD_CLR_NORD_B0, 17)
-
-/* DDRPHY_REG_B1_RXDVS1 */
-DEFINE_BIT(B1_RXDVS1_F_LEADLAG_TRACK_B1, 15)
-DEFINE_BIT(B1_RXDVS1_R_DMRXDVS_UPD_CLR_NORD_B1, 17)
-
-/* DRAMC_REG_DLLFRZ_CTRL */
-DEFINE_BIT(DLLFRZ_CTRL_INPUTRXTRACK_BLOCK, 0)
-DEFINE_BIT(DLLFRZ_CTRL_DLLFRZ_MON_PBREF_OPT, 1)
-DEFINE_BIT(DLLFRZ_CTRL_DLLFRZ_BLOCKLONG, 2)
-DEFINE_BIT(DLLFRZ_CTRL_DLLFRZ, 7)
-DEFINE_BIT(DLLFRZ_CTRL_UPDBYWR, 8)
-
-/* DDRPHY_REG_MISC_RG_DFS_CTRL */
-DEFINE_BIT(MISC_RG_DFS_CTRL_SPM_DVFS_CONTROL_SEL, 0)
-DEFINE_BIT(MISC_RG_DFS_CTRL_RG_DPY_RXDLY_TRACK_EN, 2)
-DEFINE_BITFIELD(MISC_RG_DFS_CTRL_RG_DR_SHU_LEVEL_SRAM, 7, 4)
-DEFINE_BIT(MISC_RG_DFS_CTRL_RG_DR_SRAM_RESTORE, 8)
-DEFINE_BIT(MISC_RG_DFS_CTRL_RG_DR_SHU_LEVEL_SRAM_LATCH, 9)
-DEFINE_BIT(MISC_RG_DFS_CTRL_RG_DR_SRAM_LOAD, 10)
-DEFINE_BITFIELD(MISC_RG_DFS_CTRL_RG_DR_SHU_LEVEL, 17, 16)
-DEFINE_BIT(MISC_RG_DFS_CTRL_RG_PHYPLL_SHU_EN, 18)
-DEFINE_BIT(MISC_RG_DFS_CTRL_RG_PHYPLL2_SHU_EN, 19)
-DEFINE_BIT(MISC_RG_DFS_CTRL_RG_DR_SHU_EN, 23)
-DEFINE_BIT(MISC_RG_DFS_CTRL_RG_DDRPHY_FB_CK_EN, 24)
-
-/* DDRPHY_REG_MISC_CTRL4 */
-DEFINE_BIT(MISC_CTRL4_R_OPT2_MPDIV_CG, 0)
-DEFINE_BIT(MISC_CTRL4_R_OPT2_CG_MCK, 1)
-DEFINE_BIT(MISC_CTRL4_R_OPT2_CG_DQM, 2)
-DEFINE_BIT(MISC_CTRL4_R_OPT2_CG_DQS, 3)
-DEFINE_BIT(MISC_CTRL4_R_OPT2_CG_DQ, 4)
-DEFINE_BIT(MISC_CTRL4_R_OPT2_CG_DQSIEN, 5)
-DEFINE_BIT(MISC_CTRL4_R_OPT2_CG_CMD, 6)
-DEFINE_BIT(MISC_CTRL4_R_OPT2_CG_CLK, 7)
-DEFINE_BIT(MISC_CTRL4_R_OPT2_CG_CS, 8)
-
-/* DDRPHY_REG_MISC_CTRL3 */
-DEFINE_BITFIELD(MISC_CTRL3_ARPI_CG_CMD_OPT, 1, 0)
-DEFINE_BITFIELD(MISC_CTRL3_ARPI_CG_CLK_OPT, 3, 2)
-DEFINE_BIT(MISC_CTRL3_ARPI_MPDIV_CG_CA_OPT, 4)
-DEFINE_BIT(MISC_CTRL3_ARPI_CG_MCK_CA_OPT, 5)
-DEFINE_BIT(MISC_CTRL3_ARPI_CG_MCTL_CA_OPT, 6)
-DEFINE_BITFIELD(MISC_CTRL3_ARPI_CG_DQ_OPT, 17, 16)
-DEFINE_BITFIELD(MISC_CTRL3_ARPI_CG_DQS_OPT, 19, 18)
-DEFINE_BIT(MISC_CTRL3_ARPI_MPDIV_CG_DQ_OPT, 20)
-DEFINE_BIT(MISC_CTRL3_ARPI_CG_MCK_DQ_OPT, 21)
-DEFINE_BIT(MISC_CTRL3_ARPI_CG_MCTL_DQ_OPT, 22)
-DEFINE_BIT(MISC_CTRL3_R_DDRPHY_COMB_CG_IG, 26)
-DEFINE_BIT(MISC_CTRL3_R_DDRPHY_RX_PIPE_CG_IG, 27)
-
-/* DDRPHY_REG_MISC_CG_CTRL5 */
-DEFINE_BIT(MISC_CG_CTRL5_R_DQ1_DLY_DCM_EN, 16)
-DEFINE_BIT(MISC_CG_CTRL5_R_DQ0_DLY_DCM_EN, 17)
-DEFINE_BIT(MISC_CG_CTRL5_R_CA_DLY_DCM_EN, 18)
-DEFINE_BIT(MISC_CG_CTRL5_R_DQ1_PI_DCM_EN, 20)
-DEFINE_BIT(MISC_CG_CTRL5_R_DQ0_PI_DCM_EN, 21)
-DEFINE_BIT(MISC_CG_CTRL5_R_CA_PI_DCM_EN, 22)
-
-/* DRAMC_REG_RX_CG_SET0 */
-DEFINE_BIT(RX_CG_SET0_RDATCKAR, 30)
-DEFINE_BIT(RX_CG_SET0_RDYCKAR, 31)
-
-/* DRAMC_REG_SREF_DPD_CTRL */
-DEFINE_BIT(SREF_DPD_CTRL_LPSM_BYPASS_B, 7)
-DEFINE_BIT(SREF_DPD_CTRL_CLR_EN, 9)
-DEFINE_BIT(SREF_DPD_CTRL_SELFREF_AUTOSAVE_EN, 10)
-DEFINE_BIT(SREF_DPD_CTRL_SREF_PRD_OPT, 11)
-DEFINE_BIT(SREF_DPD_CTRL_SREF_CG_OPT, 12)
-DEFINE_BIT(SREF_DPD_CTRL_SRFPD_DIS, 13)
-DEFINE_BITFIELD(SREF_DPD_CTRL_SREFDLY, 19, 16)
-DEFINE_BIT(SREF_DPD_CTRL_SREF_HW_EN, 22)
-DEFINE_BIT(SREF_DPD_CTRL_CMDCKAR, 26)
-DEFINE_BIT(SREF_DPD_CTRL_GT_SYNC_MASK, 29)
-DEFINE_BIT(SREF_DPD_CTRL_DAT_SYNC_MASK, 30)
-DEFINE_BIT(SREF_DPD_CTRL_PHY_SYNC_MASK, 31)
-
-/* DRAMC_REG_DCM_CTRL0 */
-DEFINE_BIT(DCM_CTRL0_BCLKAR, 2)
-
-/* DRAMC_REG_TX_CG_SET0 */
-DEFINE_BIT(TX_CG_SET0_SELPH_4LCG_DIS, 0)
-DEFINE_BIT(TX_CG_SET0_SELPH_CG_DIS, 1)
-DEFINE_BIT(TX_CG_SET0_DWCLKRUN, 2)
-DEFINE_BIT(TX_CG_SET0_WDATA_CG_DIS, 3)
-DEFINE_BIT(TX_CG_SET0_TX_ATK_CLKRUN, 4)
-DEFINE_BIT(TX_CG_SET0_PSELAR, 31)
-
-/* DRAMC_REG_SCSMCTRL_CG */
-DEFINE_BIT(SCSMCTRL_CG_SCARB_SM_CGAR, 30)
-DEFINE_BIT(SCSMCTRL_CG_SCSM_CGAR, 31)
-
-/* DRAMC_REG_TX_TRACKING_SET0 */
-DEFINE_BIT(TX_TRACKING_SET0_TX_TRACKING_OPT, 15)
-DEFINE_BIT(TX_TRACKING_SET0_SW_UP_TX_NOW_CASE, 16)
-DEFINE_BIT(TX_TRACKING_SET0_TXUIPI_CAL_CGAR, 17)
-DEFINE_BIT(TX_TRACKING_SET0_SHU_PRELOAD_TX_START, 18)
-DEFINE_BIT(TX_TRACKING_SET0_SHU_PRELOAD_TX_HW, 19)
-DEFINE_BIT(TX_TRACKING_SET0_HMRRSEL_CGAR, 21)
-DEFINE_BIT(TX_TRACKING_SET0_RDDQSOSC_CGAR, 22)
-
-/* DRAMC_REG_ZQ_SET0 */
-DEFINE_BITFIELD(ZQ_SET0_ZQCSOP, 7, 0)
-DEFINE_BITFIELD(ZQ_SET0_ZQCSAD, 15, 8)
-DEFINE_BITFIELD(ZQ_SET0_ZQCS_MASK_SEL, 18, 16)
-DEFINE_BIT(ZQ_SET0_ZQCS_MASK_SEL_CGAR, 19)
-DEFINE_BIT(ZQ_SET0_ZQMASK_CGAR, 20)
-DEFINE_BIT(ZQ_SET0_ZQCSMASK_OPT, 21)
-DEFINE_BIT(ZQ_SET0_ZQCSMASK, 29)
-DEFINE_BIT(ZQ_SET0_ZQCSDUAL, 30)
-
-/* DRAMC_REG_ACTIMING_CTRL */
-DEFINE_BIT(ACTIMING_CTRL_SEQCLKRUN3, 0)
-DEFINE_BIT(ACTIMING_CTRL_SEQCLKRUN2, 1)
-DEFINE_BIT(ACTIMING_CTRL_SEQCLKRUN, 2)
-DEFINE_BIT(ACTIMING_CTRL_REFNA_OPT, 6)
-DEFINE_BIT(ACTIMING_CTRL_REFBW_FREN, 8)
-DEFINE_BIT(ACTIMING_CTRL_CLKWITRFC, 9)
-DEFINE_BIT(ACTIMING_CTRL_TMRRICHKDIS, 21)
-DEFINE_BIT(ACTIMING_CTRL_TMRRIBYRK_DIS, 22)
-DEFINE_BIT(ACTIMING_CTRL_MRRIOPT, 23)
-DEFINE_BIT(ACTIMING_CTRL_FASTW2R, 24)
-
-/* DRAMC_REG_CLKAR */
-DEFINE_BITFIELD(CLKAR_REQQUE_PACG_DIS, 14, 0)
-DEFINE_BIT(CLKAR_DCMREF_OPT, 24)
-DEFINE_BIT(CLKAR_REQQUECLKRUN, 27)
-
-/* DRAMC_REG_DRAMC_PD_CTRL */
-DEFINE_BIT(DRAMC_PD_CTRL_DCMEN, 0)
-DEFINE_BIT(DRAMC_PD_CTRL_DCMEN2, 1)
-DEFINE_BIT(DRAMC_PD_CTRL_DCMENNOTRFC, 2)
-DEFINE_BIT(DRAMC_PD_CTRL_PHYGLUECLKRUN, 3)
-DEFINE_BIT(DRAMC_PD_CTRL_COMBPHY_CLKENSAME, 5)
-DEFINE_BIT(DRAMC_PD_CTRL_MIOCKCTRLOFF, 6)
-DEFINE_BIT(DRAMC_PD_CTRL_PG_DCM_OPT, 9)
-DEFINE_BIT(DRAMC_PD_CTRL_APHYCKCG_FIXOFF, 12)
-DEFINE_BIT(DRAMC_PD_CTRL_TCKFIXON, 13)
-DEFINE_BIT(DRAMC_PD_CTRL_PHYCLKDYNGEN, 30)
-DEFINE_BIT(DRAMC_PD_CTRL_COMBCLKCTRL, 31)
-
-/* DRAMC_REG_TEST2_A3 */
-DEFINE_BIT(TEST2_A3_ADRDECEN_TARKMODE, 5)
-DEFINE_BIT(TEST2_A3_TESTAUDPAT, 7)
-DEFINE_BIT(TEST2_A3_TESTCLKRUN, 8)
-DEFINE_BIT(TEST2_A3_PAT_SHIFT_SW_EN, 11)
-DEFINE_BIT(TEST2_A3_TEST2_PAT_SHIFT, 15)
-DEFINE_BIT(TEST2_A3_TEST_AID_EN, 16)
-DEFINE_BIT(TEST2_A3_HFIDPAT, 17)
-DEFINE_BIT(TEST2_A3_AUTO_GEN_PAT, 18)
-DEFINE_BIT(TEST2_A3_TEST2WREN2_HW_EN, 28)
-DEFINE_BIT(TEST2_A3_TEST1, 29)
-DEFINE_BIT(TEST2_A3_TEST2R, 30)
-DEFINE_BIT(TEST2_A3_TEST2W, 31)
-
-/* DRAMC_REG_DVFS_CTRL0 */
-DEFINE_BIT(DVFS_CTRL0_R_DRAMC_CHA, 0)
-DEFINE_BIT(DVFS_CTRL0_SHU_PHYRST_SEL, 1)
-DEFINE_BIT(DVFS_CTRL0_R_DVFS_SREF_OPT, 5)
-DEFINE_BIT(DVFS_CTRL0_HWSET_WLRL, 8)
-DEFINE_BIT(DVFS_CTRL0_MR13_SHU_EN, 9)
-DEFINE_BIT(DVFS_CTRL0_VRCG_EN, 10)
-DEFINE_BIT(DVFS_CTRL0_DVFS_RXFIFOST_SKIP, 13)
-DEFINE_BIT(DVFS_CTRL0_DVFS_NOQUEFLUSH_EN, 15)
-DEFINE_BIT(DVFS_CTRL0_DVFS_CKE_OPT, 16)
-DEFINE_BIT(DVFS_CTRL0_DVFS_CG_OPT, 19)
-DEFINE_BIT(DVFS_CTRL0_SCARB_PRI_OPT, 20)
-DEFINE_BIT(DVFS_CTRL0_R_DMDVFSMRW_EN, 21)
-DEFINE_BIT(DVFS_CTRL0_MRWWOPRA, 22)
-DEFINE_BIT(DVFS_CTRL0_DVFS_SYNC_MASK, 27)
-
-/* DDRPHY_REG_MISC_DUTYSCAN1 */
-DEFINE_BIT(MISC_DUTYSCAN1_REG_SW_RST, 0)
-DEFINE_BIT(MISC_DUTYSCAN1_RX_EYE_SCAN_EN, 1)
-DEFINE_BIT(MISC_DUTYSCAN1_RX_MIOCK_JIT_EN, 2)
-DEFINE_BIT(MISC_DUTYSCAN1_RX_EYE_SCAN_CG_EN, 3)
-DEFINE_BIT(MISC_DUTYSCAN1_EYESCAN_DQ_SYNC_EN, 8)
-DEFINE_BIT(MISC_DUTYSCAN1_EYESCAN_NEW_DQ_SYNC_EN, 9)
-DEFINE_BIT(MISC_DUTYSCAN1_EYESCAN_DQS_SYNC_EN, 10)
-DEFINE_BIT(MISC_DUTYSCAN1_EYESCAN_DQS_OPT, 11)
-DEFINE_BIT(MISC_DUTYSCAN1_DQSERRCNT_DIS, 14)
-
-/* DDRPHY_REG_SHU_B0_DQ8 */
-DEFINE_BITFIELD(SHU_B0_DQ8_R_DMRXDVS_UPD_FORCE_CYC_B0, 14, 0)
-DEFINE_BIT(SHU_B0_DQ8_R_DMRXDVS_UPD_FORCE_EN_B0, 15)
-DEFINE_BIT(SHU_B0_DQ8_R_DMRANK_RXDLY_PIPE_CG_IG_B0, 19)
-DEFINE_BIT(SHU_B0_DQ8_R_RMRODTEN_CG_IG_B0, 20)
-DEFINE_BIT(SHU_B0_DQ8_R_RMRX_TOPHY_CG_IG_B0, 21)
-DEFINE_BIT(SHU_B0_DQ8_R_DMRXDVS_RDSEL_PIPE_CG_IG_B0, 22)
-DEFINE_BIT(SHU_B0_DQ8_R_DMRXDVS_RDSEL_TOG_PIPE_CG_IG_B0, 23)
-DEFINE_BIT(SHU_B0_DQ8_R_DMRXDLY_CG_IG_B0, 24)
-DEFINE_BIT(SHU_B0_DQ8_R_DMDQSIEN_FLAG_SYNC_CG_IG_B0, 26)
-DEFINE_BIT(SHU_B0_DQ8_R_DMDQSIEN_FLAG_PIPE_CG_IG_B0, 27)
-DEFINE_BIT(SHU_B0_DQ8_R_DMDQSIEN_RDSEL_PIPE_CG_IG_B0, 28)
-DEFINE_BIT(SHU_B0_DQ8_R_DMDQSIEN_RDSEL_TOG_PIPE_CG_IG_B0, 29)
-DEFINE_BIT(SHU_B0_DQ8_R_DMRANK_PIPE_CG_IG_B0, 30)
-DEFINE_BIT(SHU_B0_DQ8_R_DMRANK_CHG_PIPE_CG_IG_B0, 31)
-
-/* DDRPHY_REG_SHU_B1_DQ8 */
-DEFINE_BITFIELD(SHU_B1_DQ8_R_DMRXDVS_UPD_FORCE_CYC_B1, 14, 0)
-DEFINE_BIT(SHU_B1_DQ8_R_DMRXDVS_UPD_FORCE_EN_B1, 15)
-DEFINE_BIT(SHU_B1_DQ8_R_DMRANK_RXDLY_PIPE_CG_IG_B1, 19)
-DEFINE_BIT(SHU_B1_DQ8_R_RMRODTEN_CG_IG_B1, 20)
-DEFINE_BIT(SHU_B1_DQ8_R_RMRX_TOPHY_CG_IG_B1, 21)
-DEFINE_BIT(SHU_B1_DQ8_R_DMRXDVS_RDSEL_PIPE_CG_IG_B1, 22)
-DEFINE_BIT(SHU_B1_DQ8_R_DMRXDVS_RDSEL_TOG_PIPE_CG_IG_B1, 23)
-DEFINE_BIT(SHU_B1_DQ8_R_DMRXDLY_CG_IG_B1, 24)
-DEFINE_BIT(SHU_B1_DQ8_R_DMDQSIEN_FLAG_SYNC_CG_IG_B1, 26)
-DEFINE_BIT(SHU_B1_DQ8_R_DMDQSIEN_FLAG_PIPE_CG_IG_B1, 27)
-DEFINE_BIT(SHU_B1_DQ8_R_DMDQSIEN_RDSEL_PIPE_CG_IG_B1, 28)
-DEFINE_BIT(SHU_B1_DQ8_R_DMDQSIEN_RDSEL_TOG_PIPE_CG_IG_B1, 29)
-DEFINE_BIT(SHU_B1_DQ8_R_DMRANK_PIPE_CG_IG_B1, 30)
-DEFINE_BIT(SHU_B1_DQ8_R_DMRANK_CHG_PIPE_CG_IG_B1, 31)
-
-/* DRAMC_REG_DDRCOMMON0 */
-DEFINE_BIT(DDRCOMMON0_DISSTOP26M, 0)
-DEFINE_BIT(DDRCOMMON0_TRCDEARLY, 3)
-DEFINE_BIT(DDRCOMMON0_BK8EN, 8)
-DEFINE_BIT(DDRCOMMON0_LPDDR4EN, 19)
-DEFINE_BIT(DDRCOMMON0_LPDDR5EN, 20)
-
-/* DRAMC_REG_RX_SET0 */
-DEFINE_BIT(RX_SET0_RDATRST, 0)
-DEFINE_BIT(RX_SET0_PRE_DLE_VLD_OPT, 1)
-DEFINE_BITFIELD(RX_SET0_DATLAT_PDLE_TH, 4, 2)
-DEFINE_BIT(RX_SET0_SMRR_UPD_OLD, 6)
-DEFINE_BIT(RX_SET0_DM4TO1MODE, 31)
-
-/* DRAMC_REG_REFCTRL0 */
-DEFINE_BITFIELD(REFCTRL0_PBREF_BK_REFA_NUM, 2, 0)
-DEFINE_BIT(REFCTRL0_PBREF_BK_REFA_ENA, 3)
-DEFINE_BIT(REFCTRL0_DMPGVLD_IG, 8)
-DEFINE_BIT(REFCTRL0_KEEP_PBREF_OPT, 9)
-DEFINE_BIT(REFCTRL0_KEEP_PBREF, 10)
-DEFINE_BITFIELD(REFCTRL0_DISBYREFNUM, 14, 12)
-DEFINE_BIT(REFCTRL0_PBREF_DISBYREFNUM, 16)
-DEFINE_BIT(REFCTRL0_PBREF_DISBYRATE, 17)
-DEFINE_BITFIELD(REFCTRL0_REF_PREGATE_CNT, 27, 24)
-DEFINE_BIT(REFCTRL0_REFDIS, 29)
-
-/* DRAMC_REG_REFCTRL1 */
-DEFINE_BIT(REFCTRL1_PB2AB_OPT, 0)
-DEFINE_BIT(REFCTRL1_REFPENDINGINT_OPT1, 3)
-DEFINE_BIT(REFCTRL1_REF_QUE_AUTOSAVE_EN, 5)
-DEFINE_BIT(REFCTRL1_REFPEND_OPT1, 6)
-DEFINE_BIT(REFCTRL1_REFPEND_OPT2, 7)
-DEFINE_BIT(REFCTRL1_REFPB2AB_IGZQCS, 8)
-DEFINE_BIT(REFCTRL1_REFRATE_MON_CLR, 11)
-DEFINE_BIT(REFCTRL1_REF_OVERHEAD_PBR2PB_ENA, 13)
-DEFINE_BIT(REFCTRL1_REF_OVERHEAD_RATE_REFAL_ENA, 14)
-DEFINE_BIT(REFCTRL1_REF_OVERHEAD_RATE_REFPB_ENA, 15)
-DEFINE_BIT(REFCTRL1_REF_OVERHEAD_SLOW_REFAL_ENA, 24)
-DEFINE_BIT(REFCTRL1_REF_OVERHEAD_SLOW_REFPB_ENA, 25)
-DEFINE_BIT(REFCTRL1_REF_OVERHEAD_ALL_REFAL_ENA, 26)
-DEFINE_BIT(REFCTRL1_REF_OVERHEAD_ALL_REFPB_ENA, 27)
-
-/* DRAMC_REG_REFCTRL2 */
-DEFINE_BITFIELD(REFCTRL2_MR4INT_TH, 4, 0)
-DEFINE_BITFIELD(REFCTRL2_REF_OVERHEAD_RATE, 31, 16)
-
-/* DRAMC_REG_DRAMCTRL */
-DEFINE_BIT(DRAMCTRL_CTOREQ_HPRI_OPT, 0)
-DEFINE_BIT(DRAMCTRL_ADRDECEN, 2)
-DEFINE_BIT(DRAMCTRL_ADRBIT3DEC, 3)
-DEFINE_BIT(DRAMCTRL_ALL_BLOCK_CTO_ALE_DBG_EN, 8)
-DEFINE_BIT(DRAMCTRL_SELFREF_BLOCK_CTO_ALE_DBG_EN, 9)
-DEFINE_BIT(DRAMCTRL_DVFS_BLOCK_CTO_ALE_DBG_EN, 10)
-DEFINE_BIT(DRAMCTRL_AG0MWR, 12)
-DEFINE_BIT(DRAMCTRL_DYNMWREN, 13)
-DEFINE_BIT(DRAMCTRL_PREALL_OPTION, 19)
-DEFINE_BIT(DRAMCTRL_REQQUE_THD_EN, 26)
-DEFINE_BIT(DRAMCTRL_SHORTQ_OPT, 31)
-
-/* DRAMC_REG_ARBCTL */
-DEFINE_BITFIELD(ARBCTL_MAXPENDCNT, 7, 0)
-DEFINE_BIT(ARBCTL_WDATACNTDIS, 9)
-
-/* DRAMC_REG_DRAM_CLK_CTRL */
-DEFINE_BIT(DRAM_CLK_CTRL_CLK_EN, 0)
-
-/* DRAMC_REG_RKCFG */
-DEFINE_BIT(RKCFG_MRS2RK, 10)
-DEFINE_BIT(RKCFG_CKE2RANK, 12)
-
-/* DRAMC_REG_CKECTRL */
-DEFINE_BIT(CKECTRL_CKE2RANK_OPT3, 1)
-DEFINE_BIT(CKECTRL_CKE1FIXON, 4)
-DEFINE_BIT(CKECTRL_CKE1FIXOFF, 5)
-DEFINE_BIT(CKECTRL_CKEFIXON, 6)
-DEFINE_BIT(CKECTRL_CKEFIXOFF, 7)
-DEFINE_BIT(CKECTRL_CKE2RANK_OPT5, 8)
-DEFINE_BIT(CKECTRL_CKE2RANK_OPT6, 9)
-DEFINE_BIT(CKECTRL_CKE2RANK_OPT7, 10)
-DEFINE_BIT(CKECTRL_CKE2RANK_OPT8, 11)
-DEFINE_BIT(CKECTRL_CKETIMER_SEL, 13)
-DEFINE_BIT(CKECTRL_FASTWAKE_SEL, 14)
-DEFINE_BIT(CKECTRL_CKEWAKE_SEL, 15)
-DEFINE_BIT(CKECTRL_CKEPBDIS, 22)
-DEFINE_BIT(CKECTRL_CKELCKFIX, 23)
-DEFINE_BIT(CKECTRL_CKE2RANK_OPT2, 24)
-DEFINE_BIT(CKECTRL_CKE2RANK_OPT, 25)
-DEFINE_BIT(CKECTRL_RUNTIMEMRRCKEFIX, 27)
-DEFINE_BIT(CKECTRL_RUNTIMEMRRMIODIS, 28)
-DEFINE_BIT(CKECTRL_CKEON, 31)
-
-/* DRAMC_REG_SCHEDULER_COM */
-DEFINE_BIT(SCHEDULER_COM_RWOFOEN, 0)
-DEFINE_BIT(SCHEDULER_COM_RWHPRICTL, 4)
-DEFINE_BIT(SCHEDULER_COM_RWSPLIT, 5)
-DEFINE_BIT(SCHEDULER_COM_MWHPRIEN, 6)
-DEFINE_BIT(SCHEDULER_COM_DISRDPHASE1, 8)
-DEFINE_BIT(SCHEDULER_COM_PBR2PBR_OPT, 9)
-
-/* DRAMC_REG_PERFCTL0 */
-DEFINE_BIT(PERFCTL0_EBG_EN, 0)
-DEFINE_BIT(PERFCTL0_RWHPRIEN, 8)
-DEFINE_BIT(PERFCTL0_RWLLATEN, 9)
-DEFINE_BIT(PERFCTL0_RWAGEEN, 10)
-DEFINE_BIT(PERFCTL0_EMILLATEN, 11)
-DEFINE_BIT(PERFCTL0_WFLUSHEN, 14)
-DEFINE_BIT(PERFCTL0_REORDER_MODE, 18)
-DEFINE_BIT(PERFCTL0_REORDEREN, 19)
-
-/* DRAMC_REG_HW_MRR_FUN */
-DEFINE_BIT(HW_MRR_FUN_TMRR_ENA, 0)
-DEFINE_BIT(HW_MRR_FUN_TRCDMRR_EN, 1)
-DEFINE_BIT(HW_MRR_FUN_TRPMRR_EN, 2)
-DEFINE_BIT(HW_MRR_FUN_MANTMRR_EN, 3)
-DEFINE_BIT(HW_MRR_FUN_TR2MRR_ENA, 4)
-DEFINE_BIT(HW_MRR_FUN_R2MRRHPRICTL, 5)
-DEFINE_BIT(HW_MRR_FUN_MRR_HW_HIPRI, 11)
-
-/* DRAMC_REG_MPC_OPTION */
-DEFINE_BIT(MPC_OPTION_MPCRKEN, 17)
-
-/* DRAMC_REG_MPC_CTRL */
-DEFINE_BIT(MPC_CTRL_MPC_BLOCKALE_OPT, 0)
-DEFINE_BIT(MPC_CTRL_MPC_BLOCKALE_OPT1, 1)
-DEFINE_BIT(MPC_CTRL_MPC_BLOCKALE_OPT2, 2)
-DEFINE_BIT(MPC_CTRL_ZQ_BLOCKALE_OPT, 3)
-DEFINE_BIT(MPC_CTRL_REFR_BLOCKEN, 5)
-DEFINE_BIT(MPC_CTRL_RTMRW_HPRI_EN, 6)
-DEFINE_BIT(MPC_CTRL_RTSWCMD_HPRI_EN, 7)
-
-/* DRAMC_REG_HMR4 */
-DEFINE_BIT(HMR4_HMR4_TOG_OPT, 1)
-DEFINE_BIT(HMR4_SPDR_MR4_OPT, 2)
-DEFINE_BIT(HMR4_HMR4_BYTEMODE_EN, 5)
-DEFINE_BIT(HMR4_MR4INT_LIMITEN, 6)
-DEFINE_BIT(HMR4_REFR_PERIOD_OPT, 7)
-DEFINE_BIT(HMR4_REFRDIS, 8)
-DEFINE_BIT(HMR4_REFRCNT_OPT, 9)
-
-/* DRAMC_REG_RK_TEST2_A1 */
-DEFINE_BITFIELD(RK_TEST2_A1_TEST2_BASE, 31, 3)
-
-/* DRAMC_REG_TEST2_A2 */
-DEFINE_BITFIELD(TEST2_A2_TEST2_OFF, 31, 4)
-
-/* DRAMC_REG_TEST2_A4 */
-DEFINE_BITFIELD(TEST2_A4_TESTAUDINC, 4, 0)
-DEFINE_BIT(TEST2_A4_TESTSSOPAT, 6)
-DEFINE_BIT(TEST2_A4_TESTSSOXTALKPAT, 7)
-DEFINE_BITFIELD(TEST2_A4_TESTAUDINIT, 12, 8)
-DEFINE_BIT(TEST2_A4_TESTAUDBITINV, 14)
-DEFINE_BIT(TEST2_A4_TESTAUDMODE, 15)
-DEFINE_BIT(TEST2_A4_TESTXTALKPAT, 16)
-DEFINE_BIT(TEST2_A4_TEST_REQ_LEN1, 17)
-DEFINE_BITFIELD(TEST2_A4_TESTAGENTRK, 25, 24)
-DEFINE_BITFIELD(TEST2_A4_TESTAGENTRKSEL, 30, 28)
-
-/* DRAMC_REG_CMD_DEC_CTRL0 */
-DEFINE_BIT(CMD_DEC_CTRL0_SELPH_CMD_CG_DIS, 4)
-DEFINE_BITFIELD(CMD_DEC_CTRL0_RKMODE, 10, 8)
-
-/* DRAMC_REG_MISCTL0 */
-DEFINE_BIT(MISCTL0_REFP_ARBMASK_PBR2PBR_ENA, 0)
-DEFINE_BIT(MISCTL0_REFP_ARBMASK_PBR2PBR_PA_DIS, 1)
-DEFINE_BITFIELD(MISCTL0_PG_WAKEUP_OPT, 15, 14)
-DEFINE_BIT(MISCTL0_PAGDIS, 17)
-DEFINE_BIT(MISCTL0_REFA_ARB_EN2, 19)
-DEFINE_BIT(MISCTL0_PBC_ARB_E1T, 23)
-DEFINE_BIT(MISCTL0_PBC_ARB_EN, 24)
-DEFINE_BIT(MISCTL0_EMIPREEN, 27)
-DEFINE_BIT(MISCTL0_REFP_ARB_EN2, 31)
-
-/* DRAMC_REG_SCSMCTRL */
-DEFINE_BIT(SCSMCTRL_SC_PG_UPD_OPT, 0)
-DEFINE_BIT(SCSMCTRL_SC_PG_MAN_DIS, 1)
-
-/* DRAMC_REG_SHUCTRL1 */
-DEFINE_BITFIELD(SHUCTRL1_FC_PRDCNT, 7, 0)
-DEFINE_BITFIELD(SHUCTRL1_CKFSPE_PRDCNT, 15, 8)
-DEFINE_BITFIELD(SHUCTRL1_CKFSPX_PRDCNT, 23, 16)
-DEFINE_BITFIELD(SHUCTRL1_VRCGEN_PRDCNT, 31, 24)
-
-/* DRAMC_REG_DVFS_TIMING_CTRL1 */
-DEFINE_BITFIELD(DVFS_TIMING_CTRL1_SHU_PERIOD_GO_ZERO_CNT, 7, 0)
-DEFINE_BITFIELD(DVFS_TIMING_CTRL1_DMSHU_CNT, 21, 16)
-
-/* DRAMC_REG_REFPEND1 */
-DEFINE_BITFIELD(REFPEND1_MPENDREFCNT_TH0, 3, 0)
-DEFINE_BITFIELD(REFPEND1_MPENDREFCNT_TH1, 7, 4)
-DEFINE_BITFIELD(REFPEND1_MPENDREFCNT_TH2, 11, 8)
-DEFINE_BITFIELD(REFPEND1_MPENDREFCNT_TH3, 15, 12)
-DEFINE_BITFIELD(REFPEND1_MPENDREFCNT_TH4, 19, 16)
-DEFINE_BITFIELD(REFPEND1_MPENDREFCNT_TH5, 23, 20)
-DEFINE_BITFIELD(REFPEND1_MPENDREFCNT_TH6, 27, 24)
-DEFINE_BITFIELD(REFPEND1_MPENDREFCNT_TH7, 31, 28)
-
-/* DRAMC_REG_CBT_WLEV_CTRL1 */
-DEFINE_BITFIELD(CBT_WLEV_CTRL1_CATRAINLAT, 14, 11)
-DEFINE_BITFIELD(CBT_WLEV_CTRL1_CATRAIN_INTV, 22, 15)
-DEFINE_BITFIELD(CBT_WLEV_CTRL1_TCMDO1LAT, 30, 23)
-
-/* DRAMC_REG_TX_SET0 */
-DEFINE_BITFIELD(TX_SET0_TXRANK, 1, 0)
-DEFINE_BIT(TX_SET0_TXRANKFIX, 2)
-DEFINE_BIT(TX_SET0_OE_DOWNGRADE, 6)
-DEFINE_BIT(TX_SET0_WPRE2T, 22)
-DEFINE_BIT(TX_SET0_DRSCLR_EN, 24)
-DEFINE_BIT(TX_SET0_DRSCLR_RK0_EN, 25)
-DEFINE_BIT(TX_SET0_RK_SCINPUT_OPT, 30)
-
-/* DRAMC_REG_DQSOSCR */
-DEFINE_BIT(DQSOSCR_ARUIDQ_SW, 7)
-DEFINE_BIT(DQSOSCR_SREF_TXUI_RELOAD_OPT, 23)
-DEFINE_BIT(DQSOSCR_DQSOSCRDIS, 24)
-DEFINE_BIT(DQSOSCR_R_DMDQS2DQ_FILT_OPT, 26)
-DEFINE_BIT(DQSOSCR_SREF_TXPI_RELOAD_OPT, 27)
-DEFINE_BIT(DQSOSCR_DQSOSC_CALEN, 31)
-
-/* DRAMC_REG_DUMMY_RD */
-DEFINE_BIT(DUMMY_RD_DUMMY_RD_SW, 4)
-DEFINE_BIT(DUMMY_RD_DMY_WR_DBG, 6)
-DEFINE_BIT(DUMMY_RD_DMY_RD_DBG, 7)
-DEFINE_BIT(DUMMY_RD_DRS_SELFWAKE_DMYRD_DIS, 15)
-DEFINE_BITFIELD(DUMMY_RD_RANK_NUM, 17, 16)
-DEFINE_BIT(DUMMY_RD_DUMMY_RD_EN, 20)
-DEFINE_BIT(DUMMY_RD_SREF_DMYRD_EN, 21)
-DEFINE_BIT(DUMMY_RD_DQSG_DMYRD_EN, 22)
-DEFINE_BIT(DUMMY_RD_DQSG_DMYWR_EN, 23)
-DEFINE_BIT(DUMMY_RD_DUMMY_RD_PA_OPT, 24)
-DEFINE_BIT(DUMMY_RD_DMYRD_REORDER_DIS, 27)
-
-/* DRAMC_REG_DUMMY_RD_INTV */
-DEFINE_BIT(DUMMY_RD_INTV_DUMMY_RD_CNT0, 0)
-DEFINE_BIT(DUMMY_RD_INTV_DUMMY_RD_CNT1, 1)
-DEFINE_BIT(DUMMY_RD_INTV_DUMMY_RD_CNT2, 2)
-DEFINE_BIT(DUMMY_RD_INTV_DUMMY_RD_CNT3, 3)
-DEFINE_BIT(DUMMY_RD_INTV_DUMMY_RD_CNT4, 4)
-DEFINE_BIT(DUMMY_RD_INTV_DUMMY_RD_CNT5, 5)
-DEFINE_BIT(DUMMY_RD_INTV_DUMMY_RD_CNT6, 6)
-DEFINE_BIT(DUMMY_RD_INTV_DUMMY_RD_CNT7, 7)
-
-/* DRAMC_REG_RK_DQSOSC */
-DEFINE_BIT(RK_DQSOSC_RK0_BYTE_MODE, 29)
-DEFINE_BIT(RK_DQSOSC_DQSOSCR_RK0EN, 30)
-
-/* DRAMC_REG_TX_FREQ_RATIO_OLD_MODE0 */
-DEFINE_BIT(TX_FREQ_RATIO_OLD_MODE0_SHUFFLE_LEVEL_MODE_SELECT, 31)
-
-/* DRAMC_REG_SWCMD_CTRL1 */
-DEFINE_BIT(SWCMD_CTRL1_RDDQC_LP_ENB, 2)
-DEFINE_BIT(SWCMD_CTRL1_WRFIFO_MODE2, 31)
-
-/* DRAMC_REG_DBG_CMDDEC_CMDSEL0 */
-DEFINE_BIT(DBG_CMDDEC_CMDSEL0_RANK0_10GBEN, 0)
-DEFINE_BIT(DBG_CMDDEC_CMDSEL0_RANK1_10GBEN, 1)
-
-/* DRAMC_REG_DBIWR_PROTECT */
-DEFINE_BIT(DBIWR_PROTECT_DBIWR_IMP_EN, 0)
-DEFINE_BIT(DBIWR_PROTECT_DBIWR_PINMUX_EN, 1)
-DEFINE_BITFIELD(DBIWR_PROTECT_DBIWR_OPT_B0, 23, 16)
-DEFINE_BITFIELD(DBIWR_PROTECT_DBIWR_OPT_B1, 31, 24)
-
-/* DDRPHY_REG_MISC_SRAM_DMA0 */
-DEFINE_BIT(MISC_SRAM_DMA0_SW_DMA_FIRE, 0)
-DEFINE_BIT(MISC_SRAM_DMA0_SW_MODE, 1)
-DEFINE_BIT(MISC_SRAM_DMA0_APB_WR_MODE, 2)
-DEFINE_BIT(MISC_SRAM_DMA0_SRAM_WR_MODE, 3)
-DEFINE_BITFIELD(MISC_SRAM_DMA0_SW_SHU_LEVEL_SRAM, 7, 4)
-DEFINE_BITFIELD(MISC_SRAM_DMA0_SW_SHU_LEVEL_APB, 11, 8)
-DEFINE_BITFIELD(MISC_SRAM_DMA0_PENABLE_LAT_WR, 15, 14)
-DEFINE_BIT(MISC_SRAM_DMA0_KEEP_SRAM_ARB_ENA, 16)
-DEFINE_BIT(MISC_SRAM_DMA0_KEEP_APB_ARB_ENA, 17)
-DEFINE_BIT(MISC_SRAM_DMA0_DMA_TIMER_EN, 18)
-DEFINE_BIT(MISC_SRAM_DMA0_SW_STEP_EN_MODE, 23)
-DEFINE_BITFIELD(MISC_SRAM_DMA0_APB_SLV_SEL, 29, 28)
-
-/* DDRPHY_MD32_REG_SSPM_MCLK_DIV */
-DEFINE_BIT(SSPM_MCLK_DIV_MCLK_DCM_EN, 8)
-
-/* DDRPHY_REG_CA_CMD7 */
-DEFINE_BIT(CA_CMD7_RG_TX_ARCLKB_PULL_DN, 0)
-DEFINE_BIT(CA_CMD7_RG_TX_ARCLKB_PULL_UP, 1)
-DEFINE_BIT(CA_CMD7_RG_TX_ARCLK_PULL_DN, 2)
-DEFINE_BIT(CA_CMD7_RG_TX_ARCLK_PULL_UP, 3)
-DEFINE_BIT(CA_CMD7_RG_TX_ARCS0_PULL_DN, 4)
-DEFINE_BIT(CA_CMD7_RG_TX_ARCS0_PULL_UP, 5)
-DEFINE_BIT(CA_CMD7_RG_TX_ARCMD_PULL_DN, 6)
-DEFINE_BIT(CA_CMD7_RG_TX_ARCMD_PULL_UP, 7)
-DEFINE_BIT(CA_CMD7_RG_TX_ARCLKB_PULL_DN_LP4Y, 16)
-
-/* DDRPHY_REG_B0_DQ7 */
-DEFINE_BIT(B0_DQ7_RG_TX_ARDQS0B_PULL_DN_B0, 0)
-DEFINE_BIT(B0_DQ7_RG_TX_ARDQS0B_PULL_UP_B0, 1)
-DEFINE_BIT(B0_DQ7_RG_TX_ARDQS0_PULL_DN_B0, 2)
-DEFINE_BIT(B0_DQ7_RG_TX_ARDQS0_PULL_UP_B0, 3)
-DEFINE_BIT(B0_DQ7_RG_TX_ARDQM0_PULL_DN_B0, 4)
-DEFINE_BIT(B0_DQ7_RG_TX_ARDQM0_PULL_UP_B0, 5)
-DEFINE_BIT(B0_DQ7_RG_TX_ARDQ_PULL_DN_B0, 6)
-DEFINE_BIT(B0_DQ7_RG_TX_ARDQ_PULL_UP_B0, 7)
-DEFINE_BIT(B0_DQ7_RG_TX_ARDQS0B_PULL_DN_B0_LP4Y, 16)
-
-/* DDRPHY_REG_B1_DQ7 */
-DEFINE_BIT(B1_DQ7_RG_TX_ARDQS0B_PULL_DN_B1, 0)
-DEFINE_BIT(B1_DQ7_RG_TX_ARDQS0B_PULL_UP_B1, 1)
-DEFINE_BIT(B1_DQ7_RG_TX_ARDQS0_PULL_DN_B1, 2)
-DEFINE_BIT(B1_DQ7_RG_TX_ARDQS0_PULL_UP_B1, 3)
-DEFINE_BIT(B1_DQ7_RG_TX_ARDQM0_PULL_DN_B1, 4)
-DEFINE_BIT(B1_DQ7_RG_TX_ARDQM0_PULL_UP_B1, 5)
-DEFINE_BIT(B1_DQ7_RG_TX_ARDQ_PULL_DN_B1, 6)
-DEFINE_BIT(B1_DQ7_RG_TX_ARDQ_PULL_UP_B1, 7)
-DEFINE_BIT(B1_DQ7_RG_TX_ARDQS0B_PULL_DN_B1_LP4Y, 16)
-
-/* DDRPHY_REG_B0_DQ11 */
-DEFINE_BIT(B0_DQ11_DMY_DQ11_B0, 0)
-
-/* DDRPHY_REG_B1_DQ11 */
-DEFINE_BIT(B1_DQ11_DMY_DQ11_B1, 0)
-
-/* DDRPHY_REG_MISC_SRAM_DMA1 */
-DEFINE_BITFIELD(MISC_SRAM_DMA1_SPM_RESTORE_STEP_EN, 16, 0)
-DEFINE_BIT(MISC_SRAM_DMA1_R_APB_DMA_DBG_ACCESS, 19)
-DEFINE_BITFIELD(MISC_SRAM_DMA1_R_APB_DMA_DBG_LEVEL, 23, 20)
-
-/* DDRPHY_REG_MISC_CG_CTRL7 */
-DEFINE_BIT(MISC_CG_CTRL7_CK_BFE_DCM_EN, 11)
-DEFINE_BIT(MISC_CG_CTRL7_ARMCTL_CK_OUT_CG_SEL, 16)
-
-/* DDRPHY_REG_MISC_DVFSCTL2 */
-DEFINE_BIT(MISC_DVFSCTL2_RG_TOPCK_FMEM_CK_BLOCK_DURING_DFS, 3)
-DEFINE_BIT(MISC_DVFSCTL2_RG_DLL_SHUFFLE, 4)
-DEFINE_BIT(MISC_DVFSCTL2_RG_ADA_MCK8X_EN_SHUFFLE, 5)
-DEFINE_BIT(MISC_DVFSCTL2_RG_MRW_AFTER_DFS, 8)
-DEFINE_BIT(MISC_DVFSCTL2_R_DVFS_CDC_OPTION, 9)
-DEFINE_BIT(MISC_DVFSCTL2_R_DVFS_DLL_CHA, 12)
-DEFINE_BIT(MISC_DVFSCTL2_R_CDC_MUX_SEL_OPTION, 13)
-DEFINE_BIT(MISC_DVFSCTL2_R_DVFS_PARK_N, 14)
-DEFINE_BIT(MISC_DVFSCTL2_R_DVFS_OPTION, 15)
-DEFINE_BIT(MISC_DVFSCTL2_R_DVFS_CLK_CHG_OK_SEL, 29)
-DEFINE_BIT(MISC_DVFSCTL2_R_DVFS_SYNC_MODULE_RST_SEL, 31)
-
-/* DDRPHY_REG_MISC_DVFSCTL3 */
-DEFINE_BIT(MISC_DVFSCTL3_RG_PHY_ST_DELAY_AFT_CHG_TO_MCLK, 4)
-DEFINE_BIT(MISC_DVFSCTL3_RG_PHY_ST_DELAY_BEF_CHG_TO_MCLK, 5)
-DEFINE_BIT(MISC_DVFSCTL3_RG_PHY_ST_DELAY_AFT_CHG_TO_BCLK, 6)
-DEFINE_BIT(MISC_DVFSCTL3_RG_PHY_ST_DELAY_BEF_CHG_TO_BCLK, 7)
-DEFINE_BITFIELD(MISC_DVFSCTL3_RG_DVFS_MEM_CK_SEL_DESTI, 9, 8)
-DEFINE_BITFIELD(MISC_DVFSCTL3_RG_DVFS_MEM_CK_SEL_SOURCE, 11, 10)
-DEFINE_BITFIELD(MISC_DVFSCTL3_RG_CNT_PHY_ST_DELAY_AFT_CHG_TO_MCLK, 17, 12)
-DEFINE_BITFIELD(MISC_DVFSCTL3_RG_CNT_PHY_ST_DELAY_AFT_CHG_TO_BCLK, 27, 22)
-DEFINE_BITFIELD(MISC_DVFSCTL3_RG_CNT_PHY_ST_DELAY_BEF_CHG_TO_BCLK, 31, 28)
-
-/* DDRPHY_REG_MISC_CLK_CTRL */
-DEFINE_BIT(MISC_CLK_CTRL_DVFS_MEM_CK_MUX_UPDATE_EN, 0)
-DEFINE_BIT(MISC_CLK_CTRL_DVFS_CLK_MEM_SEL, 1)
-DEFINE_BITFIELD(MISC_CLK_CTRL_DVFS_MEM_CK_MUX_SEL, 10, 9)
-DEFINE_BITFIELD(MISC_CLK_CTRL_DVFS_MEM_CK_MUX_SEL_MODE, 13, 12)
-
-/* DDRPHY_REG_MISC_SHU_OPT */
-DEFINE_BIT(MISC_SHU_OPT_R_DQB0_SHU_PHY_GATING_RESETB_SPM_EN, 0)
-DEFINE_BITFIELD(MISC_SHU_OPT_R_DQB0_SHU_PHDET_SPM_EN, 3, 2)
-DEFINE_BIT(MISC_SHU_OPT_R_DQB1_SHU_PHY_GATING_RESETB_SPM_EN, 8)
-DEFINE_BITFIELD(MISC_SHU_OPT_R_DQB1_SHU_PHDET_SPM_EN, 11, 10)
-DEFINE_BIT(MISC_SHU_OPT_R_CA_SHU_PHY_GATING_RESETB_SPM_EN, 16)
-DEFINE_BITFIELD(MISC_SHU_OPT_R_CA_SHU_PHDET_SPM_EN, 19, 18)
-
-/* DRAMC_REG_SHU_SELPH_CA1 */
-DEFINE_BITFIELD(SHU_SELPH_CA1_TXDLY_CS, 2, 0)
-DEFINE_BITFIELD(SHU_SELPH_CA1_TXDLY_CKE, 6, 4)
-DEFINE_BITFIELD(SHU_SELPH_CA1_TXDLY_ODT, 10, 8)
-DEFINE_BITFIELD(SHU_SELPH_CA1_TXDLY_RESET, 14, 12)
-DEFINE_BITFIELD(SHU_SELPH_CA1_TXDLY_WE, 18, 16)
-DEFINE_BITFIELD(SHU_SELPH_CA1_TXDLY_CAS, 22, 20)
-DEFINE_BITFIELD(SHU_SELPH_CA1_TXDLY_RAS, 26, 24)
-DEFINE_BITFIELD(SHU_SELPH_CA1_TXDLY_CS1, 30, 28)
-
-/* DRAMC_REG_SHU_SELPH_CA2 */
-DEFINE_BITFIELD(SHU_SELPH_CA2_TXDLY_BA0, 2, 0)
-DEFINE_BITFIELD(SHU_SELPH_CA2_TXDLY_BA1, 6, 4)
-DEFINE_BITFIELD(SHU_SELPH_CA2_TXDLY_BA2, 10, 8)
-DEFINE_BITFIELD(SHU_SELPH_CA2_TXDLY_CKE1, 26, 24)
-
-/* DRAMC_REG_SHU_SELPH_CA3 */
-DEFINE_BITFIELD(SHU_SELPH_CA3_TXDLY_RA0, 2, 0)
-DEFINE_BITFIELD(SHU_SELPH_CA3_TXDLY_RA1, 6, 4)
-DEFINE_BITFIELD(SHU_SELPH_CA3_TXDLY_RA2, 10, 8)
-DEFINE_BITFIELD(SHU_SELPH_CA3_TXDLY_RA3, 14, 12)
-DEFINE_BITFIELD(SHU_SELPH_CA3_TXDLY_RA4, 18, 16)
-DEFINE_BITFIELD(SHU_SELPH_CA3_TXDLY_RA5, 22, 20)
-DEFINE_BITFIELD(SHU_SELPH_CA3_TXDLY_RA6, 26, 24)
-DEFINE_BITFIELD(SHU_SELPH_CA3_TXDLY_RA7, 30, 28)
-
-/* DRAMC_REG_SHU_SELPH_CA4 */
-DEFINE_BITFIELD(SHU_SELPH_CA4_TXDLY_RA8, 2, 0)
-DEFINE_BITFIELD(SHU_SELPH_CA4_TXDLY_RA9, 6, 4)
-DEFINE_BITFIELD(SHU_SELPH_CA4_TXDLY_RA10, 10, 8)
-DEFINE_BITFIELD(SHU_SELPH_CA4_TXDLY_RA11, 14, 12)
-DEFINE_BITFIELD(SHU_SELPH_CA4_TXDLY_RA12, 18, 16)
-DEFINE_BITFIELD(SHU_SELPH_CA4_TXDLY_RA13, 22, 20)
-DEFINE_BITFIELD(SHU_SELPH_CA4_TXDLY_RA14, 26, 24)
-DEFINE_BITFIELD(SHU_SELPH_CA4_TXDLY_RA15, 30, 28)
-
-/* DRAMC_REG_SHU_SELPH_CA5 */
-DEFINE_BITFIELD(SHU_SELPH_CA5_DLY_CS, 2, 0)
-DEFINE_BITFIELD(SHU_SELPH_CA5_DLY_CKE, 6, 4)
-DEFINE_BITFIELD(SHU_SELPH_CA5_DLY_ODT, 10, 8)
-DEFINE_BITFIELD(SHU_SELPH_CA5_DLY_RESET, 14, 12)
-DEFINE_BITFIELD(SHU_SELPH_CA5_DLY_WE, 18, 16)
-DEFINE_BITFIELD(SHU_SELPH_CA5_DLY_CAS, 22, 20)
-DEFINE_BITFIELD(SHU_SELPH_CA5_DLY_RAS, 26, 24)
-DEFINE_BITFIELD(SHU_SELPH_CA5_DLY_CS1, 30, 28)
-
-/* DRAMC_REG_SHU_SELPH_CA6 */
-DEFINE_BITFIELD(SHU_SELPH_CA6_DLY_BA0, 2, 0)
-DEFINE_BITFIELD(SHU_SELPH_CA6_DLY_BA1, 6, 4)
-DEFINE_BITFIELD(SHU_SELPH_CA6_DLY_BA2, 10, 8)
-DEFINE_BITFIELD(SHU_SELPH_CA6_DLY_CKE1, 26, 24)
-
-/* DRAMC_REG_SHU_SELPH_CA7 */
-DEFINE_BITFIELD(SHU_SELPH_CA7_DLY_RA0, 2, 0)
-DEFINE_BITFIELD(SHU_SELPH_CA7_DLY_RA1, 6, 4)
-DEFINE_BITFIELD(SHU_SELPH_CA7_DLY_RA2, 10, 8)
-DEFINE_BITFIELD(SHU_SELPH_CA7_DLY_RA3, 14, 12)
-DEFINE_BITFIELD(SHU_SELPH_CA7_DLY_RA4, 18, 16)
-DEFINE_BITFIELD(SHU_SELPH_CA7_DLY_RA5, 22, 20)
-DEFINE_BITFIELD(SHU_SELPH_CA7_DLY_RA6, 26, 24)
-DEFINE_BITFIELD(SHU_SELPH_CA7_DLY_RA7, 30, 28)
-
-/* DRAMC_REG_SHU_SELPH_CA8 */
-DEFINE_BITFIELD(SHU_SELPH_CA8_DLY_RA8, 2, 0)
-DEFINE_BITFIELD(SHU_SELPH_CA8_DLY_RA9, 6, 4)
-DEFINE_BITFIELD(SHU_SELPH_CA8_DLY_RA10, 10, 8)
-DEFINE_BITFIELD(SHU_SELPH_CA8_DLY_RA11, 14, 12)
-DEFINE_BITFIELD(SHU_SELPH_CA8_DLY_RA12, 18, 16)
-DEFINE_BITFIELD(SHU_SELPH_CA8_DLY_RA13, 22, 20)
-DEFINE_BITFIELD(SHU_SELPH_CA8_DLY_RA14, 26, 24)
-DEFINE_BITFIELD(SHU_SELPH_CA8_DLY_RA15, 30, 28)
-
-/* DDRPHY_REG_SHU_MISC_DRVING2 */
-DEFINE_BITFIELD(SHU_MISC_DRVING2_CMDDRVN1, 4, 0)
-DEFINE_BITFIELD(SHU_MISC_DRVING2_CMDDRVP1, 9, 5)
-DEFINE_BITFIELD(SHU_MISC_DRVING2_CMDDRVN2, 14, 10)
-DEFINE_BITFIELD(SHU_MISC_DRVING2_CMDDRVP2, 19, 15)
-DEFINE_BITFIELD(SHU_MISC_DRVING2_DQDRVN1, 24, 20)
-DEFINE_BITFIELD(SHU_MISC_DRVING2_DQDRVP1, 29, 25)
-DEFINE_BIT(SHU_MISC_DRVING2_DIS_IMPCAL_ODT_EN, 31)
-
-/* DDRPHY_REG_SHU_MISC_IMPCAL1 */
-DEFINE_BITFIELD(SHU_MISC_IMPCAL1_IMPCAL_CHKCYCLE, 2, 0)
-DEFINE_BITFIELD(SHU_MISC_IMPCAL1_IMPDRVP, 8, 4)
-DEFINE_BITFIELD(SHU_MISC_IMPCAL1_IMPDRVN, 16, 12)
-DEFINE_BITFIELD(SHU_MISC_IMPCAL1_IMPCAL_CALEN_CYCLE, 19, 17)
-DEFINE_BITFIELD(SHU_MISC_IMPCAL1_IMPCALCNT, 27, 20)
-DEFINE_BITFIELD(SHU_MISC_IMPCAL1_IMPCAL_CALICNT, 31, 28)
-
-/* DDRPHY_REG_SHU_CA_CMD12 */
-DEFINE_BITFIELD(SHU_CA_CMD12_RG_RIMP_REV, 7, 0)
-DEFINE_BITFIELD(SHU_CA_CMD12_RG_RIMP_VREF_SEL_ODTN, 14, 8)
-DEFINE_BITFIELD(SHU_CA_CMD12_RG_RIMP_VREF_SEL_DRVN, 22, 16)
-DEFINE_BIT(SHU_CA_CMD12_RG_RIMP_DRV05, 23)
-DEFINE_BITFIELD(SHU_CA_CMD12_RG_RIMP_VREF_SEL_DRVP, 30, 24)
-DEFINE_BIT(SHU_CA_CMD12_RG_RIMP_UNTERM_EN, 31)
-
-/* DDRPHY_REG_MISC_SHU_IMPEDAMCE_UPD_DIS1 */
-DEFINE_BIT(MISC_SHU_IMPEDAMCE_UPD_DIS1_DQS_DRVP_UPD_DIS, 0)
-DEFINE_BIT(MISC_SHU_IMPEDAMCE_UPD_DIS1_DQS_DRVN_UPD_DIS, 1)
-DEFINE_BIT(MISC_SHU_IMPEDAMCE_UPD_DIS1_DQS_ODTN_UPD_DIS, 2)
-DEFINE_BIT(MISC_SHU_IMPEDAMCE_UPD_DIS1_DQ_DRVP_UPD_DIS, 4)
-DEFINE_BIT(MISC_SHU_IMPEDAMCE_UPD_DIS1_DQ_DRVN_UPD_DIS, 5)
-DEFINE_BIT(MISC_SHU_IMPEDAMCE_UPD_DIS1_DQ_ODTN_UPD_DIS, 6)
-DEFINE_BIT(MISC_SHU_IMPEDAMCE_UPD_DIS1_WCK_DRVP_UPD_DIS, 8)
-DEFINE_BIT(MISC_SHU_IMPEDAMCE_UPD_DIS1_WCK_DRVN_UPD_DIS, 9)
-DEFINE_BIT(MISC_SHU_IMPEDAMCE_UPD_DIS1_WCK_ODTN_UPD_DIS, 10)
-DEFINE_BIT(MISC_SHU_IMPEDAMCE_UPD_DIS1_CS_DRVP_UPD_DIS, 12)
-DEFINE_BIT(MISC_SHU_IMPEDAMCE_UPD_DIS1_CS_DRVN_UPD_DIS, 13)
-DEFINE_BIT(MISC_SHU_IMPEDAMCE_UPD_DIS1_CS_ODTN_UPD_DIS, 14)
-DEFINE_BIT(MISC_SHU_IMPEDAMCE_UPD_DIS1_CMD1_DRVP_UPD_DIS, 16)
-DEFINE_BIT(MISC_SHU_IMPEDAMCE_UPD_DIS1_CMD1_DRVN_UPD_DIS, 17)
-DEFINE_BIT(MISC_SHU_IMPEDAMCE_UPD_DIS1_CMD1_ODTN_UPD_DIS, 18)
-DEFINE_BIT(MISC_SHU_IMPEDAMCE_UPD_DIS1_CMD2_DRVP_UPD_DIS, 20)
-DEFINE_BIT(MISC_SHU_IMPEDAMCE_UPD_DIS1_CMD2_DRVN_UPD_DIS, 21)
-DEFINE_BIT(MISC_SHU_IMPEDAMCE_UPD_DIS1_CMD2_ODTN_UPD_DIS, 22)
-DEFINE_BIT(MISC_SHU_IMPEDAMCE_UPD_DIS1_DRVP_UPD_DIS, 28)
-DEFINE_BIT(MISC_SHU_IMPEDAMCE_UPD_DIS1_DRVN_UPD_DIS, 29)
-DEFINE_BIT(MISC_SHU_IMPEDAMCE_UPD_DIS1_ODTN_UPD_DIS, 30)
-
-/* DDRPHY_REG_SHU_MISC_DRVING6 */
-DEFINE_BITFIELD(SHU_MISC_DRVING6_IMP_TXDLY_CMD, 5, 0)
-
-/* DRAMC_REG_SHU_COMMON0 */
-DEFINE_BIT(SHU_COMMON0_FREQDIV4, 0)
-DEFINE_BIT(SHU_COMMON0_FDIV2, 1)
-DEFINE_BIT(SHU_COMMON0_DM64BITEN, 4)
-DEFINE_BIT(SHU_COMMON0_BL4, 10)
-DEFINE_BIT(SHU_COMMON0_BC4OTF, 12)
-
-/* DRAMC_REG_SHU_ACTIMING_CONF */
-DEFINE_BITFIELD(SHU_ACTIMING_CONF_SCINTV, 5, 0)
-DEFINE_BITFIELD(SHU_ACTIMING_CONF_REFBW_FR, 25, 16)
-DEFINE_BIT(SHU_ACTIMING_CONF_TREFBWIG, 31)
-
-/* DRAMC_REG_SHU_DCM_CTRL0 */
-DEFINE_BIT(SHU_DCM_CTRL0_DDRPHY_CLK_EN_OPT, 7)
-DEFINE_BITFIELD(SHU_DCM_CTRL0_DPHY_CMD_CLKEN_EXTCNT, 10, 8)
-DEFINE_BITFIELD(SHU_DCM_CTRL0_DDRPHY_CLK_DYN_GATING_SEL, 15, 12)
-DEFINE_BITFIELD(SHU_DCM_CTRL0_APHYPI_CKCGL_CNT, 19, 16)
-DEFINE_BITFIELD(SHU_DCM_CTRL0_APHYPI_CKCGH_CNT, 23, 20)
-DEFINE_BIT(SHU_DCM_CTRL0_FASTWAKE2, 29)
-DEFINE_BIT(SHU_DCM_CTRL0_FASTWAKE, 31)
-
-/* DRAMC_REG_SHU_CONF0 */
-DEFINE_BITFIELD(SHU_CONF0_DMPGTIM, 6, 0)
-DEFINE_BIT(SHU_CONF0_ADVPREEN, 7)
-DEFINE_BIT(SHU_CONF0_PBREFEN, 8)
-DEFINE_BITFIELD(SHU_CONF0_REFTHD, 15, 12)
-
-/* DRAMC_REG_SHU_MATYPE */
-DEFINE_BITFIELD(SHU_MATYPE_MATYPE, 1, 0)
-
-/* DRAMC_REG_SHU_SCHEDULER */
-DEFINE_BIT(SHU_SCHEDULER_DUALSCHEN, 2)
-
-/* DRAMC_REG_SHU_TX_SET0 */
-DEFINE_BITFIELD(SHU_TX_SET0_DQOE_CNT, 3, 0)
-DEFINE_BIT(SHU_TX_SET0_DQOE_OPT, 4)
-DEFINE_BITFIELD(SHU_TX_SET0_TXUPD_SEL, 7, 6)
-DEFINE_BITFIELD(SHU_TX_SET0_TXUPD_W2R_SEL, 10, 8)
-DEFINE_BIT(SHU_TX_SET0_DBIWR, 12)
-DEFINE_BIT(SHU_TX_SET0_WDATRGO, 13)
-DEFINE_BIT(SHU_TX_SET0_WPST1P5T, 15)
-DEFINE_BITFIELD(SHU_TX_SET0_OE_EXT2UI, 24, 22)
-DEFINE_BITFIELD(SHU_TX_SET0_DQS2DQ_FILT_PITHRD, 30, 25)
-
-/* DDRPHY_REG_MISC_SHU_STBCAL1 */
-DEFINE_BIT(MISC_SHU_STBCAL1_STB_UPDMASK_EN, 11)
-DEFINE_BITFIELD(MISC_SHU_STBCAL1_STB_UPDMASKCYC, 15, 12)
-DEFINE_BIT(MISC_SHU_STBCAL1_DQSINCTL_PRE_SEL, 16)
-DEFINE_BITFIELD(MISC_SHU_STBCAL1_STB_PI_TRACKING_RATIO, 25, 20)
-
-/* DDRPHY_REG_MISC_SHU_STBCAL */
-DEFINE_BITFIELD(MISC_SHU_STBCAL_DMSTBLAT, 3, 0)
-DEFINE_BITFIELD(MISC_SHU_STBCAL_PICGLAT, 6, 4)
-DEFINE_BIT(MISC_SHU_STBCAL_DQSG_MODE, 8)
-DEFINE_BIT(MISC_SHU_STBCAL_DQSIEN_PICG_MODE, 9)
-
-/* DDRPHY_REG_MISC_SHU_RANKCTL */
-DEFINE_BITFIELD(MISC_SHU_RANKCTL_RANKINCTL_RXDLY, 3, 0)
-DEFINE_BIT(MISC_SHU_RANKCTL_RANK_RXDLY_OPT, 4)
-DEFINE_BIT(MISC_SHU_RANKCTL_RANKSEL_SELPH_FRUN, 15)
-DEFINE_BITFIELD(MISC_SHU_RANKCTL_RANKINCTL_STB, 19, 16)
-DEFINE_BITFIELD(MISC_SHU_RANKCTL_RANKINCTL, 23, 20)
-DEFINE_BITFIELD(MISC_SHU_RANKCTL_RANKINCTL_ROOT1, 27, 24)
-DEFINE_BITFIELD(MISC_SHU_RANKCTL_RANKINCTL_PHY, 31, 28)
-
-/* DRAMC_REG_SHU_MISC */
-DEFINE_BITFIELD(SHU_MISC_REQQUE_MAXCNT, 3, 0)
-DEFINE_BITFIELD(SHU_MISC_DCMDLYREF, 18, 16)
-DEFINE_BIT(SHU_MISC_DAREFEN, 30)
-
-/* DDRPHY_REG_MISC_SHU_RK_DQSIEN_PICG_CTRL */
-DEFINE_BITFIELD(MISC_SHU_RK_DQSIEN_PICG_CTRL_DQSIEN_PICG_HEAD_EXT_LAT, 2, 0)
-DEFINE_BITFIELD(MISC_SHU_RK_DQSIEN_PICG_CTRL_DQSIEN_PICG_TAIL_EXT_LAT, 6, 4)
-
-/* DDRPHY_REG_MISC_SHU_RODTENSTB */
-DEFINE_BIT(MISC_SHU_RODTENSTB_RODTENSTB_TRACK_EN, 0)
-DEFINE_BIT(MISC_SHU_RODTENSTB_RODTEN_P1_ENABLE, 1)
-DEFINE_BIT(MISC_SHU_RODTENSTB_RODTENSTB_TRACK_UDFLWCTRL, 3)
-DEFINE_BIT(MISC_SHU_RODTENSTB_RODTENSTB_SELPH_MODE, 4)
-DEFINE_BIT(MISC_SHU_RODTENSTB_RODTENSTB_SELPH_BY_BITTIME, 5)
-DEFINE_BITFIELD(MISC_SHU_RODTENSTB_RODTENSTB__UI_OFFSET, 11, 8)
-DEFINE_BITFIELD(MISC_SHU_RODTENSTB_RODTENSTB_MCK_OFFSET, 15, 12)
-DEFINE_BITFIELD(MISC_SHU_RODTENSTB_RODTENSTB_EXT, 31, 16)
-
-/* DDRPHY_REG_MISC_SHU_RODTENSTB1 */
-DEFINE_BITFIELD(MISC_SHU_RODTENSTB1_RODTENCGEN_HEAD, 5, 4)
-DEFINE_BITFIELD(MISC_SHU_RODTENSTB1_RODTENCGEN_TAIL, 7, 6)
-
-/* DDRPHY_REG_MISC_SHU_RX_SELPH_MODE */
-DEFINE_BITFIELD(MISC_SHU_RX_SELPH_MODE_DQSIEN_SELPH_SERMODE, 1, 0)
-DEFINE_BITFIELD(MISC_SHU_RX_SELPH_MODE_RODT_SELPH_SERMODE, 5, 4)
-DEFINE_BITFIELD(MISC_SHU_RX_SELPH_MODE_RANK_SELPH_SERMODE, 7, 6)
-
-/* DDRPHY_REG_MISC_SHU_RDAT1 */
-DEFINE_BIT(MISC_SHU_RDAT1_R_DMRDSEL_DIV2_OPT, 0)
-DEFINE_BIT(MISC_SHU_RDAT1_R_DMRDSEL_LOBYTE_OPT, 1)
-DEFINE_BIT(MISC_SHU_RDAT1_R_DMRDSEL_HIBYTE_OPT, 2)
-
-/* DRAMC_REG_SHURK_CKE_CTRL */
-DEFINE_BITFIELD(SHURK_CKE_CTRL_CKE_DBE_CNT, 3, 0)
-
-/* DDRPHY_REG_MISC_SHU_DQSG_RETRY1 */
-DEFINE_BIT(MISC_SHU_DQSG_RETRY1_RETRY_SW_RESET, 0)
-DEFINE_BIT(MISC_SHU_DQSG_RETRY1_RETRY_SW_EN, 1)
-DEFINE_BIT(MISC_SHU_DQSG_RETRY1_RETRY_DDR1866_PLUS, 2)
-DEFINE_BIT(MISC_SHU_DQSG_RETRY1_RETRY_ONCE, 3)
-DEFINE_BIT(MISC_SHU_DQSG_RETRY1_RETRY_3TIMES, 4)
-DEFINE_BIT(MISC_SHU_DQSG_RETRY1_RETRY_1RANK, 5)
-DEFINE_BIT(MISC_SHU_DQSG_RETRY1_RETRY_BY_RANK, 6)
-DEFINE_BIT(MISC_SHU_DQSG_RETRY1_RETRY_DM4BYTE, 7)
-DEFINE_BITFIELD(MISC_SHU_DQSG_RETRY1_RETRY_DQSIENLAT, 11, 8)
-DEFINE_BIT(MISC_SHU_DQSG_RETRY1_RETRY_STBENCMP_ALLBYTE, 12)
-DEFINE_BIT(MISC_SHU_DQSG_RETRY1_XSR_DQSG_RETRY_EN, 13)
-DEFINE_BIT(MISC_SHU_DQSG_RETRY1_XSR_RETRY_SPM_MODE, 14)
-DEFINE_BIT(MISC_SHU_DQSG_RETRY1_RETRY_CMP_DATA, 15)
-DEFINE_BIT(MISC_SHU_DQSG_RETRY1_RETRY_ALE_BLOCK_MASK, 20)
-DEFINE_BIT(MISC_SHU_DQSG_RETRY1_RETRY_RDY_SEL_DLE, 21)
-DEFINE_BIT(MISC_SHU_DQSG_RETRY1_RETRY_USE_NON_EXTEND, 22)
-DEFINE_BIT(MISC_SHU_DQSG_RETRY1_RETRY_USE_CG_GATING, 23)
-DEFINE_BITFIELD(MISC_SHU_DQSG_RETRY1_RETRY_ROUND_NUM, 25, 24)
-DEFINE_BIT(MISC_SHU_DQSG_RETRY1_RETRY_RANKSEL_FROM_PHY, 28)
-DEFINE_BIT(MISC_SHU_DQSG_RETRY1_RETRY_PA_DISABLE, 29)
-DEFINE_BIT(MISC_SHU_DQSG_RETRY1_RETRY_STBEN_RESET_MSK, 30)
-DEFINE_BIT(MISC_SHU_DQSG_RETRY1_RETRY_USE_BURST_MODE, 31)
-
-/* DRAMC_REG_SHU_HWSET_MR13 */
-DEFINE_BITFIELD(SHU_HWSET_MR13_HWSET_MR13_MRSMA, 12, 0)
-DEFINE_BITFIELD(SHU_HWSET_MR13_HWSET_MR13_OP, 23, 16)
-
-/* DRAMC_REG_SHU_HWSET_VRCG */
-DEFINE_BITFIELD(SHU_HWSET_VRCG_HWSET_VRCG_MRSMA, 12, 0)
-DEFINE_BITFIELD(SHU_HWSET_VRCG_HWSET_VRCG_OP, 23, 16)
-DEFINE_BITFIELD(SHU_HWSET_VRCG_VRCGDIS_PRDCNT, 31, 24)
-
-/* DRAMC_REG_SHU_HWSET_MR2 */
-DEFINE_BITFIELD(SHU_HWSET_MR2_HWSET_MR2_MRSMA, 12, 0)
-DEFINE_BITFIELD(SHU_HWSET_MR2_HWSET_MR2_OP, 23, 16)
-
-/* DDRPHY_REG_MISC_SHU_DVFSDLL */
-DEFINE_BIT(MISC_SHU_DVFSDLL_R_BYPASS_1ST_DLL, 0)
-DEFINE_BIT(MISC_SHU_DVFSDLL_R_BYPASS_2ND_DLL, 1)
-DEFINE_BITFIELD(MISC_SHU_DVFSDLL_R_DLL_IDLE, 10, 4)
-DEFINE_BITFIELD(MISC_SHU_DVFSDLL_R_2ND_DLL_IDLE, 22, 16)
-
-/* DDRPHY_REG_SHU_MISC_RX_PIPE_CTRL */
-DEFINE_BIT(SHU_MISC_RX_PIPE_CTRL_RX_PIPE_BYPASS_EN, 0)
-
-/* DRAMC_REG_SHU_ACTIM1 */
-DEFINE_BITFIELD(SHU_ACTIM1_TRPAB, 3, 0)
-DEFINE_BITFIELD(SHU_ACTIM1_TMRWCKEL, 7, 4)
-DEFINE_BITFIELD(SHU_ACTIM1_TRP, 11, 8)
-DEFINE_BITFIELD(SHU_ACTIM1_TRAS, 21, 16)
-DEFINE_BITFIELD(SHU_ACTIM1_TRC, 28, 24)
-
-/* DRAMC_REG_SHU_ACTIM3 */
-DEFINE_BITFIELD(SHU_ACTIM3_TRFCPB, 7, 0)
-DEFINE_BITFIELD(SHU_ACTIM3_MANTMRR, 11, 8)
-DEFINE_BITFIELD(SHU_ACTIM3_TR2MRR, 15, 12)
-DEFINE_BITFIELD(SHU_ACTIM3_TRFC, 23, 16)
-DEFINE_BITFIELD(SHU_ACTIM3_TWTR_L, 29, 24)
-
-/* DRAMC_REG_SHU_ACTIM2 */
-DEFINE_BITFIELD(SHU_ACTIM2_TXP, 3, 0)
-DEFINE_BITFIELD(SHU_ACTIM2_TMRRI, 8, 4)
-DEFINE_BITFIELD(SHU_ACTIM2_TRTP, 14, 12)
-DEFINE_BITFIELD(SHU_ACTIM2_TR2W, 21, 16)
-DEFINE_BITFIELD(SHU_ACTIM2_TFAW, 28, 24)
-
-/* DRAMC_REG_SHU_ACTIM0 */
-DEFINE_BITFIELD(SHU_ACTIM0_TWTR, 5, 0)
-DEFINE_BITFIELD(SHU_ACTIM0_TWR, 15, 8)
-DEFINE_BITFIELD(SHU_ACTIM0_TRRD, 18, 16)
-DEFINE_BITFIELD(SHU_ACTIM0_TRCD, 27, 24)
-DEFINE_BITFIELD(SHU_ACTIM0_CKELCKCNT, 31, 28)
-
-/* DRAMC_REG_SHU_ACTIM5 */
-DEFINE_BITFIELD(SHU_ACTIM5_TR2PD, 6, 0)
-DEFINE_BITFIELD(SHU_ACTIM5_TWTPD, 14, 8)
-DEFINE_BITFIELD(SHU_ACTIM5_TPBR2PBR, 23, 16)
-DEFINE_BITFIELD(SHU_ACTIM5_TPBR2ACT, 29, 28)
-
-/* DRAMC_REG_SHU_ACTIM6 */
-DEFINE_BITFIELD(SHU_ACTIM6_TZQLAT2, 4, 0)
-DEFINE_BITFIELD(SHU_ACTIM6_TMRD, 11, 8)
-DEFINE_BITFIELD(SHU_ACTIM6_TMRW, 15, 12)
-DEFINE_BITFIELD(SHU_ACTIM6_TW2MRW, 25, 20)
-DEFINE_BITFIELD(SHU_ACTIM6_TR2MRW, 31, 26)
-
-/* DRAMC_REG_SHU_ACTIM4 */
-DEFINE_BITFIELD(SHU_ACTIM4_TXREFCNT, 9, 0)
-DEFINE_BITFIELD(SHU_ACTIM4_TMRR2MRW, 15, 10)
-DEFINE_BITFIELD(SHU_ACTIM4_TMRR2W, 21, 16)
-DEFINE_BITFIELD(SHU_ACTIM4_TZQCS, 31, 24)
-
-/* DRAMC_REG_SHU_CKECTRL */
-DEFINE_BIT(SHU_CKECTRL_TPDE_05T, 0)
-DEFINE_BIT(SHU_CKECTRL_TPDX_05T, 1)
-DEFINE_BITFIELD(SHU_CKECTRL_TPDE, 14, 12)
-DEFINE_BITFIELD(SHU_CKECTRL_TPDX, 18, 16)
-DEFINE_BITFIELD(SHU_CKECTRL_TCKEPRD, 22, 20)
-DEFINE_BITFIELD(SHU_CKECTRL_TCKESRX, 25, 24)
-
-/* DRAMC_REG_SHU_ACTIM_XRT */
-DEFINE_BITFIELD(SHU_ACTIM_XRT_XRTR2R, 4, 0)
-DEFINE_BITFIELD(SHU_ACTIM_XRT_XRTR2W, 13, 8)
-DEFINE_BITFIELD(SHU_ACTIM_XRT_XRTW2R, 19, 16)
-DEFINE_BITFIELD(SHU_ACTIM_XRT_XRTW2W, 28, 24)
-
-/* DRAMC_REG_SHU_AC_TIME_05T */
-DEFINE_BIT(SHU_AC_TIME_05T_TRC_05T, 0)
-DEFINE_BIT(SHU_AC_TIME_05T_TRFCPB_05T, 1)
-DEFINE_BIT(SHU_AC_TIME_05T_TRFC_05T, 2)
-DEFINE_BIT(SHU_AC_TIME_05T_TPBR2PBR_05T, 3)
-DEFINE_BIT(SHU_AC_TIME_05T_TXP_05T, 4)
-DEFINE_BIT(SHU_AC_TIME_05T_TRTP_05T, 5)
-DEFINE_BIT(SHU_AC_TIME_05T_TRCD_05T, 6)
-DEFINE_BIT(SHU_AC_TIME_05T_TRP_05T, 7)
-DEFINE_BIT(SHU_AC_TIME_05T_TRPAB_05T, 8)
-DEFINE_BIT(SHU_AC_TIME_05T_TRAS_05T, 9)
-DEFINE_BIT(SHU_AC_TIME_05T_TWR_M05T, 10)
-DEFINE_BIT(SHU_AC_TIME_05T_TRRD_05T, 12)
-DEFINE_BIT(SHU_AC_TIME_05T_TFAW_05T, 13)
-DEFINE_BIT(SHU_AC_TIME_05T_TCKEPRD_05T, 14)
-DEFINE_BIT(SHU_AC_TIME_05T_TR2PD_05T, 15)
-DEFINE_BIT(SHU_AC_TIME_05T_TWTPD_M05T, 16)
-DEFINE_BIT(SHU_AC_TIME_05T_TMRRI_05T, 17)
-DEFINE_BIT(SHU_AC_TIME_05T_TMRWCKEL_05T, 18)
-DEFINE_BIT(SHU_AC_TIME_05T_BGTRRD_05T, 19)
-DEFINE_BIT(SHU_AC_TIME_05T_BGTCCD_05T, 20)
-DEFINE_BIT(SHU_AC_TIME_05T_BGTWTR_M05T, 21)
-DEFINE_BIT(SHU_AC_TIME_05T_TR2W_05T, 22)
-DEFINE_BIT(SHU_AC_TIME_05T_TWTR_M05T, 23)
-DEFINE_BIT(SHU_AC_TIME_05T_XRTR2W_05T, 24)
-DEFINE_BIT(SHU_AC_TIME_05T_TMRD_05T, 25)
-DEFINE_BIT(SHU_AC_TIME_05T_TMRW_05T, 26)
-DEFINE_BIT(SHU_AC_TIME_05T_TMRR2MRW_05T, 27)
-DEFINE_BIT(SHU_AC_TIME_05T_TW2MRW_05T, 28)
-DEFINE_BIT(SHU_AC_TIME_05T_TR2MRW_05T, 29)
-DEFINE_BIT(SHU_AC_TIME_05T_TPBR2ACT_05T, 30)
-DEFINE_BIT(SHU_AC_TIME_05T_XRTW2R_M05T, 31)
-
-/* DRAMC_REG_SHU_AC_DERATING0 */
-DEFINE_BIT(SHU_AC_DERATING0_ACDERATEEN, 0)
-DEFINE_BITFIELD(SHU_AC_DERATING0_TRRD_DERATE, 18, 16)
-DEFINE_BITFIELD(SHU_AC_DERATING0_TRCD_DERATE, 27, 24)
-
-/* DRAMC_REG_SHU_AC_DERATING1 */
-DEFINE_BITFIELD(SHU_AC_DERATING1_TRPAB_DERATE, 3, 0)
-DEFINE_BITFIELD(SHU_AC_DERATING1_TRP_DERATE, 11, 8)
-DEFINE_BITFIELD(SHU_AC_DERATING1_TRAS_DERATE, 21, 16)
-DEFINE_BITFIELD(SHU_AC_DERATING1_TRC_DERATE, 28, 24)
-
-/* DRAMC_REG_SHU_AC_DERATING_05T */
-DEFINE_BIT(SHU_AC_DERATING_05T_TRC_05T_DERATE, 0)
-DEFINE_BIT(SHU_AC_DERATING_05T_TRCD_05T_DERATE, 6)
-DEFINE_BIT(SHU_AC_DERATING_05T_TRP_05T_DERATE, 7)
-DEFINE_BIT(SHU_AC_DERATING_05T_TRPAB_05T_DERATE, 8)
-DEFINE_BIT(SHU_AC_DERATING_05T_TRAS_05T_DERATE, 9)
-DEFINE_BIT(SHU_AC_DERATING_05T_TRRD_05T_DERATE, 12)
-
-/* DRAMC_REG_REFCTRL3 */
-DEFINE_BITFIELD(REFCTRL3_REF_DERATING_EN, 15, 0)
-
-/* DDRPHY_REG_MISC_SHU_RK_DQSCTL */
-DEFINE_BITFIELD(MISC_SHU_RK_DQSCTL_DQSINCTL, 3, 0)
-
-/* DDRPHY_REG_MISC_SHU_ODTCTRL */
-DEFINE_BIT(MISC_SHU_ODTCTRL_RODTEN, 0)
-DEFINE_BIT(MISC_SHU_ODTCTRL_RODTENSTB_SELPH_CG_IG, 1)
-DEFINE_BITFIELD(MISC_SHU_ODTCTRL_RODT_LAT, 7, 4)
-DEFINE_BIT(MISC_SHU_ODTCTRL_RODTEN_SELPH_FRUN, 15)
-DEFINE_BITFIELD(MISC_SHU_ODTCTRL_RODTDLY_LAT_OPT, 25, 24)
-DEFINE_BIT(MISC_SHU_ODTCTRL_FIXRODT, 27)
-DEFINE_BIT(MISC_SHU_ODTCTRL_RODTEN_OPT, 29)
-DEFINE_BIT(MISC_SHU_ODTCTRL_RODTE2, 30)
-DEFINE_BIT(MISC_SHU_ODTCTRL_RODTE, 31)
-
-/* DDRPHY_REG_SHU_MISC_RANK_SEL_STB */
-DEFINE_BIT(SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_EN, 0)
-DEFINE_BIT(SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_EN_B23, 1)
-DEFINE_BITFIELD(SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_SERMODE, 3, 2)
-DEFINE_BIT(SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_TRACK, 4)
-DEFINE_BIT(SHU_MISC_RANK_SEL_STB_RANK_SEL_RXDLY_TRACK, 5)
-DEFINE_BIT(SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_PHASE_EN, 7)
-DEFINE_BITFIELD(SHU_MISC_RANK_SEL_STB_RANK_SEL_PHSINCTL, 11, 8)
-DEFINE_BITFIELD(SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_UI_PLUS, 19, 16)
-DEFINE_BITFIELD(SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_MCK_PLUS, 23, 20)
-DEFINE_BITFIELD(SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_UI_MINUS, 27, 24)
-DEFINE_BITFIELD(SHU_MISC_RANK_SEL_STB_RANK_SEL_STB_MCK_MINUS, 31, 28)
-
-/* DDRPHY_REG_MISC_SHU_RDAT */
-DEFINE_BITFIELD(MISC_SHU_RDAT_DATLAT, 4, 0)
-DEFINE_BITFIELD(MISC_SHU_RDAT_DATLAT_DSEL, 12, 8)
-DEFINE_BITFIELD(MISC_SHU_RDAT_DATLAT_DSEL_PHY, 20, 16)
-
-/* DRAMC_REG_SHU_TX_RANKCTL */
-DEFINE_BITFIELD(SHU_TX_RANKCTL_TXRANKINCTL_TXDLY, 3, 0)
-DEFINE_BITFIELD(SHU_TX_RANKCTL_TXRANKINCTL, 7, 4)
-DEFINE_BITFIELD(SHU_TX_RANKCTL_TXRANKINCTL_ROOT, 11, 8)
-
-/* DRAMC_REG_BYPASS_FSPOP */
-DEFINE_BIT(BYPASS_FSPOP_BPFSP_OPT, 16)
-
-/* DDRPHY_MD32_REG_LPIF_FSM_CFG_1 */
-DEFINE_BIT(LPIF_FSM_CFG_1_LPIF_LEGACY_CONTROL, 0)
-DEFINE_BIT(LPIF_FSM_CFG_1_LPIF_LEGACY_CONTROL_2ND, 1)
-DEFINE_BIT(LPIF_FSM_CFG_1_LPIF_LEGACY_CONTROL_FOR_PWR, 2)
-DEFINE_BIT(LPIF_FSM_CFG_1_LPIF_LEGACY_CONTROL_FOR_PWR_2ND, 3)
-DEFINE_BIT(LPIF_FSM_CFG_1_LPIF_OUTPUT_PATH_FROM_SW, 4)
-DEFINE_BIT(LPIF_FSM_CFG_1_LPIF_OUTPUT_PATH_FROM_SW_2ND, 5)
-DEFINE_BIT(LPIF_FSM_CFG_1_LPIF_POWER_CONTROL_SEL, 6)
-DEFINE_BIT(LPIF_FSM_CFG_1_LPIF_POWER_CONTROL_SEL_2ND, 7)
-
-/* DDRPHY_MD32_REG_LPIF_LOW_POWER_CFG_0 */
-DEFINE_BITFIELD(LPIF_LOW_POWER_CFG_0_PHYPLL_EN, 3, 2)
-DEFINE_BITFIELD(LPIF_LOW_POWER_CFG_0_DPY_DLL_EN, 5, 4)
-DEFINE_BITFIELD(LPIF_LOW_POWER_CFG_0_DPY_2ND_DLL_EN, 7, 6)
-DEFINE_BITFIELD(LPIF_LOW_POWER_CFG_0_DPY_DLL_CK_EN, 9, 8)
-DEFINE_BITFIELD(LPIF_LOW_POWER_CFG_0_DPY_VREF_EN, 11, 10)
-DEFINE_BITFIELD(LPIF_LOW_POWER_CFG_0_DDRPHY_FB_CK_EN, 17, 16)
-DEFINE_BITFIELD(LPIF_LOW_POWER_CFG_0_PHYPLL_SHU_EN, 21, 20)
-DEFINE_BITFIELD(LPIF_LOW_POWER_CFG_0_PHYPLL_MODE_SW, 23, 22)
-DEFINE_BITFIELD(LPIF_LOW_POWER_CFG_0_PHYPLL2_SHU_EN, 25, 24)
-DEFINE_BITFIELD(LPIF_LOW_POWER_CFG_0_PHYPLL2_MODE_SW, 27, 26)
-
-/* DDRPHY_MD32_REG_LPIF_LOW_POWER_CFG_1 */
-DEFINE_BITFIELD(LPIF_LOW_POWER_CFG_1_DMY_EN_MOD_SEL, 13, 12)
-DEFINE_BITFIELD(LPIF_LOW_POWER_CFG_1_DMYRD_INTV_SEL, 15, 14)
-DEFINE_BITFIELD(LPIF_LOW_POWER_CFG_1_DMYRD_EN, 17, 16)
-DEFINE_BITFIELD(LPIF_LOW_POWER_CFG_1_TX_TRACKING_RETRY_EN, 21, 20)
-DEFINE_BITFIELD(LPIF_LOW_POWER_CFG_1_DR_SHU_SRAM_LEVEL, 29, 22)
-
-/* DDRPHY_MD32_REG_LPIF_LOW_POWER_CFG_3 */
-DEFINE_BITFIELD(LPIF_LOW_POWER_CFG_3_DPY_MCK8X_EN, 1, 0)
-DEFINE_BITFIELD(LPIF_LOW_POWER_CFG_3_DPY_MIDPI_EN, 3, 2)
-DEFINE_BITFIELD(LPIF_LOW_POWER_CFG_3_DPY_PI_RESETB_EN, 5, 4)
-
-/* DDRPHY_MD32_REG_LPIF_FSM_OUT_CTRL_0 */
-DEFINE_BIT(LPIF_FSM_OUT_CTRL_0_LOG_OPT_PHYPLL_EN, 1)
-DEFINE_BIT(LPIF_FSM_OUT_CTRL_0_LOG_OPT_DPY_DLL_EN, 2)
-DEFINE_BIT(LPIF_FSM_OUT_CTRL_0_LOG_OPT_DPY_2ND_DLL_EN, 3)
-DEFINE_BIT(LPIF_FSM_OUT_CTRL_0_LOG_OPT_DPY_DLL_CK_EN, 4)
-DEFINE_BIT(LPIF_FSM_OUT_CTRL_0_LOG_OPT_DPY_VREF_EN, 5)
-DEFINE_BIT(LPIF_FSM_OUT_CTRL_0_LOG_OPT_PHYPLL_SHU_EN, 10)
-DEFINE_BIT(LPIF_FSM_OUT_CTRL_0_LOG_OPT_PHYPLL_MODE_SW, 11)
-
-/* DDRPHY_REG_CLRPLL0 */
-DEFINE_BIT(CLRPLL0_RG_RCLRPLL_EN, 31)
-
-/* DDRPHY_MD32_REG_LPIF_DFD_DBUG_0 */
-DEFINE_BIT(LPIF_DFD_DBUG_0_LPIF_DFD_DEBUG_ISO_EN, 0)
-
-/* DDRPHY_REG_MISC_DMA_DEBUG0 */
-DEFINE_BIT(MISC_DMA_DEBUG0_SRAM_DONE, 16)
-DEFINE_BIT(MISC_DMA_DEBUG0_APB_DONE, 17)
-DEFINE_BIT(MISC_DMA_DEBUG0_SC_DR_SRAM_LOAD_ACK, 29)
-DEFINE_BIT(MISC_DMA_DEBUG0_SC_DR_SRAM_RESTORE_ACK, 30)
-
-/* DDRPHY_MD32_REG_LPIF_STATUS_4 */
-DEFINE_BITFIELD(LPIF_STATUS_4_SHU_EN_ACK, 15, 14)
-
-/* DRAMC_REG_MRR_STATUS2 */
-DEFINE_BITFIELD(MRR_STATUS2_DVFS_STATE, 31, 24)
-
-/* DDRPHY_REG_SHU_MISC_RDSEL_TRACK */
-DEFINE_BITFIELD(SHU_MISC_RDSEL_TRACK_DMDATLAT_I, 4, 0)
-DEFINE_BIT(SHU_MISC_RDSEL_TRACK_RDSEL_HWSAVE_MSK, 6)
-DEFINE_BIT(SHU_MISC_RDSEL_TRACK_RDSEL_TRACK_EN, 7)
-DEFINE_BITFIELD(SHU_MISC_RDSEL_TRACK_SHU_GW_THRD_NEG, 19, 8)
-DEFINE_BITFIELD(SHU_MISC_RDSEL_TRACK_SHU_GW_THRD_POS, 31, 20)
-
-/* DDRPHY_REG_MISC_SHU_PHY_RX_CTRL */
-DEFINE_BIT(MISC_SHU_PHY_RX_CTRL_RANK_RXDLY_UPDLAT_EN, 8)
-DEFINE_BITFIELD(MISC_SHU_PHY_RX_CTRL_RANK_RXDLY_UPD_OFFSET, 11, 9)
-DEFINE_BITFIELD(MISC_SHU_PHY_RX_CTRL_RX_IN_GATE_EN_PRE_OFFSET, 15, 14)
-DEFINE_BITFIELD(MISC_SHU_PHY_RX_CTRL_RX_IN_GATE_EN_HEAD, 18, 16)
-DEFINE_BITFIELD(MISC_SHU_PHY_RX_CTRL_RX_IN_GATE_EN_TAIL, 22, 20)
-DEFINE_BITFIELD(MISC_SHU_PHY_RX_CTRL_RX_IN_BUFF_EN_HEAD, 26, 24)
-DEFINE_BITFIELD(MISC_SHU_PHY_RX_CTRL_RX_IN_BUFF_EN_TAIL, 30, 28)
-
-/* DDRPHY_REG_MISC_SHU_RANK_SEL_LAT */
-DEFINE_BITFIELD(MISC_SHU_RANK_SEL_LAT_RANK_SEL_LAT_B0, 3, 0)
-DEFINE_BITFIELD(MISC_SHU_RANK_SEL_LAT_RANK_SEL_LAT_B1, 7, 4)
-DEFINE_BITFIELD(MISC_SHU_RANK_SEL_LAT_RANK_SEL_LAT_CA, 11, 8)
-
-/* DDRPHY_REG_SHU_RK_B0_DQSIEN_MCK_UI_DLY */
-DEFINE_BITFIELD(SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P0_B0, 3, 0)
-DEFINE_BITFIELD(SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P1_B0, 7, 4)
-DEFINE_BITFIELD(SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P0_B0, 19, 16)
-DEFINE_BITFIELD(SHU_RK_B0_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P1_B0, 23, 20)
-
-/* DDRPHY_REG_SHU_RK_B0_DQSIEN_PI_DLY */
-DEFINE_BITFIELD(SHU_RK_B0_DQSIEN_PI_DLY_DQSIEN_PI_B0, 6, 0)
-
-/* DDRPHY_REG_SHU_RK_B1_DQSIEN_MCK_UI_DLY */
-DEFINE_BITFIELD(SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P0_B1, 3, 0)
-DEFINE_BITFIELD(SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_UI_P1_B1, 7, 4)
-DEFINE_BITFIELD(SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P0_B1, 19, 16)
-DEFINE_BITFIELD(SHU_RK_B1_DQSIEN_MCK_UI_DLY_DQSIEN_MCK_P1_B1, 23, 20)
-
-/* DDRPHY_REG_SHU_RK_B1_DQSIEN_PI_DLY */
-DEFINE_BITFIELD(SHU_RK_B1_DQSIEN_PI_DLY_DQSIEN_PI_B1, 6, 0)
-
-/* DDRPHY_REG_SHU_RK_B0_RODTEN_MCK_UI_DLY */
-DEFINE_BITFIELD(SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_UI_P0_B0, 2, 0)
-DEFINE_BITFIELD(SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_UI_P1_B0, 6, 4)
-DEFINE_BITFIELD(SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_MCK_P0_B0, 18, 16)
-DEFINE_BITFIELD(SHU_RK_B0_RODTEN_MCK_UI_DLY_RODTEN_MCK_P1_B0, 22, 20)
-
-/* DDRPHY_REG_SHU_RK_B1_RODTEN_MCK_UI_DLY */
-DEFINE_BITFIELD(SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_UI_P0_B1, 2, 0)
-DEFINE_BITFIELD(SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_UI_P1_B1, 6, 4)
-DEFINE_BITFIELD(SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_MCK_P0_B1, 18, 16)
-DEFINE_BITFIELD(SHU_RK_B1_RODTEN_MCK_UI_DLY_RODTEN_MCK_P1_B1, 22, 20)
-
-/* DRAMC_REG_SHU_RX_CG_SET0 */
-DEFINE_BIT(SHU_RX_CG_SET0_DLE_LAST_EXTEND3, 0)
-DEFINE_BIT(SHU_RX_CG_SET0_READ_START_EXTEND3, 1)
-DEFINE_BIT(SHU_RX_CG_SET0_DLE_LAST_EXTEND2, 2)
-DEFINE_BIT(SHU_RX_CG_SET0_READ_START_EXTEND2, 3)
-DEFINE_BIT(SHU_RX_CG_SET0_DLE_LAST_EXTEND1, 4)
-DEFINE_BIT(SHU_RX_CG_SET0_READ_START_EXTEND1, 5)
-
-/* DDRPHY_REG_MISC_SHU_RK_DQSCAL */
-DEFINE_BITFIELD(MISC_SHU_RK_DQSCAL_DQSIENLLMT, 6, 0)
-DEFINE_BIT(MISC_SHU_RK_DQSCAL_DQSIENLLMTEN, 7)
-DEFINE_BITFIELD(MISC_SHU_RK_DQSCAL_DQSIENHLMT, 14, 8)
-DEFINE_BIT(MISC_SHU_RK_DQSCAL_DQSIENHLMTEN, 15)
-
-/* DDRPHY_REG_SHU_R0_B0_INI_UIPI */
-DEFINE_BITFIELD(SHU_R0_B0_INI_UIPI_CURR_INI_PI_B0, 6, 0)
-DEFINE_BITFIELD(SHU_R0_B0_INI_UIPI_CURR_INI_UI_B0, 15, 8)
-
-/* DDRPHY_REG_SHU_R0_B1_INI_UIPI */
-DEFINE_BITFIELD(SHU_R0_B1_INI_UIPI_CURR_INI_PI_B1, 6, 0)
-DEFINE_BITFIELD(SHU_R0_B1_INI_UIPI_CURR_INI_UI_B1, 15, 8)
-
-/* DDRPHY_REG_SHU_R0_B0_NEXT_INI_UIPI */
-DEFINE_BITFIELD(SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_PI_B0, 6, 0)
-DEFINE_BITFIELD(SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_UI_B0, 15, 8)
-DEFINE_BITFIELD(SHU_R0_B0_NEXT_INI_UIPI_NEXT_INI_UI_P1_B0, 31, 24)
-
-/* DDRPHY_REG_SHU_R0_B1_NEXT_INI_UIPI */
-DEFINE_BITFIELD(SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_PI_B1, 6, 0)
-DEFINE_BITFIELD(SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_UI_B1, 15, 8)
-DEFINE_BITFIELD(SHU_R0_B1_NEXT_INI_UIPI_NEXT_INI_UI_P1_B1, 31, 24)
-
-/* DDRPHY_REG_SHU_R0_B0_DQ0 */
-DEFINE_BITFIELD(SHU_R0_B0_DQ0_RG_RX_ARDQS0_R_DLY_DUTY, 2, 0)
-DEFINE_BITFIELD(SHU_R0_B0_DQ0_RG_RX_ARDQS0_F_DLY_DUTY, 6, 4)
-DEFINE_BITFIELD(SHU_R0_B0_DQ0_SW_ARPI_DQ_B0, 13, 8)
-DEFINE_BITFIELD(SHU_R0_B0_DQ0_SW_ARPI_DQM_B0, 21, 16)
-DEFINE_BITFIELD(SHU_R0_B0_DQ0_ARPI_PBYTE_B0, 29, 24)
-DEFINE_BIT(SHU_R0_B0_DQ0_DA_ARPI_DDR400_0D5UI_RK0_B0, 30)
-DEFINE_BIT(SHU_R0_B0_DQ0_DA_RX_ARDQSIEN_0D5UI_RK0_B0, 31)
-
-/* DDRPHY_REG_SHU_R0_B1_DQ0 */
-DEFINE_BITFIELD(SHU_R0_B1_DQ0_RG_RX_ARDQS1_R_DLY_DUTY, 2, 0)
-DEFINE_BITFIELD(SHU_R0_B1_DQ0_RG_RX_ARDQS1_F_DLY_DUTY, 6, 4)
-DEFINE_BITFIELD(SHU_R0_B1_DQ0_SW_ARPI_DQ_B1, 13, 8)
-DEFINE_BITFIELD(SHU_R0_B1_DQ0_SW_ARPI_DQM_B1, 21, 16)
-DEFINE_BITFIELD(SHU_R0_B1_DQ0_ARPI_PBYTE_B1, 29, 24)
-DEFINE_BIT(SHU_R0_B1_DQ0_DA_ARPI_DDR400_0D5UI_RK0_B1, 30)
-DEFINE_BIT(SHU_R0_B1_DQ0_DA_RX_ARDQSIEN_0D5UI_RK0_B1, 31)
-
-/* DRAMC_REG_SHU_APHY_TX_PICG_CTRL */
-DEFINE_BITFIELD(SHU_APHY_TX_PICG_CTRL_TX_PICG_CNT, 3, 0)
-DEFINE_BITFIELD(SHU_APHY_TX_PICG_CTRL_TX_DQS_SEL_P1, 6, 4)
-DEFINE_BITFIELD(SHU_APHY_TX_PICG_CTRL_TX_DQS_SEL_P0, 10, 8)
-DEFINE_BITFIELD(SHU_APHY_TX_PICG_CTRL_DPHY_TX_DCM_EXTCNT, 15, 12)
-DEFINE_BIT(SHU_APHY_TX_PICG_CTRL_DDRPHY_CLK_EN_COMB_TX_OPT, 31)
-
-/* DRAMC_REG_SHURK_APHY_TX_PICG_CTRL */
-DEFINE_BITFIELD(SHURK_APHY_TX_PICG_CTRL_TX_DQ_RK_SEL_P1, 2, 0)
-DEFINE_BITFIELD(SHURK_APHY_TX_PICG_CTRL_TX_DQ_RK_SEL_P0, 6, 4)
-
-/* DRAMC_REG_SHU_NEW_XRW2W_CTRL */
-DEFINE_BITFIELD(SHU_NEW_XRW2W_CTRL_TX_PI_UPDCTL_B0, 18, 16)
-DEFINE_BITFIELD(SHU_NEW_XRW2W_CTRL_TX_PI_UPDCTL_B1, 26, 24)
-DEFINE_BIT(SHU_NEW_XRW2W_CTRL_TXPI_UPD_MODE, 31)
-
-/* DRAMC_REG_SHU_SELPH_DQS0 */
-DEFINE_BITFIELD(SHU_SELPH_DQS0_TXDLY_DQS0, 2, 0)
-DEFINE_BITFIELD(SHU_SELPH_DQS0_TXDLY_DQS1, 6, 4)
-DEFINE_BITFIELD(SHU_SELPH_DQS0_TXDLY_DQS2, 10, 8)
-DEFINE_BITFIELD(SHU_SELPH_DQS0_TXDLY_DQS3, 14, 12)
-DEFINE_BITFIELD(SHU_SELPH_DQS0_TXDLY_OEN_DQS0, 18, 16)
-DEFINE_BITFIELD(SHU_SELPH_DQS0_TXDLY_OEN_DQS1, 22, 20)
-DEFINE_BITFIELD(SHU_SELPH_DQS0_TXDLY_OEN_DQS2, 26, 24)
-DEFINE_BITFIELD(SHU_SELPH_DQS0_TXDLY_OEN_DQS3, 30, 28)
-
-/* DRAMC_REG_SHURK_SELPH_DQ0 */
-DEFINE_BITFIELD(SHURK_SELPH_DQ0_TXDLY_DQ0, 2, 0)
-DEFINE_BITFIELD(SHURK_SELPH_DQ0_TXDLY_DQ1, 6, 4)
-DEFINE_BITFIELD(SHURK_SELPH_DQ0_TXDLY_DQ2, 10, 8)
-DEFINE_BITFIELD(SHURK_SELPH_DQ0_TXDLY_DQ3, 14, 12)
-DEFINE_BITFIELD(SHURK_SELPH_DQ0_TXDLY_OEN_DQ0, 18, 16)
-DEFINE_BITFIELD(SHURK_SELPH_DQ0_TXDLY_OEN_DQ1, 22, 20)
-DEFINE_BITFIELD(SHURK_SELPH_DQ0_TXDLY_OEN_DQ2, 26, 24)
-DEFINE_BITFIELD(SHURK_SELPH_DQ0_TXDLY_OEN_DQ3, 30, 28)
-
-/* DRAMC_REG_SHURK_SELPH_DQ1 */
-DEFINE_BITFIELD(SHURK_SELPH_DQ1_TXDLY_DQM0, 2, 0)
-DEFINE_BITFIELD(SHURK_SELPH_DQ1_TXDLY_DQM1, 6, 4)
-DEFINE_BITFIELD(SHURK_SELPH_DQ1_TXDLY_DQM2, 10, 8)
-DEFINE_BITFIELD(SHURK_SELPH_DQ1_TXDLY_DQM3, 14, 12)
-DEFINE_BITFIELD(SHURK_SELPH_DQ1_TXDLY_OEN_DQM0, 18, 16)
-DEFINE_BITFIELD(SHURK_SELPH_DQ1_TXDLY_OEN_DQM1, 22, 20)
-DEFINE_BITFIELD(SHURK_SELPH_DQ1_TXDLY_OEN_DQM2, 26, 24)
-DEFINE_BITFIELD(SHURK_SELPH_DQ1_TXDLY_OEN_DQM3, 30, 28)
-
-/* DRAMC_REG_SHURK_SELPH_DQ2 */
-DEFINE_BITFIELD(SHURK_SELPH_DQ2_DLY_DQ0, 3, 0)
-DEFINE_BITFIELD(SHURK_SELPH_DQ2_DLY_DQ1, 7, 4)
-DEFINE_BITFIELD(SHURK_SELPH_DQ2_DLY_DQ2, 11, 8)
-DEFINE_BITFIELD(SHURK_SELPH_DQ2_DLY_DQ3, 15, 12)
-DEFINE_BITFIELD(SHURK_SELPH_DQ2_DLY_OEN_DQ0, 19, 16)
-DEFINE_BITFIELD(SHURK_SELPH_DQ2_DLY_OEN_DQ1, 23, 20)
-DEFINE_BITFIELD(SHURK_SELPH_DQ2_DLY_OEN_DQ2, 27, 24)
-DEFINE_BITFIELD(SHURK_SELPH_DQ2_DLY_OEN_DQ3, 31, 28)
-
-/* DRAMC_REG_SHURK_SELPH_DQ3 */
-DEFINE_BITFIELD(SHURK_SELPH_DQ3_DLY_DQM0, 3, 0)
-DEFINE_BITFIELD(SHURK_SELPH_DQ3_DLY_DQM1, 7, 4)
-DEFINE_BITFIELD(SHURK_SELPH_DQ3_DLY_DQM2, 11, 8)
-DEFINE_BITFIELD(SHURK_SELPH_DQ3_DLY_DQM3, 15, 12)
-DEFINE_BITFIELD(SHURK_SELPH_DQ3_DLY_OEN_DQM0, 19, 16)
-DEFINE_BITFIELD(SHURK_SELPH_DQ3_DLY_OEN_DQM1, 23, 20)
-DEFINE_BITFIELD(SHURK_SELPH_DQ3_DLY_OEN_DQM2, 27, 24)
-DEFINE_BITFIELD(SHURK_SELPH_DQ3_DLY_OEN_DQM3, 31, 28)
-
-/* DRAMC_REG_SHURK_DQS2DQ_CAL1 */
-DEFINE_BITFIELD(SHURK_DQS2DQ_CAL1_BOOT_ORIG_UI_RK0_DQ0, 10, 0)
-DEFINE_BITFIELD(SHURK_DQS2DQ_CAL1_BOOT_ORIG_UI_RK0_DQ1, 26, 16)
-
-/* DRAMC_REG_SHURK_DQS2DQ_CAL2 */
-DEFINE_BITFIELD(SHURK_DQS2DQ_CAL2_BOOT_TARG_UI_RK0_DQ0, 10, 0)
-DEFINE_BITFIELD(SHURK_DQS2DQ_CAL2_BOOT_TARG_UI_RK0_DQ1, 26, 16)
-
-/* DRAMC_REG_SHURK_DQS2DQ_CAL5 */
-DEFINE_BITFIELD(SHURK_DQS2DQ_CAL5_BOOT_TARG_UI_RK0_DQM0, 10, 0)
-DEFINE_BITFIELD(SHURK_DQS2DQ_CAL5_BOOT_TARG_UI_RK0_DQM1, 26, 16)
-
-/* DRAMC_REG_SHURK_PI */
-DEFINE_BITFIELD(SHURK_PI_RK0_ARPI_DQ_B1, 5, 0)
-DEFINE_BITFIELD(SHURK_PI_RK0_ARPI_DQ_B0, 13, 8)
-DEFINE_BITFIELD(SHURK_PI_RK0_ARPI_DQM_B1, 21, 16)
-DEFINE_BITFIELD(SHURK_PI_RK0_ARPI_DQM_B0, 29, 24)
-
-/* DDRPHY_REG_SHU_R0_B0_TXDLY0 */
-DEFINE_BITFIELD(SHU_R0_B0_TXDLY0_TX_ARDQ0_DLY_B0, 7, 0)
-DEFINE_BITFIELD(SHU_R0_B0_TXDLY0_TX_ARDQ1_DLY_B0, 15, 8)
-DEFINE_BITFIELD(SHU_R0_B0_TXDLY0_TX_ARDQ2_DLY_B0, 23, 16)
-DEFINE_BITFIELD(SHU_R0_B0_TXDLY0_TX_ARDQ3_DLY_B0, 31, 24)
-
-/* DDRPHY_REG_SHU_R0_B0_TXDLY1 */
-DEFINE_BITFIELD(SHU_R0_B0_TXDLY1_TX_ARDQ4_DLY_B0, 7, 0)
-DEFINE_BITFIELD(SHU_R0_B0_TXDLY1_TX_ARDQ5_DLY_B0, 15, 8)
-DEFINE_BITFIELD(SHU_R0_B0_TXDLY1_TX_ARDQ6_DLY_B0, 23, 16)
-DEFINE_BITFIELD(SHU_R0_B0_TXDLY1_TX_ARDQ7_DLY_B0, 31, 24)
-
-/* DDRPHY_REG_SHU_R0_B0_TXDLY3 */
-DEFINE_BITFIELD(SHU_R0_B0_TXDLY3_TX_ARDQM0_DLY_B0, 7, 0)
-DEFINE_BITFIELD(SHU_R0_B0_TXDLY3_TX_ARWCK_DLY_B0, 23, 16)
-DEFINE_BITFIELD(SHU_R0_B0_TXDLY3_TX_ARWCKB_DLY_B0, 31, 24)
-
-/* DDRPHY_REG_SHU_R0_B1_TXDLY0 */
-DEFINE_BITFIELD(SHU_R0_B1_TXDLY0_TX_ARDQ0_DLY_B1, 7, 0)
-DEFINE_BITFIELD(SHU_R0_B1_TXDLY0_TX_ARDQ1_DLY_B1, 15, 8)
-DEFINE_BITFIELD(SHU_R0_B1_TXDLY0_TX_ARDQ2_DLY_B1, 23, 16)
-DEFINE_BITFIELD(SHU_R0_B1_TXDLY0_TX_ARDQ3_DLY_B1, 31, 24)
-
-/* DDRPHY_REG_SHU_R0_B1_TXDLY1 */
-DEFINE_BITFIELD(SHU_R0_B1_TXDLY1_TX_ARDQ4_DLY_B1, 7, 0)
-DEFINE_BITFIELD(SHU_R0_B1_TXDLY1_TX_ARDQ5_DLY_B1, 15, 8)
-DEFINE_BITFIELD(SHU_R0_B1_TXDLY1_TX_ARDQ6_DLY_B1, 23, 16)
-DEFINE_BITFIELD(SHU_R0_B1_TXDLY1_TX_ARDQ7_DLY_B1, 31, 24)
-
-/* DDRPHY_REG_SHU_R0_B1_TXDLY3 */
-DEFINE_BITFIELD(SHU_R0_B1_TXDLY3_TX_ARDQM0_DLY_B1, 7, 0)
-DEFINE_BITFIELD(SHU_R0_B1_TXDLY3_TX_ARWCK_DLY_B1, 23, 16)
-DEFINE_BITFIELD(SHU_R0_B1_TXDLY3_TX_ARWCKB_DLY_B1, 31, 24)
-
-/* DRAMC_REG_SHU_SREF_CTRL */
-DEFINE_BITFIELD(SHU_SREF_CTRL_CKEHCMD, 5, 4)
-DEFINE_BITFIELD(SHU_SREF_CTRL_SREF_CK_DLY, 29, 28)
-
-/* DRAMC_REG_SHU_HMR4_DVFS_CTRL0 */
-DEFINE_BITFIELD(SHU_HMR4_DVFS_CTRL0_FSPCHG_PRDCNT, 15, 8)
-DEFINE_BITFIELD(SHU_HMR4_DVFS_CTRL0_REFRCNT, 27, 16)
-
-/* DDRPHY_REG_SHU_B0_DQ5 */
-DEFINE_BITFIELD(SHU_B0_DQ5_RG_RX_ARDQ_VREF_SEL_B0, 5, 0)
-DEFINE_BIT(SHU_B0_DQ5_RG_RX_ARDQ_VREF_BYPASS_B0, 6)
-DEFINE_BITFIELD(SHU_B0_DQ5_RG_ARPI_FB_B0, 13, 8)
-DEFINE_BITFIELD(SHU_B0_DQ5_RG_RX_ARDQS0_DQSIEN_DLY_B0, 18, 16)
-DEFINE_BIT(SHU_B0_DQ5_RG_RX_ARDQS_DQSIEN_RB_DLY_B0, 19)
-DEFINE_BITFIELD(SHU_B0_DQ5_RG_RX_ARDQS0_DVS_DLY_B0, 23, 20)
-DEFINE_BITFIELD(SHU_B0_DQ5_RG_RX_ARDQ_FIFO_DQSI_DLY_B0, 31, 29)
-
-/* DDRPHY_REG_SHU_B1_DQ5 */
-DEFINE_BITFIELD(SHU_B1_DQ5_RG_RX_ARDQ_VREF_SEL_B1, 5, 0)
-DEFINE_BIT(SHU_B1_DQ5_RG_RX_ARDQ_VREF_BYPASS_B1, 6)
-DEFINE_BITFIELD(SHU_B1_DQ5_RG_ARPI_FB_B1, 13, 8)
-DEFINE_BITFIELD(SHU_B1_DQ5_RG_RX_ARDQS0_DQSIEN_DLY_B1, 18, 16)
-DEFINE_BIT(SHU_B1_DQ5_RG_RX_ARDQS_DQSIEN_RB_DLY_B1, 19)
-DEFINE_BITFIELD(SHU_B1_DQ5_RG_RX_ARDQS0_DVS_DLY_B1, 23, 20)
-DEFINE_BITFIELD(SHU_B1_DQ5_RG_RX_ARDQ_FIFO_DQSI_DLY_B1, 31, 29)
-
-/* DDRPHY_REG_SHU_R0_B0_RXDLY0 */
-DEFINE_BITFIELD(SHU_R0_B0_RXDLY0_RX_ARDQ0_R_DLY_B0, 7, 0)
-DEFINE_BITFIELD(SHU_R0_B0_RXDLY0_RX_ARDQ0_F_DLY_B0, 15, 8)
-DEFINE_BITFIELD(SHU_R0_B0_RXDLY0_RX_ARDQ1_R_DLY_B0, 23, 16)
-DEFINE_BITFIELD(SHU_R0_B0_RXDLY0_RX_ARDQ1_F_DLY_B0, 31, 24)
-
-/* DDRPHY_REG_SHU_R0_B0_RXDLY1 */
-DEFINE_BITFIELD(SHU_R0_B0_RXDLY1_RX_ARDQ2_R_DLY_B0, 7, 0)
-DEFINE_BITFIELD(SHU_R0_B0_RXDLY1_RX_ARDQ2_F_DLY_B0, 15, 8)
-DEFINE_BITFIELD(SHU_R0_B0_RXDLY1_RX_ARDQ3_R_DLY_B0, 23, 16)
-DEFINE_BITFIELD(SHU_R0_B0_RXDLY1_RX_ARDQ3_F_DLY_B0, 31, 24)
-
-/* DDRPHY_REG_SHU_R0_B0_RXDLY2 */
-DEFINE_BITFIELD(SHU_R0_B0_RXDLY2_RX_ARDQ4_R_DLY_B0, 7, 0)
-DEFINE_BITFIELD(SHU_R0_B0_RXDLY2_RX_ARDQ4_F_DLY_B0, 15, 8)
-DEFINE_BITFIELD(SHU_R0_B0_RXDLY2_RX_ARDQ5_R_DLY_B0, 23, 16)
-DEFINE_BITFIELD(SHU_R0_B0_RXDLY2_RX_ARDQ5_F_DLY_B0, 31, 24)
-
-/* DDRPHY_REG_SHU_R0_B0_RXDLY3 */
-DEFINE_BITFIELD(SHU_R0_B0_RXDLY3_RX_ARDQ6_R_DLY_B0, 7, 0)
-DEFINE_BITFIELD(SHU_R0_B0_RXDLY3_RX_ARDQ6_F_DLY_B0, 15, 8)
-DEFINE_BITFIELD(SHU_R0_B0_RXDLY3_RX_ARDQ7_R_DLY_B0, 23, 16)
-DEFINE_BITFIELD(SHU_R0_B0_RXDLY3_RX_ARDQ7_F_DLY_B0, 31, 24)
-
-/* DDRPHY_REG_SHU_R0_B0_RXDLY4 */
-DEFINE_BITFIELD(SHU_R0_B0_RXDLY4_RX_ARDQM0_R_DLY_B0, 7, 0)
-DEFINE_BITFIELD(SHU_R0_B0_RXDLY4_RX_ARDQM0_F_DLY_B0, 15, 8)
-
-/* DDRPHY_REG_SHU_R0_B0_RXDLY5 */
-DEFINE_BITFIELD(SHU_R0_B0_RXDLY5_RX_ARDQS0_R_DLY_B0, 8, 0)
-DEFINE_BITFIELD(SHU_R0_B0_RXDLY5_RX_ARDQS0_F_DLY_B0, 24, 16)
-
-/* DDRPHY_REG_SHU_R0_B1_RXDLY0 */
-DEFINE_BITFIELD(SHU_R0_B1_RXDLY0_RX_ARDQ0_R_DLY_B1, 7, 0)
-DEFINE_BITFIELD(SHU_R0_B1_RXDLY0_RX_ARDQ0_F_DLY_B1, 15, 8)
-DEFINE_BITFIELD(SHU_R0_B1_RXDLY0_RX_ARDQ1_R_DLY_B1, 23, 16)
-DEFINE_BITFIELD(SHU_R0_B1_RXDLY0_RX_ARDQ1_F_DLY_B1, 31, 24)
-
-/* DDRPHY_REG_SHU_R0_B1_RXDLY1 */
-DEFINE_BITFIELD(SHU_R0_B1_RXDLY1_RX_ARDQ2_R_DLY_B1, 7, 0)
-DEFINE_BITFIELD(SHU_R0_B1_RXDLY1_RX_ARDQ2_F_DLY_B1, 15, 8)
-DEFINE_BITFIELD(SHU_R0_B1_RXDLY1_RX_ARDQ3_R_DLY_B1, 23, 16)
-DEFINE_BITFIELD(SHU_R0_B1_RXDLY1_RX_ARDQ3_F_DLY_B1, 31, 24)
-
-/* DDRPHY_REG_SHU_R0_B1_RXDLY2 */
-DEFINE_BITFIELD(SHU_R0_B1_RXDLY2_RX_ARDQ4_R_DLY_B1, 7, 0)
-DEFINE_BITFIELD(SHU_R0_B1_RXDLY2_RX_ARDQ4_F_DLY_B1, 15, 8)
-DEFINE_BITFIELD(SHU_R0_B1_RXDLY2_RX_ARDQ5_R_DLY_B1, 23, 16)
-DEFINE_BITFIELD(SHU_R0_B1_RXDLY2_RX_ARDQ5_F_DLY_B1, 31, 24)
-
-/* DDRPHY_REG_SHU_R0_B1_RXDLY3 */
-DEFINE_BITFIELD(SHU_R0_B1_RXDLY3_RX_ARDQ6_R_DLY_B1, 7, 0)
-DEFINE_BITFIELD(SHU_R0_B1_RXDLY3_RX_ARDQ6_F_DLY_B1, 15, 8)
-DEFINE_BITFIELD(SHU_R0_B1_RXDLY3_RX_ARDQ7_R_DLY_B1, 23, 16)
-DEFINE_BITFIELD(SHU_R0_B1_RXDLY3_RX_ARDQ7_F_DLY_B1, 31, 24)
-
-/* DDRPHY_REG_SHU_R0_B1_RXDLY4 */
-DEFINE_BITFIELD(SHU_R0_B1_RXDLY4_RX_ARDQM0_R_DLY_B1, 7, 0)
-DEFINE_BITFIELD(SHU_R0_B1_RXDLY4_RX_ARDQM0_F_DLY_B1, 15, 8)
-
-/* DDRPHY_REG_SHU_R0_B1_RXDLY5 */
-DEFINE_BITFIELD(SHU_R0_B1_RXDLY5_RX_ARDQS0_R_DLY_B1, 8, 0)
-DEFINE_BITFIELD(SHU_R0_B1_RXDLY5_RX_ARDQS0_F_DLY_B1, 24, 16)
-
-/* DDRPHY_REG_B0_DQ4 */
-DEFINE_BITFIELD(B0_DQ4_RG_RX_ARDQS_EYE_R_DLY_B0, 6, 0)
-DEFINE_BITFIELD(B0_DQ4_RG_RX_ARDQS_EYE_F_DLY_B0, 14, 8)
-DEFINE_BITFIELD(B0_DQ4_RG_RX_ARDQ_EYE_R_DLY_B0, 21, 16)
-DEFINE_BITFIELD(B0_DQ4_RG_RX_ARDQ_EYE_F_DLY_B0, 29, 24)
-
-/* DDRPHY_REG_B1_DQ4 */
-DEFINE_BITFIELD(B1_DQ4_RG_RX_ARDQS_EYE_R_DLY_B1, 6, 0)
-DEFINE_BITFIELD(B1_DQ4_RG_RX_ARDQS_EYE_F_DLY_B1, 14, 8)
-DEFINE_BITFIELD(B1_DQ4_RG_RX_ARDQ_EYE_R_DLY_B1, 21, 16)
-DEFINE_BITFIELD(B1_DQ4_RG_RX_ARDQ_EYE_F_DLY_B1, 29, 24)
-
-/* DDRPHY_REG_SHU_R0_CA_CMD0 */
-DEFINE_BITFIELD(SHU_R0_CA_CMD0_RG_RX_ARCLK_R_DLY_DUTY, 2, 0)
-DEFINE_BITFIELD(SHU_R0_CA_CMD0_RG_RX_ARCLK_F_DLY_DUTY, 6, 4)
-DEFINE_BITFIELD(SHU_R0_CA_CMD0_RG_ARPI_CS, 13, 8)
-DEFINE_BITFIELD(SHU_R0_CA_CMD0_RG_ARPI_CMD, 21, 16)
-DEFINE_BITFIELD(SHU_R0_CA_CMD0_RG_ARPI_CLK, 29, 24)
-DEFINE_BIT(SHU_R0_CA_CMD0_DA_ARPI_DDR400_0D5UI_RK0_CA, 30)
-DEFINE_BIT(SHU_R0_CA_CMD0_DA_RX_ARDQSIEN_0D5UI_RK0_CA, 31)
-
-/* DRAMC_REG_SHU_SELPH_DQS1 */
-DEFINE_BITFIELD(SHU_SELPH_DQS1_DLY_DQS0, 3, 0)
-DEFINE_BITFIELD(SHU_SELPH_DQS1_DLY_DQS1, 7, 4)
-DEFINE_BITFIELD(SHU_SELPH_DQS1_DLY_DQS2, 11, 8)
-DEFINE_BITFIELD(SHU_SELPH_DQS1_DLY_DQS3, 15, 12)
-DEFINE_BITFIELD(SHU_SELPH_DQS1_DLY_OEN_DQS0, 19, 16)
-DEFINE_BITFIELD(SHU_SELPH_DQS1_DLY_OEN_DQS1, 23, 20)
-DEFINE_BITFIELD(SHU_SELPH_DQS1_DLY_OEN_DQS2, 27, 24)
-DEFINE_BITFIELD(SHU_SELPH_DQS1_DLY_OEN_DQS3, 31, 28)
-
-/* DDRPHY_REG_MISC_RX_AUTOK_CFG0 */
-DEFINE_BIT(MISC_RX_AUTOK_CFG0_RX_CAL_CG_EN, 3)
-
-/* DDRPHY_REG_SHU_CA_CMD8 */
-DEFINE_BIT(SHU_CA_CMD8_R_RMRODTEN_CG_IG_CA, 20)
-DEFINE_BIT(SHU_CA_CMD8_R_RMRX_TOPHY_CG_IG_CA, 21)
-DEFINE_BIT(SHU_CA_CMD8_R_DMDQSIEN_FLAG_SYNC_CG_IG_CA, 26)
-DEFINE_BIT(SHU_CA_CMD8_R_DMDQSIEN_FLAG_PIPE_CG_IG_CA, 27)
-DEFINE_BIT(SHU_CA_CMD8_R_DMDQSIEN_RDSEL_PIPE_CG_IG_CA, 28)
-DEFINE_BIT(SHU_CA_CMD8_R_DMDQSIEN_RDSEL_TOG_PIPE_CG_IG_CA, 29)
-DEFINE_BIT(SHU_CA_CMD8_R_DMRANK_PIPE_CG_IG_CA, 30)
-DEFINE_BIT(SHU_CA_CMD8_R_DMRANK_CHG_PIPE_CG_IG_CA, 31)
-
-/* DRAMC_REG_MRR_BIT_MUX1 */
-DEFINE_BITFIELD(MRR_BIT_MUX1_MRR_BIT0_SEL, 4, 0)
-DEFINE_BITFIELD(MRR_BIT_MUX1_MRR_BIT1_SEL, 12, 8)
-DEFINE_BITFIELD(MRR_BIT_MUX1_MRR_BIT2_SEL, 20, 16)
-DEFINE_BITFIELD(MRR_BIT_MUX1_MRR_BIT3_SEL, 28, 24)
-
-/* DRAMC_REG_MRR_BIT_MUX2 */
-DEFINE_BITFIELD(MRR_BIT_MUX2_MRR_BIT4_SEL, 4, 0)
-DEFINE_BITFIELD(MRR_BIT_MUX2_MRR_BIT5_SEL, 12, 8)
-DEFINE_BITFIELD(MRR_BIT_MUX2_MRR_BIT6_SEL, 20, 16)
-DEFINE_BITFIELD(MRR_BIT_MUX2_MRR_BIT7_SEL, 28, 24)
-
-/* DRAMC_REG_MRR_BIT_MUX3 */
-DEFINE_BITFIELD(MRR_BIT_MUX3_MRR_BIT8_SEL, 4, 0)
-DEFINE_BITFIELD(MRR_BIT_MUX3_MRR_BIT9_SEL, 12, 8)
-DEFINE_BITFIELD(MRR_BIT_MUX3_MRR_BIT10_SEL, 20, 16)
-DEFINE_BITFIELD(MRR_BIT_MUX3_MRR_BIT11_SEL, 28, 24)
-
-/* DRAMC_REG_MRR_BIT_MUX4 */
-DEFINE_BITFIELD(MRR_BIT_MUX4_MRR_BIT12_SEL, 4, 0)
-DEFINE_BITFIELD(MRR_BIT_MUX4_MRR_BIT13_SEL, 12, 8)
-DEFINE_BITFIELD(MRR_BIT_MUX4_MRR_BIT14_SEL, 20, 16)
-DEFINE_BITFIELD(MRR_BIT_MUX4_MRR_BIT15_SEL, 28, 24)
-
-/* DDRPHY_REG_MISC_DQ_SE_PINMUX_CTRL0 */
-DEFINE_BITFIELD(MISC_DQ_SE_PINMUX_CTRL0_DQ_PINMUX_SEL_DQ0, 3, 0)
-DEFINE_BITFIELD(MISC_DQ_SE_PINMUX_CTRL0_DQ_PINMUX_SEL_DQ1, 7, 4)
-DEFINE_BITFIELD(MISC_DQ_SE_PINMUX_CTRL0_DQ_PINMUX_SEL_DQ2, 11, 8)
-DEFINE_BITFIELD(MISC_DQ_SE_PINMUX_CTRL0_DQ_PINMUX_SEL_DQ3, 15, 12)
-DEFINE_BITFIELD(MISC_DQ_SE_PINMUX_CTRL0_DQ_PINMUX_SEL_DQ4, 19, 16)
-DEFINE_BITFIELD(MISC_DQ_SE_PINMUX_CTRL0_DQ_PINMUX_SEL_DQ5, 23, 20)
-DEFINE_BITFIELD(MISC_DQ_SE_PINMUX_CTRL0_DQ_PINMUX_SEL_DQ6, 27, 24)
-DEFINE_BITFIELD(MISC_DQ_SE_PINMUX_CTRL0_DQ_PINMUX_SEL_DQ7, 31, 28)
-
-/* DDRPHY_REG_MISC_DQ_SE_PINMUX_CTRL1 */
-DEFINE_BITFIELD(MISC_DQ_SE_PINMUX_CTRL1_DQ_PINMUX_SEL_DQ8, 3, 0)
-DEFINE_BITFIELD(MISC_DQ_SE_PINMUX_CTRL1_DQ_PINMUX_SEL_DQ9, 7, 4)
-DEFINE_BITFIELD(MISC_DQ_SE_PINMUX_CTRL1_DQ_PINMUX_SEL_DQ10, 11, 8)
-DEFINE_BITFIELD(MISC_DQ_SE_PINMUX_CTRL1_DQ_PINMUX_SEL_DQ11, 15, 12)
-DEFINE_BITFIELD(MISC_DQ_SE_PINMUX_CTRL1_DQ_PINMUX_SEL_DQ12, 19, 16)
-DEFINE_BITFIELD(MISC_DQ_SE_PINMUX_CTRL1_DQ_PINMUX_SEL_DQ13, 23, 20)
-DEFINE_BITFIELD(MISC_DQ_SE_PINMUX_CTRL1_DQ_PINMUX_SEL_DQ14, 27, 24)
-DEFINE_BITFIELD(MISC_DQ_SE_PINMUX_CTRL1_DQ_PINMUX_SEL_DQ15, 31, 28)
-
-/* DRAMC_REG_SA_RESERVE */
-DEFINE_BIT(SA_RESERVE_SINGLE_RANK, 0)
-DEFINE_BITFIELD(SA_RESERVE_MODE_RK1, 27, 24)
-DEFINE_BITFIELD(SA_RESERVE_MODE_RK0, 31, 28)
-
-/* DRAMC_REG_SWCMD_CTRL0 */
-DEFINE_BITFIELD(SWCMD_CTRL0_MRSOP, 7, 0)
-DEFINE_BITFIELD(SWCMD_CTRL0_MRSMA, 20, 8)
-DEFINE_BITFIELD(SWCMD_CTRL0_MRSRK, 25, 24)
-DEFINE_BIT(SWCMD_CTRL0_SWTRIG_ZQ_RK, 30)
-
-/* DRAMC_REG_DRAMC_IRQ_EN */
-DEFINE_BIT(DRAMC_IRQ_EN_MR4INT_EN, 0)
-DEFINE_BITFIELD(DRAMC_IRQ_EN_DRAMC_IRQ_EN_RSV, 31, 18)
-
-/* DDRPHY_REG_CA_TX_MCK */
-DEFINE_BITFIELD(CA_TX_MCK_R_DMRESETB_DRVP_FRPHY, 25, 21)
-DEFINE_BITFIELD(CA_TX_MCK_R_DMRESETB_DRVN_FRPHY, 30, 26)
-DEFINE_BIT(CA_TX_MCK_R_DMRESET_FRPHY_OPT, 31)
-
-/* DDRPHY_REG_MISC_IMPCAL */
-DEFINE_BIT(MISC_IMPCAL_DRVCGWREF, 2)
-DEFINE_BIT(MISC_IMPCAL_DQDRVSWUPD, 3)
-DEFINE_BIT(MISC_IMPCAL_IMPSRCEXT, 4)
-DEFINE_BIT(MISC_IMPCAL_IMPBINARY, 5)
-DEFINE_BIT(MISC_IMPCAL_DRV_ECO_OPT, 10)
-DEFINE_BIT(MISC_IMPCAL_IMPCAL_CHGDRV_ECO_OPT, 11)
-DEFINE_BIT(MISC_IMPCAL_IMPCAL_SM_ECO_OPT, 12)
-DEFINE_BIT(MISC_IMPCAL_IMPCAL_ECO_OPT, 13)
-DEFINE_BIT(MISC_IMPCAL_DIS_SUS_CH1_DRV, 14)
-DEFINE_BIT(MISC_IMPCAL_DIS_SUS_CH0_DRV, 15)
-DEFINE_BIT(MISC_IMPCAL_IMPCAL_DRVUPDOPT, 17)
-DEFINE_BIT(MISC_IMPCAL_IMPCAL_BYPASS_UP_CA_DRV, 19)
-DEFINE_BIT(MISC_IMPCAL_IMPCAL_HWSAVE_EN, 20)
-DEFINE_BIT(MISC_IMPCAL_IMPCAL_CALI_ENN, 21)
-DEFINE_BIT(MISC_IMPCAL_IMPCAL_CALI_ENP, 22)
-DEFINE_BIT(MISC_IMPCAL_IMPCAL_CALI_EN, 23)
-DEFINE_BIT(MISC_IMPCAL_IMPCAL_IMPPDN, 24)
-DEFINE_BIT(MISC_IMPCAL_IMPCAL_IMPPDP, 25)
-DEFINE_BIT(MISC_IMPCAL_IMPCAL_NEW_OLD_SL, 26)
-DEFINE_BIT(MISC_IMPCAL_IMPCAL_SWVALUE_EN, 29)
-DEFINE_BIT(MISC_IMPCAL_IMPCAL_EN, 30)
-DEFINE_BIT(MISC_IMPCAL_IMPCAL_HW, 31)
-
-/* DDRPHY_REG_SHU_B0_DLL2 */
-DEFINE_BITFIELD(SHU_B0_DLL2_RG_ARDQ_REV_B0, 31, 0)
-
-/* DDRPHY_REG_SHU_B1_DLL2 */
-DEFINE_BITFIELD(SHU_B1_DLL2_RG_ARDQ_REV_B1, 31, 0)
-
-/* DDRPHY_REG_SHU_CA_DLL2 */
-DEFINE_BITFIELD(SHU_CA_DLL2_RG_ARCMD_REV, 31, 0)
-
-/* DRAMC_REG_DRAMC_DBG_SEL1 */
-DEFINE_BITFIELD(DRAMC_DBG_SEL1_DEBUG_SEL_0, 15, 0)
-
-/* DRAMC_REG_SWCMD_CTRL2 */
-DEFINE_BITFIELD(SWCMD_CTRL2_RTSWCMD_AGE, 9, 0)
-
-/* DRAMC_REG_RTMRW_CTRL0 */
-DEFINE_BITFIELD(RTMRW_CTRL0_RTMRW_AGE, 24, 15)
-
-/* DRAMC_REG_REF_BOUNCE1 */
-DEFINE_BITFIELD(REF_BOUNCE1_REFRATE_DEBOUNCE_COUNT, 7, 0)
-DEFINE_BITFIELD(REF_BOUNCE1_REFRATE_DEBOUNCE_TH, 12, 8)
-DEFINE_BIT(REF_BOUNCE1_REFRATE_DEBOUNCE_OPT, 13)
-DEFINE_BITFIELD(REF_BOUNCE1_REFRATE_DEBOUNCE_DIS, 31, 16)
-
-/* DRAMC_REG_REFPEND2 */
-DEFINE_BITFIELD(REFPEND2_MPENDREFCNT_TH8, 3, 0)
-
-/* DRAMC_REG_RTSWCMD_CNT */
-DEFINE_BITFIELD(RTSWCMD_CNT_RTSWCMD_CNT, 31, 0)
-
-/* DDRPHY_REG_B0_DLL_ARPI4 */
-DEFINE_BIT(B0_DLL_ARPI4_RG_ARPI_BYPASS_SR_DQ_B0, 8)
-DEFINE_BIT(B0_DLL_ARPI4_RG_ARPI_BYPASS_SR_DQS_B0, 9)
-
-/* DDRPHY_REG_B1_DLL_ARPI4 */
-DEFINE_BIT(B1_DLL_ARPI4_RG_ARPI_BYPASS_SR_DQ_B1, 8)
-DEFINE_BIT(B1_DLL_ARPI4_RG_ARPI_BYPASS_SR_DQS_B1, 9)
-
-/* DDRPHY_REG_CA_DLL_ARPI4 */
-DEFINE_BIT(CA_DLL_ARPI4_RG_ARPI_BYPASS_SR_CA_CA, 8)
-DEFINE_BIT(CA_DLL_ARPI4_RG_ARPI_BYPASS_SR_CLK_CA, 9)
-
-/* DDRPHY_REG_MISC_DDR_RESERVE */
-DEFINE_BITFIELD(MISC_DDR_RESERVE_WDT_CONF_ISO_CNT, 7, 0)
-DEFINE_BIT(MISC_DDR_RESERVE_WDT_SM_CLR, 24)
-DEFINE_BIT(MISC_DDR_RESERVE_WDT_LITE_EN, 25)
-
-/* DDRPHY_REG_MISC_CTRL6 */
-DEFINE_BIT(MISC_CTRL6_RG_PHDET_EN_SHU_OPT, 0)
-DEFINE_BIT(MISC_CTRL6_RG_ADA_MCK8X_EN_SHU_OPT, 1)
-
-/* DRAMC_REG_REF_BOUNCE2 */
-DEFINE_BITFIELD(REF_BOUNCE2_PRE_MR4INT_TH, 4, 0)
-
-/* DRAMC_REG_SHU_REF0 */
-DEFINE_BITFIELD(SHU_REF0_MPENDREF_CNT, 2, 0)
-
-/* DRAMC_REG_ZQ_SET1 */
-DEFINE_BIT(ZQ_SET1_ZQCALDISB, 30)
-
-/* DRAMC_REG_TX_RETRY_SET0 */
-DEFINE_BIT(TX_RETRY_SET0_XSR_TX_RETRY_BLOCK_ALE_MASK, 0)
-DEFINE_BIT(TX_RETRY_SET0_XSR_TX_RETRY_EN, 2)
-DEFINE_BIT(TX_RETRY_SET0_XSR_TX_RETRY_SW_EN, 4)
-
-/* DRAMC_REG_SPCMDRESP */
-DEFINE_BIT(SPCMDRESP_MRR_RESPONSE, 1)
-DEFINE_BIT(SPCMDRESP_RDDQC_RESPONSE, 7)
-DEFINE_BIT(SPCMDRESP_TX_RETRY_DONE_RESPONSE, 15)
-
-/* DDRPHY_REG_SHU_B0_VREF */
-DEFINE_BIT(SHU_B0_VREF_RG_RX_ARDQ_VREF_RANK_SEL_EN_B0, 16)
-DEFINE_BIT(SHU_B0_VREF_RG_RX_ARDQ_VREF_UNTERM_EN_B0, 22)
-
-/* DDRPHY_REG_SHU_B1_VREF */
-DEFINE_BIT(SHU_B1_VREF_RG_RX_ARDQ_VREF_RANK_SEL_EN_B1, 16)
-DEFINE_BIT(SHU_B1_VREF_RG_RX_ARDQ_VREF_UNTERM_EN_B1, 22)
-
-/* DDRPHY_REG_SHU_B0_PHY_VREF_SEL */
-DEFINE_BITFIELD(RG_RX_ARDQ_VREF_SEL_LB_B0, 6, 0)
-DEFINE_BITFIELD(RG_RX_ARDQ_VREF_SEL_UB_B0, 14, 8)
-
-/* DDRPHY_REG_SHU_B1_PHY_VREF_SEL */
-DEFINE_BITFIELD(RG_RX_ARDQ_VREF_SEL_LB_B1, 6, 0)
-DEFINE_BITFIELD(RG_RX_ARDQ_VREF_SEL_UB_B1, 14, 8)
-
-/* DDRPHY_REG_SHU_MISC_DRVING1 */
-DEFINE_BITFIELD(SHU_MISC_DRVING1_DQDRVN2, 4, 0)
-DEFINE_BITFIELD(SHU_MISC_DRVING1_DQDRVP2, 9, 5)
-DEFINE_BITFIELD(SHU_MISC_DRVING1_DQSDRVN1, 14, 10)
-DEFINE_BITFIELD(SHU_MISC_DRVING1_DQSDRVP1, 19, 15)
-DEFINE_BITFIELD(SHU_MISC_DRVING1_DQSDRVN2, 24, 20)
-DEFINE_BITFIELD(SHU_MISC_DRVING1_DQSDRVP2, 29, 25)
-DEFINE_BIT(SHU_MISC_DRVING1_DIS_IMP_ODTN_TRACK, 30)
-DEFINE_BIT(SHU_MISC_DRVING1_DIS_IMPCAL_HW, 31)
-
-/* DRAMC_REG_SHU_ZQ_SET0 */
-DEFINE_BITFIELD(SHU_ZQ_SET0_ZQCSCNT, 15, 0)
-DEFINE_BITFIELD(SHU_ZQ_SET0_TZQLAT, 31, 27)
-
-/* DRAMC_REG_DCM_SUB_CTRL */
-DEFINE_BIT(DCM_SUB_CTRL_SUBCLK_CTRL_TX_TRACKING, 1)
-DEFINE_BIT(DCM_SUB_CTRL_SUBCLK_CTRL_TX_AUTOK, 12)
-
-/* DDRPHY_REG_B0_PHY3 */
-DEFINE_BIT(B0_PHY3_RG_RX_ARDQ_BUFF_EN_SEL_B0, 28)
-
-/* DDRPHY_REG_B1_PHY3 */
-DEFINE_BIT(B1_PHY3_RG_RX_ARDQ_BUFF_EN_SEL_B1, 28)
-
-/* DRAMC_REG_CBT_WLEV_CTRL5 */
-DEFINE_BITFIELD(CBT_WLEV_CTRL5_NEW_CBT_PAT_INTV, 11, 4)
-
-/* DRAMC_REG_CBT_WLEV_CTRL0 */
-DEFINE_BIT(CBT_WLEV_CTRL0_BYTEMODECBTEN, 2)
-DEFINE_BIT(CBT_WLEV_CTRL0_WRITE_LEVEL_EN, 3)
-DEFINE_BIT(CBT_WLEV_CTRL0_DQSOEAOEN, 4)
-DEFINE_BIT(CBT_WLEV_CTRL0_CBT_WLEV_DQS_TRIG, 7)
-DEFINE_BITFIELD(CBT_WLEV_CTRL0_CBT_WLEV_DQS_SEL, 11, 8)
-DEFINE_BITFIELD(CBT_WLEV_CTRL0_WLEV_DQSPAT_LAT, 19, 12)
-DEFINE_BITFIELD(CBT_WLEV_CTRL0_CBT_DQBYTE_OEAO_EN, 29, 26)
-DEFINE_BIT(CBT_WLEV_CTRL0_CBT_CMP_BYTEMODE, 30)
-
-/* DRAMC_REG_SHU_LP5_CMD */
-DEFINE_BIT(SHU_LP5_CMD_LP5_CMD1TO2EN, 0)
-
-/* DDRPHY_REG_SHU_R0_CA_TXDLY0 */
-DEFINE_BITFIELD(SHU_R0_CA_TXDLY0_TX_ARCA0_DLY, 7, 0)
-DEFINE_BITFIELD(SHU_R0_CA_TXDLY0_TX_ARCA1_DLY, 15, 8)
-DEFINE_BITFIELD(SHU_R0_CA_TXDLY0_TX_ARCA2_DLY, 23, 16)
-DEFINE_BITFIELD(SHU_R0_CA_TXDLY0_TX_ARCA3_DLY, 31, 24)
-
-/* DDRPHY_REG_SHU_R0_CA_TXDLY1 */
-DEFINE_BITFIELD(SHU_R0_CA_TXDLY1_TX_ARCA4_DLY, 7, 0)
-DEFINE_BITFIELD(SHU_R0_CA_TXDLY1_TX_ARCA5_DLY, 15, 8)
-DEFINE_BITFIELD(SHU_R0_CA_TXDLY1_TX_ARCA6_DLY, 23, 16)
-DEFINE_BITFIELD(SHU_R0_CA_TXDLY1_TX_ARCA7_DLY, 31, 24)
-
-/* DRAMC_REG_CBT_WLEV_CTRL4 */
-DEFINE_BITFIELD(CBT_WLEV_CTRL4_CBT_TXDQ_B0, 7, 0)
-DEFINE_BITFIELD(CBT_WLEV_CTRL4_CBT_TXDQ_B1, 15, 8)
-
-/* DRAMC_REG_CBT_WLEV_CTRL3 */
-DEFINE_BITFIELD(CBT_WLEV_CTRL3_DQSBX_G, 17, 14)
-
-/* DRAMC_REG_SWCMD_EN */
-DEFINE_BIT(SWCMD_EN_RDDQCEN, 5)
-DEFINE_BIT(SWCMD_EN_MRWEN, 11)
-DEFINE_BIT(SWCMD_EN_MRREN, 12)
-DEFINE_BIT(SWCMD_EN_ZQCEN_SWTRIG, 16)
-DEFINE_BIT(SWCMD_EN_ZQLATEN_SWTRIG, 17)
-DEFINE_BIT(SWCMD_EN_WCK2DQI_START_SWTRIG, 18)
-
-/* DRAMC_REG_SPCMDRESP3 */
-DEFINE_BIT(SPCMDRESP3_ZQC_SWTRIG_RESPONSE, 1)
-DEFINE_BIT(SPCMDRESP3_ZQLAT_SWTRIG_RESPONSE, 2)
-DEFINE_BIT(SPCMDRESP3_WCK2DQI_START_SWTRIG_RESPONSE, 3)
-
-/* DDRPHY_REG_SHU_B0_RANK_SELPH_UI_DLY */
-DEFINE_BITFIELD(SHU_B0_RANK_SELPH_UI_DLY_RANKSEL_MCK_DLY_P0_B0, 18, 16)
-DEFINE_BITFIELD(SHU_B0_RANK_SELPH_UI_DLY_RANKSEL_MCK_DLY_P1_B0, 22, 20)
-
-/* DDRPHY_REG_SHU_B1_RANK_SELPH_UI_DLY */
-DEFINE_BITFIELD(SHU_B1_RANK_SELPH_UI_DLY_RANKSEL_MCK_DLY_P0_B1, 18, 16)
-DEFINE_BITFIELD(SHU_B1_RANK_SELPH_UI_DLY_RANKSEL_MCK_DLY_P1_B1, 22, 20)
-
-/* DRAMC_REG_RDDQCGOLDEN */
-DEFINE_BITFIELD(RDDQCGOLDEN_MR20_GOLDEN, 7, 0)
-DEFINE_BITFIELD(RDDQCGOLDEN_MR15_GOLDEN, 15, 8)
-DEFINE_BITFIELD(RDDQCGOLDEN_MR40_GOLDEN, 23, 16)
-DEFINE_BITFIELD(RDDQCGOLDEN_MR32_GOLDEN, 31, 24)
-
-/* DDRPHY_REG_MISC_JMETER */
-DEFINE_BIT(MISC_JMETER_JMTR_EN, 0)
-
-/* DDRPHY_REG_MISC_DUTY_TOGGLE_CNT */
-DEFINE_BITFIELD(MISC_DUTY_TOGGLE_CNT_TOGGLE_CNT, 31, 0)
-
-/* DDRPHY_REG_MISC_DUTY_DQS0_ERR_CNT */
-DEFINE_BITFIELD(MISC_DUTY_DQS0_ERR_CNT_DQS0_ERR_CNT, 31, 0)
-
-/* DDRPHY_REG_DVFS_STATUS */
-DEFINE_BITFIELD(DVFS_STATUS_OTHER_SHU_GP, 17, 16)
-
-/* DDRPHY_REG_SHU_MISC_DRVING3 */
-DEFINE_BITFIELD(SHU_MISC_DRVING3_DQODTN2, 4, 0)
-DEFINE_BITFIELD(SHU_MISC_DRVING3_DQODTP2, 9, 5)
-DEFINE_BITFIELD(SHU_MISC_DRVING3_DQSODTN, 14, 10)
-DEFINE_BITFIELD(SHU_MISC_DRVING3_DQSODTP, 19, 15)
-DEFINE_BITFIELD(SHU_MISC_DRVING3_DQSODTN2, 24, 20)
-DEFINE_BITFIELD(SHU_MISC_DRVING3_DQSODTP2, 29, 25)
-
-/* DDRPHY_REG_SHU_MISC_DRVING4 */
-DEFINE_BITFIELD(SHU_MISC_DRVING4_CMDODTN1, 4, 0)
-DEFINE_BITFIELD(SHU_MISC_DRVING4_CMDODTP1, 9, 5)
-DEFINE_BITFIELD(SHU_MISC_DRVING4_CMDODTN2, 14, 10)
-DEFINE_BITFIELD(SHU_MISC_DRVING4_CMDODTP2, 19, 15)
-DEFINE_BITFIELD(SHU_MISC_DRVING4_DQODTN1, 24, 20)
-DEFINE_BITFIELD(SHU_MISC_DRVING4_DQODTP1, 29, 25)
-
-/* DDRPHY_REG_MISC_SHU_DRVING8 */
-DEFINE_BITFIELD(MISC_SHU_DRVING8_CS_DRVN, 4, 0)
-DEFINE_BITFIELD(MISC_SHU_DRVING8_CS_DRVP, 12, 8)
-
-/* DDRPHY_REG_MISC_PHY_RGS_CMD */
-DEFINE_BIT(MISC_PHY_RGS_CMD_RGS_RIMPCALOUT, 24)
-
-/* DDRPHY_REG_SHU_CA_TXDUTY */
-DEFINE_BITFIELD(SHU_CA_TXDUTY_DA_TX_ARCLK_DUTY_DLY, 13, 8)
-
-/* DRAMC_REG_ADDR(DDRPHY_REG_SHU_B0_TXDUTY */
-DEFINE_BITFIELD(SHU_B0_TXDUTY_DA_TX_ARDQ_DUTY_DLY_B0, 5, 0)
-DEFINE_BITFIELD(SHU_B0_TXDUTY_DA_TX_ARDQS_DUTY_DLY_B0, 13, 8)
-DEFINE_BITFIELD(SHU_B0_TXDUTY_DA_TX_ARDQM_DUTY_DLY_B0, 21, 16)
-DEFINE_BITFIELD(SHU_B0_TXDUTY_DA_TX_ARWCK_DUTY_DLY_B0, 29, 24)
-
-/* DRAMC_ADDR_SHIFT_CHN(DRAMC_REG_TEST2_A3 */
-DEFINE_BITFIELD(TEST2_A3_TESTCNT, 3, 0)
-
-/* DRAMC_REG_SHU_DQSOSC_SET0 */
-DEFINE_BIT(SHU_DQSOSC_SET0_DQSOSCENDIS, 0)
-DEFINE_BITFIELD(SHU_DQSOSC_SET0_DQSOSC_PRDCNT, 13, 4)
-DEFINE_BITFIELD(SHU_DQSOSC_SET0_DQSOSCENCNT, 31, 16)
-
-/* DRAMC_REG_SHURK_DQSOSC */
-DEFINE_BITFIELD(SHURK_DQSOSC_DQSOSC_BASE_RK0, 15, 0)
-DEFINE_BITFIELD(SHURK_DQSOSC_DQSOSC_BASE_RK0_B1, 31, 16)
-
-/* DRAMC_REG_SHU_DQSOSCR */
-DEFINE_BITFIELD(SHU_DQSOSCR_DQSOSCRCNT, 7, 0)
-
-/* DRAMC_REG_SHURK_DQSOSC_THRD */
-DEFINE_BITFIELD(SHURK_DQSOSC_THRD_DQSOSCTHRD_INC, 11, 0)
-DEFINE_BITFIELD(SHURK_DQSOSC_THRD_DQSOSCTHRD_DEC, 27, 16)
-
-/* DRAMC_REG_SHU_FREQ_RATIO_SET0 */
-DEFINE_BITFIELD(SHU_FREQ_RATIO_SET0_TDQSCK_JUMP_RATIO3, 7, 0)
-DEFINE_BITFIELD(SHU_FREQ_RATIO_SET0_TDQSCK_JUMP_RATIO2, 15, 8)
-DEFINE_BITFIELD(SHU_FREQ_RATIO_SET0_TDQSCK_JUMP_RATIO1, 23, 16)
-DEFINE_BITFIELD(SHU_FREQ_RATIO_SET0_TDQSCK_JUMP_RATIO0, 31, 24)
-
-/* DRAMC_REG_SHU_FREQ_RATIO_SET1 */
-DEFINE_BITFIELD(SHU_FREQ_RATIO_SET1_TDQSCK_JUMP_RATIO7, 7, 0)
-DEFINE_BITFIELD(SHU_FREQ_RATIO_SET1_TDQSCK_JUMP_RATIO6, 15, 8)
-DEFINE_BITFIELD(SHU_FREQ_RATIO_SET1_TDQSCK_JUMP_RATIO5, 23, 16)
-DEFINE_BITFIELD(SHU_FREQ_RATIO_SET1_TDQSCK_JUMP_RATIO4, 31, 24)
-
-/* DRAMC_REG_SHU_FREQ_RATIO_SET2 */
-DEFINE_BITFIELD(SHU_FREQ_RATIO_SET2_TDQSCK_JUMP_RATIO9, 23, 16)
-DEFINE_BITFIELD(SHU_FREQ_RATIO_SET2_TDQSCK_JUMP_RATIO8, 31, 24)
-
-/* DDRPHY_REG_SHU_MISC_PRE_TDQSCK */
-DEFINE_BIT(SHU_MISC_PRE_TDQSCK_PRECAL_DISABLE, 0)
-
-/* DDRPHY_REG_MISC_PRE_TDQSCK1 */
-DEFINE_BIT(MISC_PRE_TDQSCK1_TDQSCK_HW_SW_UP_SEL, 22)
-DEFINE_BIT(MISC_PRE_TDQSCK1_TDQSCK_REG_DVFS, 25)
-DEFINE_BIT(MISC_PRE_TDQSCK1_TDQSCK_PRECAL_HW, 26)
-
-/* DRAMC_REG_MISC_STATUSA */
-DEFINE_BIT(MISC_STATUSA_REQQ_EMPTY, 2)
-DEFINE_BITFIELD(MISC_STATUSA_REFRESH_QUEUE_CNT, 27, 24)
-
-/* DRAMC_REG_TEST2_A0 */
-DEFINE_BITFIELD(TEST2_A0_TEST2_PAT1, 7, 0)
-DEFINE_BITFIELD(TEST2_A0_TEST2_PAT0, 15, 8)
-DEFINE_BIT(TEST2_A0_LOOP_NV_END, 16)
-DEFINE_BIT(TEST2_A0_ERR_BREAK_EN, 17)
-DEFINE_BIT(TEST2_A0_TA2_LOOP_EN, 18)
-DEFINE_BITFIELD(TEST2_A0_LOOP_CNT_INDEX, 23, 20)
-
-/* DRAMC_REG_TESTRPT */
-DEFINE_BITFIELD(TESTRPT_TESTSTAT, 22, 20)
-
-/* DRAMC_REG_MRR_STATUS */
-DEFINE_BITFIELD(MRR_STATUS_MRR_SW_REG, 31, 16)
-
-/* DRAMC_REG_SPCMDRESP */
-DEFINE_BIT(SPCMDRESP_MRW_RESPONSE, 0)
-
-/* DRAMC_REG_MISC_STATUSA */
-DEFINE_BITFIELD(MISC_STATUSA_REFRESH_RATE, 12, 8)
-
-/* DDRPHY_REG_SHU_CA_CMD0 */
-DEFINE_BIT(SHU_CA_CMD0_R_LP4Y_WDN_MODE_CLK, 31)
-
-/* DDRPHY_REG_SHU_B0_DQ0 */
-DEFINE_BIT(SHU_B0_DQ0_R_LP4Y_WDN_MODE_DQS0, 31)
-
-/* DDRPHY_REG_SHU_B1_DQ0 */
-DEFINE_BIT(SHU_B1_DQ0_R_LP4Y_WDN_MODE_DQS1, 31)
-
-#endif /* __SOC_MEDIATEK_MT8192_DRAMC_MACRO_DEF_H__ */