xref: /openbmc/linux/arch/sh/drivers/pci/fixups-sh03.c (revision 2b8ff9f2)
11da177e4SLinus Torvalds #include <linux/kernel.h>
21da177e4SLinus Torvalds #include <linux/init.h>
31da177e4SLinus Torvalds #include <linux/types.h>
41da177e4SLinus Torvalds #include <linux/pci.h>
558796ce6SPaul Mundt #include <linux/sh_intc.h>
61da177e4SLinus Torvalds 
72b8ff9f2SMatthew Minter int pcibios_map_platform_irq(const struct pci_dev *dev, u8 slot, u8 pin)
81da177e4SLinus Torvalds {
91da177e4SLinus Torvalds 	int irq;
101da177e4SLinus Torvalds 
111da177e4SLinus Torvalds 	if (dev->bus->number == 0) {
121da177e4SLinus Torvalds 		switch (slot) {
1358796ce6SPaul Mundt 		case 4: return evt2irq(0x2a0);	/* eth0       */
1458796ce6SPaul Mundt 		case 8: return evt2irq(0x2a0);	/* eth1       */
1558796ce6SPaul Mundt 		case 6: return evt2irq(0x240);	/* PCI bridge */
161da177e4SLinus Torvalds 		default:
17959f85f8SPaul Mundt 			printk(KERN_ERR "PCI: Bad IRQ mapping request "
18959f85f8SPaul Mundt 					"for slot %d\n", slot);
1958796ce6SPaul Mundt 			return evt2irq(0x240);
201da177e4SLinus Torvalds 		}
211da177e4SLinus Torvalds 	} else {
221da177e4SLinus Torvalds 		switch (pin) {
2358796ce6SPaul Mundt 		case 0:   irq =  evt2irq(0x240); break;
2458796ce6SPaul Mundt 		case 1:   irq =  evt2irq(0x240); break;
2558796ce6SPaul Mundt 		case 2:   irq =  evt2irq(0x240); break;
2658796ce6SPaul Mundt 		case 3:   irq =  evt2irq(0x240); break;
2758796ce6SPaul Mundt 		case 4:   irq =  evt2irq(0x240); break;
281da177e4SLinus Torvalds 		default:  irq = -1; break;
291da177e4SLinus Torvalds 		}
301da177e4SLinus Torvalds 	}
311da177e4SLinus Torvalds 	return irq;
321da177e4SLinus Torvalds }
33