Logo Search packages:      
Sourcecode: linux version File versions  Download package

irqs.h

/*
 * DaVinci interrupt controller definitions
 *
 *  Copyright (C) 2006 Texas Instruments.
 *
 *  This program is free software; you can redistribute  it and/or modify it
 *  under  the terms of  the GNU General  Public License as published by the
 *  Free Software Foundation;  either version 2 of the  License, or (at your
 *  option) any later version.
 *
 *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
 *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
 *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
 *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
 *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
 *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
 *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 *  You should have received a copy of the  GNU General Public License along
 *  with this program; if not, write  to the Free Software Foundation, Inc.,
 *  675 Mass Ave, Cambridge, MA 02139, USA.
 *
 */
#ifndef __ASM_ARCH_IRQS_H
#define __ASM_ARCH_IRQS_H

/* Base address */
#define DAVINCI_ARM_INTC_BASE 0x01C48000

#define DAVINCI_INTC_TYPE_AINTC           0
#define DAVINCI_INTC_TYPE_CP_INTC   1

/* Interrupt lines */
#define IRQ_VDINT0       0
#define IRQ_VDINT1       1
#define IRQ_VDINT2       2
#define IRQ_HISTINT      3
#define IRQ_H3AINT       4
#define IRQ_PRVUINT      5
#define IRQ_RSZINT       6
#define IRQ_VFOCINT      7
#define IRQ_VENCINT      8
#define IRQ_ASQINT       9
#define IRQ_IMXINT       10
#define IRQ_VLCDINT      11
#define IRQ_USBINT       12
#define IRQ_EMACINT      13

#define IRQ_CCINT0       16
#define IRQ_CCERRINT     17
#define IRQ_TCERRINT0    18
#define IRQ_TCERRINT     19
#define IRQ_PSCIN        20

#define IRQ_IDE          22
#define IRQ_HPIINT       23
#define IRQ_MBXINT       24
#define IRQ_MBRINT       25
#define IRQ_MMCINT       26
#define IRQ_SDIOINT      27
#define IRQ_MSINT        28
#define IRQ_DDRINT       29
#define IRQ_AEMIFINT     30
#define IRQ_VLQINT       31
#define IRQ_TINT0_TINT12 32
#define IRQ_TINT0_TINT34 33
#define IRQ_TINT1_TINT12 34
#define IRQ_TINT1_TINT34 35
#define IRQ_PWMINT0      36
#define IRQ_PWMINT1      37
#define IRQ_PWMINT2      38
#define IRQ_I2C          39
#define IRQ_UARTINT0     40
#define IRQ_UARTINT1     41
#define IRQ_UARTINT2     42
#define IRQ_SPINT0       43
#define IRQ_SPINT1       44

#define IRQ_DSP2ARM0     46
#define IRQ_DSP2ARM1     47
#define IRQ_GPIO0        48
#define IRQ_GPIO1        49
#define IRQ_GPIO2        50
#define IRQ_GPIO3        51
#define IRQ_GPIO4        52
#define IRQ_GPIO5        53
#define IRQ_GPIO6        54
#define IRQ_GPIO7        55
#define IRQ_GPIOBNK0     56
#define IRQ_GPIOBNK1     57
#define IRQ_GPIOBNK2     58
#define IRQ_GPIOBNK3     59
#define IRQ_GPIOBNK4     60
#define IRQ_COMMTX       61
#define IRQ_COMMRX       62
#define IRQ_EMUINT       63

#define DAVINCI_N_AINTC_IRQ   64

#define ARCH_TIMER_IRQ IRQ_TINT1_TINT34

/* DaVinci DM6467-specific Interrupts */
#define IRQ_DM646X_VP_VERTINT0  0
#define IRQ_DM646X_VP_VERTINT1  1
#define IRQ_DM646X_VP_VERTINT2  2
#define IRQ_DM646X_VP_VERTINT3  3
#define IRQ_DM646X_VP_ERRINT    4
#define IRQ_DM646X_RESERVED_1   5
#define IRQ_DM646X_RESERVED_2   6
#define IRQ_DM646X_WDINT        7
#define IRQ_DM646X_CRGENINT0    8
#define IRQ_DM646X_CRGENINT1    9
#define IRQ_DM646X_TSIFINT0     10
#define IRQ_DM646X_TSIFINT1     11
#define IRQ_DM646X_VDCEINT      12
#define IRQ_DM646X_USBINT       13
#define IRQ_DM646X_USBDMAINT    14
#define IRQ_DM646X_PCIINT       15
#define IRQ_DM646X_TCERRINT2    20
#define IRQ_DM646X_TCERRINT3    21
#define IRQ_DM646X_IDE          22
#define IRQ_DM646X_HPIINT       23
#define IRQ_DM646X_EMACRXTHINT  24
#define IRQ_DM646X_EMACRXINT    25
#define IRQ_DM646X_EMACTXINT    26
#define IRQ_DM646X_EMACMISCINT  27
#define IRQ_DM646X_MCASP0TXINT  28
#define IRQ_DM646X_MCASP0RXINT  29
#define IRQ_DM646X_RESERVED_3   31
#define IRQ_DM646X_MCASP1TXINT  32
#define IRQ_DM646X_VLQINT       38
#define IRQ_DM646X_UARTINT2     42
#define IRQ_DM646X_SPINT0       43
#define IRQ_DM646X_SPINT1       44
#define IRQ_DM646X_DSP2ARMINT   45
#define IRQ_DM646X_RESERVED_4   46
#define IRQ_DM646X_PSCINT       47
#define IRQ_DM646X_GPIO0        48
#define IRQ_DM646X_GPIO1        49
#define IRQ_DM646X_GPIO2        50
#define IRQ_DM646X_GPIO3        51
#define IRQ_DM646X_GPIO4        52
#define IRQ_DM646X_GPIO5        53
#define IRQ_DM646X_GPIO6        54
#define IRQ_DM646X_GPIO7        55
#define IRQ_DM646X_GPIOBNK0     56
#define IRQ_DM646X_GPIOBNK1     57
#define IRQ_DM646X_GPIOBNK2     58
#define IRQ_DM646X_DDRINT       59
#define IRQ_DM646X_AEMIFINT     60

/* DaVinci DM355-specific Interrupts */
#define IRQ_DM355_CCDC_VDINT0 0
#define IRQ_DM355_CCDC_VDINT1 1
#define IRQ_DM355_CCDC_VDINT2 2
#define IRQ_DM355_IPIPE_HST   3
#define IRQ_DM355_H3AINT      4
#define IRQ_DM355_IPIPE_SDR   5
#define IRQ_DM355_IPIPEIFINT  6
#define IRQ_DM355_OSDINT      7
#define IRQ_DM355_VENCINT     8
#define IRQ_DM355_IMCOPINT    11
#define IRQ_DM355_RTOINT      13
#define IRQ_DM355_TINT4       13
#define IRQ_DM355_TINT2_TINT12      13
#define IRQ_DM355_UARTINT2    14
#define IRQ_DM355_TINT5       14
#define IRQ_DM355_TINT2_TINT34      14
#define IRQ_DM355_TINT6       15
#define IRQ_DM355_TINT3_TINT12      15
#define IRQ_DM355_SPINT1_0    17
#define IRQ_DM355_SPINT1_1    18
#define IRQ_DM355_SPINT2_0    19
#define IRQ_DM355_SPINT2_1    21
#define IRQ_DM355_TINT7       22
#define IRQ_DM355_TINT3_TINT34      22
#define IRQ_DM355_SDIOINT0    23
#define IRQ_DM355_MMCINT0     26
#define IRQ_DM355_MSINT       26
#define IRQ_DM355_MMCINT1     27
#define IRQ_DM355_PWMINT3     28
#define IRQ_DM355_SDIOINT1    31
#define IRQ_DM355_SPINT0_0    42
#define IRQ_DM355_SPINT0_1    43
#define IRQ_DM355_GPIO0       44
#define IRQ_DM355_GPIO1       45
#define IRQ_DM355_GPIO2       46
#define IRQ_DM355_GPIO3       47
#define IRQ_DM355_GPIO4       48
#define IRQ_DM355_GPIO5       49
#define IRQ_DM355_GPIO6       50
#define IRQ_DM355_GPIO7       51
#define IRQ_DM355_GPIO8       52
#define IRQ_DM355_GPIO9       53
#define IRQ_DM355_GPIOBNK0    54
#define IRQ_DM355_GPIOBNK1    55
#define IRQ_DM355_GPIOBNK2    56
#define IRQ_DM355_GPIOBNK3    57
#define IRQ_DM355_GPIOBNK4    58
#define IRQ_DM355_GPIOBNK5    59
#define IRQ_DM355_GPIOBNK6    60

/* DaVinci DM365-specific Interrupts */
#define IRQ_DM365_INSFINT     7
#define IRQ_DM365_IMXINT1     8
#define IRQ_DM365_IMXINT0     10
#define IRQ_DM365_KLD_ARMINT  10
#define IRQ_DM365_IMCOPINT    11
#define IRQ_DM365_RTOINT      13
#define IRQ_DM365_TINT5       14
#define IRQ_DM365_TINT6       15
#define IRQ_DM365_SPINT2_1    21
#define IRQ_DM365_TINT7       22
#define IRQ_DM365_SDIOINT0    23
#define IRQ_DM365_MMCINT1     27
#define IRQ_DM365_PWMINT3     28
#define IRQ_DM365_SDIOINT1    31
#define IRQ_DM365_SPIINT0_0   42
#define IRQ_DM365_SPIINT3_0   43
#define IRQ_DM365_GPIO0       44
#define IRQ_DM365_GPIO1       45
#define IRQ_DM365_GPIO2       46
#define IRQ_DM365_GPIO3       47
#define IRQ_DM365_GPIO4       48
#define IRQ_DM365_GPIO5       49
#define IRQ_DM365_GPIO6       50
#define IRQ_DM365_GPIO7       51
#define IRQ_DM365_EMAC_RXTHRESH     52
#define IRQ_DM365_EMAC_RXPULSE      53
#define IRQ_DM365_EMAC_TXPULSE      54
#define IRQ_DM365_EMAC_MISCPULSE 55
#define IRQ_DM365_GPIO12      56
#define IRQ_DM365_GPIO13      57
#define IRQ_DM365_GPIO14      58
#define IRQ_DM365_GPIO15      59
#define IRQ_DM365_ADCINT      59
#define IRQ_DM365_KEYINT      60
#define IRQ_DM365_TCERRINT2   61
#define IRQ_DM365_TCERRINT3   62
#define IRQ_DM365_EMUINT      63

/* DA8XX interrupts */
#define IRQ_DA8XX_COMMTX            0
#define IRQ_DA8XX_COMMRX            1
#define IRQ_DA8XX_NINT              2
#define IRQ_DA8XX_EVTOUT0           3
#define IRQ_DA8XX_EVTOUT1           4
#define IRQ_DA8XX_EVTOUT2           5
#define IRQ_DA8XX_EVTOUT3           6
#define IRQ_DA8XX_EVTOUT4           7
#define IRQ_DA8XX_EVTOUT5           8
#define IRQ_DA8XX_EVTOUT6           9
#define IRQ_DA8XX_EVTOUT7           10
#define IRQ_DA8XX_CCINT0            11
#define IRQ_DA8XX_CCERRINT          12
#define IRQ_DA8XX_TCERRINT0         13
#define IRQ_DA8XX_AEMIFINT          14
#define IRQ_DA8XX_I2CINT0           15
#define IRQ_DA8XX_MMCSDINT0         16
#define IRQ_DA8XX_MMCSDINT1         17
#define IRQ_DA8XX_ALLINT0           18
#define IRQ_DA8XX_RTC               19
#define IRQ_DA8XX_SPINT0            20
#define IRQ_DA8XX_TINT12_0          21
#define IRQ_DA8XX_TINT34_0          22
#define IRQ_DA8XX_TINT12_1          23
#define IRQ_DA8XX_TINT34_1          24
#define IRQ_DA8XX_UARTINT0          25
#define IRQ_DA8XX_KEYMGRINT         26
#define IRQ_DA8XX_SECINT            26
#define IRQ_DA8XX_SECKEYERR         26
#define IRQ_DA8XX_CHIPINT0          28
#define IRQ_DA8XX_CHIPINT1          29
#define IRQ_DA8XX_CHIPINT2          30
#define IRQ_DA8XX_CHIPINT3          31
#define IRQ_DA8XX_TCERRINT1         32
#define IRQ_DA8XX_C0_RX_THRESH_PULSE      33
#define IRQ_DA8XX_C0_RX_PULSE       34
#define IRQ_DA8XX_C0_TX_PULSE       35
#define IRQ_DA8XX_C0_MISC_PULSE           36
#define IRQ_DA8XX_C1_RX_THRESH_PULSE      37
#define IRQ_DA8XX_C1_RX_PULSE       38
#define IRQ_DA8XX_C1_TX_PULSE       39
#define IRQ_DA8XX_C1_MISC_PULSE           40
#define IRQ_DA8XX_MEMERR            41
#define IRQ_DA8XX_GPIO0             42
#define IRQ_DA8XX_GPIO1             43
#define IRQ_DA8XX_GPIO2             44
#define IRQ_DA8XX_GPIO3             45
#define IRQ_DA8XX_GPIO4             46
#define IRQ_DA8XX_GPIO5             47
#define IRQ_DA8XX_GPIO6             48
#define IRQ_DA8XX_GPIO7             49
#define IRQ_DA8XX_GPIO8             50
#define IRQ_DA8XX_I2CINT1           51
#define IRQ_DA8XX_LCDINT            52
#define IRQ_DA8XX_UARTINT1          53
#define IRQ_DA8XX_MCASPINT          54
#define IRQ_DA8XX_ALLINT1           55
#define IRQ_DA8XX_SPINT1            56
#define IRQ_DA8XX_UHPI_INT1         57
#define IRQ_DA8XX_USB_INT           58
#define IRQ_DA8XX_IRQN              59
#define IRQ_DA8XX_RWAKEUP           60
#define IRQ_DA8XX_UARTINT2          61
#define IRQ_DA8XX_DFTSSINT          62
#define IRQ_DA8XX_EHRPWM0           63
#define IRQ_DA8XX_EHRPWM0TZ         64
#define IRQ_DA8XX_EHRPWM1           65
#define IRQ_DA8XX_EHRPWM1TZ         66
#define IRQ_DA8XX_ECAP0             69
#define IRQ_DA8XX_ECAP1             70
#define IRQ_DA8XX_ECAP2             71
#define IRQ_DA8XX_ARMCLKSTOPREQ           90

/* DA830 specific interrupts */
#define IRQ_DA830_MPUERR            27
#define IRQ_DA830_IOPUERR           27
#define IRQ_DA830_BOOTCFGERR        27
#define IRQ_DA830_EHRPWM2           67
#define IRQ_DA830_EHRPWM2TZ         68
#define IRQ_DA830_EQEP0             72
#define IRQ_DA830_EQEP1             73
#define IRQ_DA830_T12CMPINT0_0            74
#define IRQ_DA830_T12CMPINT1_0            75
#define IRQ_DA830_T12CMPINT2_0            76
#define IRQ_DA830_T12CMPINT3_0            77
#define IRQ_DA830_T12CMPINT4_0            78
#define IRQ_DA830_T12CMPINT5_0            79
#define IRQ_DA830_T12CMPINT6_0            80
#define IRQ_DA830_T12CMPINT7_0            81
#define IRQ_DA830_T12CMPINT0_1            82
#define IRQ_DA830_T12CMPINT1_1            83
#define IRQ_DA830_T12CMPINT2_1            84
#define IRQ_DA830_T12CMPINT3_1            85
#define IRQ_DA830_T12CMPINT4_1            86
#define IRQ_DA830_T12CMPINT5_1            87
#define IRQ_DA830_T12CMPINT6_1            88
#define IRQ_DA830_T12CMPINT7_1            89

#define DA830_N_CP_INTC_IRQ         96

/* DA850 speicific interrupts */
#define IRQ_DA850_MPUADDRERR0       27
#define IRQ_DA850_MPUPROTERR0       27
#define IRQ_DA850_IOPUADDRERR0            27
#define IRQ_DA850_IOPUPROTERR0            27
#define IRQ_DA850_IOPUADDRERR1            27
#define IRQ_DA850_IOPUPROTERR1            27
#define IRQ_DA850_IOPUADDRERR2            27
#define IRQ_DA850_IOPUPROTERR2            27
#define IRQ_DA850_BOOTCFG_ADDR_ERR  27
#define IRQ_DA850_BOOTCFG_PROT_ERR  27
#define IRQ_DA850_MPUADDRERR1       27
#define IRQ_DA850_MPUPROTERR1       27
#define IRQ_DA850_IOPUADDRERR3            27
#define IRQ_DA850_IOPUPROTERR3            27
#define IRQ_DA850_IOPUADDRERR4            27
#define IRQ_DA850_IOPUPROTERR4            27
#define IRQ_DA850_IOPUADDRERR5            27
#define IRQ_DA850_IOPUPROTERR5            27
#define IRQ_DA850_MIOPU_BOOTCFG_ERR 27
#define IRQ_DA850_SATAINT           67
#define IRQ_DA850_TINT12_2          68
#define IRQ_DA850_TINT34_2          68
#define IRQ_DA850_TINTALL_2         68
#define IRQ_DA850_MMCSDINT0_1       72
#define IRQ_DA850_MMCSDINT1_1       73
#define IRQ_DA850_T12CMPINT0_2            74
#define IRQ_DA850_T12CMPINT1_2            75
#define IRQ_DA850_T12CMPINT2_2            76
#define IRQ_DA850_T12CMPINT3_2            77
#define IRQ_DA850_T12CMPINT4_2            78
#define IRQ_DA850_T12CMPINT5_2            79
#define IRQ_DA850_T12CMPINT6_2            80
#define IRQ_DA850_T12CMPINT7_2            81
#define IRQ_DA850_T12CMPINT0_3            82
#define IRQ_DA850_T12CMPINT1_3            83
#define IRQ_DA850_T12CMPINT2_3            84
#define IRQ_DA850_T12CMPINT3_3            85
#define IRQ_DA850_T12CMPINT4_3            86
#define IRQ_DA850_T12CMPINT5_3            87
#define IRQ_DA850_T12CMPINT6_3            88
#define IRQ_DA850_T12CMPINT7_3            89
#define IRQ_DA850_RPIINT            91
#define IRQ_DA850_VPIFINT           92
#define IRQ_DA850_CCINT1            93
#define IRQ_DA850_CCERRINT1         94
#define IRQ_DA850_TCERRINT2         95
#define IRQ_DA850_TINT12_3          96
#define IRQ_DA850_TINT34_3          96
#define IRQ_DA850_TINTALL_3         96
#define IRQ_DA850_MCBSP0RINT        97
#define IRQ_DA850_MCBSP0XINT        98
#define IRQ_DA850_MCBSP1RINT        99
#define IRQ_DA850_MCBSP1XINT        100

#define DA850_N_CP_INTC_IRQ         101

/* da850 currently has the most gpio pins (144) */
#define DAVINCI_N_GPIO              144
/* da850 currently has the most irqs so use DA850_N_CP_INTC_IRQ */
#define NR_IRQS                     (DA850_N_CP_INTC_IRQ + DAVINCI_N_GPIO)

#endif /* __ASM_ARCH_IRQS_H */

Generated by  Doxygen 1.6.0   Back to index