irqs.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. /*
  2. * arch/arm/mach-h720x/include/mach/irqs.h
  3. *
  4. * Copyright (C) 2000 Jungjun Kim
  5. * (C) 2003 Robert Schwebel <r.schwebel@pengutronix.de>
  6. * (C) 2003 Thomas Gleixner <tglx@linutronix.de>
  7. *
  8. */
  9. #ifndef __ASM_ARCH_IRQS_H
  10. #define __ASM_ARCH_IRQS_H
  11. #if defined (CONFIG_CPU_H7201)
  12. #define IRQ_PMU 0 /* 0x000001 */
  13. #define IRQ_DMA 1 /* 0x000002 */
  14. #define IRQ_LCD 2 /* 0x000004 */
  15. #define IRQ_VGA 3 /* 0x000008 */
  16. #define IRQ_PCMCIA1 4 /* 0x000010 */
  17. #define IRQ_PCMCIA2 5 /* 0x000020 */
  18. #define IRQ_AFE 6 /* 0x000040 */
  19. #define IRQ_AIC 7 /* 0x000080 */
  20. #define IRQ_KEYBOARD 8 /* 0x000100 */
  21. #define IRQ_TIMER0 9 /* 0x000200 */
  22. #define IRQ_RTC 10 /* 0x000400 */
  23. #define IRQ_SOUND 11 /* 0x000800 */
  24. #define IRQ_USB 12 /* 0x001000 */
  25. #define IRQ_IrDA 13 /* 0x002000 */
  26. #define IRQ_UART0 14 /* 0x004000 */
  27. #define IRQ_UART1 15 /* 0x008000 */
  28. #define IRQ_SPI 16 /* 0x010000 */
  29. #define IRQ_GPIOA 17 /* 0x020000 */
  30. #define IRQ_GPIOB 18 /* 0x040000 */
  31. #define IRQ_GPIOC 19 /* 0x080000 */
  32. #define IRQ_GPIOD 20 /* 0x100000 */
  33. #define IRQ_CommRX 21 /* 0x200000 */
  34. #define IRQ_CommTX 22 /* 0x400000 */
  35. #define IRQ_Soft 23 /* 0x800000 */
  36. #define NR_GLBL_IRQS 24
  37. #define IRQ_CHAINED_GPIOA(x) (NR_GLBL_IRQS + x)
  38. #define IRQ_CHAINED_GPIOB(x) (IRQ_CHAINED_GPIOA(32) + x)
  39. #define IRQ_CHAINED_GPIOC(x) (IRQ_CHAINED_GPIOB(32) + x)
  40. #define IRQ_CHAINED_GPIOD(x) (IRQ_CHAINED_GPIOC(32) + x)
  41. #define NR_IRQS IRQ_CHAINED_GPIOD(32)
  42. /* Enable mask for multiplexed interrupts */
  43. #define IRQ_ENA_MUX (1<<IRQ_GPIOA) | (1<<IRQ_GPIOB) \
  44. | (1<<IRQ_GPIOC) | (1<<IRQ_GPIOD)
  45. #elif defined (CONFIG_CPU_H7202)
  46. #define IRQ_PMU 0 /* 0x00000001 */
  47. #define IRQ_DMA 1 /* 0x00000002 */
  48. #define IRQ_LCD 2 /* 0x00000004 */
  49. #define IRQ_SOUND 3 /* 0x00000008 */
  50. #define IRQ_I2S 4 /* 0x00000010 */
  51. #define IRQ_USB 5 /* 0x00000020 */
  52. #define IRQ_MMC 6 /* 0x00000040 */
  53. #define IRQ_RTC 7 /* 0x00000080 */
  54. #define IRQ_UART0 8 /* 0x00000100 */
  55. #define IRQ_UART1 9 /* 0x00000200 */
  56. #define IRQ_UART2 10 /* 0x00000400 */
  57. #define IRQ_UART3 11 /* 0x00000800 */
  58. #define IRQ_KBD 12 /* 0x00001000 */
  59. #define IRQ_PS2 13 /* 0x00002000 */
  60. #define IRQ_AIC 14 /* 0x00004000 */
  61. #define IRQ_TIMER0 15 /* 0x00008000 */
  62. #define IRQ_TIMERX 16 /* 0x00010000 */
  63. #define IRQ_WDT 17 /* 0x00020000 */
  64. #define IRQ_CAN0 18 /* 0x00040000 */
  65. #define IRQ_CAN1 19 /* 0x00080000 */
  66. #define IRQ_EXT0 20 /* 0x00100000 */
  67. #define IRQ_EXT1 21 /* 0x00200000 */
  68. #define IRQ_GPIOA 22 /* 0x00400000 */
  69. #define IRQ_GPIOB 23 /* 0x00800000 */
  70. #define IRQ_GPIOC 24 /* 0x01000000 */
  71. #define IRQ_GPIOD 25 /* 0x02000000 */
  72. #define IRQ_GPIOE 26 /* 0x04000000 */
  73. #define IRQ_COMMRX 27 /* 0x08000000 */
  74. #define IRQ_COMMTX 28 /* 0x10000000 */
  75. #define IRQ_SMC 29 /* 0x20000000 */
  76. #define IRQ_Soft 30 /* 0x40000000 */
  77. #define IRQ_RESERVED1 31 /* 0x80000000 */
  78. #define NR_GLBL_IRQS 32
  79. #define NR_TIMERX_IRQS 3
  80. #define IRQ_CHAINED_GPIOA(x) (NR_GLBL_IRQS + x)
  81. #define IRQ_CHAINED_GPIOB(x) (IRQ_CHAINED_GPIOA(32) + x)
  82. #define IRQ_CHAINED_GPIOC(x) (IRQ_CHAINED_GPIOB(32) + x)
  83. #define IRQ_CHAINED_GPIOD(x) (IRQ_CHAINED_GPIOC(32) + x)
  84. #define IRQ_CHAINED_GPIOE(x) (IRQ_CHAINED_GPIOD(32) + x)
  85. #define IRQ_CHAINED_TIMERX(x) (IRQ_CHAINED_GPIOE(32) + x)
  86. #define IRQ_TIMER1 (IRQ_CHAINED_TIMERX(0))
  87. #define IRQ_TIMER2 (IRQ_CHAINED_TIMERX(1))
  88. #define IRQ_TIMER64B (IRQ_CHAINED_TIMERX(2))
  89. #define NR_IRQS (IRQ_CHAINED_TIMERX(NR_TIMERX_IRQS))
  90. /* Enable mask for multiplexed interrupts */
  91. #define IRQ_ENA_MUX (1<<IRQ_TIMERX) | (1<<IRQ_GPIOA) | (1<<IRQ_GPIOB) | \
  92. (1<<IRQ_GPIOC) | (1<<IRQ_GPIOD) | (1<<IRQ_GPIOE) | \
  93. (1<<IRQ_TIMERX)
  94. #else
  95. #error cpu definition mismatch
  96. #endif
  97. /* decode irq number to register number */
  98. #define IRQ_TO_REGNO(irq) ((irq - NR_GLBL_IRQS) >> 5)
  99. #define IRQ_TO_BIT(irq) (1 << ((irq - NR_GLBL_IRQS) % 32))
  100. #endif