summaryrefslogtreecommitdiffstats
path: root/arch/arm/cpu/armv7/socfpga/spl.c
diff options
context:
space:
mode:
authorChin Liang See <clsee@altera.com>2013-12-02 12:01:39 -0600
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>2013-12-03 14:38:56 +0100
commit4c54419737ffbfadd605263d97a1357bb03c04e8 (patch)
tree3b603e925909764e8903b605693486801e6bf94a /arch/arm/cpu/armv7/socfpga/spl.c
parent77524d2c9d81e97c54e704b65c8a02e4bec0f441 (diff)
downloadtalos-obmc-uboot-4c54419737ffbfadd605263d97a1357bb03c04e8.tar.gz
talos-obmc-uboot-4c54419737ffbfadd605263d97a1357bb03c04e8.zip
socfpga: Adding Freeze Controller driver
Adding Freeze Controller driver. All HPS IOs need to be in freeze state during pin mux or IO buffer configuration. It is to avoid any glitch which might happen during the configuration from propagating to external devices. Signed-off-by: Chin Liang See <clsee@altera.com> Cc: Wolfgang Denk <wd@denx.de> CC: Pavel Machek <pavel@denx.de> Cc: Dinh Nguyen <dinguyen@altera.com> Cc: Tom Rini <trini@ti.com> Cc: Albert Aribaud <albert.u.boot@aribaud.net>
Diffstat (limited to 'arch/arm/cpu/armv7/socfpga/spl.c')
-rw-r--r--arch/arm/cpu/armv7/socfpga/spl.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/arm/cpu/armv7/socfpga/spl.c b/arch/arm/cpu/armv7/socfpga/spl.c
index 74bceab183..36a00c39b7 100644
--- a/arch/arm/cpu/armv7/socfpga/spl.c
+++ b/arch/arm/cpu/armv7/socfpga/spl.c
@@ -13,6 +13,7 @@
#include <asm/arch/reset_manager.h>
#include <spl.h>
#include <asm/arch/system_manager.h>
+#include <asm/arch/freeze_controller.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -27,6 +28,10 @@ u32 spl_boot_device(void)
void spl_board_init(void)
{
#ifndef CONFIG_SOCFPGA_VIRTUAL_TARGET
+ debug("Freezing all I/O banks\n");
+ /* freeze all IO banks */
+ sys_mgr_frzctrl_freeze_req();
+
/* configure the pin muxing through system manager */
sysmgr_pinmux_init();
#endif /* CONFIG_SOCFPGA_VIRTUAL_TARGET */
@@ -34,6 +39,10 @@ void spl_board_init(void)
/* de-assert reset for peripherals and bridges based on handoff */
reset_deassert_peripherals_handoff();
+ debug("Unfreezing/Thaw all I/O banks\n");
+ /* unfreeze / thaw all IO banks */
+ sys_mgr_frzctrl_thaw_req();
+
/* enable console uart printing */
preloader_console_init();
}
OpenPOWER on IntegriCloud