arm, am33xx: move rtc32k_enable() to common place
[oweals/u-boot.git] / arch / arm / cpu / armv7 / am33xx / board.c
index 885fb2d20e5a516432ed07a8ecce327dded9edb0..d3b3612432bf930b7bd9cd1484c05a62ecf23763 100644 (file)
@@ -149,3 +149,21 @@ int arch_misc_init(void)
 #endif
        return 0;
 }
+
+#ifdef CONFIG_SPL_BUILD
+void rtc32k_enable(void)
+{
+       struct rtc_regs *rtc = (struct rtc_regs *)RTC_BASE;
+
+       /*
+        * Unlock the RTC's registers.  For more details please see the
+        * RTC_SS section of the TRM.  In order to unlock we need to
+        * write these specific values (keys) in this order.
+        */
+       writel(0x83e70b13, &rtc->kick0r);
+       writel(0x95a4f1e0, &rtc->kick1r);
+
+       /* Enable the RTC 32K OSC by setting bits 3 and 6. */
+       writel((1 << 3) | (1 << 6), &rtc->osc);
+}
+#endif