diff options
author | Jongpill Lee <boyko.lee@samsung.com> | 2010-05-17 03:56:26 -0400 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2010-05-20 01:21:21 -0400 |
commit | 0df04f820b7ca5204329d1c235e509648fa8008d (patch) | |
tree | dbef433228009bdb1e1fc2ae6c361a8d57f07407 /arch/arm/mach-s5pv210/include | |
parent | 504d36e91ac12ccdb0e1193cee7bef9831a1c99e (diff) |
ARM: S5PV210: Add IRQ_EINT interrupt support.
Add support for external interrupts on S5PV210.
Signed-off-by: Jongpill Lee <boyko.lee@samsung.com>
Signed-off-by: Pannaga Bhushan <p.bhushan@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
[ben-linux@fluff.org: Ext => IRQ_EINT in title]
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Diffstat (limited to 'arch/arm/mach-s5pv210/include')
-rw-r--r-- | arch/arm/mach-s5pv210/include/mach/irqs.h | 31 | ||||
-rw-r--r-- | arch/arm/mach-s5pv210/include/mach/regs-gpio.h | 44 |
2 files changed, 55 insertions, 20 deletions
diff --git a/arch/arm/mach-s5pv210/include/mach/irqs.h b/arch/arm/mach-s5pv210/include/mach/irqs.h index 62c5175ef291..3a9e42e7734b 100644 --- a/arch/arm/mach-s5pv210/include/mach/irqs.h +++ b/arch/arm/mach-s5pv210/include/mach/irqs.h | |||
@@ -17,22 +17,6 @@ | |||
17 | 17 | ||
18 | /* VIC0: System, DMA, Timer */ | 18 | /* VIC0: System, DMA, Timer */ |
19 | 19 | ||
20 | #define IRQ_EINT0 S5P_IRQ_VIC0(0) | ||
21 | #define IRQ_EINT1 S5P_IRQ_VIC0(1) | ||
22 | #define IRQ_EINT2 S5P_IRQ_VIC0(2) | ||
23 | #define IRQ_EINT3 S5P_IRQ_VIC0(3) | ||
24 | #define IRQ_EINT4 S5P_IRQ_VIC0(4) | ||
25 | #define IRQ_EINT5 S5P_IRQ_VIC0(5) | ||
26 | #define IRQ_EINT6 S5P_IRQ_VIC0(6) | ||
27 | #define IRQ_EINT7 S5P_IRQ_VIC0(7) | ||
28 | #define IRQ_EINT8 S5P_IRQ_VIC0(8) | ||
29 | #define IRQ_EINT9 S5P_IRQ_VIC0(9) | ||
30 | #define IRQ_EINT10 S5P_IRQ_VIC0(10) | ||
31 | #define IRQ_EINT11 S5P_IRQ_VIC0(11) | ||
32 | #define IRQ_EINT12 S5P_IRQ_VIC0(12) | ||
33 | #define IRQ_EINT13 S5P_IRQ_VIC0(13) | ||
34 | #define IRQ_EINT14 S5P_IRQ_VIC0(14) | ||
35 | #define IRQ_EINT15 S5P_IRQ_VIC0(15) | ||
36 | #define IRQ_EINT16_31 S5P_IRQ_VIC0(16) | 20 | #define IRQ_EINT16_31 S5P_IRQ_VIC0(16) |
37 | #define IRQ_BATF S5P_IRQ_VIC0(17) | 21 | #define IRQ_BATF S5P_IRQ_VIC0(17) |
38 | #define IRQ_MDMA S5P_IRQ_VIC0(18) | 22 | #define IRQ_MDMA S5P_IRQ_VIC0(18) |
@@ -134,13 +118,20 @@ | |||
134 | #define IRQ_MDNIE3 S5P_IRQ_VIC3(8) | 118 | #define IRQ_MDNIE3 S5P_IRQ_VIC3(8) |
135 | #define IRQ_VIC_END S5P_IRQ_VIC3(31) | 119 | #define IRQ_VIC_END S5P_IRQ_VIC3(31) |
136 | 120 | ||
137 | #define S5P_IRQ_EINT_BASE (IRQ_VIC_END + 1) | 121 | #define S5P_EINT_16_31_BASE (IRQ_VIC_END + 1) |
138 | 122 | ||
139 | #define S5P_EINT(x) ((x) + S5P_IRQ_EINT_BASE) | 123 | #define EINT_MODE S3C_GPIO_SFN(0xf) |
140 | #define IRQ_EINT(x) S5P_EINT(x) | 124 | |
125 | #define IRQ_EINT(x) ((x) < 16 ? ((x) + S5P_IRQ_VIC0(0)) \ | ||
126 | : ((x) + S5P_EINT_16_31_BASE)) | ||
141 | 127 | ||
142 | /* Set the default NR_IRQS */ | 128 | /* Set the default NR_IRQS */ |
143 | 129 | ||
144 | #define NR_IRQS (IRQ_EINT(31) + 1) | 130 | #define NR_IRQS (IRQ_EINT(31) + 1) |
131 | |||
132 | #define EINT_GPIO_0(x) S5PV210_GPH0(x) | ||
133 | #define EINT_GPIO_1(x) S5PV210_GPH1(x) | ||
134 | #define EINT_GPIO_2(x) S5PV210_GPH2(x) | ||
135 | #define EINT_GPIO_3(x) S5PV210_GPH3(x) | ||
145 | 136 | ||
146 | #endif /* ASM_ARCH_IRQS_H */ | 137 | #endif /* ASM_ARCH_IRQS_H */ |
diff --git a/arch/arm/mach-s5pv210/include/mach/regs-gpio.h b/arch/arm/mach-s5pv210/include/mach/regs-gpio.h new file mode 100644 index 000000000000..6d068091c36c --- /dev/null +++ b/arch/arm/mach-s5pv210/include/mach/regs-gpio.h | |||
@@ -0,0 +1,44 @@ | |||
1 | /* linux/arch/arm/mach-s5pv210/include/mach/regs-gpio.h | ||
2 | * | ||
3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * S5PV210 - GPIO (including EINT) register definitions | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARCH_REGS_GPIO_H | ||
14 | #define __ASM_ARCH_REGS_GPIO_H __FILE__ | ||
15 | |||
16 | #include <mach/map.h> | ||
17 | |||
18 | #define S5PV210_EINT30CON (S5P_VA_GPIO + 0xE00) | ||
19 | #define S5P_EINT_CON(x) (S5PV210_EINT30CON + ((x) * 0x4)) | ||
20 | |||
21 | #define S5PV210_EINT30FLTCON0 (S5P_VA_GPIO + 0xE80) | ||
22 | #define S5P_EINT_FLTCON(x) (S5PV210_EINT30FLTCON0 + ((x) * 0x4)) | ||
23 | |||
24 | #define S5PV210_EINT30MASK (S5P_VA_GPIO + 0xF00) | ||
25 | #define S5P_EINT_MASK(x) (S5PV210_EINT30MASK + ((x) * 0x4)) | ||
26 | |||
27 | #define S5PV210_EINT30PEND (S5P_VA_GPIO + 0xF40) | ||
28 | #define S5P_EINT_PEND(x) (S5PV210_EINT30PEND + ((x) * 0x4)) | ||
29 | |||
30 | #define eint_offset(irq) ((irq) < IRQ_EINT16_31 ? ((irq) - IRQ_EINT(0)) \ | ||
31 | : ((irq) - S5P_EINT_16_31_BASE)) | ||
32 | |||
33 | #define EINT_REG_NR(x) (eint_offset(x) >> 3) | ||
34 | |||
35 | #define eint_irq_to_bit(irq) (1 << (eint_offset(irq) & 0x7)) | ||
36 | |||
37 | /* values for S5P_EXTINT0 */ | ||
38 | #define S5P_EXTINT_LOWLEV (0x00) | ||
39 | #define S5P_EXTINT_HILEV (0x01) | ||
40 | #define S5P_EXTINT_FALLEDGE (0x02) | ||
41 | #define S5P_EXTINT_RISEEDGE (0x03) | ||
42 | #define S5P_EXTINT_BOTHEDGE (0x04) | ||
43 | |||
44 | #endif /* __ASM_ARCH_REGS_GPIO_H */ | ||