diff options
Diffstat (limited to 'arch/arm/mach-ux500/cpu.c')
-rw-r--r-- | arch/arm/mach-ux500/cpu.c | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/arch/arm/mach-ux500/cpu.c b/arch/arm/mach-ux500/cpu.c index 537870d3fea8..915e2636cbaa 100644 --- a/arch/arm/mach-ux500/cpu.c +++ b/arch/arm/mach-ux500/cpu.c | |||
@@ -8,7 +8,7 @@ | |||
8 | 8 | ||
9 | #include <linux/platform_device.h> | 9 | #include <linux/platform_device.h> |
10 | #include <linux/io.h> | 10 | #include <linux/io.h> |
11 | #include <linux/mfd/db8500-prcmu.h> | 11 | #include <linux/mfd/dbx500-prcmu.h> |
12 | #include <linux/clksrc-dbx500-prcmu.h> | 12 | #include <linux/clksrc-dbx500-prcmu.h> |
13 | #include <linux/sys_soc.h> | 13 | #include <linux/sys_soc.h> |
14 | #include <linux/err.h> | 14 | #include <linux/err.h> |
@@ -20,18 +20,17 @@ | |||
20 | #include <linux/irqchip.h> | 20 | #include <linux/irqchip.h> |
21 | #include <linux/irqchip/arm-gic.h> | 21 | #include <linux/irqchip/arm-gic.h> |
22 | #include <linux/platform_data/clk-ux500.h> | 22 | #include <linux/platform_data/clk-ux500.h> |
23 | #include <linux/platform_data/arm-ux500-pm.h> | ||
23 | 24 | ||
24 | #include <asm/mach/map.h> | 25 | #include <asm/mach/map.h> |
25 | 26 | ||
26 | #include <mach/hardware.h> | 27 | #include "setup.h" |
27 | #include <mach/setup.h> | 28 | #include "devices.h" |
28 | #include <mach/devices.h> | ||
29 | 29 | ||
30 | #include "board-mop500.h" | 30 | #include "board-mop500.h" |
31 | #include "db8500-regs.h" | ||
31 | #include "id.h" | 32 | #include "id.h" |
32 | 33 | ||
33 | void __iomem *_PRCMU_BASE; | ||
34 | |||
35 | /* | 34 | /* |
36 | * FIXME: Should we set up the GPIO domain here? | 35 | * FIXME: Should we set up the GPIO domain here? |
37 | * | 36 | * |
@@ -68,13 +67,23 @@ void __init ux500_init_irq(void) | |||
68 | * Init clocks here so that they are available for system timer | 67 | * Init clocks here so that they are available for system timer |
69 | * initialization. | 68 | * initialization. |
70 | */ | 69 | */ |
71 | if (cpu_is_u8500_family() || cpu_is_u9540()) | 70 | if (cpu_is_u8500_family()) { |
72 | db8500_prcmu_early_init(); | 71 | prcmu_early_init(U8500_PRCMU_BASE, SZ_8K - 1); |
73 | 72 | ux500_pm_init(U8500_PRCMU_BASE, SZ_8K - 1); | |
74 | if (cpu_is_u8500_family() || cpu_is_u9540()) | 73 | u8500_clk_init(U8500_CLKRST1_BASE, U8500_CLKRST2_BASE, |
75 | u8500_clk_init(); | 74 | U8500_CLKRST3_BASE, U8500_CLKRST5_BASE, |
76 | else if (cpu_is_u8540()) | 75 | U8500_CLKRST6_BASE); |
76 | } else if (cpu_is_u9540()) { | ||
77 | prcmu_early_init(U8500_PRCMU_BASE, SZ_8K - 1); | ||
78 | ux500_pm_init(U8500_PRCMU_BASE, SZ_8K - 1); | ||
79 | u8500_clk_init(U8500_CLKRST1_BASE, U8500_CLKRST2_BASE, | ||
80 | U8500_CLKRST3_BASE, U8500_CLKRST5_BASE, | ||
81 | U8500_CLKRST6_BASE); | ||
82 | } else if (cpu_is_u8540()) { | ||
83 | prcmu_early_init(U8500_PRCMU_BASE, SZ_8K + SZ_4K - 1); | ||
84 | ux500_pm_init(U8500_PRCMU_BASE, SZ_8K + SZ_4K - 1); | ||
77 | u8540_clk_init(); | 85 | u8540_clk_init(); |
86 | } | ||
78 | } | 87 | } |
79 | 88 | ||
80 | void __init ux500_init_late(void) | 89 | void __init ux500_init_late(void) |