xref: /openbmc/linux/arch/sh/drivers/pci/fixups-sh03.c (revision b2441318)
1b2441318SGreg Kroah-Hartman // SPDX-License-Identifier: GPL-2.0
21da177e4SLinus Torvalds #include <linux/kernel.h>
31da177e4SLinus Torvalds #include <linux/init.h>
41da177e4SLinus Torvalds #include <linux/types.h>
51da177e4SLinus Torvalds #include <linux/pci.h>
658796ce6SPaul Mundt #include <linux/sh_intc.h>
71da177e4SLinus Torvalds 
pcibios_map_platform_irq(const struct pci_dev * dev,u8 slot,u8 pin)82b8ff9f2SMatthew Minter int pcibios_map_platform_irq(const struct pci_dev *dev, u8 slot, u8 pin)
91da177e4SLinus Torvalds {
101da177e4SLinus Torvalds 	int irq;
111da177e4SLinus Torvalds 
121da177e4SLinus Torvalds 	if (dev->bus->number == 0) {
131da177e4SLinus Torvalds 		switch (slot) {
1458796ce6SPaul Mundt 		case 4: return evt2irq(0x2a0);	/* eth0       */
1558796ce6SPaul Mundt 		case 8: return evt2irq(0x2a0);	/* eth1       */
1658796ce6SPaul Mundt 		case 6: return evt2irq(0x240);	/* PCI bridge */
171da177e4SLinus Torvalds 		default:
18959f85f8SPaul Mundt 			printk(KERN_ERR "PCI: Bad IRQ mapping request "
19959f85f8SPaul Mundt 					"for slot %d\n", slot);
2058796ce6SPaul Mundt 			return evt2irq(0x240);
211da177e4SLinus Torvalds 		}
221da177e4SLinus Torvalds 	} else {
231da177e4SLinus Torvalds 		switch (pin) {
2458796ce6SPaul Mundt 		case 0:   irq =  evt2irq(0x240); break;
2558796ce6SPaul Mundt 		case 1:   irq =  evt2irq(0x240); break;
2658796ce6SPaul Mundt 		case 2:   irq =  evt2irq(0x240); break;
2758796ce6SPaul Mundt 		case 3:   irq =  evt2irq(0x240); break;
2858796ce6SPaul Mundt 		case 4:   irq =  evt2irq(0x240); break;
291da177e4SLinus Torvalds 		default:  irq = -1; break;
301da177e4SLinus Torvalds 		}
311da177e4SLinus Torvalds 	}
321da177e4SLinus Torvalds 	return irq;
331da177e4SLinus Torvalds }
34