summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/powerpc/mpc55xx/include/irq.h
diff options
context:
space:
mode:
authorThomas Doerfler <Thomas.Doerfler@embedded-brains.de>2010-04-07 06:45:59 +0000
committerThomas Doerfler <Thomas.Doerfler@embedded-brains.de>2010-04-07 06:45:59 +0000
commit2931336963601e2f03faedfe195e15b69a3ea7dd (patch)
tree83acd3bd63254d93630e075c5f42c37036652b6d /c/src/lib/libcpu/powerpc/mpc55xx/include/irq.h
parentfixed to support GW_LCFM (diff)
downloadrtems-2931336963601e2f03faedfe195e15b69a3ea7dd.tar.bz2
changes to support GW_LCFM
Diffstat (limited to '')
-rw-r--r--c/src/lib/libcpu/powerpc/mpc55xx/include/irq.h71
1 files changed, 64 insertions, 7 deletions
diff --git a/c/src/lib/libcpu/powerpc/mpc55xx/include/irq.h b/c/src/lib/libcpu/powerpc/mpc55xx/include/irq.h
index 6b2be34fe5..fc7ea53744 100644
--- a/c/src/lib/libcpu/powerpc/mpc55xx/include/irq.h
+++ b/c/src/lib/libcpu/powerpc/mpc55xx/include/irq.h
@@ -35,6 +35,8 @@ extern "C" {
/* Basics */
#define MPC55XX_IRQ_MIN 0U
#define MPC55XX_IRQ_MAX 328U
+#define MPC55XX_IRQ_MIN 0U
+#define MPC55XX_IRQ_MAX 328U
#define MPC55XX_IRQ_BASE MPC55XX_IRQ_MIN
#define MPC55XX_IRQ_NUMBER (MPC55XX_IRQ_MAX + 1U)
@@ -45,15 +47,56 @@ extern "C" {
#define MPC55XX_IRQ_SOFTWARE_GET_REQUEST( i) (i)
#define MPC55XX_IRQ_SOFTWARE_NUMBER (MPC55XX_IRQ_SOFTWARE_MAX + 1U)
+#if ((MPC55XX_CHIP_DERIVATE >= 5510) && (MPC55XX_CHIP_DERIVATE <= 5517))
+#else /*((MPC55XX_CHIP_DERIVATE >= 5510) && (MPC55XX_CHIP_DERIVATE <= 5517))*/
+#endif /*((MPC55XX_CHIP_DERIVATE >= 5510) && (MPC55XX_CHIP_DERIVATE <= 5517))*/
+
+#if ((MPC55XX_CHIP_DERIVATE >= 5510) && (MPC55XX_CHIP_DERIVATE <= 5517))
+
+/* eDMA interrupts */
+#define MPC55XX_IRQ_EDMA_ERROR_LOW 10U
+#define MPC55XX_IRQ_EDMA_REQUEST_LOW_MIN 11U
+#define MPC55XX_IRQ_EDMA_REQUEST_LOW_MAX 26U
+
+#define MPC55XX_IRQ_EDMA_GET_CHANNEL( v) \
+ ((v) - MPC55XX_IRQ_EDMA_REQUEST_LOW_MIN)
+#define MPC55XX_IRQ_EDMA_GET_REQUEST( c) \
+ ((c) + MPC55XX_IRQ_EDMA_REQUEST_LOW_MIN)
+
+/* SIU external interrupts */
+#define MPC55XX_IRQ_SIU_EXTERNAL_0 53U
+#define MPC55XX_IRQ_SIU_EXTERNAL_1 54U
+#define MPC55XX_IRQ_SIU_EXTERNAL_2 55U
+#define MPC55XX_IRQ_SIU_EXTERNAL_3 56U
+#define MPC55XX_IRQ_SIU_EXTERNAL_4_15 57U
+
+/* eMIOS interrupts */
+#define MPC55XX_IRQ_EMIOS_REQUEST_LOW_MIN 58U
+#define MPC55XX_IRQ_EMIOS_REQUEST_LOW_MAX 81U
+#define MPC55XX_IRQ_EMIOS_GET_CHANNEL( v) \
+ ((v) - MPC55XX_IRQ_EMIOS_REQUEST_LOW_MIN)
+#define MPC55XX_IRQ_EMIOS_GET_REQUEST( c) \
+ ((c) + MPC55XX_IRQ_EMIOS_REQUEST_LOW_MIN)
+
+#else /*((MPC55XX_CHIP_DERIVATE >= 5510) && (MPC55XX_CHIP_DERIVATE <= 5517))*/
+
/* eDMA interrupts */
#define MPC55XX_IRQ_EDMA_ERROR_LOW 10U
-#define MPC55XX_IRQ_EDMA_ERROR_HIGH 210U
#define MPC55XX_IRQ_EDMA_REQUEST_LOW_MIN 11U
#define MPC55XX_IRQ_EDMA_REQUEST_LOW_MAX 42U
+
+#define MPC55XX_IRQ_EDMA_ERROR_HIGH 210U
#define MPC55XX_IRQ_EDMA_REQUEST_HIGH_MIN 211U
#define MPC55XX_IRQ_EDMA_REQUEST_HIGH_MAX 242U
-#define MPC55XX_IRQ_EDMA_GET_CHANNEL( v) (((v) > MPC55XX_IRQ_EDMA_REQUEST_LOW_MAX) ? ((v) + 32U - MPC55XX_IRQ_EDMA_REQUEST_HIGH_MIN) : ((v) - MPC55XX_IRQ_EDMA_REQUEST_LOW_MIN))
-#define MPC55XX_IRQ_EDMA_GET_REQUEST( c) (((c) >= 32U) ? ((c) - 32U + MPC55XX_IRQ_EDMA_REQUEST_HIGH_MIN) : ((c) + MPC55XX_IRQ_EDMA_REQUEST_LOW_MIN))
+
+#define MPC55XX_IRQ_EDMA_GET_CHANNEL( v) \
+ (((v) > MPC55XX_IRQ_EDMA_REQUEST_LOW_MAX) \
+ ? ((v) + 32U - MPC55XX_IRQ_EDMA_REQUEST_HIGH_MIN) \
+ : ((v) - MPC55XX_IRQ_EDMA_REQUEST_LOW_MIN))
+#define MPC55XX_IRQ_EDMA_GET_REQUEST( c) \
+ (((c) >= 32U) \
+ ? ((c) - 32U + MPC55XX_IRQ_EDMA_REQUEST_HIGH_MIN) \
+ : ((c) + MPC55XX_IRQ_EDMA_REQUEST_LOW_MIN))
/* SIU external interrupts */
#define MPC55XX_IRQ_SIU_EXTERNAL_0 46U
@@ -67,12 +110,26 @@ extern "C" {
#define MPC55XX_IRQ_EMIOS_REQUEST_LOW_MAX 66U
#define MPC55XX_IRQ_EMIOS_REQUEST_HIGH_MIN 202U
#define MPC55XX_IRQ_EMIOS_REQUEST_HIGH_MAX 209U
-#define MPC55XX_IRQ_EMIOS_GET_CHANNEL( v) (((v) > MPC55XX_IRQ_EMIOS_REQUEST_LOW_MAX) ? ((v) + 16U - MPC55XX_IRQ_EMIOS_REQUEST_HIGH_MIN) : ((v) - MPC55XX_IRQ_EMIOS_REQUEST_LOW_MIN))
-#define MPC55XX_IRQ_EMIOS_GET_REQUEST( c) (((c) >= 16U) ? ((c) - 16U + MPC55XX_IRQ_EMIOS_REQUEST_HIGH_MIN) : ((c) + MPC55XX_IRQ_EMIOS_REQUEST_LOW_MIN))
+
+#define MPC55XX_IRQ_EMIOS_GET_CHANNEL( v) \
+ (((v) > MPC55XX_IRQ_EMIOS_REQUEST_LOW_MAX) \
+ ? ((v) + 16U - MPC55XX_IRQ_EMIOS_REQUEST_HIGH_MIN) \
+ : ((v) - MPC55XX_IRQ_EMIOS_REQUEST_LOW_MIN))
+
+#define MPC55XX_IRQ_EMIOS_GET_REQUEST( c) \
+ (((c) >= 16U) \
+ ? ((c) - 16U + MPC55XX_IRQ_EMIOS_REQUEST_HIGH_MIN) \
+ : ((c) + MPC55XX_IRQ_EMIOS_REQUEST_LOW_MIN))
+
+#endif /*((MPC55XX_CHIP_DERIVATE >= 5510) && (MPC55XX_CHIP_DERIVATE <= 5517))*/
/* Checks */
-#define MPC55XX_IRQ_IS_VALID(v) ((v) >= MPC55XX_IRQ_MIN && (v) <= MPC55XX_IRQ_MAX)
-#define MPC55XX_IRQ_IS_SOFTWARE(v) ((v) >= MPC55XX_IRQ_SOFTWARE_MIN && (v) <= MPC55XX_IRQ_SOFTWARE_MAX)
+#define MPC55XX_IRQ_IS_VALID(v) \
+ ((v) >= MPC55XX_IRQ_MIN && \
+ (v) <= MPC55XX_IRQ_MAX)
+#define MPC55XX_IRQ_IS_SOFTWARE(v) \
+ ((v) >= MPC55XX_IRQ_SOFTWARE_MIN && \
+ (v) <= MPC55XX_IRQ_SOFTWARE_MAX)
/*
* Interrupt controller