Back to home page

OSCL-LXR

 
 

    


0001 /*
0002  * DaVinci interrupt controller definitions
0003  *
0004  *  Copyright (C) 2006 Texas Instruments.
0005  *
0006  *  This program is free software; you can redistribute  it and/or modify it
0007  *  under  the terms of  the GNU General  Public License as published by the
0008  *  Free Software Foundation;  either version 2 of the  License, or (at your
0009  *  option) any later version.
0010  *
0011  *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
0012  *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
0013  *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
0014  *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
0015  *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
0016  *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
0017  *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
0018  *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
0019  *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
0020  *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
0021  *
0022  *  You should have received a copy of the  GNU General Public License along
0023  *  with this program; if not, write  to the Free Software Foundation, Inc.,
0024  *  675 Mass Ave, Cambridge, MA 02139, USA.
0025  *
0026  */
0027 #ifndef __ASM_ARCH_IRQS_H
0028 #define __ASM_ARCH_IRQS_H
0029 
0030 /* Base address */
0031 #define DAVINCI_ARM_INTC_BASE 0x01C48000
0032 
0033 /* Interrupt lines */
0034 #define IRQ_VDINT0       0
0035 #define IRQ_VDINT1       1
0036 #define IRQ_VDINT2       2
0037 #define IRQ_HISTINT      3
0038 #define IRQ_H3AINT       4
0039 #define IRQ_PRVUINT      5
0040 #define IRQ_RSZINT       6
0041 #define IRQ_VFOCINT      7
0042 #define IRQ_VENCINT      8
0043 #define IRQ_ASQINT       9
0044 #define IRQ_IMXINT       10
0045 #define IRQ_VLCDINT      11
0046 #define IRQ_USBINT       12
0047 #define IRQ_EMACINT      13
0048 
0049 #define IRQ_CCINT0       16
0050 #define IRQ_CCERRINT     17
0051 #define IRQ_TCERRINT0    18
0052 #define IRQ_TCERRINT     19
0053 #define IRQ_PSCIN        20
0054 
0055 #define IRQ_IDE          22
0056 #define IRQ_HPIINT       23
0057 #define IRQ_MBXINT       24
0058 #define IRQ_MBRINT       25
0059 #define IRQ_MMCINT       26
0060 #define IRQ_SDIOINT      27
0061 #define IRQ_MSINT        28
0062 #define IRQ_DDRINT       29
0063 #define IRQ_AEMIFINT     30
0064 #define IRQ_VLQINT       31
0065 #define IRQ_TINT0_TINT12 32
0066 #define IRQ_TINT0_TINT34 33
0067 #define IRQ_TINT1_TINT12 34
0068 #define IRQ_TINT1_TINT34 35
0069 #define IRQ_PWMINT0      36
0070 #define IRQ_PWMINT1      37
0071 #define IRQ_PWMINT2      38
0072 #define IRQ_I2C          39
0073 #define IRQ_UARTINT0     40
0074 #define IRQ_UARTINT1     41
0075 #define IRQ_UARTINT2     42
0076 #define IRQ_SPINT0       43
0077 #define IRQ_SPINT1       44
0078 
0079 #define IRQ_DSP2ARM0     46
0080 #define IRQ_DSP2ARM1     47
0081 #define IRQ_GPIO0        48
0082 #define IRQ_GPIO1        49
0083 #define IRQ_GPIO2        50
0084 #define IRQ_GPIO3        51
0085 #define IRQ_GPIO4        52
0086 #define IRQ_GPIO5        53
0087 #define IRQ_GPIO6        54
0088 #define IRQ_GPIO7        55
0089 #define IRQ_GPIOBNK0     56
0090 #define IRQ_GPIOBNK1     57
0091 #define IRQ_GPIOBNK2     58
0092 #define IRQ_GPIOBNK3     59
0093 #define IRQ_GPIOBNK4     60
0094 #define IRQ_COMMTX       61
0095 #define IRQ_COMMRX       62
0096 #define IRQ_EMUINT       63
0097 
0098 #define DAVINCI_N_AINTC_IRQ 64
0099 
0100 #define ARCH_TIMER_IRQ IRQ_TINT1_TINT34
0101 
0102 /* DaVinci DM6467-specific Interrupts */
0103 #define IRQ_DM646X_VP_VERTINT0  0
0104 #define IRQ_DM646X_VP_VERTINT1  1
0105 #define IRQ_DM646X_VP_VERTINT2  2
0106 #define IRQ_DM646X_VP_VERTINT3  3
0107 #define IRQ_DM646X_VP_ERRINT    4
0108 #define IRQ_DM646X_RESERVED_1   5
0109 #define IRQ_DM646X_RESERVED_2   6
0110 #define IRQ_DM646X_WDINT        7
0111 #define IRQ_DM646X_CRGENINT0    8
0112 #define IRQ_DM646X_CRGENINT1    9
0113 #define IRQ_DM646X_TSIFINT0     10
0114 #define IRQ_DM646X_TSIFINT1     11
0115 #define IRQ_DM646X_VDCEINT      12
0116 #define IRQ_DM646X_USBINT       13
0117 #define IRQ_DM646X_USBDMAINT    14
0118 #define IRQ_DM646X_PCIINT       15
0119 #define IRQ_DM646X_TCERRINT2    20
0120 #define IRQ_DM646X_TCERRINT3    21
0121 #define IRQ_DM646X_IDE          22
0122 #define IRQ_DM646X_HPIINT       23
0123 #define IRQ_DM646X_EMACRXTHINT  24
0124 #define IRQ_DM646X_EMACRXINT    25
0125 #define IRQ_DM646X_EMACTXINT    26
0126 #define IRQ_DM646X_EMACMISCINT  27
0127 #define IRQ_DM646X_MCASP0TXINT  28
0128 #define IRQ_DM646X_MCASP0RXINT  29
0129 #define IRQ_DM646X_MCASP1TXINT  30
0130 #define IRQ_DM646X_RESERVED_3   31
0131 #define IRQ_DM646X_VLQINT       38
0132 #define IRQ_DM646X_UARTINT2     42
0133 #define IRQ_DM646X_SPINT0       43
0134 #define IRQ_DM646X_SPINT1       44
0135 #define IRQ_DM646X_DSP2ARMINT   45
0136 #define IRQ_DM646X_RESERVED_4   46
0137 #define IRQ_DM646X_PSCINT       47
0138 #define IRQ_DM646X_GPIO0        48
0139 #define IRQ_DM646X_GPIO1        49
0140 #define IRQ_DM646X_GPIO2        50
0141 #define IRQ_DM646X_GPIO3        51
0142 #define IRQ_DM646X_GPIO4        52
0143 #define IRQ_DM646X_GPIO5        53
0144 #define IRQ_DM646X_GPIO6        54
0145 #define IRQ_DM646X_GPIO7        55
0146 #define IRQ_DM646X_GPIOBNK0     56
0147 #define IRQ_DM646X_GPIOBNK1     57
0148 #define IRQ_DM646X_GPIOBNK2     58
0149 #define IRQ_DM646X_DDRINT       59
0150 #define IRQ_DM646X_AEMIFINT     60
0151 
0152 /* DaVinci DM355-specific Interrupts */
0153 #define IRQ_DM355_CCDC_VDINT0   0
0154 #define IRQ_DM355_CCDC_VDINT1   1
0155 #define IRQ_DM355_CCDC_VDINT2   2
0156 #define IRQ_DM355_IPIPE_HST 3
0157 #define IRQ_DM355_H3AINT    4
0158 #define IRQ_DM355_IPIPE_SDR 5
0159 #define IRQ_DM355_IPIPEIFINT    6
0160 #define IRQ_DM355_OSDINT    7
0161 #define IRQ_DM355_VENCINT   8
0162 #define IRQ_DM355_IMCOPINT  11
0163 #define IRQ_DM355_RTOINT    13
0164 #define IRQ_DM355_TINT4     13
0165 #define IRQ_DM355_TINT2_TINT12  13
0166 #define IRQ_DM355_UARTINT2  14
0167 #define IRQ_DM355_TINT5     14
0168 #define IRQ_DM355_TINT2_TINT34  14
0169 #define IRQ_DM355_TINT6     15
0170 #define IRQ_DM355_TINT3_TINT12  15
0171 #define IRQ_DM355_SPINT1_0  17
0172 #define IRQ_DM355_SPINT1_1  18
0173 #define IRQ_DM355_SPINT2_0  19
0174 #define IRQ_DM355_SPINT2_1  21
0175 #define IRQ_DM355_TINT7     22
0176 #define IRQ_DM355_TINT3_TINT34  22
0177 #define IRQ_DM355_SDIOINT0  23
0178 #define IRQ_DM355_MMCINT0   26
0179 #define IRQ_DM355_MSINT     26
0180 #define IRQ_DM355_MMCINT1   27
0181 #define IRQ_DM355_PWMINT3   28
0182 #define IRQ_DM355_SDIOINT1  31
0183 #define IRQ_DM355_SPINT0_0  42
0184 #define IRQ_DM355_SPINT0_1  43
0185 #define IRQ_DM355_GPIO0     44
0186 #define IRQ_DM355_GPIO1     45
0187 #define IRQ_DM355_GPIO2     46
0188 #define IRQ_DM355_GPIO3     47
0189 #define IRQ_DM355_GPIO4     48
0190 #define IRQ_DM355_GPIO5     49
0191 #define IRQ_DM355_GPIO6     50
0192 #define IRQ_DM355_GPIO7     51
0193 #define IRQ_DM355_GPIO8     52
0194 #define IRQ_DM355_GPIO9     53
0195 #define IRQ_DM355_GPIOBNK0  54
0196 #define IRQ_DM355_GPIOBNK1  55
0197 #define IRQ_DM355_GPIOBNK2  56
0198 #define IRQ_DM355_GPIOBNK3  57
0199 #define IRQ_DM355_GPIOBNK4  58
0200 #define IRQ_DM355_GPIOBNK5  59
0201 #define IRQ_DM355_GPIOBNK6  60
0202 
0203 /* DaVinci DM365-specific Interrupts */
0204 #define IRQ_DM365_INSFINT   7
0205 #define IRQ_DM365_IMXINT1   8
0206 #define IRQ_DM365_IMXINT0   10
0207 #define IRQ_DM365_KLD_ARMINT    10
0208 #define IRQ_DM365_IMCOPINT  11
0209 #define IRQ_DM365_RTOINT    13
0210 #define IRQ_DM365_TINT5     14
0211 #define IRQ_DM365_TINT6     15
0212 #define IRQ_DM365_SPINT2_1  21
0213 #define IRQ_DM365_TINT7     22
0214 #define IRQ_DM365_SDIOINT0  23
0215 #define IRQ_DM365_MMCINT1   27
0216 #define IRQ_DM365_PWMINT3   28
0217 #define IRQ_DM365_RTCINT    29
0218 #define IRQ_DM365_SDIOINT1  31
0219 #define IRQ_DM365_SPIINT0_0 42
0220 #define IRQ_DM365_SPIINT3_0 43
0221 #define IRQ_DM365_GPIO0     44
0222 #define IRQ_DM365_GPIO1     45
0223 #define IRQ_DM365_GPIO2     46
0224 #define IRQ_DM365_GPIO3     47
0225 #define IRQ_DM365_GPIO4     48
0226 #define IRQ_DM365_GPIO5     49
0227 #define IRQ_DM365_GPIO6     50
0228 #define IRQ_DM365_GPIO7     51
0229 #define IRQ_DM365_EMAC_RXTHRESH 52
0230 #define IRQ_DM365_EMAC_RXPULSE  53
0231 #define IRQ_DM365_EMAC_TXPULSE  54
0232 #define IRQ_DM365_EMAC_MISCPULSE 55
0233 #define IRQ_DM365_GPIO12    56
0234 #define IRQ_DM365_GPIO13    57
0235 #define IRQ_DM365_GPIO14    58
0236 #define IRQ_DM365_GPIO15    59
0237 #define IRQ_DM365_ADCINT    59
0238 #define IRQ_DM365_KEYINT    60
0239 #define IRQ_DM365_TCERRINT2 61
0240 #define IRQ_DM365_TCERRINT3 62
0241 #define IRQ_DM365_EMUINT    63
0242 
0243 /* DA8XX interrupts */
0244 #define IRQ_DA8XX_COMMTX        0
0245 #define IRQ_DA8XX_COMMRX        1
0246 #define IRQ_DA8XX_NINT          2
0247 #define IRQ_DA8XX_EVTOUT0       3
0248 #define IRQ_DA8XX_EVTOUT1       4
0249 #define IRQ_DA8XX_EVTOUT2       5
0250 #define IRQ_DA8XX_EVTOUT3       6
0251 #define IRQ_DA8XX_EVTOUT4       7
0252 #define IRQ_DA8XX_EVTOUT5       8
0253 #define IRQ_DA8XX_EVTOUT6       9
0254 #define IRQ_DA8XX_EVTOUT7       10
0255 #define IRQ_DA8XX_CCINT0        11
0256 #define IRQ_DA8XX_CCERRINT      12
0257 #define IRQ_DA8XX_TCERRINT0     13
0258 #define IRQ_DA8XX_AEMIFINT      14
0259 #define IRQ_DA8XX_I2CINT0       15
0260 #define IRQ_DA8XX_MMCSDINT0     16
0261 #define IRQ_DA8XX_MMCSDINT1     17
0262 #define IRQ_DA8XX_ALLINT0       18
0263 #define IRQ_DA8XX_RTC           19
0264 #define IRQ_DA8XX_SPINT0        20
0265 #define IRQ_DA8XX_TINT12_0      21
0266 #define IRQ_DA8XX_TINT34_0      22
0267 #define IRQ_DA8XX_TINT12_1      23
0268 #define IRQ_DA8XX_TINT34_1      24
0269 #define IRQ_DA8XX_UARTINT0      25
0270 #define IRQ_DA8XX_KEYMGRINT     26
0271 #define IRQ_DA8XX_SECINT        26
0272 #define IRQ_DA8XX_SECKEYERR     26
0273 #define IRQ_DA8XX_CHIPINT0      28
0274 #define IRQ_DA8XX_CHIPINT1      29
0275 #define IRQ_DA8XX_CHIPINT2      30
0276 #define IRQ_DA8XX_CHIPINT3      31
0277 #define IRQ_DA8XX_TCERRINT1     32
0278 #define IRQ_DA8XX_C0_RX_THRESH_PULSE    33
0279 #define IRQ_DA8XX_C0_RX_PULSE       34
0280 #define IRQ_DA8XX_C0_TX_PULSE       35
0281 #define IRQ_DA8XX_C0_MISC_PULSE     36
0282 #define IRQ_DA8XX_C1_RX_THRESH_PULSE    37
0283 #define IRQ_DA8XX_C1_RX_PULSE       38
0284 #define IRQ_DA8XX_C1_TX_PULSE       39
0285 #define IRQ_DA8XX_C1_MISC_PULSE     40
0286 #define IRQ_DA8XX_MEMERR        41
0287 #define IRQ_DA8XX_GPIO0         42
0288 #define IRQ_DA8XX_GPIO1         43
0289 #define IRQ_DA8XX_GPIO2         44
0290 #define IRQ_DA8XX_GPIO3         45
0291 #define IRQ_DA8XX_GPIO4         46
0292 #define IRQ_DA8XX_GPIO5         47
0293 #define IRQ_DA8XX_GPIO6         48
0294 #define IRQ_DA8XX_GPIO7         49
0295 #define IRQ_DA8XX_GPIO8         50
0296 #define IRQ_DA8XX_I2CINT1       51
0297 #define IRQ_DA8XX_LCDINT        52
0298 #define IRQ_DA8XX_UARTINT1      53
0299 #define IRQ_DA8XX_MCASPINT      54
0300 #define IRQ_DA8XX_ALLINT1       55
0301 #define IRQ_DA8XX_SPINT1        56
0302 #define IRQ_DA8XX_UHPI_INT1     57
0303 #define IRQ_DA8XX_USB_INT       58
0304 #define IRQ_DA8XX_IRQN          59
0305 #define IRQ_DA8XX_RWAKEUP       60
0306 #define IRQ_DA8XX_UARTINT2      61
0307 #define IRQ_DA8XX_DFTSSINT      62
0308 #define IRQ_DA8XX_EHRPWM0       63
0309 #define IRQ_DA8XX_EHRPWM0TZ     64
0310 #define IRQ_DA8XX_EHRPWM1       65
0311 #define IRQ_DA8XX_EHRPWM1TZ     66
0312 #define IRQ_DA8XX_ECAP0         69
0313 #define IRQ_DA8XX_ECAP1         70
0314 #define IRQ_DA8XX_ECAP2         71
0315 #define IRQ_DA8XX_ARMCLKSTOPREQ     90
0316 
0317 /* DA830 specific interrupts */
0318 #define IRQ_DA830_MPUERR        27
0319 #define IRQ_DA830_IOPUERR       27
0320 #define IRQ_DA830_BOOTCFGERR        27
0321 #define IRQ_DA830_EHRPWM2       67
0322 #define IRQ_DA830_EHRPWM2TZ     68
0323 #define IRQ_DA830_EQEP0         72
0324 #define IRQ_DA830_EQEP1         73
0325 #define IRQ_DA830_T12CMPINT0_0      74
0326 #define IRQ_DA830_T12CMPINT1_0      75
0327 #define IRQ_DA830_T12CMPINT2_0      76
0328 #define IRQ_DA830_T12CMPINT3_0      77
0329 #define IRQ_DA830_T12CMPINT4_0      78
0330 #define IRQ_DA830_T12CMPINT5_0      79
0331 #define IRQ_DA830_T12CMPINT6_0      80
0332 #define IRQ_DA830_T12CMPINT7_0      81
0333 #define IRQ_DA830_T12CMPINT0_1      82
0334 #define IRQ_DA830_T12CMPINT1_1      83
0335 #define IRQ_DA830_T12CMPINT2_1      84
0336 #define IRQ_DA830_T12CMPINT3_1      85
0337 #define IRQ_DA830_T12CMPINT4_1      86
0338 #define IRQ_DA830_T12CMPINT5_1      87
0339 #define IRQ_DA830_T12CMPINT6_1      88
0340 #define IRQ_DA830_T12CMPINT7_1      89
0341 
0342 #define DA830_N_CP_INTC_IRQ     96
0343 
0344 /* DA850 speicific interrupts */
0345 #define IRQ_DA850_MPUADDRERR0       27
0346 #define IRQ_DA850_MPUPROTERR0       27
0347 #define IRQ_DA850_IOPUADDRERR0      27
0348 #define IRQ_DA850_IOPUPROTERR0      27
0349 #define IRQ_DA850_IOPUADDRERR1      27
0350 #define IRQ_DA850_IOPUPROTERR1      27
0351 #define IRQ_DA850_IOPUADDRERR2      27
0352 #define IRQ_DA850_IOPUPROTERR2      27
0353 #define IRQ_DA850_BOOTCFG_ADDR_ERR  27
0354 #define IRQ_DA850_BOOTCFG_PROT_ERR  27
0355 #define IRQ_DA850_MPUADDRERR1       27
0356 #define IRQ_DA850_MPUPROTERR1       27
0357 #define IRQ_DA850_IOPUADDRERR3      27
0358 #define IRQ_DA850_IOPUPROTERR3      27
0359 #define IRQ_DA850_IOPUADDRERR4      27
0360 #define IRQ_DA850_IOPUPROTERR4      27
0361 #define IRQ_DA850_IOPUADDRERR5      27
0362 #define IRQ_DA850_IOPUPROTERR5      27
0363 #define IRQ_DA850_MIOPU_BOOTCFG_ERR 27
0364 #define IRQ_DA850_SATAINT       67
0365 #define IRQ_DA850_TINT12_2      68
0366 #define IRQ_DA850_TINT34_2      68
0367 #define IRQ_DA850_TINTALL_2     68
0368 #define IRQ_DA850_MMCSDINT0_1       72
0369 #define IRQ_DA850_MMCSDINT1_1       73
0370 #define IRQ_DA850_T12CMPINT0_2      74
0371 #define IRQ_DA850_T12CMPINT1_2      75
0372 #define IRQ_DA850_T12CMPINT2_2      76
0373 #define IRQ_DA850_T12CMPINT3_2      77
0374 #define IRQ_DA850_T12CMPINT4_2      78
0375 #define IRQ_DA850_T12CMPINT5_2      79
0376 #define IRQ_DA850_T12CMPINT6_2      80
0377 #define IRQ_DA850_T12CMPINT7_2      81
0378 #define IRQ_DA850_T12CMPINT0_3      82
0379 #define IRQ_DA850_T12CMPINT1_3      83
0380 #define IRQ_DA850_T12CMPINT2_3      84
0381 #define IRQ_DA850_T12CMPINT3_3      85
0382 #define IRQ_DA850_T12CMPINT4_3      86
0383 #define IRQ_DA850_T12CMPINT5_3      87
0384 #define IRQ_DA850_T12CMPINT6_3      88
0385 #define IRQ_DA850_T12CMPINT7_3      89
0386 #define IRQ_DA850_RPIINT        91
0387 #define IRQ_DA850_VPIFINT       92
0388 #define IRQ_DA850_CCINT1        93
0389 #define IRQ_DA850_CCERRINT1     94
0390 #define IRQ_DA850_TCERRINT2     95
0391 #define IRQ_DA850_TINT12_3      96
0392 #define IRQ_DA850_TINT34_3      96
0393 #define IRQ_DA850_TINTALL_3     96
0394 #define IRQ_DA850_MCBSP0RINT        97
0395 #define IRQ_DA850_MCBSP0XINT        98
0396 #define IRQ_DA850_MCBSP1RINT        99
0397 #define IRQ_DA850_MCBSP1XINT        100
0398 
0399 #define DA850_N_CP_INTC_IRQ     101
0400 
0401 /* da850 currently has the most gpio pins (144) */
0402 #define DAVINCI_N_GPIO          144
0403 /* da850 currently has the most irqs so use DA850_N_CP_INTC_IRQ */
0404 
0405 #endif /* __ASM_ARCH_IRQS_H */