Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
fixups-sdk7780.c
Go to the documentation of this file.
1 /*
2  * arch/sh/drivers/pci/fixups-sdk7780.c
3  *
4  * PCI fixups for the SDK7780SE03
5  *
6  * Copyright (C) 2003 Lineo uSolutions, Inc.
7  * Copyright (C) 2004 - 2006 Paul Mundt
8  * Copyright (C) 2006 Nobuhiro Iwamatsu
9  *
10  * This file is subject to the terms and conditions of the GNU General Public
11  * License. See the file "COPYING" in the main directory of this archive
12  * for more details.
13  */
14 #include <linux/pci.h>
15 #include <linux/io.h>
16 #include <linux/sh_intc.h>
17 #include "pci-sh4.h"
18 
19 #define IRQ_INTA evt2irq(0xa20)
20 #define IRQ_INTB evt2irq(0xa40)
21 #define IRQ_INTC evt2irq(0xa60)
22 #define IRQ_INTD evt2irq(0xa80)
23 
24 /* IDSEL [16][17][18][19][20][21][22][23][24][25][26][27][28][29][30][31] */
25 static char sdk7780_irq_tab[4][16] __initdata = {
26  /* INTA */
27  { IRQ_INTA, IRQ_INTD, IRQ_INTC, IRQ_INTD, -1, -1, -1, -1, -1, -1,
28  -1, -1, -1, -1, -1, -1 },
29  /* INTB */
30  { IRQ_INTB, IRQ_INTA, -1, IRQ_INTA, -1, -1, -1, -1, -1, -1, -1, -1,
31  -1, -1, -1, -1 },
32  /* INTC */
33  { IRQ_INTC, IRQ_INTB, -1, IRQ_INTB, -1, -1, -1, -1, -1, -1, -1, -1,
34  -1, -1, -1, -1 },
35  /* INTD */
36  { IRQ_INTD, IRQ_INTC, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
37  -1, -1, -1 },
38 };
39 
40 int __init pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin)
41 {
42  return sdk7780_irq_tab[pin-1][slot];
43 }