14d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa/* 24d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa * fixup-tb0287.c, The TANBAC TB0287 specific PCI fixups. 34d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa * 4ada8e9514b5880f81cdbbd212d121380ceef7accYoichi Yuasa * Copyright (C) 2005 Yoichi Yuasa <yuasa@linux-mips.org> 54d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa * 64d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa * This program is free software; you can redistribute it and/or modify 74d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa * it under the terms of the GNU General Public License as published by 84d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa * the Free Software Foundation; either version 2 of the License, or 94d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa * (at your option) any later version. 104d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa * 114d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa * This program is distributed in the hope that it will be useful, 124d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa * but WITHOUT ANY WARRANTY; without even the implied warranty of 134d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 144d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa * GNU General Public License for more details. 154d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa * 164d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa * You should have received a copy of the GNU General Public License 174d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa * along with this program; if not, write to the Free Software 184d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 194d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa */ 204d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa#include <linux/init.h> 214d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa#include <linux/pci.h> 224d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa 234d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa#include <asm/vr41xx/tb0287.h> 244d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa 2519df0d1169b3ddcc84933794d1401aaafe2f0000Ralf Baechleint __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 264d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa{ 274d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa unsigned char bus; 284d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa int irq = -1; 294d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa 304d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa bus = dev->bus->number; 314d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa if (bus == 0) { 324d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa switch (slot) { 334d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa case 16: 344d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa irq = TB0287_SM501_IRQ; 354d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa break; 364d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa case 17: 374d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa irq = TB0287_SIL680A_IRQ; 384d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa break; 394d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa default: 404d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa break; 414d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa } 424d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa } else if (bus == 1) { 434d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa switch (PCI_SLOT(dev->devfn)) { 444d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa case 0: 454d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa irq = TB0287_PCI_SLOT_IRQ; 464d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa break; 474d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa case 2: 484d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa case 3: 494d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa irq = TB0287_RTL8110_IRQ; 504d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa break; 514d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa default: 524d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa break; 534d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa } 544d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa } else if (bus > 1) { 554d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa irq = TB0287_PCI_SLOT_IRQ; 564d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa } 574d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa 584d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa return irq; 594d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa} 604d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa 614d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa/* Do platform specific device initialization at pci_enable_device() time */ 624d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasaint pcibios_plat_dev_init(struct pci_dev *dev) 634d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa{ 644d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa return 0; 654d666d7ada2e14d71d463c85b8b5ef2e2e6723f2Yoichi Yuasa} 66