Commit e74a9625 authored by Magnus Damm's avatar Magnus Damm Committed by Paul Mundt

ARM: mach-shmobile: Run-time IRQ handler for GIC

Break-out GIC specific IRQ demux code from the file
entry-macro-intc.S and register during run-time.

Covers sh73a0.
Signed-off-by: default avatarMagnus Damm <damm@opensource.se>
Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent 863b1719
...@@ -22,6 +22,7 @@ pfc-$(CONFIG_ARCH_SH73A0) += pfc-sh73a0.o ...@@ -22,6 +22,7 @@ pfc-$(CONFIG_ARCH_SH73A0) += pfc-sh73a0.o
obj-$(CONFIG_ARCH_SH7367) += entry-intc.o obj-$(CONFIG_ARCH_SH7367) += entry-intc.o
obj-$(CONFIG_ARCH_SH7377) += entry-intc.o obj-$(CONFIG_ARCH_SH7377) += entry-intc.o
obj-$(CONFIG_ARCH_SH7372) += entry-intc.o obj-$(CONFIG_ARCH_SH7372) += entry-intc.o
obj-$(CONFIG_ARCH_SH73A0) += entry-gic.o
# Board objects # Board objects
obj-$(CONFIG_MACH_G3EVM) += board-g3evm.o obj-$(CONFIG_MACH_G3EVM) += board-g3evm.o
......
...@@ -309,6 +309,7 @@ struct sys_timer ag5evm_timer = { ...@@ -309,6 +309,7 @@ struct sys_timer ag5evm_timer = {
MACHINE_START(AG5EVM, "ag5evm") MACHINE_START(AG5EVM, "ag5evm")
.map_io = ag5evm_map_io, .map_io = ag5evm_map_io,
.init_irq = ag5evm_init_irq, .init_irq = ag5evm_init_irq,
.handle_irq = shmobile_handle_irq_gic,
.init_machine = ag5evm_init, .init_machine = ag5evm_init,
.timer = &ag5evm_timer, .timer = &ag5evm_timer,
MACHINE_END MACHINE_END
/*
* ARM Interrupt demux handler using GIC
*
* Copyright (C) 2010 Magnus Damm
* Copyright (C) 2010 Renesas Solutions Corp.
*
* This file is licensed under the terms of the GNU General Public
* License version 2. This program is licensed "as is" without any
* warranty of any kind, whether express or implied.
*/
#include <asm/entry-macro-multi.S>
#include <asm/hardware/gic.h>
#include <asm/hardware/entry-macro-gic.S>
.macro get_irqnr_preamble, base, tmp
ldr \base, =(0xf0000100)
.endm
arch_irq_handler shmobile_handle_irq_gic
...@@ -6,6 +6,7 @@ extern void shmobile_setup_console(void); ...@@ -6,6 +6,7 @@ extern void shmobile_setup_console(void);
struct clk; struct clk;
extern int clk_init(void); extern int clk_init(void);
extern void shmobile_handle_irq_intc(struct pt_regs *); extern void shmobile_handle_irq_intc(struct pt_regs *);
extern void shmobile_handle_irq_gic(struct pt_regs *);
extern void sh7367_init_irq(void); extern void sh7367_init_irq(void);
extern void sh7367_add_early_devices(void); extern void sh7367_add_early_devices(void);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment