File indexing completed on 2025-05-11 08:23:40
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024 #ifndef _BFIN_INTERRUPT_H_
0025 #define _BFIN_INTERRUPT_H_
0026
0027
0028 #ifdef __cplusplus
0029 extern "C" {
0030 #endif
0031
0032
0033
0034 typedef enum {
0035 IRQ_PLL_WAKEUP_INTERRUPT,
0036 IRQ_DMA_ERROR_0,
0037 IRQ_DMAR0_BLOCK_INTERRUPT,
0038 IRQ_DMAR1_BLOCK_INTERRUPT,
0039 IRQ_DMAR0_OVERFLOW_ERROR,
0040 IRQ_DMAR1_OVERFLOW_ERROR,
0041 IRQ_PPI_STATUS,
0042 IRQ_MAC_STATUS,
0043 IRQ_SPORT0_STATUS,
0044 IRQ_SPORT1_STATUS,
0045 IRQ_RESERVED_10,
0046 IRQ_RESERVED_11,
0047 IRQ_UART0_STATUS,
0048 IRQ_UART1_STATUS,
0049 IRQ_REAL_TIME_CLOCK,
0050 IRQ_DMA0_PPI_NFC,
0051 IRQ_DMA3_SPORT0_RX,
0052 IRQ_DMA4_SPORT0_TX,
0053 IRQ_DMA5_SPORT1_RX,
0054 IRQ_DMA6_SPORT1_TX,
0055 IRQ_TWI_INTERRUPT,
0056 IRQ_DMA7_SPI,
0057 IRQ_DMA8_UART0_RX,
0058 IRQ_DMA9_UART0_TX,
0059 IRQ_DMA10_UART1_RX,
0060 IRQ_DMA11_UART1_TX,
0061 IRQ_OTP,
0062 IRQ_GP_COUNTER,
0063 IRQ_DMA1_MAC_RX_HOSTDP,
0064 IRQ_PORT_H_INTERRUPT_A,
0065 IRQ_DMA2_MAC_TX_NFC,
0066 IRQ_PORT_H_INTERRUPT_B,
0067 SIC_ISR0_MAX,
0068 IRQ_TIMER0 = SIC_ISR0_MAX,
0069 IRQ_TIMER1,
0070 IRQ_TIMER2,
0071 IRQ_TIMER3,
0072 IRQ_TIMER4,
0073 IRQ_TIMER5,
0074 IRQ_TIMER6,
0075 IRQ_TIMER7,
0076 IRQ_PORT_G_INTERRUPT_A,
0077 IRQ_PORT_G_INTERRUPT_B,
0078 IRQ_MDMA0_STREAM_0_INTERRUPT,
0079 IRQ_MDMA1_STREAM_0_INTERRUPT,
0080 IRQ_SOFTWARE_WATCHDOG_INTERRUPT,
0081 IRQ_PORT_F_INTERRUPT_A,
0082 IRQ_PORT_F_INTERRUPT_B,
0083 IRQ_SPI_STATUS,
0084 IRQ_NFC_STATUS,
0085 IRQ_HOSTDP_STATUS,
0086 IRQ_HOREAD_DONE_INTERRUPT,
0087 IRQ_RESERVED_19,
0088 IRQ_USB_INT0_INTERRUPT,
0089 IRQ_USB_INT1_INTERRUPT,
0090 IRQ_USB_INT2_INTERRUPT,
0091 IRQ_USB_DMAINT,
0092 IRQ_MAX,
0093 } e_isr_t;
0094
0095
0096
0097
0098
0099
0100 typedef struct bfin_isr_s {
0101 #if INTERRUPT_USE_TABLE
0102 e_isr_t source;
0103 void (*pFunc)(void *arg);
0104 void *pArg;
0105 int priority;
0106 #else
0107 int source;
0108 void (*isr)(void *arg);
0109 void *_arg;
0110
0111 uint32_t mask0;
0112 uint32_t mask1;
0113 uint32_t vector;
0114 struct bfin_isr_s *next;
0115 #endif
0116 } bfin_isr_t;
0117
0118
0119
0120
0121
0122
0123 rtems_status_code bfin_interrupt_register(bfin_isr_t *isr);
0124
0125
0126
0127
0128
0129 rtems_status_code bfin_interrupt_unregister(bfin_isr_t *isr);
0130
0131
0132
0133
0134
0135
0136 void bfin_interrupt_init(void);
0137
0138
0139 #ifdef __cplusplus
0140 }
0141 #endif
0142
0143 #endif
0144