diff options
-rw-r--r-- | arch/arm/mach-zynqmp/include/mach/psu_init_gpl.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-zynqmp/psu_spl_init.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-zynqmp/spl.c | 2 | ||||
-rw-r--r-- | board/xilinx/zynqmp/zynqmp-zcu100-revC/psu_init_gpl.c | 7 |
4 files changed, 18 insertions, 1 deletions
diff --git a/arch/arm/mach-zynqmp/include/mach/psu_init_gpl.h b/arch/arm/mach-zynqmp/include/mach/psu_init_gpl.h index 15e54c0493..e37acda2f8 100644 --- a/arch/arm/mach-zynqmp/include/mach/psu_init_gpl.h +++ b/arch/arm/mach-zynqmp/include/mach/psu_init_gpl.h @@ -21,5 +21,6 @@ void prog_reg(unsigned long addr, unsigned long mask, unsigned long shift, unsigned long value); int psu_init(void); +unsigned long psu_post_config_data(void); #endif /* _PSU_INIT_GPL_H_ */ diff --git a/arch/arm/mach-zynqmp/psu_spl_init.c b/arch/arm/mach-zynqmp/psu_spl_init.c index b357de3235..b6abdfd608 100644 --- a/arch/arm/mach-zynqmp/psu_spl_init.c +++ b/arch/arm/mach-zynqmp/psu_spl_init.c @@ -77,3 +77,12 @@ __weak int psu_init(void) */ return -1; } + +__weak unsigned long psu_post_config_data(void) +{ + /* + * This function is overridden by the one in + * board/xilinx/zynqmp/(platform)/psu_init_gpl.c, if it exists. + */ + return 0; +} diff --git a/arch/arm/mach-zynqmp/spl.c b/arch/arm/mach-zynqmp/spl.c index a2079535a5..527646875a 100644 --- a/arch/arm/mach-zynqmp/spl.c +++ b/arch/arm/mach-zynqmp/spl.c @@ -13,6 +13,7 @@ #include <asm/io.h> #include <asm/spl.h> #include <asm/arch/hardware.h> +#include <asm/arch/psu_init_gpl.h> #include <asm/arch/sys_proto.h> void board_init_f(ulong dummy) @@ -53,6 +54,7 @@ void spl_board_init(void) preloader_console_init(); ps_mode_reset(MODE_RESET); board_init(); + psu_post_config_data(); } #endif diff --git a/board/xilinx/zynqmp/zynqmp-zcu100-revC/psu_init_gpl.c b/board/xilinx/zynqmp/zynqmp-zcu100-revC/psu_init_gpl.c index e1fdabaeb9..585b3afc21 100644 --- a/board/xilinx/zynqmp/zynqmp-zcu100-revC/psu_init_gpl.c +++ b/board/xilinx/zynqmp/zynqmp-zcu100-revC/psu_init_gpl.c @@ -409,7 +409,6 @@ static unsigned long psu_mio_init_data(void) psu_mask_write(0xFF18007C, 0x000000FEU, 0x00000000U); psu_mask_write(0xFF180080, 0x000000FEU, 0x00000008U); psu_mask_write(0xFF180084, 0x000000FEU, 0x00000008U); - psu_mask_write(0xFF180088, 0x000000FEU, 0x00000008U); psu_mask_write(0xFF18008C, 0x000000FEU, 0x00000000U); psu_mask_write(0xFF180090, 0x000000FEU, 0x00000000U); psu_mask_write(0xFF180094, 0x000000FEU, 0x00000000U); @@ -990,3 +989,9 @@ int psu_init(void) return 1; return 0; } + +unsigned long psu_post_config_data(void) +{ + psu_mask_write(0xFF180088, 0x000000FEU, 0x00000008U); + return 0; +} |