diff options
Diffstat (limited to 'arch/arm/mach-sc/include/mach/__irqs-sc8830.h')
| -rw-r--r-- | arch/arm/mach-sc/include/mach/__irqs-sc8830.h | 229 |
1 files changed, 229 insertions, 0 deletions
diff --git a/arch/arm/mach-sc/include/mach/__irqs-sc8830.h b/arch/arm/mach-sc/include/mach/__irqs-sc8830.h new file mode 100644 index 00000000..58609d8a --- /dev/null +++ b/arch/arm/mach-sc/include/mach/__irqs-sc8830.h @@ -0,0 +1,229 @@ +/* + * Copyright (C) 2012 Spreadtrum Communications Inc. + * + * 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_SPRD_IRQS_SCX35_H +#define __ASM_ARCH_SPRD_IRQS_SCX35_H + +#ifndef __ASM_ARCH_SCI_IRQS_H +#error "Don't include this file directly, include <mach/irqs.h>" +#endif + +#define IRQ_GIC_START (32) +#if defined(CONFIG_ARCH_SCX15) || defined(CONFIG_ARCH_SCX30G) +#define NR_SCI_PHY_IRQS (IRQ_GIC_START + 127) +#else +#define NR_SCI_PHY_IRQS (IRQ_GIC_START + 125) +#endif + +#define SCI_IRQ(_X_) (IRQ_GIC_START + (_X_)) +#define SCI_EXT_IRQ(_X_) (NR_SCI_PHY_IRQS + (_X_)) + +#define IRQ_SPECIAL_LATCH SCI_IRQ(0) +#define IRQ_SOFT_TRIGGED0_INT SCI_IRQ(1) +#define IRQ_SER0_INT SCI_IRQ(2) +#define IRQ_SER1_INT SCI_IRQ(3) +#define IRQ_SER2_INT SCI_IRQ(4) +#define IRQ_SER3_INT SCI_IRQ(5) +#define IRQ_SER4_INT SCI_IRQ(6) +#define IRQ_SPI0_INT SCI_IRQ(7) +#define IRQ_SPI1_INT SCI_IRQ(8) +#define IRQ_SPI2_INT SCI_IRQ(9) +#define IRQ_SIM0_INT SCI_IRQ(10) +#define IRQ_I2C0_INT SCI_IRQ(11) +#define IRQ_I2C1_INT SCI_IRQ(12) +#define IRQ_I2C2_INT SCI_IRQ(13) +#define IRQ_I2C3_INT SCI_IRQ(14) +#define IRQ_I2C4_INT SCI_IRQ(15) +#define IRQ_IIS0_INT SCI_IRQ(16) +#define IRQ_IIS1_INT SCI_IRQ(17) +#define IRQ_IIS2_INT SCI_IRQ(18) +#define IRQ_IIS3_INT SCI_IRQ(19) +#define IRQ_REQ_AUD_INT SCI_IRQ(20) +#define IRQ_REQ_AUD_VBC_AFIFO_INT SCI_IRQ(21) +#define IRQ_REQ_AUD_VBC_DA_INT SCI_IRQ(22) +#define IRQ_REQ_AUD_VBC_AD01_INT SCI_IRQ(23) +#define IRQ_REQ_AUD_VBC_AD23_INT SCI_IRQ(24) +#define IRQ_ADI_INT SCI_IRQ(25) +#define IRQ_THM_INT SCI_IRQ(26) +#define IRQ_FM_INT SCI_IRQ(27) +#define IRQ_AONTMR0_INT SCI_IRQ(28) +#define IRQ_APTMR0_INT SCI_IRQ(29) +#define IRQ_AONSYST_INT SCI_IRQ(30) +#define IRQ_APSYST_INT SCI_IRQ(31) + +#define IRQ_AONI2C_INT SCI_IRQ(34) +#define IRQ_GPIO_INT SCI_IRQ(35) +#define IRQ_KPD_INT SCI_IRQ(36) +#define IRQ_EIC_INT SCI_IRQ(37) +#define IRQ_ANA_INT SCI_IRQ(38) +#define IRQ_GPU_INT SCI_IRQ(39) +#define IRQ_CSI_INT0 SCI_IRQ(40) +#define IRQ_CSI_INT1 SCI_IRQ(41) +#define IRQ_JPG_INT SCI_IRQ(42) +#define IRQ_VSP_INT SCI_IRQ(43) +#define IRQ_ISP_INT SCI_IRQ(44) +#define IRQ_DCAM_INT SCI_IRQ(45) +#define IRQ_DISPC0_INT SCI_IRQ(46) +#define IRQ_DISPC1_INT SCI_IRQ(47) +#define IRQ_DSI0_INT SCI_IRQ(48) +#define IRQ_DSI1_INT SCI_IRQ(49) +#define IRQ_DSI2_INT SCI_IRQ(47) +//#define IRQ_DMA_INT SCI_IRQ(50) +#define IRQ_GSP_INT SCI_IRQ(51) +#define IRQ_GPS_INT SCI_IRQ(52) +#define IRQ_GPS_RTCEXP_INT SCI_IRQ(53) +#define IRQ_GPS_WAKEUP_INT SCI_IRQ(54) +#define IRQ_USBD_INT SCI_IRQ(55) +#define IRQ_NFC_INT SCI_IRQ(56) +#define IRQ_SDIO0_INT SCI_IRQ(57) +#define IRQ_SDIO1_INT SCI_IRQ(58) +#define IRQ_SDIO2_INT SCI_IRQ(59) +#define IRQ_EMMC_INT SCI_IRQ(60) +#define IRQ_BM0_INT SCI_IRQ(61) +#define IRQ_BM1_INT SCI_IRQ(62) +#define IRQ_BM2_INT SCI_IRQ(63) +#define IRQ_DRM_INT SCI_IRQ(66) +#define IRQ_CP0_DSP_INT SCI_IRQ(67) +#define IRQ_CP0_MCU0_INT SCI_IRQ(68) +#define IRQ_CP0_MCU1_INT SCI_IRQ(69) +#define IRQ_CP1_DSP_INT SCI_IRQ(70) +#define IRQ_CP1_MCU0_INT SCI_IRQ(71) +#define IRQ_CP1_MCU1_INT SCI_IRQ(72) +#define IRQ_CP2_INT0_INT SCI_IRQ(73) +#define IRQ_CP2_INT1_INT SCI_IRQ(74) +#define IRQ_CP0_DSP_FIQ_INT SCI_IRQ(75) +#define IRQ_CP0_MCU_FIQ0_INT SCI_IRQ(76) +#define IRQ_CP0_MCU_FIQ1_INT SCI_IRQ(77) +#define IRQ_CP1_MCU_FIQ_INT SCI_IRQ(78) +#if 0 +#define IRQ_NFC_INT SCI_IRQ(79) +#define IRQ_NFC_INT SCI_IRQ(80) +#define IRQ_NFC_INT SCI_IRQ(81) +#define IRQ_NFC_INT SCI_IRQ(82) +#endif +#define IRQ_CP0_WDG_INT SCI_IRQ(83) +#define IRQ_CP1_WDG_INT SCI_IRQ(84) +#define IRQ_CP2_WDG_INT SCI_IRQ(85) +#define IRQ_AXI_BM_PUB_INT SCI_IRQ(86) +#if 0 +#define IRQ_NFC_INT SCI_IRQ(86) +#define IRQ_NFC_INT SCI_IRQ(87) +#define IRQ_NFC_INT SCI_IRQ(88) +#define IRQ_NFC_INT SCI_IRQ(89) +#define IRQ_NFC_INT SCI_IRQ(90) +#define IRQ_NFC_INT SCI_IRQ(91) +#endif +#define IRQ_NPMUIRQ0_INT SCI_IRQ(92) +#define IRQ_NPMUIRQ1_INT SCI_IRQ(93) +#define IRQ_NPMUIRQ2_INT SCI_IRQ(94) +#define IRQ_NPMUIRQ3_INT SCI_IRQ(95) +#define IRQ_CA7COM0_INT SCI_IRQ(98) +#define IRQ_CA7COM1_INT SCI_IRQ(99) +#define IRQ_CA7COM2_INT SCI_IRQ(100) +#define IRQ_CA7COM3_INT SCI_IRQ(101) +#define IRQ_NCNTV0_INT SCI_IRQ(102) +#define IRQ_NCNTV1_INT SCI_IRQ(103) +#define IRQ_NCNTV2_INT SCI_IRQ(104) +#define IRQ_NCNTV3_INT SCI_IRQ(105) +#define IRQ_NCNTHP0_INT SCI_IRQ(106) +#define IRQ_NCNTHP1_INT SCI_IRQ(107) +#define IRQ_NCNTHP2_INT SCI_IRQ(108) +#define IRQ_NCNTHP3_INT SCI_IRQ(109) +#define IRQ_NCNTPN0_INT SCI_IRQ(110) +#define IRQ_NCNTPN1_INT SCI_IRQ(111) +#define IRQ_NCNTPN2_INT SCI_IRQ(112) +#define IRQ_NCNTPN3_INT SCI_IRQ(113) +#define IRQ_NCNTPS0_INT SCI_IRQ(114) +#define IRQ_NCNTPS1_INT SCI_IRQ(115) +#define IRQ_NCNTPS2_INT SCI_IRQ(116) +#define IRQ_NCNTPS3_INT SCI_IRQ(117) +#define IRQ_APTMR1_INT SCI_IRQ(118) +#define IRQ_APTMR2_INT SCI_IRQ(119) +#define IRQ_APTMR3_INT SCI_IRQ(120) +#define IRQ_APTMR4_INT SCI_IRQ(121) +#define IRQ_AVS_INT SCI_IRQ(122) +#define IRQ_APWDG_INT SCI_IRQ(123) +#define IRQ_CA7WDG_INT SCI_IRQ(124) +#if defined(CONFIG_ARCH_SCX15) || defined(CONFIG_ARCH_SCX30G) +#define IRQ_ZIPDEC_INT SCI_IRQ(125) +#define IRQ_ZIPENC_INT SCI_IRQ(126) +#endif + +#define IRQ_SIPC_CPW IRQ_CP0_MCU0_INT +#ifdef CONFIG_ARCH_SCX30G +#define IRQ_SIPC_CPT IRQ_CP0_MCU0_INT +#else +#define IRQ_SIPC_CPT IRQ_CP1_MCU0_INT +#endif +#define IRQ_SIPC_WCN IRQ_CP2_INT0_INT + + +/* translate gic irq number(user using ) to intc number */ +#define SCI_GET_INTC_IRQ(_IRQ_NUM_) ((_IRQ_NUM_) - IRQ_GIC_START) +#define SCI_INTC_IRQ_BIT(_IRQ_NUM_) ((SCI_GET_INTC_IRQ(_IRQ_NUM_)<IRQ_GIC_START) ? \ + (1<<SCI_GET_INTC_IRQ(_IRQ_NUM_)) : \ + (1<<(SCI_GET_INTC_IRQ(_IRQ_NUM_)-IRQ_GIC_START))) + +/* analog die interrupt number */ +#define IRQ_ANA_ADC_INT SCI_EXT_IRQ(0) +#if defined(CONFIG_ARCH_SCX15) +#define IRQ_ANA_GPIO_INT -1 +#else +#define IRQ_ANA_GPIO_INT SCI_EXT_IRQ(1) +#endif +#define IRQ_ANA_RTC_INT SCI_EXT_IRQ(2) +#define IRQ_ANA_WDG_INT SCI_EXT_IRQ(3) +#define IRQ_ANA_FGU_INT SCI_EXT_IRQ(4) +#define IRQ_ANA_EIC_INT SCI_EXT_IRQ(5) +#define IRQ_ANA_AUD_HEAD_BUTTON_INT SCI_EXT_IRQ(6) +#define IRQ_ANA_AUD_PROTECT_INT SCI_EXT_IRQ(7) +#if defined(CONFIG_ARCH_SCX15) +#define IRQ_ANA_CAL_INT SCI_EXT_IRQ(8) +#define IRQ_ANA_TPC_INT SCI_EXT_IRQ(9) +#define NR_ANA_IRQS (10) +#else +#define IRQ_ANA_THM_OTP_INT SCI_EXT_IRQ(9) +#define IRQ_ANA_DCD_OTP_INT SCI_EXT_IRQ(10)/*bit9 is reserved in adie intc*/ +#define NR_ANA_IRQS (11) +#endif + +#define IRQ_ANA_INT_START IRQ_ANA_ADC_INT + +#if defined(CONFIG_ARCH_SCX15) +#define GPIO_IRQ_START SCI_EXT_IRQ(10) +#define NR_GPIO_IRQS ( 320 ) +#else +/* sc8830 gpio&eic pin interrupt number, total is 320, which is bigger than 256 */ +#define GPIO_IRQ_START SCI_EXT_IRQ(11) +#define NR_GPIO_IRQS ( 320 ) +#endif + +#if (defined(CONFIG_EIRQ_NUM) && CONFIG_EIRQ_NUM) +#ifndef CONFIG_SPARSE_IRQ +/* For external irq region desc request */ +#define __NR_IRQS (NR_SCI_PHY_IRQS + NR_ANA_IRQS + NR_GPIO_IRQS) +#define NR_IRQS (__NR_IRQS + CONFIG_EIRQ_NUM) +#else +#error 'Dont support CONFIG_EIRQ_NUM & CONFIG_SPARSE_IRQ coexist' +#endif /* CONFIG_SPARSE_IRQ */ +#else +#define NR_IRQS (NR_SCI_PHY_IRQS + NR_ANA_IRQS + NR_GPIO_IRQS) +#endif /* CONFIG_EIRQ_NUM */ +#define FIQ_START (0) +#define NR_FIQS (NR_SCI_PHY_IRQS) + + +/* redefined some MACROS for module code*/ +#define IRQ_TIMER1_INT IRQ_AONTMR0_INT +#define IRQ_ANA_AUD_INT IRQ_ANA_AUD_PROTECT_INT +#endif |
