18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * arch/sh/drivers/pci/ops-titan.c
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Ported to new API by Paul Mundt <lethal@linux-sh.org>
68c2ecf20Sopenharmony_ci *
78c2ecf20Sopenharmony_ci * Modified from ops-snapgear.c written by  David McCullough
88c2ecf20Sopenharmony_ci * Highly leveraged from pci-bigsur.c, written by Dustin McIntire.
98c2ecf20Sopenharmony_ci *
108c2ecf20Sopenharmony_ci * PCI initialization for the Titan boards
118c2ecf20Sopenharmony_ci */
128c2ecf20Sopenharmony_ci#include <linux/kernel.h>
138c2ecf20Sopenharmony_ci#include <linux/types.h>
148c2ecf20Sopenharmony_ci#include <linux/init.h>
158c2ecf20Sopenharmony_ci#include <linux/pci.h>
168c2ecf20Sopenharmony_ci#include <linux/io.h>
178c2ecf20Sopenharmony_ci#include <mach/titan.h>
188c2ecf20Sopenharmony_ci#include "pci-sh4.h"
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_cistatic char titan_irq_tab[] = {
218c2ecf20Sopenharmony_ci	TITAN_IRQ_WAN,
228c2ecf20Sopenharmony_ci	TITAN_IRQ_LAN,
238c2ecf20Sopenharmony_ci	TITAN_IRQ_MPCIA,
248c2ecf20Sopenharmony_ci	TITAN_IRQ_MPCIB,
258c2ecf20Sopenharmony_ci	TITAN_IRQ_USB,
268c2ecf20Sopenharmony_ci};
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ciint pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin)
298c2ecf20Sopenharmony_ci{
308c2ecf20Sopenharmony_ci	int irq = titan_irq_tab[slot];
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci	printk("PCI: Mapping TITAN IRQ for slot %d, pin %c to irq %d\n",
338c2ecf20Sopenharmony_ci		slot, pin - 1 + 'A', irq);
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci	return irq;
368c2ecf20Sopenharmony_ci}
37