xref: /openbmc/linux/arch/sh/drivers/pci/fixups-sh03.c (revision 959f85f8)
11da177e4SLinus Torvalds #include <linux/kernel.h>
21da177e4SLinus Torvalds #include <linux/init.h>
31da177e4SLinus Torvalds #include <linux/types.h>
41da177e4SLinus Torvalds #include <linux/pci.h>
51da177e4SLinus Torvalds 
6959f85f8SPaul Mundt int __init pcibios_map_platform_irq(struct pci_dev *dev, u8 slot, u8 pin)
71da177e4SLinus Torvalds {
81da177e4SLinus Torvalds 	int irq;
91da177e4SLinus Torvalds 
101da177e4SLinus Torvalds 	if (dev->bus->number == 0) {
111da177e4SLinus Torvalds 		switch (slot) {
121da177e4SLinus Torvalds 		case 4: return 5;	/* eth0       */
131da177e4SLinus Torvalds 		case 8: return 5;	/* eth1       */
141da177e4SLinus Torvalds 		case 6: return 2;	/* PCI bridge */
151da177e4SLinus Torvalds 		default:
16959f85f8SPaul Mundt 			printk(KERN_ERR "PCI: Bad IRQ mapping request "
17959f85f8SPaul Mundt 					"for slot %d\n", slot);
181da177e4SLinus Torvalds 			return 2;
191da177e4SLinus Torvalds 		}
201da177e4SLinus Torvalds 	} else {
211da177e4SLinus Torvalds 		switch (pin) {
221da177e4SLinus Torvalds 		case 0:   irq =  2; break;
231da177e4SLinus Torvalds 		case 1:   irq =  2; break;
241da177e4SLinus Torvalds 		case 2:   irq =  2; break;
251da177e4SLinus Torvalds 		case 3:   irq =  2; break;
261da177e4SLinus Torvalds 		case 4:   irq =  2; break;
271da177e4SLinus Torvalds 		default:  irq = -1; break;
281da177e4SLinus Torvalds 		}
291da177e4SLinus Torvalds 	}
301da177e4SLinus Torvalds 	return irq;
311da177e4SLinus Torvalds }
32