1752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao/*
2752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao * linux/arch/unicore32/include/asm/irq.h
3752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao *
4752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao * Code specific to PKUnity SoC and UniCore ISA
5752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao *
6752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao * Copyright (C) 2001-2010 GUAN Xue-tao
7752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao *
8752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao * This program is free software; you can redistribute it and/or modify
9752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao * it under the terms of the GNU General Public License version 2 as
10752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao * published by the Free Software Foundation.
11752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao */
12752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#ifndef __UNICORE_IRQ_H__
13752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define __UNICORE_IRQ_H__
14752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao
15752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#include <asm-generic/irq.h>
16752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao
17752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_GPIOLOW0		0x00
18752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_GPIOLOW1		0x01
19752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_GPIOLOW2		0x02
20752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_GPIOLOW3		0x03
21752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_GPIOLOW4		0x04
22752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_GPIOLOW5		0x05
23752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_GPIOLOW6		0x06
24752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_GPIOLOW7		0x07
25752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_GPIOHIGH		0x08
26752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_USB			0x09
27752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_SDC			0x0a
28752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_AC97		0x0b
29752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_SATA		0x0c
30752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_MME			0x0d
31752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_PCI_BRIDGE		0x0e
32752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_DDR			0x0f
33752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_SPI			0x10
34752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_UNIGFX		0x11
35752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_I2C			0x11
36752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_UART1		0x12
37752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_UART0		0x13
38752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_UMAL		0x14
39752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_NAND		0x15
40752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_PS2_KBD		0x16
41752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_PS2_AUX		0x17
42752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_DMA			0x18
43752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_DMAERR		0x19
44752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_TIMER0		0x1a
45752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_TIMER1		0x1b
46752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_TIMER2		0x1c
47752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_TIMER3		0x1d
48752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_RTC			0x1e
49752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_RTCAlarm		0x1f
50752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao
51752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_GPIO0		0x20
52752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_GPIO1		0x21
53752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_GPIO2		0x22
54752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_GPIO3		0x23
55752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_GPIO4		0x24
56752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_GPIO5		0x25
57752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_GPIO6		0x26
58752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define	IRQ_GPIO7		0x27
59752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_GPIO8		0x28
60752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_GPIO9		0x29
61752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_GPIO10		0x2a
62752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_GPIO11		0x2b
63752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_GPIO12		0x2c
64752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_GPIO13		0x2d
65752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_GPIO14		0x2e
66752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_GPIO15		0x2f
67752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_GPIO16		0x30
68752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_GPIO17		0x31
69752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_GPIO18		0x32
70752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_GPIO19		0x33
71752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_GPIO20		0x34
72752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_GPIO21		0x35
73752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_GPIO22		0x36
74752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_GPIO23		0x37
75752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_GPIO24		0x38
76752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_GPIO25		0x39
77752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_GPIO26		0x3a
78752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_GPIO27		0x3b
79752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao
80752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#ifdef CONFIG_ARCH_FPGA
81752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_PCIINTA             IRQ_GPIOLOW2
82752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_PCIINTB             IRQ_GPIOLOW1
83752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_PCIINTC             IRQ_GPIOLOW0
84752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_PCIINTD             IRQ_GPIOLOW6
85752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#endif
86752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao
87752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#if defined(CONFIG_PUV3_DB0913) || defined(CONFIG_PUV3_NB0916)	\
88752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao	|| defined(CONFIG_PUV3_SMW0919)
89752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_PCIINTA             IRQ_GPIOLOW1
90752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_PCIINTB             IRQ_GPIOLOW2
91752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_PCIINTC             IRQ_GPIOLOW3
92752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_PCIINTD             IRQ_GPIOLOW4
93752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#endif
94752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao
95752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#define IRQ_SD_CD               IRQ_GPIO6 /* falling or rising trigger */
96752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao
97752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#ifndef __ASSEMBLY__
98752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetaostruct pt_regs;
99752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao
100752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetaoextern void asm_do_IRQ(unsigned int, struct pt_regs *);
101752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao
102752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#endif
103752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao
104752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao#endif
105752bcb4d02ccfd5e7a8d810424154169b4cca8aeGuanXuetao
106