Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  *  arch/arm/mach-pxa/include/mach/irqs.h
0004  *
0005  *  Author: Nicolas Pitre
0006  *  Created:    Jun 15, 2001
0007  *  Copyright:  MontaVista Software Inc.
0008  */
0009 #ifndef __ASM_MACH_IRQS_H
0010 #define __ASM_MACH_IRQS_H
0011 
0012 #include <asm/irq.h>
0013 
0014 #define PXA_ISA_IRQ(x)  (x)
0015 #define PXA_IRQ(x)  (NR_IRQS_LEGACY + (x))
0016 
0017 #define IRQ_SSP3    PXA_IRQ(0)  /* SSP3 service request */
0018 #define IRQ_MSL     PXA_IRQ(1)  /* MSL Interface interrupt */
0019 #define IRQ_USBH2   PXA_IRQ(2)  /* USB Host interrupt 1 (OHCI,PXA27x) */
0020 #define IRQ_USBH1   PXA_IRQ(3)  /* USB Host interrupt 2 (non-OHCI,PXA27x) */
0021 #define IRQ_KEYPAD  PXA_IRQ(4)  /* Key pad controller */
0022 #define IRQ_MEMSTK  PXA_IRQ(5)  /* Memory Stick interrupt (PXA27x) */
0023 #define IRQ_ACIPC0  PXA_IRQ(5)  /* AP-CP Communication (PXA930) */
0024 #define IRQ_PWRI2C  PXA_IRQ(6)  /* Power I2C interrupt */
0025 #define IRQ_HWUART  PXA_IRQ(7)  /* HWUART Transmit/Receive/Error (PXA26x) */
0026 #define IRQ_OST_4_11    PXA_IRQ(7)  /* OS timer 4-11 matches (PXA27x) */
0027 #define IRQ_GPIO0   PXA_IRQ(8)  /* GPIO0 Edge Detect */
0028 #define IRQ_GPIO1   PXA_IRQ(9)  /* GPIO1 Edge Detect */
0029 #define IRQ_GPIO_2_x    PXA_IRQ(10) /* GPIO[2-x] Edge Detect */
0030 #define IRQ_USB     PXA_IRQ(11) /* USB Service */
0031 #define IRQ_PMU     PXA_IRQ(12) /* Performance Monitoring Unit */
0032 #define IRQ_I2S     PXA_IRQ(13) /* I2S Interrupt (PXA27x) */
0033 #define IRQ_SSP4    PXA_IRQ(13) /* SSP4 service request (PXA3xx) */
0034 #define IRQ_AC97    PXA_IRQ(14) /* AC97 Interrupt */
0035 #define IRQ_ASSP    PXA_IRQ(15) /* Audio SSP Service Request (PXA25x) */
0036 #define IRQ_USIM    PXA_IRQ(15)     /* Smart Card interface interrupt (PXA27x) */
0037 #define IRQ_NSSP    PXA_IRQ(16) /* Network SSP Service Request (PXA25x) */
0038 #define IRQ_SSP2    PXA_IRQ(16) /* SSP2 interrupt (PXA27x) */
0039 #define IRQ_LCD     PXA_IRQ(17) /* LCD Controller Service Request */
0040 #define IRQ_I2C     PXA_IRQ(18) /* I2C Service Request */
0041 #define IRQ_ICP     PXA_IRQ(19) /* ICP Transmit/Receive/Error */
0042 #define IRQ_ACIPC2  PXA_IRQ(19) /* AP-CP Communication (PXA930) */
0043 #define IRQ_STUART  PXA_IRQ(20) /* STUART Transmit/Receive/Error */
0044 #define IRQ_BTUART  PXA_IRQ(21) /* BTUART Transmit/Receive/Error */
0045 #define IRQ_FFUART  PXA_IRQ(22) /* FFUART Transmit/Receive/Error*/
0046 #define IRQ_MMC     PXA_IRQ(23) /* MMC Status/Error Detection */
0047 #define IRQ_SSP     PXA_IRQ(24) /* SSP Service Request */
0048 #define IRQ_DMA     PXA_IRQ(25) /* DMA Channel Service Request */
0049 #define IRQ_OST0    PXA_IRQ(26) /* OS Timer match 0 */
0050 #define IRQ_OST1    PXA_IRQ(27) /* OS Timer match 1 */
0051 #define IRQ_OST2    PXA_IRQ(28) /* OS Timer match 2 */
0052 #define IRQ_OST3    PXA_IRQ(29) /* OS Timer match 3 */
0053 #define IRQ_RTC1Hz  PXA_IRQ(30) /* RTC HZ Clock Tick */
0054 #define IRQ_RTCAlrm PXA_IRQ(31) /* RTC Alarm */
0055 
0056 #define IRQ_TPM     PXA_IRQ(32) /* TPM interrupt */
0057 #define IRQ_CAMERA  PXA_IRQ(33) /* Camera Interface */
0058 #define IRQ_CIR     PXA_IRQ(34) /* Consumer IR */
0059 #define IRQ_COMM_WDT    PXA_IRQ(35)     /* Comm WDT interrupt */
0060 #define IRQ_TSI     PXA_IRQ(36) /* Touch Screen Interface (PXA320) */
0061 #define IRQ_ENHROT  PXA_IRQ(37) /* Enhanced Rotary (PXA930) */
0062 #define IRQ_USIM2   PXA_IRQ(38) /* USIM2 Controller */
0063 #define IRQ_GCU     PXA_IRQ(39) /* Graphics Controller (PXA3xx) */
0064 #define IRQ_ACIPC1  PXA_IRQ(40) /* AP-CP Communication (PXA930) */
0065 #define IRQ_MMC2    PXA_IRQ(41) /* MMC2 Controller */
0066 #define IRQ_TRKBALL PXA_IRQ(43) /* Track Ball (PXA930) */
0067 #define IRQ_1WIRE   PXA_IRQ(44) /* 1-Wire Controller */
0068 #define IRQ_NAND    PXA_IRQ(45) /* NAND Controller */
0069 #define IRQ_USB2    PXA_IRQ(46) /* USB 2.0 Device Controller */
0070 #define IRQ_WAKEUP0 PXA_IRQ(49) /* EXT_WAKEUP0 */
0071 #define IRQ_WAKEUP1 PXA_IRQ(50) /* EXT_WAKEUP1 */
0072 #define IRQ_DMEMC   PXA_IRQ(51) /* Dynamic Memory Controller */
0073 #define IRQ_MMC3    PXA_IRQ(55) /* MMC3 Controller (PXA310) */
0074 
0075 #define IRQ_U2O     PXA_IRQ(64) /* USB OTG 2.0 Controller (PXA935) */
0076 #define IRQ_U2H     PXA_IRQ(65) /* USB Host 2.0 Controller (PXA935) */
0077 #define IRQ_PXA935_MMC0 PXA_IRQ(72) /* MMC0 Controller (PXA935) */
0078 #define IRQ_PXA935_MMC1 PXA_IRQ(73) /* MMC1 Controller (PXA935) */
0079 #define IRQ_PXA935_MMC2 PXA_IRQ(74) /* MMC2 Controller (PXA935) */
0080 #define IRQ_U2P     PXA_IRQ(93) /* USB PHY D+/D- Lines (PXA935) */
0081 
0082 #define PXA_GPIO_IRQ_BASE   PXA_IRQ(96)
0083 #define PXA_NR_BUILTIN_GPIO (192)
0084 #define PXA_GPIO_TO_IRQ(x)  (PXA_GPIO_IRQ_BASE + (x))
0085 
0086 /*
0087  * The following interrupts are for board specific purposes. Since
0088  * the kernel can only run on one machine at a time, we can re-use
0089  * these.
0090  * By default, no board IRQ is reserved. It should be finished in
0091  * custom board since sparse IRQ is already enabled.
0092  */
0093 #define IRQ_BOARD_START     (PXA_GPIO_IRQ_BASE + PXA_NR_BUILTIN_GPIO)
0094 
0095 #define PXA_NR_IRQS     (IRQ_BOARD_START)
0096 
0097 #ifndef __ASSEMBLY__
0098 struct irq_data;
0099 struct pt_regs;
0100 
0101 void pxa_mask_irq(struct irq_data *);
0102 void pxa_unmask_irq(struct irq_data *);
0103 void icip_handle_irq(struct pt_regs *);
0104 void ichp_handle_irq(struct pt_regs *);
0105 
0106 void pxa_init_irq(int irq_nr, int (*set_wake)(struct irq_data *, unsigned int));
0107 #endif
0108 
0109 #endif /* __ASM_MACH_IRQS_H */