diff options
| author | Tom Rini <trini@konsulko.com> | 2017-05-18 17:17:42 -0400 | 
|---|---|---|
| committer | Tom Rini <trini@konsulko.com> | 2017-05-18 17:17:42 -0400 | 
| commit | 753a4dde970c2bc9022321f1093e544e3a150f6e (patch) | |
| tree | 6973921effd3b964773b8f60531580ad16f18190 /arch/arm/mach-socfpga/reset_manager.c | |
| parent | a0bdf7b31d91eec702ef9b1f295bb2e8439e8f29 (diff) | |
| parent | d89e979c42892db572c4ef5d56bc207075953f58 (diff) | |
Merge branch 'master' of git://git.denx.de/u-boot-socfpga
Diffstat (limited to 'arch/arm/mach-socfpga/reset_manager.c')
| -rw-r--r-- | arch/arm/mach-socfpga/reset_manager.c | 93 | 
1 files changed, 2 insertions, 91 deletions
| diff --git a/arch/arm/mach-socfpga/reset_manager.c b/arch/arm/mach-socfpga/reset_manager.c index b6beaa2f220..29438ed533d 100644 --- a/arch/arm/mach-socfpga/reset_manager.c +++ b/arch/arm/mach-socfpga/reset_manager.c @@ -7,53 +7,12 @@  #include <common.h>  #include <asm/io.h> -#include <asm/arch/fpga_manager.h>  #include <asm/arch/reset_manager.h> -#include <asm/arch/system_manager.h>  DECLARE_GLOBAL_DATA_PTR;  static const struct socfpga_reset_manager *reset_manager_base =  		(void *)SOCFPGA_RSTMGR_ADDRESS; -static struct socfpga_system_manager *sysmgr_regs = -	(struct socfpga_system_manager *)SOCFPGA_SYSMGR_ADDRESS; - -/* Assert or de-assert SoCFPGA reset manager reset. */ -void socfpga_per_reset(u32 reset, int set) -{ -	const void *reg; - -	if (RSTMGR_BANK(reset) == 0) -		reg = &reset_manager_base->mpu_mod_reset; -	else if (RSTMGR_BANK(reset) == 1) -		reg = &reset_manager_base->per_mod_reset; -	else if (RSTMGR_BANK(reset) == 2) -		reg = &reset_manager_base->per2_mod_reset; -	else if (RSTMGR_BANK(reset) == 3) -		reg = &reset_manager_base->brg_mod_reset; -	else if (RSTMGR_BANK(reset) == 4) -		reg = &reset_manager_base->misc_mod_reset; -	else	/* Invalid reset register, do nothing */ -		return; - -	if (set) -		setbits_le32(reg, 1 << RSTMGR_RESET(reset)); -	else -		clrbits_le32(reg, 1 << RSTMGR_RESET(reset)); -} - -/* - * Assert reset on every peripheral but L4WD0. - * Watchdog must be kept intact to prevent glitches - * and/or hangs. - */ -void socfpga_per_reset_all(void) -{ -	const u32 l4wd0 = 1 << RSTMGR_RESET(SOCFPGA_RESET(L4WD0)); - -	writel(~l4wd0, &reset_manager_base->per_mod_reset); -	writel(0xffffffff, &reset_manager_base->per2_mod_reset); -}  /*   * Write the reset manager register to cause reset @@ -61,8 +20,8 @@ void socfpga_per_reset_all(void)  void reset_cpu(ulong addr)  {  	/* request a warm reset */ -	writel((1 << RSTMGR_CTRL_SWWARMRSTREQ_LSB), -		&reset_manager_base->ctrl); +	writel(1 << RSTMGR_CTRL_SWWARMRSTREQ_LSB, +	       &reset_manager_base->ctrl);  	/*  	 * infinite loop here as watchdog will trigger and reset  	 * the processor @@ -70,51 +29,3 @@ void reset_cpu(ulong addr)  	while (1)  		;  } - -/* - * Release peripherals from reset based on handoff - */ -void reset_deassert_peripherals_handoff(void) -{ -	writel(0, &reset_manager_base->per_mod_reset); -} - -#if defined(CONFIG_SOCFPGA_VIRTUAL_TARGET) -void socfpga_bridges_reset(int enable) -{ -	/* For SoCFPGA-VT, this is NOP. */ -} -#else - -#define L3REGS_REMAP_LWHPS2FPGA_MASK	0x10 -#define L3REGS_REMAP_HPS2FPGA_MASK	0x08 -#define L3REGS_REMAP_OCRAM_MASK		0x01 - -void socfpga_bridges_reset(int enable) -{ -	const uint32_t l3mask = L3REGS_REMAP_LWHPS2FPGA_MASK | -				L3REGS_REMAP_HPS2FPGA_MASK | -				L3REGS_REMAP_OCRAM_MASK; - -	if (enable) { -		/* brdmodrst */ -		writel(0xffffffff, &reset_manager_base->brg_mod_reset); -	} else { -		writel(0, &sysmgr_regs->iswgrp_handoff[0]); -		writel(l3mask, &sysmgr_regs->iswgrp_handoff[1]); - -		/* Check signal from FPGA. */ -		if (!fpgamgr_test_fpga_ready()) { -			/* FPGA not ready, do nothing. */ -			printf("%s: FPGA not ready, aborting.\n", __func__); -			return; -		} - -		/* brdmodrst */ -		writel(0, &reset_manager_base->brg_mod_reset); - -		/* Remap the bridges into memory map */ -		writel(l3mask, SOCFPGA_L3REGS_ADDRESS); -	} -} -#endif | 
