Commit | Line | Data |
---|---|---|
651c74c7 SB |
1 | /* |
2 | * arch/arm/mach-kirkwood/irq.c | |
3 | * | |
4 | * Kirkwood IRQ handling. | |
5 | * | |
6 | * This file is licensed under the terms of the GNU General Public | |
7 | * License version 2. This program is licensed "as is" without any | |
8 | * warranty of any kind, whether express or implied. | |
9 | */ | |
2f8163ba | 10 | #include <linux/gpio.h> |
651c74c7 | 11 | #include <linux/kernel.h> |
651c74c7 | 12 | #include <linux/irq.h> |
060f3d19 | 13 | #include <linux/io.h> |
fdd8b079 | 14 | #include <mach/bridge-regs.h> |
ce91574c | 15 | #include <plat/orion-gpio.h> |
6f088f1d | 16 | #include <plat/irq.h> |
d1c925b2 | 17 | #include "common.h" |
651c74c7 | 18 | |
278b45b0 AL |
19 | static int __initdata gpio0_irqs[4] = { |
20 | IRQ_KIRKWOOD_GPIO_LOW_0_7, | |
21 | IRQ_KIRKWOOD_GPIO_LOW_8_15, | |
22 | IRQ_KIRKWOOD_GPIO_LOW_16_23, | |
23 | IRQ_KIRKWOOD_GPIO_LOW_24_31, | |
24 | }; | |
4c213430 | 25 | |
278b45b0 AL |
26 | static int __initdata gpio1_irqs[4] = { |
27 | IRQ_KIRKWOOD_GPIO_HIGH_0_7, | |
28 | IRQ_KIRKWOOD_GPIO_HIGH_8_15, | |
29 | IRQ_KIRKWOOD_GPIO_HIGH_16_23, | |
30 | 0, | |
31 | }; | |
4c213430 | 32 | |
651c74c7 SB |
33 | void __init kirkwood_init_irq(void) |
34 | { | |
060f3d19 TP |
35 | orion_irq_init(0, IRQ_VIRT_BASE + IRQ_MASK_LOW_OFF); |
36 | orion_irq_init(32, IRQ_VIRT_BASE + IRQ_MASK_HIGH_OFF); | |
4c213430 LB |
37 | |
38 | /* | |
9eac6d0a | 39 | * Initialize gpiolib for GPIOs 0-49. |
4c213430 | 40 | */ |
060f3d19 | 41 | orion_gpio_init(NULL, 0, 32, GPIO_LOW_VIRT_BASE, 0, |
278b45b0 | 42 | IRQ_KIRKWOOD_GPIO_START, gpio0_irqs); |
060f3d19 | 43 | orion_gpio_init(NULL, 32, 18, GPIO_HIGH_VIRT_BASE, 0, |
278b45b0 | 44 | IRQ_KIRKWOOD_GPIO_START + 32, gpio1_irqs); |
651c74c7 | 45 | } |