]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - arch/arm/mach-aspeed/ast2500/sdram_ast2500.c
aspeed: Refactor AST2500 RAM Driver and Sysreset Driver
[people/ms/u-boot.git] / arch / arm / mach-aspeed / ast2500 / sdram_ast2500.c
index cb6e03fa3426afa1d0a452e156aef8ec24ad0f43..efcf452b1788758f0b95283dab7970432dbf2c9c 100644 (file)
@@ -12,6 +12,7 @@
 #include <errno.h>
 #include <ram.h>
 #include <regmap.h>
+#include <reset.h>
 #include <asm/io.h>
 #include <asm/arch/scu_ast2500.h>
 #include <asm/arch/sdram_ast2500.h>
@@ -328,6 +329,7 @@ static void ast2500_sdrammc_lock(struct dram_info *info)
 
 static int ast2500_sdrammc_probe(struct udevice *dev)
 {
+       struct reset_ctl reset_ctl;
        struct dram_info *priv = (struct dram_info *)dev_get_priv(dev);
        struct ast2500_sdrammc_regs *regs = priv->regs;
        int i;
@@ -345,9 +347,15 @@ static int ast2500_sdrammc_probe(struct udevice *dev)
        }
 
        clk_set_rate(&priv->ddr_clk, priv->clock_rate);
-       ret = ast_wdt_reset_masked(ast_get_wdt(0), WDT_RESET_SDRAM);
+       ret = reset_get_by_index(dev, 0, &reset_ctl);
        if (ret) {
-               debug("%s(): SDRAM reset failed\n", __func__);
+               debug("%s(): Failed to get reset signal\n", __func__);
+               return ret;
+       }
+
+       ret = reset_assert(&reset_ctl);
+       if (ret) {
+               debug("%s(): SDRAM reset failed: %u\n", __func__, ret);
                return ret;
        }