Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
irq.c
Go to the documentation of this file.
1 /*
2  * linux/arch/sh/boards/se/7780/irq.c
3  *
4  * Copyright (C) 2006,2007 Nobuhiro Iwamatsu
5  *
6  * Hitachi UL SolutionEngine 7780 Support.
7  *
8  * This file is subject to the terms and conditions of the GNU General Public
9  * License. See the file "COPYING" in the main directory of this archive
10  * for more details.
11  */
12 #include <linux/init.h>
13 #include <linux/irq.h>
14 #include <linux/interrupt.h>
15 #include <linux/io.h>
16 #include <mach-se/mach/se7780.h>
17 
18 #define INTC_BASE 0xffd00000
19 #define INTC_ICR1 (INTC_BASE+0x1c)
20 
21 /*
22  * Initialize IRQ setting
23  */
25 {
26  /* enable all interrupt at FPGA */
28  /* mask SM501 interrupt */
30  /* enable all interrupt at FPGA */
32 
33  /* set FPGA INTSEL register */
34  /* FPGA + 0x06 */
37 
38  /* FPGA + 0x08 */
43 
44  /* FPGA + 0x0A */
46 
47  plat_irq_setup_pins(IRQ_MODE_IRQ); /* install handlers for IRQ0-7 */
48 
49  /* ICR1: detect low level(for 2ndcut) */
50  __raw_writel(0xAAAA0000, INTC_ICR1);
51 
52  /*
53  * FPGA PCISEL register initialize
54  *
55  * CPU || SLOT1 | SLOT2 | S-ATA | USB
56  * -------------------------------------
57  * INTA || INTA | INTD | -- | INTB
58  * -------------------------------------
59  * INTB || INTB | INTA | -- | INTC
60  * -------------------------------------
61  * INTC || INTC | INTB | INTA | --
62  * -------------------------------------
63  * INTD || INTD | INTC | -- | INTA
64  * -------------------------------------
65  */
68 }