Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ pfc-$(CONFIG_ARCH_SH73A0) += pfc-sh73a0.o
obj-$(CONFIG_ARCH_SH7367)	+= entry-intc.o
obj-$(CONFIG_ARCH_SH7377)	+= entry-intc.o
obj-$(CONFIG_ARCH_SH7372)	+= entry-intc.o
obj-$(CONFIG_ARCH_SH73A0)	+= entry-gic.o

# Board objects
obj-$(CONFIG_MACH_G3EVM)	+= board-g3evm.o
+1 −0
Original line number Diff line number Diff line
@@ -309,6 +309,7 @@ struct sys_timer ag5evm_timer = {
MACHINE_START(AG5EVM, "ag5evm")
	.map_io		= ag5evm_map_io,
	.init_irq	= ag5evm_init_irq,
	.handle_irq	= shmobile_handle_irq_gic,
	.init_machine	= ag5evm_init,
	.timer		= &ag5evm_timer,
MACHINE_END
+20 −0
Original line number Diff line number Diff line
/*
 * 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
+1 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ extern void shmobile_setup_console(void);
struct clk;
extern int clk_init(void);
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_add_early_devices(void);