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