From 47a766f95015e17f32f2467984a1e018964bcffc Mon Sep 17 00:00:00 2001
From: Michal Simek <michal.simek@xilinx.com>
Date: Mon, 28 Jan 2019 11:12:41 +0100
Subject: [PATCH] arm64: versal: Move IOU_SWITCH_DIVISOR0 to Kconfig

Move hardcoded IOU_SWITCH_DIVISOR0 to Kconfig to be able to set it up
for different platforms.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---
 arch/arm/mach-versal/Kconfig | 6 ++++++
 board/xilinx/versal/board.c  | 5 ++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-versal/Kconfig b/arch/arm/mach-versal/Kconfig
index f291800bc9..26d1756371 100644
--- a/arch/arm/mach-versal/Kconfig
+++ b/arch/arm/mach-versal/Kconfig
@@ -41,6 +41,12 @@ config VERSAL_OF_BOARD_DTB_ADDR
 	default 0x1000
 	depends on OF_BOARD
 
+config IOU_SWITCH_DIVISOR0
+	hex "IOU switch divisor0"
+	default 0x20
+	help
+	  Setup time clock divisor for input clock.
+
 config SYS_MEM_RSVD_FOR_MMU
 	bool "Reserve memory for MMU Table"
 	help
diff --git a/board/xilinx/versal/board.c b/board/xilinx/versal/board.c
index fe61125d92..90751477b5 100644
--- a/board/xilinx/versal/board.c
+++ b/board/xilinx/versal/board.c
@@ -26,8 +26,11 @@ int board_early_init_r(void)
 	if (current_el() != 3)
 		return 0;
 
+	debug("iou_switch ctrl div0 %x\n",
+	      readl(&crlapb_base->iou_switch_ctrl));
+
 	writel(IOU_SWITCH_CTRL_CLKACT_BIT |
-	       (0x20 << IOU_SWITCH_CTRL_DIVISOR0_SHIFT),
+	       (CONFIG_IOU_SWITCH_DIVISOR0 << IOU_SWITCH_CTRL_DIVISOR0_SHIFT),
 	       &crlapb_base->iou_switch_ctrl);
 
 	/* Global timer init - Program time stamp reference clk */
-- 
2.39.5