aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ppc/syslib/ipic.h
diff options
context:
space:
mode:
authorKim Phillips <kim.phillips@freescale.com>2006-08-25 11:58:53 -0500
committerPaul Mackerras <paulus@samba.org>2006-08-30 10:34:33 +1000
commitbf4152dd7ccb6c060d786200a893dfe30193a07f (patch)
tree74b045430956862ee987dad4e33ab99b194ac65d /arch/ppc/syslib/ipic.h
parent[POWERPC] Use mpc8641hpcn PIC base address from dev tree. (diff)
downloadlinux-dev-bf4152dd7ccb6c060d786200a893dfe30193a07f.tar.xz
linux-dev-bf4152dd7ccb6c060d786200a893dfe30193a07f.zip
[POWERPC] back up old school ipic.[hc] to arch/ppc
Keep from breaking 83xx arch/ppc build. Back up old school arch/powerpc/sysdev/ipic.[hc] to arch/ppc/syslib. Signed-off-by: Kim Phillips <kim.phillips@freescale.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/ppc/syslib/ipic.h')
-rw-r--r--arch/ppc/syslib/ipic.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/arch/ppc/syslib/ipic.h b/arch/ppc/syslib/ipic.h
new file mode 100644
index 000000000000..a60c9d18bb7f
--- /dev/null
+++ b/arch/ppc/syslib/ipic.h
@@ -0,0 +1,47 @@
+/*
+ * IPIC private definitions and structure.
+ *
+ * Maintainer: Kumar Gala <galak@kernel.crashing.org>
+ *
+ * Copyright 2005 Freescale Semiconductor, Inc
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ */
+#ifndef __IPIC_H__
+#define __IPIC_H__
+
+#include <asm/ipic.h>
+
+#define MPC83xx_IPIC_SIZE (0x00100)
+
+/* System Global Interrupt Configuration Register */
+#define SICFR_IPSA 0x00010000
+#define SICFR_IPSD 0x00080000
+#define SICFR_MPSA 0x00200000
+#define SICFR_MPSB 0x00400000
+
+/* System External Interrupt Mask Register */
+#define SEMSR_SIRQ0 0x00008000
+
+/* System Error Control Register */
+#define SERCR_MCPR 0x00000001
+
+struct ipic {
+ volatile u32 __iomem *regs;
+ unsigned int irq_offset;
+};
+
+struct ipic_info {
+ u8 pend; /* pending register offset from base */
+ u8 mask; /* mask register offset from base */
+ u8 prio; /* priority register offset from base */
+ u8 force; /* force register offset from base */
+ u8 bit; /* register bit position (as per doc)
+ bit mask = 1 << (31 - bit) */
+ u8 prio_mask; /* priority mask value */
+};
+
+#endif /* __IPIC_H__ */