xref: /linux/arch/sh/drivers/pci/fixups-sdk7780.c (revision ca55b2fef3a9373fcfc30f82fd26bc7fccbda732)
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 }
44