am43xx: Do not allow EMIF to control DDR_RESET in rtconly config
authorDave Gerlach <d-gerlach@ti.com>
Sat, 17 Mar 2018 07:54:30 +0000 (13:24 +0530)
committerTom Rini <trini@konsulko.com>
Fri, 6 Apr 2018 21:04:33 +0000 (17:04 -0400)
Prevent EMIF control of DDR_RESET line on DDR3 am43xx platforms for
am43xx_evm_rtconly_config. Without this DDR is unstable and can become
corrupted after multiple iterations of RTC+DDR mode.

Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
[j-keerthy@ti.com Ported to latest master branch]
Signed-off-by: Keerthy <j-keerthy@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
arch/arm/mach-omap2/am33xx/emif4.c

index 68c7705178710804b16fa4814c7b53b1d5ad8268..9b429c9262802c8c86aa5ff0fce55489596e6032 100644 (file)
@@ -95,8 +95,13 @@ void config_ddr(unsigned int pll, const struct ctrl_ioregs *ioregs,
        writel(DDR_CKE_CTRL_NORMAL, &ddrctrl->ddrckectrl);
 
        if (emif_sdram_type(regs->sdram_config) == EMIF_SDRAM_TYPE_DDR3)
+#ifndef CONFIG_SPL_RTC_DDR_SUPPORT
                /* Allow EMIF to control DDR_RESET */
                writel(0x00000000, &ddrctrl->ddrioctrl);
+#else
+               /* Override EMIF DDR_RESET control */
+               writel(0x80000000, &ddrctrl->ddrioctrl);
+#endif /* CONFIG_SPL_RTC_DDR_SUPPORT */
 #endif
 
        /* Program EMIF instance */