1a09749dd86e9e93de10f12ab4ce4e90815b5650aJamie Lenehan/*
2a09749dd86e9e93de10f12ab4ce4e90815b5650aJamie Lenehan * arch/sh/drivers/pci/ops-titan.c
3a09749dd86e9e93de10f12ab4ce4e90815b5650aJamie Lenehan *
4a09749dd86e9e93de10f12ab4ce4e90815b5650aJamie Lenehan * Ported to new API by Paul Mundt <lethal@linux-sh.org>
5a09749dd86e9e93de10f12ab4ce4e90815b5650aJamie Lenehan *
6a09749dd86e9e93de10f12ab4ce4e90815b5650aJamie Lenehan * Modified from ops-snapgear.c written by  David McCullough
7a09749dd86e9e93de10f12ab4ce4e90815b5650aJamie Lenehan * Highly leveraged from pci-bigsur.c, written by Dustin McIntire.
8a09749dd86e9e93de10f12ab4ce4e90815b5650aJamie Lenehan *
9a09749dd86e9e93de10f12ab4ce4e90815b5650aJamie Lenehan * May be copied or modified under the terms of the GNU General Public
10a09749dd86e9e93de10f12ab4ce4e90815b5650aJamie Lenehan * License.  See linux/COPYING for more information.
11a09749dd86e9e93de10f12ab4ce4e90815b5650aJamie Lenehan *
12a09749dd86e9e93de10f12ab4ce4e90815b5650aJamie Lenehan * PCI initialization for the Titan boards
13a09749dd86e9e93de10f12ab4ce4e90815b5650aJamie Lenehan */
14a09749dd86e9e93de10f12ab4ce4e90815b5650aJamie Lenehan#include <linux/kernel.h>
15a09749dd86e9e93de10f12ab4ce4e90815b5650aJamie Lenehan#include <linux/types.h>
16a09749dd86e9e93de10f12ab4ce4e90815b5650aJamie Lenehan#include <linux/init.h>
170f08f338083cc1d68788ccbccc44bd0502fc57aePaul Mundt#include <linux/pci.h>
18ea0f8feaa041f3ccec3d6b8ee51325b177daef06Jamie Lenehan#include <linux/io.h>
197639a4541f7e7abb1295ff8ab39cc2f5842239aePaul Mundt#include <mach/titan.h>
20959f85f8a3223c116bbe95dd8a9b207790b5d4d3Paul Mundt#include "pci-sh4.h"
21a09749dd86e9e93de10f12ab4ce4e90815b5650aJamie Lenehan
22ea0f8feaa041f3ccec3d6b8ee51325b177daef06Jamie Lenehanstatic char titan_irq_tab[] __initdata = {
23ea0f8feaa041f3ccec3d6b8ee51325b177daef06Jamie Lenehan	TITAN_IRQ_WAN,
24ea0f8feaa041f3ccec3d6b8ee51325b177daef06Jamie Lenehan	TITAN_IRQ_LAN,
25ea0f8feaa041f3ccec3d6b8ee51325b177daef06Jamie Lenehan	TITAN_IRQ_MPCIA,
26ea0f8feaa041f3ccec3d6b8ee51325b177daef06Jamie Lenehan	TITAN_IRQ_MPCIB,
27ea0f8feaa041f3ccec3d6b8ee51325b177daef06Jamie Lenehan	TITAN_IRQ_USB,
28ea0f8feaa041f3ccec3d6b8ee51325b177daef06Jamie Lenehan};
29ea0f8feaa041f3ccec3d6b8ee51325b177daef06Jamie Lenehan
30d5341942d784134f2997b3ff82cd63cf71d1f932Ralf Baechleint __init pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin)
31a09749dd86e9e93de10f12ab4ce4e90815b5650aJamie Lenehan{
32ea0f8feaa041f3ccec3d6b8ee51325b177daef06Jamie Lenehan	int irq = titan_irq_tab[slot];
33a09749dd86e9e93de10f12ab4ce4e90815b5650aJamie Lenehan
34a09749dd86e9e93de10f12ab4ce4e90815b5650aJamie Lenehan	printk("PCI: Mapping TITAN IRQ for slot %d, pin %c to irq %d\n",
35a09749dd86e9e93de10f12ab4ce4e90815b5650aJamie Lenehan		slot, pin - 1 + 'A', irq);
36a09749dd86e9e93de10f12ab4ce4e90815b5650aJamie Lenehan
37a09749dd86e9e93de10f12ab4ce4e90815b5650aJamie Lenehan	return irq;
38a09749dd86e9e93de10f12ab4ce4e90815b5650aJamie Lenehan}
39