ARM: Remove dependency of plat-orion GPIO code on mach directory includes.
[firefly-linux-kernel-4.4.55.git] / arch / arm / mach-orion5x / irq.c
index d7512b925a85f97e1bd3e1726d744cda0ae82a57..ed85891f86997afeada549a7f0f2f7301c866469 100644 (file)
@@ -28,27 +28,12 @@ static void gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
 
 void __init orion5x_init_irq(void)
 {
-       int i;
-
        orion_irq_init(0, (void __iomem *)MAIN_IRQ_MASK);
 
        /*
-        * Mask and clear GPIO IRQ interrupts
-        */
-       writel(0x0, GPIO_LEVEL_MASK(0));
-       writel(0x0, GPIO_EDGE_MASK(0));
-       writel(0x0, GPIO_EDGE_CAUSE(0));
-
-       /*
-        * Register chained level handlers for GPIO IRQs by default.
-        * User can use set_type() if he wants to use edge types handlers.
+        * Initialize gpiolib for GPIOs 0-31.
         */
-       for (i = IRQ_ORION5X_GPIO_START; i < NR_IRQS; i++) {
-               set_irq_chip(i, &orion_gpio_irq_chip);
-               set_irq_handler(i, handle_level_irq);
-               irq_desc[i].status |= IRQ_LEVEL;
-               set_irq_flags(i, IRQF_VALID);
-       }
+       orion_gpio_init(0, 32, GPIO_VIRT_BASE, 0, IRQ_ORION5X_GPIO_START);
        set_irq_chained_handler(IRQ_ORION5X_GPIO_0_7, gpio_irq_handler);
        set_irq_chained_handler(IRQ_ORION5X_GPIO_8_15, gpio_irq_handler);
        set_irq_chained_handler(IRQ_ORION5X_GPIO_16_23, gpio_irq_handler);