ARM: renesas: Add generic timer initialization for V3U Falcon
authorKoji Matsuoka <koji.matsuoka.xm@renesas.com>
Tue, 21 Jul 2020 06:21:53 +0000 (15:21 +0900)
committerMarek Vasut <marek.vasut+renesas@gmail.com>
Thu, 24 Jun 2021 18:22:18 +0000 (20:22 +0200)
Init the Generic Timer for V3U Falcon in early phase

Signed-off-by: Koji Matsuoka <koji.matsuoka.xm@renesas.com>
Signed-off-by: Hai Pham <hai.pham.ud@renesas.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
board/renesas/falcon/falcon.c

index 3e591e4..c3241bc 100644 (file)
@@ -20,6 +20,31 @@ DECLARE_GLOBAL_DATA_PTR;
 #define CPGWPR         0xE6150000
 #define CPGWPCR                0xE6150004
 
+#define EXTAL_CLK      16666600u
+#define CNTCR_BASE     0xE6080000
+#define CNTFID0                (CNTCR_BASE + 0x020)
+#define CNTCR_EN       BIT(0)
+
+static void init_generic_timer(void)
+{
+       u32 freq;
+
+       /* Set frequency data in CNTFID0 */
+       freq = EXTAL_CLK;
+
+       /* Update memory mapped and register based freqency */
+       asm volatile ("msr cntfrq_el0, %0" :: "r" (freq));
+       writel(freq, CNTFID0);
+
+       /* Enable counter */
+       setbits_le32(CNTCR_BASE, CNTCR_EN);
+}
+
+void s_init(void)
+{
+       init_generic_timer();
+}
+
 int board_early_init_f(void)
 {
        /* Unlock CPG access */