mirror of
https://github.com/torvalds/linux.git
synced 2024-11-12 07:01:57 +00:00
d962117687
Bump the IRQ numbers from offset at 1 (right above NO_IRQ) to 32. This is the painful way to learn that if you're using SPARSE_IRQ and avoid to define .nr_irqs in your machine, the first 16 IRQs will be pre-allocated, and the IRQdomain code (as the VIC core code before it) will then assume that all IRQ descriptors are pre-allocated, and 16 of them are - by somebody else. So mapping the IRQs will fail in irq_create_mapping(). Moving the offset upward rids us of this problem. Cc: Rob Herring <rob.herring@calxeda.com> Cc: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
82 lines
2.9 KiB
C
82 lines
2.9 KiB
C
/*
|
|
* mach-nomadik/include/mach/irqs.h
|
|
*
|
|
* Copyright (C) ST Microelectronics
|
|
*
|
|
* 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 program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
#ifndef __ASM_ARCH_IRQS_H
|
|
#define __ASM_ARCH_IRQS_H
|
|
|
|
#include <mach/hardware.h>
|
|
|
|
#define IRQ_VIC_START 32 /* first VIC interrupt is 1 */
|
|
|
|
/*
|
|
* Interrupt numbers generic for all Nomadik Chip cuts
|
|
*/
|
|
#define IRQ_WATCHDOG (IRQ_VIC_START+0)
|
|
#define IRQ_SOFTINT (IRQ_VIC_START+1)
|
|
#define IRQ_CRYPTO (IRQ_VIC_START+2)
|
|
#define IRQ_OWM (IRQ_VIC_START+3)
|
|
#define IRQ_MTU0 (IRQ_VIC_START+4)
|
|
#define IRQ_MTU1 (IRQ_VIC_START+5)
|
|
#define IRQ_GPIO0 (IRQ_VIC_START+6)
|
|
#define IRQ_GPIO1 (IRQ_VIC_START+7)
|
|
#define IRQ_GPIO2 (IRQ_VIC_START+8)
|
|
#define IRQ_GPIO3 (IRQ_VIC_START+9)
|
|
#define IRQ_RTC_RTT (IRQ_VIC_START+10)
|
|
#define IRQ_SSP (IRQ_VIC_START+11)
|
|
#define IRQ_UART0 (IRQ_VIC_START+12)
|
|
#define IRQ_DMA1 (IRQ_VIC_START+13)
|
|
#define IRQ_CLCD_MDIF (IRQ_VIC_START+14)
|
|
#define IRQ_DMA0 (IRQ_VIC_START+15)
|
|
#define IRQ_PWRFAIL (IRQ_VIC_START+16)
|
|
#define IRQ_UART1 (IRQ_VIC_START+17)
|
|
#define IRQ_FIRDA (IRQ_VIC_START+18)
|
|
#define IRQ_MSP0 (IRQ_VIC_START+19)
|
|
#define IRQ_I2C0 (IRQ_VIC_START+20)
|
|
#define IRQ_I2C1 (IRQ_VIC_START+21)
|
|
#define IRQ_SDMMC (IRQ_VIC_START+22)
|
|
#define IRQ_USBOTG (IRQ_VIC_START+23)
|
|
#define IRQ_SVA_IT0 (IRQ_VIC_START+24)
|
|
#define IRQ_SVA_IT1 (IRQ_VIC_START+25)
|
|
#define IRQ_SAA_IT0 (IRQ_VIC_START+26)
|
|
#define IRQ_SAA_IT1 (IRQ_VIC_START+27)
|
|
#define IRQ_UART2 (IRQ_VIC_START+28)
|
|
#define IRQ_MSP2 (IRQ_VIC_START+29)
|
|
#define IRQ_L2CC (IRQ_VIC_START+30)
|
|
#define IRQ_HPI (IRQ_VIC_START+31)
|
|
#define IRQ_SKE (IRQ_VIC_START+32)
|
|
#define IRQ_KP (IRQ_VIC_START+33)
|
|
#define IRQ_MEMST (IRQ_VIC_START+34)
|
|
#define IRQ_SGA_IT (IRQ_VIC_START+35)
|
|
#define IRQ_USBM (IRQ_VIC_START+36)
|
|
#define IRQ_MSP1 (IRQ_VIC_START+37)
|
|
|
|
#define NOMADIK_GPIO_OFFSET (IRQ_VIC_START+64)
|
|
|
|
/* After chip-specific IRQ numbers we have the GPIO ones */
|
|
#define NOMADIK_NR_GPIO 128 /* last 4 not wired to pins */
|
|
#define NOMADIK_GPIO_TO_IRQ(gpio) ((gpio) + NOMADIK_GPIO_OFFSET)
|
|
#define NOMADIK_IRQ_TO_GPIO(irq) ((irq) - NOMADIK_GPIO_OFFSET)
|
|
#define NOMADIK_NR_IRQS NOMADIK_GPIO_TO_IRQ(NOMADIK_NR_GPIO)
|
|
|
|
/* Following two are used by entry_macro.S, to access our dual-vic */
|
|
#define VIC_REG_IRQSR0 0
|
|
#define VIC_REG_IRQSR1 0x20
|
|
|
|
#endif /* __ASM_ARCH_IRQS_H */
|