diff options
-rw-r--r-- | arch/arm/boot/dts/sh73a0.dtsi | 33 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/include/mach/common.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/intc-sh73a0.c | 9 |
3 files changed, 43 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/sh73a0.dtsi b/arch/arm/boot/dts/sh73a0.dtsi new file mode 100644 index 000000000000..7dae1f4e9be3 --- /dev/null +++ b/arch/arm/boot/dts/sh73a0.dtsi | |||
@@ -0,0 +1,33 @@ | |||
1 | /* | ||
2 | * Device Tree Source for the SH73A0 SoC | ||
3 | * | ||
4 | * Copyright (C) 2012 Renesas Solutions Corp. | ||
5 | * | ||
6 | * This file is licensed under the terms of the GNU General Public License | ||
7 | * version 2. This program is licensed "as is" without any warranty of any | ||
8 | * kind, whether express or implied. | ||
9 | */ | ||
10 | |||
11 | /include/ "skeleton.dtsi" | ||
12 | |||
13 | / { | ||
14 | compatible = "renesas,sh73a0"; | ||
15 | |||
16 | cpus { | ||
17 | cpu@0 { | ||
18 | compatible = "arm,cortex-a9"; | ||
19 | }; | ||
20 | cpu@1 { | ||
21 | compatible = "arm,cortex-a9"; | ||
22 | }; | ||
23 | }; | ||
24 | |||
25 | gic: interrupt-controller@f0001000 { | ||
26 | compatible = "arm,cortex-a9-gic"; | ||
27 | #interrupt-cells = <3>; | ||
28 | #address-cells = <1>; | ||
29 | interrupt-controller; | ||
30 | reg = <0xf0001000 0x1000>, | ||
31 | <0xf0000100 0x100>; | ||
32 | }; | ||
33 | }; | ||
diff --git a/arch/arm/mach-shmobile/include/mach/common.h b/arch/arm/mach-shmobile/include/mach/common.h index 4b1af936fae9..e2ba16b6ae8e 100644 --- a/arch/arm/mach-shmobile/include/mach/common.h +++ b/arch/arm/mach-shmobile/include/mach/common.h | |||
@@ -34,6 +34,7 @@ extern struct clk sh7372_extal1_clk; | |||
34 | extern struct clk sh7372_extal2_clk; | 34 | extern struct clk sh7372_extal2_clk; |
35 | 35 | ||
36 | extern void sh73a0_init_irq(void); | 36 | extern void sh73a0_init_irq(void); |
37 | extern void sh73a0_init_irq_dt(void); | ||
37 | extern void sh73a0_map_io(void); | 38 | extern void sh73a0_map_io(void); |
38 | extern void sh73a0_earlytimer_init(void); | 39 | extern void sh73a0_earlytimer_init(void); |
39 | extern void sh73a0_add_early_devices(void); | 40 | extern void sh73a0_add_early_devices(void); |
diff --git a/arch/arm/mach-shmobile/intc-sh73a0.c b/arch/arm/mach-shmobile/intc-sh73a0.c index 45973b59dd58..91faba666d46 100644 --- a/arch/arm/mach-shmobile/intc-sh73a0.c +++ b/arch/arm/mach-shmobile/intc-sh73a0.c | |||
@@ -23,6 +23,7 @@ | |||
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.h> | ||
26 | #include <linux/irqchip/arm-gic.h> | 27 | #include <linux/irqchip/arm-gic.h> |
27 | #include <mach/intc.h> | 28 | #include <mach/intc.h> |
28 | #include <mach/irqs.h> | 29 | #include <mach/irqs.h> |
@@ -459,3 +460,11 @@ void __init sh73a0_init_irq(void) | |||
459 | sh73a0_pint1_cascade.handler = sh73a0_pint1_demux; | 460 | sh73a0_pint1_cascade.handler = sh73a0_pint1_demux; |
460 | setup_irq(gic_spi(34), &sh73a0_pint1_cascade); | 461 | setup_irq(gic_spi(34), &sh73a0_pint1_cascade); |
461 | } | 462 | } |
463 | |||
464 | #ifdef CONFIG_OF | ||
465 | void __init sh73a0_init_irq_dt(void) | ||
466 | { | ||
467 | irqchip_init(); | ||
468 | gic_arch_extn.irq_set_wake = sh73a0_set_wake; | ||
469 | } | ||
470 | #endif | ||