tizen 2.4 release
[profile/mobile/platform/kernel/linux-3.10-sc7730.git] / include / soc / sprd / __irqs-sc8830.h
1 /*
2  * Copyright (C) 2012 Spreadtrum Communications Inc.
3  *
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.
7  *
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.
12  */
13
14 #ifndef __ASM_ARCH_SPRD_IRQS_SCX35_H
15 #define __ASM_ARCH_SPRD_IRQS_SCX35_H
16
17 #ifndef __ASM_ARCH_SCI_IRQS_H
18 #error  "Don't include this file directly, include <mach/irqs.h>"
19 #endif
20
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)
24 #else
25 #define NR_SCI_PHY_IRQS                 (IRQ_GIC_START + 125)
26 #endif
27
28 #define SCI_IRQ(_X_)                    (IRQ_GIC_START + (_X_))
29 #define SCI_EXT_IRQ(_X_)                (NR_SCI_PHY_IRQS + (_X_))
30
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)
63
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)
107 #if 0
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)
112 #endif
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)
117 #if 0
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)
124 #endif
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)
159 #endif
160
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
164
165
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)))
171
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
176 #else
177 #define IRQ_ANA_GPIO_INT                SCI_EXT_IRQ(1)
178 #endif
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)
189 #else
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)
193 #endif
194
195 #define IRQ_ANA_INT_START               IRQ_ANA_ADC_INT
196
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 )
200 #else
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 )
204 #endif
205
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)
211 #else
212 #error 'Dont support CONFIG_EIRQ_NUM & CONFIG_SPARSE_IRQ coexist'
213 #endif /* CONFIG_SPARSE_IRQ */
214 #else
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)
219
220
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