18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci#include <linux/kernel.h>
38c2ecf20Sopenharmony_ci#include <linux/init.h>
48c2ecf20Sopenharmony_ci#include <linux/types.h>
58c2ecf20Sopenharmony_ci#include <linux/pci.h>
68c2ecf20Sopenharmony_ci#include <linux/sh_intc.h>
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ciint pcibios_map_platform_irq(const struct pci_dev *dev, u8 slot, u8 pin)
98c2ecf20Sopenharmony_ci{
108c2ecf20Sopenharmony_ci	int irq;
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci	if (dev->bus->number == 0) {
138c2ecf20Sopenharmony_ci		switch (slot) {
148c2ecf20Sopenharmony_ci		case 4: return evt2irq(0x2a0);	/* eth0       */
158c2ecf20Sopenharmony_ci		case 8: return evt2irq(0x2a0);	/* eth1       */
168c2ecf20Sopenharmony_ci		case 6: return evt2irq(0x240);	/* PCI bridge */
178c2ecf20Sopenharmony_ci		default:
188c2ecf20Sopenharmony_ci			printk(KERN_ERR "PCI: Bad IRQ mapping request "
198c2ecf20Sopenharmony_ci					"for slot %d\n", slot);
208c2ecf20Sopenharmony_ci			return evt2irq(0x240);
218c2ecf20Sopenharmony_ci		}
228c2ecf20Sopenharmony_ci	} else {
238c2ecf20Sopenharmony_ci		switch (pin) {
248c2ecf20Sopenharmony_ci		case 0:   irq =  evt2irq(0x240); break;
258c2ecf20Sopenharmony_ci		case 1:   irq =  evt2irq(0x240); break;
268c2ecf20Sopenharmony_ci		case 2:   irq =  evt2irq(0x240); break;
278c2ecf20Sopenharmony_ci		case 3:   irq =  evt2irq(0x240); break;
288c2ecf20Sopenharmony_ci		case 4:   irq =  evt2irq(0x240); break;
298c2ecf20Sopenharmony_ci		default:  irq = -1; break;
308c2ecf20Sopenharmony_ci		}
318c2ecf20Sopenharmony_ci	}
328c2ecf20Sopenharmony_ci	return irq;
338c2ecf20Sopenharmony_ci}
34