Merge commit '31d9adca82ce65e5c99d045b5fd917c702b6fce3' into tmp
[pandora-kernel.git] / arch / arm / mach-ux500 / cpu.c
index a480266..002da9a 100644 (file)
 #include <linux/of.h>
 #include <linux/of_irq.h>
 #include <linux/irq.h>
+#include <linux/irqchip.h>
+#include <linux/irqchip/arm-gic.h>
 #include <linux/platform_data/clk-ux500.h>
 
-#include <asm/hardware/gic.h>
 #include <asm/mach/map.h>
 
 #include <mach/hardware.h>
@@ -27,6 +28,7 @@
 #include <mach/devices.h>
 
 #include "board-mop500.h"
+#include "id.h"
 
 void __iomem *_PRCMU_BASE;
 
@@ -42,11 +44,6 @@ void __iomem *_PRCMU_BASE;
  * This feels fragile because it depends on the gpio device getting probed
  * _before_ any device uses the gpio interrupts.
 */
-static const struct of_device_id ux500_dt_irq_match[] = {
-       { .compatible = "arm,cortex-a9-gic", .data = gic_of_init, },
-       {},
-};
-
 void __init ux500_init_irq(void)
 {
        void __iomem *dist_base;
@@ -62,7 +59,7 @@ void __init ux500_init_irq(void)
 
 #ifdef CONFIG_OF
        if (of_have_populated_dt())
-               of_irq_init(ux500_dt_irq_match);
+               irqchip_init();
        else
 #endif
                gic_init(0, 29, dist_base, cpu_base);
@@ -71,13 +68,11 @@ void __init ux500_init_irq(void)
         * Init clocks here so that they are available for system timer
         * initialization.
         */
-       if (cpu_is_u8500_family())
+       if (cpu_is_u8500_family() || cpu_is_u9540())
                db8500_prcmu_early_init();
 
-       if (cpu_is_u8500_family())
+       if (cpu_is_u8500_family() || cpu_is_u9540())
                u8500_clk_init();
-       else if (cpu_is_u9540())
-               u9540_clk_init();
        else if (cpu_is_u8540())
                u8540_clk_init();
 }