diff options
Diffstat (limited to 'arch/arm/mach-ux500/cpu.c')
-rw-r--r-- | arch/arm/mach-ux500/cpu.c | 17 |
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 | ||
31 | void __iomem *_PRCMU_BASE; | 33 | void __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 | */ |
45 | static const struct of_device_id ux500_dt_irq_match[] = { | ||
46 | { .compatible = "arm,cortex-a9-gic", .data = gic_of_init, }, | ||
47 | {}, | ||
48 | }; | ||
49 | |||
50 | void __init ux500_init_irq(void) | 47 | void __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 | } |