linux/arch/arm/mach-davinci/include/mach/irqs.h
<<
>>
Prefs
   1/*
   2 * DaVinci interrupt controller definitions
   3 *
   4 *  Copyright (C) 2006 Texas Instruments.
   5 *
   6 *  This program is free software; you can redistribute  it and/or modify it
   7 *  under  the terms of  the GNU General  Public License as published by the
   8 *  Free Software Foundation;  either version 2 of the  License, or (at your
   9 *  option) any later version.
  10 *
  11 *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
  12 *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
  13 *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
  14 *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
  15 *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  16 *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
  17 *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
  18 *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
  19 *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  20 *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  21 *
  22 *  You should have received a copy of the  GNU General Public License along
  23 *  with this program; if not, write  to the Free Software Foundation, Inc.,
  24 *  675 Mass Ave, Cambridge, MA 02139, USA.
  25 *
  26 */
  27#ifndef __ASM_ARCH_IRQS_H
  28#define __ASM_ARCH_IRQS_H
  29
  30/* Base address */
  31#define DAVINCI_ARM_INTC_BASE 0x01C48000
  32
  33#define DAVINCI_INTC_TYPE_AINTC         0
  34#define DAVINCI_INTC_TYPE_CP_INTC       1
  35
  36/* Interrupt lines */
  37#define IRQ_VDINT0       0
  38#define IRQ_VDINT1       1
  39#define IRQ_VDINT2       2
  40#define IRQ_HISTINT      3
  41#define IRQ_H3AINT       4
  42#define IRQ_PRVUINT      5
  43#define IRQ_RSZINT       6
  44#define IRQ_VFOCINT      7
  45#define IRQ_VENCINT      8
  46#define IRQ_ASQINT       9
  47#define IRQ_IMXINT       10
  48#define IRQ_VLCDINT      11
  49#define IRQ_USBINT       12
  50#define IRQ_EMACINT      13
  51
  52#define IRQ_CCINT0       16
  53#define IRQ_CCERRINT     17
  54#define IRQ_TCERRINT0    18
  55#define IRQ_TCERRINT     19
  56#define IRQ_PSCIN        20
  57
  58#define IRQ_IDE          22
  59#define IRQ_HPIINT       23
  60#define IRQ_MBXINT       24
  61#define IRQ_MBRINT       25
  62#define IRQ_MMCINT       26
  63#define IRQ_SDIOINT      27
  64#define IRQ_MSINT        28
  65#define IRQ_DDRINT       29
  66#define IRQ_AEMIFINT     30
  67#define IRQ_VLQINT       31
  68#define IRQ_TINT0_TINT12 32
  69#define IRQ_TINT0_TINT34 33
  70#define IRQ_TINT1_TINT12 34
  71#define IRQ_TINT1_TINT34 35
  72#define IRQ_PWMINT0      36
  73#define IRQ_PWMINT1      37
  74#define IRQ_PWMINT2      38
  75#define IRQ_I2C          39
  76#define IRQ_UARTINT0     40
  77#define IRQ_UARTINT1     41
  78#define IRQ_UARTINT2     42
  79#define IRQ_SPINT0       43
  80#define IRQ_SPINT1       44
  81
  82#define IRQ_DSP2ARM0     46
  83#define IRQ_DSP2ARM1     47
  84#define IRQ_GPIO0        48
  85#define IRQ_GPIO1        49
  86#define IRQ_GPIO2        50
  87#define IRQ_GPIO3        51
  88#define IRQ_GPIO4        52
  89#define IRQ_GPIO5        53
  90#define IRQ_GPIO6        54
  91#define IRQ_GPIO7        55
  92#define IRQ_GPIOBNK0     56
  93#define IRQ_GPIOBNK1     57
  94#define IRQ_GPIOBNK2     58
  95#define IRQ_GPIOBNK3     59
  96#define IRQ_GPIOBNK4     60
  97#define IRQ_COMMTX       61
  98#define IRQ_COMMRX       62
  99#define IRQ_EMUINT       63
 100
 101#define DAVINCI_N_AINTC_IRQ     64
 102
 103#define ARCH_TIMER_IRQ IRQ_TINT1_TINT34
 104
 105/* DaVinci DM6467-specific Interrupts */
 106#define IRQ_DM646X_VP_VERTINT0  0
 107#define IRQ_DM646X_VP_VERTINT1  1
 108#define IRQ_DM646X_VP_VERTINT2  2
 109#define IRQ_DM646X_VP_VERTINT3  3
 110#define IRQ_DM646X_VP_ERRINT    4
 111#define IRQ_DM646X_RESERVED_1   5
 112#define IRQ_DM646X_RESERVED_2   6
 113#define IRQ_DM646X_WDINT        7
 114#define IRQ_DM646X_CRGENINT0    8
 115#define IRQ_DM646X_CRGENINT1    9
 116#define IRQ_DM646X_TSIFINT0     10
 117#define IRQ_DM646X_TSIFINT1     11
 118#define IRQ_DM646X_VDCEINT      12
 119#define IRQ_DM646X_USBINT       13
 120#define IRQ_DM646X_USBDMAINT    14
 121#define IRQ_DM646X_PCIINT       15
 122#define IRQ_DM646X_TCERRINT2    20
 123#define IRQ_DM646X_TCERRINT3    21
 124#define IRQ_DM646X_IDE          22
 125#define IRQ_DM646X_HPIINT       23
 126#define IRQ_DM646X_EMACRXTHINT  24
 127#define IRQ_DM646X_EMACRXINT    25
 128#define IRQ_DM646X_EMACTXINT    26
 129#define IRQ_DM646X_EMACMISCINT  27
 130#define IRQ_DM646X_MCASP0TXINT  28
 131#define IRQ_DM646X_MCASP0RXINT  29
 132#define IRQ_DM646X_RESERVED_3   31
 133#define IRQ_DM646X_MCASP1TXINT  32
 134#define IRQ_DM646X_VLQINT       38
 135#define IRQ_DM646X_UARTINT2     42
 136#define IRQ_DM646X_SPINT0       43
 137#define IRQ_DM646X_SPINT1       44
 138#define IRQ_DM646X_DSP2ARMINT   45
 139#define IRQ_DM646X_RESERVED_4   46
 140#define IRQ_DM646X_PSCINT       47
 141#define IRQ_DM646X_GPIO0        48
 142#define IRQ_DM646X_GPIO1        49
 143#define IRQ_DM646X_GPIO2        50
 144#define IRQ_DM646X_GPIO3        51
 145#define IRQ_DM646X_GPIO4        52
 146#define IRQ_DM646X_GPIO5        53
 147#define IRQ_DM646X_GPIO6        54
 148#define IRQ_DM646X_GPIO7        55
 149#define IRQ_DM646X_GPIOBNK0     56
 150#define IRQ_DM646X_GPIOBNK1     57
 151#define IRQ_DM646X_GPIOBNK2     58
 152#define IRQ_DM646X_DDRINT       59
 153#define IRQ_DM646X_AEMIFINT     60
 154
 155/* DaVinci DM355-specific Interrupts */
 156#define IRQ_DM355_CCDC_VDINT0   0
 157#define IRQ_DM355_CCDC_VDINT1   1
 158#define IRQ_DM355_CCDC_VDINT2   2
 159#define IRQ_DM355_IPIPE_HST     3
 160#define IRQ_DM355_H3AINT        4
 161#define IRQ_DM355_IPIPE_SDR     5
 162#define IRQ_DM355_IPIPEIFINT    6
 163#define IRQ_DM355_OSDINT        7
 164#define IRQ_DM355_VENCINT       8
 165#define IRQ_DM355_IMCOPINT      11
 166#define IRQ_DM355_RTOINT        13
 167#define IRQ_DM355_TINT4         13
 168#define IRQ_DM355_TINT2_TINT12  13
 169#define IRQ_DM355_UARTINT2      14
 170#define IRQ_DM355_TINT5         14
 171#define IRQ_DM355_TINT2_TINT34  14
 172#define IRQ_DM355_TINT6         15
 173#define IRQ_DM355_TINT3_TINT12  15
 174#define IRQ_DM355_SPINT1_0      17
 175#define IRQ_DM355_SPINT1_1      18
 176#define IRQ_DM355_SPINT2_0      19
 177#define IRQ_DM355_SPINT2_1      21
 178#define IRQ_DM355_TINT7         22
 179#define IRQ_DM355_TINT3_TINT34  22
 180#define IRQ_DM355_SDIOINT0      23
 181#define IRQ_DM355_MMCINT0       26
 182#define IRQ_DM355_MSINT         26
 183#define IRQ_DM355_MMCINT1       27
 184#define IRQ_DM355_PWMINT3       28
 185#define IRQ_DM355_SDIOINT1      31
 186#define IRQ_DM355_SPINT0_0      42
 187#define IRQ_DM355_SPINT0_1      43
 188#define IRQ_DM355_GPIO0         44
 189#define IRQ_DM355_GPIO1         45
 190#define IRQ_DM355_GPIO2         46
 191#define IRQ_DM355_GPIO3         47
 192#define IRQ_DM355_GPIO4         48
 193#define IRQ_DM355_GPIO5         49
 194#define IRQ_DM355_GPIO6         50
 195#define IRQ_DM355_GPIO7         51
 196#define IRQ_DM355_GPIO8         52
 197#define IRQ_DM355_GPIO9         53
 198#define IRQ_DM355_GPIOBNK0      54
 199#define IRQ_DM355_GPIOBNK1      55
 200#define IRQ_DM355_GPIOBNK2      56
 201#define IRQ_DM355_GPIOBNK3      57
 202#define IRQ_DM355_GPIOBNK4      58
 203#define IRQ_DM355_GPIOBNK5      59
 204#define IRQ_DM355_GPIOBNK6      60
 205
 206/* DaVinci DM365-specific Interrupts */
 207#define IRQ_DM365_INSFINT       7
 208#define IRQ_DM365_IMXINT1       8
 209#define IRQ_DM365_IMXINT0       10
 210#define IRQ_DM365_KLD_ARMINT    10
 211#define IRQ_DM365_IMCOPINT      11
 212#define IRQ_DM365_RTOINT        13
 213#define IRQ_DM365_TINT5         14
 214#define IRQ_DM365_TINT6         15
 215#define IRQ_DM365_SPINT2_1      21
 216#define IRQ_DM365_TINT7         22
 217#define IRQ_DM365_SDIOINT0      23
 218#define IRQ_DM365_MMCINT1       27
 219#define IRQ_DM365_PWMINT3       28
 220#define IRQ_DM365_SDIOINT1      31
 221#define IRQ_DM365_SPIINT0_0     42
 222#define IRQ_DM365_SPIINT3_0     43
 223#define IRQ_DM365_GPIO0         44
 224#define IRQ_DM365_GPIO1         45
 225#define IRQ_DM365_GPIO2         46
 226#define IRQ_DM365_GPIO3         47
 227#define IRQ_DM365_GPIO4         48
 228#define IRQ_DM365_GPIO5         49
 229#define IRQ_DM365_GPIO6         50
 230#define IRQ_DM365_GPIO7         51
 231#define IRQ_DM365_EMAC_RXTHRESH 52
 232#define IRQ_DM365_EMAC_RXPULSE  53
 233#define IRQ_DM365_EMAC_TXPULSE  54
 234#define IRQ_DM365_EMAC_MISCPULSE 55
 235#define IRQ_DM365_GPIO12        56
 236#define IRQ_DM365_GPIO13        57
 237#define IRQ_DM365_GPIO14        58
 238#define IRQ_DM365_GPIO15        59
 239#define IRQ_DM365_ADCINT        59
 240#define IRQ_DM365_KEYINT        60
 241#define IRQ_DM365_TCERRINT2     61
 242#define IRQ_DM365_TCERRINT3     62
 243#define IRQ_DM365_EMUINT        63
 244
 245/* DA8XX interrupts */
 246#define IRQ_DA8XX_COMMTX                0
 247#define IRQ_DA8XX_COMMRX                1
 248#define IRQ_DA8XX_NINT                  2
 249#define IRQ_DA8XX_EVTOUT0               3
 250#define IRQ_DA8XX_EVTOUT1               4
 251#define IRQ_DA8XX_EVTOUT2               5
 252#define IRQ_DA8XX_EVTOUT3               6
 253#define IRQ_DA8XX_EVTOUT4               7
 254#define IRQ_DA8XX_EVTOUT5               8
 255#define IRQ_DA8XX_EVTOUT6               9
 256#define IRQ_DA8XX_EVTOUT7               10
 257#define IRQ_DA8XX_CCINT0                11
 258#define IRQ_DA8XX_CCERRINT              12
 259#define IRQ_DA8XX_TCERRINT0             13
 260#define IRQ_DA8XX_AEMIFINT              14
 261#define IRQ_DA8XX_I2CINT0               15
 262#define IRQ_DA8XX_MMCSDINT0             16
 263#define IRQ_DA8XX_MMCSDINT1             17
 264#define IRQ_DA8XX_ALLINT0               18
 265#define IRQ_DA8XX_RTC                   19
 266#define IRQ_DA8XX_SPINT0                20
 267#define IRQ_DA8XX_TINT12_0              21
 268#define IRQ_DA8XX_TINT34_0              22
 269#define IRQ_DA8XX_TINT12_1              23
 270#define IRQ_DA8XX_TINT34_1              24
 271#define IRQ_DA8XX_UARTINT0              25
 272#define IRQ_DA8XX_KEYMGRINT             26
 273#define IRQ_DA8XX_SECINT                26
 274#define IRQ_DA8XX_SECKEYERR             26
 275#define IRQ_DA8XX_CHIPINT0              28
 276#define IRQ_DA8XX_CHIPINT1              29
 277#define IRQ_DA8XX_CHIPINT2              30
 278#define IRQ_DA8XX_CHIPINT3              31
 279#define IRQ_DA8XX_TCERRINT1             32
 280#define IRQ_DA8XX_C0_RX_THRESH_PULSE    33
 281#define IRQ_DA8XX_C0_RX_PULSE           34
 282#define IRQ_DA8XX_C0_TX_PULSE           35
 283#define IRQ_DA8XX_C0_MISC_PULSE         36
 284#define IRQ_DA8XX_C1_RX_THRESH_PULSE    37
 285#define IRQ_DA8XX_C1_RX_PULSE           38
 286#define IRQ_DA8XX_C1_TX_PULSE           39
 287#define IRQ_DA8XX_C1_MISC_PULSE         40
 288#define IRQ_DA8XX_MEMERR                41
 289#define IRQ_DA8XX_GPIO0                 42
 290#define IRQ_DA8XX_GPIO1                 43
 291#define IRQ_DA8XX_GPIO2                 44
 292#define IRQ_DA8XX_GPIO3                 45
 293#define IRQ_DA8XX_GPIO4                 46
 294#define IRQ_DA8XX_GPIO5                 47
 295#define IRQ_DA8XX_GPIO6                 48
 296#define IRQ_DA8XX_GPIO7                 49
 297#define IRQ_DA8XX_GPIO8                 50
 298#define IRQ_DA8XX_I2CINT1               51
 299#define IRQ_DA8XX_LCDINT                52
 300#define IRQ_DA8XX_UARTINT1              53
 301#define IRQ_DA8XX_MCASPINT              54
 302#define IRQ_DA8XX_ALLINT1               55
 303#define IRQ_DA8XX_SPINT1                56
 304#define IRQ_DA8XX_UHPI_INT1             57
 305#define IRQ_DA8XX_USB_INT               58
 306#define IRQ_DA8XX_IRQN                  59
 307#define IRQ_DA8XX_RWAKEUP               60
 308#define IRQ_DA8XX_UARTINT2              61
 309#define IRQ_DA8XX_DFTSSINT              62
 310#define IRQ_DA8XX_EHRPWM0               63
 311#define IRQ_DA8XX_EHRPWM0TZ             64
 312#define IRQ_DA8XX_EHRPWM1               65
 313#define IRQ_DA8XX_EHRPWM1TZ             66
 314#define IRQ_DA8XX_ECAP0                 69
 315#define IRQ_DA8XX_ECAP1                 70
 316#define IRQ_DA8XX_ECAP2                 71
 317#define IRQ_DA8XX_ARMCLKSTOPREQ         90
 318
 319/* DA830 specific interrupts */
 320#define IRQ_DA830_MPUERR                27
 321#define IRQ_DA830_IOPUERR               27
 322#define IRQ_DA830_BOOTCFGERR            27
 323#define IRQ_DA830_EHRPWM2               67
 324#define IRQ_DA830_EHRPWM2TZ             68
 325#define IRQ_DA830_EQEP0                 72
 326#define IRQ_DA830_EQEP1                 73
 327#define IRQ_DA830_T12CMPINT0_0          74
 328#define IRQ_DA830_T12CMPINT1_0          75
 329#define IRQ_DA830_T12CMPINT2_0          76
 330#define IRQ_DA830_T12CMPINT3_0          77
 331#define IRQ_DA830_T12CMPINT4_0          78
 332#define IRQ_DA830_T12CMPINT5_0          79
 333#define IRQ_DA830_T12CMPINT6_0          80
 334#define IRQ_DA830_T12CMPINT7_0          81
 335#define IRQ_DA830_T12CMPINT0_1          82
 336#define IRQ_DA830_T12CMPINT1_1          83
 337#define IRQ_DA830_T12CMPINT2_1          84
 338#define IRQ_DA830_T12CMPINT3_1          85
 339#define IRQ_DA830_T12CMPINT4_1          86
 340#define IRQ_DA830_T12CMPINT5_1          87
 341#define IRQ_DA830_T12CMPINT6_1          88
 342#define IRQ_DA830_T12CMPINT7_1          89
 343
 344#define DA830_N_CP_INTC_IRQ             96
 345
 346/* DA850 speicific interrupts */
 347#define IRQ_DA850_MPUADDRERR0           27
 348#define IRQ_DA850_MPUPROTERR0           27
 349#define IRQ_DA850_IOPUADDRERR0          27
 350#define IRQ_DA850_IOPUPROTERR0          27
 351#define IRQ_DA850_IOPUADDRERR1          27
 352#define IRQ_DA850_IOPUPROTERR1          27
 353#define IRQ_DA850_IOPUADDRERR2          27
 354#define IRQ_DA850_IOPUPROTERR2          27
 355#define IRQ_DA850_BOOTCFG_ADDR_ERR      27
 356#define IRQ_DA850_BOOTCFG_PROT_ERR      27
 357#define IRQ_DA850_MPUADDRERR1           27
 358#define IRQ_DA850_MPUPROTERR1           27
 359#define IRQ_DA850_IOPUADDRERR3          27
 360#define IRQ_DA850_IOPUPROTERR3          27
 361#define IRQ_DA850_IOPUADDRERR4          27
 362#define IRQ_DA850_IOPUPROTERR4          27
 363#define IRQ_DA850_IOPUADDRERR5          27
 364#define IRQ_DA850_IOPUPROTERR5          27
 365#define IRQ_DA850_MIOPU_BOOTCFG_ERR     27
 366#define IRQ_DA850_SATAINT               67
 367#define IRQ_DA850_TINT12_2              68
 368#define IRQ_DA850_TINT34_2              68
 369#define IRQ_DA850_TINTALL_2             68
 370#define IRQ_DA850_MMCSDINT0_1           72
 371#define IRQ_DA850_MMCSDINT1_1           73
 372#define IRQ_DA850_T12CMPINT0_2          74
 373#define IRQ_DA850_T12CMPINT1_2          75
 374#define IRQ_DA850_T12CMPINT2_2          76
 375#define IRQ_DA850_T12CMPINT3_2          77
 376#define IRQ_DA850_T12CMPINT4_2          78
 377#define IRQ_DA850_T12CMPINT5_2          79
 378#define IRQ_DA850_T12CMPINT6_2          80
 379#define IRQ_DA850_T12CMPINT7_2          81
 380#define IRQ_DA850_T12CMPINT0_3          82
 381#define IRQ_DA850_T12CMPINT1_3          83
 382#define IRQ_DA850_T12CMPINT2_3          84
 383#define IRQ_DA850_T12CMPINT3_3          85
 384#define IRQ_DA850_T12CMPINT4_3          86
 385#define IRQ_DA850_T12CMPINT5_3          87
 386#define IRQ_DA850_T12CMPINT6_3          88
 387#define IRQ_DA850_T12CMPINT7_3          89
 388#define IRQ_DA850_RPIINT                91
 389#define IRQ_DA850_VPIFINT               92
 390#define IRQ_DA850_CCINT1                93
 391#define IRQ_DA850_CCERRINT1             94
 392#define IRQ_DA850_TCERRINT2             95
 393#define IRQ_DA850_TINT12_3              96
 394#define IRQ_DA850_TINT34_3              96
 395#define IRQ_DA850_TINTALL_3             96
 396#define IRQ_DA850_MCBSP0RINT            97
 397#define IRQ_DA850_MCBSP0XINT            98
 398#define IRQ_DA850_MCBSP1RINT            99
 399#define IRQ_DA850_MCBSP1XINT            100
 400
 401#define DA850_N_CP_INTC_IRQ             101
 402
 403/* da850 currently has the most gpio pins (144) */
 404#define DAVINCI_N_GPIO                  144
 405/* da850 currently has the most irqs so use DA850_N_CP_INTC_IRQ */
 406#define NR_IRQS                         (DA850_N_CP_INTC_IRQ + DAVINCI_N_GPIO)
 407
 408#endif /* __ASM_ARCH_IRQS_H */
 409