summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/powerpc/mpc55xx/include/irq.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2010-11-12 12:43:28 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2010-11-12 12:43:28 +0000
commitfe5d5048c6c3fae402c626f17e2e61979c768b55 (patch)
tree2a3a85bb8ea028d0d06b3d6bca6f392dfecf843a /c/src/lib/libcpu/powerpc/mpc55xx/include/irq.h
parent2010-11-11 Joel Sherrill <joel.sherrilL@OARcorp.com> (diff)
downloadrtems-fe5d5048c6c3fae402c626f17e2e61979c768b55.tar.bz2
2010-11-12 Sebastian Huber <sebastian.huber@embedded-brains.de>
* mpc55xx/include/irq.h: Include missing <bspopts.h>. Format. * mpc83xx/include/mpc83xx.h, mpc83xx/i2c/mpc83xx_i2cdrv.h, mpc83xx/i2c/mpc83xx_i2cdrv.c: Changes to use this driver for the MPC55XX familiy.
Diffstat (limited to 'c/src/lib/libcpu/powerpc/mpc55xx/include/irq.h')
-rw-r--r--c/src/lib/libcpu/powerpc/mpc55xx/include/irq.h184
1 files changed, 95 insertions, 89 deletions
diff --git a/c/src/lib/libcpu/powerpc/mpc55xx/include/irq.h b/c/src/lib/libcpu/powerpc/mpc55xx/include/irq.h
index 811b246033..baa36d8844 100644
--- a/c/src/lib/libcpu/powerpc/mpc55xx/include/irq.h
+++ b/c/src/lib/libcpu/powerpc/mpc55xx/include/irq.h
@@ -24,6 +24,8 @@
#include <rtems/irq-extension.h>
#include <rtems/irq.h>
+#include <bspopts.h>
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
@@ -43,89 +45,86 @@ extern "C" {
/* Software interrupts */
#define MPC55XX_IRQ_SOFTWARE_MIN 0U
#define MPC55XX_IRQ_SOFTWARE_MAX 7U
-#define MPC55XX_IRQ_SOFTWARE_GET_INDEX( v) (v)
-#define MPC55XX_IRQ_SOFTWARE_GET_REQUEST( i) (i)
+#define MPC55XX_IRQ_SOFTWARE_GET_INDEX(v) (v)
+#define MPC55XX_IRQ_SOFTWARE_GET_REQUEST(i) (i)
#define MPC55XX_IRQ_SOFTWARE_NUMBER (MPC55XX_IRQ_SOFTWARE_MAX + 1U)
-#if ((MPC55XX_CHIP_TYPE >= 5510) && (MPC55XX_CHIP_TYPE <= 5517))
-#else /*((MPC55XX_CHIP_TYPE >= 5510) && (MPC55XX_CHIP_TYPE <= 5517))*/
-#endif /*((MPC55XX_CHIP_TYPE >= 5510) && (MPC55XX_CHIP_TYPE <= 5517))*/
-
-#if ((MPC55XX_CHIP_TYPE >= 5510) && (MPC55XX_CHIP_TYPE <= 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_TYPE >= 5510) && (MPC55XX_CHIP_TYPE <= 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 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))
-
-/* SIU external interrupts */
-#define MPC55XX_IRQ_SIU_EXTERNAL_0 46U
-#define MPC55XX_IRQ_SIU_EXTERNAL_1 47U
-#define MPC55XX_IRQ_SIU_EXTERNAL_2 48U
-#define MPC55XX_IRQ_SIU_EXTERNAL_3 49U
-#define MPC55XX_IRQ_SIU_EXTERNAL_4_15 50U
-
-/* eMIOS interrupts */
-#define MPC55XX_IRQ_EMIOS_REQUEST_LOW_MIN 51U
-#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))
-
-#endif /*((MPC55XX_CHIP_TYPE >= 5510) && (MPC55XX_CHIP_TYPE <= 5517))*/
+#if MPC55XX_CHIP_TYPE >= 5510 && MPC55XX_CHIP_TYPE <= 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)
+
+ /* I2C interrupt */
+ #define MPC55XX_IRQ_I2C 48U
+
+ /* 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)
+#elif MPC55XX_CHIP_TYPE >= 5554 && MPC55XX_CHIP_TYPE <= 5567
+ /* eDMA interrupts */
+ #define MPC55XX_IRQ_EDMA_ERROR_LOW 10U
+ #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))
+
+ /* SIU external interrupts */
+ #define MPC55XX_IRQ_SIU_EXTERNAL_0 46U
+ #define MPC55XX_IRQ_SIU_EXTERNAL_1 47U
+ #define MPC55XX_IRQ_SIU_EXTERNAL_2 48U
+ #define MPC55XX_IRQ_SIU_EXTERNAL_3 49U
+ #define MPC55XX_IRQ_SIU_EXTERNAL_4_15 50U
+
+ /* eMIOS interrupts */
+ #define MPC55XX_IRQ_EMIOS_REQUEST_LOW_MIN 51U
+ #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))
+#else
+ #error "unexpected chip type"
+#endif
/* Checks */
#define MPC55XX_IRQ_IS_VALID(v) \
- ((v) >= MPC55XX_IRQ_MIN && \
+ ((v) >= MPC55XX_IRQ_MIN && \
(v) <= MPC55XX_IRQ_MAX)
#define MPC55XX_IRQ_IS_SOFTWARE(v) \
((v) >= MPC55XX_IRQ_SOFTWARE_MIN && \
@@ -140,24 +139,31 @@ extern "C" {
#define MPC55XX_INTC_DISABLED_PRIORITY 0U
#define MPC55XX_INTC_INVALID_PRIORITY (MPC55XX_INTC_MAX_PRIORITY + 1)
#define MPC55XX_INTC_DEFAULT_PRIORITY (MPC55XX_INTC_MIN_PRIORITY + 1)
-#define MPC55XX_INTC_IS_VALID_PRIORITY(p) ((p) >= MPC55XX_INTC_DISABLED_PRIORITY && (p) <= MPC55XX_INTC_MAX_PRIORITY)
+#define MPC55XX_INTC_IS_VALID_PRIORITY(p) \
+ ((p) >= MPC55XX_INTC_DISABLED_PRIORITY && (p) <= MPC55XX_INTC_MAX_PRIORITY)
rtems_status_code mpc55xx_interrupt_handler_install(
- rtems_vector_number vector,
- const char *info,
- rtems_option options,
- unsigned priority,
- rtems_interrupt_handler handler,
- void *arg
+ rtems_vector_number vector,
+ const char *info,
+ rtems_option options,
+ unsigned priority,
+ rtems_interrupt_handler handler,
+ void *arg
);
-rtems_status_code mpc55xx_intc_get_priority( rtems_vector_number vector, unsigned *priority);
+rtems_status_code mpc55xx_intc_get_priority(
+ rtems_vector_number vector,
+ unsigned *priority
+);
-rtems_status_code mpc55xx_intc_set_priority( rtems_vector_number vector, unsigned priority);
+rtems_status_code mpc55xx_intc_set_priority(
+ rtems_vector_number vector,
+ unsigned priority
+);
-rtems_status_code mpc55xx_intc_raise_software_irq( rtems_vector_number vector);
+rtems_status_code mpc55xx_intc_raise_software_irq(rtems_vector_number vector);
-rtems_status_code mpc55xx_intc_clear_software_irq( rtems_vector_number vector);
+rtems_status_code mpc55xx_intc_clear_software_irq(rtems_vector_number vector);
/**
* @addtogroup bsp_interrupt