Support for different IMX8MQ LPDDR4 configurations

1. Auto-detect DDR boot frequency and backup DRAM PLL cfg
2. Save/restore all necessary DDRC/DDRPHY register to adapt to all
   LPDDR4 configurations

Change-Id: I2d63fe9928e826a7d0072bd378621c38b12a2336
Signed-off-by: Michael Brooks <michaelbrooks@google.com>
diff --git a/plat/freescale/imx8mq/ddr/lpddr4_ddrc_cfg.c b/plat/freescale/imx8mq/ddr/lpddr4_ddrc_cfg.c
index a4d45bf..eb7a06c 100644
--- a/plat/freescale/imx8mq/ddr/lpddr4_ddrc_cfg.c
+++ b/plat/freescale/imx8mq/ddr/lpddr4_ddrc_cfg.c
@@ -14,133 +14,135 @@
 #include <spinlock.h>
 #include <soc.h>
 
-#define WR_POST_EXT_3200
+struct ddrc_cfg_param {
+	uint32_t offset; /*reg offset */
+	uint32_t val; /* config param */
+};
 
-static inline void umctl2_addrmap(void)
-{
+/* lpddr4 phy init config parameters */
+static struct ddrc_cfg_param umctl2_cfg[] = {
+	{ .offset = DDRC_DBG1(0)   , .val = 0x00 },
+	{ .offset = DDRC_PWRCTL(0) , .val = 0x00 },
+	{ .offset = DDRC_MSTR(0)   , .val = 0x00 },
+	{ .offset = DDRC_MSTR2(0)  , .val = 0x00 },
+	{ .offset = DDRC_DERATEEN(0), .val = 0x00 },
+	{ .offset = DDRC_DERATEINT(0), .val = 0x00},
+	{ .offset = DDRC_RFSHTMG(0), .val = 0x00 },
+	{ .offset = DDRC_INIT0(0)  , .val = 0x00 },
+	{ .offset = DDRC_INIT1(0)  , .val = 0x00 },
+	{ .offset = DDRC_INIT3(0)  , .val = 0x00 },
+	{ .offset = DDRC_INIT4(0)  , .val = 0x00 },
+	{ .offset = DDRC_INIT6(0)  , .val = 0x00 },
+	{ .offset = DDRC_INIT7(0)  , .val = 0x00 },
+	{ .offset = DDRC_DRAMTMG0(0), .val = 0x00 },
+	{ .offset = DDRC_DRAMTMG1(0), .val = 0x00 },
+	{ .offset = DDRC_DRAMTMG3(0), .val = 0x00 },
+	{ .offset = DDRC_DRAMTMG4(0), .val = 0x00 },
+	{ .offset = DDRC_DRAMTMG5(0), .val = 0x00 },
+	{ .offset = DDRC_DRAMTMG6(0), .val = 0x00 },
+	{ .offset = DDRC_DRAMTMG7(0), .val = 0x00 },
+	{ .offset = DDRC_DRAMTMG12(0), .val = 0x00 },
+	{ .offset = DDRC_DRAMTMG13(0), .val = 0x00 },
+	{ .offset = DDRC_DRAMTMG14(0), .val = 0x00 },
+	{ .offset = DDRC_DRAMTMG17(0), .val = 0x00 },
+
+	{ .offset = DDRC_ZQCTL0(0), .val = 0x00 },
+	{ .offset = DDRC_ZQCTL1(0), .val = 0x00 },
+	{ .offset = DDRC_ZQCTL2(0), .val = 0x00 },
+
+	{ .offset = DDRC_DFITMG0(0), .val = 0x00 },
+	{ .offset = DDRC_DFITMG1(0), .val = 0x00 },
+	{ .offset = DDRC_DFIUPD0(0), .val = 0x00 },
+	{ .offset = DDRC_DFIUPD1(0), .val = 0x00 },
+	{ .offset = DDRC_DFIUPD2(0), .val = 0x00 },
+	{ .offset = DDRC_DFIMISC(0), .val = 0x00 },
+	{ .offset = DDRC_DFITMG2(0), .val = 0x00 },
+
+	{ .offset = DDRC_DBICTL(0), .val = 0x00 },
+	{ .offset = DDRC_DFIPHYMSTR(0), .val = 0x00 },
+
+	{ .offset = DDRC_RANKCTL(0),  .val = 0x00 },
+	{ .offset = DDRC_DRAMTMG2(0), .val = 0x00 },
+
 	/* Address mapping */
-	/* need be refined for DDR vender */
-	/* Address map is from MSB 29: r15, r14, cs, r13-r0, b2-b0, c9-c0 */
-	mmio_write_32(DDRC_ADDRMAP0(0), 0x00000015);
-	mmio_write_32(DDRC_ADDRMAP3(0), 0x00000000);
-	mmio_write_32(DDRC_ADDRMAP4(0), 0x00001F1F);
-	/* bank interleave */
-	mmio_write_32(DDRC_ADDRMAP1(0), 0x00080808);
-	mmio_write_32(DDRC_ADDRMAP5(0), 0x07070707);
-	mmio_write_32(DDRC_ADDRMAP6(0), 0x08080707);
-}
+	{ .offset = DDRC_ADDRMAP0(0), .val = 0x00 },
+	{ .offset = DDRC_ADDRMAP1(0), .val = 0x00 },
+	{ .offset = DDRC_ADDRMAP2(0), .val = 0x00 },
+	{ .offset = DDRC_ADDRMAP3(0), .val = 0x00 },
+	{ .offset = DDRC_ADDRMAP4(0), .val = 0x00 },
+	{ .offset = DDRC_ADDRMAP5(0), .val = 0x00 },
+	{ .offset = DDRC_ADDRMAP6(0), .val = 0x00 },
 
-static inline void umctl2_perf(void)
-{
-	mmio_write_32(DDRC_ODTCFG(0), 0x0b060908);
-	mmio_write_32(DDRC_ODTMAP(0), 0x00000000);
-	mmio_write_32(DDRC_SCHED(0), 0x29511505);
-	mmio_write_32(DDRC_SCHED1(0), 0x0000002c);
-	mmio_write_32(DDRC_PERFHPR1(0), 0x5900575b);
-	mmio_write_32(DDRC_PERFLPR1(0), 0x00000009);
-	mmio_write_32(DDRC_PERFWR1(0), 0x02005574);
-	mmio_write_32(DDRC_DBG0(0), 0x00000016);
-	mmio_write_32(DDRC_DBG1(0), 0x00000000);
-	mmio_write_32(DDRC_DBGCMD(0), 0x00000000);
-	mmio_write_32(DDRC_SWCTL(0), 0x00000001);
-	mmio_write_32(DDRC_POISONCFG(0), 0x00000011);
-	mmio_write_32(DDRC_PCCFG(0), 0x00000111);
-	mmio_write_32(DDRC_PCFGR_0(0), 0x000010f3);
-	mmio_write_32(DDRC_PCFGW_0(0), 0x000072ff);
-	mmio_write_32(DDRC_PCTRL_0(0), 0x00000001);
-	mmio_write_32(DDRC_PCFGQOS0_0(0), 0x01110d00);
-	mmio_write_32(DDRC_PCFGQOS1_0(0), 0x00620790);
-	mmio_write_32(DDRC_PCFGWQOS0_0(0), 0x00100001);
-	mmio_write_32(DDRC_PCFGWQOS1_0(0), 0x0000041f);
-	mmio_write_32(DDRC_FREQ1_DERATEEN(0), 0x00000202);
-	mmio_write_32(DDRC_FREQ1_DERATEINT(0), 0xec78f4b5);
-	mmio_write_32(DDRC_FREQ1_RFSHCTL0(0), 0x00618040);
-	mmio_write_32(DDRC_FREQ1_RFSHTMG(0), 0x00610090);
-}
+	/* performance tunning */
+	{ .offset = DDRC_ODTCFG(0), .val = 0x00 },
+	{ .offset = DDRC_ODTMAP(0), .val = 0x00 },
+	{ .offset = DDRC_SCHED(0),  .val = 0x00 },
+	{ .offset = DDRC_SCHED1(0), .val = 0x00 },
+	{ .offset = DDRC_PERFHPR1(0), .val = 0x00 },
+	{ .offset = DDRC_PERFLPR1(0), .val = 0x00 },
+	{ .offset = DDRC_PERFWR1(0),  .val = 0x00 },
+	{ .offset = DDRC_DBG0(0),   .val = 0x00 },
+	{ .offset = DDRC_DBG1(0),   .val = 0x00 },
+	{ .offset = DDRC_DBGCMD(0), .val = 0x00 },
+	{ .offset = DDRC_SWCTL(0),  .val = 0x00 },
+	{ .offset = DDRC_POISONCFG(0), .val = 0x00 },
+	{ .offset = DDRC_PCCFG(0), .val = 0x00 },
+	{ .offset = DDRC_PCFGR_0(0), .val = 0x00 },
+	{ .offset = DDRC_PCFGW_0(0), .val = 0x00 },
+	{ .offset = DDRC_PCTRL_0(0), .val = 0x00 },
+	{ .offset = DDRC_PCFGQOS0_0(0),  .val = 0x00 },
+	{ .offset = DDRC_PCFGQOS1_0(0),  .val = 0x00 },
+	{ .offset = DDRC_PCFGWQOS0_0(0), .val = 0x00 },
+	{ .offset = DDRC_PCFGWQOS1_0(0), .val = 0x00 },
 
-static inline void umctl2_freq1(void)
+	/* frequency point 1 */
+	{ .offset = DDRC_FREQ1_DERATEEN(0),  .val = 0x00 },
+	{ .offset = DDRC_FREQ1_DERATEINT(0), .val = 0x00 },
+	{ .offset = DDRC_FREQ1_RFSHCTL0(0),  .val = 0x00 },
+	{ .offset = DDRC_FREQ1_RFSHTMG(0), .val = 0x00 },
+	{ .offset = DDRC_FREQ1_INIT3(0),   .val = 0x00 },
+	{ .offset = DDRC_FREQ1_INIT4(0),   .val = 0x00 },
+	{ .offset = DDRC_FREQ1_INIT6(0),   .val = 0x00 },
+	{ .offset = DDRC_FREQ1_INIT7(0),   .val = 0x00 },
+	{ .offset = DDRC_FREQ1_DRAMTMG0(0),  .val = 0x00 },
+	{ .offset = DDRC_FREQ1_DRAMTMG1(0),  .val = 0x00 },
+	{ .offset = DDRC_FREQ1_DRAMTMG2(0),  .val = 0x00 },
+	{ .offset = DDRC_FREQ1_DRAMTMG3(0),  .val = 0x00 },
+	{ .offset = DDRC_FREQ1_DRAMTMG4(0),  .val = 0x00 },
+	{ .offset = DDRC_FREQ1_DRAMTMG5(0),  .val = 0x00 },
+	{ .offset = DDRC_FREQ1_DRAMTMG6(0),  .val = 0x00 },
+	{ .offset = DDRC_FREQ1_DRAMTMG7(0),  .val = 0x00 },
+	{ .offset = DDRC_FREQ1_DRAMTMG12(0), .val = 0x00 },
+	{ .offset = DDRC_FREQ1_DRAMTMG13(0), .val = 0x00 },
+	{ .offset = DDRC_FREQ1_DRAMTMG14(0), .val = 0x00 },
+	{ .offset = DDRC_FREQ1_DRAMTMG17(0), .val = 0x00 },
+	{ .offset = DDRC_FREQ1_ZQCTL0(0),  .val = 0x00 },
+	{ .offset = DDRC_FREQ1_DFITMG0(0), .val = 0x00 },
+	{ .offset = DDRC_FREQ1_DFITMG1(0), .val = 0x00 },
+	{ .offset = DDRC_FREQ1_DFITMG2(0), .val = 0x00 }	
+};
+	
+void lpddr4_save_umctl2(void)
 {
-	mmio_write_32(DDRC_FREQ1_DERATEEN(0), 0x0000000);
-	mmio_write_32(DDRC_FREQ1_DERATEINT(0), 0x0800000);
-	mmio_write_32(DDRC_FREQ1_RFSHCTL0(0), 0x0210000);
-	mmio_write_32(DDRC_FREQ1_RFSHTMG(0), 0x014001E);
-	mmio_write_32(DDRC_FREQ1_INIT3(0), 0x0140009);
-	mmio_write_32(DDRC_FREQ1_INIT4(0), 0x00310008);
-	mmio_write_32(DDRC_FREQ1_INIT6(0), 0x0066004a);
-	mmio_write_32(DDRC_FREQ1_INIT7(0), 0x0006004a);
-	mmio_write_32(DDRC_FREQ1_DRAMTMG0(0), 0xB070A07);
-	mmio_write_32(DDRC_FREQ1_DRAMTMG1(0), 0x003040A);
-	mmio_write_32(DDRC_FREQ1_DRAMTMG2(0), 0x305080C);
-	mmio_write_32(DDRC_FREQ1_DRAMTMG3(0), 0x0505000);
-	mmio_write_32(DDRC_FREQ1_DRAMTMG4(0), 0x3040203);
-	mmio_write_32(DDRC_FREQ1_DRAMTMG5(0), 0x2030303);
-	mmio_write_32(DDRC_FREQ1_DRAMTMG6(0), 0x2020004);
-	mmio_write_32(DDRC_FREQ1_DRAMTMG7(0), 0x0000302);
-	mmio_write_32(DDRC_FREQ1_DRAMTMG12(0), 0x0020310);
-	mmio_write_32(DDRC_FREQ1_DRAMTMG13(0), 0xA100002);
-	mmio_write_32(DDRC_FREQ1_DRAMTMG14(0), 0x0000020);
-	mmio_write_32(DDRC_FREQ1_DRAMTMG17(0), 0x0220011);
-	mmio_write_32(DDRC_FREQ1_ZQCTL0(0), 0x0A70005);
-	mmio_write_32(DDRC_FREQ1_DFITMG0(0), 0x3858202);
-	mmio_write_32(DDRC_FREQ1_DFITMG1(0), 0x0000404);
-	mmio_write_32(DDRC_FREQ1_DFITMG2(0), 0x0000502);
+	int index, offset, size;
+
+	size = sizeof(umctl2_cfg) / 8;
+
+	for (index = 0; index < size; index++) {
+		offset = umctl2_cfg[index].offset;
+		umctl2_cfg[index].val = mmio_read_32(offset);
+	}
 }
 
 void lpddr4_cfg_umctl2(void)
 {
-	/* Start to config, default 3200mbps */
-	mmio_write_32(DDRC_DBG1(0), 0x00000001);
-	mmio_write_32(DDRC_PWRCTL(0), 0x00000001);
-	mmio_write_32(DDRC_MSTR(0), 0xa3080020);
-	mmio_write_32(DDRC_MSTR2(0), 0x00000000);
-	mmio_write_32(DDRC_RFSHTMG(0), 0x006100E0);
-	mmio_write_32(DDRC_INIT0(0), 0xC003061B);
-	mmio_write_32(DDRC_INIT1(0), 0x009D0000);
-	mmio_write_32(DDRC_INIT3(0), 0x00D4002D);
-#ifdef WR_POST_EXT_3200  /* recommened to define */
-	mmio_write_32(DDRC_INIT4(0), 0x00330008);
-#else
-	mmio_write_32(DDRC_INIT4(0), 0x00310008);
-#endif
-	mmio_write_32(DDRC_INIT6(0), 0x0066004a);
-	mmio_write_32(DDRC_INIT7(0), 0x0006004a);
+	int index, offset, size, val;
 
-	mmio_write_32(DDRC_DRAMTMG0(0), 0x1A201B22);
-	mmio_write_32(DDRC_DRAMTMG1(0), 0x00060633);
-	mmio_write_32(DDRC_DRAMTMG3(0), 0x00C0C000);
-	mmio_write_32(DDRC_DRAMTMG4(0), 0x0F04080F);
-	mmio_write_32(DDRC_DRAMTMG5(0), 0x02040C0C);
-	mmio_write_32(DDRC_DRAMTMG6(0), 0x01010007);
-	mmio_write_32(DDRC_DRAMTMG7(0), 0x00000401);
-	mmio_write_32(DDRC_DRAMTMG12(0), 0x00020600);
-	mmio_write_32(DDRC_DRAMTMG13(0), 0x0C100002);
-	mmio_write_32(DDRC_DRAMTMG14(0), 0x000000E6);
-	mmio_write_32(DDRC_DRAMTMG17(0), 0x00A00050);
+	size = sizeof(umctl2_cfg) / 8;
 
-	mmio_write_32(DDRC_ZQCTL0(0), 0x03200018);
-	mmio_write_32(DDRC_ZQCTL1(0), 0x028061A8);
-	mmio_write_32(DDRC_ZQCTL2(0), 0x00000000);
-
-	mmio_write_32(DDRC_DFITMG0(0), 0x0497820A);
-	mmio_write_32(DDRC_DFITMG1(0), 0x00080303);
-	mmio_write_32(DDRC_DFIUPD0(0), 0xE0400018);
-	mmio_write_32(DDRC_DFIUPD1(0), 0x00DF00E4);
-	mmio_write_32(DDRC_DFIUPD2(0), 0x80000000);
-	mmio_write_32(DDRC_DFIMISC(0), 0x00000011);
-	mmio_write_32(DDRC_DFITMG2(0), 0x0000170A);
-
-	mmio_write_32(DDRC_DBICTL(0), 0x00000001);
-	mmio_write_32(DDRC_DFIPHYMSTR(0), 0x00000001);
-
-	mmio_write_32(DDRC_RANKCTL(0), 0x00000c99);
-	mmio_write_32(DDRC_DRAMTMG2(0), 0x070E171a);
-
-	/* address mapping */
-	umctl2_addrmap();
-
-	/* performance setting */
-	umctl2_perf();
-
-	/* freq set point 1 setting */
-	umctl2_freq1();
+	for (index = 0; index < size; index++) {
+		offset = umctl2_cfg[index].offset;
+		val = umctl2_cfg[index].val;
+		mmio_write_32(offset,val);
+	}
 }
diff --git a/plat/freescale/imx8mq/ddr/lpddr4_dvfs.c b/plat/freescale/imx8mq/ddr/lpddr4_dvfs.c
index 4cb525b..5346642 100644
--- a/plat/freescale/imx8mq/ddr/lpddr4_dvfs.c
+++ b/plat/freescale/imx8mq/ddr/lpddr4_dvfs.c
@@ -16,6 +16,7 @@
 
 #include "lpddr4_dvfs.h"
 
+#define HW_DRAM_PLL_CFG2_ADDR     (0x30360000 + 0x68)
 #define DDRC_LPDDR4	(1 << 5)
 #define DDR_TYPE_MASK	0x3f
 
@@ -27,6 +28,12 @@
 static volatile bool wait_ddrc_hwffc_done = true;
 
 static unsigned int init_fsp = 0x1;
+unsigned int default_ddr_pllcfg = 0;
+
+static inline int get_init_fsp(void)
+{
+	return (mmio_read_32(DDRC_DFIMISC(0))>>8)&0xf;
+}
 
 static inline int get_ddr_type(void)
 {
@@ -35,6 +42,15 @@
 
 void lpddr4_switch_to_3200(void)
 {
+	init_fsp = get_init_fsp();
+	if(init_fsp == 0)
+	{
+		default_ddr_pllcfg = mmio_read_32(HW_DRAM_PLL_CFG2_ADDR);
+		return;
+	}
+	
+	default_ddr_pllcfg = 0;
+	
 	if (get_ddr_type() == DDRC_LPDDR4)
 		lpddr4_dvfs_swffc(init_fsp, 0x0);
 }
@@ -98,6 +114,7 @@
 		init_fsp = (~init_fsp) & 0x1;
 #else
 		lpddr4_dvfs_swffc(init_fsp, target_freq);
+		init_fsp = (~init_fsp) & 0x1;
 #endif
 		wait_ddrc_hwffc_done = false;
 		wfe_done = 0;
diff --git a/plat/freescale/imx8mq/ddr/lpddr4_phy_cfg.c b/plat/freescale/imx8mq/ddr/lpddr4_phy_cfg.c
index d6c57e0..ddba7f2 100644
--- a/plat/freescale/imx8mq/ddr/lpddr4_phy_cfg.c
+++ b/plat/freescale/imx8mq/ddr/lpddr4_phy_cfg.c
@@ -20,7 +20,7 @@
 };
 
 /* lpddr4 phy init config parameters */
-static const struct ddrphy_cfg_param phy_init_cfg[] = {
+static struct ddrphy_cfg_param phy_cfg[] = {
 	{ .offset = 0x20110, .val = 0x02 }, /* MapCAB0toDFI */
 	{ .offset = 0x20111, .val = 0x03 }, /* MapCAB1toDFI */
 	{ .offset = 0x20112, .val = 0x04 }, /* MapCAB2toDFI */
@@ -69,6 +69,7 @@
 	{ .offset = 0x200c5, .val = 0x19 }, // DWC_DDRPHYA_MASTER0_PllCtrl2_p0
 	{ .offset = 0x1200c5, .val = 0x7 }, // DWC_DDRPHYA_MASTER0_PllCtrl2_p1
 	{ .offset = 0x2200c5, .val = 0x7 }, // DWC_DDRPHYA_MASTER0_PllCtrl2_p2
+	{ .offset = 0x200cb, .val = 0x0 }, // DWC_DDRPHYA_MASTER0_PllCtrl3
 	{ .offset = 0x2002e, .val = 0x2 }, // DWC_DDRPHYA_MASTER0_ARdPtrInitVal_p0
 	{ .offset = 0x12002e, .val = 0x1 }, // DWC_DDRPHYA_MASTER0_ARdPtrInitVal_p1
 	{ .offset = 0x22002e, .val = 0x2 }, // DWC_DDRPHYA_MASTER0_ARdPtrInitVal_p2
@@ -202,729 +203,738 @@
 	{ .offset = 0x2002d, .val = 0x0 }, // DWC_DDRPHYA_MASTER0_DMIPinPresent_p0
 	{ .offset = 0x12002d, .val = 0x0 }, // DWC_DDRPHYA_MASTER0_DMIPinPresent_p1
 	{ .offset = 0x22002d, .val = 0x0 }, // DWC_DDRPHYA_MASTER0_DMIPinPresent_p2
-};
 
-/* lpddr4 phy trained CSR registers */
-static struct ddrphy_cfg_param phy_trained_csr[] = {
-        { .offset = 0x200b2,  .val = 0 },
-        { .offset = 0x1200b2,  .val = 0 },
-        { .offset = 0x2200b2,  .val = 0 },
-        { .offset = 0x200cb,  .val = 0 },
-        { .offset = 0x10043,  .val = 0 },
-        { .offset = 0x110043,  .val = 0 },
-        { .offset = 0x210043,  .val = 0 },
-        { .offset = 0x10143,  .val = 0 },
-        { .offset = 0x110143,  .val = 0 },
-        { .offset = 0x210143,  .val = 0 },
-        { .offset = 0x11043,  .val = 0 },
-        { .offset = 0x111043,  .val = 0 },
-        { .offset = 0x211043,  .val = 0 },
-        { .offset = 0x11143,  .val = 0 },
-        { .offset = 0x111143,  .val = 0 },
-        { .offset = 0x211143,  .val = 0 },
-        { .offset = 0x12043,  .val = 0 },
-        { .offset = 0x112043,  .val = 0 },
-        { .offset = 0x212043,  .val = 0 },
-        { .offset = 0x12143,  .val = 0 },
-        { .offset = 0x112143,  .val = 0 },
-        { .offset = 0x212143,  .val = 0 },
-        { .offset = 0x13043,  .val = 0 },
-        { .offset = 0x113043,  .val = 0 },
-        { .offset = 0x213043,  .val = 0 },
-        { .offset = 0x13143,  .val = 0 },
-        { .offset = 0x113143,  .val = 0 },
-        { .offset = 0x213143,  .val = 0 },
-        { .offset = 0x80,  .val = 0 },
-        { .offset = 0x100080,  .val = 0 },
-        { .offset = 0x200080,  .val = 0 },
-        { .offset = 0x1080,  .val = 0 },
-        { .offset = 0x101080,  .val = 0 },
-        { .offset = 0x201080,  .val = 0 },
-        { .offset = 0x2080,  .val = 0 },
-        { .offset = 0x102080,  .val = 0 },
-        { .offset = 0x202080,  .val = 0 },
-        { .offset = 0x3080,  .val = 0 },
-        { .offset = 0x103080,  .val = 0 },
-        { .offset = 0x203080,  .val = 0 },
-        { .offset = 0x4080,  .val = 0 },
-        { .offset = 0x104080,  .val = 0 },
-        { .offset = 0x204080,  .val = 0 },
-        { .offset = 0x5080,  .val = 0 },
-        { .offset = 0x105080,  .val = 0 },
-        { .offset = 0x205080,  .val = 0 },
-        { .offset = 0x6080,  .val = 0 },
-        { .offset = 0x106080,  .val = 0 },
-        { .offset = 0x206080,  .val = 0 },
-        { .offset = 0x7080,  .val = 0 },
-        { .offset = 0x107080,  .val = 0 },
-        { .offset = 0x207080,  .val = 0 },
-        { .offset = 0x8080,  .val = 0 },
-        { .offset = 0x108080,  .val = 0 },
-        { .offset = 0x208080,  .val = 0 },
-        { .offset = 0x9080,  .val = 0 },
-        { .offset = 0x109080,  .val = 0 },
-        { .offset = 0x209080,  .val = 0 },
-        { .offset = 0x10080,  .val = 0 },
-        { .offset = 0x110080,  .val = 0 },
-        { .offset = 0x210080,  .val = 0 },
-        { .offset = 0x10180,  .val = 0 },
-        { .offset = 0x110180,  .val = 0 },
-        { .offset = 0x210180,  .val = 0 },
-        { .offset = 0x11080,  .val = 0 },
-        { .offset = 0x111080,  .val = 0 },
-        { .offset = 0x211080,  .val = 0 },
-        { .offset = 0x11180,  .val = 0 },
-        { .offset = 0x111180,  .val = 0 },
-        { .offset = 0x211180,  .val = 0 },
-        { .offset = 0x12080,  .val = 0 },
-        { .offset = 0x112080,  .val = 0 },
-        { .offset = 0x212080,  .val = 0 },
-        { .offset = 0x12180,  .val = 0 },
-        { .offset = 0x112180,  .val = 0 },
-        { .offset = 0x212180,  .val = 0 },
-        { .offset = 0x13080,  .val = 0 },
-        { .offset = 0x113080,  .val = 0 },
-        { .offset = 0x213080,  .val = 0 },
-        { .offset = 0x13180,  .val = 0 },
-        { .offset = 0x113180,  .val = 0 },
-        { .offset = 0x213180,  .val = 0 },
-        { .offset = 0x10081,  .val = 0 },
-        { .offset = 0x110081,  .val = 0 },
-        { .offset = 0x210081,  .val = 0 },
-        { .offset = 0x10181,  .val = 0 },
-        { .offset = 0x110181,  .val = 0 },
-        { .offset = 0x210181,  .val = 0 },
-        { .offset = 0x11081,  .val = 0 },
-        { .offset = 0x111081,  .val = 0 },
-        { .offset = 0x211081,  .val = 0 },
-        { .offset = 0x11181,  .val = 0 },
-        { .offset = 0x111181,  .val = 0 },
-        { .offset = 0x211181,  .val = 0 },
-        { .offset = 0x12081,  .val = 0 },
-        { .offset = 0x112081,  .val = 0 },
-        { .offset = 0x212081,  .val = 0 },
-        { .offset = 0x12181,  .val = 0 },
-        { .offset = 0x112181,  .val = 0 },
-        { .offset = 0x212181,  .val = 0 },
-        { .offset = 0x13081,  .val = 0 },
-        { .offset = 0x113081,  .val = 0 },
-        { .offset = 0x213081,  .val = 0 },
-        { .offset = 0x13181,  .val = 0 },
-        { .offset = 0x113181,  .val = 0 },
-        { .offset = 0x213181,  .val = 0 },
-        { .offset = 0x100d0,  .val = 0 },
-        { .offset = 0x1100d0,  .val = 0 },
-        { .offset = 0x2100d0,  .val = 0 },
-        { .offset = 0x101d0,  .val = 0 },
-        { .offset = 0x1101d0,  .val = 0 },
-        { .offset = 0x2101d0,  .val = 0 },
-        { .offset = 0x110d0,  .val = 0 },
-        { .offset = 0x1110d0,  .val = 0 },
-        { .offset = 0x2110d0,  .val = 0 },
-        { .offset = 0x111d0,  .val = 0 },
-        { .offset = 0x1111d0,  .val = 0 },
-        { .offset = 0x2111d0,  .val = 0 },
-        { .offset = 0x120d0,  .val = 0 },
-        { .offset = 0x1120d0,  .val = 0 },
-        { .offset = 0x2120d0,  .val = 0 },
-        { .offset = 0x121d0,  .val = 0 },
-        { .offset = 0x1121d0,  .val = 0 },
-        { .offset = 0x2121d0,  .val = 0 },
-        { .offset = 0x130d0,  .val = 0 },
-        { .offset = 0x1130d0,  .val = 0 },
-        { .offset = 0x2130d0,  .val = 0 },
-        { .offset = 0x131d0,  .val = 0 },
-        { .offset = 0x1131d0,  .val = 0 },
-        { .offset = 0x2131d0,  .val = 0 },
-        { .offset = 0x100d1,  .val = 0 },
-        { .offset = 0x1100d1,  .val = 0 },
-        { .offset = 0x2100d1,  .val = 0 },
-        { .offset = 0x101d1,  .val = 0 },
-        { .offset = 0x1101d1,  .val = 0 },
-        { .offset = 0x2101d1,  .val = 0 },
-        { .offset = 0x110d1,  .val = 0 },
-        { .offset = 0x1110d1,  .val = 0 },
-        { .offset = 0x2110d1,  .val = 0 },
-        { .offset = 0x111d1,  .val = 0 },
-        { .offset = 0x1111d1,  .val = 0 },
-        { .offset = 0x2111d1,  .val = 0 },
-        { .offset = 0x120d1,  .val = 0 },
-        { .offset = 0x1120d1,  .val = 0 },
-        { .offset = 0x2120d1,  .val = 0 },
-        { .offset = 0x121d1,  .val = 0 },
-        { .offset = 0x1121d1,  .val = 0 },
-        { .offset = 0x2121d1,  .val = 0 },
-        { .offset = 0x130d1,  .val = 0 },
-        { .offset = 0x1130d1,  .val = 0 },
-        { .offset = 0x2130d1,  .val = 0 },
-        { .offset = 0x131d1,  .val = 0 },
-        { .offset = 0x1131d1,  .val = 0 },
-        { .offset = 0x2131d1,  .val = 0 },
-        { .offset = 0x10068,  .val = 0 },
-        { .offset = 0x10168,  .val = 0 },
-        { .offset = 0x10268,  .val = 0 },
-        { .offset = 0x10368,  .val = 0 },
-        { .offset = 0x10468,  .val = 0 },
-        { .offset = 0x10568,  .val = 0 },
-        { .offset = 0x10668,  .val = 0 },
-        { .offset = 0x10768,  .val = 0 },
-        { .offset = 0x10868,  .val = 0 },
-        { .offset = 0x11068,  .val = 0 },
-        { .offset = 0x11168,  .val = 0 },
-        { .offset = 0x11268,  .val = 0 },
-        { .offset = 0x11368,  .val = 0 },
-        { .offset = 0x11468,  .val = 0 },
-        { .offset = 0x11568,  .val = 0 },
-        { .offset = 0x11668,  .val = 0 },
-        { .offset = 0x11768,  .val = 0 },
-        { .offset = 0x11868,  .val = 0 },
-        { .offset = 0x12068,  .val = 0 },
-        { .offset = 0x12168,  .val = 0 },
-        { .offset = 0x12268,  .val = 0 },
-        { .offset = 0x12368,  .val = 0 },
-        { .offset = 0x12468,  .val = 0 },
-        { .offset = 0x12568,  .val = 0 },
-        { .offset = 0x12668,  .val = 0 },
-        { .offset = 0x12768,  .val = 0 },
-        { .offset = 0x12868,  .val = 0 },
-        { .offset = 0x13068,  .val = 0 },
-        { .offset = 0x13168,  .val = 0 },
-        { .offset = 0x13268,  .val = 0 },
-        { .offset = 0x13368,  .val = 0 },
-        { .offset = 0x13468,  .val = 0 },
-        { .offset = 0x13568,  .val = 0 },
-        { .offset = 0x13668,  .val = 0 },
-        { .offset = 0x13768,  .val = 0 },
-        { .offset = 0x13868,  .val = 0 },
-        { .offset = 0x10069,  .val = 0 },
-        { .offset = 0x10169,  .val = 0 },
-        { .offset = 0x10269,  .val = 0 },
-        { .offset = 0x10369,  .val = 0 },
-        { .offset = 0x10469,  .val = 0 },
-        { .offset = 0x10569,  .val = 0 },
-        { .offset = 0x10669,  .val = 0 },
-        { .offset = 0x10769,  .val = 0 },
-        { .offset = 0x10869,  .val = 0 },
-        { .offset = 0x11069,  .val = 0 },
-        { .offset = 0x11169,  .val = 0 },
-        { .offset = 0x11269,  .val = 0 },
-        { .offset = 0x11369,  .val = 0 },
-        { .offset = 0x11469,  .val = 0 },
-        { .offset = 0x11569,  .val = 0 },
-        { .offset = 0x11669,  .val = 0 },
-        { .offset = 0x11769,  .val = 0 },
-        { .offset = 0x11869,  .val = 0 },
-        { .offset = 0x12069,  .val = 0 },
-        { .offset = 0x12169,  .val = 0 },
-        { .offset = 0x12269,  .val = 0 },
-        { .offset = 0x12369,  .val = 0 },
-        { .offset = 0x12469,  .val = 0 },
-        { .offset = 0x12569,  .val = 0 },
-        { .offset = 0x12669,  .val = 0 },
-        { .offset = 0x12769,  .val = 0 },
-        { .offset = 0x12869,  .val = 0 },
-        { .offset = 0x13069,  .val = 0 },
-        { .offset = 0x13169,  .val = 0 },
-        { .offset = 0x13269,  .val = 0 },
-        { .offset = 0x13369,  .val = 0 },
-        { .offset = 0x13469,  .val = 0 },
-        { .offset = 0x13569,  .val = 0 },
-        { .offset = 0x13669,  .val = 0 },
-        { .offset = 0x13769,  .val = 0 },
-        { .offset = 0x13869,  .val = 0 },
-        { .offset = 0x1008c,  .val = 0 },
-        { .offset = 0x11008c,  .val = 0 },
-        { .offset = 0x21008c,  .val = 0 },
-        { .offset = 0x1018c,  .val = 0 },
-        { .offset = 0x11018c,  .val = 0 },
-        { .offset = 0x21018c,  .val = 0 },
-        { .offset = 0x1108c,  .val = 0 },
-        { .offset = 0x11108c,  .val = 0 },
-        { .offset = 0x21108c,  .val = 0 },
-        { .offset = 0x1118c,  .val = 0 },
-        { .offset = 0x11118c,  .val = 0 },
-        { .offset = 0x21118c,  .val = 0 },
-        { .offset = 0x1208c,  .val = 0 },
-        { .offset = 0x11208c,  .val = 0 },
-        { .offset = 0x21208c,  .val = 0 },
-        { .offset = 0x1218c,  .val = 0 },
-        { .offset = 0x11218c,  .val = 0 },
-        { .offset = 0x21218c,  .val = 0 },
-        { .offset = 0x1308c,  .val = 0 },
-        { .offset = 0x11308c,  .val = 0 },
-        { .offset = 0x21308c,  .val = 0 },
-        { .offset = 0x1318c,  .val = 0 },
-        { .offset = 0x11318c,  .val = 0 },
-        { .offset = 0x21318c,  .val = 0 },
-        { .offset = 0x1008d,  .val = 0 },
-        { .offset = 0x11008d,  .val = 0 },
-        { .offset = 0x21008d,  .val = 0 },
-        { .offset = 0x1018d,  .val = 0 },
-        { .offset = 0x11018d,  .val = 0 },
-        { .offset = 0x21018d,  .val = 0 },
-        { .offset = 0x1108d,  .val = 0 },
-        { .offset = 0x11108d,  .val = 0 },
-        { .offset = 0x21108d,  .val = 0 },
-        { .offset = 0x1118d,  .val = 0 },
-        { .offset = 0x11118d,  .val = 0 },
-        { .offset = 0x21118d,  .val = 0 },
-        { .offset = 0x1208d,  .val = 0 },
-        { .offset = 0x11208d,  .val = 0 },
-        { .offset = 0x21208d,  .val = 0 },
-        { .offset = 0x1218d,  .val = 0 },
-        { .offset = 0x11218d,  .val = 0 },
-        { .offset = 0x21218d,  .val = 0 },
-        { .offset = 0x1308d,  .val = 0 },
-        { .offset = 0x11308d,  .val = 0 },
-        { .offset = 0x21308d,  .val = 0 },
-        { .offset = 0x1318d,  .val = 0 },
-        { .offset = 0x11318d,  .val = 0 },
-        { .offset = 0x21318d,  .val = 0 },
-        { .offset = 0x100c0,  .val = 0 },
-        { .offset = 0x1100c0,  .val = 0 },
-        { .offset = 0x2100c0,  .val = 0 },
-        { .offset = 0x101c0,  .val = 0 },
-        { .offset = 0x1101c0,  .val = 0 },
-        { .offset = 0x2101c0,  .val = 0 },
-        { .offset = 0x102c0,  .val = 0 },
-        { .offset = 0x1102c0,  .val = 0 },
-        { .offset = 0x2102c0,  .val = 0 },
-        { .offset = 0x103c0,  .val = 0 },
-        { .offset = 0x1103c0,  .val = 0 },
-        { .offset = 0x2103c0,  .val = 0 },
-        { .offset = 0x104c0,  .val = 0 },
-        { .offset = 0x1104c0,  .val = 0 },
-        { .offset = 0x2104c0,  .val = 0 },
-        { .offset = 0x105c0,  .val = 0 },
-        { .offset = 0x1105c0,  .val = 0 },
-        { .offset = 0x2105c0,  .val = 0 },
-        { .offset = 0x106c0,  .val = 0 },
-        { .offset = 0x1106c0,  .val = 0 },
-        { .offset = 0x2106c0,  .val = 0 },
-        { .offset = 0x107c0,  .val = 0 },
-        { .offset = 0x1107c0,  .val = 0 },
-        { .offset = 0x2107c0,  .val = 0 },
-        { .offset = 0x108c0,  .val = 0 },
-        { .offset = 0x1108c0,  .val = 0 },
-        { .offset = 0x2108c0,  .val = 0 },
-        { .offset = 0x110c0,  .val = 0 },
-        { .offset = 0x1110c0,  .val = 0 },
-        { .offset = 0x2110c0,  .val = 0 },
-        { .offset = 0x111c0,  .val = 0 },
-        { .offset = 0x1111c0,  .val = 0 },
-        { .offset = 0x2111c0,  .val = 0 },
-        { .offset = 0x112c0,  .val = 0 },
-        { .offset = 0x1112c0,  .val = 0 },
-        { .offset = 0x2112c0,  .val = 0 },
-        { .offset = 0x113c0,  .val = 0 },
-        { .offset = 0x1113c0,  .val = 0 },
-        { .offset = 0x2113c0,  .val = 0 },
-        { .offset = 0x114c0,  .val = 0 },
-        { .offset = 0x1114c0,  .val = 0 },
-        { .offset = 0x2114c0,  .val = 0 },
-        { .offset = 0x115c0,  .val = 0 },
-        { .offset = 0x1115c0,  .val = 0 },
-        { .offset = 0x2115c0,  .val = 0 },
-        { .offset = 0x116c0,  .val = 0 },
-        { .offset = 0x1116c0,  .val = 0 },
-        { .offset = 0x2116c0,  .val = 0 },
-        { .offset = 0x117c0,  .val = 0 },
-        { .offset = 0x1117c0,  .val = 0 },
-        { .offset = 0x2117c0,  .val = 0 },
-        { .offset = 0x118c0,  .val = 0 },
-        { .offset = 0x1118c0,  .val = 0 },
-        { .offset = 0x2118c0,  .val = 0 },
-        { .offset = 0x120c0,  .val = 0 },
-        { .offset = 0x1120c0,  .val = 0 },
-        { .offset = 0x2120c0,  .val = 0 },
-        { .offset = 0x121c0,  .val = 0 },
-        { .offset = 0x1121c0,  .val = 0 },
-        { .offset = 0x2121c0,  .val = 0 },
-        { .offset = 0x122c0,  .val = 0 },
-        { .offset = 0x1122c0,  .val = 0 },
-        { .offset = 0x2122c0,  .val = 0 },
-        { .offset = 0x123c0,  .val = 0 },
-        { .offset = 0x1123c0,  .val = 0 },
-        { .offset = 0x2123c0,  .val = 0 },
-        { .offset = 0x124c0,  .val = 0 },
-        { .offset = 0x1124c0,  .val = 0 },
-        { .offset = 0x2124c0,  .val = 0 },
-        { .offset = 0x125c0,  .val = 0 },
-        { .offset = 0x1125c0,  .val = 0 },
-        { .offset = 0x2125c0,  .val = 0 },
-        { .offset = 0x126c0,  .val = 0 },
-        { .offset = 0x1126c0,  .val = 0 },
-        { .offset = 0x2126c0,  .val = 0 },
-        { .offset = 0x127c0,  .val = 0 },
-        { .offset = 0x1127c0,  .val = 0 },
-        { .offset = 0x2127c0,  .val = 0 },
-        { .offset = 0x128c0,  .val = 0 },
-        { .offset = 0x1128c0,  .val = 0 },
-        { .offset = 0x2128c0,  .val = 0 },
-        { .offset = 0x130c0,  .val = 0 },
-        { .offset = 0x1130c0,  .val = 0 },
-        { .offset = 0x2130c0,  .val = 0 },
-        { .offset = 0x131c0,  .val = 0 },
-        { .offset = 0x1131c0,  .val = 0 },
-        { .offset = 0x2131c0,  .val = 0 },
-        { .offset = 0x132c0,  .val = 0 },
-        { .offset = 0x1132c0,  .val = 0 },
-        { .offset = 0x2132c0,  .val = 0 },
-        { .offset = 0x133c0,  .val = 0 },
-        { .offset = 0x1133c0,  .val = 0 },
-        { .offset = 0x2133c0,  .val = 0 },
-        { .offset = 0x134c0,  .val = 0 },
-        { .offset = 0x1134c0,  .val = 0 },
-        { .offset = 0x2134c0,  .val = 0 },
-        { .offset = 0x135c0,  .val = 0 },
-        { .offset = 0x1135c0,  .val = 0 },
-        { .offset = 0x2135c0,  .val = 0 },
-        { .offset = 0x136c0,  .val = 0 },
-        { .offset = 0x1136c0,  .val = 0 },
-        { .offset = 0x2136c0,  .val = 0 },
-        { .offset = 0x137c0,  .val = 0 },
-        { .offset = 0x1137c0,  .val = 0 },
-        { .offset = 0x2137c0,  .val = 0 },
-        { .offset = 0x138c0,  .val = 0 },
-        { .offset = 0x1138c0,  .val = 0 },
-        { .offset = 0x2138c0,  .val = 0 },
-        { .offset = 0x100c1,  .val = 0 },
-        { .offset = 0x1100c1,  .val = 0 },
-        { .offset = 0x2100c1,  .val = 0 },
-        { .offset = 0x101c1,  .val = 0 },
-        { .offset = 0x1101c1,  .val = 0 },
-        { .offset = 0x2101c1,  .val = 0 },
-        { .offset = 0x102c1,  .val = 0 },
-        { .offset = 0x1102c1,  .val = 0 },
-        { .offset = 0x2102c1,  .val = 0 },
-        { .offset = 0x103c1,  .val = 0 },
-        { .offset = 0x1103c1,  .val = 0 },
-        { .offset = 0x2103c1,  .val = 0 },
-        { .offset = 0x104c1,  .val = 0 },
-        { .offset = 0x1104c1,  .val = 0 },
-        { .offset = 0x2104c1,  .val = 0 },
-        { .offset = 0x105c1,  .val = 0 },
-        { .offset = 0x1105c1,  .val = 0 },
-        { .offset = 0x2105c1,  .val = 0 },
-        { .offset = 0x106c1,  .val = 0 },
-        { .offset = 0x1106c1,  .val = 0 },
-        { .offset = 0x2106c1,  .val = 0 },
-        { .offset = 0x107c1,  .val = 0 },
-        { .offset = 0x1107c1,  .val = 0 },
-        { .offset = 0x2107c1,  .val = 0 },
-        { .offset = 0x108c1,  .val = 0 },
-        { .offset = 0x1108c1,  .val = 0 },
-        { .offset = 0x2108c1,  .val = 0 },
-        { .offset = 0x110c1,  .val = 0 },
-        { .offset = 0x1110c1,  .val = 0 },
-        { .offset = 0x2110c1,  .val = 0 },
-        { .offset = 0x111c1,  .val = 0 },
-        { .offset = 0x1111c1,  .val = 0 },
-        { .offset = 0x2111c1,  .val = 0 },
-        { .offset = 0x112c1,  .val = 0 },
-        { .offset = 0x1112c1,  .val = 0 },
-        { .offset = 0x2112c1,  .val = 0 },
-        { .offset = 0x113c1,  .val = 0 },
-        { .offset = 0x1113c1,  .val = 0 },
-        { .offset = 0x2113c1,  .val = 0 },
-        { .offset = 0x114c1,  .val = 0 },
-        { .offset = 0x1114c1,  .val = 0 },
-        { .offset = 0x2114c1,  .val = 0 },
-        { .offset = 0x115c1,  .val = 0 },
-        { .offset = 0x1115c1,  .val = 0 },
-        { .offset = 0x2115c1,  .val = 0 },
-        { .offset = 0x116c1,  .val = 0 },
-        { .offset = 0x1116c1,  .val = 0 },
-        { .offset = 0x2116c1,  .val = 0 },
-        { .offset = 0x117c1,  .val = 0 },
-        { .offset = 0x1117c1,  .val = 0 },
-        { .offset = 0x2117c1,  .val = 0 },
-        { .offset = 0x118c1,  .val = 0 },
-        { .offset = 0x1118c1,  .val = 0 },
-        { .offset = 0x2118c1,  .val = 0 },
-        { .offset = 0x120c1,  .val = 0 },
-        { .offset = 0x1120c1,  .val = 0 },
-        { .offset = 0x2120c1,  .val = 0 },
-        { .offset = 0x121c1,  .val = 0 },
-        { .offset = 0x1121c1,  .val = 0 },
-        { .offset = 0x2121c1,  .val = 0 },
-        { .offset = 0x122c1,  .val = 0 },
-        { .offset = 0x1122c1,  .val = 0 },
-        { .offset = 0x2122c1,  .val = 0 },
-        { .offset = 0x123c1,  .val = 0 },
-        { .offset = 0x1123c1,  .val = 0 },
-        { .offset = 0x2123c1,  .val = 0 },
-        { .offset = 0x124c1,  .val = 0 },
-        { .offset = 0x1124c1,  .val = 0 },
-        { .offset = 0x2124c1,  .val = 0 },
-        { .offset = 0x125c1,  .val = 0 },
-        { .offset = 0x1125c1,  .val = 0 },
-        { .offset = 0x2125c1,  .val = 0 },
-        { .offset = 0x126c1,  .val = 0 },
-        { .offset = 0x1126c1,  .val = 0 },
-        { .offset = 0x2126c1,  .val = 0 },
-        { .offset = 0x127c1,  .val = 0 },
-        { .offset = 0x1127c1,  .val = 0 },
-        { .offset = 0x2127c1,  .val = 0 },
-        { .offset = 0x128c1,  .val = 0 },
-        { .offset = 0x1128c1,  .val = 0 },
-        { .offset = 0x2128c1,  .val = 0 },
-        { .offset = 0x130c1,  .val = 0 },
-        { .offset = 0x1130c1,  .val = 0 },
-        { .offset = 0x2130c1,  .val = 0 },
-        { .offset = 0x131c1,  .val = 0 },
-        { .offset = 0x1131c1,  .val = 0 },
-        { .offset = 0x2131c1,  .val = 0 },
-        { .offset = 0x132c1,  .val = 0 },
-        { .offset = 0x1132c1,  .val = 0 },
-        { .offset = 0x2132c1,  .val = 0 },
-        { .offset = 0x133c1,  .val = 0 },
-        { .offset = 0x1133c1,  .val = 0 },
-        { .offset = 0x2133c1,  .val = 0 },
-        { .offset = 0x134c1,  .val = 0 },
-        { .offset = 0x1134c1,  .val = 0 },
-        { .offset = 0x2134c1,  .val = 0 },
-        { .offset = 0x135c1,  .val = 0 },
-        { .offset = 0x1135c1,  .val = 0 },
-        { .offset = 0x2135c1,  .val = 0 },
-        { .offset = 0x136c1,  .val = 0 },
-        { .offset = 0x1136c1,  .val = 0 },
-        { .offset = 0x2136c1,  .val = 0 },
-        { .offset = 0x137c1,  .val = 0 },
-        { .offset = 0x1137c1,  .val = 0 },
-        { .offset = 0x2137c1,  .val = 0 },
-        { .offset = 0x138c1,  .val = 0 },
-        { .offset = 0x1138c1,  .val = 0 },
-        { .offset = 0x2138c1,  .val = 0 },
-        { .offset = 0x10020,  .val = 0 },
-        { .offset = 0x110020,  .val = 0 },
-        { .offset = 0x210020,  .val = 0 },
-        { .offset = 0x11020,  .val = 0 },
-        { .offset = 0x111020,  .val = 0 },
-        { .offset = 0x211020,  .val = 0 },
-        { .offset = 0x12020,  .val = 0 },
-        { .offset = 0x112020,  .val = 0 },
-        { .offset = 0x212020,  .val = 0 },
-        { .offset = 0x13020,  .val = 0 },
-        { .offset = 0x113020,  .val = 0 },
-        { .offset = 0x213020,  .val = 0 },
-        { .offset = 0x20072,  .val = 0 },
-        { .offset = 0x20073,  .val = 0 },
-        { .offset = 0x20074,  .val = 0 },
-        { .offset = 0x100aa,  .val = 0 },
-        { .offset = 0x110aa,  .val = 0 },
-        { .offset = 0x120aa,  .val = 0 },
-        { .offset = 0x130aa,  .val = 0 },
-        { .offset = 0x20010,  .val = 0 },
-        { .offset = 0x120010,  .val = 0 },
-        { .offset = 0x220010,  .val = 0 },
-        { .offset = 0x20011,  .val = 0 },
-        { .offset = 0x120011,  .val = 0 },
-        { .offset = 0x220011,  .val = 0 },
-        { .offset = 0x100ae,  .val = 0 },
-        { .offset = 0x1100ae,  .val = 0 },
-        { .offset = 0x2100ae,  .val = 0 },
-        { .offset = 0x100af,  .val = 0 },
-        { .offset = 0x1100af,  .val = 0 },
-        { .offset = 0x2100af,  .val = 0 },
-        { .offset = 0x110ae,  .val = 0 },
-        { .offset = 0x1110ae,  .val = 0 },
-        { .offset = 0x2110ae,  .val = 0 },
-        { .offset = 0x110af,  .val = 0 },
-        { .offset = 0x1110af,  .val = 0 },
-        { .offset = 0x2110af,  .val = 0 },
-        { .offset = 0x120ae,  .val = 0 },
-        { .offset = 0x1120ae,  .val = 0 },
-        { .offset = 0x2120ae,  .val = 0 },
-        { .offset = 0x120af,  .val = 0 },
-        { .offset = 0x1120af,  .val = 0 },
-        { .offset = 0x2120af,  .val = 0 },
-        { .offset = 0x130ae,  .val = 0 },
-        { .offset = 0x1130ae,  .val = 0 },
-        { .offset = 0x2130ae,  .val = 0 },
-        { .offset = 0x130af,  .val = 0 },
-        { .offset = 0x1130af,  .val = 0 },
-        { .offset = 0x2130af,  .val = 0 },
-        { .offset = 0x20020,  .val = 0 },
-        { .offset = 0x120020,  .val = 0 },
-        { .offset = 0x220020,  .val = 0 },
-        { .offset = 0x100a0,  .val = 0 },
-        { .offset = 0x100a1,  .val = 0 },
-        { .offset = 0x100a2,  .val = 0 },
-        { .offset = 0x100a3,  .val = 0 },
-        { .offset = 0x100a4,  .val = 0 },
-        { .offset = 0x100a5,  .val = 0 },
-        { .offset = 0x100a6,  .val = 0 },
-        { .offset = 0x100a7,  .val = 0 },
-        { .offset = 0x110a0,  .val = 0 },
-        { .offset = 0x110a1,  .val = 0 },
-        { .offset = 0x110a2,  .val = 0 },
-        { .offset = 0x110a3,  .val = 0 },
-        { .offset = 0x110a4,  .val = 0 },
-        { .offset = 0x110a5,  .val = 0 },
-        { .offset = 0x110a6,  .val = 0 },
-        { .offset = 0x110a7,  .val = 0 },
-        { .offset = 0x120a0,  .val = 0 },
-        { .offset = 0x120a1,  .val = 0 },
-        { .offset = 0x120a2,  .val = 0 },
-        { .offset = 0x120a3,  .val = 0 },
-        { .offset = 0x120a4,  .val = 0 },
-        { .offset = 0x120a5,  .val = 0 },
-        { .offset = 0x120a6,  .val = 0 },
-        { .offset = 0x120a7,  .val = 0 },
-        { .offset = 0x130a0,  .val = 0 },
-        { .offset = 0x130a1,  .val = 0 },
-        { .offset = 0x130a2,  .val = 0 },
-        { .offset = 0x130a3,  .val = 0 },
-        { .offset = 0x130a4,  .val = 0 },
-        { .offset = 0x130a5,  .val = 0 },
-        { .offset = 0x130a6,  .val = 0 },
-        { .offset = 0x130a7,  .val = 0 },
-        { .offset = 0x2007c,  .val = 0 },
-        { .offset = 0x12007c,  .val = 0 },
-        { .offset = 0x22007c,  .val = 0 },
-        { .offset = 0x2007d,  .val = 0 },
-        { .offset = 0x12007d,  .val = 0 },
-        { .offset = 0x22007d,  .val = 0 },
-        { .offset = 0x400fd,  .val = 0 },
-        { .offset = 0x400c0,  .val = 0 },
-        { .offset = 0x90201,  .val = 0 },
-        { .offset = 0x190201,  .val = 0 },
-        { .offset = 0x290201,  .val = 0 },
-        { .offset = 0x90202,  .val = 0 },
-        { .offset = 0x190202,  .val = 0 },
-        { .offset = 0x290202,  .val = 0 },
-        { .offset = 0x90203,  .val = 0 },
-        { .offset = 0x190203,  .val = 0 },
-        { .offset = 0x290203,  .val = 0 },
-        { .offset = 0x90204,  .val = 0 },
-        { .offset = 0x190204,  .val = 0 },
-        { .offset = 0x290204,  .val = 0 },
-        { .offset = 0x90205,  .val = 0 },
-        { .offset = 0x190205,  .val = 0 },
-        { .offset = 0x290205,  .val = 0 },
-        { .offset = 0x90206,  .val = 0 },
-        { .offset = 0x190206,  .val = 0 },
-        { .offset = 0x290206,  .val = 0 },
-        { .offset = 0x90207,  .val = 0 },
-        { .offset = 0x190207,  .val = 0 },
-        { .offset = 0x290207,  .val = 0 },
-        { .offset = 0x90208,  .val = 0 },
-        { .offset = 0x190208,  .val = 0 },
-        { .offset = 0x290208,  .val = 0 },
-        { .offset = 0x10062,  .val = 0 },
-        { .offset = 0x10162,  .val = 0 },
-        { .offset = 0x10262,  .val = 0 },
-        { .offset = 0x10362,  .val = 0 },
-        { .offset = 0x10462,  .val = 0 },
-        { .offset = 0x10562,  .val = 0 },
-        { .offset = 0x10662,  .val = 0 },
-        { .offset = 0x10762,  .val = 0 },
-        { .offset = 0x10862,  .val = 0 },
-        { .offset = 0x11062,  .val = 0 },
-        { .offset = 0x11162,  .val = 0 },
-        { .offset = 0x11262,  .val = 0 },
-        { .offset = 0x11362,  .val = 0 },
-        { .offset = 0x11462,  .val = 0 },
-        { .offset = 0x11562,  .val = 0 },
-        { .offset = 0x11662,  .val = 0 },
-        { .offset = 0x11762,  .val = 0 },
-        { .offset = 0x11862,  .val = 0 },
-        { .offset = 0x12062,  .val = 0 },
-        { .offset = 0x12162,  .val = 0 },
-        { .offset = 0x12262,  .val = 0 },
-        { .offset = 0x12362,  .val = 0 },
-        { .offset = 0x12462,  .val = 0 },
-        { .offset = 0x12562,  .val = 0 },
-        { .offset = 0x12662,  .val = 0 },
-        { .offset = 0x12762,  .val = 0 },
-        { .offset = 0x12862,  .val = 0 },
-        { .offset = 0x13062,  .val = 0 },
-        { .offset = 0x13162,  .val = 0 },
-        { .offset = 0x13262,  .val = 0 },
-        { .offset = 0x13362,  .val = 0 },
-        { .offset = 0x13462,  .val = 0 },
-        { .offset = 0x13562,  .val = 0 },
-        { .offset = 0x13662,  .val = 0 },
-        { .offset = 0x13762,  .val = 0 },
-        { .offset = 0x13862,  .val = 0 },
-        { .offset = 0x20077,  .val = 0 },
-        { .offset = 0x10001,  .val = 0 },
-        { .offset = 0x11001,  .val = 0 },
-        { .offset = 0x12001,  .val = 0 },
-        { .offset = 0x13001,  .val = 0 },
-        { .offset = 0x10040,  .val = 0 },
-        { .offset = 0x10140,  .val = 0 },
-        { .offset = 0x10240,  .val = 0 },
-        { .offset = 0x10340,  .val = 0 },
-        { .offset = 0x10440,  .val = 0 },
-        { .offset = 0x10540,  .val = 0 },
-        { .offset = 0x10640,  .val = 0 },
-        { .offset = 0x10740,  .val = 0 },
-        { .offset = 0x10840,  .val = 0 },
-        { .offset = 0x10030,  .val = 0 },
-        { .offset = 0x10130,  .val = 0 },
-        { .offset = 0x10230,  .val = 0 },
-        { .offset = 0x10330,  .val = 0 },
-        { .offset = 0x10430,  .val = 0 },
-        { .offset = 0x10530,  .val = 0 },
-        { .offset = 0x10630,  .val = 0 },
-        { .offset = 0x10730,  .val = 0 },
-        { .offset = 0x10830,  .val = 0 },
-        { .offset = 0x11040,  .val = 0 },
-        { .offset = 0x11140,  .val = 0 },
-        { .offset = 0x11240,  .val = 0 },
-        { .offset = 0x11340,  .val = 0 },
-        { .offset = 0x11440,  .val = 0 },
-        { .offset = 0x11540,  .val = 0 },
-        { .offset = 0x11640,  .val = 0 },
-        { .offset = 0x11740,  .val = 0 },
-        { .offset = 0x11840,  .val = 0 },
-        { .offset = 0x11030,  .val = 0 },
-        { .offset = 0x11130,  .val = 0 },
-        { .offset = 0x11230,  .val = 0 },
-        { .offset = 0x11330,  .val = 0 },
-        { .offset = 0x11430,  .val = 0 },
-        { .offset = 0x11530,  .val = 0 },
-        { .offset = 0x11630,  .val = 0 },
-        { .offset = 0x11730,  .val = 0 },
-        { .offset = 0x11830,  .val = 0 },
-        { .offset = 0x12040,  .val = 0 },
-        { .offset = 0x12140,  .val = 0 },
-        { .offset = 0x12240,  .val = 0 },
-        { .offset = 0x12340,  .val = 0 },
-        { .offset = 0x12440,  .val = 0 },
-        { .offset = 0x12540,  .val = 0 },
-        { .offset = 0x12640,  .val = 0 },
-        { .offset = 0x12740,  .val = 0 },
-        { .offset = 0x12840,  .val = 0 },
-        { .offset = 0x12030,  .val = 0 },
-        { .offset = 0x12130,  .val = 0 },
-        { .offset = 0x12230,  .val = 0 },
-        { .offset = 0x12330,  .val = 0 },
-        { .offset = 0x12430,  .val = 0 },
-        { .offset = 0x12530,  .val = 0 },
-        { .offset = 0x12630,  .val = 0 },
-        { .offset = 0x12730,  .val = 0 },
-        { .offset = 0x12830,  .val = 0 },
-        { .offset = 0x13040,  .val = 0 },
-        { .offset = 0x13140,  .val = 0 },
-        { .offset = 0x13240,  .val = 0 },
-        { .offset = 0x13340,  .val = 0 },
-        { .offset = 0x13440,  .val = 0 },
-        { .offset = 0x13540,  .val = 0 },
-        { .offset = 0x13640,  .val = 0 },
-        { .offset = 0x13740,  .val = 0 },
-        { .offset = 0x13840,  .val = 0 },
-        { .offset = 0x13030,  .val = 0 },
-        { .offset = 0x13130,  .val = 0 },
-        { .offset = 0x13230,  .val = 0 },
-        { .offset = 0x13330,  .val = 0 },
-        { .offset = 0x13430,  .val = 0 },
-        { .offset = 0x13530,  .val = 0 },
-        { .offset = 0x13630,  .val = 0 },
-        { .offset = 0x13730,  .val = 0 },
-        { .offset = 0x13830,  .val = 0 },
+	{ .offset = 0x100a0, .val = 0x0 }, //DDR_PHY_Dq0LnSel_0
+	{ .offset = 0x100a1, .val = 0x0 }, //DDR_PHY_Dq1LnSel_0
+	{ .offset = 0x100a2, .val = 0x0 }, //DDR_PHY_Dq2LnSel_0
+	{ .offset = 0x100a3, .val = 0x0 }, //DDR_PHY_Dq3LnSel_0
+	{ .offset = 0x100a4, .val = 0x0 }, //DDR_PHY_Dq4LnSel_0
+	{ .offset = 0x100a5, .val = 0x0 }, //DDR_PHY_Dq5LnSel_0
+	{ .offset = 0x100a6, .val = 0x0 }, //DDR_PHY_Dq6LnSel_0
+	{ .offset = 0x100a7, .val = 0x0 }, //DDR_PHY_Dq7LnSel_0
+	{ .offset = 0x110a0, .val = 0x0 }, //DDR_PHY_Dq0LnSel_1
+	{ .offset = 0x110a1, .val = 0x0 }, //DDR_PHY_Dq1LnSel_1
+	{ .offset = 0x110a2, .val = 0x0 }, //DDR_PHY_Dq2LnSel_1
+	{ .offset = 0x110a3, .val = 0x0 }, //DDR_PHY_Dq3LnSel_1
+	{ .offset = 0x110a4, .val = 0x0 }, //DDR_PHY_Dq4LnSel_1
+	{ .offset = 0x110a5, .val = 0x0 }, //DDR_PHY_Dq5LnSel_1
+	{ .offset = 0x110a6, .val = 0x0 }, //DDR_PHY_Dq6LnSel_1
+	{ .offset = 0x110a7, .val = 0x0 }, //DDR_PHY_Dq7LnSel_1
+	{ .offset = 0x120a0, .val = 0x0 }, //DDR_PHY_Dq0LnSel_2
+	{ .offset = 0x120a1, .val = 0x0 }, //DDR_PHY_Dq1LnSel_2
+	{ .offset = 0x120a2, .val = 0x0 }, //DDR_PHY_Dq2LnSel_2
+	{ .offset = 0x120a3, .val = 0x0 }, //DDR_PHY_Dq3LnSel_2
+	{ .offset = 0x120a4, .val = 0x0 }, //DDR_PHY_Dq4LnSel_2
+	{ .offset = 0x120a5, .val = 0x0 }, //DDR_PHY_Dq5LnSel_2
+	{ .offset = 0x120a6, .val = 0x0 }, //DDR_PHY_Dq6LnSel_2
+	{ .offset = 0x120a7, .val = 0x0 }, //DDR_PHY_Dq7LnSel_2
+	{ .offset = 0x130a0, .val = 0x0 }, //DDR_PHY_Dq0LnSel_3
+	{ .offset = 0x130a1, .val = 0x0 }, //DDR_PHY_Dq1LnSel_3
+	{ .offset = 0x130a2, .val = 0x0 }, //DDR_PHY_Dq2LnSel_3
+	{ .offset = 0x130a3, .val = 0x0 }, //DDR_PHY_Dq3LnSel_3
+	{ .offset = 0x130a4, .val = 0x0 }, //DDR_PHY_Dq4LnSel_3
+	{ .offset = 0x130a5, .val = 0x0 }, //DDR_PHY_Dq5LnSel_3
+	{ .offset = 0x130a6, .val = 0x0 }, //DDR_PHY_Dq6LnSel_3
+	{ .offset = 0x130a7, .val = 0x0 }, //DDR_PHY_Dq7LnSel_3
+	
+	{ .offset = 0x80,     .val = 0 },	// DWC_DDRPHYA_ANIB0_ATxDly_P0
+	{ .offset = 0x100080, .val = 0 },	// DWC_DDRPHYA_ANIB0_ATxDly_P1
+	{ .offset = 0x200080, .val = 0 },	// DWC_DDRPHYA_ANIB0_ATxDly_P2
+	{ .offset = 0x1080,   .val = 0 },	// DWC_DDRPHYA_ANIB1_ATxDly_P0
+	{ .offset = 0x101080, .val = 0 },	// DWC_DDRPHYA_ANIB1_ATxDly_P0
+	{ .offset = 0x201080, .val = 0 },	// DWC_DDRPHYA_ANIB1_ATxDly_P2
+	{ .offset = 0x2080,   .val = 0 },	// DWC_DDRPHYA_ANIB2_ATxDly_P0	
+	{ .offset = 0x102080, .val = 0 },	// DWC_DDRPHYA_ANIB2_ATxDly_P1
+	{ .offset = 0x202080, .val = 0 },	// DWC_DDRPHYA_ANIB2_ATxDly_P2
+	{ .offset = 0x3080,   .val = 0 },	// DWC_DDRPHYA_ANIB3_ATxDly_P0
+	{ .offset = 0x103080, .val = 0 },	// DWC_DDRPHYA_ANIB3_ATxDly_P1
+	{ .offset = 0x203080, .val = 0 },	// DWC_DDRPHYA_ANIB3_ATxDly_P2
+	{ .offset = 0x4080,   .val = 0 },	// DWC_DDRPHYA_ANIB4_ATxDly_P0
+	{ .offset = 0x104080, .val = 0 },	// DWC_DDRPHYA_ANIB4_ATxDly_P1
+	{ .offset = 0x204080, .val = 0 },	// DWC_DDRPHYA_ANIB4_ATxDly_P2
+	{ .offset = 0x5080,   .val = 0 },	// DWC_DDRPHYA_ANIB5_ATxDly_P0
+	{ .offset = 0x105080, .val = 0 },	// DWC_DDRPHYA_ANIB5_ATxDly_P1
+	{ .offset = 0x205080, .val = 0 },	// DWC_DDRPHYA_ANIB5_ATxDly_P2
+	{ .offset = 0x6080,   .val = 0 },	// DWC_DDRPHYA_ANIB6_ATxDly_P0
+	{ .offset = 0x106080, .val = 0 },	// DWC_DDRPHYA_ANIB6_ATxDly_P1
+	{ .offset = 0x206080, .val = 0 },	// DWC_DDRPHYA_ANIB6_ATxDly_P2
+	{ .offset = 0x7080,   .val = 0 },	// DWC_DDRPHYA_ANIB7_ATxDly_P0
+	{ .offset = 0x107080, .val = 0 },	// DWC_DDRPHYA_ANIB7_ATxDly_P1
+	{ .offset = 0x207080, .val = 0 },	// DWC_DDRPHYA_ANIB7_ATxDly_P2
+	{ .offset = 0x8080,   .val = 0 },	// DWC_DDRPHYA_ANIB8_ATxDly_P0
+	{ .offset = 0x108080, .val = 0 },	// DWC_DDRPHYA_ANIB8_ATxDly_P1
+	{ .offset = 0x208080, .val = 0 },	// DWC_DDRPHYA_ANIB8_ATxDly_P2
+	{ .offset = 0x9080,   .val = 0 },	// DWC_DDRPHYA_ANIB9_ATxDly_P0
+	{ .offset = 0x109080, .val = 0 },	// DWC_DDRPHYA_ANIB9_ATxDly_P1
+	{ .offset = 0x209080, .val = 0 },	// DWC_DDRPHYA_ANIB9_ATxDly_P2
+	
+	{ .offset =  0x10080, .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxEnDlyTg0_b0_P0
+	{ .offset = 0x110080, .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxEnDlyTg0_b0_P1
+	{ .offset = 0x210080, .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxEnDlyTg0_b0_P2
+	{ .offset =  0x10180,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxEnDlyTg0_b1_P0
+	{ .offset = 0x110180, .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxEnDlyTg0_b1_P1
+	{ .offset = 0x210180, .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxEnDlyTg0_b1_P2
+	{ .offset = 0x11080,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxEnDlyTg0_b0_P0
+	{ .offset = 0x111080, .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxEnDlyTg0_b0_P1
+	{ .offset = 0x211080, .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxEnDlyTg0_b0_P2
+	{ .offset = 0x11180,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxEnDlyTg0_b1_P0
+	{ .offset = 0x111180, .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxEnDlyTg0_b1_P1
+	{ .offset = 0x211180, .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxEnDlyTg0_b1_P2
+	{ .offset = 0x12080,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxEnDlyTg0_b0_P0
+	{ .offset = 0x112080, .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxEnDlyTg0_b0_P1
+	{ .offset = 0x212080, .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxEnDlyTg0_b0_P2
+	{ .offset = 0x12180,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxEnDlyTg0_b1_P0
+	{ .offset = 0x112180, .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxEnDlyTg0_b1_P1
+	{ .offset = 0x212180, .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxEnDlyTg0_b1_P2
+	{ .offset = 0x13080,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxEnDlyTg0_b0_P0
+	{ .offset = 0x113080, .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxEnDlyTg0_b0_P1
+	{ .offset = 0x213080, .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxEnDlyTg0_b0_P2
+	{ .offset = 0x13180,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxEnDlyTg0_b1_P0
+	{ .offset = 0x113180, .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxEnDlyTg0_b1_P1
+	{ .offset = 0x213180, .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxEnDlyTg0_b1_P2
+
+	{ .offset = 0x10081,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxEnDlyTg1_b0_P0
+	{ .offset = 0x110081, .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxEnDlyTg1_b0_P1
+	{ .offset = 0x210081, .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxEnDlyTg1_b0_P2
+	{ .offset = 0x10181,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxEnDlyTg1_b1_P0
+	{ .offset = 0x110181, .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxEnDlyTg1_b1_P1
+	{ .offset = 0x210181, .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxEnDlyTg1_b1_P2
+	{ .offset = 0x11081,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxEnDlyTg1_b0_P0
+	{ .offset = 0x111081, .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxEnDlyTg1_b0_P1
+	{ .offset = 0x211081, .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxEnDlyTg1_b0_P2
+	{ .offset = 0x11181,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxEnDlyTg1_b1_P0
+	{ .offset = 0x111181, .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxEnDlyTg1_b1_P1
+	{ .offset = 0x211181, .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxEnDlyTg1_b1_P2
+	{ .offset = 0x12081,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxEnDlyTg1_b0_P0
+	{ .offset = 0x112081, .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxEnDlyTg1_b0_P1
+	{ .offset = 0x212081, .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxEnDlyTg1_b0_P2
+	{ .offset = 0x12181,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxEnDlyTg1_b1_P0
+	{ .offset = 0x112181, .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxEnDlyTg1_b1_P1
+	{ .offset = 0x212181, .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxEnDlyTg1_b1_P2
+	{ .offset = 0x13081,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxEnDlyTg1_b0_P0
+	{ .offset = 0x113081, .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxEnDlyTg1_b0_P1
+	{ .offset = 0x213081, .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxEnDlyTg1_b0_P2
+	{ .offset = 0x13181,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxEnDlyTg1_b1_P0
+	{ .offset = 0x113181, .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxEnDlyTg1_b1_P1
+	{ .offset = 0x213181, .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxEnDlyTg1_b1_P2
+
+	{ .offset = 0x100d0,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_TxDqsDlyTg0_b0_P0
+	{ .offset = 0x1100d0, .val = 0 },	// DWC_DDRPHYA_DBYTE0_TxDqsDlyTg0_b0_P1,
+	{ .offset = 0x2100d0, .val = 0 },	// DWC_DDRPHYA_DBYTE0_TxDqsDlyTg0_b0_P2,
+	{ .offset = 0x101d0,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_TxDqsDlyTg0_b1_P0
+	{ .offset = 0x1101d0, .val = 0 },	// DWC_DDRPHYA_DBYTE0_TxDqsDlyTg0_b1_P1,
+	{ .offset = 0x2101d0, .val = 0 },	// DWC_DDRPHYA_DBYTE0_TxDqsDlyTg0_b1_P2,
+	{ .offset = 0x110d0,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_TxDqsDlyTg0_b0_P0
+	{ .offset = 0x1110d0, .val = 0 },	// DWC_DDRPHYA_DBYTE1_TxDqsDlyTg0_b0_P1,
+	{ .offset = 0x2110d0, .val = 0 },	// DWC_DDRPHYA_DBYTE1_TxDqsDlyTg0_b0_P2,
+	{ .offset = 0x111d0,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_TxDqsDlyTg0_b1_P0
+	{ .offset = 0x1111d0, .val = 0 },	// DWC_DDRPHYA_DBYTE1_TxDqsDlyTg0_b1_P1,
+	{ .offset = 0x2111d0, .val = 0 },	// DWC_DDRPHYA_DBYTE1_TxDqsDlyTg0_b1_P2,
+	{ .offset = 0x120d0,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_TxDqsDlyTg0_b0_P0
+	{ .offset = 0x1120d0, .val = 0 },	// DWC_DDRPHYA_DBYTE2_TxDqsDlyTg0_b0_P1,
+	{ .offset = 0x2120d0, .val = 0 },	// DWC_DDRPHYA_DBYTE2_TxDqsDlyTg0_b0_P2,
+	{ .offset = 0x121d0,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_TxDqsDlyTg0_b1_P0
+	{ .offset = 0x1121d0, .val = 0 },	// DWC_DDRPHYA_DBYTE2_TxDqsDlyTg0_b1_P1,
+	{ .offset = 0x2121d0, .val = 0 },	// DWC_DDRPHYA_DBYTE2_TxDqsDlyTg0_b1_P2,
+	{ .offset = 0x130d0,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_TxDqsDlyTg0_b0_P0
+	{ .offset = 0x1130d0, .val = 0 },	// DWC_DDRPHYA_DBYTE3_TxDqsDlyTg0_b0_P1,
+	{ .offset = 0x2130d0, .val = 0 },	// DWC_DDRPHYA_DBYTE3_TxDqsDlyTg0_b0_P2,
+	{ .offset = 0x131d0,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_TxDqsDlyTg0_b1_P0
+	{ .offset = 0x1131d0, .val = 0 },	// DWC_DDRPHYA_DBYTE3_TxDqsDlyTg0_b1_P1,
+	{ .offset = 0x2131d0, .val = 0 },	// DWC_DDRPHYA_DBYTE3_TxDqsDlyTg0_b1_P2,
+
+	{ .offset = 0x100d1,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_TxDqsDlyTg1_b0_P0
+	{ .offset = 0x1100d1, .val = 0 },	// DWC_DDRPHYA_DBYTE0_TxDqsDlyTg1_b0_P1,
+	{ .offset = 0x2100d1, .val = 0 },	// DWC_DDRPHYA_DBYTE0_TxDqsDlyTg1_b0_P2,
+	{ .offset = 0x101d1,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_TxDqsDlyTg1_b1_P0
+	{ .offset = 0x1101d1, .val = 0 },	// DWC_DDRPHYA_DBYTE0_TxDqsDlyTg1_b1_P1,
+	{ .offset = 0x2101d1, .val = 0 },	// DWC_DDRPHYA_DBYTE0_TxDqsDlyTg1_b1_P2,
+	{ .offset = 0x110d1,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_TxDqsDlyTg1_b0_P0
+	{ .offset = 0x1110d1, .val = 0 },	// DWC_DDRPHYA_DBYTE1_TxDqsDlyTg1_b0_P1,
+	{ .offset = 0x2110d1, .val = 0 },	// DWC_DDRPHYA_DBYTE1_TxDqsDlyTg1_b0_P2,
+	{ .offset = 0x111d1,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_TxDqsDlyTg1_b1_P0
+	{ .offset = 0x1111d1, .val = 0 },	// DWC_DDRPHYA_DBYTE1_TxDqsDlyTg1_b1_P1,
+	{ .offset = 0x2111d1, .val = 0 },	// DWC_DDRPHYA_DBYTE1_TxDqsDlyTg1_b1_P2,
+	{ .offset = 0x120d1,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_TxDqsDlyTg1_b0_P0
+	{ .offset = 0x1120d1, .val = 0 },	// DWC_DDRPHYA_DBYTE2_TxDqsDlyTg1_b0_P1,
+	{ .offset = 0x2120d1, .val = 0 },	// DWC_DDRPHYA_DBYTE2_TxDqsDlyTg1_b0_P2,
+	{ .offset = 0x121d1,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_TxDqsDlyTg1_b1_P0
+	{ .offset = 0x1121d1, .val = 0 },	// DWC_DDRPHYA_DBYTE2_TxDqsDlyTg1_b1_P1,
+	{ .offset = 0x2121d1, .val = 0 },	// DWC_DDRPHYA_DBYTE2_TxDqsDlyTg1_b1_P2,
+	{ .offset = 0x130d1,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_TxDqsDlyTg1_b0_P0
+	{ .offset = 0x1130d1, .val = 0 },	// DWC_DDRPHYA_DBYTE3_TxDqsDlyTg1_b0_P1,
+	{ .offset = 0x2130d1, .val = 0 },	// DWC_DDRPHYA_DBYTE3_TxDqsDlyTg1_b0_P2,	
+	{ .offset = 0x131d1,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_TxDqsDlyTg1_b1_P0
+	{ .offset = 0x1131d1, .val = 0 },	// DWC_DDRPHYA_DBYTE3_TxDqsDlyTg1_b1_P1,
+	{ .offset = 0x2131d1, .val = 0 },	// DWC_DDRPHYA_DBYTE3_TxDqsDlyTg1_b1_P2,
+
+	{ .offset = 0x10068,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_b0
+	{ .offset = 0x10168,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_b1
+	{ .offset = 0x10268,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_b2
+	{ .offset = 0x10368,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_b3
+	{ .offset = 0x10468,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_b4
+	{ .offset = 0x10568,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_b5
+	{ .offset = 0x10668,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_b6
+	{ .offset = 0x10768,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_b7
+	{ .offset = 0x10868,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_dbi
+	{ .offset = 0x11068,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_b0
+	{ .offset = 0x11168,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_b1
+	{ .offset = 0x11268,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_b2
+	{ .offset = 0x11368,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_b3
+	{ .offset = 0x11468,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_b4
+	{ .offset = 0x11568,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_b5
+	{ .offset = 0x11668,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_b6
+	{ .offset = 0x11768,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_b7
+	{ .offset = 0x11868,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_dbi
+	{ .offset = 0x12068,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_b0
+	{ .offset = 0x12168,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_b1
+	{ .offset = 0x12268,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_b2
+	{ .offset = 0x12368,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_b3
+	{ .offset = 0x12468,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_b4
+	{ .offset = 0x12568,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_b5
+	{ .offset = 0x12668,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_b6
+	{ .offset = 0x12768,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_b7
+	{ .offset = 0x12868,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_dbi
+	{ .offset = 0x13068,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_b0
+	{ .offset = 0x13168,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_b1
+	{ .offset = 0x13268,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_b2
+	{ .offset = 0x13368,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_b3
+	{ .offset = 0x13468,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_b4
+	{ .offset = 0x13568,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_b5
+	{ .offset = 0x13668,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_b6
+	{ .offset = 0x13768,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_b7
+	{ .offset = 0x13868,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_dbi
+	
+	{ .offset = 0x10069,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_b0
+	{ .offset = 0x10169,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_b1
+	{ .offset = 0x10269,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_b2
+	{ .offset = 0x10369,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_b3
+	{ .offset = 0x10469,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_b4
+	{ .offset = 0x10569,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_b5
+	{ .offset = 0x10669,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_b6
+	{ .offset = 0x10769,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_b7
+	{ .offset = 0x10869,  .val = 0 },	// DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_dbi
+	{ .offset = 0x11069,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_b0
+	{ .offset = 0x11169,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_b1
+	{ .offset = 0x11269,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_b2
+	{ .offset = 0x11369,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_b3
+	{ .offset = 0x11469,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_b4
+	{ .offset = 0x11569,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_b5
+	{ .offset = 0x11669,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_b6
+	{ .offset = 0x11769,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_b7
+	{ .offset = 0x11869,  .val = 0 },	// DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_dbi
+	{ .offset = 0x12069,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_b0
+	{ .offset = 0x12169,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_b1
+	{ .offset = 0x12269,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_b2
+	{ .offset = 0x12369,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_b3
+	{ .offset = 0x12469,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_b4
+	{ .offset = 0x12569,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_b5
+	{ .offset = 0x12669,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_b6
+	{ .offset = 0x12769,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_b7
+	{ .offset = 0x12869,  .val = 0 },	// DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_dbi
+	{ .offset = 0x13069,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_b0
+	{ .offset = 0x13169,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_b1
+	{ .offset = 0x13269,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_b2
+	{ .offset = 0x13369,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_b3
+	{ .offset = 0x13469,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_b4
+	{ .offset = 0x13569,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_b5
+	{ .offset = 0x13669,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_b6
+	{ .offset = 0x13769,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_b7
+	{ .offset = 0x13869,  .val = 0 },	// DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_dbi
+	
+	{ .offset = 0x1008c,  .val = 0 },
+	{ .offset = 0x11008c,  .val = 0 },
+	{ .offset = 0x21008c,  .val = 0 },
+	{ .offset = 0x1018c,  .val = 0 },
+	{ .offset = 0x11018c,  .val = 0 },
+	{ .offset = 0x21018c,  .val = 0 },
+	{ .offset = 0x1108c,  .val = 0 },
+	{ .offset = 0x11108c,  .val = 0 },
+	{ .offset = 0x21108c,  .val = 0 },
+	{ .offset = 0x1118c,  .val = 0 },
+	{ .offset = 0x11118c,  .val = 0 },
+	{ .offset = 0x21118c,  .val = 0 },
+	{ .offset = 0x1208c,  .val = 0 },
+	{ .offset = 0x11208c,  .val = 0 },
+	{ .offset = 0x21208c,  .val = 0 },
+	{ .offset = 0x1218c,  .val = 0 },
+	{ .offset = 0x11218c,  .val = 0 },
+	{ .offset = 0x21218c,  .val = 0 },
+	{ .offset = 0x1308c,  .val = 0 },
+	{ .offset = 0x11308c,  .val = 0 },
+	{ .offset = 0x21308c,  .val = 0 },
+	{ .offset = 0x1318c,  .val = 0 },
+	{ .offset = 0x11318c,  .val = 0 },
+	{ .offset = 0x21318c,  .val = 0 },
+	{ .offset = 0x1008d,  .val = 0 },
+	{ .offset = 0x11008d,  .val = 0 },
+	{ .offset = 0x21008d,  .val = 0 },
+	{ .offset = 0x1018d,  .val = 0 },
+	{ .offset = 0x11018d,  .val = 0 },
+	{ .offset = 0x21018d,  .val = 0 },
+	{ .offset = 0x1108d,  .val = 0 },
+	{ .offset = 0x11108d,  .val = 0 },
+	{ .offset = 0x21108d,  .val = 0 },
+	{ .offset = 0x1118d,  .val = 0 },
+	{ .offset = 0x11118d,  .val = 0 },
+	{ .offset = 0x21118d,  .val = 0 },
+	{ .offset = 0x1208d,  .val = 0 },
+	{ .offset = 0x11208d,  .val = 0 },
+	{ .offset = 0x21208d,  .val = 0 },
+	{ .offset = 0x1218d,  .val = 0 },
+	{ .offset = 0x11218d,  .val = 0 },
+	{ .offset = 0x21218d,  .val = 0 },
+	{ .offset = 0x1308d,  .val = 0 },
+	{ .offset = 0x11308d,  .val = 0 },
+	{ .offset = 0x21308d,  .val = 0 },
+	{ .offset = 0x1318d,  .val = 0 },
+	{ .offset = 0x11318d,  .val = 0 },
+	{ .offset = 0x21318d,  .val = 0 },
+	{ .offset = 0x100c0,  .val = 0 },
+	{ .offset = 0x1100c0,  .val = 0 },
+	{ .offset = 0x2100c0,  .val = 0 },
+	{ .offset = 0x101c0,  .val = 0 },
+	{ .offset = 0x1101c0,  .val = 0 },
+	{ .offset = 0x2101c0,  .val = 0 },
+	{ .offset = 0x102c0,  .val = 0 },
+	{ .offset = 0x1102c0,  .val = 0 },
+	{ .offset = 0x2102c0,  .val = 0 },
+	{ .offset = 0x103c0,  .val = 0 },
+	{ .offset = 0x1103c0,  .val = 0 },
+	{ .offset = 0x2103c0,  .val = 0 },
+	{ .offset = 0x104c0,  .val = 0 },
+	{ .offset = 0x1104c0,  .val = 0 },
+	{ .offset = 0x2104c0,  .val = 0 },
+	{ .offset = 0x105c0,  .val = 0 },
+	{ .offset = 0x1105c0,  .val = 0 },
+	{ .offset = 0x2105c0,  .val = 0 },
+	{ .offset = 0x106c0,  .val = 0 },
+	{ .offset = 0x1106c0,  .val = 0 },
+	{ .offset = 0x2106c0,  .val = 0 },
+	{ .offset = 0x107c0,  .val = 0 },
+	{ .offset = 0x1107c0,  .val = 0 },
+	{ .offset = 0x2107c0,  .val = 0 },
+	{ .offset = 0x108c0,  .val = 0 },
+	{ .offset = 0x1108c0,  .val = 0 },
+	{ .offset = 0x2108c0,  .val = 0 },
+	{ .offset = 0x110c0,  .val = 0 },
+	{ .offset = 0x1110c0,  .val = 0 },
+	{ .offset = 0x2110c0,  .val = 0 },
+	{ .offset = 0x111c0,  .val = 0 },
+	{ .offset = 0x1111c0,  .val = 0 },
+	{ .offset = 0x2111c0,  .val = 0 },
+	{ .offset = 0x112c0,  .val = 0 },
+	{ .offset = 0x1112c0,  .val = 0 },
+	{ .offset = 0x2112c0,  .val = 0 },
+	{ .offset = 0x113c0,  .val = 0 },
+	{ .offset = 0x1113c0,  .val = 0 },
+	{ .offset = 0x2113c0,  .val = 0 },
+	{ .offset = 0x114c0,  .val = 0 },
+	{ .offset = 0x1114c0,  .val = 0 },
+	{ .offset = 0x2114c0,  .val = 0 },
+	{ .offset = 0x115c0,  .val = 0 },
+	{ .offset = 0x1115c0,  .val = 0 },
+	{ .offset = 0x2115c0,  .val = 0 },
+	{ .offset = 0x116c0,  .val = 0 },
+	{ .offset = 0x1116c0,  .val = 0 },
+	{ .offset = 0x2116c0,  .val = 0 },
+	{ .offset = 0x117c0,  .val = 0 },
+	{ .offset = 0x1117c0,  .val = 0 },
+	{ .offset = 0x2117c0,  .val = 0 },
+	{ .offset = 0x118c0,  .val = 0 },
+	{ .offset = 0x1118c0,  .val = 0 },
+	{ .offset = 0x2118c0,  .val = 0 },
+	{ .offset = 0x120c0,  .val = 0 },
+	{ .offset = 0x1120c0,  .val = 0 },
+	{ .offset = 0x2120c0,  .val = 0 },
+	{ .offset = 0x121c0,  .val = 0 },
+	{ .offset = 0x1121c0,  .val = 0 },
+	{ .offset = 0x2121c0,  .val = 0 },
+	{ .offset = 0x122c0,  .val = 0 },
+	{ .offset = 0x1122c0,  .val = 0 },
+	{ .offset = 0x2122c0,  .val = 0 },
+	{ .offset = 0x123c0,  .val = 0 },
+	{ .offset = 0x1123c0,  .val = 0 },
+	{ .offset = 0x2123c0,  .val = 0 },
+	{ .offset = 0x124c0,  .val = 0 },
+	{ .offset = 0x1124c0,  .val = 0 },
+	{ .offset = 0x2124c0,  .val = 0 },
+	{ .offset = 0x125c0,  .val = 0 },
+	{ .offset = 0x1125c0,  .val = 0 },
+	{ .offset = 0x2125c0,  .val = 0 },
+	{ .offset = 0x126c0,  .val = 0 },
+	{ .offset = 0x1126c0,  .val = 0 },
+	{ .offset = 0x2126c0,  .val = 0 },
+	{ .offset = 0x127c0,  .val = 0 },
+	{ .offset = 0x1127c0,  .val = 0 },
+	{ .offset = 0x2127c0,  .val = 0 },
+	{ .offset = 0x128c0,  .val = 0 },
+	{ .offset = 0x1128c0,  .val = 0 },
+	{ .offset = 0x2128c0,  .val = 0 },
+	{ .offset = 0x130c0,  .val = 0 },
+	{ .offset = 0x1130c0,  .val = 0 },
+	{ .offset = 0x2130c0,  .val = 0 },
+	{ .offset = 0x131c0,  .val = 0 },
+	{ .offset = 0x1131c0,  .val = 0 },
+	{ .offset = 0x2131c0,  .val = 0 },
+	{ .offset = 0x132c0,  .val = 0 },
+	{ .offset = 0x1132c0,  .val = 0 },
+	{ .offset = 0x2132c0,  .val = 0 },
+	{ .offset = 0x133c0,  .val = 0 },
+	{ .offset = 0x1133c0,  .val = 0 },
+	{ .offset = 0x2133c0,  .val = 0 },
+	{ .offset = 0x134c0,  .val = 0 },
+	{ .offset = 0x1134c0,  .val = 0 },
+	{ .offset = 0x2134c0,  .val = 0 },
+	{ .offset = 0x135c0,  .val = 0 },
+	{ .offset = 0x1135c0,  .val = 0 },
+	{ .offset = 0x2135c0,  .val = 0 },
+	{ .offset = 0x136c0,  .val = 0 },
+	{ .offset = 0x1136c0,  .val = 0 },
+	{ .offset = 0x2136c0,  .val = 0 },
+	{ .offset = 0x137c0,  .val = 0 },
+	{ .offset = 0x1137c0,  .val = 0 },
+	{ .offset = 0x2137c0,  .val = 0 },
+	{ .offset = 0x138c0,  .val = 0 },
+	{ .offset = 0x1138c0,  .val = 0 },
+	{ .offset = 0x2138c0,  .val = 0 },
+	{ .offset = 0x100c1,  .val = 0 },
+	{ .offset = 0x1100c1,  .val = 0 },
+	{ .offset = 0x2100c1,  .val = 0 },
+	{ .offset = 0x101c1,  .val = 0 },
+	{ .offset = 0x1101c1,  .val = 0 },
+	{ .offset = 0x2101c1,  .val = 0 },
+	{ .offset = 0x102c1,  .val = 0 },
+	{ .offset = 0x1102c1,  .val = 0 },
+	{ .offset = 0x2102c1,  .val = 0 },
+	{ .offset = 0x103c1,  .val = 0 },
+	{ .offset = 0x1103c1,  .val = 0 },
+	{ .offset = 0x2103c1,  .val = 0 },
+	{ .offset = 0x104c1,  .val = 0 },
+	{ .offset = 0x1104c1,  .val = 0 },
+	{ .offset = 0x2104c1,  .val = 0 },
+	{ .offset = 0x105c1,  .val = 0 },
+	{ .offset = 0x1105c1,  .val = 0 },
+	{ .offset = 0x2105c1,  .val = 0 },
+	{ .offset = 0x106c1,  .val = 0 },
+	{ .offset = 0x1106c1,  .val = 0 },
+	{ .offset = 0x2106c1,  .val = 0 },
+	{ .offset = 0x107c1,  .val = 0 },
+	{ .offset = 0x1107c1,  .val = 0 },
+	{ .offset = 0x2107c1,  .val = 0 },
+	{ .offset = 0x108c1,  .val = 0 },
+	{ .offset = 0x1108c1,  .val = 0 },
+	{ .offset = 0x2108c1,  .val = 0 },
+	{ .offset = 0x110c1,  .val = 0 },
+	{ .offset = 0x1110c1,  .val = 0 },
+	{ .offset = 0x2110c1,  .val = 0 },
+	{ .offset = 0x111c1,  .val = 0 },
+	{ .offset = 0x1111c1,  .val = 0 },
+	{ .offset = 0x2111c1,  .val = 0 },
+	{ .offset = 0x112c1,  .val = 0 },
+	{ .offset = 0x1112c1,  .val = 0 },
+	{ .offset = 0x2112c1,  .val = 0 },
+	{ .offset = 0x113c1,  .val = 0 },
+	{ .offset = 0x1113c1,  .val = 0 },
+	{ .offset = 0x2113c1,  .val = 0 },
+	{ .offset = 0x114c1,  .val = 0 },
+	{ .offset = 0x1114c1,  .val = 0 },
+	{ .offset = 0x2114c1,  .val = 0 },
+	{ .offset = 0x115c1,  .val = 0 },
+	{ .offset = 0x1115c1,  .val = 0 },
+	{ .offset = 0x2115c1,  .val = 0 },
+	{ .offset = 0x116c1,  .val = 0 },
+	{ .offset = 0x1116c1,  .val = 0 },
+	{ .offset = 0x2116c1,  .val = 0 },
+	{ .offset = 0x117c1,  .val = 0 },
+	{ .offset = 0x1117c1,  .val = 0 },
+	{ .offset = 0x2117c1,  .val = 0 },
+	{ .offset = 0x118c1,  .val = 0 },
+	{ .offset = 0x1118c1,  .val = 0 },
+	{ .offset = 0x2118c1,  .val = 0 },
+	{ .offset = 0x120c1,  .val = 0 },
+	{ .offset = 0x1120c1,  .val = 0 },
+	{ .offset = 0x2120c1,  .val = 0 },
+	{ .offset = 0x121c1,  .val = 0 },
+	{ .offset = 0x1121c1,  .val = 0 },
+	{ .offset = 0x2121c1,  .val = 0 },
+	{ .offset = 0x122c1,  .val = 0 },
+	{ .offset = 0x1122c1,  .val = 0 },
+	{ .offset = 0x2122c1,  .val = 0 },
+	{ .offset = 0x123c1,  .val = 0 },
+	{ .offset = 0x1123c1,  .val = 0 },
+	{ .offset = 0x2123c1,  .val = 0 },
+	{ .offset = 0x124c1,  .val = 0 },
+	{ .offset = 0x1124c1,  .val = 0 },
+	{ .offset = 0x2124c1,  .val = 0 },
+	{ .offset = 0x125c1,  .val = 0 },
+	{ .offset = 0x1125c1,  .val = 0 },
+	{ .offset = 0x2125c1,  .val = 0 },
+	{ .offset = 0x126c1,  .val = 0 },
+	{ .offset = 0x1126c1,  .val = 0 },
+	{ .offset = 0x2126c1,  .val = 0 },
+	{ .offset = 0x127c1,  .val = 0 },
+	{ .offset = 0x1127c1,  .val = 0 },
+	{ .offset = 0x2127c1,  .val = 0 },
+	{ .offset = 0x128c1,  .val = 0 },
+	{ .offset = 0x1128c1,  .val = 0 },
+	{ .offset = 0x2128c1,  .val = 0 },
+	{ .offset = 0x130c1,  .val = 0 },
+	{ .offset = 0x1130c1,  .val = 0 },
+	{ .offset = 0x2130c1,  .val = 0 },
+	{ .offset = 0x131c1,  .val = 0 },
+	{ .offset = 0x1131c1,  .val = 0 },
+	{ .offset = 0x2131c1,  .val = 0 },
+	{ .offset = 0x132c1,  .val = 0 },
+	{ .offset = 0x1132c1,  .val = 0 },
+	{ .offset = 0x2132c1,  .val = 0 },
+	{ .offset = 0x133c1,  .val = 0 },
+	{ .offset = 0x1133c1,  .val = 0 },
+	{ .offset = 0x2133c1,  .val = 0 },
+	{ .offset = 0x134c1,  .val = 0 },
+	{ .offset = 0x1134c1,  .val = 0 },
+	{ .offset = 0x2134c1,  .val = 0 },
+	{ .offset = 0x135c1,  .val = 0 },
+	{ .offset = 0x1135c1,  .val = 0 },
+	{ .offset = 0x2135c1,  .val = 0 },
+	{ .offset = 0x136c1,  .val = 0 },
+	{ .offset = 0x1136c1,  .val = 0 },
+	{ .offset = 0x2136c1,  .val = 0 },
+	{ .offset = 0x137c1,  .val = 0 },
+	{ .offset = 0x1137c1,  .val = 0 },
+	{ .offset = 0x2137c1,  .val = 0 },
+	{ .offset = 0x138c1,  .val = 0 },
+	{ .offset = 0x1138c1,  .val = 0 },
+	{ .offset = 0x2138c1,  .val = 0 },
+	{ .offset = 0x10020,  .val = 0 },
+	{ .offset = 0x110020,  .val = 0 },
+	{ .offset = 0x210020,  .val = 0 },
+	{ .offset = 0x11020,  .val = 0 },
+	{ .offset = 0x111020,  .val = 0 },
+	{ .offset = 0x211020,  .val = 0 },
+	{ .offset = 0x12020,  .val = 0 },
+	{ .offset = 0x112020,  .val = 0 },
+	{ .offset = 0x212020,  .val = 0 },
+	{ .offset = 0x13020,  .val = 0 },
+	{ .offset = 0x113020,  .val = 0 },
+	{ .offset = 0x213020,  .val = 0 },
+	{ .offset = 0x20072,  .val = 0 },
+	{ .offset = 0x20073,  .val = 0 },
+	{ .offset = 0x20074,  .val = 0 },
+	{ .offset = 0x100aa,  .val = 0 },
+	{ .offset = 0x110aa,  .val = 0 },
+	{ .offset = 0x120aa,  .val = 0 },
+	{ .offset = 0x130aa,  .val = 0 },
+	{ .offset = 0x20010,  .val = 0 },
+	{ .offset = 0x120010,  .val = 0 },
+	{ .offset = 0x220010,  .val = 0 },
+	{ .offset = 0x20011,  .val = 0 },
+	{ .offset = 0x120011,  .val = 0 },
+	{ .offset = 0x220011,  .val = 0 },
+	{ .offset = 0x100ae,  .val = 0 },
+	{ .offset = 0x1100ae,  .val = 0 },
+	{ .offset = 0x2100ae,  .val = 0 },
+	{ .offset = 0x100af,  .val = 0 },
+	{ .offset = 0x1100af,  .val = 0 },
+	{ .offset = 0x2100af,  .val = 0 },
+	{ .offset = 0x110ae,  .val = 0 },
+	{ .offset = 0x1110ae,  .val = 0 },
+	{ .offset = 0x2110ae,  .val = 0 },
+	{ .offset = 0x110af,  .val = 0 },
+	{ .offset = 0x1110af,  .val = 0 },
+	{ .offset = 0x2110af,  .val = 0 },
+	{ .offset = 0x120ae,  .val = 0 },
+	{ .offset = 0x1120ae,  .val = 0 },
+	{ .offset = 0x2120ae,  .val = 0 },
+	{ .offset = 0x120af,  .val = 0 },
+	{ .offset = 0x1120af,  .val = 0 },
+	{ .offset = 0x2120af,  .val = 0 },
+	{ .offset = 0x130ae,  .val = 0 },
+	{ .offset = 0x1130ae,  .val = 0 },
+	{ .offset = 0x2130ae,  .val = 0 },
+	{ .offset = 0x130af,  .val = 0 },
+	{ .offset = 0x1130af,  .val = 0 },
+	{ .offset = 0x2130af,  .val = 0 },
+	{ .offset = 0x20020,  .val = 0 },
+	{ .offset = 0x120020,  .val = 0 },
+	{ .offset = 0x220020,  .val = 0 },
+	{ .offset = 0x100a0,  .val = 0 },
+	{ .offset = 0x100a1,  .val = 0 },
+	{ .offset = 0x100a2,  .val = 0 },
+	{ .offset = 0x100a3,  .val = 0 },
+	{ .offset = 0x100a4,  .val = 0 },
+	{ .offset = 0x100a5,  .val = 0 },
+	{ .offset = 0x100a6,  .val = 0 },
+	{ .offset = 0x100a7,  .val = 0 },
+	{ .offset = 0x110a0,  .val = 0 },
+	{ .offset = 0x110a1,  .val = 0 },
+	{ .offset = 0x110a2,  .val = 0 },
+	{ .offset = 0x110a3,  .val = 0 },
+	{ .offset = 0x110a4,  .val = 0 },
+	{ .offset = 0x110a5,  .val = 0 },
+	{ .offset = 0x110a6,  .val = 0 },
+	{ .offset = 0x110a7,  .val = 0 },
+	{ .offset = 0x120a0,  .val = 0 },
+	{ .offset = 0x120a1,  .val = 0 },
+	{ .offset = 0x120a2,  .val = 0 },
+	{ .offset = 0x120a3,  .val = 0 },
+	{ .offset = 0x120a4,  .val = 0 },
+	{ .offset = 0x120a5,  .val = 0 },
+	{ .offset = 0x120a6,  .val = 0 },
+	{ .offset = 0x120a7,  .val = 0 },
+	{ .offset = 0x130a0,  .val = 0 },
+	{ .offset = 0x130a1,  .val = 0 },
+	{ .offset = 0x130a2,  .val = 0 },
+	{ .offset = 0x130a3,  .val = 0 },
+	{ .offset = 0x130a4,  .val = 0 },
+	{ .offset = 0x130a5,  .val = 0 },
+	{ .offset = 0x130a6,  .val = 0 },
+	{ .offset = 0x130a7,  .val = 0 },
+	{ .offset = 0x2007c,  .val = 0 },
+	{ .offset = 0x12007c,  .val = 0 },
+	{ .offset = 0x22007c,  .val = 0 },
+	{ .offset = 0x2007d,  .val = 0 },
+	{ .offset = 0x12007d,  .val = 0 },
+	{ .offset = 0x22007d,  .val = 0 },
+	{ .offset = 0x400fd,  .val = 0 },
+	{ .offset = 0x400c0,  .val = 0 },
+	{ .offset = 0x90201,  .val = 0 },
+	{ .offset = 0x190201,  .val = 0 },
+	{ .offset = 0x290201,  .val = 0 },
+	{ .offset = 0x90202,  .val = 0 },
+	{ .offset = 0x190202,  .val = 0 },
+	{ .offset = 0x290202,  .val = 0 },
+	{ .offset = 0x90203,  .val = 0 },
+	{ .offset = 0x190203,  .val = 0 },
+	{ .offset = 0x290203,  .val = 0 },
+	{ .offset = 0x90204,  .val = 0 },
+	{ .offset = 0x190204,  .val = 0 },
+	{ .offset = 0x290204,  .val = 0 },
+	{ .offset = 0x90205,  .val = 0 },
+	{ .offset = 0x190205,  .val = 0 },
+	{ .offset = 0x290205,  .val = 0 },
+	{ .offset = 0x90206,  .val = 0 },
+	{ .offset = 0x190206,  .val = 0 },
+	{ .offset = 0x290206,  .val = 0 },
+	{ .offset = 0x90207,  .val = 0 },
+	{ .offset = 0x190207,  .val = 0 },
+	{ .offset = 0x290207,  .val = 0 },
+	{ .offset = 0x90208,  .val = 0 },
+	{ .offset = 0x190208,  .val = 0 },
+	{ .offset = 0x290208,  .val = 0 },
+	{ .offset = 0x10062,  .val = 0 },
+	{ .offset = 0x10162,  .val = 0 },
+	{ .offset = 0x10262,  .val = 0 },
+	{ .offset = 0x10362,  .val = 0 },
+	{ .offset = 0x10462,  .val = 0 },
+	{ .offset = 0x10562,  .val = 0 },
+	{ .offset = 0x10662,  .val = 0 },
+	{ .offset = 0x10762,  .val = 0 },
+	{ .offset = 0x10862,  .val = 0 },
+	{ .offset = 0x11062,  .val = 0 },
+	{ .offset = 0x11162,  .val = 0 },
+	{ .offset = 0x11262,  .val = 0 },
+	{ .offset = 0x11362,  .val = 0 },
+	{ .offset = 0x11462,  .val = 0 },
+	{ .offset = 0x11562,  .val = 0 },
+	{ .offset = 0x11662,  .val = 0 },
+	{ .offset = 0x11762,  .val = 0 },
+	{ .offset = 0x11862,  .val = 0 },
+	{ .offset = 0x12062,  .val = 0 },
+	{ .offset = 0x12162,  .val = 0 },
+	{ .offset = 0x12262,  .val = 0 },
+	{ .offset = 0x12362,  .val = 0 },
+	{ .offset = 0x12462,  .val = 0 },
+	{ .offset = 0x12562,  .val = 0 },
+	{ .offset = 0x12662,  .val = 0 },
+	{ .offset = 0x12762,  .val = 0 },
+	{ .offset = 0x12862,  .val = 0 },
+	{ .offset = 0x13062,  .val = 0 },
+	{ .offset = 0x13162,  .val = 0 },
+	{ .offset = 0x13262,  .val = 0 },
+	{ .offset = 0x13362,  .val = 0 },
+	{ .offset = 0x13462,  .val = 0 },
+	{ .offset = 0x13562,  .val = 0 },
+	{ .offset = 0x13662,  .val = 0 },
+	{ .offset = 0x13762,  .val = 0 },
+	{ .offset = 0x13862,  .val = 0 },
+	{ .offset = 0x20077,  .val = 0 },
+	{ .offset = 0x10001,  .val = 0 },
+	{ .offset = 0x11001,  .val = 0 },
+	{ .offset = 0x12001,  .val = 0 },
+	{ .offset = 0x13001,  .val = 0 },
+	{ .offset = 0x10040,  .val = 0 },
+	{ .offset = 0x10140,  .val = 0 },
+	{ .offset = 0x10240,  .val = 0 },
+	{ .offset = 0x10340,  .val = 0 },
+	{ .offset = 0x10440,  .val = 0 },
+	{ .offset = 0x10540,  .val = 0 },
+	{ .offset = 0x10640,  .val = 0 },
+	{ .offset = 0x10740,  .val = 0 },
+	{ .offset = 0x10840,  .val = 0 },
+	{ .offset = 0x10030,  .val = 0 },
+	{ .offset = 0x10130,  .val = 0 },
+	{ .offset = 0x10230,  .val = 0 },
+	{ .offset = 0x10330,  .val = 0 },
+	{ .offset = 0x10430,  .val = 0 },
+	{ .offset = 0x10530,  .val = 0 },
+	{ .offset = 0x10630,  .val = 0 },
+	{ .offset = 0x10730,  .val = 0 },
+	{ .offset = 0x10830,  .val = 0 },
+	{ .offset = 0x11040,  .val = 0 },
+	{ .offset = 0x11140,  .val = 0 },
+	{ .offset = 0x11240,  .val = 0 },
+	{ .offset = 0x11340,  .val = 0 },
+	{ .offset = 0x11440,  .val = 0 },
+	{ .offset = 0x11540,  .val = 0 },
+	{ .offset = 0x11640,  .val = 0 },
+	{ .offset = 0x11740,  .val = 0 },
+	{ .offset = 0x11840,  .val = 0 },
+	{ .offset = 0x11030,  .val = 0 },
+	{ .offset = 0x11130,  .val = 0 },
+	{ .offset = 0x11230,  .val = 0 },
+	{ .offset = 0x11330,  .val = 0 },
+	{ .offset = 0x11430,  .val = 0 },
+	{ .offset = 0x11530,  .val = 0 },
+	{ .offset = 0x11630,  .val = 0 },
+	{ .offset = 0x11730,  .val = 0 },
+	{ .offset = 0x11830,  .val = 0 },
+	{ .offset = 0x12040,  .val = 0 },
+	{ .offset = 0x12140,  .val = 0 },
+	{ .offset = 0x12240,  .val = 0 },
+	{ .offset = 0x12340,  .val = 0 },
+	{ .offset = 0x12440,  .val = 0 },
+	{ .offset = 0x12540,  .val = 0 },
+	{ .offset = 0x12640,  .val = 0 },
+	{ .offset = 0x12740,  .val = 0 },
+	{ .offset = 0x12840,  .val = 0 },
+	{ .offset = 0x12030,  .val = 0 },
+	{ .offset = 0x12130,  .val = 0 },
+	{ .offset = 0x12230,  .val = 0 },
+	{ .offset = 0x12330,  .val = 0 },
+	{ .offset = 0x12430,  .val = 0 },
+	{ .offset = 0x12530,  .val = 0 },
+	{ .offset = 0x12630,  .val = 0 },
+	{ .offset = 0x12730,  .val = 0 },
+	{ .offset = 0x12830,  .val = 0 },
+	{ .offset = 0x13040,  .val = 0 },
+	{ .offset = 0x13140,  .val = 0 },
+	{ .offset = 0x13240,  .val = 0 },
+	{ .offset = 0x13340,  .val = 0 },
+	{ .offset = 0x13440,  .val = 0 },
+	{ .offset = 0x13540,  .val = 0 },
+	{ .offset = 0x13640,  .val = 0 },
+	{ .offset = 0x13740,  .val = 0 },
+	{ .offset = 0x13840,  .val = 0 },
+	{ .offset = 0x13030,  .val = 0 },
+	{ .offset = 0x13130,  .val = 0 },
+	{ .offset = 0x13230,  .val = 0 },
+	{ .offset = 0x13330,  .val = 0 },
+	{ .offset = 0x13430,  .val = 0 },
+	{ .offset = 0x13530,  .val = 0 },
+	{ .offset = 0x13630,  .val = 0 },
+	{ .offset = 0x13730,  .val = 0 },
+	{ .offset = 0x13830,  .val = 0 },
 };
 
 /* lpddr4 phy PIE image */
@@ -1526,29 +1536,16 @@
 	{ .offset = 0xd0000, .val = 0x1 }, // DWC_DDRPHYA_APBONLY0_MicroContMuxSel
 };
 
-static void lpddr4_phy_init_cfg(void)
-{
-	int index, offset, val, size;
-
-	size = sizeof(phy_init_cfg) / 8;
-
-	for (index = 0; index < size; index++) {
-		val = phy_init_cfg[index].val;
-		offset = phy_init_cfg[index].offset;
-		dwc_ddrphy_apb_wr(offset, val);
-	}
-}
-
-static void lpddr4_phy_restore_trained_csr(void)
+static void lpddr4_phy_restore_phy(void)
 {
 	int index, offset, val, size;
 
 	dwc_ddrphy_apb_wr(0xd0000,0x0);
-	size = sizeof(phy_trained_csr) / 8;
+	size = sizeof(phy_cfg) / 8;
 
 	for(index = 0; index < size; index++) {
-		val = phy_trained_csr[index].val;
-		offset = phy_trained_csr[index].offset;
+		val = phy_cfg[index].val;
+		offset = phy_cfg[index].offset;
 
 		dwc_ddrphy_apb_wr(offset, val);
 	}
@@ -1569,19 +1566,19 @@
 	}
 }
 
-void lpddr4_phy_save_trained_csr(void)
+void lpddr4_phy_save_phy(void)
 {
 	int index, offset, size;
 
-	size = sizeof(phy_trained_csr) / 8;
+	size = sizeof(phy_cfg) / 8;
 
 	dwc_ddrphy_apb_wr(0xd0000, 0x0);
 	dwc_ddrphy_apb_wr(0xc0080, 0x3);
 
 
 	for (index = 0; index < size; index++) {
-		offset = phy_trained_csr[index].offset;
-		phy_trained_csr[index].val = dwc_ddrphy_apb_rd(offset);
+		offset = phy_cfg[index].offset;
+		phy_cfg[index].val = dwc_ddrphy_apb_rd(offset);
 	}
 
 	dwc_ddrphy_apb_wr(0xc0080, 0x0);
@@ -1590,11 +1587,8 @@
 
 void lpddr4_phy_cfg(void)
 {
-	/* load the init config */
-	lpddr4_phy_init_cfg();
-
 	/* restore the trained csr */
-	lpddr4_phy_restore_trained_csr();
+	lpddr4_phy_restore_phy();
 
 	/* load the phy PIE image */
 	lpddr4_phy_load_pie();
diff --git a/plat/freescale/imx8mq/ddr/lpddr4_retention.c b/plat/freescale/imx8mq/ddr/lpddr4_retention.c
index 7b534d9..bce5000 100644
--- a/plat/freescale/imx8mq/ddr/lpddr4_retention.c
+++ b/plat/freescale/imx8mq/ddr/lpddr4_retention.c
@@ -27,13 +27,17 @@
 
 static bool trained_csr_saved = false;
 
+void lpddr4_save_umctl2(void);
+void lpddr4_phy_save_phy(void);
+
 void ddrc_enter_retention(void)
 {
 	unsigned int tmp, tmp_t, i;
 
 	/* only need be save once */
 	if (!trained_csr_saved) {
-		lpddr4_phy_save_trained_csr();
+		lpddr4_save_umctl2();
+		lpddr4_phy_save_phy();
 		trained_csr_saved = true;
 	}
 
diff --git a/plat/freescale/imx8mq/ddr/lpddr4_swffc.c b/plat/freescale/imx8mq/ddr/lpddr4_swffc.c
index 6db6f4d..434e8fd 100644
--- a/plat/freescale/imx8mq/ddr/lpddr4_swffc.c
+++ b/plat/freescale/imx8mq/ddr/lpddr4_swffc.c
@@ -11,22 +11,14 @@
 
 #include "lpddr4_dvfs.h"
 
-#define P0_INIT3 0x00D4002D
-#define P0_INIT4 0x00310008
-#define P0_INIT6 0x0066004a
-#define P0_INIT7 0x0006004a
-
-#define P1_INIT3 0x0140009
-#define P1_INIT4 0x00310008
-#define P1_INIT6 0x0066004a
-#define P1_INIT7 0x0006004a
-
 #define HW_DRAM_PLL_CFG0_ADDR     (0x30360000 + 0x60)
 #define HW_DRAM_PLL_CFG1_ADDR     (0x30360000 + 0x64)
 #define HW_DRAM_PLL_CFG2_ADDR     (0x30360000 + 0x68)
 
 #define DFILP_SPT
 
+extern unsigned int default_ddr_pllcfg;
+
 void sscgpll_bypass_enable(unsigned int reg_addr)
 {
 	unsigned int read_data;
@@ -67,16 +59,18 @@
 		case 667:
 			mmio_write_32(HW_DRAM_PLL_CFG2_ADDR, 0x00ece480);
 			break;
-	        case 400:
-	                mmio_write_32(HW_DRAM_PLL_CFG2_ADDR, 0x00ec6984);
+	    case 400:
+	        mmio_write_32(HW_DRAM_PLL_CFG2_ADDR, 0x00ec6984);
 			break;
-	        case 167:
+	    case 167:
 			mmio_write_32(HW_DRAM_PLL_CFG2_ADDR, 0x00f5a406);
 			break;
-	        case 100:
-	                mmio_write_32(HW_DRAM_PLL_CFG2_ADDR, 0x015dea96);
+	    case 100:
+	        mmio_write_32(HW_DRAM_PLL_CFG2_ADDR, 0x015dea96);
 			break;
-
+		case 0:
+	        mmio_write_32(HW_DRAM_PLL_CFG2_ADDR, default_ddr_pllcfg);
+			break;			
 		default:
 			printf("Input freq=%d error.\n",freq);
 	}
@@ -118,24 +112,24 @@
 
 	/* setting for 3200 mts */
 	if(target_freq==0) {
-		mr   = P0_INIT3 >> 16;
-		emr  = P0_INIT3 & 0xFFFF;
-		emr2 = P0_INIT4 >> 16;
-		emr3 = P0_INIT4 & 0xFFFF;
-		mr11 = P0_INIT6 >> 16;
-		mr12 = P0_INIT6 & 0xFFFF;
-		mr22 = P0_INIT7 >> 16;
-		mr14 = P0_INIT7 & 0xFFFF;
+		mr   = mmio_read_32(DDRC_INIT3(0)) >> 16;
+		emr  = mmio_read_32(DDRC_INIT3(0)) & 0xFFFF;
+		emr2 = mmio_read_32(DDRC_INIT4(0)) >> 16;
+		emr3 = mmio_read_32(DDRC_INIT4(0)) & 0xFFFF;
+		mr11 = mmio_read_32(DDRC_INIT6(0)) >> 16;
+		mr12 = mmio_read_32(DDRC_INIT6(0)) & 0xFFFF;
+		mr22 = mmio_read_32(DDRC_INIT7(0)) >> 16;
+		mr14 = mmio_read_32(DDRC_INIT7(0)) & 0xFFFF;
 	} else {
 	/* setting for 667 mts */
-		mr   = P1_INIT3 >> 16;
-		emr  = P1_INIT3 & 0xFFFF;
-		emr2 = P1_INIT4 >> 16;
-		emr3 = P1_INIT4 & 0xFFFF;
-		mr11 = P1_INIT6 >> 16;
-		mr12 = P1_INIT6 & 0xFFFF;
-		mr22 = P1_INIT7 >> 16;
-		mr14 = P1_INIT7 & 0xFFFF;
+		mr   = mmio_read_32(DDRC_FREQ1_INIT3(0)) >> 16;
+		emr  = mmio_read_32(DDRC_FREQ1_INIT3(0)) & 0xFFFF;
+		emr2 = mmio_read_32(DDRC_FREQ1_INIT4(0)) >> 16;
+		emr3 = mmio_read_32(DDRC_FREQ1_INIT4(0)) & 0xFFFF;
+		mr11 = mmio_read_32(DDRC_FREQ1_INIT6(0)) >> 16;
+		mr12 = mmio_read_32(DDRC_FREQ1_INIT6(0)) & 0xFFFF;
+		mr22 = mmio_read_32(DDRC_FREQ1_INIT7(0)) >> 16;
+		mr14 = mmio_read_32(DDRC_FREQ1_INIT7(0)) & 0xFFFF;
 	}
 
 	tmp = (init_fsp== 1) ? 0x2 <<6 : 0x1 <<6;
@@ -203,10 +197,10 @@
 	mmio_write_32(DDRC_FREQ1_DERATEEN(0), tmp); /* ddrc_derate_enable, bit 0 */
 	tmp= mmio_read_32(DDRC_ZQCTL0(0));
 	tmp |= 0x80000000;
-	mmio_write_32(DDRC_ZQCTL0(0), tmp); /* ddrc_derate_enable, bit 0 */
+	mmio_write_32(DDRC_ZQCTL0(0), tmp); 
 	tmp= mmio_read_32(DDRC_FREQ1_ZQCTL0(0));
 	tmp |= 0x80000000;
-	mmio_write_32(DDRC_FREQ1_ZQCTL0(0), tmp); /* ddrc_derate_enable, bit 0 */
+	mmio_write_32(DDRC_FREQ1_ZQCTL0(0), tmp); 
 
 	/* 12. set PWRCTL.selfref_en=0 */
 	tmp= mmio_read_32(DDRC_PWRCTL(0));
@@ -275,7 +269,7 @@
 	/* Q4: only for legacy PHY, so here can skipped */
 	tmp= mmio_read_32(DDRC_DFIMISC(0));
 	tmp &= 0xFF; 
-	tmp |= (target_freq << 8);  /* should be 0 */
+	tmp |= (target_freq << 8);  
 	mmio_write_32(DDRC_DFIMISC(0),tmp);
 	tmp |= 0x20;
 	mmio_write_32(DDRC_DFIMISC(0),tmp);
@@ -288,16 +282,19 @@
 	/* switch_clocks for target frequency */
 	if(target_freq==0x1) {
 	/*	mmio_write_32(CCM_IP_CLK_ROOT_GEN_TAGET_CLR(1),(0x7<<24)|(0x7<<16)); */
-		mmio_write_32(0x3038a088, (0x7 << 24) | (0x7 << 16));
+		//mmio_write_32(0x3038a088, (0x7 << 24) | (0x7 << 16));
 	/*	mmio_write_32(CCM_IP_CLK_ROOT_GEN_TAGET_SET(1),(0x4<<24)|(0x4<<16)); */
-		mmio_write_32(0x3038a084, (0x4 << 24) | (0x4 << 16)); //to source 4 --800MHz/5
+		//mmio_write_32(0x3038a084, (0x4 << 24) | (0x4 << 16)); //to source 4 --800MHz/5
 		DDR_PLL_CONFIG_FREQ(167);
 	} else {
-		DDR_PLL_CONFIG_FREQ(800);
+		if(default_ddr_pllcfg)
+			DDR_PLL_CONFIG_FREQ(0);
+		else
+			DDR_PLL_CONFIG_FREQ(800);
 	/*	mmio_write_32(CCM_IP_CLK_ROOT_GEN_TAGET_CLR(1),(0x7<<24)|(0x7<<16)); */
-		mmio_write_32(0x3038a088, (0x7 << 24) | (0x7 << 16));
+		//mmio_write_32(0x3038a088, (0x7 << 24) | (0x7 << 16));
 	/*	mmio_write_32(CCM_IP_CLK_ROOT_GEN_TAGET_SET(1),(0x4<<24)|(0x3<<16)); */
-		mmio_write_32(0x3038a084, (0x4 << 24) | (0x3 << 16)); //to source 4 --800MHz/4*/
+		//mmio_write_32(0x3038a084, (0x4 << 24) | (0x3 << 16)); //to source 4 --800MHz/4*/
 	}
 
 	/* dfi_init_start de-assert */
diff --git a/plat/freescale/imx8mq/include/soc.h b/plat/freescale/imx8mq/include/soc.h
index 0c55a9c..7c9de5c 100644
--- a/plat/freescale/imx8mq/include/soc.h
+++ b/plat/freescale/imx8mq/include/soc.h
@@ -24,6 +24,7 @@
 void imx_clear_rbc_count(void);
 
 void lpddr4_cfg_umctl2(void);
+void lpddr4_save_umctl2(void);
 void lpddr4_phy_cfg(void);
 void lpddr4_phy_save_trained_csr(void);
 void lpddr4_switch_to_3200(void);