2 * Copyright (C) 2012 Spreadtrum Communications Inc.
4 * This software is licensed under the terms of the GNU General Public
5 * License version 2, as published by the Free Software Foundation, and
6 * may be copied, distributed, and modified under those terms.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
14 #ifndef __ASM_ARCH_SPRD_IRQS_SCX35_H
15 #define __ASM_ARCH_SPRD_IRQS_SCX35_H
17 #ifndef __ASM_ARCH_SCI_IRQS_H
18 #error "Don't include this file directly, include <mach/irqs.h>"
21 #define IRQ_GIC_START (32)
22 #if defined(CONFIG_ARCH_SCX15) || defined(CONFIG_ARCH_SCX35L64)
23 #define NR_SCI_PHY_IRQS (IRQ_GIC_START + 127)
25 #define NR_SCI_PHY_IRQS (IRQ_GIC_START + 125)
28 #define SCI_IRQ(_X_) (IRQ_GIC_START + (_X_))
29 #define SCI_EXT_IRQ(_X_) (NR_SCI_PHY_IRQS + (_X_))
31 #define IRQ_SPECIAL_LATCH SCI_IRQ(0)
32 #define IRQ_SOFT_TRIGGED0_INT SCI_IRQ(1)
33 #define IRQ_SER0_INT SCI_IRQ(2)
34 #define IRQ_SER1_INT SCI_IRQ(3)
35 #define IRQ_SER2_INT SCI_IRQ(4)
36 #define IRQ_SER3_INT SCI_IRQ(5)
37 #define IRQ_SER4_INT SCI_IRQ(6)
38 #define IRQ_SPI0_INT SCI_IRQ(7)
39 #define IRQ_SPI1_INT SCI_IRQ(8)
40 #define IRQ_SPI2_INT SCI_IRQ(9)
41 #define IRQ_SIM0_INT SCI_IRQ(10)
42 #define IRQ_I2C0_INT SCI_IRQ(11)
43 #define IRQ_I2C1_INT SCI_IRQ(12)
44 #define IRQ_I2C2_INT SCI_IRQ(13)
45 #define IRQ_I2C3_INT SCI_IRQ(14)
46 #define IRQ_I2C4_INT SCI_IRQ(15)
47 #define IRQ_IIS0_INT SCI_IRQ(16)
48 #define IRQ_IIS1_INT SCI_IRQ(17)
49 #define IRQ_IIS2_INT SCI_IRQ(18)
50 #define IRQ_IIS3_INT SCI_IRQ(19)
51 #define IRQ_REQ_AUD_INT SCI_IRQ(20)
52 #define IRQ_REQ_AUD_VBC_AFIFO_INT SCI_IRQ(21)
53 #define IRQ_REQ_AUD_VBC_DA_INT SCI_IRQ(22)
54 #define IRQ_REQ_AUD_VBC_AD01_INT SCI_IRQ(23)
55 #define IRQ_REQ_AUD_VBC_AD23_INT SCI_IRQ(24)
56 #define IRQ_ADI_INT SCI_IRQ(25)
57 #define IRQ_THM_INT SCI_IRQ(26)
58 #define IRQ_FM_INT SCI_IRQ(27)
59 #define IRQ_AONTMR0_INT SCI_IRQ(28)
60 #define IRQ_APTMR0_INT SCI_IRQ(29)
61 #define IRQ_AONSYST_INT SCI_IRQ(30)
62 #define IRQ_APSYST_INT SCI_IRQ(31)
64 #define IRQ_AONI2C_INT SCI_IRQ(34)
65 #define IRQ_GPIO_INT SCI_IRQ(35)
66 #define IRQ_KPD_INT SCI_IRQ(36)
67 #define IRQ_EIC_INT SCI_IRQ(37)
68 #define IRQ_ANA_INT SCI_IRQ(38)
69 #define IRQ_GPU_INT SCI_IRQ(39)
70 #define IRQ_CSI_INT0 SCI_IRQ(40)
71 #define IRQ_CSI_INT1 SCI_IRQ(41)
72 #define IRQ_JPG_INT SCI_IRQ(42)
73 #define IRQ_VSP_INT SCI_IRQ(43)
74 #define IRQ_ISP_INT SCI_IRQ(44)
75 #define IRQ_DCAM_INT SCI_IRQ(45)
76 #define IRQ_DISPC0_INT SCI_IRQ(46)
77 #define IRQ_DISPC1_INT SCI_IRQ(47)
78 #define IRQ_DSI0_INT SCI_IRQ(48)
79 #define IRQ_DSI1_INT SCI_IRQ(49)
80 #define IRQ_DMA_INT SCI_IRQ(50)
81 #define IRQ_GSP_INT SCI_IRQ(51)
82 #define IRQ_GPS_INT SCI_IRQ(52)
83 #define IRQ_GPS_RTCEXP_INT SCI_IRQ(53)
84 #define IRQ_GPS_WAKEUP_INT SCI_IRQ(54)
85 #define IRQ_USBD_INT SCI_IRQ(55)
86 #define IRQ_NFC_INT SCI_IRQ(56)
87 #define IRQ_SDIO0_INT SCI_IRQ(57)
88 #define IRQ_SDIO1_INT SCI_IRQ(58)
89 #define IRQ_SDIO2_INT SCI_IRQ(59)
90 #define IRQ_EMMC_INT SCI_IRQ(60)
91 #define IRQ_BM0_INT SCI_IRQ(61)
92 #define IRQ_BM1_INT SCI_IRQ(62)
93 #define IRQ_BM2_INT SCI_IRQ(63)
94 #define IRQ_DRM_INT SCI_IRQ(66)
95 #define IRQ_CP0_DSP_INT SCI_IRQ(67)
96 #define IRQ_CP0_MCU0_INT SCI_IRQ(68)
97 #define IRQ_CP0_MCU1_INT SCI_IRQ(69)
98 #define IRQ_CP1_DSP_INT SCI_IRQ(70)
99 #define IRQ_CP1_MCU0_INT SCI_IRQ(71)
100 #define IRQ_CP1_MCU1_INT SCI_IRQ(72)
101 #define IRQ_CP2_INT0_INT SCI_IRQ(73)
102 #define IRQ_CP2_INT1_INT SCI_IRQ(74)
103 #define IRQ_CP0_DSP_FIQ_INT SCI_IRQ(75)
104 #define IRQ_CP0_MCU_FIQ0_INT SCI_IRQ(76)
105 #define IRQ_CP0_MCU_FIQ1_INT SCI_IRQ(77)
106 #define IRQ_CP1_MCU_FIQ_INT SCI_IRQ(78)
108 #define IRQ_NFC_INT SCI_IRQ(79)
109 #define IRQ_NFC_INT SCI_IRQ(80)
110 #define IRQ_NFC_INT SCI_IRQ(81)
111 #define IRQ_NFC_INT SCI_IRQ(82)
113 #define IRQ_CP0_WDG_INT SCI_IRQ(83)
114 #define IRQ_CP1_WDG_INT SCI_IRQ(84)
115 #define IRQ_CP2_WDG_INT SCI_IRQ(85)
116 #define IRQ_AXI_BM_PUB_INT SCI_IRQ(86)
118 #define IRQ_NFC_INT SCI_IRQ(86)
119 #define IRQ_NFC_INT SCI_IRQ(87)
120 #define IRQ_NFC_INT SCI_IRQ(88)
121 #define IRQ_NFC_INT SCI_IRQ(89)
122 #define IRQ_NFC_INT SCI_IRQ(90)
123 #define IRQ_NFC_INT SCI_IRQ(91)
125 #define IRQ_NPMUIRQ0_INT SCI_IRQ(92)
126 #define IRQ_NPMUIRQ1_INT SCI_IRQ(93)
127 #define IRQ_NPMUIRQ2_INT SCI_IRQ(94)
128 #define IRQ_NPMUIRQ3_INT SCI_IRQ(95)
129 #define IRQ_CA7COM0_INT SCI_IRQ(98)
130 #define IRQ_CA7COM1_INT SCI_IRQ(99)
131 #define IRQ_CA7COM2_INT SCI_IRQ(100)
132 #define IRQ_CA7COM3_INT SCI_IRQ(101)
133 #define IRQ_NCNTV0_INT SCI_IRQ(102)
134 #define IRQ_NCNTV1_INT SCI_IRQ(103)
135 #define IRQ_NCNTV2_INT SCI_IRQ(104)
136 #define IRQ_NCNTV3_INT SCI_IRQ(105)
137 #define IRQ_NCNTHP0_INT SCI_IRQ(106)
138 #define IRQ_NCNTHP1_INT SCI_IRQ(107)
139 #define IRQ_NCNTHP2_INT SCI_IRQ(108)
140 #define IRQ_NCNTHP3_INT SCI_IRQ(109)
141 #define IRQ_NCNTPN0_INT SCI_IRQ(110)
142 #define IRQ_NCNTPN1_INT SCI_IRQ(111)
143 #define IRQ_NCNTPN2_INT SCI_IRQ(112)
144 #define IRQ_NCNTPN3_INT SCI_IRQ(113)
145 #define IRQ_NCNTPS0_INT SCI_IRQ(114)
146 #define IRQ_NCNTPS1_INT SCI_IRQ(115)
147 #define IRQ_NCNTPS2_INT SCI_IRQ(116)
148 #define IRQ_NCNTPS3_INT SCI_IRQ(117)
149 #define IRQ_APTMR1_INT SCI_IRQ(118)
150 #define IRQ_APTMR2_INT SCI_IRQ(119)
151 #define IRQ_APTMR3_INT SCI_IRQ(120)
152 #define IRQ_APTMR4_INT SCI_IRQ(121)
153 #define IRQ_AVS_INT SCI_IRQ(122)
154 #define IRQ_APWDG_INT SCI_IRQ(123)
155 #define IRQ_CA7WDG_INT SCI_IRQ(124)
156 #if defined(CONFIG_ARCH_SCX15) || defined(CONFIG_ARCH_SCX35L64)
157 #define IRQ_ZIPDEC_INT SCI_IRQ(125)
158 #define IRQ_ZIPENC_INT SCI_IRQ(126)
161 #define IRQ_SIPC_CPW IRQ_CP0_MCU0_INT
162 #define IRQ_SIPC_CPT IRQ_CP1_MCU0_INT
163 #define IRQ_SIPC_WCN IRQ_CP2_INT0_INT
166 /* translate gic irq number(user using ) to intc number */
167 #define SCI_GET_INTC_IRQ(_IRQ_NUM_) ((_IRQ_NUM_) - IRQ_GIC_START)
168 #define SCI_INTC_IRQ_BIT(_IRQ_NUM_) ((SCI_GET_INTC_IRQ(_IRQ_NUM_)<IRQ_GIC_START) ? \
169 (1<<SCI_GET_INTC_IRQ(_IRQ_NUM_)) : \
170 (1<<(SCI_GET_INTC_IRQ(_IRQ_NUM_)-IRQ_GIC_START)))
172 /* analog die interrupt number */
173 #define IRQ_ANA_ADC_INT SCI_EXT_IRQ(0)
174 #if defined(CONFIG_ARCH_SCX15) || defined(CONFIG_ARCH_SCX35L64)
175 #define IRQ_ANA_GPIO_INT -1
177 #define IRQ_ANA_GPIO_INT SCI_EXT_IRQ(1)
179 #define IRQ_ANA_RTC_INT SCI_EXT_IRQ(2)
180 #define IRQ_ANA_WDG_INT SCI_EXT_IRQ(3)
181 #define IRQ_ANA_FGU_INT SCI_EXT_IRQ(4)
182 #define IRQ_ANA_EIC_INT SCI_EXT_IRQ(5)
183 #define IRQ_ANA_AUD_HEAD_BUTTON_INT SCI_EXT_IRQ(6)
184 #define IRQ_ANA_AUD_PROTECT_INT SCI_EXT_IRQ(7)
185 #if defined(CONFIG_ARCH_SCX15) || defined(CONFIG_ARCH_SCX35L64)
186 #define IRQ_ANA_CAL_INT SCI_EXT_IRQ(8)
187 #define IRQ_ANA_TPC_INT SCI_EXT_IRQ(9)
188 #define NR_ANA_IRQS (10)
190 #define IRQ_ANA_THM_OTP_INT SCI_EXT_IRQ(8)
191 #define IRQ_ANA_DCD_OTP_INT SCI_EXT_IRQ(10)/*bit9 is reserved in adie intc*/
192 #define NR_ANA_IRQS (11)
195 #define IRQ_ANA_INT_START IRQ_ANA_ADC_INT
197 #if defined(CONFIG_ARCH_SCX15) || defined(CONFIG_ARCH_SCX35L64)
198 #define GPIO_IRQ_START SCI_EXT_IRQ(10)
199 #define NR_GPIO_IRQS ( 320 )
201 /* sc8830 gpio&eic pin interrupt number, total is 320, which is bigger than 256 */
202 #define GPIO_IRQ_START SCI_EXT_IRQ(11)
203 #define NR_GPIO_IRQS ( 320 )
206 #if (defined(CONFIG_EIRQ_NUM) && CONFIG_EIRQ_NUM)
207 #ifndef CONFIG_SPARSE_IRQ
208 /* For external irq region desc request */
209 #define __NR_IRQS (NR_SCI_PHY_IRQS + NR_ANA_IRQS + NR_GPIO_IRQS)
210 #define NR_IRQS (__NR_IRQS + CONFIG_EIRQ_NUM)
212 #error 'Dont support CONFIG_EIRQ_NUM & CONFIG_SPARSE_IRQ coexist'
213 #endif /* CONFIG_SPARSE_IRQ */
215 #define NR_IRQS (NR_SCI_PHY_IRQS + NR_ANA_IRQS + NR_GPIO_IRQS)
216 #endif /* CONFIG_EIRQ_NUM */
217 #define FIQ_START (0)
218 #define NR_FIQS (NR_SCI_PHY_IRQS)
221 /* redefined some MACROS for module code*/
222 #define IRQ_TIMER1_INT IRQ_AONTMR0_INT
223 #define IRQ_ANA_AUD_INT IRQ_ANA_AUD_PROTECT_INT
224 #endif /*__ASM_ARCH_SPRD_IRQS_SCX35_H*/
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0