blob: d1cb6a86f80a9fe8fc70c45214fd55e0af9cb4d3 [file] [log] [blame]
/*
* Copyright 2011 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef _BF60x_IRQ_H_
#define _BF60x_IRQ_H_
#include <mach-common/irq.h>
#define NR_PERI_INTS (5 * 32)
#define IRQ_SEC_ERR BFIN_IRQ(0) /* SEC Error */
#define IRQ_CGU_EVT BFIN_IRQ(1) /* CGU Event */
#define IRQ_WATCH0 BFIN_IRQ(2) /* Watchdog0 Interrupt */
#define IRQ_WATCH1 BFIN_IRQ(3) /* Watchdog1 Interrupt */
#define IRQ_L2CTL0_ECC_ERR BFIN_IRQ(4) /* L2 ECC Error */
#define IRQ_L2CTL0_ECC_WARN BFIN_IRQ(5) /* L2 ECC Waring */
#define IRQ_C0_DBL_FAULT BFIN_IRQ(6) /* Core 0 Double Fault */
#define IRQ_C1_DBL_FAULT BFIN_IRQ(7) /* Core 1 Double Fault */
#define IRQ_C0_HW_ERR BFIN_IRQ(8) /* Core 0 Hardware Error */
#define IRQ_C1_HW_ERR BFIN_IRQ(9) /* Core 1 Hardware Error */
#define IRQ_C0_NMI_L1_PARITY_ERR BFIN_IRQ(10) /* Core 0 Unhandled NMI or L1 Memory Parity Error */
#define IRQ_C1_NMI_L1_PARITY_ERR BFIN_IRQ(11) /* Core 1 Unhandled NMI or L1 Memory Parity Error */
#define CORE_IRQS (IRQ_C1_NMI_L1_PARITY_ERR + 1)
#define IRQ_TIMER0 BFIN_IRQ(12) /* Timer 0 Interrupt */
#define IRQ_TIMER1 BFIN_IRQ(13) /* Timer 1 Interrupt */
#define IRQ_TIMER2 BFIN_IRQ(14) /* Timer 2 Interrupt */
#define IRQ_TIMER3 BFIN_IRQ(15) /* Timer 3 Interrupt */
#define IRQ_TIMER4 BFIN_IRQ(16) /* Timer 4 Interrupt */
#define IRQ_TIMER5 BFIN_IRQ(17) /* Timer 5 Interrupt */
#define IRQ_TIMER6 BFIN_IRQ(18) /* Timer 6 Interrupt */
#define IRQ_TIMER7 BFIN_IRQ(19) /* Timer 7 Interrupt */
#define IRQ_TIMER_STAT BFIN_IRQ(20) /* Timer Block Status */
#define IRQ_PINT0 BFIN_IRQ(21) /* PINT0 Interrupt */
#define IRQ_PINT1 BFIN_IRQ(22) /* PINT1 Interrupt */
#define IRQ_PINT2 BFIN_IRQ(23) /* PINT2 Interrupt */
#define IRQ_PINT3 BFIN_IRQ(24) /* PINT3 Interrupt */
#define IRQ_PINT4 BFIN_IRQ(25) /* PINT4 Interrupt */
#define IRQ_PINT5 BFIN_IRQ(26) /* PINT5 Interrupt */
#define IRQ_CNT BFIN_IRQ(27) /* CNT Interrupt */
#define IRQ_PWM0_TRIP BFIN_IRQ(28) /* PWM0 Trip Interrupt */
#define IRQ_PWM0_SYNC BFIN_IRQ(29) /* PWM0 Sync Interrupt */
#define IRQ_PWM1_TRIP BFIN_IRQ(30) /* PWM1 Trip Interrupt */
#define IRQ_PWM1_SYNC BFIN_IRQ(31) /* PWM1 Sync Interrupt */
#define IRQ_TWI0 BFIN_IRQ(32) /* TWI0 Interrupt */
#define IRQ_TWI1 BFIN_IRQ(33) /* TWI1 Interrupt */
#define IRQ_SOFT0 BFIN_IRQ(34) /* Software-Driven Interrupt 0 */
#define IRQ_SOFT1 BFIN_IRQ(35) /* Software-Driven Interrupt 1 */
#define IRQ_SOFT2 BFIN_IRQ(36) /* Software-Driven Interrupt 2 */
#define IRQ_SOFT3 BFIN_IRQ(37) /* Software-Driven Interrupt 3 */
#define IRQ_ACM_EVT_MISS BFIN_IRQ(38) /* ACM Event Miss */
#define IRQ_ACM_EVT_COMPLETE BFIN_IRQ(39) /* ACM Event Complete */
#define IRQ_CAN0_RX BFIN_IRQ(40) /* CAN0 Receive Interrupt */
#define IRQ_CAN0_TX BFIN_IRQ(41) /* CAN0 Transmit Interrupt */
#define IRQ_CAN0_STAT BFIN_IRQ(42) /* CAN0 Status */
#define IRQ_SPORT0_TX BFIN_IRQ(43) /* SPORT0 TX Interrupt (DMA0) */
#define IRQ_SPORT0_TX_STAT BFIN_IRQ(44) /* SPORT0 TX Status Interrupt */
#define IRQ_SPORT0_RX BFIN_IRQ(45) /* SPORT0 RX Interrupt (DMA1) */
#define IRQ_SPORT0_RX_STAT BFIN_IRQ(46) /* SPORT0 RX Status Interrupt */
#define IRQ_SPORT1_TX BFIN_IRQ(47) /* SPORT1 TX Interrupt (DMA2) */
#define IRQ_SPORT1_TX_STAT BFIN_IRQ(48) /* SPORT1 TX Status Interrupt */
#define IRQ_SPORT1_RX BFIN_IRQ(49) /* SPORT1 RX Interrupt (DMA3) */
#define IRQ_SPORT1_RX_STAT BFIN_IRQ(50) /* SPORT1 RX Status Interrupt */
#define IRQ_SPORT2_TX BFIN_IRQ(51) /* SPORT2 TX Interrupt (DMA4) */
#define IRQ_SPORT2_TX_STAT BFIN_IRQ(52) /* SPORT2 TX Status Interrupt */
#define IRQ_SPORT2_RX BFIN_IRQ(53) /* SPORT2 RX Interrupt (DMA5) */
#define IRQ_SPORT2_RX_STAT BFIN_IRQ(54) /* SPORT2 RX Status Interrupt */
#define IRQ_SPI0_TX BFIN_IRQ(55) /* SPI0 TX Interrupt (DMA6) */
#define IRQ_SPI0_RX BFIN_IRQ(56) /* SPI0 RX Interrupt (DMA7) */
#define IRQ_SPI0_STAT BFIN_IRQ(57) /* SPI0 Status Interrupt */
#define IRQ_SPI1_TX BFIN_IRQ(58) /* SPI1 TX Interrupt (DMA8) */
#define IRQ_SPI1_RX BFIN_IRQ(59) /* SPI1 RX Interrupt (DMA9) */
#define IRQ_SPI1_STAT BFIN_IRQ(60) /* SPI1 Status Interrupt */
#define IRQ_RSI BFIN_IRQ(61) /* RSI (DMA10) Interrupt */
#define IRQ_RSI_INT0 BFIN_IRQ(62) /* RSI Interrupt0 */
#define IRQ_RSI_INT1 BFIN_IRQ(63) /* RSI Interrupt1 */
#define IRQ_SDU BFIN_IRQ(64) /* DMA11 Data (SDU) */
/* -- RESERVED -- 65 DMA12 Data (Reserved) */
/* -- RESERVED -- 66 Reserved */
/* -- RESERVED -- 67 Reserved */
#define IRQ_EMAC0_STAT BFIN_IRQ(68) /* EMAC0 Status */
/* -- RESERVED -- 69 EMAC0 Power (Reserved) */
#define IRQ_EMAC1_STAT BFIN_IRQ(70) /* EMAC1 Status */
/* -- RESERVED -- 71 EMAC1 Power (Reserved) */
#define IRQ_LP0 BFIN_IRQ(72) /* DMA13 Data (Link Port 0) */
#define IRQ_LP0_STAT BFIN_IRQ(73) /* Link Port 0 Status */
#define IRQ_LP1 BFIN_IRQ(74) /* DMA14 Data (Link Port 1) */
#define IRQ_LP1_STAT BFIN_IRQ(75) /* Link Port 1 Status */
#define IRQ_LP2 BFIN_IRQ(76) /* DMA15 Data (Link Port 2) */
#define IRQ_LP2_STAT BFIN_IRQ(77) /* Link Port 2 Status */
#define IRQ_LP3 BFIN_IRQ(78) /* DMA16 Data(Link Port 3) */
#define IRQ_LP3_STAT BFIN_IRQ(79) /* Link Port 3 Status */
#define IRQ_UART0_TX BFIN_IRQ(80) /* UART0 TX Interrupt (DMA17) */
#define IRQ_UART0_RX BFIN_IRQ(81) /* UART0 RX Interrupt (DMA18) */
#define IRQ_UART0_STAT BFIN_IRQ(82) /* UART0 Status(Error) Interrupt */
#define IRQ_UART1_TX BFIN_IRQ(83) /* UART1 TX Interrupt (DMA19) */
#define IRQ_UART1_RX BFIN_IRQ(84) /* UART1 RX Interrupt (DMA20) */
#define IRQ_UART1_STAT BFIN_IRQ(85) /* UART1 Status(Error) Interrupt */
#define IRQ_MDMA0_SRC_CRC0 BFIN_IRQ(86) /* DMA21 Data (MDMA Stream 0 Source/CRC0 Input Channel) */
#define IRQ_MDMA0_DEST_CRC0 BFIN_IRQ(87) /* DMA22 Data (MDMA Stream 0 Destination/CRC0 Output Channel) */
#define IRQ_MDMAS0 IRQ_MDMA0_DEST_CRC0
#define IRQ_CRC0_DCNTEXP BFIN_IRQ(88) /* CRC0 DATACOUNT Expiration */
#define IRQ_CRC0_ERR BFIN_IRQ(89) /* CRC0 Error */
#define IRQ_MDMA1_SRC_CRC1 BFIN_IRQ(90) /* DMA23 Data (MDMA Stream 1 Source/CRC1 Input Channel) */
#define IRQ_MDMA1_DEST_CRC1 BFIN_IRQ(91) /* DMA24 Data (MDMA Stream 1 Destination/CRC1 Output Channel) */
#define IRQ_MDMAS1 IRQ_MDMA1_DEST_CRC1
#define IRQ_CRC1_DCNTEXP BFIN_IRQ(92) /* CRC1 DATACOUNT Expiration */
#define IRQ_CRC1_ERR BFIN_IRQ(93) /* CRC1 Error */
#define IRQ_MDMA2_SRC BFIN_IRQ(94) /* DMA25 Data (MDMA Stream 2 Source Channel) */
#define IRQ_MDMA2_DEST BFIN_IRQ(95) /* DMA26 Data (MDMA Stream 2 Destination Channel) */
#define IRQ_MDMAS2 IRQ_MDMA2_DEST
#define IRQ_MDMA3_SRC BFIN_IRQ(96) /* DMA27 Data (MDMA Stream 3 Source Channel) */
#define IRQ_MDMA3_DEST BFIN_IRQ(97) /* DMA28 Data (MDMA Stream 3 Destination Channel) */
#define IRQ_MDMAS3 IRQ_MDMA3_DEST
#define IRQ_EPPI0_CH0 BFIN_IRQ(98) /* DMA29 Data (EPPI0 Channel 0) */
#define IRQ_EPPI0_CH1 BFIN_IRQ(99) /* DMA30 Data (EPPI0 Channel 1) */
#define IRQ_EPPI0_STAT BFIN_IRQ(100) /* EPPI0 Status */
#define IRQ_EPPI2_CH0 BFIN_IRQ(101) /* DMA31 Data (EPPI2 Channel 0) */
#define IRQ_EPPI2_CH1 BFIN_IRQ(102) /* DMA32 Data (EPPI2 Channel 1) */
#define IRQ_EPPI2_STAT BFIN_IRQ(103) /* EPPI2 Status */
#define IRQ_EPPI1_CH0 BFIN_IRQ(104) /* DMA33 Data (EPPI1 Channel 0) */
#define IRQ_EPPI1_CH1 BFIN_IRQ(105) /* DMA34 Data (EPPI1 Channel 1) */
#define IRQ_EPPI1_STAT BFIN_IRQ(106) /* EPPI1 Status */
#define IRQ_PIXC_CH0 BFIN_IRQ(107) /* DMA35 Data (PIXC Channel 0) */
#define IRQ_PIXC_CH1 BFIN_IRQ(108) /* DMA36 Data (PIXC Channel 1) */
#define IRQ_PIXC_CH2 BFIN_IRQ(109) /* DMA37 Data (PIXC Channel 2) */
#define IRQ_PIXC_STAT BFIN_IRQ(110) /* PIXC Status */
#define IRQ_PVP_CPDOB BFIN_IRQ(111) /* DMA38 Data (PVP0 Camera Pipe Data Out B) */
#define IRQ_PVP_CPDOC BFIN_IRQ(112) /* DMA39 Data (PVP0 Camera Pipe Data Out C) */
#define IRQ_PVP_CPSTAT BFIN_IRQ(113) /* DMA40 Data (PVP0 Camera Pipe Status Out) */
#define IRQ_PVP_CPCI BFIN_IRQ(114) /* DMA41 Data (PVP0 Camera Pipe Control In) */
#define IRQ_PVP_STAT0 BFIN_IRQ(115) /* PVP0 Status 0 */
#define IRQ_PVP_MPDO BFIN_IRQ(116) /* DMA42 Data (PVP0 Memory Pipe Data Out) */
#define IRQ_PVP_MPDI BFIN_IRQ(117) /* DMA43 Data (PVP0 Memory Pipe Data In) */
#define IRQ_PVP_MPSTAT BFIN_IRQ(118) /* DMA44 Data (PVP0 Memory Pipe Status Out) */
#define IRQ_PVP_MPCI BFIN_IRQ(119) /* DMA45 Data (PVP0 Memory Pipe Control In) */
#define IRQ_PVP_CPDOA BFIN_IRQ(120) /* DMA46 Data (PVP0 Camera Pipe Data Out A) */
#define IRQ_PVP_STAT1 BFIN_IRQ(121) /* PVP0 Status 1 */
#define IRQ_USB_STAT BFIN_IRQ(122) /* USB Status Interrupt */
#define IRQ_USB_DMA BFIN_IRQ(123) /* USB DMA Interrupt */
#define IRQ_TRU_INT0 BFIN_IRQ(124) /* TRU0 Interrupt 0 */
#define IRQ_TRU_INT1 BFIN_IRQ(125) /* TRU0 Interrupt 1 */
#define IRQ_TRU_INT2 BFIN_IRQ(126) /* TRU0 Interrupt 2 */
#define IRQ_TRU_INT3 BFIN_IRQ(127) /* TRU0 Interrupt 3 */
#define IRQ_DMAC0_ERROR BFIN_IRQ(128) /* DMAC0 Status Interrupt */
#define IRQ_CGU0_ERROR BFIN_IRQ(129) /* CGU0 Error */
/* -- RESERVED -- 130 Reserved */
#define IRQ_DPM BFIN_IRQ(131) /* DPM0 Event */
/* -- RESERVED -- 132 Reserved */
#define IRQ_SWU0 BFIN_IRQ(133) /* SWU0 */
#define IRQ_SWU1 BFIN_IRQ(134) /* SWU1 */
#define IRQ_SWU2 BFIN_IRQ(135) /* SWU2 */
#define IRQ_SWU3 BFIN_IRQ(136) /* SWU3 */
#define IRQ_SWU4 BFIN_IRQ(137) /* SWU4 */
#define IRQ_SWU5 BFIN_IRQ(138) /* SWU5 */
#define IRQ_SWU6 BFIN_IRQ(139) /* SWU6 */
#define SYS_IRQS IRQ_SWU6
#define BFIN_PA_IRQ(x) ((x) + SYS_IRQS + 1)
#define IRQ_PA0 BFIN_PA_IRQ(0)
#define IRQ_PA1 BFIN_PA_IRQ(1)
#define IRQ_PA2 BFIN_PA_IRQ(2)
#define IRQ_PA3 BFIN_PA_IRQ(3)
#define IRQ_PA4 BFIN_PA_IRQ(4)
#define IRQ_PA5 BFIN_PA_IRQ(5)
#define IRQ_PA6 BFIN_PA_IRQ(6)
#define IRQ_PA7 BFIN_PA_IRQ(7)
#define IRQ_PA8 BFIN_PA_IRQ(8)
#define IRQ_PA9 BFIN_PA_IRQ(9)
#define IRQ_PA10 BFIN_PA_IRQ(10)
#define IRQ_PA11 BFIN_PA_IRQ(11)
#define IRQ_PA12 BFIN_PA_IRQ(12)
#define IRQ_PA13 BFIN_PA_IRQ(13)
#define IRQ_PA14 BFIN_PA_IRQ(14)
#define IRQ_PA15 BFIN_PA_IRQ(15)
#define BFIN_PB_IRQ(x) ((x) + IRQ_PA15 + 1)
#define IRQ_PB0 BFIN_PB_IRQ(0)
#define IRQ_PB1 BFIN_PB_IRQ(1)
#define IRQ_PB2 BFIN_PB_IRQ(2)
#define IRQ_PB3 BFIN_PB_IRQ(3)
#define IRQ_PB4 BFIN_PB_IRQ(4)
#define IRQ_PB5 BFIN_PB_IRQ(5)
#define IRQ_PB6 BFIN_PB_IRQ(6)
#define IRQ_PB7 BFIN_PB_IRQ(7)
#define IRQ_PB8 BFIN_PB_IRQ(8)
#define IRQ_PB9 BFIN_PB_IRQ(9)
#define IRQ_PB10 BFIN_PB_IRQ(10)
#define IRQ_PB11 BFIN_PB_IRQ(11)
#define IRQ_PB12 BFIN_PB_IRQ(12)
#define IRQ_PB13 BFIN_PB_IRQ(13)
#define IRQ_PB14 BFIN_PB_IRQ(14)
#define IRQ_PB15 BFIN_PB_IRQ(15) /* N/A */
#define BFIN_PC_IRQ(x) ((x) + IRQ_PB15 + 1)
#define IRQ_PC0 BFIN_PC_IRQ(0)
#define IRQ_PC1 BFIN_PC_IRQ(1)
#define IRQ_PC2 BFIN_PC_IRQ(2)
#define IRQ_PC3 BFIN_PC_IRQ(3)
#define IRQ_PC4 BFIN_PC_IRQ(4)
#define IRQ_PC5 BFIN_PC_IRQ(5)
#define IRQ_PC6 BFIN_PC_IRQ(6)
#define IRQ_PC7 BFIN_PC_IRQ(7)
#define IRQ_PC8 BFIN_PC_IRQ(8)
#define IRQ_PC9 BFIN_PC_IRQ(9)
#define IRQ_PC10 BFIN_PC_IRQ(10)
#define IRQ_PC11 BFIN_PC_IRQ(11)
#define IRQ_PC12 BFIN_PC_IRQ(12)
#define IRQ_PC13 BFIN_PC_IRQ(13)
#define IRQ_PC14 BFIN_PC_IRQ(14) /* N/A */
#define IRQ_PC15 BFIN_PC_IRQ(15) /* N/A */
#define BFIN_PD_IRQ(x) ((x) + IRQ_PC15 + 1)
#define IRQ_PD0 BFIN_PD_IRQ(0)
#define IRQ_PD1 BFIN_PD_IRQ(1)
#define IRQ_PD2 BFIN_PD_IRQ(2)
#define IRQ_PD3 BFIN_PD_IRQ(3)
#define IRQ_PD4 BFIN_PD_IRQ(4)
#define IRQ_PD5 BFIN_PD_IRQ(5)
#define IRQ_PD6 BFIN_PD_IRQ(6)
#define IRQ_PD7 BFIN_PD_IRQ(7)
#define IRQ_PD8 BFIN_PD_IRQ(8)
#define IRQ_PD9 BFIN_PD_IRQ(9)
#define IRQ_PD10 BFIN_PD_IRQ(10)
#define IRQ_PD11 BFIN_PD_IRQ(11)
#define IRQ_PD12 BFIN_PD_IRQ(12)
#define IRQ_PD13 BFIN_PD_IRQ(13)
#define IRQ_PD14 BFIN_PD_IRQ(14)
#define IRQ_PD15 BFIN_PD_IRQ(15)
#define BFIN_PE_IRQ(x) ((x) + IRQ_PD15 + 1)
#define IRQ_PE0 BFIN_PE_IRQ(0)
#define IRQ_PE1 BFIN_PE_IRQ(1)
#define IRQ_PE2 BFIN_PE_IRQ(2)
#define IRQ_PE3 BFIN_PE_IRQ(3)
#define IRQ_PE4 BFIN_PE_IRQ(4)
#define IRQ_PE5 BFIN_PE_IRQ(5)
#define IRQ_PE6 BFIN_PE_IRQ(6)
#define IRQ_PE7 BFIN_PE_IRQ(7)
#define IRQ_PE8 BFIN_PE_IRQ(8)
#define IRQ_PE9 BFIN_PE_IRQ(9)
#define IRQ_PE10 BFIN_PE_IRQ(10)
#define IRQ_PE11 BFIN_PE_IRQ(11)
#define IRQ_PE12 BFIN_PE_IRQ(12)
#define IRQ_PE13 BFIN_PE_IRQ(13)
#define IRQ_PE14 BFIN_PE_IRQ(14)
#define IRQ_PE15 BFIN_PE_IRQ(15)
#define BFIN_PF_IRQ(x) ((x) + IRQ_PE15 + 1)
#define IRQ_PF0 BFIN_PF_IRQ(0)
#define IRQ_PF1 BFIN_PF_IRQ(1)
#define IRQ_PF2 BFIN_PF_IRQ(2)
#define IRQ_PF3 BFIN_PF_IRQ(3)
#define IRQ_PF4 BFIN_PF_IRQ(4)
#define IRQ_PF5 BFIN_PF_IRQ(5)
#define IRQ_PF6 BFIN_PF_IRQ(6)
#define IRQ_PF7 BFIN_PF_IRQ(7)
#define IRQ_PF8 BFIN_PF_IRQ(8)
#define IRQ_PF9 BFIN_PF_IRQ(9)
#define IRQ_PF10 BFIN_PF_IRQ(10)
#define IRQ_PF11 BFIN_PF_IRQ(11)
#define IRQ_PF12 BFIN_PF_IRQ(12)
#define IRQ_PF13 BFIN_PF_IRQ(13)
#define IRQ_PF14 BFIN_PF_IRQ(14)
#define IRQ_PF15 BFIN_PF_IRQ(15)
#define BFIN_PG_IRQ(x) ((x) + IRQ_PF15 + 1)
#define IRQ_PG0 BFIN_PG_IRQ(0)
#define IRQ_PG1 BFIN_PG_IRQ(1)
#define IRQ_PG2 BFIN_PG_IRQ(2)
#define IRQ_PG3 BFIN_PG_IRQ(3)
#define IRQ_PG4 BFIN_PG_IRQ(4)
#define IRQ_PG5 BFIN_PG_IRQ(5)
#define IRQ_PG6 BFIN_PG_IRQ(6)
#define IRQ_PG7 BFIN_PG_IRQ(7)
#define IRQ_PG8 BFIN_PG_IRQ(8)
#define IRQ_PG9 BFIN_PG_IRQ(9)
#define IRQ_PG10 BFIN_PG_IRQ(10)
#define IRQ_PG11 BFIN_PG_IRQ(11)
#define IRQ_PG12 BFIN_PG_IRQ(12)
#define IRQ_PG13 BFIN_PG_IRQ(13)
#define IRQ_PG14 BFIN_PG_IRQ(14)
#define IRQ_PG15 BFIN_PG_IRQ(15)
#define GPIO_IRQ_BASE IRQ_PA0
#define NR_MACH_IRQS (IRQ_PG15 + 1)
#define SEC_SCTL_PRIO_OFFSET 8
#ifndef __ASSEMBLY__
#include <linux/types.h>
extern u8 sec_int_priority[];
/*
* gpio pint registers layout
*/
struct bfin_pint_regs {
u32 mask_set;
u32 mask_clear;
u32 request;
u32 assign;
u32 edge_set;
u32 edge_clear;
u32 invert_set;
u32 invert_clear;
u32 pinstate;
u32 latch;
u32 __pad0[2];
};
#endif
#endif