aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-socfpga/misc_gen5.c
diff options
context:
space:
mode:
authorMarek Vasut <marex@denx.de>2019-04-16 22:28:08 +0200
committerMarek Vasut <marex@denx.de>2019-04-29 10:08:56 +0200
commit72c347ced8c09f8a61452c884e992c444f555fe2 (patch)
tree7cb994f0967066d7b5b265a7e5caca841d34340a /arch/arm/mach-socfpga/misc_gen5.c
parentba2cfcee889db2de099c46a60090624edf202a81 (diff)
downloadu-boot-72c347ced8c09f8a61452c884e992c444f555fe2.tar.gz
ARM: socfpga: Add support for selecting bridges in bridge command
Add optional "mask" argument to the SoCFPGA bridge command, to select which bridges should be enabled/disabled. This allows the user to avoid enabling bridges which are not connected into the FPGA fabric. Default behavior is to enable/disable all bridges. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Chin Liang See <chin.liang.see@intel.com> Cc: Dinh Nguyen <dinguyen@kernel.org> Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com> Cc: Tien Fong Chee <tien.fong.chee@intel.com>
Diffstat (limited to 'arch/arm/mach-socfpga/misc_gen5.c')
-rw-r--r--arch/arm/mach-socfpga/misc_gen5.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/arch/arm/mach-socfpga/misc_gen5.c b/arch/arm/mach-socfpga/misc_gen5.c
index 9865f5b5b12..dda95e8237f 100644
--- a/arch/arm/mach-socfpga/misc_gen5.c
+++ b/arch/arm/mach-socfpga/misc_gen5.c
@@ -239,9 +239,19 @@ static void socfpga_sdram_apply_static_cfg(void)
: : "r"(val), "r"(&sdr_ctrl->static_cfg) : "memory", "cc");
}
-void do_bridge_reset(int enable)
+void do_bridge_reset(int enable, unsigned int mask)
{
+ int i;
+
if (enable) {
+ socfpga_bridges_set_handoff_regs(!(mask & BIT(0)),
+ !(mask & BIT(1)),
+ !(mask & BIT(2)));
+ for (i = 0; i < 2; i++) { /* Reload SW setting cache */
+ iswgrp_handoff[i] =
+ readl(&sysmgr_regs->iswgrp_handoff[i]);
+ }
+
writel(iswgrp_handoff[2], &sysmgr_regs->fpgaintfgrp_module);
socfpga_sdram_apply_static_cfg();
writel(iswgrp_handoff[3], &sdr_ctrl->fpgaport_rst);