xref: /openbmc/linux/arch/arm/mach-orion5x/irq.c (revision 42366666)
19dd0b194SLennert Buytenhek /*
29dd0b194SLennert Buytenhek  * arch/arm/mach-orion5x/irq.c
39dd0b194SLennert Buytenhek  *
49dd0b194SLennert Buytenhek  * Core IRQ functions for Marvell Orion System On Chip
59dd0b194SLennert Buytenhek  *
69dd0b194SLennert Buytenhek  * Maintainer: Tzachi Perelstein <tzachi@marvell.com>
79dd0b194SLennert Buytenhek  *
89dd0b194SLennert Buytenhek  * This file is licensed under the terms of the GNU General Public
99dd0b194SLennert Buytenhek  * License version 2.  This program is licensed "as is" without any
109dd0b194SLennert Buytenhek  * warranty of any kind, whether express or implied.
119dd0b194SLennert Buytenhek  */
122f8163baSRussell King #include <linux/gpio.h>
139dd0b194SLennert Buytenhek #include <linux/kernel.h>
149dd0b194SLennert Buytenhek #include <linux/irq.h>
153904a393SThomas Petazzoni #include <linux/io.h>
16fdd8b079SNicolas Pitre #include <mach/bridge-regs.h>
17ce91574cSRob Herring #include <plat/orion-gpio.h>
186f088f1dSLennert Buytenhek #include <plat/irq.h>
1942366666SAndrew Lunn #include "common.h"
209dd0b194SLennert Buytenhek 
21278b45b0SAndrew Lunn static int __initdata gpio0_irqs[4] = {
22278b45b0SAndrew Lunn 	IRQ_ORION5X_GPIO_0_7,
23278b45b0SAndrew Lunn 	IRQ_ORION5X_GPIO_8_15,
24278b45b0SAndrew Lunn 	IRQ_ORION5X_GPIO_16_23,
25278b45b0SAndrew Lunn 	IRQ_ORION5X_GPIO_24_31,
26278b45b0SAndrew Lunn };
279dd0b194SLennert Buytenhek 
2807332318SLennert Buytenhek void __init orion5x_init_irq(void)
299dd0b194SLennert Buytenhek {
303904a393SThomas Petazzoni 	orion_irq_init(0, MAIN_IRQ_MASK);
319dd0b194SLennert Buytenhek 
329dd0b194SLennert Buytenhek 	/*
339eac6d0aSLennert Buytenhek 	 * Initialize gpiolib for GPIOs 0-31.
349dd0b194SLennert Buytenhek 	 */
353904a393SThomas Petazzoni 	orion_gpio_init(NULL, 0, 32, GPIO_VIRT_BASE, 0,
36278b45b0SAndrew Lunn 			IRQ_ORION5X_GPIO_START, gpio0_irqs);
379dd0b194SLennert Buytenhek }
38