162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci#include <linux/kernel.h>
362306a36Sopenharmony_ci#include <linux/init.h>
462306a36Sopenharmony_ci#include <linux/types.h>
562306a36Sopenharmony_ci#include <linux/pci.h>
662306a36Sopenharmony_ci#include <linux/sh_intc.h>
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciint pcibios_map_platform_irq(const struct pci_dev *dev, u8 slot, u8 pin)
962306a36Sopenharmony_ci{
1062306a36Sopenharmony_ci	int irq;
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci	if (dev->bus->number == 0) {
1362306a36Sopenharmony_ci		switch (slot) {
1462306a36Sopenharmony_ci		case 4: return evt2irq(0x2a0);	/* eth0       */
1562306a36Sopenharmony_ci		case 8: return evt2irq(0x2a0);	/* eth1       */
1662306a36Sopenharmony_ci		case 6: return evt2irq(0x240);	/* PCI bridge */
1762306a36Sopenharmony_ci		default:
1862306a36Sopenharmony_ci			printk(KERN_ERR "PCI: Bad IRQ mapping request "
1962306a36Sopenharmony_ci					"for slot %d\n", slot);
2062306a36Sopenharmony_ci			return evt2irq(0x240);
2162306a36Sopenharmony_ci		}
2262306a36Sopenharmony_ci	} else {
2362306a36Sopenharmony_ci		switch (pin) {
2462306a36Sopenharmony_ci		case 0:   irq =  evt2irq(0x240); break;
2562306a36Sopenharmony_ci		case 1:   irq =  evt2irq(0x240); break;
2662306a36Sopenharmony_ci		case 2:   irq =  evt2irq(0x240); break;
2762306a36Sopenharmony_ci		case 3:   irq =  evt2irq(0x240); break;
2862306a36Sopenharmony_ci		case 4:   irq =  evt2irq(0x240); break;
2962306a36Sopenharmony_ci		default:  irq = -1; break;
3062306a36Sopenharmony_ci		}
3162306a36Sopenharmony_ci	}
3262306a36Sopenharmony_ci	return irq;
3362306a36Sopenharmony_ci}
34