From: Duje Mihanović <duje.mihanovic@skole.hr>
Date: Thu, 26 Dec 2024 12:41:50 +0000 (+0100)
Subject: refactor timer_init
X-Git-Tag: v2025.01-rc5-pxa1908~9
X-Git-Url: http://git.dujemihanovic.xyz/html/static/gitweb.css?a=commitdiff_plain;h=d9778f7ef961310958539716f524ec9cfaa81551;p=u-boot.git

refactor timer_init
---

diff --git a/board/samsung/coreprimevelte/coreprimevelte.c b/board/samsung/coreprimevelte/coreprimevelte.c
index 7a8fe71eff..170566df74 100644
--- a/board/samsung/coreprimevelte/coreprimevelte.c
+++ b/board/samsung/coreprimevelte/coreprimevelte.c
@@ -1,15 +1,28 @@
-#include <debug_uart.h>
 #include <fdtdec.h>
 #include <asm/io.h>
+#include <asm/global_data.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+/* Timer constants */
+#define APBC_COUNTER_CLK_SEL	0xd4015064
+#define COUNTER_BASE		0xd4101000
+#define COUNTER_EN		BIT(0)
+#define COUNTER_HALT_ON_DEBUG	BIT(1)
 
 int timer_init(void)
 {
-	u32 tmp = readl(0xd4015064);
+	u32 tmp = readl(APBC_COUNTER_CLK_SEL);
+
 	if ((tmp >> 16) != 0x319)
 		return -1;
 
-	writel(tmp | 1, 0xd4015064);
-	writel(3, 0xd4101000);
+	/* Set timer frequency to 26MHz */
+	writel(tmp | 1, APBC_COUNTER_CLK_SEL);
+	writel(COUNTER_EN | COUNTER_HALT_ON_DEBUG, COUNTER_BASE);
+
+	gd->arch.timer_rate_hz = 26000000;
+
 	return 0;
 }