11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * arch/sh/drivers/pci/ops-snapgear.c 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Author: David McCullough <davidm@snapgear.com> 5959f85f8a3223c116bbe95dd8a9b207790b5d4d3Paul Mundt * 61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Ported to new API by Paul Mundt <lethal@linux-sh.org> 71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Highly leveraged from pci-bigsur.c, written by Dustin McIntire. 91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * May be copied or modified under the terms of the GNU General Public 111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * License. See linux/COPYING for more information. 121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * PCI initialization for the SnapGear boards 141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/kernel.h> 161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/types.h> 171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/init.h> 181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/pci.h> 19959f85f8a3223c116bbe95dd8a9b207790b5d4d3Paul Mundt#include "pci-sh4.h" 201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 21d5341942d784134f2997b3ff82cd63cf71d1f932Ralf Baechleint __init pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin) 221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int irq = -1; 241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds switch (slot) { 261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds case 8: /* the PCI bridge */ break; 271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds case 11: irq = 8; break; /* USB */ 281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds case 12: irq = 11; break; /* PCMCIA */ 291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds case 13: irq = 5; break; /* eth0 */ 301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds case 14: irq = 8; break; /* eth1 */ 311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds case 15: irq = 11; break; /* safenet (unused) */ 321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } 331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds printk("PCI: Mapping SnapGear IRQ for slot %d, pin %c to irq %d\n", 351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds slot, pin - 1 + 'A', irq); 361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds return irq; 381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} 39