aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-ux500/cpu.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-ux500/cpu.c')
-rw-r--r--arch/arm/mach-ux500/cpu.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/arch/arm/mach-ux500/cpu.c b/arch/arm/mach-ux500/cpu.c
index a48026651504..002da9a369d5 100644
--- a/arch/arm/mach-ux500/cpu.c
+++ b/arch/arm/mach-ux500/cpu.c
@@ -17,9 +17,10 @@
17#include <linux/of.h> 17#include <linux/of.h>
18#include <linux/of_irq.h> 18#include <linux/of_irq.h>
19#include <linux/irq.h> 19#include <linux/irq.h>
20#include <linux/irqchip.h>
21#include <linux/irqchip/arm-gic.h>
20#include <linux/platform_data/clk-ux500.h> 22#include <linux/platform_data/clk-ux500.h>
21 23
22#include <asm/hardware/gic.h>
23#include <asm/mach/map.h> 24#include <asm/mach/map.h>
24 25
25#include <mach/hardware.h> 26#include <mach/hardware.h>
@@ -27,6 +28,7 @@
27#include <mach/devices.h> 28#include <mach/devices.h>
28 29
29#include "board-mop500.h" 30#include "board-mop500.h"
31#include "id.h"
30 32
31void __iomem *_PRCMU_BASE; 33void __iomem *_PRCMU_BASE;
32 34
@@ -42,11 +44,6 @@ void __iomem *_PRCMU_BASE;
42 * This feels fragile because it depends on the gpio device getting probed 44 * This feels fragile because it depends on the gpio device getting probed
43 * _before_ any device uses the gpio interrupts. 45 * _before_ any device uses the gpio interrupts.
44*/ 46*/
45static const struct of_device_id ux500_dt_irq_match[] = {
46 { .compatible = "arm,cortex-a9-gic", .data = gic_of_init, },
47 {},
48};
49
50void __init ux500_init_irq(void) 47void __init ux500_init_irq(void)
51{ 48{
52 void __iomem *dist_base; 49 void __iomem *dist_base;
@@ -62,7 +59,7 @@ void __init ux500_init_irq(void)
62 59
63#ifdef CONFIG_OF 60#ifdef CONFIG_OF
64 if (of_have_populated_dt()) 61 if (of_have_populated_dt())
65 of_irq_init(ux500_dt_irq_match); 62 irqchip_init();
66 else 63 else
67#endif 64#endif
68 gic_init(0, 29, dist_base, cpu_base); 65 gic_init(0, 29, dist_base, cpu_base);
@@ -71,13 +68,11 @@ void __init ux500_init_irq(void)
71 * Init clocks here so that they are available for system timer 68 * Init clocks here so that they are available for system timer
72 * initialization. 69 * initialization.
73 */ 70 */
74 if (cpu_is_u8500_family()) 71 if (cpu_is_u8500_family() || cpu_is_u9540())
75 db8500_prcmu_early_init(); 72 db8500_prcmu_early_init();
76 73
77 if (cpu_is_u8500_family()) 74 if (cpu_is_u8500_family() || cpu_is_u9540())
78 u8500_clk_init(); 75 u8500_clk_init();
79 else if (cpu_is_u9540())
80 u9540_clk_init();
81 else if (cpu_is_u8540()) 76 else if (cpu_is_u8540())
82 u8540_clk_init(); 77 u8540_clk_init();
83} 78}