patch-2.4.4 linux/arch/arm/mach-ebsa110/irq.c
Next file: linux/arch/arm/mach-ebsa110/leds.c
Previous file: linux/arch/arm/mach-ebsa110/io.c
Back to the patch index
Back to the overall index
- Lines: 56
- Date:
Thu Apr 12 12:20:31 2001
- Orig file:
v2.4.3/linux/arch/arm/mach-ebsa110/irq.c
- Orig date:
Wed Dec 31 16:00:00 1969
diff -u --recursive --new-file v2.4.3/linux/arch/arm/mach-ebsa110/irq.c linux/arch/arm/mach-ebsa110/irq.c
@@ -0,0 +1,55 @@
+/*
+ * linux/arch/arm/mach-ebsa110/irq.c
+ *
+ * Copyright (C) 1996-1998 Russell King
+ *
+ * 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.
+ *
+ * Changelog:
+ * 22-08-1998 RMK Restructured IRQ routines
+ */
+#include <linux/init.h>
+
+#include <asm/mach/irq.h>
+#include <asm/hardware.h>
+#include <asm/io.h>
+#include <asm/irq.h>
+#include <asm/system.h>
+
+#include "hardware.h"
+
+static void ebsa110_mask_irq(unsigned int irq)
+{
+ __raw_writeb(1 << irq, IRQ_MCLR);
+}
+
+static void ebsa110_unmask_irq(unsigned int irq)
+{
+ __raw_writeb(1 << irq, IRQ_MSET);
+}
+
+void __init ebsa110_init_irq(void)
+{
+ unsigned long flags;
+ int irq;
+
+ save_flags_cli (flags);
+ __raw_writeb(0xff, IRQ_MCLR);
+ __raw_writeb(0x55, IRQ_MSET);
+ __raw_writeb(0x00, IRQ_MSET);
+ if (__raw_readb(IRQ_MASK) != 0x55)
+ while (1);
+ __raw_writeb(0xff, IRQ_MCLR); /* clear all interrupt enables */
+ restore_flags (flags);
+
+ for (irq = 0; irq < NR_IRQS; irq++) {
+ irq_desc[irq].valid = 1;
+ irq_desc[irq].probe_ok = 1;
+ irq_desc[irq].mask_ack = ebsa110_mask_irq;
+ irq_desc[irq].mask = ebsa110_mask_irq;
+ irq_desc[irq].unmask = ebsa110_unmask_irq;
+ }
+}
+
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)