Commit | Line | Data |
---|---|---|
94c0fa52 | 1 | /* |
144cd596 | 2 | * arch/sh/boards/mach-landisk/irq.c |
94c0fa52 | 3 | * |
00e8c494 | 4 | * I-O DATA Device, Inc. LANDISK Support |
5 | * | |
6 | * Copyright (C) 2005-2007 kogiidena | |
144cd596 | 7 | * Copyright (C) 2011 Nobuhiro Iwamatsu |
00e8c494 | 8 | * |
94c0fa52 | 9 | * Copyright (C) 2001 Ian da Silva, Jeremy Siegel |
10 | * Based largely on io_se.c. | |
11 | * | |
00e8c494 | 12 | * This file is subject to the terms and conditions of the GNU General Public |
13 | * License. See the file "COPYING" in the main directory of this archive | |
14 | * for more details. | |
94c0fa52 | 15 | */ |
144cd596 | 16 | |
94c0fa52 | 17 | #include <linux/init.h> |
18 | #include <linux/irq.h> | |
b6250e37 PM |
19 | #include <linux/interrupt.h> |
20 | #include <linux/io.h> | |
0764bff4 | 21 | #include <mach-landisk/mach/iodata_landisk.h> |
94c0fa52 | 22 | |
144cd596 NI |
23 | enum { |
24 | UNUSED = 0, | |
94c0fa52 | 25 | |
144cd596 NI |
26 | PCI_INTA, /* PCI int A */ |
27 | PCI_INTB, /* PCI int B */ | |
28 | PCI_INTC, /* PCI int C */ | |
29 | PCI_INTD, /* PCI int D */ | |
30 | ATA, /* ATA */ | |
31 | FATA, /* CF */ | |
32 | POWER, /* Power swtich */ | |
33 | BUTTON, /* Button swtich */ | |
34 | }; | |
94c0fa52 | 35 | |
144cd596 NI |
36 | /* Vectors for LANDISK */ |
37 | static struct intc_vect vectors_landisk[] __initdata = { | |
38 | INTC_IRQ(PCI_INTA, IRQ_PCIINTA), | |
39 | INTC_IRQ(PCI_INTB, IRQ_PCIINTB), | |
40 | INTC_IRQ(PCI_INTC, IRQ_PCIINTC), | |
41 | INTC_IRQ(PCI_INTD, IRQ_PCIINTD), | |
42 | INTC_IRQ(ATA, IRQ_ATA), | |
43 | INTC_IRQ(FATA, IRQ_FATA), | |
44 | INTC_IRQ(POWER, IRQ_POWER), | |
45 | INTC_IRQ(BUTTON, IRQ_BUTTON), | |
46 | }; | |
94c0fa52 | 47 | |
144cd596 NI |
48 | /* IRLMSK mask register layout for LANDISK */ |
49 | static struct intc_mask_reg mask_registers_landisk[] __initdata = { | |
50 | { PA_IMASK, 0, 8, /* IRLMSK */ | |
51 | { BUTTON, POWER, FATA, ATA, | |
52 | PCI_INTD, PCI_INTC, PCI_INTB, PCI_INTA, | |
53 | } | |
54 | }, | |
94c0fa52 | 55 | }; |
56 | ||
144cd596 NI |
57 | static DECLARE_INTC_DESC(intc_desc_landisk, "landisk", vectors_landisk, NULL, |
58 | mask_registers_landisk, NULL, NULL); | |
94c0fa52 | 59 | /* |
60 | * Initialize IRQ setting | |
61 | */ | |
62 | void __init init_landisk_IRQ(void) | |
63 | { | |
144cd596 | 64 | register_intc_controller(&intc_desc_landisk); |
9d56dd3b | 65 | __raw_writeb(0x00, PA_PWRINT_CLR); |
94c0fa52 | 66 | } |