1 /* 2 * Shared support for SH-X3 interrupt controllers. 3 * 4 * Copyright (C) 2009 - 2010 Paul Mundt 5 * 6 * This file is subject to the terms and conditions of the GNU General Public 7 * License. See the file "COPYING" in the main directory of this archive 8 * for more details. 9 */ 10 #include <linux/irq.h> 11 #include <linux/io.h> 12 #include <linux/init.h> 13 14 #define INTACK 0xfe4100b8 15 #define INTACKCLR 0xfe4100bc 16 #define INTC_USERIMASK 0xfe411000 17 18 #ifdef CONFIG_INTC_BALANCING 19 unsigned int irq_lookup(unsigned int irq) 20 { 21 return __raw_readl(INTACK) & 1 ? irq : NO_IRQ_IGNORE; 22 } 23 24 void irq_finish(unsigned int irq) 25 { 26 __raw_writel(irq2evt(irq), INTACKCLR); 27 } 28 #endif 29 30 static int __init shx3_irq_setup(void) 31 { 32 return register_intc_userimask(INTC_USERIMASK); 33 } 34 arch_initcall(shx3_irq_setup); 35