aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Szyprowski <m.szyprowski@samsung.com>2010-09-30 22:16:44 -0400
committerKukjin Kim <kgene.kim@samsung.com>2010-10-20 18:54:56 -0400
commit5fdc97b5d95aa8175c085545a4c37bccd45dd950 (patch)
treea987b8c9f564e2e2cfd9e0795ef6482b6bed6102
parent170a46177094b390299d1206748d7f15cd375dc9 (diff)
ARM: S5PV210: Add support for GPIO Interrupt
S5PV210/S5PC110 can use common S5P GPIO interrupt code. This patch adds required defines and code to make use of it. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> [kgene.kim@samsung.com: minor title fixes] Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
-rw-r--r--arch/arm/mach-s5pv210/gpiolib.c6
-rw-r--r--arch/arm/mach-s5pv210/include/mach/irqs.h6
2 files changed, 10 insertions, 2 deletions
diff --git a/arch/arm/mach-s5pv210/gpiolib.c b/arch/arm/mach-s5pv210/gpiolib.c
index 0d459112d039..29dfb894d4f4 100644
--- a/arch/arm/mach-s5pv210/gpiolib.c
+++ b/arch/arm/mach-s5pv210/gpiolib.c
@@ -150,6 +150,7 @@ static struct s3c_gpio_chip s5pv210_gpio_4bit[] = {
150 .label = "GPG3", 150 .label = "GPG3",
151 }, 151 },
152 }, { 152 }, {
153 .config = &gpio_cfg_noint,
153 .chip = { 154 .chip = {
154 .base = S5PV210_GPI(0), 155 .base = S5PV210_GPI(0),
155 .ngpio = S5PV210_GPIO_I_NR, 156 .ngpio = S5PV210_GPIO_I_NR,
@@ -259,11 +260,14 @@ static __init int s5pv210_gpiolib_init(void)
259{ 260{
260 struct s3c_gpio_chip *chip = s5pv210_gpio_4bit; 261 struct s3c_gpio_chip *chip = s5pv210_gpio_4bit;
261 int nr_chips = ARRAY_SIZE(s5pv210_gpio_4bit); 262 int nr_chips = ARRAY_SIZE(s5pv210_gpio_4bit);
263 int gpioint_group = 0;
262 int i = 0; 264 int i = 0;
263 265
264 for (i = 0; i < nr_chips; i++, chip++) { 266 for (i = 0; i < nr_chips; i++, chip++) {
265 if (chip->config == NULL) 267 if (chip->config == NULL) {
266 chip->config = &gpio_cfg; 268 chip->config = &gpio_cfg;
269 chip->group = gpioint_group++;
270 }
267 if (chip->base == NULL) 271 if (chip->base == NULL)
268 chip->base = S5PV210_BANK_BASE(i); 272 chip->base = S5PV210_BANK_BASE(i);
269 } 273 }
diff --git a/arch/arm/mach-s5pv210/include/mach/irqs.h b/arch/arm/mach-s5pv210/include/mach/irqs.h
index cdb8ae415124..bb7f277c1fa3 100644
--- a/arch/arm/mach-s5pv210/include/mach/irqs.h
+++ b/arch/arm/mach-s5pv210/include/mach/irqs.h
@@ -121,8 +121,12 @@
121#define S5P_EINT_BASE1 (S5P_IRQ_VIC0(0)) 121#define S5P_EINT_BASE1 (S5P_IRQ_VIC0(0))
122#define S5P_EINT_BASE2 (IRQ_VIC_END + 1) 122#define S5P_EINT_BASE2 (IRQ_VIC_END + 1)
123 123
124/* GPIO interrupt */
125#define S5P_GPIOINT_BASE (IRQ_EINT(31) + 1)
126#define S5P_GPIOINT_GROUP_MAXNR 22
127
124/* Set the default NR_IRQS */ 128/* Set the default NR_IRQS */
125#define NR_IRQS (IRQ_EINT(31) + 1) 129#define NR_IRQS (IRQ_EINT(31) + S5P_GPIOINT_COUNT + 1)
126 130
127/* Compatibility */ 131/* Compatibility */
128#define IRQ_LCD_FIFO IRQ_LCD0 132#define IRQ_LCD_FIFO IRQ_LCD0