162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * arch/sh/drivers/pci/ops-snapgear.c
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Author:  David McCullough <davidm@snapgear.com>
662306a36Sopenharmony_ci *
762306a36Sopenharmony_ci * Ported to new API by Paul Mundt <lethal@linux-sh.org>
862306a36Sopenharmony_ci *
962306a36Sopenharmony_ci * Highly leveraged from pci-bigsur.c, written by Dustin McIntire.
1062306a36Sopenharmony_ci *
1162306a36Sopenharmony_ci * PCI initialization for the SnapGear boards
1262306a36Sopenharmony_ci */
1362306a36Sopenharmony_ci#include <linux/kernel.h>
1462306a36Sopenharmony_ci#include <linux/types.h>
1562306a36Sopenharmony_ci#include <linux/init.h>
1662306a36Sopenharmony_ci#include <linux/pci.h>
1762306a36Sopenharmony_ci#include <linux/sh_intc.h>
1862306a36Sopenharmony_ci#include "pci-sh4.h"
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciint pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin)
2162306a36Sopenharmony_ci{
2262306a36Sopenharmony_ci	int irq = -1;
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci	switch (slot) {
2562306a36Sopenharmony_ci	case 8:  /* the PCI bridge */ break;
2662306a36Sopenharmony_ci	case 11: irq = evt2irq(0x300); break; /* USB    */
2762306a36Sopenharmony_ci	case 12: irq = evt2irq(0x360); break; /* PCMCIA */
2862306a36Sopenharmony_ci	case 13: irq = evt2irq(0x2a0); break; /* eth0   */
2962306a36Sopenharmony_ci	case 14: irq = evt2irq(0x300); break; /* eth1   */
3062306a36Sopenharmony_ci	case 15: irq = evt2irq(0x360); break; /* safenet (unused) */
3162306a36Sopenharmony_ci	}
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci	printk("PCI: Mapping SnapGear IRQ for slot %d, pin %c to irq %d\n",
3462306a36Sopenharmony_ci	       slot, pin - 1 + 'A', irq);
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci	return irq;
3762306a36Sopenharmony_ci}
38