347 lines
11 KiB
C
347 lines
11 KiB
C
/* arch/arm/mach-msm/include/mach/irqs.h
|
|
*
|
|
* Copyright (C) 2007 Google, Inc.
|
|
* Author: Brian Swetland <swetland@google.com>
|
|
*
|
|
* This software is licensed under the terms of the GNU General Public
|
|
* License version 2, as published by the Free Software Foundation, and
|
|
* may be copied, distributed, and modified under those terms.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
*/
|
|
|
|
#ifndef __ASM_ARCH_MSM_IRQS_H
|
|
#define __ASM_ARCH_MSM_IRQS_H
|
|
|
|
#if defined(CONFIG_ARCH_MSM_ARM11)
|
|
|
|
/* MSM ARM11 Interrupt Numbers */
|
|
/* See 80-VE113-1 A, pp219-221 */
|
|
|
|
#define INT_A9_M2A_0 0
|
|
#define INT_A9_M2A_1 1
|
|
#define INT_A9_M2A_2 2
|
|
#define INT_A9_M2A_3 3
|
|
#define INT_A9_M2A_4 4
|
|
#define INT_A9_M2A_5 5
|
|
#define INT_A9_M2A_6 6
|
|
#define INT_GP_TIMER_EXP 7
|
|
#define INT_DEBUG_TIMER_EXP 8
|
|
#define INT_UART1 9
|
|
#define INT_UART2 10
|
|
#define INT_UART3 11
|
|
#define INT_UART1_RX 12
|
|
#define INT_UART2_RX 13
|
|
#define INT_UART3_RX 14
|
|
#define INT_USB_OTG 15
|
|
#define INT_MDDI_PRI 16
|
|
#define INT_MDDI_EXT 17
|
|
#define INT_MDDI_CLIENT 18
|
|
#define INT_MDP 19
|
|
#define INT_GRAPHICS 20
|
|
#define INT_ADM_AARM 21
|
|
#define INT_ADSP_A11 22
|
|
#define INT_ADSP_A9_A11 23
|
|
#define INT_SDC1_0 24
|
|
#define INT_SDC1_1 25
|
|
#define INT_SDC2_0 26
|
|
#define INT_SDC2_1 27
|
|
#define INT_KEYSENSE 28
|
|
#define INT_TCHSCRN_SSBI 29
|
|
#define INT_TCHSCRN1 30
|
|
#define INT_TCHSCRN2 31
|
|
|
|
#define INT_GPIO_GROUP1 (32 + 0)
|
|
#define INT_GPIO_GROUP2 (32 + 1)
|
|
#define INT_PWB_I2C (32 + 2)
|
|
#define INT_SOFTRESET (32 + 3)
|
|
#define INT_NAND_WR_ER_DONE (32 + 4)
|
|
#define INT_NAND_OP_DONE (32 + 5)
|
|
#define INT_PBUS_ARM11 (32 + 6)
|
|
#define INT_AXI_MPU_SMI (32 + 7)
|
|
#define INT_AXI_MPU_EBI1 (32 + 8)
|
|
#define INT_AD_HSSD (32 + 9)
|
|
#define INT_ARM11_PMU (32 + 10)
|
|
#define INT_ARM11_DMA (32 + 11)
|
|
#define INT_TSIF_IRQ (32 + 12)
|
|
#define INT_UART1DM_IRQ (32 + 13)
|
|
#define INT_UART1DM_RX (32 + 14)
|
|
#define INT_USB_HS (32 + 15)
|
|
#define INT_SDC3_0 (32 + 16)
|
|
#define INT_SDC3_1 (32 + 17)
|
|
#define INT_SDC4_0 (32 + 18)
|
|
#define INT_SDC4_1 (32 + 19)
|
|
#define INT_UART2DM_RX (32 + 20)
|
|
#define INT_UART2DM_IRQ (32 + 21)
|
|
#define INT_VFE (32 + 22)
|
|
|
|
/* 22-31 are reserved */
|
|
|
|
#define NR_MSM_IRQS 64
|
|
#define NR_SIRC_IRQS 0
|
|
#if defined(CONFIG_ARCH_MSM7225) || defined(CONFIG_ARCH_MSM7227)
|
|
#define NR_GPIO_IRQS 133
|
|
#else
|
|
#define NR_GPIO_IRQS 122
|
|
#endif
|
|
#endif
|
|
|
|
#if defined(CONFIG_ARCH_QSD8X50)
|
|
#define INT_A9_M2A_0 0
|
|
#define INT_A9_M2A_1 1
|
|
#define INT_A9_M2A_2 2
|
|
#define INT_A9_M2A_3 3
|
|
#define INT_A9_M2A_4 4
|
|
#define INT_A9_M2A_5 5
|
|
#define INT_A9_M2A_6 6
|
|
#define INT_GP_TIMER_EXP 7
|
|
#define INT_DEBUG_TIMER_EXP 8
|
|
#define INT_SIRC_0 9
|
|
#define INT_SDC3_0 10
|
|
#define INT_SDC3_1 11
|
|
#define INT_SDC4_0 12
|
|
#define INT_SDC4_1 13
|
|
#define INT_AD6_EXT_VFR 14
|
|
#define INT_USB_OTG 15
|
|
#define INT_MDDI_PRI 16
|
|
#define INT_MDDI_EXT 17
|
|
#define INT_MDDI_CLIENT 18
|
|
#define INT_MDP 19
|
|
#define INT_GRAPHICS 20
|
|
#define INT_ADM_AARM 21
|
|
#define INT_ADSP_A11 22
|
|
#define INT_ADSP_A9_A11 23
|
|
#define INT_SDC1_0 24
|
|
#define INT_SDC1_1 25
|
|
#define INT_SDC2_0 26
|
|
#define INT_SDC2_1 27
|
|
#define INT_KEYSENSE 28
|
|
#define INT_TCHSCRN_SSBI 29
|
|
#define INT_TCHSCRN1 30
|
|
#define INT_TCHSCRN2 31
|
|
|
|
#define INT_TCSR_MPRPH_SC1 (32 + 0)
|
|
#define INT_USB_FS2 (32 + 1)
|
|
#define INT_PWB_I2C (32 + 2)
|
|
#define INT_SOFTRESET (32 + 3)
|
|
#define INT_NAND_WR_ER_DONE (32 + 4)
|
|
#define INT_NAND_OP_DONE (32 + 5)
|
|
#define INT_TCSR_MPRPH_SC2 (32 + 6)
|
|
#define INT_OP_PEN (32 + 7)
|
|
#define INT_AD_HSSD (32 + 8)
|
|
#define INT_ARM11_PM (32 + 9)
|
|
#define INT_SDMA_NON_SECURE (32 + 10)
|
|
#define INT_TSIF_IRQ (32 + 11)
|
|
#define INT_UART1DM_IRQ (32 + 12)
|
|
#define INT_UART1DM_RX (32 + 13)
|
|
#define INT_SDMA_SECURE (32 + 14)
|
|
#define INT_SI2S_SLAVE (32 + 15)
|
|
#define INT_SC_I2CPU (32 + 16)
|
|
#define INT_SC_DBG_RDTRFULL (32 + 17)
|
|
#define INT_SC_DBG_WDTRFULL (32 + 18)
|
|
#define INT_SCPLL_CTL_DONE (32 + 19)
|
|
#define INT_UART2DM_IRQ (32 + 20)
|
|
#define INT_UART2DM_RX (32 + 21)
|
|
#define INT_VDC_MEC (32 + 22)
|
|
#define INT_VDC_DB (32 + 23)
|
|
#define INT_VDC_AXI (32 + 24)
|
|
#define INT_VFE (32 + 25)
|
|
#define INT_USB_HS (32 + 26)
|
|
#define INT_AUDIO_OUT0 (32 + 27)
|
|
#define INT_AUDIO_OUT1 (32 + 28)
|
|
#define INT_CRYPTO (32 + 29)
|
|
#define INT_AD6M_IDLE (32 + 30)
|
|
#define INT_SIRC_1 (32 + 31)
|
|
|
|
#define INT_UART1 (64 + 0)
|
|
#define INT_UART2 (64 + 1)
|
|
#define INT_UART3 (64 + 2)
|
|
#define INT_UART1_RX (64 + 3)
|
|
#define INT_UART2_RX (64 + 4)
|
|
#define INT_UART3_RX (64 + 5)
|
|
#define INT_SPI_INPUT (64 + 6)
|
|
#define INT_SPI_OUTPUT (64 + 7)
|
|
#define INT_SPI_ERROR (64 + 8)
|
|
#define INT_GPIO_GROUP1 (64 + 9)
|
|
#define INT_GPIO_GROUP2 (64 + 10)
|
|
#define INT_GPIO_GROUP1_SECURE (64 + 11)
|
|
#define INT_GPIO_GROUP2_SECURE (64 + 12)
|
|
#define INT_AVS_SVIC (64 + 13)
|
|
#define INT_AVS_REQ_UP (64 + 14)
|
|
#define INT_AVS_REQ_DOWN (64 + 15)
|
|
#define INT_PBUS_ERR (64 + 16)
|
|
#define INT_AXI_ERR (64 + 17)
|
|
#define INT_SMI_ERR (64 + 18)
|
|
#define INT_EBI1_ERR (64 + 19)
|
|
#define INT_IMEM_ERR (64 + 20)
|
|
#define INT_SC_TEMP_SENSOR (64 + 21)
|
|
#define INT_TV_ENC (64 + 22)
|
|
|
|
#define NR_MSM_IRQS 64
|
|
#define NR_SIRC_IRQS 23
|
|
#define NR_GPIO_IRQS 165
|
|
#endif
|
|
|
|
#if defined(CONFIG_ARCH_MSM7X30)
|
|
|
|
#define INT_DEBUG_TIMER_EXP 0
|
|
#define INT_GPT0_TIMER_EXP 1
|
|
#define INT_GPT1_TIMER_EXP 2
|
|
#define INT_WDT0_ACCSCSSBARK 3
|
|
#define INT_WDT1_ACCSCSSBARK 4
|
|
#define INT_AVS_SVIC 5
|
|
#define INT_AVS_SVIC_SW_DONE 6
|
|
#define INT_SC_DBG_RX_FULL 7
|
|
#define INT_SC_DBG_TX_EMPTY 8
|
|
#define INT_ARM11_PM 9
|
|
#define INT_AVS_REQ_DOWN 10
|
|
#define INT_AVS_REQ_UP 11
|
|
#define INT_SC_ACG 12
|
|
/* SCSS_VICFIQSTS1[13:15] are RESERVED */
|
|
#define INT_L2_SVICCPUIRPTREQ 16
|
|
#define INT_L2_SVICDMANSIRPTREQ 17
|
|
#define INT_L2_SVICDMASIRPTREQ 18
|
|
#define INT_L2_SVICSLVIRPTREQ 19
|
|
#define INT_AD5A_MPROC_APPS_0 20
|
|
#define INT_AD5A_MPROC_APPS_1 21
|
|
#define INT_A9_M2A_0 22
|
|
#define INT_A9_M2A_1 23
|
|
#define INT_A9_M2A_2 24
|
|
#define INT_A9_M2A_3 25
|
|
#define INT_A9_M2A_4 26
|
|
#define INT_A9_M2A_5 27
|
|
#define INT_A9_M2A_6 28
|
|
#define INT_A9_M2A_7 29
|
|
#define INT_A9_M2A_8 30
|
|
#define INT_A9_M2A_9 31
|
|
|
|
#define INT_AXI_EBI1_SC (32 + 0)
|
|
#define INT_IMEM_ERR (32 + 1)
|
|
#define INT_AXI_EBI0_SC (32 + 2)
|
|
#define INT_PBUS_SC_IRQC (32 + 3)
|
|
#define INT_PERPH_BUS_BPM (32 + 4)
|
|
#define INT_CC_TEMP_SENSE (32 + 5)
|
|
#define INT_UXMC_EBI0 (32 + 6)
|
|
#define INT_UXMC_EBI1 (32 + 7)
|
|
#define INT_EBI2_OP_DONE (32 + 8)
|
|
#define INT_EBI2_WR_ER_DONE (32 + 9)
|
|
#define INT_TCSR_SPSS_CE (32 + 10)
|
|
#define INT_EMDH (32 + 11)
|
|
#define INT_PMDH (32 + 12)
|
|
#define INT_MDC (32 + 13)
|
|
#define INT_MIDI_TO_SUPSS (32 + 14)
|
|
#define INT_LPA_2 (32 + 15)
|
|
#define INT_GPIO_GROUP1_SECURE (32 + 16)
|
|
#define INT_GPIO_GROUP2_SECURE (32 + 17)
|
|
#define INT_GPIO_GROUP1 (32 + 18)
|
|
#define INT_GPIO_GROUP2 (32 + 19)
|
|
#define INT_MPRPH_SOFTRESET (32 + 20)
|
|
#define INT_PWB_I2C (32 + 21)
|
|
#define INT_PWB_I2C_2 (32 + 22)
|
|
#define INT_TSSC_SAMPLE (32 + 23)
|
|
#define INT_TSSC_PENUP (32 + 24)
|
|
#define INT_TCHSCRN_SSBI (32 + 25)
|
|
#define INT_FM_RDS (32 + 26)
|
|
#define INT_KEYSENSE (32 + 27)
|
|
#define INT_USB_OTG_HS (32 + 28)
|
|
#define INT_USB_OTG_HS2 (32 + 29)
|
|
#define INT_USB_OTG_HS3 (32 + 30)
|
|
#define INT_CSI (32 + 31)
|
|
|
|
#define INT_SPI_OUTPUT (64 + 0)
|
|
#define INT_SPI_INPUT (64 + 1)
|
|
#define INT_SPI_ERROR (64 + 2)
|
|
#define INT_UART1 (64 + 3)
|
|
#define INT_UART1_RX (64 + 4)
|
|
#define INT_UART2 (64 + 5)
|
|
#define INT_UART2_RX (64 + 6)
|
|
#define INT_UART3 (64 + 7)
|
|
#define INT_UART3_RX (64 + 8)
|
|
#define INT_UART1DM_IRQ (64 + 9)
|
|
#define INT_UART1DM_RX (64 + 10)
|
|
#define INT_UART2DM_IRQ (64 + 11)
|
|
#define INT_UART2DM_RX (64 + 12)
|
|
#define INT_TSIF (64 + 13)
|
|
#define INT_ADM_SC1 (64 + 14)
|
|
#define INT_ADM_SC2 (64 + 15)
|
|
#define INT_MDP (64 + 16)
|
|
#define INT_VPE (64 + 17)
|
|
#define INT_GRP_2D (64 + 18)
|
|
#define INT_GRP_3D (64 + 19)
|
|
#define INT_ROTATOR (64 + 20)
|
|
#define INT_MFC720 (64 + 21)
|
|
#define INT_JPEG (64 + 22)
|
|
#define INT_VFE (64 + 23)
|
|
#define INT_TV_ENC (64 + 24)
|
|
#define INT_PMIC_SSBI (64 + 25)
|
|
#define INT_MPM_1 (64 + 26)
|
|
#define INT_TCSR_SPSS_SAMPLE (64 + 27)
|
|
#define INT_TCSR_SPSS_PENUP (64 + 28)
|
|
#define INT_MPM_2 (64 + 29)
|
|
#define INT_SDC1_0 (64 + 30)
|
|
#define INT_SDC1_1 (64 + 31)
|
|
|
|
#define INT_SDC3_0 (96 + 0)
|
|
#define INT_SDC3_1 (96 + 1)
|
|
#define INT_SDC2_0 (96 + 2)
|
|
#define INT_SDC2_1 (96 + 3)
|
|
#define INT_SDC4_0 (96 + 4)
|
|
#define INT_SDC4_1 (96 + 5)
|
|
#define INT_PWB_QUP_IN (96 + 6)
|
|
#define INT_PWB_QUP_OUT (96 + 7)
|
|
#define INT_PWB_QUP_ERR (96 + 8)
|
|
#define INT_SCSS_WDT0_BITE (96 + 9)
|
|
/* SCSS_VICFIQSTS3[10:31] are RESERVED */
|
|
|
|
/* Retrofit universal macro names */
|
|
#define INT_ADM_AARM INT_ADM_SC2
|
|
#define INT_USB_HS INT_USB_OTG_HS
|
|
#define INT_USB_OTG INT_USB_OTG_HS
|
|
#define INT_TCHSCRN1 INT_TSSC_SAMPLE
|
|
#define INT_TCHSCRN2 INT_TSSC_PENUP
|
|
#define INT_GP_TIMER_EXP INT_GPT0_TIMER_EXP
|
|
#define INT_ADSP_A11 INT_AD5A_MPROC_APPS_1
|
|
#define INT_ADSP_A9_A11 INT_AD5A_MPROC_APPS_0
|
|
#define INT_MDDI_EXT INT_EMDH
|
|
#define INT_MDDI_PRI INT_PMDH
|
|
#define INT_MDDI_CLIENT INT_MDC
|
|
#define INT_NAND_WR_ER_DONE INT_EBI2_WR_ER_DONE
|
|
#define INT_NAND_OP_DONE INT_EBI2_OP_DONE
|
|
|
|
#define NR_SIRC_IRQS 0
|
|
|
|
#define NR_MSM_IRQS 128
|
|
#define NR_GPIO_IRQS 182
|
|
#define PMIC8058_IRQ_BASE (NR_MSM_IRQS + NR_GPIO_IRQS)
|
|
#define NR_PMIC8058_GPIO_IRQS 40
|
|
#define NR_PMIC8058_MPP_IRQS 12
|
|
#define NR_PMIC8058_MISC_IRQS 8
|
|
#define NR_PMIC8058_IRQS (NR_PMIC8058_GPIO_IRQS +\
|
|
NR_PMIC8058_MPP_IRQS +\
|
|
NR_PMIC8058_MISC_IRQS)
|
|
|
|
#endif
|
|
|
|
#define MSM_IRQ_BIT(irq) (1 << ((irq) & 31))
|
|
|
|
#define NR_BOARD_IRQS 64
|
|
#define NR_MICROP_IRQS 16
|
|
#define NR_IRQS (NR_MSM_IRQS + NR_SIRC_IRQS + NR_GPIO_IRQS + NR_BOARD_IRQS \
|
|
+ NR_MICROP_IRQS)
|
|
|
|
#define FIRST_SIRC_IRQ (NR_MSM_IRQS)
|
|
#define FIRST_GPIO_IRQ (NR_MSM_IRQS + NR_SIRC_IRQS)
|
|
#define FIRST_BOARD_IRQ (NR_MSM_IRQS + NR_SIRC_IRQS + NR_GPIO_IRQS)
|
|
#define FIRST_MICROP_IRQ (FIRST_BOARD_IRQ + NR_BOARD_IRQS)
|
|
|
|
#define MSM_GPIO_TO_INT(n) (FIRST_GPIO_IRQ + (n))
|
|
|
|
#define MSM_INT_TO_GPIO(n) ((n) - NR_MSM_IRQS)
|
|
|
|
#define MSM_uP_TO_INT(n) (FIRST_MICROP_IRQ + (n))
|
|
#endif
|