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 19unsigned int irq_lookup(unsigned int irq) 20{ 21 return __raw_readl(INTACK) & 1 ? irq : NO_IRQ_IGNORE; 22} 23 24void irq_finish(unsigned int irq) 25{ 26 __raw_writel(irq2evt(irq), INTACKCLR); 27} 28#endif 29 30static int __init shx3_irq_setup(void) 31{ 32 return register_intc_userimask(INTC_USERIMASK); 33} 34arch_initcall(shx3_irq_setup); 35