/* * Shared support for SH-X3 interrupt controllers. * * Copyright (C) 2009 - 2010 Paul Mundt * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. */ #include <linux/irq.h> #include <linux/io.h> #include <linux/init.h> #define INTACK 0xfe4100b8 #define INTACKCLR 0xfe4100bc #define INTC_USERIMASK 0xfe411000 #ifdef CONFIG_INTC_BALANCING unsigned int irq_lookup(unsigned int irq) { return __raw_readl(INTACK) & 1 ? irq : NO_IRQ_IGNORE; } void irq_finish(unsigned int irq) { __raw_writel(irq2evt(irq), INTACKCLR); } #endif static int __init shx3_irq_setup(void) { return register_intc_userimask(INTC_USERIMASK); } arch_initcall(shx3_irq_setup);