patch-2.4.3 linux/arch/arm/mach-integrator/time.c

Next file: linux/arch/arm/mach-sa1100/arch.c
Previous file: linux/arch/arm/mach-integrator/pci_v3.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.2/linux/arch/arm/mach-integrator/time.c linux/arch/arm/mach-integrator/time.c
@@ -0,0 +1,45 @@
+/*
+ *  linux/arch/arm/mach-integrator/time.c
+ *
+ *  Copyright (C) 2000 Deep Blue Solutions
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <linux/init.h>
+
+#include <asm/hardware.h>
+
+#define RTC_DR		(*(unsigned long *)(IO_ADDRESS(INTEGRATOR_RTC_BASE) + 0))
+#define RTC_MR		(*(unsigned long *)(IO_ADDRESS(INTEGRATOR_RTC_BASE) + 4))
+#define RTC_STAT	(*(unsigned long *)(IO_ADDRESS(INTEGRATOR_RTC_BASE) + 8))
+#define RTC_EOI		(*(unsigned long *)(IO_ADDRESS(INTEGRATOR_RTC_BASE) + 8))
+#define RTC_LR		(*(unsigned long *)(IO_ADDRESS(INTEGRATOR_RTC_BASE) + 12))
+#define RTC_CR		(*(unsigned long *)(IO_ADDRESS(INTEGRATOR_RTC_BASE) + 16))
+
+#define RTC_CR_MIE	0x00000001
+
+extern int (*set_rtc)(void);
+
+static int integrator_set_rtc(void)
+{
+	RTC_LR = xtime.tv_sec;
+	return 1;
+}
+
+static int integrator_rtc_init(void)
+{
+	RTC_CR = 0;
+	RTC_EOI = 0;
+
+	xtime.tv_sec = RTC_DR;
+
+	set_rtc = integrator_set_rtc;
+
+	return 0;
+}
+
+__initcall(integrator_rtc_init);

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)