diff options
Diffstat (limited to 'arch/arm/mach-shmobile')
23 files changed, 32 insertions, 80 deletions
diff --git a/arch/arm/mach-shmobile/board-ag5evm.c b/arch/arm/mach-shmobile/board-ag5evm.c index 032d10817e79..705bc63c7984 100644 --- a/arch/arm/mach-shmobile/board-ag5evm.c +++ b/arch/arm/mach-shmobile/board-ag5evm.c | |||
@@ -40,6 +40,7 @@ | |||
40 | #include <linux/mmc/sh_mobile_sdhi.h> | 40 | #include <linux/mmc/sh_mobile_sdhi.h> |
41 | #include <linux/mfd/tmio.h> | 41 | #include <linux/mfd/tmio.h> |
42 | #include <linux/sh_clk.h> | 42 | #include <linux/sh_clk.h> |
43 | #include <linux/irqchip/arm-gic.h> | ||
43 | #include <video/sh_mobile_lcdc.h> | 44 | #include <video/sh_mobile_lcdc.h> |
44 | #include <video/sh_mipi_dsi.h> | 45 | #include <video/sh_mipi_dsi.h> |
45 | #include <sound/sh_fsi.h> | 46 | #include <sound/sh_fsi.h> |
@@ -49,7 +50,6 @@ | |||
49 | #include <mach/common.h> | 50 | #include <mach/common.h> |
50 | #include <asm/mach-types.h> | 51 | #include <asm/mach-types.h> |
51 | #include <asm/mach/arch.h> | 52 | #include <asm/mach/arch.h> |
52 | #include <asm/hardware/gic.h> | ||
53 | #include <asm/hardware/cache-l2x0.h> | 53 | #include <asm/hardware/cache-l2x0.h> |
54 | #include <asm/traps.h> | 54 | #include <asm/traps.h> |
55 | 55 | ||
@@ -668,8 +668,7 @@ MACHINE_START(AG5EVM, "ag5evm") | |||
668 | .init_early = sh73a0_add_early_devices, | 668 | .init_early = sh73a0_add_early_devices, |
669 | .nr_irqs = NR_IRQS_LEGACY, | 669 | .nr_irqs = NR_IRQS_LEGACY, |
670 | .init_irq = sh73a0_init_irq, | 670 | .init_irq = sh73a0_init_irq, |
671 | .handle_irq = gic_handle_irq, | ||
672 | .init_machine = ag5evm_init, | 671 | .init_machine = ag5evm_init, |
673 | .init_late = shmobile_init_late, | 672 | .init_late = shmobile_init_late, |
674 | .timer = &shmobile_timer, | 673 | .init_time = sh73a0_earlytimer_init, |
675 | MACHINE_END | 674 | MACHINE_END |
diff --git a/arch/arm/mach-shmobile/board-ap4evb.c b/arch/arm/mach-shmobile/board-ap4evb.c index 08294fa9e0d4..2928cd686808 100644 --- a/arch/arm/mach-shmobile/board-ap4evb.c +++ b/arch/arm/mach-shmobile/board-ap4evb.c | |||
@@ -1344,5 +1344,5 @@ MACHINE_START(AP4EVB, "ap4evb") | |||
1344 | .handle_irq = shmobile_handle_irq_intc, | 1344 | .handle_irq = shmobile_handle_irq_intc, |
1345 | .init_machine = ap4evb_init, | 1345 | .init_machine = ap4evb_init, |
1346 | .init_late = sh7372_pm_init_late, | 1346 | .init_late = sh7372_pm_init_late, |
1347 | .timer = &shmobile_timer, | 1347 | .init_time = sh7372_earlytimer_init, |
1348 | MACHINE_END | 1348 | MACHINE_END |
diff --git a/arch/arm/mach-shmobile/board-armadillo800eva.c b/arch/arm/mach-shmobile/board-armadillo800eva.c index 0679ca6bf1f6..6bcf3cbd9223 100644 --- a/arch/arm/mach-shmobile/board-armadillo800eva.c +++ b/arch/arm/mach-shmobile/board-armadillo800eva.c | |||
@@ -1192,9 +1192,6 @@ static void __init eva_earlytimer_init(void) | |||
1192 | static void __init eva_add_early_devices(void) | 1192 | static void __init eva_add_early_devices(void) |
1193 | { | 1193 | { |
1194 | r8a7740_add_early_devices(); | 1194 | r8a7740_add_early_devices(); |
1195 | |||
1196 | /* override timer setup with board-specific code */ | ||
1197 | shmobile_timer.init = eva_earlytimer_init; | ||
1198 | } | 1195 | } |
1199 | 1196 | ||
1200 | #define RESCNT2 IOMEM(0xe6188020) | 1197 | #define RESCNT2 IOMEM(0xe6188020) |
@@ -1216,7 +1213,7 @@ DT_MACHINE_START(ARMADILLO800EVA_DT, "armadillo800eva") | |||
1216 | .handle_irq = shmobile_handle_irq_intc, | 1213 | .handle_irq = shmobile_handle_irq_intc, |
1217 | .init_machine = eva_init, | 1214 | .init_machine = eva_init, |
1218 | .init_late = shmobile_init_late, | 1215 | .init_late = shmobile_init_late, |
1219 | .timer = &shmobile_timer, | 1216 | .init_time = eva_earlytimer_init, |
1220 | .dt_compat = eva_boards_compat_dt, | 1217 | .dt_compat = eva_boards_compat_dt, |
1221 | .restart = eva_restart, | 1218 | .restart = eva_restart, |
1222 | MACHINE_END | 1219 | MACHINE_END |
diff --git a/arch/arm/mach-shmobile/board-bonito.c b/arch/arm/mach-shmobile/board-bonito.c index cb8c994e1430..331b7ce4edd8 100644 --- a/arch/arm/mach-shmobile/board-bonito.c +++ b/arch/arm/mach-shmobile/board-bonito.c | |||
@@ -499,9 +499,6 @@ static void __init bonito_earlytimer_init(void) | |||
499 | static void __init bonito_add_early_devices(void) | 499 | static void __init bonito_add_early_devices(void) |
500 | { | 500 | { |
501 | r8a7740_add_early_devices(); | 501 | r8a7740_add_early_devices(); |
502 | |||
503 | /* override timer setup with board-specific code */ | ||
504 | shmobile_timer.init = bonito_earlytimer_init; | ||
505 | } | 502 | } |
506 | 503 | ||
507 | MACHINE_START(BONITO, "bonito") | 504 | MACHINE_START(BONITO, "bonito") |
@@ -511,5 +508,5 @@ MACHINE_START(BONITO, "bonito") | |||
511 | .handle_irq = shmobile_handle_irq_intc, | 508 | .handle_irq = shmobile_handle_irq_intc, |
512 | .init_machine = bonito_init, | 509 | .init_machine = bonito_init, |
513 | .init_late = shmobile_init_late, | 510 | .init_late = shmobile_init_late, |
514 | .timer = &shmobile_timer, | 511 | .init_time = bonito_earlytimer_init, |
515 | MACHINE_END | 512 | MACHINE_END |
diff --git a/arch/arm/mach-shmobile/board-kota2.c b/arch/arm/mach-shmobile/board-kota2.c index bf88f9a8b7ac..d759a9c2b9e8 100644 --- a/arch/arm/mach-shmobile/board-kota2.c +++ b/arch/arm/mach-shmobile/board-kota2.c | |||
@@ -35,6 +35,7 @@ | |||
35 | #include <linux/input/sh_keysc.h> | 35 | #include <linux/input/sh_keysc.h> |
36 | #include <linux/gpio_keys.h> | 36 | #include <linux/gpio_keys.h> |
37 | #include <linux/leds.h> | 37 | #include <linux/leds.h> |
38 | #include <linux/irqchip/arm-gic.h> | ||
38 | #include <linux/platform_data/leds-renesas-tpu.h> | 39 | #include <linux/platform_data/leds-renesas-tpu.h> |
39 | #include <linux/mmc/host.h> | 40 | #include <linux/mmc/host.h> |
40 | #include <linux/mmc/sh_mmcif.h> | 41 | #include <linux/mmc/sh_mmcif.h> |
@@ -47,7 +48,6 @@ | |||
47 | #include <asm/mach-types.h> | 48 | #include <asm/mach-types.h> |
48 | #include <asm/mach/arch.h> | 49 | #include <asm/mach/arch.h> |
49 | #include <asm/mach/time.h> | 50 | #include <asm/mach/time.h> |
50 | #include <asm/hardware/gic.h> | ||
51 | #include <asm/hardware/cache-l2x0.h> | 51 | #include <asm/hardware/cache-l2x0.h> |
52 | #include <asm/traps.h> | 52 | #include <asm/traps.h> |
53 | 53 | ||
@@ -550,8 +550,7 @@ MACHINE_START(KOTA2, "kota2") | |||
550 | .init_early = sh73a0_add_early_devices, | 550 | .init_early = sh73a0_add_early_devices, |
551 | .nr_irqs = NR_IRQS_LEGACY, | 551 | .nr_irqs = NR_IRQS_LEGACY, |
552 | .init_irq = sh73a0_init_irq, | 552 | .init_irq = sh73a0_init_irq, |
553 | .handle_irq = gic_handle_irq, | ||
554 | .init_machine = kota2_init, | 553 | .init_machine = kota2_init, |
555 | .init_late = shmobile_init_late, | 554 | .init_late = shmobile_init_late, |
556 | .timer = &shmobile_timer, | 555 | .init_time = sh73a0_earlytimer_init, |
557 | MACHINE_END | 556 | MACHINE_END |
diff --git a/arch/arm/mach-shmobile/board-kzm9d.c b/arch/arm/mach-shmobile/board-kzm9d.c index b52bc0d1273f..c254782aa727 100644 --- a/arch/arm/mach-shmobile/board-kzm9d.c +++ b/arch/arm/mach-shmobile/board-kzm9d.c | |||
@@ -28,7 +28,6 @@ | |||
28 | #include <mach/emev2.h> | 28 | #include <mach/emev2.h> |
29 | #include <asm/mach-types.h> | 29 | #include <asm/mach-types.h> |
30 | #include <asm/mach/arch.h> | 30 | #include <asm/mach/arch.h> |
31 | #include <asm/hardware/gic.h> | ||
32 | 31 | ||
33 | /* Dummy supplies, where voltage doesn't matter */ | 32 | /* Dummy supplies, where voltage doesn't matter */ |
34 | static struct regulator_consumer_supply dummy_supplies[] = { | 33 | static struct regulator_consumer_supply dummy_supplies[] = { |
@@ -89,9 +88,8 @@ DT_MACHINE_START(KZM9D_DT, "kzm9d") | |||
89 | .init_early = emev2_add_early_devices, | 88 | .init_early = emev2_add_early_devices, |
90 | .nr_irqs = NR_IRQS_LEGACY, | 89 | .nr_irqs = NR_IRQS_LEGACY, |
91 | .init_irq = emev2_init_irq, | 90 | .init_irq = emev2_init_irq, |
92 | .handle_irq = gic_handle_irq, | ||
93 | .init_machine = kzm9d_add_standard_devices, | 91 | .init_machine = kzm9d_add_standard_devices, |
94 | .init_late = shmobile_init_late, | 92 | .init_late = shmobile_init_late, |
95 | .timer = &shmobile_timer, | 93 | .init_time = shmobile_timer_init, |
96 | .dt_compat = kzm9d_boards_compat_dt, | 94 | .dt_compat = kzm9d_boards_compat_dt, |
97 | MACHINE_END | 95 | MACHINE_END |
diff --git a/arch/arm/mach-shmobile/board-kzm9g.c b/arch/arm/mach-shmobile/board-kzm9g.c index f41b71e8df3e..5394d804a716 100644 --- a/arch/arm/mach-shmobile/board-kzm9g.c +++ b/arch/arm/mach-shmobile/board-kzm9g.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/i2c.h> | 25 | #include <linux/i2c.h> |
26 | #include <linux/i2c/pcf857x.h> | 26 | #include <linux/i2c/pcf857x.h> |
27 | #include <linux/input.h> | 27 | #include <linux/input.h> |
28 | #include <linux/irqchip/arm-gic.h> | ||
28 | #include <linux/mmc/host.h> | 29 | #include <linux/mmc/host.h> |
29 | #include <linux/mmc/sh_mmcif.h> | 30 | #include <linux/mmc/sh_mmcif.h> |
30 | #include <linux/mmc/sh_mobile_sdhi.h> | 31 | #include <linux/mmc/sh_mobile_sdhi.h> |
@@ -42,7 +43,6 @@ | |||
42 | #include <mach/sh73a0.h> | 43 | #include <mach/sh73a0.h> |
43 | #include <mach/common.h> | 44 | #include <mach/common.h> |
44 | #include <asm/hardware/cache-l2x0.h> | 45 | #include <asm/hardware/cache-l2x0.h> |
45 | #include <asm/hardware/gic.h> | ||
46 | #include <asm/mach-types.h> | 46 | #include <asm/mach-types.h> |
47 | #include <asm/mach/arch.h> | 47 | #include <asm/mach/arch.h> |
48 | #include <video/sh_mobile_lcdc.h> | 48 | #include <video/sh_mobile_lcdc.h> |
@@ -792,10 +792,9 @@ DT_MACHINE_START(KZM9G_DT, "kzm9g") | |||
792 | .init_early = sh73a0_add_early_devices, | 792 | .init_early = sh73a0_add_early_devices, |
793 | .nr_irqs = NR_IRQS_LEGACY, | 793 | .nr_irqs = NR_IRQS_LEGACY, |
794 | .init_irq = sh73a0_init_irq, | 794 | .init_irq = sh73a0_init_irq, |
795 | .handle_irq = gic_handle_irq, | ||
796 | .init_machine = kzm_init, | 795 | .init_machine = kzm_init, |
797 | .init_late = shmobile_init_late, | 796 | .init_late = shmobile_init_late, |
798 | .timer = &shmobile_timer, | 797 | .init_time = sh73a0_earlytimer_init, |
799 | .restart = kzm9g_restart, | 798 | .restart = kzm9g_restart, |
800 | .dt_compat = kzm9g_boards_compat_dt, | 799 | .dt_compat = kzm9g_boards_compat_dt, |
801 | MACHINE_END | 800 | MACHINE_END |
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index 3fd716dae405..e2fafca9432b 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c | |||
@@ -1589,6 +1589,6 @@ DT_MACHINE_START(MACKEREL_DT, "mackerel") | |||
1589 | .handle_irq = shmobile_handle_irq_intc, | 1589 | .handle_irq = shmobile_handle_irq_intc, |
1590 | .init_machine = mackerel_init, | 1590 | .init_machine = mackerel_init, |
1591 | .init_late = sh7372_pm_init_late, | 1591 | .init_late = sh7372_pm_init_late, |
1592 | .timer = &shmobile_timer, | 1592 | .init_time = sh7372_earlytimer_init, |
1593 | .dt_compat = mackerel_boards_compat_dt, | 1593 | .dt_compat = mackerel_boards_compat_dt, |
1594 | MACHINE_END | 1594 | MACHINE_END |
diff --git a/arch/arm/mach-shmobile/board-marzen.c b/arch/arm/mach-shmobile/board-marzen.c index 449f9289567d..cdcb799e802f 100644 --- a/arch/arm/mach-shmobile/board-marzen.c +++ b/arch/arm/mach-shmobile/board-marzen.c | |||
@@ -44,7 +44,6 @@ | |||
44 | #include <mach/irqs.h> | 44 | #include <mach/irqs.h> |
45 | #include <asm/mach-types.h> | 45 | #include <asm/mach-types.h> |
46 | #include <asm/mach/arch.h> | 46 | #include <asm/mach/arch.h> |
47 | #include <asm/hardware/gic.h> | ||
48 | #include <asm/traps.h> | 47 | #include <asm/traps.h> |
49 | 48 | ||
50 | /* Fixed 3.3V regulator to be used by SDHI0 */ | 49 | /* Fixed 3.3V regulator to be used by SDHI0 */ |
@@ -382,8 +381,7 @@ MACHINE_START(MARZEN, "marzen") | |||
382 | .init_early = r8a7779_add_early_devices, | 381 | .init_early = r8a7779_add_early_devices, |
383 | .nr_irqs = NR_IRQS_LEGACY, | 382 | .nr_irqs = NR_IRQS_LEGACY, |
384 | .init_irq = r8a7779_init_irq, | 383 | .init_irq = r8a7779_init_irq, |
385 | .handle_irq = gic_handle_irq, | ||
386 | .init_machine = marzen_init, | 384 | .init_machine = marzen_init, |
387 | .init_late = marzen_init_late, | 385 | .init_late = marzen_init_late, |
388 | .timer = &shmobile_timer, | 386 | .init_time = r8a7779_earlytimer_init, |
389 | MACHINE_END | 387 | MACHINE_END |
diff --git a/arch/arm/mach-shmobile/include/mach/common.h b/arch/arm/mach-shmobile/include/mach/common.h index dfeca79e9e96..a57439eec11a 100644 --- a/arch/arm/mach-shmobile/include/mach/common.h +++ b/arch/arm/mach-shmobile/include/mach/common.h | |||
@@ -2,7 +2,7 @@ | |||
2 | #define __ARCH_MACH_COMMON_H | 2 | #define __ARCH_MACH_COMMON_H |
3 | 3 | ||
4 | extern void shmobile_earlytimer_init(void); | 4 | extern void shmobile_earlytimer_init(void); |
5 | extern struct sys_timer shmobile_timer; | 5 | extern void shmobile_timer_init(void); |
6 | extern void shmobile_setup_delay(unsigned int max_cpu_core_mhz, | 6 | extern void shmobile_setup_delay(unsigned int max_cpu_core_mhz, |
7 | unsigned int mult, unsigned int div); | 7 | unsigned int mult, unsigned int div); |
8 | struct twd_local_timer; | 8 | struct twd_local_timer; |
@@ -20,6 +20,7 @@ extern void shmobile_cpuidle_set_driver(struct cpuidle_driver *drv); | |||
20 | 20 | ||
21 | extern void sh7372_init_irq(void); | 21 | extern void sh7372_init_irq(void); |
22 | extern void sh7372_map_io(void); | 22 | extern void sh7372_map_io(void); |
23 | extern void sh7372_earlytimer_init(void); | ||
23 | extern void sh7372_add_early_devices(void); | 24 | extern void sh7372_add_early_devices(void); |
24 | extern void sh7372_add_standard_devices(void); | 25 | extern void sh7372_add_standard_devices(void); |
25 | extern void sh7372_clock_init(void); | 26 | extern void sh7372_clock_init(void); |
@@ -32,6 +33,7 @@ extern struct clk sh7372_extal2_clk; | |||
32 | 33 | ||
33 | extern void sh73a0_init_irq(void); | 34 | extern void sh73a0_init_irq(void); |
34 | extern void sh73a0_map_io(void); | 35 | extern void sh73a0_map_io(void); |
36 | extern void sh73a0_earlytimer_init(void); | ||
35 | extern void sh73a0_add_early_devices(void); | 37 | extern void sh73a0_add_early_devices(void); |
36 | extern void sh73a0_add_standard_devices(void); | 38 | extern void sh73a0_add_standard_devices(void); |
37 | extern void sh73a0_clock_init(void); | 39 | extern void sh73a0_clock_init(void); |
@@ -50,6 +52,7 @@ extern void r8a7740_pinmux_init(void); | |||
50 | 52 | ||
51 | extern void r8a7779_init_irq(void); | 53 | extern void r8a7779_init_irq(void); |
52 | extern void r8a7779_map_io(void); | 54 | extern void r8a7779_map_io(void); |
55 | extern void r8a7779_earlytimer_init(void); | ||
53 | extern void r8a7779_add_early_devices(void); | 56 | extern void r8a7779_add_early_devices(void); |
54 | extern void r8a7779_add_standard_devices(void); | 57 | extern void r8a7779_add_standard_devices(void); |
55 | extern void r8a7779_clock_init(void); | 58 | extern void r8a7779_clock_init(void); |
diff --git a/arch/arm/mach-shmobile/include/mach/uncompress.h b/arch/arm/mach-shmobile/include/mach/uncompress.h index 0bd7556b1387..f1aee56781e7 100644 --- a/arch/arm/mach-shmobile/include/mach/uncompress.h +++ b/arch/arm/mach-shmobile/include/mach/uncompress.h | |||
@@ -16,6 +16,4 @@ static void arch_decomp_setup(void) | |||
16 | { | 16 | { |
17 | } | 17 | } |
18 | 18 | ||
19 | #define arch_decomp_wdog() | ||
20 | |||
21 | #endif /* __ASM_MACH_UNCOMPRESS_H */ | 19 | #endif /* __ASM_MACH_UNCOMPRESS_H */ |
diff --git a/arch/arm/mach-shmobile/intc-r8a7779.c b/arch/arm/mach-shmobile/intc-r8a7779.c index ef66f1a8aa2e..8807c27f71f9 100644 --- a/arch/arm/mach-shmobile/intc-r8a7779.c +++ b/arch/arm/mach-shmobile/intc-r8a7779.c | |||
@@ -22,10 +22,10 @@ | |||
22 | #include <linux/interrupt.h> | 22 | #include <linux/interrupt.h> |
23 | #include <linux/irq.h> | 23 | #include <linux/irq.h> |
24 | #include <linux/io.h> | 24 | #include <linux/io.h> |
25 | #include <linux/irqchip/arm-gic.h> | ||
25 | #include <mach/common.h> | 26 | #include <mach/common.h> |
26 | #include <mach/intc.h> | 27 | #include <mach/intc.h> |
27 | #include <mach/r8a7779.h> | 28 | #include <mach/r8a7779.h> |
28 | #include <asm/hardware/gic.h> | ||
29 | #include <asm/mach-types.h> | 29 | #include <asm/mach-types.h> |
30 | #include <asm/mach/arch.h> | 30 | #include <asm/mach/arch.h> |
31 | 31 | ||
diff --git a/arch/arm/mach-shmobile/intc-sh73a0.c b/arch/arm/mach-shmobile/intc-sh73a0.c index f0c5e5190601..978369973be4 100644 --- a/arch/arm/mach-shmobile/intc-sh73a0.c +++ b/arch/arm/mach-shmobile/intc-sh73a0.c | |||
@@ -23,10 +23,10 @@ | |||
23 | #include <linux/irq.h> | 23 | #include <linux/irq.h> |
24 | #include <linux/io.h> | 24 | #include <linux/io.h> |
25 | #include <linux/sh_intc.h> | 25 | #include <linux/sh_intc.h> |
26 | #include <linux/irqchip/arm-gic.h> | ||
26 | #include <mach/intc.h> | 27 | #include <mach/intc.h> |
27 | #include <mach/irqs.h> | 28 | #include <mach/irqs.h> |
28 | #include <mach/sh73a0.h> | 29 | #include <mach/sh73a0.h> |
29 | #include <asm/hardware/gic.h> | ||
30 | #include <asm/mach-types.h> | 30 | #include <asm/mach-types.h> |
31 | #include <asm/mach/arch.h> | 31 | #include <asm/mach/arch.h> |
32 | 32 | ||
diff --git a/arch/arm/mach-shmobile/platsmp.c b/arch/arm/mach-shmobile/platsmp.c index ed8d2351915e..1f958d7b0bac 100644 --- a/arch/arm/mach-shmobile/platsmp.c +++ b/arch/arm/mach-shmobile/platsmp.c | |||
@@ -12,7 +12,6 @@ | |||
12 | */ | 12 | */ |
13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
14 | #include <linux/smp.h> | 14 | #include <linux/smp.h> |
15 | #include <asm/hardware/gic.h> | ||
16 | 15 | ||
17 | void __init shmobile_smp_init_cpus(unsigned int ncores) | 16 | void __init shmobile_smp_init_cpus(unsigned int ncores) |
18 | { | 17 | { |
@@ -26,6 +25,4 @@ void __init shmobile_smp_init_cpus(unsigned int ncores) | |||
26 | 25 | ||
27 | for (i = 0; i < ncores; i++) | 26 | for (i = 0; i < ncores; i++) |
28 | set_cpu_possible(i, true); | 27 | set_cpu_possible(i, true); |
29 | |||
30 | set_smp_cross_call(gic_raise_softirq); | ||
31 | } | 28 | } |
diff --git a/arch/arm/mach-shmobile/setup-emev2.c b/arch/arm/mach-shmobile/setup-emev2.c index a47beeb18283..47662a581c0a 100644 --- a/arch/arm/mach-shmobile/setup-emev2.c +++ b/arch/arm/mach-shmobile/setup-emev2.c | |||
@@ -20,13 +20,14 @@ | |||
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/interrupt.h> | 21 | #include <linux/interrupt.h> |
22 | #include <linux/irq.h> | 22 | #include <linux/irq.h> |
23 | #include <linux/irqchip.h> | ||
23 | #include <linux/platform_device.h> | 24 | #include <linux/platform_device.h> |
24 | #include <linux/platform_data/gpio-em.h> | 25 | #include <linux/platform_data/gpio-em.h> |
25 | #include <linux/of_platform.h> | 26 | #include <linux/of_platform.h> |
26 | #include <linux/delay.h> | 27 | #include <linux/delay.h> |
27 | #include <linux/input.h> | 28 | #include <linux/input.h> |
28 | #include <linux/io.h> | 29 | #include <linux/io.h> |
29 | #include <linux/of_irq.h> | 30 | #include <linux/irqchip/arm-gic.h> |
30 | #include <mach/hardware.h> | 31 | #include <mach/hardware.h> |
31 | #include <mach/common.h> | 32 | #include <mach/common.h> |
32 | #include <mach/emev2.h> | 33 | #include <mach/emev2.h> |
@@ -35,7 +36,6 @@ | |||
35 | #include <asm/mach/arch.h> | 36 | #include <asm/mach/arch.h> |
36 | #include <asm/mach/map.h> | 37 | #include <asm/mach/map.h> |
37 | #include <asm/mach/time.h> | 38 | #include <asm/mach/time.h> |
38 | #include <asm/hardware/gic.h> | ||
39 | 39 | ||
40 | static struct map_desc emev2_io_desc[] __initdata = { | 40 | static struct map_desc emev2_io_desc[] __initdata = { |
41 | #ifdef CONFIG_SMP | 41 | #ifdef CONFIG_SMP |
@@ -445,29 +445,18 @@ void __init emev2_add_standard_devices_dt(void) | |||
445 | emev2_auxdata_lookup, NULL); | 445 | emev2_auxdata_lookup, NULL); |
446 | } | 446 | } |
447 | 447 | ||
448 | static const struct of_device_id emev2_dt_irq_match[] = { | ||
449 | { .compatible = "arm,cortex-a9-gic", .data = gic_of_init, }, | ||
450 | {}, | ||
451 | }; | ||
452 | |||
453 | static const char *emev2_boards_compat_dt[] __initdata = { | 448 | static const char *emev2_boards_compat_dt[] __initdata = { |
454 | "renesas,emev2", | 449 | "renesas,emev2", |
455 | NULL, | 450 | NULL, |
456 | }; | 451 | }; |
457 | 452 | ||
458 | void __init emev2_init_irq_dt(void) | ||
459 | { | ||
460 | of_irq_init(emev2_dt_irq_match); | ||
461 | } | ||
462 | |||
463 | DT_MACHINE_START(EMEV2_DT, "Generic Emma Mobile EV2 (Flattened Device Tree)") | 453 | DT_MACHINE_START(EMEV2_DT, "Generic Emma Mobile EV2 (Flattened Device Tree)") |
464 | .smp = smp_ops(emev2_smp_ops), | 454 | .smp = smp_ops(emev2_smp_ops), |
465 | .init_early = emev2_init_delay, | 455 | .init_early = emev2_init_delay, |
466 | .nr_irqs = NR_IRQS_LEGACY, | 456 | .nr_irqs = NR_IRQS_LEGACY, |
467 | .init_irq = emev2_init_irq_dt, | 457 | .init_irq = irqchip_init, |
468 | .handle_irq = gic_handle_irq, | ||
469 | .init_machine = emev2_add_standard_devices_dt, | 458 | .init_machine = emev2_add_standard_devices_dt, |
470 | .timer = &shmobile_timer, | 459 | .init_time = shmobile_timer_init, |
471 | .dt_compat = emev2_boards_compat_dt, | 460 | .dt_compat = emev2_boards_compat_dt, |
472 | MACHINE_END | 461 | MACHINE_END |
473 | 462 | ||
diff --git a/arch/arm/mach-shmobile/setup-r8a7740.c b/arch/arm/mach-shmobile/setup-r8a7740.c index 095222469d03..03c69f9979aa 100644 --- a/arch/arm/mach-shmobile/setup-r8a7740.c +++ b/arch/arm/mach-shmobile/setup-r8a7740.c | |||
@@ -705,12 +705,6 @@ void __init r8a7740_add_standard_devices(void) | |||
705 | rmobile_add_device_to_domain("A3SP", &i2c1_device); | 705 | rmobile_add_device_to_domain("A3SP", &i2c1_device); |
706 | } | 706 | } |
707 | 707 | ||
708 | static void __init r8a7740_earlytimer_init(void) | ||
709 | { | ||
710 | r8a7740_clock_init(0); | ||
711 | shmobile_earlytimer_init(); | ||
712 | } | ||
713 | |||
714 | void __init r8a7740_add_early_devices(void) | 708 | void __init r8a7740_add_early_devices(void) |
715 | { | 709 | { |
716 | early_platform_add_devices(r8a7740_early_devices, | 710 | early_platform_add_devices(r8a7740_early_devices, |
@@ -718,9 +712,6 @@ void __init r8a7740_add_early_devices(void) | |||
718 | 712 | ||
719 | /* setup early console here as well */ | 713 | /* setup early console here as well */ |
720 | shmobile_setup_console(); | 714 | shmobile_setup_console(); |
721 | |||
722 | /* override timer setup with soc-specific code */ | ||
723 | shmobile_timer.init = r8a7740_earlytimer_init; | ||
724 | } | 715 | } |
725 | 716 | ||
726 | #ifdef CONFIG_USE_OF | 717 | #ifdef CONFIG_USE_OF |
@@ -763,7 +754,7 @@ DT_MACHINE_START(R8A7740_DT, "Generic R8A7740 (Flattened Device Tree)") | |||
763 | .init_irq = r8a7740_init_irq, | 754 | .init_irq = r8a7740_init_irq, |
764 | .handle_irq = shmobile_handle_irq_intc, | 755 | .handle_irq = shmobile_handle_irq_intc, |
765 | .init_machine = r8a7740_add_standard_devices_dt, | 756 | .init_machine = r8a7740_add_standard_devices_dt, |
766 | .timer = &shmobile_timer, | 757 | .init_time = shmobile_timer_init, |
767 | .dt_compat = r8a7740_boards_compat_dt, | 758 | .dt_compat = r8a7740_boards_compat_dt, |
768 | MACHINE_END | 759 | MACHINE_END |
769 | 760 | ||
diff --git a/arch/arm/mach-shmobile/setup-r8a7779.c b/arch/arm/mach-shmobile/setup-r8a7779.c index 7a1ad4f38539..a181ced09e45 100644 --- a/arch/arm/mach-shmobile/setup-r8a7779.c +++ b/arch/arm/mach-shmobile/setup-r8a7779.c | |||
@@ -339,7 +339,7 @@ void __init r8a7779_add_standard_devices(void) | |||
339 | /* do nothing for !CONFIG_SMP or !CONFIG_HAVE_TWD */ | 339 | /* do nothing for !CONFIG_SMP or !CONFIG_HAVE_TWD */ |
340 | void __init __weak r8a7779_register_twd(void) { } | 340 | void __init __weak r8a7779_register_twd(void) { } |
341 | 341 | ||
342 | static void __init r8a7779_earlytimer_init(void) | 342 | void __init r8a7779_earlytimer_init(void) |
343 | { | 343 | { |
344 | r8a7779_clock_init(); | 344 | r8a7779_clock_init(); |
345 | shmobile_earlytimer_init(); | 345 | shmobile_earlytimer_init(); |
@@ -366,7 +366,4 @@ void __init r8a7779_add_early_devices(void) | |||
366 | * As a final step pass earlyprint=sh-sci.2,115200 on the kernel | 366 | * As a final step pass earlyprint=sh-sci.2,115200 on the kernel |
367 | * command line in case of the marzen board. | 367 | * command line in case of the marzen board. |
368 | */ | 368 | */ |
369 | |||
370 | /* override timer setup with soc-specific code */ | ||
371 | shmobile_timer.init = r8a7779_earlytimer_init; | ||
372 | } | 369 | } |
diff --git a/arch/arm/mach-shmobile/setup-sh7372.c b/arch/arm/mach-shmobile/setup-sh7372.c index c917882424a7..191ae72e21ba 100644 --- a/arch/arm/mach-shmobile/setup-sh7372.c +++ b/arch/arm/mach-shmobile/setup-sh7372.c | |||
@@ -1054,7 +1054,7 @@ void __init sh7372_add_standard_devices(void) | |||
1054 | ARRAY_SIZE(domain_devices)); | 1054 | ARRAY_SIZE(domain_devices)); |
1055 | } | 1055 | } |
1056 | 1056 | ||
1057 | static void __init sh7372_earlytimer_init(void) | 1057 | void __init sh7372_earlytimer_init(void) |
1058 | { | 1058 | { |
1059 | sh7372_clock_init(); | 1059 | sh7372_clock_init(); |
1060 | shmobile_earlytimer_init(); | 1060 | shmobile_earlytimer_init(); |
@@ -1067,9 +1067,6 @@ void __init sh7372_add_early_devices(void) | |||
1067 | 1067 | ||
1068 | /* setup early console here as well */ | 1068 | /* setup early console here as well */ |
1069 | shmobile_setup_console(); | 1069 | shmobile_setup_console(); |
1070 | |||
1071 | /* override timer setup with soc-specific code */ | ||
1072 | shmobile_timer.init = sh7372_earlytimer_init; | ||
1073 | } | 1070 | } |
1074 | 1071 | ||
1075 | #ifdef CONFIG_USE_OF | 1072 | #ifdef CONFIG_USE_OF |
@@ -1113,7 +1110,7 @@ DT_MACHINE_START(SH7372_DT, "Generic SH7372 (Flattened Device Tree)") | |||
1113 | .init_irq = sh7372_init_irq, | 1110 | .init_irq = sh7372_init_irq, |
1114 | .handle_irq = shmobile_handle_irq_intc, | 1111 | .handle_irq = shmobile_handle_irq_intc, |
1115 | .init_machine = sh7372_add_standard_devices_dt, | 1112 | .init_machine = sh7372_add_standard_devices_dt, |
1116 | .timer = &shmobile_timer, | 1113 | .init_time = shmobile_timer_init, |
1117 | .dt_compat = sh7372_boards_compat_dt, | 1114 | .dt_compat = sh7372_boards_compat_dt, |
1118 | MACHINE_END | 1115 | MACHINE_END |
1119 | 1116 | ||
diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c b/arch/arm/mach-shmobile/setup-sh73a0.c index db99a4ade80c..8c2d6424f470 100644 --- a/arch/arm/mach-shmobile/setup-sh73a0.c +++ b/arch/arm/mach-shmobile/setup-sh73a0.c | |||
@@ -796,7 +796,7 @@ void __init sh73a0_add_standard_devices(void) | |||
796 | /* do nothing for !CONFIG_SMP or !CONFIG_HAVE_TWD */ | 796 | /* do nothing for !CONFIG_SMP or !CONFIG_HAVE_TWD */ |
797 | void __init __weak sh73a0_register_twd(void) { } | 797 | void __init __weak sh73a0_register_twd(void) { } |
798 | 798 | ||
799 | static void __init sh73a0_earlytimer_init(void) | 799 | void __init sh73a0_earlytimer_init(void) |
800 | { | 800 | { |
801 | sh73a0_clock_init(); | 801 | sh73a0_clock_init(); |
802 | shmobile_earlytimer_init(); | 802 | shmobile_earlytimer_init(); |
@@ -810,7 +810,4 @@ void __init sh73a0_add_early_devices(void) | |||
810 | 810 | ||
811 | /* setup early console here as well */ | 811 | /* setup early console here as well */ |
812 | shmobile_setup_console(); | 812 | shmobile_setup_console(); |
813 | |||
814 | /* override timer setup with soc-specific code */ | ||
815 | shmobile_timer.init = sh73a0_earlytimer_init; | ||
816 | } | 813 | } |
diff --git a/arch/arm/mach-shmobile/smp-emev2.c b/arch/arm/mach-shmobile/smp-emev2.c index f67456286280..953eb1f9388d 100644 --- a/arch/arm/mach-shmobile/smp-emev2.c +++ b/arch/arm/mach-shmobile/smp-emev2.c | |||
@@ -23,11 +23,11 @@ | |||
23 | #include <linux/spinlock.h> | 23 | #include <linux/spinlock.h> |
24 | #include <linux/io.h> | 24 | #include <linux/io.h> |
25 | #include <linux/delay.h> | 25 | #include <linux/delay.h> |
26 | #include <linux/irqchip/arm-gic.h> | ||
26 | #include <mach/common.h> | 27 | #include <mach/common.h> |
27 | #include <mach/emev2.h> | 28 | #include <mach/emev2.h> |
28 | #include <asm/smp_plat.h> | 29 | #include <asm/smp_plat.h> |
29 | #include <asm/smp_scu.h> | 30 | #include <asm/smp_scu.h> |
30 | #include <asm/hardware/gic.h> | ||
31 | #include <asm/cacheflush.h> | 31 | #include <asm/cacheflush.h> |
32 | 32 | ||
33 | #define EMEV2_SCU_BASE 0x1e000000 | 33 | #define EMEV2_SCU_BASE 0x1e000000 |
@@ -100,7 +100,7 @@ static int __cpuinit emev2_boot_secondary(unsigned int cpu, struct task_struct * | |||
100 | /* Tell ROM loader about our vector (in headsmp.S) */ | 100 | /* Tell ROM loader about our vector (in headsmp.S) */ |
101 | emev2_set_boot_vector(__pa(shmobile_secondary_vector)); | 101 | emev2_set_boot_vector(__pa(shmobile_secondary_vector)); |
102 | 102 | ||
103 | gic_raise_softirq(cpumask_of(cpu), 0); | 103 | arch_send_wakeup_ipi_mask(cpumask_of(cpu)); |
104 | return 0; | 104 | return 0; |
105 | } | 105 | } |
106 | 106 | ||
diff --git a/arch/arm/mach-shmobile/smp-r8a7779.c b/arch/arm/mach-shmobile/smp-r8a7779.c index 2ce6af9a6a37..3a4acf23edcf 100644 --- a/arch/arm/mach-shmobile/smp-r8a7779.c +++ b/arch/arm/mach-shmobile/smp-r8a7779.c | |||
@@ -23,12 +23,12 @@ | |||
23 | #include <linux/spinlock.h> | 23 | #include <linux/spinlock.h> |
24 | #include <linux/io.h> | 24 | #include <linux/io.h> |
25 | #include <linux/delay.h> | 25 | #include <linux/delay.h> |
26 | #include <linux/irqchip/arm-gic.h> | ||
26 | #include <mach/common.h> | 27 | #include <mach/common.h> |
27 | #include <mach/r8a7779.h> | 28 | #include <mach/r8a7779.h> |
28 | #include <asm/smp_plat.h> | 29 | #include <asm/smp_plat.h> |
29 | #include <asm/smp_scu.h> | 30 | #include <asm/smp_scu.h> |
30 | #include <asm/smp_twd.h> | 31 | #include <asm/smp_twd.h> |
31 | #include <asm/hardware/gic.h> | ||
32 | 32 | ||
33 | #define AVECR IOMEM(0xfe700040) | 33 | #define AVECR IOMEM(0xfe700040) |
34 | 34 | ||
diff --git a/arch/arm/mach-shmobile/smp-sh73a0.c b/arch/arm/mach-shmobile/smp-sh73a0.c index 624f00f70abf..5c5bcb595350 100644 --- a/arch/arm/mach-shmobile/smp-sh73a0.c +++ b/arch/arm/mach-shmobile/smp-sh73a0.c | |||
@@ -23,12 +23,12 @@ | |||
23 | #include <linux/spinlock.h> | 23 | #include <linux/spinlock.h> |
24 | #include <linux/io.h> | 24 | #include <linux/io.h> |
25 | #include <linux/delay.h> | 25 | #include <linux/delay.h> |
26 | #include <linux/irqchip/arm-gic.h> | ||
26 | #include <mach/common.h> | 27 | #include <mach/common.h> |
27 | #include <asm/smp_plat.h> | 28 | #include <asm/smp_plat.h> |
28 | #include <mach/sh73a0.h> | 29 | #include <mach/sh73a0.h> |
29 | #include <asm/smp_scu.h> | 30 | #include <asm/smp_scu.h> |
30 | #include <asm/smp_twd.h> | 31 | #include <asm/smp_twd.h> |
31 | #include <asm/hardware/gic.h> | ||
32 | 32 | ||
33 | #define WUPCR IOMEM(0xe6151010) | 33 | #define WUPCR IOMEM(0xe6151010) |
34 | #define SRESCR IOMEM(0xe6151018) | 34 | #define SRESCR IOMEM(0xe6151018) |
diff --git a/arch/arm/mach-shmobile/timer.c b/arch/arm/mach-shmobile/timer.c index a68919727e24..fdbe54a11555 100644 --- a/arch/arm/mach-shmobile/timer.c +++ b/arch/arm/mach-shmobile/timer.c | |||
@@ -60,10 +60,6 @@ void __init shmobile_earlytimer_init(void) | |||
60 | late_time_init = shmobile_late_time_init; | 60 | late_time_init = shmobile_late_time_init; |
61 | } | 61 | } |
62 | 62 | ||
63 | static void __init shmobile_timer_init(void) | 63 | void __init shmobile_timer_init(void) |
64 | { | 64 | { |
65 | } | 65 | } |
66 | |||
67 | struct sys_timer shmobile_timer = { | ||
68 | .init = shmobile_timer_init, | ||
69 | }; | ||